diff --git a/Host/Source/MicroBoot/interfaces/net/OverbyteIcsV5.zip b/Host/Source/MicroBoot/interfaces/net/OverbyteIcsV5.zip deleted file mode 100644 index 8fbbe202..00000000 Binary files a/Host/Source/MicroBoot/interfaces/net/OverbyteIcsV5.zip and /dev/null differ diff --git a/Host/Source/MicroBoot/interfaces/net/WSockets.dcu b/Host/Source/MicroBoot/interfaces/net/WSockets.dcu new file mode 100644 index 00000000..273c35fd Binary files /dev/null and b/Host/Source/MicroBoot/interfaces/net/WSockets.dcu differ diff --git a/Host/Source/MicroBoot/interfaces/net/WSockets.pas b/Host/Source/MicroBoot/interfaces/net/WSockets.pas new file mode 100644 index 00000000..db7c5c76 --- /dev/null +++ b/Host/Source/MicroBoot/interfaces/net/WSockets.pas @@ -0,0 +1,1550 @@ +unit WSockets; +{ + +WSockets Version 1.20 - A Simple VCL Encapsulation of the WinSocket API + +VCL Classes in this Unit: + TTCPClient - A TCP Client (derived from TCustomWSocket) + TTCPServer - A TCP Server (derived from TCustomWSocket) + TUDPClient - A UDP Client (derived from TCustomWSocket) + TUDPServer - A UDP Server (derived from TCustomWSocket) + +Other classes ni this Unit: + TCustomWSocket - A generic base class for other socket classes + TClientList - A list class used only by the TTCPServer class + +Legal issues: + +Copyright (C) 1997 by Robert T. Palmqvist + + This software is provided 'as-is', without any express or implied + warranty. In no event will the author be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented, you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + + 3. This notice may not be removed or altered from any source distribution. + +Credits go to: + + Gary T. Desrosiers. His unit "Sockets" inspired me to write my own. + + Martin Hall, Mark Towfig, Geoff Arnold, David Treadwell, Henry Sanders + and InfoMagic, Inc. for their Windows Help File "WinSock.hlp". + + All the guys at Borland who gave us a marvellous tool named "Delphi"! + +Recommended information sources: + + Specification: + Windows Sockets Version 1.1 Specification + + Textbook: + Quinn and Shute. "Windows Sockets Network Programming" + 1996 by Addison-Wesley Publishing Company, Inc. ISBN 0-201-63372-8 + + World Wide Web: + http://www.sockets.com + http://www.stardust.com + + Network News: + alt.winsock.programming + + Frequently Asked Questions: + "WinSock Application FAQ" Mailto: info@lcs.com Subject: faq + + Requests for Comments: + RFC 768 "User Datagram Protocol" + RFC 791 "Internet Protocol" + RFC 793 "Transmission Control Protocol" + +} +interface + +uses + Windows, WinSock, SysUtils, Classes, Messages, Forms; + +const + WM_ASYNCSELECT = WM_USER + 1; + READ_BUFFER_SIZE = 1024; + MAX_LOOP = 100; + +type + TSocketState = (ssNotStarted, ssClosed, ssConnected, ssListening, ssOpen); + + TOnError = procedure(Sender: TObject; Error: integer; Msg: string) of object; + TOnData = procedure(Sender: TObject; Socket: TSocket) of object; + TOnAccept = procedure(Sender: TObject; Socket: TSocket) of object; + TOnConnect = procedure(Sender: TObject; Socket: TSocket) of object; + TOnClose = procedure(Sender: TObject; Socket: TSocket) of object; + + TReadBuffer = array[1..READ_BUFFER_SIZE] of byte; + + TClientList = class(TObject) + private + FSockets: TList; + protected + function GetSockets(Index: integer): TSocket; + function GetCount: integer; + public + constructor Create; + destructor Destroy; override; + function Add(Socket: TSocket): boolean; + procedure Delete(Socket: TSocket); + procedure Clear; + function IndexOf(Socket: TSocket): integer; + property Sockets[Index: integer]: TSocket read GetSockets; default; + property Count: integer read GetCount; + end; + + TCustomWSocket = class(TComponent) + private + {WinSocket Information Private Fields} + FVersion: string; + FDescription: string; + FSystemStatus: string; + FMaxSockets: integer; + FMaxUDPSize: integer; + {End WinSocket Information Private Fields} + FProtocol: integer; + FType: integer; + + FReadBuffer: TReadBuffer; + FLocalSocket: TSocket; + FSocketState: TSocketState; + FLastError: integer; + FOnError: TOnError; + protected + procedure SocketError(Error: integer); + function LastErrorDesc: string; + + function GetLocalHostAddress: string; + function GetLocalHostName: string; + {Socket Helper Functions} + procedure SocketClose(var Socket: TSocket; Handle: HWND); + function SocketQueueSize(Socket: TSocket): longint; + + procedure SocketWrite(Socket: TSocket; Flag: integer; Data: string); + function SocketRead(Socket: TSocket; Flag: integer): string; + function SocketWriteBuffer(Socket: TSocket; Buffer: Pointer; Size, Flag: integer): integer; + function SocketReadBuffer(Socket: TSocket; Buffer: Pointer; Size, Flag: integer): integer; + + procedure SocketWriteTo(Socket: TSocket; Flag: integer; Data: string; var SockAddrIn: TSockAddrIn); + function SocketReadFrom(Socket: TSocket; Flag: integer; var SockAddrIn: TSockAddrIn): string; + function SocketWriteBufferTo(Socket: TSocket; Buffer: Pointer; Size, Flag: integer; var SockAddrIn: TSockAddrIn): integer; + function SocketReadBufferFrom(Socket: TSocket; Buffer: Pointer; Size, Flag: integer; var SockAddrIn: TSockAddrIn): integer; + public + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + {Address and Port Resolving Helper Functions} + function GetSockAddrIn(Host, Port: string; var SockAddrIn: TSockAddrIn): boolean; + function GetAnySockAddrIn(Port: string; var SockAddrIn: TSockAddrIn): boolean; + function GetBroadcastSockAddrIn(Port: string; var SockAddrIn: TSockAddrIn): boolean; + function SockAddrInToName(SockAddrIn: TSockAddrIn): string; + function SockAddrInToAddress(SockAddrIn: TSockAddrIn): string; + function SockAddrInToPort(SockAddrIn: TSockAddrIn): string; + function SocketToName(Socket: TSocket): string; + function SocketToAddress(Socket: TSocket): string; + function SocketToPort(Socket: TSocket): string; + function PeerToName(Socket: TSocket): string; + function PeerToAddress(Socket: TSocket): string; + function PeerToPort(Socket: TSocket): string; + {WinSocket Information Properties} + property Version: string read FVersion; + property Description: string read FDescription; + property SystemStatus: string read FSystemStatus; + property MaxSockets: integer read FMaxSockets; + property MaxUDPSize: integer read FMaxUDPSize; + {End WinSocket Information Properties} + property LocalSocket: TSocket read FLocalSocket; + property SocketState: TSocketState read FSocketState; + property LastError: integer read FLastError; + property LocalHostAddress: string read GetLocalHostAddress; + property LocalHostName: string read GetLocalHostName; + published + property OnError: TOnError read FOnError write FOnError; + end; + + TTCPClient = class(TCustomWSocket) + private + FHandle: HWND; + + FHost: string; + FPort: string; + + FOnData: TOnData; + FOnConnect: TOnConnect; + FOnClose: TOnClose; + protected + procedure WndProc(var AMsg: TMessage); + procedure OpenConnection(Socket: TSocket; Error: word); + procedure IncommingData(Socket: TSocket; Error: word); + procedure CloseConnection(Socket: TSocket; Error: word); + + function GetPeerAddress: string; + function GetPeerPort: string; + public + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + + procedure Open; + procedure Close; + + function Peek: string; + + procedure Write(Data: string); + function Read: string; + + function WriteBuffer(Buffer: Pointer; Size: integer): integer; + function ReadBuffer(Buffer: Pointer; Size: integer): integer; + + property Handle: HWND read FHandle; + + property PeerAddress: string read GetPeerAddress; + property PeerPort: string read GetPeerPort; + published + property Host: string read FHost write FHost; + property Port: string read FPort write FPort; + + property OnData: TOnData read FOnData write FOnData; + property OnConnect: TOnConnect read FOnConnect write FOnConnect; + property OnClose: TOnClose read FOnClose write FOnClose; + end; + + TTCPServer = class(TCustomWSocket) + private + FHandle: HWND; + FPort: string; + + FOnData: TOnData; + FOnAccept: TOnAccept; + FOnClose: TOnClose; + + FClients: TClientList; + protected + procedure WndProc(var AMsg: TMessage); + procedure OpenConnection(Socket: TSocket; Error: word); + procedure IncommingData(Socket: TSocket; Error: word); + procedure CloseConnection(Socket: TSocket; Error: word); + public + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + + procedure Open; + procedure Close; + + function Peek(Socket: TSocket): string; + + procedure Write(Socket: TSocket; Data: string); + function Read(Socket: TSocket): string; + + function WriteBuffer(Socket: TSocket; Buffer: Pointer; Size: integer): integer; + function ReadBuffer(Socket: TSocket; Buffer: Pointer; Size: integer): integer; + + procedure Disconnect(Socket: TSocket); + + property Handle: HWND read FHandle; + property Clients: TClientList read FClients; + published + property Port: string read FPort write FPort; + + property OnData: TOnData read FOnData write FOnData; + property OnAccept: TOnAccept read FOnAccept write FOnAccept; + property OnClose: TOnClose read FOnClose write FOnClose; + end; + + TUDPClient = class(TCustomWSocket) + private + FHandle: HWND; + + FHost: string; + FPort: string; + + FOnData: TOnData; + protected + procedure WndProc(var AMsg: TMessage); + procedure IncommingData(Socket: TSocket; Error: word); + + function GetPeerAddress: string; + function GetPeerPort: string; + public + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + + procedure Open; + procedure Close; + + function Peek: string; + + procedure Write(Data: string); + function Read: string; + + function WriteBuffer(Buffer: Pointer; Size: integer): integer; + function ReadBuffer(Buffer: Pointer; Size: integer): integer; + + property Handle: HWND read FHandle; + + property PeerAddress: string read GetPeerAddress; + property PeerPort: string read GetPeerPort; + published + property Host: string read FHost write FHost; + property Port: string read FPort write FPort; + + property OnData: TOnData read FOnData write FOnData; + end; + + TUDPServer = class(TCustomWSocket) + private + FHandle: HWND; + FPort: string; + + FOnData: TOnData; + protected + procedure WndProc(var AMsg: TMessage); + procedure IncommingData(Socket: TSocket; Error: word); + public + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + + procedure Open; + procedure Close; + + function Peek(Socket: TSocket; var SockAddrIn: TSockAddrIn): string; + + procedure Write(Socket: TSocket; Data: string; var SockAddrIn: TSockAddrIn); + function Read(Socket: TSocket; var SockAddrIn: TSockAddrIn): string; + + function WriteBuffer(Socket: TSocket; Buffer: Pointer; Size: integer; var SockAddrIn: TSockAddrIn): integer; + function ReadBuffer(Socket: TSocket; Buffer: Pointer; Size: integer; var SockAddrIn: TSockAddrIn): integer; + + property Handle: HWND read FHandle; + published + property Port: string read FPort write FPort; + + property OnData: TOnData read FOnData write FOnData; + end; + +procedure Register; + +implementation + +procedure Register; +begin + RegisterComponents('Samples', [TTCPClient, TTCPServer, TUDPClient, TUDPServer]); +end; + +(**** TClientList Class ****) + +constructor TClientList.Create; +begin + inherited Create; + FSockets:= TList.Create; +end; + +destructor TClientList.Destroy; +begin + Clear; + FSockets.Free; + inherited Destroy; +end; + +function TClientList.GetSockets(Index: integer): TSocket; +begin + Result:= TSocket(FSockets[Index]); +end; + +function TClientList.GetCount: integer; +begin + Result:= FSockets.Count; +end; + +function TClientList.Add(Socket: TSocket): boolean; +begin + Result:= (FSockets.Add(Ptr(Socket)) >= 0); +end; + +procedure TClientList.Delete(Socket: TSocket); +var + i: integer; +begin + for i:= 0 to FSockets.Count-1 do + begin + if TSocket(FSockets[i]) = Socket then + begin + FSockets.Delete(i); + Break; + end; + end; +end; + +procedure TClientList.Clear; +begin + FSockets.Clear; +end; + +function TClientList.IndexOf(Socket: TSocket): integer; +var + i: integer; +begin + Result:= -1; + for i:= 0 to FSockets.Count-1 do + begin + if TSocket(FSockets[i]) = Socket then + begin + Result:= i; + Break; + end; + end; +end; + +(**** TCustomWSocket Class ****) + +constructor TCustomWSocket.Create(AOwner: TComponent); +var + WSAData: TWSAData; +begin + inherited Create(AOwner); + FProtocol:= IPPROTO_IP; + FType:= SOCK_RAW; + FLocalSocket:= INVALID_SOCKET; + FSocketState:= ssNotStarted; + FLastError:= WSAStartup($101, WSAData); + if FLastError = 0 then + begin + FSocketState:= ssClosed; + with WSAData do + begin + FVersion:= Concat(IntToStr(Hi(wVersion)),'.',(IntToStr(Lo(wVersion)))); + FDescription:= StrPas(szDescription); + FSystemStatus:= StrPas(szSystemStatus); + FMaxSockets:= iMaxSockets; + FMaxUDPSize:= iMaxUDPDg; + end; + end + else + SocketError(FLastError); +end; + +destructor TCustomWSocket.Destroy; +begin + if FLocalSocket <> INVALID_SOCKET then + closesocket(FLocalSocket); + if FSocketState <> ssNotStarted then + if WSACleanUp = SOCKET_ERROR then + SocketError(WSAGetLastError); + inherited Destroy; +end; + +function TCustomWSocket.GetSockAddrIn( + Host, Port: string; var SockAddrIn: TSockAddrIn): boolean; +var + ProtoEnt: PProtoEnt; + ServEnt: PServEnt; + HostEnt: PHostEnt; +begin + Result:= false; + SockAddrIn.sin_family:= AF_INET; + + ProtoEnt:= getprotobynumber(FProtocol); + if ProtoEnt = nil then + begin + SocketError(WSAGetLastError); + Exit; + end; + + ServEnt:= getservbyname(PChar(Port), ProtoEnt^.p_name); + if ServEnt = nil then + SockAddrIn.sin_port:= htons(StrToInt(Port)) + else + SockAddrIn.sin_port:= ServEnt^.s_port; + + SockAddrIn.sin_addr.s_addr:= inet_addr(PChar(Host)); + if SockAddrIn.sin_addr.s_addr = INADDR_NONE then + begin + HostEnt:= gethostbyname(PChar(Host)); + if HostEnt = nil then + begin + SocketError(WSAGetLastError); + Exit; + end; + SockAddrIn.sin_addr.S_addr:= longint(plongint(HostEnt^.h_addr_list^)^); + end; + Result:= true; +end; + +function TCustomWSocket.GetAnySockAddrIn( + Port: string; var SockAddrIn: TSockAddrIn): boolean; +var + ProtoEnt: PProtoEnt; + ServEnt: PServEnt; +begin + Result:= false; + SockAddrIn.sin_family:= AF_INET; + + ProtoEnt:= getprotobynumber(FProtocol); + if ProtoEnt = nil then + Exit; + + ServEnt:= getservbyname(PChar(Port), ProtoEnt^.p_name); + if ServEnt = nil then + SockAddrIn.sin_port:= htons(StrToInt(Port)) + else + SockAddrIn.sin_port:= ServEnt^.s_port; + + SockAddrIn.sin_addr.s_addr:= INADDR_ANY; + Result:= true; +end; + +function TCustomWSocket.GetBroadcastSockAddrIn( + Port: string; var SockAddrIn: TSockAddrIn): boolean; +var + ProtoEnt: PProtoEnt; + ServEnt: PServEnt; +begin + Result:= false; + SockAddrIn.sin_family:= AF_INET; + + ProtoEnt:= getprotobynumber(FProtocol); + if ProtoEnt = nil then + Exit; + + ServEnt:= getservbyname(PChar(Port), ProtoEnt^.p_name); + if ServEnt = nil then + SockAddrIn.sin_port:= htons(StrToInt(Port)) + else + SockAddrIn.sin_port:= ServEnt^.s_port; + + SockAddrIn.sin_addr.s_addr:= INADDR_BROADCAST; + Result:= true; +end; + +function TCustomWSocket.SockAddrInToName(SockAddrIn: TSockAddrIn): string; +var + HostEnt: PHostEnt; +begin + HostEnt:= gethostbyaddr(@SockAddrIn.sin_addr.S_addr, 4, AF_INET); + if HostEnt <> nil then + Result:= HostEnt.h_name; +end; + +function TCustomWSocket.SockAddrInToAddress(SockAddrIn: TSockAddrIn): string; +begin + Result:= inet_ntoa(SockAddrIn.sin_addr); +end; + +function TCustomWSocket.SockAddrInToPort(SockAddrIn: TSockAddrIn): string; +begin + Result:= IntToStr(ntohs(SockAddrIn.sin_port)); +end; + +function TCustomWSocket.SocketToName(Socket: TSocket): string; +var + SockAddrIn: TSockAddrIn; + Len: integer; + HostEnt: PHostEnt; +begin + if Socket <> INVALID_SOCKET then + begin + Len:= SizeOf(SockAddrIn); + if getsockname(Socket, SockAddrIn, Len) <> SOCKET_ERROR then + begin + HostEnt:= gethostbyaddr(@SockAddrIn.sin_addr.S_addr, 4, AF_INET); + if HostEnt <> nil then + Result:= HostEnt.h_name; + end; + end; +end; + +function TCustomWSocket.SocketToAddress(Socket: TSocket): string; +var + SockAddrIn: TSockAddrIn; + Len: integer; +begin + if Socket <> INVALID_SOCKET then + begin + Len:= SizeOf(SockAddrIn); + if getsockname(Socket, SockAddrIn, Len) <> SOCKET_ERROR then + Result:= inet_ntoa(SockAddrIn.sin_addr); + end; +end; + +function TCustomWSocket.SocketToPort(Socket: TSocket): string; +var + SockAddrIn: TSockAddrIn; + Len: integer; +begin + if Socket <> INVALID_SOCKET then + begin + Len:= SizeOf(SockAddrIn); + if getsockname(Socket, SockAddrIn, Len) <> SOCKET_ERROR then + Result:= IntToStr(ntohs(SockAddrIn.sin_port)); + end; +end; + +function TCustomWSocket.PeerToName(Socket: TSocket): string; +var + SockAddrIn: TSockAddrIn; + Len: integer; + HostEnt: PHostEnt; +begin + if Socket <> INVALID_SOCKET then + begin + Len:= SizeOf(SockAddrIn); + if getpeername(Socket, SockAddrIn, Len) <> SOCKET_ERROR then + begin + HostEnt:= gethostbyaddr(@SockAddrIn.sin_addr.S_addr, 4, AF_INET); + if HostEnt <> nil then + Result:= HostEnt.h_name; + end; + end; +end; + +function TCustomWSocket.PeerToAddress(Socket: TSocket): string; +var + SockAddrIn: TSockAddrIn; + Len: integer; +begin + if Socket <> INVALID_SOCKET then + begin + Len:= SizeOf(SockAddrIn); + if getpeername(Socket, SockAddrIn, Len) <> SOCKET_ERROR then + Result:= inet_ntoa(SockAddrIn.sin_addr); + end; +end; + +function TCustomWSocket.PeerToPort(Socket: TSocket): string; +var + SockAddrIn: TSockAddrIn; + Len: integer; +begin + if Socket <> INVALID_SOCKET then + begin + Len:= SizeOf(SockAddrIn); + if getpeername(Socket, SockAddrIn, Len) <> SOCKET_ERROR then + Result:= IntToStr(ntohs(SockAddrIn.sin_port)); + end; +end; + +procedure TCustomWSocket.SocketClose(var Socket: TSocket; Handle: HWND); +var + RC: integer; +begin + if Socket <> INVALID_SOCKET then + begin + if WSAASyncSelect(Socket, Handle, WM_ASYNCSELECT, 0) <> 0 then + begin + SocketError(WSAGetLastError); + Exit; + end; + + if shutdown(Socket, 1) <> 0 then + if WSAGetLastError <> WSAENOTCONN then + begin + SocketError(WSAGetLastError); + Exit; + end; + + repeat + RC:= recv(Socket, FReadBuffer, SizeOf(TReadBuffer), 0); + until (RC = 0) or (RC = SOCKET_ERROR); + + if closesocket(Socket) <> 0 then + SocketError(WSAGetLastError) + else + Socket:= INVALID_SOCKET; + end; +end; + +function TCustomWSocket.SocketQueueSize(Socket: TSocket): longint; +var + Size: longint; +begin + Result:= 0; + if ioctlsocket(Socket, FIONREAD, Size) <> 0 then + SocketError(WSAGetLastError) + else + Result:= Size; +end; + +procedure TCustomWSocket.SocketWrite(Socket: TSocket; Flag: integer; Data: string); +var + TotSent, ToSend, Sent, ErrorLoop: integer; +begin + if Data <> '' then + begin + ErrorLoop:= 0; + TotSent:= 0; + ToSend:= Length(Data); + repeat + Sent:= send(Socket, Data[TotSent+1], (ToSend-TotSent), Flag); + if Sent = SOCKET_ERROR then + begin + Inc(ErrorLoop); + if WSAGetLastError <> WSAEWOULDBLOCK then + begin + SocketError(WSAGetLastError); + Exit; + end; + end + else + Inc(TotSent, Sent); + until (TotSent >= ToSend) or (ErrorLoop > MAX_LOOP); + end; +end; + +function TCustomWSocket.SocketRead(Socket: TSocket; Flag: integer): string; +var + Received: longint; +begin + Result:= ''; + Received:= recv(Socket, FReadBuffer, SizeOf(TReadBuffer), Flag); + if Received = SOCKET_ERROR then + begin + if WSAGetLastError <> WSAEWOULDBLOCK then + SocketError(WSAGetLastError); + end + else + begin + SetLength(Result, Received); + Move(FReadBuffer, Result[1], Received); + end; +end; + +function TCustomWSocket.SocketWriteBuffer(Socket: TSocket; Buffer: Pointer; Size, Flag: integer): integer; +begin + Result:= send(Socket, Buffer^, Size, Flag); + if Result = SOCKET_ERROR then + begin + Result:= 0; + if WSAGetLastError <> WSAEWOULDBLOCK then + SocketError(WSAGetLastError); + end; +end; + +function TCustomWSocket.SocketReadBuffer(Socket: TSocket; Buffer: Pointer; Size, Flag: integer): integer; +begin + Result:= recv(Socket, Buffer^, Size, Flag); + if Result = SOCKET_ERROR then + begin + Result:= 0; + if WSAGetLastError <> WSAEWOULDBLOCK then + SocketError(WSAGetLastError); + end; +end; + +procedure TCustomWSocket.SocketWriteTo(Socket: TSocket; Flag: integer; Data: string; var SockAddrIn: TSockAddrIn); +var + TotSent, ToSend, Sent, ErrorLoop: integer; +begin + if Data <> '' then + begin + ErrorLoop:= 0; + TotSent:= 0; + ToSend:= Length(Data); + repeat + Sent:= sendto(Socket, Data[TotSent+1], (ToSend-TotSent), Flag, SockAddrIn, SizeOf(SockAddrIn)); + if Sent = SOCKET_ERROR then + begin + Inc(ErrorLoop); + if WSAGetLastError <> WSAEWOULDBLOCK then + begin + SocketError(WSAGetLastError); + Exit; + end; + end + else + Inc(TotSent, Sent); + until (TotSent >= ToSend) or (ErrorLoop > MAX_LOOP); + end; +end; + +function TCustomWSocket.SocketReadFrom(Socket: TSocket; Flag: integer; var SockAddrIn: TSockAddrIn): string; +var + Len: integer; + Received: longint; +begin + Len:= SizeOf(SockAddrIn); + Received:= recvfrom(Socket, FReadBuffer, SizeOf(TReadBuffer), Flag, SockAddrIn, Len); + if Received = SOCKET_ERROR then + begin + if WSAGetLastError <> WSAEWOULDBLOCK then + SocketError(WSAGetLastError); + end + else + begin + SetLength(Result, Received); + Move(FReadBuffer, Result[1], Received); + end; +end; + +function TCustomWSocket.SocketWriteBufferTo(Socket: TSocket; Buffer: Pointer; Size, Flag: integer; var SockAddrIn: TSockAddrIn): integer; +begin + Result:= sendto(Socket, Buffer^, Size, Flag, SockAddrIn, SizeOf(SockAddrIn)); + if Result = SOCKET_ERROR then + begin + Result:= 0; + if WSAGetLastError <> WSAEWOULDBLOCK then + SocketError(WSAGetLastError); + end; +end; + +function TCustomWSocket.SocketReadBufferFrom(Socket: TSocket; Buffer: Pointer; Size, Flag: integer; var SockAddrIn: TSockAddrIn): integer; +var + Len: integer; +begin + Len:= SizeOf(SockAddrIn); + Result:= recvfrom(Socket, Buffer^, Size, Flag, SockAddrIn, Len); + if Result = SOCKET_ERROR then + begin + Result:= 0; + if WSAGetLastError <> WSAEWOULDBLOCK then + SocketError(WSAGetLastError); + end; +end; + +procedure TCustomWSocket.SocketError(Error: integer); +begin + FLastError:= Error; + if Assigned(FOnError) then + FOnError(Self, FLastError, LastErrorDesc); +end; + +function TCustomWSocket.LastErrorDesc: string; +begin + case FLastError of + WSAEINTR : Result:= 'Interrupted system call'; + WSAEBADF : Result:= 'Bad file number'; + WSAEACCES : Result:= 'Permission denied'; + WSAEFAULT : Result:= 'Bad address'; + WSAEINVAL : Result:= 'Invalid argument'; + WSAEMFILE : Result:= 'Too many open files'; + WSAEWOULDBLOCK : Result:= 'Operation would block'; + WSAEINPROGRESS : Result:= 'Operation now in progress'; + WSAEALREADY : Result:= 'Operation already in progress'; + WSAENOTSOCK : Result:= 'Socket operation on nonsocket'; + WSAEDESTADDRREQ : Result:= 'Destination address required'; + WSAEMSGSIZE : Result:= 'Message too long'; + WSAEPROTOTYPE : Result:= 'Protocol wrong type for socket'; + WSAENOPROTOOPT : Result:= 'Protocol not available'; + WSAEPROTONOSUPPORT : Result:= 'Protocol not supported'; + WSAESOCKTNOSUPPORT : Result:= 'Socket not supported'; + WSAEOPNOTSUPP : Result:= 'Operation not supported on socket'; + WSAEPFNOSUPPORT : Result:= 'Protocol family not supported'; + WSAEAFNOSUPPORT : Result:= 'Address family not supported'; + WSAEADDRINUSE : Result:= 'Address already in use'; + WSAEADDRNOTAVAIL : Result:= 'Can''t assign requested address'; + WSAENETDOWN : Result:= 'Network is down'; + WSAENETUNREACH : Result:= 'Network is unreachable'; + WSAENETRESET : Result:= 'Network dropped connection on reset'; + WSAECONNABORTED : Result:= 'Software caused connection abort'; + WSAECONNRESET : Result:= 'Connection reset by peer'; + WSAENOBUFS : Result:= 'No buffer space available'; + WSAEISCONN : Result:= 'Socket is already connected'; + WSAENOTCONN : Result:= 'Socket is not connected'; + WSAESHUTDOWN : Result:= 'Can''t send after socket shutdown'; + WSAETOOMANYREFS : Result:= 'Too many references:can''t splice'; + WSAETIMEDOUT : Result:= 'Connection timed out'; + WSAECONNREFUSED : Result:= 'Connection refused'; + WSAELOOP : Result:= 'Too many levels of symbolic links'; + WSAENAMETOOLONG : Result:= 'File name is too long'; + WSAEHOSTDOWN : Result:= 'Host is down'; + WSAEHOSTUNREACH : Result:= 'No route to host'; + WSAENOTEMPTY : Result:= 'Directory is not empty'; + WSAEPROCLIM : Result:= 'Too many processes'; + WSAEUSERS : Result:= 'Too many users'; + WSAEDQUOT : Result:= 'Disk quota exceeded'; + WSAESTALE : Result:= 'Stale NFS file handle'; + WSAEREMOTE : Result:= 'Too many levels of remote in path'; + WSASYSNOTREADY : Result:= 'Network subsystem is unusable'; + WSAVERNOTSUPPORTED : Result:= 'Winsock DLL cannot support this application'; + WSANOTINITIALISED : Result:= 'Winsock not initialized'; + WSAHOST_NOT_FOUND : Result:= 'Host not found'; + WSATRY_AGAIN : Result:= 'Non authoritative - host not found'; + WSANO_RECOVERY : Result:= 'Non recoverable error'; + WSANO_DATA : Result:= 'Valid name, no data record of requested type' + else + Result:= 'Not a Winsock error'; + end; +end; + +function TCustomWSocket.GetLocalHostAddress: string; +var + SockAddrIn: TSockAddrIn; + HostEnt: PHostEnt; + szHostName: array[0..128] of char; +begin + if gethostname(szHostName, 128) = 0 then + begin + HostEnt:= gethostbyname(szHostName); + if HostEnt = nil then + Result:= '' + else + begin + SockAddrIn.sin_addr.S_addr:= longint(plongint(HostEnt^.h_addr_list^)^); + Result:= inet_ntoa(SockAddrIn.sin_addr); + end; + end + else + SocketError(WSAGetLastError); +end; + +function TCustomWSocket.GetLocalHostName: string; +var + szHostName: array[0..128] of char; +begin + if gethostname(szHostName, 128) = 0 then + Result:= szHostName + else + SocketError(WSAGetLastError); +end; + +(**** TTCPClient Class ****) + +constructor TTCPClient.Create(AOwner: TComponent); +begin + inherited Create(AOwner); + FHandle:= AllocateHWnd(WndProc); + FProtocol:= IPPROTO_TCP; + FType:= SOCK_STREAM; +end; + +destructor TTCPClient.Destroy; +begin + Close; + DeallocateHWnd(FHandle); + inherited Destroy; +end; + +procedure TTCPClient.OpenConnection(Socket: TSocket; Error: word); +var + EventMask: longint; +begin + if Error <> 0 then + SocketError(Error) + else + begin + EventMask:= FD_READ or FD_CLOSE; + if WSAASyncSelect(FLocalSocket, FHandle, WM_ASYNCSELECT, EventMask) <> 0 then + SocketError(WSAGetLastError) + else + begin + if Assigned(FOnConnect) then + FOnConnect(Self, Socket); + FSocketState:= ssConnected; + end; + end; +end; + +procedure TTCPClient.CloseConnection(Socket: TSocket; Error: word); +begin + if Error = WSAENETDOWN then + SocketError(Error) + else + begin + if Assigned(FOnClose) then + FOnClose(Self, Socket); + Close; + end; +end; + +procedure TTCPClient.IncommingData(Socket: TSocket; Error: word); +begin + if Error <> 0 then + SocketError(Error) + else + if Assigned(FOnData) then + FOnData(Self, Socket); +end; + +procedure TTCPClient.WndProc(var AMsg: TMessage); +var + Error: word; +begin + with AMsg do + case Msg of + WM_ASYNCSELECT: + begin + if (FSocketState = ssClosed) then + Exit; + Error:= WSAGetSelectError(LParam); + case WSAGetSelectEvent(LParam) of + FD_READ : IncommingData(WParam, Error); + FD_CONNECT: OpenConnection(WParam, Error); + FD_CLOSE : CloseConnection(WParam, Error); + else + if Error <> 0 then + SocketError(Error); + end; + end; + else + Result:= DefWindowProc(FHandle, Msg, WParam, LParam); + end; +end; + +procedure TTCPClient.Open; +var + SockAddrIn: TSockAddrIn; + SockOpt: LongBool; + EventMask: longint; +begin + if (FSocketState <> ssClosed) then + Exit; + + if not GetSockAddrIn(FHost, FPort, SockAddrIn) then + Exit; + + FLocalSocket:= socket(PF_INET, FType, 0); + if FLocalSocket = INVALID_SOCKET then + begin + SocketError(WSAGetLastError); + Exit; + end; + + EventMask:= (FD_CONNECT or FD_READ or FD_CLOSE); + if WSAASyncSelect(FLocalSocket, FHandle, WM_ASYNCSELECT, EventMask) <> 0 then + begin + SocketError(WSAGetLastError); + closesocket(FLocalSocket); + Exit; + end; + + SockOpt:= true; {Enable OOB Data inline} + if setsockopt(FLocalSocket, SOL_SOCKET, SO_OOBINLINE, PChar(@SockOpt), SizeOf(SockOpt)) <> 0 then + begin + SocketError(WSAGetLastError); + closesocket(FLocalSocket); + Exit; + end; + + if connect(FLocalSocket, SockAddrIn, SizeOf(SockAddrIn)) <> 0 then + begin + if WSAGetLastError <> WSAEWOULDBLOCK then + begin + SocketError(WSAGetLastError); + closesocket(FLocalSocket); + Exit; + end; + end; + + FSocketState:= ssOpen; +end; + +procedure TTCPClient.Close; +begin + if (FSocketState = ssNotStarted) or (FSocketState = ssClosed) then + Exit; + + SocketClose(FLocalSocket, FHandle); + if FLocalSocket = INVALID_SOCKET then + FSocketState:= ssClosed; +end; + +procedure TTCPClient.Write(Data: string); +begin + SocketWrite(FLocalSocket, 0, Data); +end; + +function TTCPClient.Read: string; +begin + Result:= SocketRead(FLocalSocket, 0); +end; + +function TTCPClient.Peek: string; +begin + Result:= SocketRead(FLocalSocket, MSG_PEEK); +end; + +function TTCPClient.WriteBuffer(Buffer: Pointer; Size: integer): integer; +begin + Result:= SocketWriteBuffer(FLocalSocket, Buffer, Size, 0); +end; + +function TTCPClient.ReadBuffer(Buffer: Pointer; Size: integer): integer; +begin + Result:= SocketReadBuffer(FLocalSocket, Buffer, Size, 0); +end; + +function TTCPClient.GetPeerAddress: string; +begin + Result:= PeerToAddress(FLocalSocket); +end; + +function TTCPClient.GetPeerPort: string; +begin + Result:= PeerToPort(FLocalSocket); +end; + +(**** TTCPServer Class ****) + +constructor TTCPServer.Create(AOwner: TComponent); +begin + inherited Create(AOwner); + FHandle:= AllocateHWnd(WndProc); + FProtocol:= IPPROTO_TCP; + FType:= SOCK_STREAM; + FClients:= TClientList.Create; +end; + +destructor TTCPServer.Destroy; +begin + Close; + DeallocateHWnd(FHandle); + FClients.Free; + inherited Destroy; +end; + +procedure TTCPServer.OpenConnection(Socket: TSocket; Error: word); +var + Len: integer; + NewSocket: TSocket; + SockAddrIn: TSockAddrIn; + SockOpt: LongBool; + EventMask: longint; +begin + if Error <> 0 then + SocketError(Error) + else + begin + Len:= SizeOf(SockAddrIn); + //{$IFDEF VER100} // Delphi 3 + NewSocket:= accept(FLocalSocket, @SockAddrIn, @Len); + //{$ELSE} // Delphi 2 + //NewSocket:= accept(FLocalSocket, SockAddrIn, Len); + //{$ENDIF} + if NewSocket = INVALID_SOCKET then + begin + SocketError(WSAGetLastError); + Exit; + end; + + EventMask:= (FD_READ or FD_CLOSE); + if WSAASyncSelect(NewSocket, FHandle, WM_ASYNCSELECT, EventMask) <> 0 then + begin + SocketError(WSAGetLastError); + closesocket(NewSocket); + Exit; + end; + + SockOpt:= true; {Enable OOB Data inline} + if setsockopt(NewSocket, SOL_SOCKET, SO_OOBINLINE , PChar(@SockOpt), SizeOf(SockOpt)) <> 0 then + begin + SocketError(WSAGetLastError); + closesocket(NewSocket); + Exit; + end; + + if not FClients.Add(NewSocket) then + SocketClose(NewSocket, FHandle) + else + if Assigned(FOnAccept) then + FOnAccept(Self, NewSocket); + end; +end; + +procedure TTCPServer.CloseConnection(Socket: TSocket; Error: word); +begin + if Error = WSAENETDOWN then + SocketError(Error) + else + begin + if Assigned(FOnClose) then + FOnClose(Self, Socket); + Disconnect(Socket); + end; +end; + +procedure TTCPServer.IncommingData(Socket: TSocket; Error: word); +begin + if Error <> 0 then + SocketError(Error) + else + if Assigned(FOnData) then + FOnData(Self, Socket); +end; + +procedure TTCPServer.WndProc(var AMsg: TMessage); +var + Error: word; +begin + with AMsg do + case Msg of + WM_ASYNCSELECT: + begin + if (FSocketState = ssClosed) then + Exit; + Error:= WSAGetSelectError(LParam); + case WSAGetSelectEvent(LParam) of + FD_READ : IncommingData(WParam, Error); + FD_ACCEPT: OpenConnection(WParam, Error); + FD_CLOSE : CloseConnection(WParam, Error); + else + if Error <> 0 then + SocketError(Error); + end; + end; + else + Result:= DefWindowProc(FHandle, Msg, WParam, LParam); + end; +end; + +procedure TTCPServer.Open; +var + SockAddrIn: TSockAddrIn; +begin + if (FSocketState <> ssClosed) then + Exit; + + if not GetAnySockAddrIn(FPort, SockAddrIn) then + Exit; + + FLocalSocket:= socket(PF_INET, FType, 0); + if FLocalSocket = INVALID_SOCKET then + begin + SocketError(WSAGetLastError); + Exit; + end; + + if WSAASyncSelect(FLocalSocket, FHandle, WM_ASYNCSELECT, FD_ACCEPT) <> 0 then + begin + SocketError(WSAGetLastError); + closesocket(FLocalSocket); + Exit; + end; + + if bind(FLocalSocket, SockAddrIn, SizeOf(SockAddrIn)) <> 0 then + begin + SocketError(WSAGetLastError); + closesocket(FLocalSocket); + Exit; + end; + + if listen(FLocalSocket, 5) <> 0 then + begin + SocketError(WSAGetLastError); + closesocket(FLocalSocket); + Exit; + end; + + FSocketState:= ssListening; +end; + +procedure TTCPServer.Close; +var + i: integer; + Dummy: TSocket; +begin + if (FSocketState = ssNotStarted) or (FSocketState = ssClosed) then + Exit; + + for i:= 0 to FClients.Count-1 do + begin + Dummy:= FClients[i]; + SocketClose(Dummy, FHandle); + end; + FClients.Clear; + + SocketClose(FLocalSocket, FHandle); + if FLocalSocket = INVALID_SOCKET then + FSocketState:= ssClosed; +end; + +procedure TTCPServer.Write(Socket: TSocket; Data: string); +begin + SocketWrite(Socket, 0, Data); +end; + +function TTCPServer.Read(Socket: TSocket): string; +begin + Result:= SocketRead(Socket, 0); +end; + +function TTCPServer.Peek(Socket: TSocket): string; +begin + Result:= SocketRead(Socket, MSG_PEEK); +end; + +function TTCPServer.WriteBuffer(Socket: TSocket; Buffer: Pointer; Size: integer): integer; +begin + Result:= SocketWriteBuffer(Socket, Buffer, Size, 0); +end; + +function TTCPServer.ReadBuffer(Socket: TSocket; Buffer: Pointer; Size: integer): integer; +begin + Result:= SocketReadBuffer(Socket, Buffer, Size, 0); +end; + +procedure TTCPServer.Disconnect(Socket: TSocket); +begin + FClients.Delete(Socket); + SocketClose(Socket, FHandle); +end; + +(**** TUDPClient Class ****) + +constructor TUDPClient.Create(AOwner: TComponent); +begin + inherited Create(AOwner); + FHandle:= AllocateHWnd(WndProc); + FProtocol:= IPPROTO_UDP; + FType:= SOCK_DGRAM; +end; + +destructor TUDPClient.Destroy; +begin + Close; + DeallocateHWnd(FHandle); + inherited Destroy; +end; + +procedure TUDPClient.IncommingData(Socket: TSocket; Error: word); +begin + if Error <> 0 then + SocketError(Error) + else + if Assigned(FOnData) then + FOnData(Self, Socket); +end; + +procedure TUDPClient.WndProc(var AMsg: TMessage); +var + Error: word; +begin + with AMsg do + case Msg of + WM_ASYNCSELECT: + begin + if (FSocketState = ssClosed) then + Exit; + Error:= WSAGetSelectError(LParam); + case WSAGetSelectEvent(LParam) of + FD_READ : IncommingData(WParam, Error); + else + if Error <> 0 then + SocketError(Error); + end; + end; + else + Result:= DefWindowProc(FHandle, Msg, WParam, LParam); + end; +end; + +procedure TUDPClient.Open; +var + SockAddrIn: TSockAddrIn; +begin + if (FSocketState <> ssClosed) then + Exit; + + if not GetSockAddrIn(FHost, FPort, SockAddrIn) then + Exit; + + FLocalSocket:= socket(PF_INET, FType, 0); + if FLocalSocket = INVALID_SOCKET then + begin + SocketError(WSAGetLastError); + Exit; + end; + + if WSAASyncSelect(FLocalSocket, FHandle, WM_ASYNCSELECT, FD_READ) <> 0 then + begin + SocketError(WSAGetLastError); + closesocket(FLocalSocket); + Exit; + end; + + if connect(FLocalSocket, SockAddrIn, SizeOf(SockAddrIn)) <> 0 then + begin + if WSAGetLastError <> WSAEWOULDBLOCK then + begin + SocketError(WSAGetLastError); + closesocket(FLocalSocket); + Exit; + end; + end; + + FSocketState:= ssOpen; +end; + +procedure TUDPClient.Close; +begin + if (FSocketState = ssNotStarted) or (FSocketState = ssClosed) then + Exit; + + SocketClose(FLocalSocket, FHandle); + if FLocalSocket = INVALID_SOCKET then + FSocketState:= ssClosed; +end; + +procedure TUDPClient.Write(Data: string); +begin + SocketWrite(FLocalSocket, 0, Data); +end; + +function TUDPClient.Read: string; +begin + Result:= SocketRead(FLocalSocket, 0); +end; + +function TUDPClient.Peek: string; +begin + Result:= SocketRead(FLocalSocket, MSG_PEEK); +end; + +function TUDPClient.WriteBuffer(Buffer: Pointer; Size: integer): integer; +begin + Result:= SocketWriteBuffer(FLocalSocket, Buffer, Size, 0); +end; + +function TUDPClient.ReadBuffer(Buffer: Pointer; Size: integer): integer; +begin + Result:= SocketReadBuffer(FLocalSocket, Buffer, Size, 0); +end; + +function TUDPClient.GetPeerAddress: string; +begin + Result:= PeerToAddress(FLocalSocket); +end; + +function TUDPClient.GetPeerPort: string; +begin + Result:= PeerToPort(FLocalSocket); +end; + +(**** TUDPServer Class ****) + +constructor TUDPServer.Create(AOwner: TComponent); +begin + inherited Create(AOwner); + FHandle:= AllocateHWnd(WndProc); + FProtocol:= IPPROTO_UDP; + FType:= SOCK_DGRAM; +end; + +destructor TUDPServer.Destroy; +begin + Close; + DeallocateHWnd(FHandle); + inherited Destroy; +end; + +procedure TUDPServer.IncommingData(Socket: TSocket; Error: word); +begin + if Error <> 0 then + SocketError(Error) + else + if Assigned(FOnData) then + FOnData(Self, Socket); +end; + +procedure TUDPServer.WndProc(var AMsg: TMessage); +var + Error: word; +begin + with AMsg do + case Msg of + WM_ASYNCSELECT: + begin + if (FSocketState = ssClosed) then + Exit; + Error:= WSAGetSelectError(LParam); + case WSAGetSelectEvent(LParam) of + FD_READ : IncommingData(WParam, Error); + else + if Error <> 0 then + SocketError(Error); + end; + end; + else + Result:= DefWindowProc(FHandle, Msg, WParam, LParam); + end; +end; + +procedure TUDPServer.Open; +var + SockAddrIn: TSockAddrIn; + SockOpt: LongBool; +begin + if (FSocketState <> ssClosed) then + Exit; + + if not GetAnySockAddrIn(FPort, SockAddrIn) then + Exit; + + FLocalSocket:= socket(PF_INET, FType, 0); + if FLocalSocket = INVALID_SOCKET then + begin + SocketError(WSAGetLastError); + Exit; + end; + + if WSAASyncSelect(FLocalSocket, FHandle, WM_ASYNCSELECT, FD_READ) <> 0 then + begin + SocketError(WSAGetLastError); + closesocket(FLocalSocket); + Exit; + end; + + SockOpt:= true; {Enable Broadcasting on this Socket} + if setsockopt(FLocalSocket, SOL_SOCKET, SO_BROADCAST, PChar(@SockOpt), SizeOf(SockOpt)) <> 0 then + begin + SocketError(WSAGetLastError); + closesocket(FLocalSocket); + Exit; + end; + + if bind(FLocalSocket, SockAddrIn, SizeOf(SockAddrIn)) <> 0 then + begin + SocketError(WSAGetLastError); + closesocket(FLocalSocket); + Exit; + end; + + FSocketState:= ssListening; +end; + +procedure TUDPServer.Close; +begin + if (FSocketState = ssNotStarted) or (FSocketState = ssClosed) then + Exit; + + SocketClose(FLocalSocket, FHandle); + if FLocalSocket = INVALID_SOCKET then + FSocketState:= ssClosed; +end; + +procedure TUDPServer.Write(Socket: TSocket; Data: string; var SockAddrIn: TSockAddrIn); +begin + SocketWriteTo(Socket, 0, Data, SockAddrIn); +end; + +function TUDPServer.Read(Socket: TSocket; var SockAddrIn: TSockAddrIn): string; +begin + Result:= SocketReadFrom(Socket, 0, SockAddrIn); +end; + +function TUDPServer.Peek(Socket: TSocket; var SockAddrIn: TSockAddrIn): string; +begin + Result:= SocketReadFrom(Socket, MSG_PEEK, SockAddrIn); +end; + +function TUDPServer.WriteBuffer(Socket: TSocket; Buffer: Pointer; Size: integer; var SockAddrIn: TSockAddrIn): integer; +begin + Result:= SocketWriteBufferTo(Socket, Buffer, Size, 0, SockAddrIn); +end; + +function TUDPServer.ReadBuffer(Socket: TSocket; Buffer: Pointer; Size: integer; var SockAddrIn: TSockAddrIn): integer; +begin + Result:= SocketReadBufferFrom(Socket, Buffer, Size, 0, SockAddrIn); +end; + +end. diff --git a/Host/Source/MicroBoot/interfaces/net/XcpSettings.dcu b/Host/Source/MicroBoot/interfaces/net/XcpSettings.dcu index 5899114c..0ffb9b93 100644 Binary files a/Host/Source/MicroBoot/interfaces/net/XcpSettings.dcu and b/Host/Source/MicroBoot/interfaces/net/XcpSettings.dcu differ diff --git a/Host/Source/MicroBoot/interfaces/net/XcpSettings.dfm b/Host/Source/MicroBoot/interfaces/net/XcpSettings.dfm index 29555381..47615e4b 100644 Binary files a/Host/Source/MicroBoot/interfaces/net/XcpSettings.dfm and b/Host/Source/MicroBoot/interfaces/net/XcpSettings.dfm differ diff --git a/Host/Source/MicroBoot/interfaces/net/XcpSettings.pas b/Host/Source/MicroBoot/interfaces/net/XcpSettings.pas index 9d5898cf..258e9800 100644 --- a/Host/Source/MicroBoot/interfaces/net/XcpSettings.pas +++ b/Host/Source/MicroBoot/interfaces/net/XcpSettings.pas @@ -81,6 +81,7 @@ type edtPort: TEdit; edtTconnect: TEdit; lblTconnect: TLabel; + chbSocketRetry: TCheckBox; procedure btnOKClick(Sender: TObject); procedure btnCancelClick(Sender: TObject); procedure btnBrowseClick(Sender: TObject); @@ -207,6 +208,7 @@ begin // NET related elements FSettingsForm.edtHostname.Text := settingsIni.ReadString('net', 'hostname', '169.254.19.63'); FSettingsForm.edtPort.Text := settingsIni.ReadString('net', 'port', '1000'); + FSettingsForm.chbSocketRetry.Checked := settingsIni.ReadBool('net', 'retry', false); // XCP related elements FSettingsForm.edtSeedKey.Text := settingsIni.ReadString('xcp', 'seedkey', ExtractFilePath(ParamStr(0))+''); @@ -226,6 +228,7 @@ begin // NET related elements FSettingsForm.edtHostname.Text := '169.254.19.63'; FSettingsForm.edtPort.Text := '1000'; + FSettingsForm.chbSocketRetry.Checked := false; // XCP related elements FSettingsForm.edtSeedKey.Text := ExtractFilePath(ParamStr(0))+''; @@ -248,6 +251,7 @@ begin // NET related elements settingsIni.WriteString('net', 'hostname', FSettingsForm.edtHostname.Text); settingsIni.WriteString('net', 'port', FSettingsForm.edtPort.Text); + settingsIni.WriteBool('net', 'retry', FSettingsForm.chbSocketRetry.Checked); // XCP related elements settingsIni.WriteString('xcp', 'seedkey', FSettingsForm.edtSeedKey.Text); diff --git a/Host/Source/MicroBoot/interfaces/net/XcpTransport.dcu b/Host/Source/MicroBoot/interfaces/net/XcpTransport.dcu index 52a8d9f6..1bc6c8d3 100644 Binary files a/Host/Source/MicroBoot/interfaces/net/XcpTransport.dcu and b/Host/Source/MicroBoot/interfaces/net/XcpTransport.dcu differ diff --git a/Host/Source/MicroBoot/interfaces/net/XcpTransport.pas b/Host/Source/MicroBoot/interfaces/net/XcpTransport.pas index e008a9bb..a3cd24d2 100644 --- a/Host/Source/MicroBoot/interfaces/net/XcpTransport.pas +++ b/Host/Source/MicroBoot/interfaces/net/XcpTransport.pas @@ -1,6 +1,6 @@ unit XcpTransport; //*************************************************************************************** -// Description: XCP transport layer for SCI. +// Description: XCP transport layer for NET. // File Name: XcpTransport.pas // //--------------------------------------------------------------------------------------- @@ -41,7 +41,7 @@ interface // Includes //*************************************************************************************** uses - Windows, Messages, SysUtils, Classes, Forms, IniFiles, Winsock, WSocket; + Windows, Messages, SysUtils, Classes, Forms, IniFiles, WinSock, WSockets; //*************************************************************************************** @@ -55,7 +55,7 @@ const kTcpConnectedTimeoutMs = 1000; // timeout for connecting the socket // Type Definitions //*************************************************************************************** type - TXcpTransportInfo = (kNone, kConnected, kResponse, kError); + TXcpTransportInfo = (kNone, kResponse, kError); type @@ -63,12 +63,12 @@ type private comEventInfo : TXcpTransportInfo; comEvent : THandle; - socket : TWSocket; + socket : TTCPClient; hostname : string; port : string; + connectRetry : Boolean; croCounter : LongWord; - procedure OnSocketSessionConnected(Sender: TObject; Error: Word); - procedure OnSocketDataAvailable(Sender: TObject; ErrCode: Word); + procedure OnSocketDataAvailable(Sender: TObject; WinSocket: TSocket); function MsgWaitForSingleObject(hHandle: THandle; dwMilliseconds: DWORD): DWORD; public packetData : array[0..kMaxPacketSize-1] of Byte; @@ -107,11 +107,10 @@ begin 'Error', MB_OK or MB_ICONERROR ); // create a socket instance - socket := TWSocket.Create(nil); + socket := TTCPClient.Create(nil); // set the socket event handlers - socket.OnSessionConnected := OnSocketSessionConnected; - socket.OnDataAvailable := OnSocketDataAvailable; + socket.OnData := OnSocketDataAvailable; // init CRO counter value croCounter := 1; @@ -161,18 +160,23 @@ begin // configure port port := settingsIni.ReadString('net', 'port', '1000'); + // configure the connection retry feature + connectRetry := settingsIni.ReadBool('net', 'retry', false); + // release ini file object settingsIni.Free; end else begin - // configure defeault hostname + // configure default hostname hostname := '169.254.19.63'; // configure default port port := '1000'; - end; + // configure default connection retry feature setting + connectRetry := false; + end; end; //*** end of Configure *** @@ -185,46 +189,44 @@ end; //*** end of Configure *** //*************************************************************************************** function TXcpTransport.Connect: Boolean; var - waitResult: Integer; + connectTimeout : DWord; begin - // make sure the event is reset - ResetEvent(comEvent); - comEventInfo := kNone; - // init CRO counter value croCounter := 1; // make sure the socket is closed - if socket.State <> wsClosed then + if socket.SocketState <> ssClosed then begin - socket.Close; - socket.WaitForClose; + Disconnect; end; - // set the hostname, port and protocol - socket.Addr := hostname; + // set the hostname and port + socket.Host := hostname; socket.Port := port; - socket.Proto := 'tcp'; - // submit the connect request - socket.Connect; + // set timeout time + connectTimeout := GetTickCount + 1000; - // connection is being established. Now wait for the connected event - waitResult := MsgWaitForSingleObject(comEvent, kTcpConnectedTimeoutMs); - - if waitResult <> WAIT_OBJECT_0 then + // submit request to open the socket + socket.Open; + // wait for the connection to be established + while socket.SocketState <> ssConnected do begin - // no com event triggered so either a timeout or internal error occurred - result := false; - Exit; + // check timeout if connection retry feature is enabled + if connectRetry then + begin + // check for timeout + if GetTickCount > connectTimeout then + begin + result := false; + Exit; + end; + end; + + Application.ProcessMessages; + Sleep(1); end; - // com event was triggered. now check that it is actually not an error - if comEventInfo <> kConnected then - begin - result := false; - Exit; - end; // successfully connected result := true; end; //*** end of Connect *** @@ -271,7 +273,7 @@ begin end; // submit the packet transmission request - if socket.Send(@msgData[0], packetLen+4) = -1 then + if socket.WriteBuffer(@msgData[0], packetLen+4) = -1 then begin // unable to submit tx request Exit; @@ -310,46 +312,24 @@ procedure TXcpTransport.Disconnect; begin // close the socket socket.Close; - socket.WaitForClose; end; //*** end of Disconnect *** -//*************************************************************************************** -// NAME: OnSocketSessionConnected -// PARAMETER: Sender is the source that triggered the event. -// Error contains possible connection error information. -// RETURN VALUE: none -// DESCRIPTION: Socket connected event handler -// -//*************************************************************************************** -procedure TXcpTransport.OnSocketSessionConnected(Sender: TObject; Error: Word); -begin - // set event flag - if Error <> 0 then - comEventInfo := kError - else - comEventInfo := kConnected; - - // trigger the event - SetEvent(comEvent); -end; //*** end of OnSocketSessionConnected *** - - //*************************************************************************************** // NAME: OnSocketDataAvailable // PARAMETER: Sender is the source that triggered the event. -// Error contains possible data reception error information. +// Socket is the socket on which the event occurred. // RETURN VALUE: none // DESCRIPTION: Socket data reception event handler // //*************************************************************************************** -procedure TXcpTransport.OnSocketDataAvailable(Sender: TObject; ErrCode: Word); +procedure TXcpTransport.OnSocketDataAvailable(Sender: TObject; WinSocket: TSocket); var tempBuffer : array[0..kMaxPacketSize-1] of Byte; count : Integer; idx : Integer; begin - count := socket.Receive(@tempBuffer[0], kMaxPacketSize); + count := socket.ReadBuffer(@tempBuffer[0], kMaxPacketSize); // the first 4 bytes contains the dto counter in which we are not really interested packetLen := count - 4; // store the response data @@ -394,7 +374,6 @@ begin begin // process these messages Application.ProcessMessages; - socket.MessagePump; // check for timeout manually because if a message in the queue occurred, the // MsgWaitForMultipleObjects will be called again and the timer will start from diff --git a/Host/Source/MicroBoot/interfaces/net/XcpTransport.~pa b/Host/Source/MicroBoot/interfaces/net/XcpTransport.~pa index 179c1567..b7e3f9e7 100644 --- a/Host/Source/MicroBoot/interfaces/net/XcpTransport.~pa +++ b/Host/Source/MicroBoot/interfaces/net/XcpTransport.~pa @@ -1,6 +1,6 @@ unit XcpTransport; //*************************************************************************************** -// Description: XCP transport layer for SCI. +// Description: XCP transport layer for NET. // File Name: XcpTransport.pas // //--------------------------------------------------------------------------------------- @@ -41,7 +41,7 @@ interface // Includes //*************************************************************************************** uses - Windows, Messages, SysUtils, Classes, Forms, IniFiles, Winsock, WSocket; + Windows, Messages, SysUtils, Classes, Forms, IniFiles, WinSock, WSockets; //*************************************************************************************** @@ -49,14 +49,13 @@ uses //*************************************************************************************** const kMaxPacketSize = 256 + 4; // 4 extra for TCP/IP counter overhead const kTcpConnectedTimeoutMs = 1000; // timeout for connecting the socket -const kTcpMinReceptionTimeoutMs = 1000; // minimal timeout for data reception //*************************************************************************************** // Type Definitions //*************************************************************************************** type - TXcpTransportInfo = (kNone, kConnected, kResponse, kError); + TXcpTransportInfo = (kNone, kResponse, kError); type @@ -64,12 +63,11 @@ type private comEventInfo : TXcpTransportInfo; comEvent : THandle; - socket : TWSocket; + socket : TTCPClient; hostname : string; port : string; croCounter : LongWord; - procedure OnSocketSessionConnected(Sender: TObject; Error: Word); - procedure OnSocketDataAvailable(Sender: TObject; ErrCode: Word); + procedure OnSocketDataAvailable(Sender: TObject; WinSocket: TSocket); function MsgWaitForSingleObject(hHandle: THandle; dwMilliseconds: DWORD): DWORD; public packetData : array[0..kMaxPacketSize-1] of Byte; @@ -108,11 +106,10 @@ begin 'Error', MB_OK or MB_ICONERROR ); // create a socket instance - socket := TWSocket.Create(nil); + socket := TTCPClient.Create(nil); // set the socket event handlers - socket.OnSessionConnected := OnSocketSessionConnected; - socket.OnDataAvailable := OnSocketDataAvailable; + socket.OnData := OnSocketDataAvailable; // init CRO counter value croCounter := 1; @@ -167,13 +164,12 @@ begin end else begin - // configure defeault hostname + // configure default hostname hostname := '169.254.19.63'; // configure default port port := '1000'; end; - end; //*** end of Configure *** @@ -186,46 +182,40 @@ end; //*** end of Configure *** //*************************************************************************************** function TXcpTransport.Connect: Boolean; var - waitResult: Integer; + connectTimeout : DWord; begin - // make sure the event is reset - ResetEvent(comEvent); - comEventInfo := kNone; - // init CRO counter value croCounter := 1; // make sure the socket is closed - if socket.State <> wsClosed then + if socket.SocketState <> ssClosed then begin - socket.Close; - socket.WaitForClose; + Disconnect; end; - // set the hostname, port and protocol - socket.Addr := hostname; + // set the hostname and port + socket.Host := hostname; socket.Port := port; - socket.Proto := 'tcp'; - // submit the connect request - socket.Connect; + // set timeout time + connectTimeout := GetTickCount + 1000; - // connection is being established. Now wait for the connected event - waitResult := MsgWaitForSingleObject(comEvent, kTcpConnectedTimeoutMs); - - if waitResult <> WAIT_OBJECT_0 then + // submit request to open the socket + socket.Open; + // wait for the connection to be established + while socket.SocketState <> ssConnected do begin - // no com event triggered so either a timeout or internal error occurred - result := false; - Exit; + // check for timeout + if GetTickCount > connectTimeout then + begin + result := false; + Exit; + end; + + Application.ProcessMessages; + Sleep(1); end; - // com event was triggered. now check that it is actually not an error - if comEventInfo <> kConnected then - begin - result := false; - Exit; - end; // successfully connected result := true; end; //*** end of Connect *** @@ -244,7 +234,6 @@ var msgData : array of Byte; cnt : byte; waitResult: Integer; - adjustedTimeoutMs: LongWord; begin // make sure the event is reset ResetEvent(comEvent); @@ -273,22 +262,14 @@ begin end; // submit the packet transmission request - if socket.Send(@msgData[0], packetLen+4) = -1 then + if socket.WriteBuffer(@msgData[0], packetLen+4) = -1 then begin // unable to submit tx request Exit; end; - // realistically, on TCP/IP due to network latency the reception of a packet can take - // a little while. if a really short timeout time is specified, this should be over- - // ruled. - if timeOutms < kTcpMinReceptionTimeoutMs then - adjustedTimeoutMs := kTcpMinReceptionTimeoutMs - else - adjustedTimeoutMs := timeOutms; - // packet is being transmitted. Now wait for the response to come in - waitResult := MsgWaitForSingleObject(comEvent, adjustedTimeoutMs); + waitResult := MsgWaitForSingleObject(comEvent, timeOutms); if waitResult <> WAIT_OBJECT_0 then begin @@ -320,46 +301,24 @@ procedure TXcpTransport.Disconnect; begin // close the socket socket.Close; - socket.WaitForClose; end; //*** end of Disconnect *** -//*************************************************************************************** -// NAME: OnSocketSessionConnected -// PARAMETER: Sender is the source that triggered the event. -// Error contains possible connection error information. -// RETURN VALUE: none -// DESCRIPTION: Socket connected event handler -// -//*************************************************************************************** -procedure TXcpTransport.OnSocketSessionConnected(Sender: TObject; Error: Word); -begin - // set event flag - if Error <> 0 then - comEventInfo := kError - else - comEventInfo := kConnected; - - // trigger the event - SetEvent(comEvent); -end; //*** end of OnSocketSessionConnected *** - - //*************************************************************************************** // NAME: OnSocketDataAvailable // PARAMETER: Sender is the source that triggered the event. -// Error contains possible data reception error information. +// Socket is the socket on which the event occurred. // RETURN VALUE: none // DESCRIPTION: Socket data reception event handler // //*************************************************************************************** -procedure TXcpTransport.OnSocketDataAvailable(Sender: TObject; ErrCode: Word); +procedure TXcpTransport.OnSocketDataAvailable(Sender: TObject; WinSocket: TSocket); var tempBuffer : array[0..kMaxPacketSize-1] of Byte; count : Integer; idx : Integer; begin - count := socket.Receive(@tempBuffer[0], kMaxPacketSize); + count := socket.ReadBuffer(@tempBuffer[0], kMaxPacketSize); // the first 4 bytes contains the dto counter in which we are not really interested packetLen := count - 4; // store the response data @@ -404,7 +363,6 @@ begin begin // process these messages Application.ProcessMessages; - socket.MessagePump; // check for timeout manually because if a message in the queue occurred, the // MsgWaitForMultipleObjects will be called again and the timer will start from diff --git a/Host/Source/MicroBoot/interfaces/net/openblt_net.dpr b/Host/Source/MicroBoot/interfaces/net/openblt_net.dpr index 288c282f..b27bface 100644 --- a/Host/Source/MicroBoot/interfaces/net/openblt_net.dpr +++ b/Host/Source/MicroBoot/interfaces/net/openblt_net.dpr @@ -55,7 +55,8 @@ uses XcpDataFile in '..\XcpDataFile.pas', XcpLoader in '..\XcpLoader.pas', XcpTransport in 'XcpTransport.pas', - XcpSettings in 'XcpSettings.pas' {XcpSettingsForm}; + XcpSettings in 'XcpSettings.pas' {XcpSettingsForm}, + WSockets in 'WSockets.pas'; //*************************************************************************************** @@ -260,7 +261,7 @@ begin timer.Enabled := False; // connect the transport layer - MbiCallbackOnInfo('Connecting to target via TCP/IP.'); + MbiCallbackOnInfo('Connecting to target via TCP/IP. Reset your target if this takes a long time.'); MbiCallbackOnLog('Connecting to target via TCP/IP. t='+TimeToStr(Time)); Application.ProcessMessages; if not loader.Connect then @@ -296,7 +297,7 @@ begin MbiCallbackOnLog('No response from target. Disconnecting TCP/IP socket. t='+TimeToStr(Time)); loader.Disconnect; // connect the transport layer - MbiCallbackOnInfo('Connecting to target via TCP/IP.'); + MbiCallbackOnInfo('Connecting to target via TCP/IP. Reset your target if this takes a long time.'); MbiCallbackOnLog('Connecting to target via TCP/IP. t='+TimeToStr(Time)); Application.ProcessMessages; if not loader.Connect then diff --git a/Host/Source/MicroBoot/interfaces/net/openblt_net.~dp b/Host/Source/MicroBoot/interfaces/net/openblt_net.~dp index 638233aa..c257b35e 100644 --- a/Host/Source/MicroBoot/interfaces/net/openblt_net.~dp +++ b/Host/Source/MicroBoot/interfaces/net/openblt_net.~dp @@ -260,7 +260,7 @@ begin timer.Enabled := False; // connect the transport layer - MbiCallbackOnInfo('Connecting to target via TCP/IP.'); + MbiCallbackOnInfo('Connecting to target via TCP/IP. Reset your target if this takes a long time.'); MbiCallbackOnLog('Connecting to target via TCP/IP. t='+TimeToStr(Time)); Application.ProcessMessages; if not loader.Connect then @@ -283,25 +283,60 @@ begin end; end; - //---------------- start the programming session -------------------------------------- + // we now have a socket connected to the target. next attempt to connect to the target + // via XCP. MbiCallbackOnLog('Starting the programming session. t='+TimeToStr(Time)); - - // try initial connect via XCP if not loader.StartProgrammingSession then begin - // update the user info - MbiCallbackOnInfo('Could not connect. Please reset your target...'); - MbiCallbackOnLog('Connect failed. Switching to backdoor entry mode. t='+TimeToStr(Time)); + // note that a running user program might have received the connect command and + // performed a software reset to activate the bootloader. this causes a reconfigu- + // ration of the ethernet controller so we need to disconnect the socket here and + // wait for it to reconnect. + MbiCallbackOnInfo('No response from target. Disconnecting TCP/IP socket.'); + MbiCallbackOnLog('No response from target. Disconnecting TCP/IP socket. t='+TimeToStr(Time)); + loader.Disconnect; + // connect the transport layer + MbiCallbackOnInfo('Connecting to target via TCP/IP. Reset your target if this takes a long time.'); + MbiCallbackOnLog('Connecting to target via TCP/IP. t='+TimeToStr(Time)); Application.ProcessMessages; - // continuously try to connect via XCP true the backdoor - while not loader.StartProgrammingSession do + if not loader.Connect then begin + // update the user info + MbiCallbackOnInfo('Could not connect via TCP/IP. Retrying. Reset your target if this takes a long time.'); + MbiCallbackOnLog('Transport layer connection failed. Check the configured IP address and port. t='+TimeToStr(Time)); + MbiCallbackOnLog('Retrying transport layer connection. Reset your target if this takes a long time. t='+TimeToStr(Time)); Application.ProcessMessages; - Sleep(5); - if stopRequest then + // continuously try to connect the transport layer + while not loader.Connect do begin - MbiCallbackOnError('Programming session cancelled by user.'); - Exit; + Application.ProcessMessages; + Sleep(5); + if stopRequest then + begin + MbiCallbackOnError('Transport layer connection cancelled by user.'); + Exit; + end; + end; + end; + //---------------- start the programming session -------------------------------------- + MbiCallbackOnLog('Starting the programming session. t='+TimeToStr(Time)); + // try initial connect via XCP + if not loader.StartProgrammingSession then + begin + // update the user info + MbiCallbackOnInfo('Could not connect. Please reset your target...'); + MbiCallbackOnLog('Connect failed. Switching to backdoor entry mode. t='+TimeToStr(Time)); + Application.ProcessMessages; + // continuously try to connect via XCP true the backdoor + while not loader.StartProgrammingSession do + begin + Application.ProcessMessages; + Sleep(5); + if stopRequest then + begin + MbiCallbackOnError('Programming session cancelled by user.'); + Exit; + end; end; end; end; diff --git a/Host/Source/MicroBoot/interfaces/net/readme.txt b/Host/Source/MicroBoot/interfaces/net/readme.txt deleted file mode 100644 index bdf1025c..00000000 --- a/Host/Source/MicroBoot/interfaces/net/readme.txt +++ /dev/null @@ -1,5 +0,0 @@ -To build this interface in Delphi, the freeware Internet Component Suite (ICT) from F. Piette -should be installed in Delphi. It is located in the "OverbyteIcsV5.zip" archive. - -For more information about ICS, visit: http://www.overbyte.be/frame_index.html - diff --git a/Host/openblt_net.dll b/Host/openblt_net.dll index 576a9494..7837a91f 100644 Binary files a/Host/openblt_net.dll and b/Host/openblt_net.dll differ diff --git a/Host/openblt_net.ini b/Host/openblt_net.ini index c757969c..f319755a 100644 --- a/Host/openblt_net.ini +++ b/Host/openblt_net.ini @@ -1,6 +1,7 @@ [net] hostname=169.254.19.63 port=1000 +retry=1 [xcp] seedkey= t1=1000 diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Boot/bin/openbtl_ek_lm3s6965.elf b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Boot/bin/openbtl_ek_lm3s6965.elf index b4977833..bcb985c8 100644 Binary files a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Boot/bin/openbtl_ek_lm3s6965.elf and b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Boot/bin/openbtl_ek_lm3s6965.elf differ diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Boot/bin/openbtl_ek_lm3s6965.map b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Boot/bin/openbtl_ek_lm3s6965.map index 4e0b36aa..d03d5805 100644 --- a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Boot/bin/openbtl_ek_lm3s6965.map +++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Boot/bin/openbtl_ek_lm3s6965.map @@ -1283,7 +1283,7 @@ Linker script and memory map 0x00000001 . = ASSERT (((__init_end__ >= __FLASH_segment_start__) && (__init_end__ <= __FLASH_segment_end__)), error: .init is too large to fit in FLASH memory segment) 0x00000290 __text_load_start__ = ALIGN (__init_end__, 0x4) -.text 0x00000290 0x55c4 +.text 0x00000290 0x55c8 0x00000290 __text_start__ = . *(.text .text.* .glue_7t .glue_7 .gnu.linkonce.t.* .gcc_except_table .ARM.extab* .gnu.linkonce.armextab.*) .glue_7 0x00000000 0x0 linker stubs @@ -1558,228 +1558,228 @@ Linker script and memory map 0x000023d0 0x18 THUMB Debug/../../obj/assert.o 0x000023d0 AssertFailure .text.BackDoorCheck - 0x000023e8 0x44 THUMB Debug/../../obj/backdoor.o + 0x000023e8 0x48 THUMB Debug/../../obj/backdoor.o 0x000023e8 BackDoorCheck .text.BackDoorInit - 0x0000242c 0x20 THUMB Debug/../../obj/backdoor.o - 0x0000242c BackDoorInit + 0x00002430 0x20 THUMB Debug/../../obj/backdoor.o + 0x00002430 BackDoorInit .text.BootInit - 0x0000244c 0x1e THUMB Debug/../../obj/boot.o - 0x0000244c BootInit + 0x00002450 0x1e THUMB Debug/../../obj/boot.o + 0x00002450 BootInit .text.BootTask - 0x0000246a 0x1a THUMB Debug/../../obj/boot.o - 0x0000246a BootTask - .text.ComInit 0x00002484 0x3c THUMB Debug/../../obj/com.o - 0x00002484 ComInit - .text.ComTask 0x000024c0 0x3c THUMB Debug/../../obj/com.o - 0x000024c0 ComTask - .text.ComFree 0x000024fc 0x2 THUMB Debug/../../obj/com.o - 0x000024fc ComFree - *fill* 0x000024fe 0x2 00 + 0x0000246e 0x1a THUMB Debug/../../obj/boot.o + 0x0000246e BootTask + .text.ComInit 0x00002488 0x3c THUMB Debug/../../obj/com.o + 0x00002488 ComInit + .text.ComTask 0x000024c4 0x3c THUMB Debug/../../obj/com.o + 0x000024c4 ComTask + .text.ComFree 0x00002500 0x2 THUMB Debug/../../obj/com.o + 0x00002500 ComFree + *fill* 0x00002502 0x2 00 .text.ComTransmitPacket - 0x00002500 0x30 THUMB Debug/../../obj/com.o - 0x00002500 ComTransmitPacket + 0x00002504 0x30 THUMB Debug/../../obj/com.o + 0x00002504 ComTransmitPacket .text.ComGetActiveInterfaceMaxRxLen - 0x00002530 0x14 THUMB Debug/../../obj/com.o - 0x00002530 ComGetActiveInterfaceMaxRxLen + 0x00002534 0x14 THUMB Debug/../../obj/com.o + 0x00002534 ComGetActiveInterfaceMaxRxLen .text.ComGetActiveInterfaceMaxTxLen - 0x00002544 0x14 THUMB Debug/../../obj/com.o - 0x00002544 ComGetActiveInterfaceMaxTxLen + 0x00002548 0x14 THUMB Debug/../../obj/com.o + 0x00002548 ComGetActiveInterfaceMaxTxLen .text.ComSetConnectEntryState - 0x00002558 0xc THUMB Debug/../../obj/com.o - 0x00002558 ComSetConnectEntryState + 0x0000255c 0xc THUMB Debug/../../obj/com.o + 0x0000255c ComSetConnectEntryState .text.ComIsConnected - 0x00002564 0x4 THUMB Debug/../../obj/com.o - 0x00002564 ComIsConnected - .text.CopInit 0x00002568 0x2 THUMB Debug/../../obj/cop.o - 0x00002568 CopInit + 0x00002568 0x4 THUMB Debug/../../obj/com.o + 0x00002568 ComIsConnected + .text.CopInit 0x0000256c 0x2 THUMB Debug/../../obj/cop.o + 0x0000256c CopInit .text.CopService - 0x0000256a 0x2 THUMB Debug/../../obj/cop.o - 0x0000256a CopService + 0x0000256e 0x2 THUMB Debug/../../obj/cop.o + 0x0000256e CopService .text.XcpSetCtoError - 0x0000256c 0x14 THUMB Debug/../../obj/xcp.o - .text.XcpInit 0x00002580 0x1c THUMB Debug/../../obj/xcp.o - 0x00002580 XcpInit + 0x00002570 0x14 THUMB Debug/../../obj/xcp.o + .text.XcpInit 0x00002584 0x1c THUMB Debug/../../obj/xcp.o + 0x00002584 XcpInit .text.XcpIsConnected - 0x0000259c 0x10 THUMB Debug/../../obj/xcp.o - 0x0000259c XcpIsConnected + 0x000025a0 0x10 THUMB Debug/../../obj/xcp.o + 0x000025a0 XcpIsConnected .text.XcpPacketTransmitted - 0x000025ac 0x10 THUMB Debug/../../obj/xcp.o - 0x000025ac XcpPacketTransmitted + 0x000025b0 0x10 THUMB Debug/../../obj/xcp.o + 0x000025b0 XcpPacketTransmitted .text.XcpPacketReceived - 0x000025bc 0x21c THUMB Debug/../../obj/xcp.o - 0x000025bc XcpPacketReceived + 0x000025c0 0x21c THUMB Debug/../../obj/xcp.o + 0x000025c0 XcpPacketReceived .text.FileLibHexStringToByte - 0x000027d8 0x42 THUMB Debug/../../obj/file.o - *fill* 0x0000281a 0x2 00 + 0x000027dc 0x42 THUMB Debug/../../obj/file.o + *fill* 0x0000281e 0x2 00 .text.FileLibLongToIntString.constprop.0 - 0x0000281c 0x38 THUMB Debug/../../obj/file.o + 0x00002820 0x38 THUMB Debug/../../obj/file.o .text.FileLibByteToHexString - 0x00002854 0x3a THUMB Debug/../../obj/file.o - *fill* 0x0000288e 0x2 00 + 0x00002858 0x3a THUMB Debug/../../obj/file.o + *fill* 0x00002892 0x2 00 .text.FileInit - 0x00002890 0x2c THUMB Debug/../../obj/file.o - 0x00002890 FileInit + 0x00002894 0x2c THUMB Debug/../../obj/file.o + 0x00002894 FileInit .text.FileIsIdle - 0x000028bc 0x14 THUMB Debug/../../obj/file.o - 0x000028bc FileIsIdle + 0x000028c0 0x14 THUMB Debug/../../obj/file.o + 0x000028c0 FileIsIdle .text.FileHandleFirmwareUpdateRequest - 0x000028d0 0x28 THUMB Debug/../../obj/file.o - 0x000028d0 FileHandleFirmwareUpdateRequest + 0x000028d4 0x28 THUMB Debug/../../obj/file.o + 0x000028d4 FileHandleFirmwareUpdateRequest .text.FileSrecGetLineType - 0x000028f8 0x38 THUMB Debug/../../obj/file.o - 0x000028f8 FileSrecGetLineType + 0x000028fc 0x38 THUMB Debug/../../obj/file.o + 0x000028fc FileSrecGetLineType .text.FileSrecVerifyChecksum - 0x00002930 0x3c THUMB Debug/../../obj/file.o - 0x00002930 FileSrecVerifyChecksum + 0x00002934 0x3c THUMB Debug/../../obj/file.o + 0x00002934 FileSrecVerifyChecksum .text.FileSrecParseLine - 0x0000296c 0x138 THUMB Debug/../../obj/file.o - 0x0000296c FileSrecParseLine + 0x00002970 0x138 THUMB Debug/../../obj/file.o + 0x00002970 FileSrecParseLine .text.FileTask - 0x00002aa4 0x344 THUMB Debug/../../obj/file.o - 0x00002aa4 FileTask - .text.mem_cpy 0x00002de8 0x12 THUMB Debug/../../obj/ff.o - .text.sum_sfn 0x00002dfa 0x1e THUMB Debug/../../obj/ff.o + 0x00002aa8 0x344 THUMB Debug/../../obj/file.o + 0x00002aa8 FileTask + .text.mem_cpy 0x00002dec 0x12 THUMB Debug/../../obj/ff.o + .text.sum_sfn 0x00002dfe 0x1e THUMB Debug/../../obj/ff.o .text.validate - 0x00002e18 0x2a THUMB Debug/../../obj/ff.o + 0x00002e1c 0x2a THUMB Debug/../../obj/ff.o .text.get_fileinfo - 0x00002e42 0xee THUMB Debug/../../obj/ff.o + 0x00002e46 0xee THUMB Debug/../../obj/ff.o .text.ld_clust.isra.0 - 0x00002f30 0x1c THUMB Debug/../../obj/ff.o + 0x00002f34 0x1c THUMB Debug/../../obj/ff.o .text.check_fs - 0x00002f4c 0x88 THUMB Debug/../../obj/ff.o + 0x00002f50 0x88 THUMB Debug/../../obj/ff.o .text.chk_mounted - 0x00002fd4 0x314 THUMB Debug/../../obj/ff.o + 0x00002fd8 0x314 THUMB Debug/../../obj/ff.o .text.sync_window - 0x000032e8 0x4e THUMB Debug/../../obj/ff.o - .text.sync_fs 0x00003336 0xb2 THUMB Debug/../../obj/ff.o + 0x000032ec 0x4e THUMB Debug/../../obj/ff.o + .text.sync_fs 0x0000333a 0xb2 THUMB Debug/../../obj/ff.o .text.move_window - 0x000033e8 0x2e THUMB Debug/../../obj/ff.o + 0x000033ec 0x2e THUMB Debug/../../obj/ff.o .text.clust2sect - 0x00003416 0x18 THUMB Debug/../../obj/ff.o - 0x00003416 clust2sect - .text.get_fat 0x0000342e 0xca THUMB Debug/../../obj/ff.o - 0x0000342e get_fat - .text.dir_sdi 0x000034f8 0x84 THUMB Debug/../../obj/ff.o - .text.put_fat 0x0000357c 0xf6 THUMB Debug/../../obj/ff.o - 0x0000357c put_fat + 0x0000341a 0x18 THUMB Debug/../../obj/ff.o + 0x0000341a clust2sect + .text.get_fat 0x00003432 0xca THUMB Debug/../../obj/ff.o + 0x00003432 get_fat + .text.dir_sdi 0x000034fc 0x84 THUMB Debug/../../obj/ff.o + .text.put_fat 0x00003580 0xf6 THUMB Debug/../../obj/ff.o + 0x00003580 put_fat .text.create_chain - 0x00003672 0x9a THUMB Debug/../../obj/ff.o + 0x00003676 0x9a THUMB Debug/../../obj/ff.o .text.dir_next - 0x0000370c 0xf0 THUMB Debug/../../obj/ff.o + 0x00003710 0xf0 THUMB Debug/../../obj/ff.o .text.dir_find.part.6 - 0x000037fc 0x12c THUMB Debug/../../obj/ff.o + 0x00003800 0x12c THUMB Debug/../../obj/ff.o .text.follow_path - 0x00003928 0x280 THUMB Debug/../../obj/ff.o + 0x0000392c 0x280 THUMB Debug/../../obj/ff.o .text.dir_remove - 0x00003ba8 0x4e THUMB Debug/../../obj/ff.o - *fill* 0x00003bf6 0x2 00 + 0x00003bac 0x4e THUMB Debug/../../obj/ff.o + *fill* 0x00003bfa 0x2 00 .text.dir_read.constprop.8 - 0x00003bf8 0x100 THUMB Debug/../../obj/ff.o + 0x00003bfc 0x100 THUMB Debug/../../obj/ff.o .text.remove_chain - 0x00003cf8 0x54 THUMB Debug/../../obj/ff.o + 0x00003cfc 0x54 THUMB Debug/../../obj/ff.o .text.gen_numname - 0x00003d4c 0x78 THUMB Debug/../../obj/ff.o - 0x00003d4c gen_numname + 0x00003d50 0x78 THUMB Debug/../../obj/ff.o + 0x00003d50 gen_numname .text.dir_register - 0x00003dc4 0x1c8 THUMB Debug/../../obj/ff.o - .text.f_mount 0x00003f8c 0x20 THUMB Debug/../../obj/ff.o - 0x00003f8c f_mount - .text.f_open 0x00003fac 0x160 THUMB Debug/../../obj/ff.o - 0x00003fac f_open - .text.f_read 0x0000410c 0x164 THUMB Debug/../../obj/ff.o - 0x0000410c f_read - .text.f_write 0x00004270 0x192 THUMB Debug/../../obj/ff.o - 0x00004270 f_write - .text.f_sync 0x00004402 0xac THUMB Debug/../../obj/ff.o - 0x00004402 f_sync - .text.f_close 0x000044ae 0xe THUMB Debug/../../obj/ff.o - 0x000044ae f_close - .text.f_lseek 0x000044bc 0x13c THUMB Debug/../../obj/ff.o - 0x000044bc f_lseek - .text.f_stat 0x000045f8 0x48 THUMB Debug/../../obj/ff.o - 0x000045f8 f_stat + 0x00003dc8 0x1c8 THUMB Debug/../../obj/ff.o + .text.f_mount 0x00003f90 0x20 THUMB Debug/../../obj/ff.o + 0x00003f90 f_mount + .text.f_open 0x00003fb0 0x160 THUMB Debug/../../obj/ff.o + 0x00003fb0 f_open + .text.f_read 0x00004110 0x164 THUMB Debug/../../obj/ff.o + 0x00004110 f_read + .text.f_write 0x00004274 0x192 THUMB Debug/../../obj/ff.o + 0x00004274 f_write + .text.f_sync 0x00004406 0xac THUMB Debug/../../obj/ff.o + 0x00004406 f_sync + .text.f_close 0x000044b2 0xe THUMB Debug/../../obj/ff.o + 0x000044b2 f_close + .text.f_lseek 0x000044c0 0x13c THUMB Debug/../../obj/ff.o + 0x000044c0 f_lseek + .text.f_stat 0x000045fc 0x48 THUMB Debug/../../obj/ff.o + 0x000045fc f_stat .text.f_unlink - 0x00004640 0xc0 THUMB Debug/../../obj/ff.o - 0x00004640 f_unlink - .text.f_gets 0x00004700 0x48 THUMB Debug/../../obj/ff.o - 0x00004700 f_gets - .text.f_putc 0x00004748 0x30 THUMB Debug/../../obj/ff.o - 0x00004748 f_putc - .text.f_puts 0x00004778 0x20 THUMB Debug/../../obj/ff.o - 0x00004778 f_puts + 0x00004644 0xc0 THUMB Debug/../../obj/ff.o + 0x00004644 f_unlink + .text.f_gets 0x00004704 0x48 THUMB Debug/../../obj/ff.o + 0x00004704 f_gets + .text.f_putc 0x0000474c 0x30 THUMB Debug/../../obj/ff.o + 0x0000474c f_putc + .text.f_puts 0x0000477c 0x20 THUMB Debug/../../obj/ff.o + 0x0000477c f_puts .text.ff_convert - 0x00004798 0x38 THUMB Debug/../../obj/unicode.o - 0x00004798 ff_convert + 0x0000479c 0x38 THUMB Debug/../../obj/unicode.o + 0x0000479c ff_convert .text.ff_wtoupper - 0x000047d0 0x24 THUMB Debug/../../obj/unicode.o - 0x000047d0 ff_wtoupper - .text.chksum 0x000047f4 0x38 THUMB Debug/../../obj/uip.o + 0x000047d4 0x24 THUMB Debug/../../obj/unicode.o + 0x000047d4 ff_wtoupper + .text.chksum 0x000047f8 0x38 THUMB Debug/../../obj/uip.o .text.upper_layer_chksum - 0x0000482c 0x40 THUMB Debug/../../obj/uip.o + 0x00004830 0x40 THUMB Debug/../../obj/uip.o .text.uip_add32 - 0x0000486c 0x54 THUMB Debug/../../obj/uip.o - 0x0000486c uip_add32 + 0x00004870 0x54 THUMB Debug/../../obj/uip.o + 0x00004870 uip_add32 .text.unlikely.uip_add_rcv_nxt - 0x000048c0 0x2c THUMB Debug/../../obj/uip.o + 0x000048c4 0x2c THUMB Debug/../../obj/uip.o .text.uip_ipchksum - 0x000048ec 0x24 THUMB Debug/../../obj/uip.o - 0x000048ec uip_ipchksum + 0x000048f0 0x24 THUMB Debug/../../obj/uip.o + 0x000048f0 uip_ipchksum .text.uip_tcpchksum - 0x00004910 0x6 THUMB Debug/../../obj/uip.o - 0x00004910 uip_tcpchksum - *fill* 0x00004916 0x2 00 + 0x00004914 0x6 THUMB Debug/../../obj/uip.o + 0x00004914 uip_tcpchksum + *fill* 0x0000491a 0x2 00 .text.uip_init - 0x00004918 0x2c THUMB Debug/../../obj/uip.o - 0x00004918 uip_init + 0x0000491c 0x2c THUMB Debug/../../obj/uip.o + 0x0000491c uip_init .text.uip_listen - 0x00004944 0x1c THUMB Debug/../../obj/uip.o - 0x00004944 uip_listen + 0x00004948 0x1c THUMB Debug/../../obj/uip.o + 0x00004948 uip_listen .text.uip_process - 0x00004960 0x9b8 THUMB Debug/../../obj/uip.o - 0x00004960 uip_process + 0x00004964 0x9b8 THUMB Debug/../../obj/uip.o + 0x00004964 uip_process .text.uip_send - 0x00005318 0x24 THUMB Debug/../../obj/uip.o - 0x00005318 uip_send + 0x0000531c 0x24 THUMB Debug/../../obj/uip.o + 0x0000531c uip_send .text.uip_arp_update.constprop.0 - 0x0000533c 0xd4 THUMB Debug/../../obj/uip_arp.o + 0x00005340 0xd4 THUMB Debug/../../obj/uip_arp.o .text.uip_arp_timer - 0x00005410 0x58 THUMB Debug/../../obj/uip_arp.o - 0x00005410 uip_arp_timer + 0x00005414 0x58 THUMB Debug/../../obj/uip_arp.o + 0x00005414 uip_arp_timer .text.uip_arp_arpin - 0x00005468 0xbc THUMB Debug/../../obj/uip_arp.o - 0x00005468 uip_arp_arpin + 0x0000546c 0xbc THUMB Debug/../../obj/uip_arp.o + 0x0000546c uip_arp_arpin .text.uip_arp_out - 0x00005524 0x140 THUMB Debug/../../obj/uip_arp.o - 0x00005524 uip_arp_out - .text.NetInit 0x00005664 0x60 THUMB Debug/../../obj/net.o - 0x00005664 NetInit + 0x00005528 0x140 THUMB Debug/../../obj/uip_arp.o + 0x00005528 uip_arp_out + .text.NetInit 0x00005668 0x60 THUMB Debug/../../obj/net.o + 0x00005668 NetInit .text.NetTransmitPacket - 0x000056c4 0x38 THUMB Debug/../../obj/net.o - 0x000056c4 NetTransmitPacket + 0x000056c8 0x38 THUMB Debug/../../obj/net.o + 0x000056c8 NetTransmitPacket .text.NetReceivePacket - 0x000056fc 0xa0 THUMB Debug/../../obj/net.o - 0x000056fc NetReceivePacket - .text.NetApp 0x0000579c 0x6c THUMB Debug/../../obj/net.o - 0x0000579c NetApp + 0x00005700 0xa0 THUMB Debug/../../obj/net.o + 0x00005700 NetReceivePacket + .text.NetApp 0x000057a0 0x6c THUMB Debug/../../obj/net.o + 0x000057a0 NetApp .text.libc.isdigit - 0x00005808 0xc C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libc_v7m_t_le_eabi_small.a(libc2.o) - 0x00005808 isdigit + 0x0000580c 0xc C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libc_v7m_t_le_eabi_small.a(libc2.o) + 0x0000580c isdigit .text.libc.toupper - 0x00005814 0xe C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libc_v7m_t_le_eabi_small.a(libc2.o) - 0x00005814 toupper - *fill* 0x00005822 0x2 00 + 0x00005818 0xe C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libc_v7m_t_le_eabi_small.a(libc2.o) + 0x00005818 toupper + *fill* 0x00005826 0x2 00 .text.libc.memcpy - 0x00005824 0x1c C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libc_v7m_t_le_eabi_small.a(libc2_asm.o) - 0x00005824 __aeabi_memcpy - 0x00005824 __aeabi_memcpy4 - 0x00005824 __aeabi_memcpy8 - 0x00005824 memcpy + 0x00005828 0x1c C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libc_v7m_t_le_eabi_small.a(libc2_asm.o) + 0x00005828 __aeabi_memcpy + 0x00005828 __aeabi_memcpy4 + 0x00005828 __aeabi_memcpy8 + 0x00005828 memcpy .text.libc.memset - 0x00005840 0x14 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libc_v7m_t_le_eabi_small.a(libc2_asm.o) - 0x00005840 memset - 0x00005854 __text_end__ = (__text_start__ + SIZEOF (.text)) - 0x00005854 __text_load_end__ = __text_end__ + 0x00005844 0x14 C:/Program Files (x86)/Rowley Associates Limited/CrossWorks for ARM 2.3/lib/libc_v7m_t_le_eabi_small.a(libc2_asm.o) + 0x00005844 memset + 0x00005858 __text_end__ = (__text_start__ + SIZEOF (.text)) + 0x00005858 __text_load_end__ = __text_end__ .vfp11_veneer 0x00000000 0x0 .vfp11_veneer 0x00000000 0x0 linker stubs @@ -1790,101 +1790,101 @@ Linker script and memory map .iplt 0x00000000 0x0 .iplt 0x00000000 0x0 THUMB Debug/../../obj/sysctl.o 0x00000001 . = ASSERT (((__text_end__ >= __FLASH_segment_start__) && (__text_end__ <= __FLASH_segment_end__)), error: .text is too large to fit in FLASH memory segment) - 0x00005854 __dtors_load_start__ = ALIGN (__text_end__, 0x4) + 0x00005858 __dtors_load_start__ = ALIGN (__text_end__, 0x4) -.dtors 0x00005854 0x0 - 0x00005854 __dtors_start__ = . +.dtors 0x00005858 0x0 + 0x00005858 __dtors_start__ = . *(SORT(.dtors.*)) *(.dtors) *(.fini_array .fini_array.*) - 0x00005854 __dtors_end__ = (__dtors_start__ + SIZEOF (.dtors)) - 0x00005854 __dtors_load_end__ = __dtors_end__ + 0x00005858 __dtors_end__ = (__dtors_start__ + SIZEOF (.dtors)) + 0x00005858 __dtors_load_end__ = __dtors_end__ 0x00000001 . = ASSERT (((__dtors_end__ >= __FLASH_segment_start__) && (__dtors_end__ <= __FLASH_segment_end__)), error: .dtors is too large to fit in FLASH memory segment) - 0x00005854 __ctors_load_start__ = ALIGN (__dtors_end__, 0x4) + 0x00005858 __ctors_load_start__ = ALIGN (__dtors_end__, 0x4) -.ctors 0x00005854 0x0 - 0x00005854 __ctors_start__ = . +.ctors 0x00005858 0x0 + 0x00005858 __ctors_start__ = . *(SORT(.ctors.*)) *(.ctors) *(.init_array .init_array.*) - 0x00005854 __ctors_end__ = (__ctors_start__ + SIZEOF (.ctors)) - 0x00005854 __ctors_load_end__ = __ctors_end__ + 0x00005858 __ctors_end__ = (__ctors_start__ + SIZEOF (.ctors)) + 0x00005858 __ctors_load_end__ = __ctors_end__ 0x00000001 . = ASSERT (((__ctors_end__ >= __FLASH_segment_start__) && (__ctors_end__ <= __FLASH_segment_end__)), error: .ctors is too large to fit in FLASH memory segment) - 0x00005854 __rodata_load_start__ = ALIGN (__ctors_end__, 0x4) + 0x00005858 __rodata_load_start__ = ALIGN (__ctors_end__, 0x4) -.rodata 0x00005854 0xc46 - 0x00005854 __rodata_start__ = . +.rodata 0x00005858 0xc46 + 0x00005858 __rodata_start__ = . *(.rodata .rodata.* .gnu.linkonce.r.*) .rodata.g_pulXtals - 0x00005854 0x6c THUMB Debug/../../obj/sysctl.o + 0x00005858 0x6c THUMB Debug/../../obj/sysctl.o .rodata.str1.1 - 0x000058c0 0x6b THUMB Debug/../../obj/sysctl.o - *fill* 0x0000592b 0x1 00 + 0x000058c4 0x6b THUMB Debug/../../obj/sysctl.o + *fill* 0x0000592f 0x1 00 .rodata.g_pulRCGCRegs - 0x0000592c 0xc THUMB Debug/../../obj/sysctl.o + 0x00005930 0xc THUMB Debug/../../obj/sysctl.o .rodata.g_pulSRCRRegs - 0x00005938 0xc THUMB Debug/../../obj/sysctl.o + 0x0000593c 0xc THUMB Debug/../../obj/sysctl.o .rodata.str1.1 - 0x00005944 0x69 THUMB Debug/../../obj/gpio.o + 0x00005948 0x69 THUMB Debug/../../obj/gpio.o .rodata.str1.1 - 0x000059ad 0x6d THUMB Debug/../../obj/flashlib.o + 0x000059b1 0x6d THUMB Debug/../../obj/flashlib.o .rodata.str1.1 - 0x00005a1a 0x6c THUMB Debug/../../obj/uartlib.o + 0x00005a1e 0x6c THUMB Debug/../../obj/uartlib.o .rodata.str1.1 - 0x00005a86 0x68 THUMB Debug/../../obj/ssi.o + 0x00005a8a 0x68 THUMB Debug/../../obj/ssi.o .rodata.str1.1 - 0x00005aee 0x6d THUMB Debug/../../obj/ethernet.o + 0x00005af2 0x6d THUMB Debug/../../obj/ethernet.o .rodata.firmwareFilename - 0x00005b5b 0x1b THUMB Debug/../../obj/hooks.o + 0x00005b5f 0x1b THUMB Debug/../../obj/hooks.o .rodata.str1.1 - 0x00005b76 0xd THUMB Debug/../../obj/hooks.o + 0x00005b7a 0xd THUMB Debug/../../obj/hooks.o .rodata.str1.1 - 0x00005b83 0x85 THUMB Debug/../../obj/vectors.o + 0x00005b87 0x85 THUMB Debug/../../obj/vectors.o .rodata.flashLayout - 0x00005c08 0xc0 THUMB Debug/../../obj/flash.o + 0x00005c0c 0xc0 THUMB Debug/../../obj/flash.o .rodata.str1.1 - 0x00005cc8 0x77 THUMB Debug/../../obj/uart.o + 0x00005ccc 0x77 THUMB Debug/../../obj/uart.o .rodata.xcpStationId - 0x00005d3f 0x8 THUMB Debug/../../obj/xcp.o + 0x00005d43 0x8 THUMB Debug/../../obj/xcp.o .rodata.str1.1 - 0x00005d47 0x1ef THUMB Debug/../../obj/file.o + 0x00005d4b 0x1ef THUMB Debug/../../obj/file.o 0x1fb (size before relaxing) .rodata.str1.1 - 0x00005f36 0x10 THUMB Debug/../../obj/ff.o - .rodata.ExCvt 0x00005f46 0x80 THUMB Debug/../../obj/ff.o + 0x00005f3a 0x10 THUMB Debug/../../obj/ff.o + .rodata.ExCvt 0x00005f4a 0x80 THUMB Debug/../../obj/ff.o .rodata.LfnOfs - 0x00005fc6 0xd THUMB Debug/../../obj/ff.o - *fill* 0x00005fd3 0x1 00 + 0x00005fca 0xd THUMB Debug/../../obj/ff.o + *fill* 0x00005fd7 0x1 00 .rodata.tbl_lower.3809 - 0x00005fd4 0x1e0 THUMB Debug/../../obj/unicode.o - .rodata.Tbl 0x000061b4 0x100 THUMB Debug/../../obj/unicode.o + 0x00005fd8 0x1e0 THUMB Debug/../../obj/unicode.o + .rodata.Tbl 0x000061b8 0x100 THUMB Debug/../../obj/unicode.o .rodata.tbl_upper.3810 - 0x000062b4 0x1e0 THUMB Debug/../../obj/unicode.o + 0x000062b8 0x1e0 THUMB Debug/../../obj/unicode.o .rodata.broadcast_ethaddr - 0x00006494 0x6 THUMB Debug/../../obj/uip_arp.o - 0x0000649a __rodata_end__ = (__rodata_start__ + SIZEOF (.rodata)) - 0x0000649a __rodata_load_end__ = __rodata_end__ + 0x00006498 0x6 THUMB Debug/../../obj/uip_arp.o + 0x0000649e __rodata_end__ = (__rodata_start__ + SIZEOF (.rodata)) + 0x0000649e __rodata_load_end__ = __rodata_end__ .rel.dyn 0x00000000 0x0 .rel.iplt 0x00000000 0x0 THUMB Debug/../../obj/sysctl.o 0x00000001 . = ASSERT (((__rodata_end__ >= __FLASH_segment_start__) && (__rodata_end__ <= __FLASH_segment_end__)), error: .rodata is too large to fit in FLASH memory segment) - 0x0000649c __ARM.exidx_load_start__ = ALIGN (__rodata_end__, 0x4) + 0x000064a0 __ARM.exidx_load_start__ = ALIGN (__rodata_end__, 0x4) -.ARM.exidx 0x0000649c 0x0 - 0x0000649c __ARM.exidx_start__ = . - 0x0000649c __exidx_start = __ARM.exidx_start__ +.ARM.exidx 0x000064a0 0x0 + 0x000064a0 __ARM.exidx_start__ = . + 0x000064a0 __exidx_start = __ARM.exidx_start__ *(.ARM.exidx .ARM.exidx.*) - 0x0000649c __ARM.exidx_end__ = (__ARM.exidx_start__ + SIZEOF (.ARM.exidx)) - 0x0000649c __exidx_end = __ARM.exidx_end__ - 0x0000649c __ARM.exidx_load_end__ = __ARM.exidx_end__ + 0x000064a0 __ARM.exidx_end__ = (__ARM.exidx_start__ + SIZEOF (.ARM.exidx)) + 0x000064a0 __exidx_end = __ARM.exidx_end__ + 0x000064a0 __ARM.exidx_load_end__ = __ARM.exidx_end__ 0x00000001 . = ASSERT (((__ARM.exidx_end__ >= __FLASH_segment_start__) && (__ARM.exidx_end__ <= __FLASH_segment_end__)), error: .ARM.exidx is too large to fit in FLASH memory segment) - 0x0000649c __fast_load_start__ = ALIGN (__ARM.exidx_end__, 0x4) + 0x000064a0 __fast_load_start__ = ALIGN (__ARM.exidx_end__, 0x4) -.fast 0x20000000 0x0 load address 0x0000649c +.fast 0x20000000 0x0 load address 0x000064a0 0x20000000 __fast_start__ = . *(.fast .fast.*) 0x20000000 __fast_end__ = (__fast_start__ + SIZEOF (.fast)) - 0x0000649c __fast_load_end__ = (__fast_load_start__ + SIZEOF (.fast)) + 0x000064a0 __fast_load_end__ = (__fast_load_start__ + SIZEOF (.fast)) 0x00000001 . = ASSERT (((__fast_load_end__ >= __FLASH_segment_start__) && (__fast_load_end__ <= __FLASH_segment_end__)), error: .fast is too large to fit in FLASH memory segment) .fast_run 0x20000000 0x0 @@ -1893,22 +1893,22 @@ Linker script and memory map 0x20000000 __fast_run_end__ = (__fast_run_start__ + SIZEOF (.fast_run)) 0x20000000 __fast_run_load_end__ = __fast_run_end__ 0x00000001 . = ASSERT (((__fast_run_end__ >= __SRAM_segment_start__) && (__fast_run_end__ <= __SRAM_segment_end__)), error: .fast_run is too large to fit in SRAM memory segment) - 0x0000649c __data_load_start__ = ALIGN ((__fast_load_start__ + SIZEOF (.fast)), 0x4) + 0x000064a0 __data_load_start__ = ALIGN ((__fast_load_start__ + SIZEOF (.fast)), 0x4) -.data 0x20000000 0x2 load address 0x0000649c +.data 0x20000000 0x2 load address 0x000064a0 0x20000000 __data_start__ = . *(.data .data.* .gnu.linkonce.d.*) .data.Stat 0x20000000 0x1 THUMB Debug/../../obj/mmc.o .data.comActiveInterface 0x20000001 0x1 THUMB Debug/../../obj/com.o 0x20000002 __data_end__ = (__data_start__ + SIZEOF (.data)) - 0x0000649e __data_load_end__ = (__data_load_start__ + SIZEOF (.data)) + 0x000064a2 __data_load_end__ = (__data_load_start__ + SIZEOF (.data)) .igot.plt 0x00000000 0x0 .igot.plt 0x00000000 0x0 THUMB Debug/../../obj/sysctl.o 0x00000001 . = ASSERT (((__data_load_end__ >= __FLASH_segment_start__) && (__data_load_end__ <= __FLASH_segment_end__)), error: .data is too large to fit in FLASH memory segment) -.data_run 0x20000000 0x2 load address 0x0000649c +.data_run 0x20000000 0x2 load address 0x000064a0 0x20000000 __data_run_start__ = . 0x20000002 . = MAX ((__data_run_start__ + SIZEOF (.data)), .) *fill* 0x20000000 0x2 00 @@ -2073,14 +2073,14 @@ Linker script and memory map 0x20001924 __tbss_end__ = (__tbss_start__ + SIZEOF (.tbss)) 0x20001924 __tbss_load_end__ = __tbss_end__ 0x00000001 . = ASSERT (((__tbss_end__ >= __SRAM_segment_start__) && (__tbss_end__ <= __SRAM_segment_end__)), error: .tbss is too large to fit in SRAM memory segment) - 0x000064a0 __tdata_load_start__ = ALIGN ((__data_load_start__ + SIZEOF (.data)), 0x4) + 0x000064a4 __tdata_load_start__ = ALIGN ((__data_load_start__ + SIZEOF (.data)), 0x4) -.tdata 0x20001924 0x0 load address 0x000064a0 +.tdata 0x20001924 0x0 load address 0x000064a4 0x20001924 __tdata_start__ = . *(.tdata .tdata.*) 0x20001924 __tdata_end__ = (__tdata_start__ + SIZEOF (.tdata)) - 0x000064a0 __tdata_load_end__ = (__tdata_load_start__ + SIZEOF (.tdata)) - 0x000064a0 __FLASH_segment_used_end__ = (ALIGN ((__data_load_start__ + SIZEOF (.data)), 0x4) + SIZEOF (.tdata)) + 0x000064a4 __tdata_load_end__ = (__tdata_load_start__ + SIZEOF (.tdata)) + 0x000064a4 __FLASH_segment_used_end__ = (ALIGN ((__data_load_start__ + SIZEOF (.data)), 0x4) + SIZEOF (.tdata)) 0x00000001 . = ASSERT (((__tdata_load_end__ >= __FLASH_segment_start__) && (__tdata_load_end__ <= __FLASH_segment_end__)), error: .tdata is too large to fit in FLASH memory segment) .tdata_run 0x20001924 0x0 diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Boot/bin/openbtl_ek_lm3s6965.srec b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Boot/bin/openbtl_ek_lm3s6965.srec index 8e0584db..328b5686 100644 --- a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Boot/bin/openbtl_ek_lm3s6965.srec +++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Boot/bin/openbtl_ek_lm3s6965.srec @@ -22,7 +22,7 @@ S113013069F84F484F49504A00F064F84F48504915 S1130140002200F06AF84F484F49091A082903DBD6 S1130150002202600430016040484149884205D0D1 S11301600268043003B4904703BCF7E700208646D6 -S1130170EC4602F0F1F900200021444A904772B69F +S1130170EC4602F0F3F900200021444A904772B69D S11301802B49072291438D462A482B492B4A00F0DC S113019039F82B482B492C4A00F034F82B482C49C9 S11301A02C4A00F02FF82C482C492D4A00F02AF84C @@ -34,11 +34,11 @@ S11301F003BCF7E700208646EC4600200021234A92 S11302009047FEE7884207D0521A05D003780130A0 S11302100B700131013AF9D17047884202D0027063 S11302200130FAE77047000008ED00E0000000002C -S1130230241900209C64000000000020020000201B -S11302409002000090020000545800009C640000DA -S11302500000002000000020545800005458000002 -S113026054580000545800005458000054580000DA -S113027054580000545800009A6400000400002000 +S113023024190020A0640000000000200200002017 +S1130240900200009002000058580000A0640000D2 +S113025000000020000000205858000058580000FA +S113026058580000585800005858000058580000CA +S113027058580000585800009E64000004000020F4 S1130280A4160020A416002024170020991E0000A4 S1130290A0F58013591E012940F20181814A904240 S11302A000F0FD8002F58073984200F0F88003F5B9 @@ -88,13 +88,13 @@ S11305500F2A02D8019B581CF8E70021216018E0FB S1130560220FA1B2C4F3044401FA04F40A4850F877 S113057022301A6844EA0200186000220192019AAB S11305800F2A02D80198421CF8E7196821EA0404EA -S11305901C601CBDC05800003859000010B504464A +S11305901C601CBDC45800003C59000010B5044642 S11305A0FFF776FE20B9144840F2963101F010FFAF S11305B004F07043B3F1704F10D1C4F30721E0B2DB S11305C001F57E24830004F5C06043F0844220F4E6 S11305D0700342EA43140122226010BD220FA1B22B S11305E0C4F3044401FA04F4044850F822301A68AD -S11305F014431C6010BD00BFC05800002C590000FB +S11305F014431C6010BD00BFC458000030590000F3 S113060001387FF4FDAF70474E4B2DE9F0411A6875 S1130610044612F0E04F05D018684B490140B1F18F S1130620805F02D1002CC0F28A80484F48483B6862 @@ -141,7 +141,7 @@ S11308A011F4804F18BF4008090448BF800842F47F S11308B08002510216D5002B0DDA590005D51A0510 S11308C003D44000C3F3865201E0C3F3C552531C62 S11308D0B0FBF3F070BDC2F3C353591CB0FBF1F08D -S11308E070BD002070BD00BF60E00F405458000090 +S11308E070BD002070BD00BF60E00F40585800008C S11308F000E00F400000FF70000001100000031032 S11309000024F40000093D00C0E1E400001BB7002E S113091070383900C0C62D0064E00F40B0F1402F9C @@ -162,7 +162,7 @@ S11309F020B911484FF4907101F0EAFC022E04D999 S1130A000D484FF4917101F0E3FCD4F8003416F072 S1130A10010F14BF2B43AB4304F580621360D4F879 S1130A20200416F0020F04F5846114BF054320EA84 -S1130A3005050D6070BD00BF44590000F8B50446BB +S1130A3005050D6070BD00BF48590000F8B50446B7 S1130A400D4617461E46FFF769FF20B93C4840F2A1 S1130A50FF1101F0BDFC7B1E012B08D9042F06D029 S1130A600C2F04D0364840F2032101F0B1FC082ECB @@ -179,26 +179,26 @@ S1130B001960D4F8140516F0040F14BF2843A84341 S1130B1004F214521060D4F81C1516F0080F04F2F5 S1130B201C5314BF2943A943196004F5A560D4F8E4 S1130B3028250EB9154301E022EA05050560F8BD34 -S1130B404459000070B504460D461646FFF7E6FE0C +S1130B404859000070B504460D461646FFF7E6FE08 S1130B5020B9044840F2853101F03AFC44F825609C -S1130B6070BD00BF4459000070B505460C46FFF740 +S1130B6070BD00BF4859000070B505460C46FFF73C S1130B70D5FE20B9084840F2524101F029FC28462C S1130B8021460222FFF72EFF28462146042208238D -S1130B90BDE87040FFF752BF4459000038B5054620 +S1130B90BDE87040FFF752BF4859000038B505461C S1130BA00C46FFF7BBFE20B9084840F2F14101F0C2 S1130BB00FFC2846214601220823FFF73FFF284661 -S1130BC021460122BDE83840FFF70CBF445900001C +S1130BC021460122BDE83840FFF70CBF4859000018 S1130BD070B505460C46FFF7A1FE20B9084840F25F S1130BE0966101F0F5FB284621460222FFF7FAFE42 S1130BF02846214601220823BDE87040FFF71EBFA6 -S1130C004459000070B505460C46FFF787FE20B92D +S1130C004859000070B505460C46FFF787FE20B929 S1130C10084840F2EA6101F0DBFB28462146022243 S1130C20FFF7E0FE2846214601220823BDE8704074 -S1130C30FFF704BF44590000830510B5044603D0F0 +S1130C30FFF704BF48590000830510B5044603D0EC S1130C400D489C2101F0C4FB0C4B40F601221A60B4 S1130C500B4843F8144C143B0833186019688A078E S1130C60FCD4084A40F6012013681840002814BF39 -S1130C704FF0FF30002010BDAD59000014D00F40DC +S1130C704FF0FF30002010BDB159000014D00F40D8 S1130C80020042A40CD00F4070B50C46A1070646E2 S1130C90154603D02748DF2101F09AFBAA0703D0A9 S1130CA02448E02101F094FB234B42F201622348E3 @@ -210,14 +210,14 @@ S1130CF024F07F0018603346E7E7164842F20162A9 S1130D0001680A40002A14BF4FF0FF30002070BD74 S1130D100268D107FCD404332A199A42EDD00C4856 S1130D20311B0360C8580C4A08491060101D01604B -S1130D30EEE700BFAD59000014D00F40A0E10F4012 +S1130D30EEE700BFB159000014D00F40A0E10F400E S1130D4000D10F4030D00F4020D00F40010042A40A S1130D5000D00F400CD00F4004D00F4038B50C46E3 S1130D60054620B910484FF4217101F031FB24B934 S1130D700D4840F2852101F02BFB0C4B1A6812F050 S1130D80E04F0DD018680A490140B1F1805F07D0E7 S1130D90084B09481A682A6001680020216038BDA0 -S1130DA04FF0FF3038BD00BFAD59000000E00F40E8 +S1130DA04FF0FF3038BD00BFB159000000E00F40E4 S1130DB00000FF70E0E10F40E4E10F40114B984266 S1130DC01DD003F58051884219D001F5805290421C S1130DD015D002F58053984211D003F58051884212 @@ -226,10 +226,10 @@ S1130DF005D003F58051421A5042504170470120FA S1130E00704700BF00C0004010B50446FFF7D6FF8E S1130E1020B908484FF4FB7101F0DAFAE36A43F0B1 S1130E201000E062216B41F4407242F0010323633D -S1130E3010BD00BF1A5A000010B50446FFF7BEFFEC +S1130E3010BD00BF1E5A000010B50446FFF7BEFFE8 S1130E4020B9094840F2162101F0C2FAA369190732 S1130E50FCD4E06A20F01001E162226B22F44073BA -S1130E6023F00100206310BD1A5A0000F8B50446AF +S1130E6023F00100206310BD1E5A0000F8B50446AB S1130E700E4615461F46FFF7A1FF20B92A484FF436 S1130E80B07101F0A5FA25B9274840F2611101F0CB S1130E909FFA264A136813F0E04F1CD011682448C7 @@ -241,18 +241,18 @@ S1130EE04FF4B17101F074FA2046FFF7A5FFB6EB99 S1130EF0051F236B04D243F0200121636D0802E037 S1130F0023F020002063F600B6FBF5F56A1C0020F0 S1130F10D309C2F345056362A562E762A061204676 -S1130F20BDE8F840FFF770BF1A5A000000E00F4018 +S1130F20BDE8F840FFF770BF1E5A000000E00F4014 S1130F300000FF70000001100000031010B504460B S1130F40FFF73CFF20B9054840F2554101F040FA53 -S1130F50A06980F02001C1F3401010BD1A5A0000AE +S1130F50A06980F02001C1F3401010BD1E5A0000AA S1130F6010B50446FFF72AFF20B9064840F276413F S1130F7001F02EFAA369D80654BF20684FF0FF3061 -S1130F8010BD00BF1A5A000038B504460D46FFF7DD +S1130F8010BD00BF1E5A000038B504460D46FFF7D9 S1130F9015FF20B9064840F2C94101F019FAA369C6 S1130FA09A0602D42560012038BD002038BD00BF58 -S1130FB01A5A000010B50446FFF700FF20B9044890 +S1130FB01E5A000010B50446FFF700FF20B904488C S1130FC040F23B5101F004FAA069C0F3C00010BD27 -S1130FD01A5A0000094B98420DD003F580518842FB +S1130FD01E5A0000094B98420DD003F580518842F7 S1130FE009D001F58052904205D002F58053C11A10 S1130FF04842484170470120704700BF00800040CC S11310002DE9F843089F0646884614461D46DDF838 @@ -267,18 +267,18 @@ S113108003D91248D92101F0A3F9022D02D025B1C8 S1131090002500E00825042200E02A461543756077 S11310A000230233B7FBF3F0411EFF29F9D8A20154 S11310B0336104F03004D3B21C4309F1FF3C44EA29 -S11310C00C0949EA01203060BDE8F883865A000023 +S11310C00C0949EA01203060BDE8F8838A5A00001F S11310D010B50446FFF77EFF20B905484FF485712B S11310E001F076F9636843F00200606010BD00BF50 -S11310F0865A000010B50446FFF76CFF20B9054876 +S11310F08A5A000010B50446FFF76CFF20B9054872 S113110040F2231101F064F9636823F00200606087 -S113111010BD00BF865A000038B504460D46FFF7DF +S113111010BD00BF8A5A000038B504460D46FFF7DB S113112059FF20B90B4840F2232101F051F92368FB S11311306FF0010203F00F0002FA00F1294204D01B S1131140044840F2252101F043F9E3689A07FCD5ED -S1131150A56038BD865A000038B504460D46FFF731 +S1131150A56038BD8A5A000038B504460D46FFF72D S113116039FF20B9054840F27F2101F031F9E368E5 -S11311705907FCD5A068286038BD00BF865A000016 +S11311705907FCD5A068286038BD00BF8A5A000012 S11311800369F0B500F1100C9EB20546180C1C0E54 S11311900870B01F4C7002239042B4BF044614463A S11311A0E71E9F4204DDDCF80070CF500433F7E7FC @@ -295,47 +295,47 @@ S1131240A34205D1CC5CCB18597844EA012103E0D0 S1131250541EA34201D1C95C01610121816310467E S113126030BD000038B5074B044698420D4603D004 S113127005485D2101F0ACF80448B5FBF0F1CDB2AE -S1131280656238BD00800440EE5A0000404B4C00BB +S1131280656238BD00800440F25A0000404B4C00B7 S113129038B5134B044698420D4603D01148A62195 S11312A001F096F825F4873020F0160119B10D48A5 S11312B0AA2101F08DF8E268E8B222F01603034394 S11312C0E360A168C5F3072221F00E031343A36072 S11312D0E06BC5F3074520F001010D43E56338BD1C -S11312E000800440EE5A0000144B37B5984205467E +S11312E000800440F25A0000144B37B5984205467A S11312F00C4604D0124840F2131101F069F824B9E5 S11313000F484FF48A7101F063F820786178A2786D S1131310E3788DF805108DF804008DF806208DF81B S113132007300198002168612279637901918DF871 S113133004208DF805300198A8613EBD008004406A -S1131340EE5A00000D4B10B59842044604D00C48E8 +S1131340F25A00000D4B10B59842044604D00C48E4 S113135040F2691101F03CF8A06840F01001A1606E S1131360A26842F00103A360E06840F00101E1607B S1131370A26842F01003A36010BD00BF00800440C7 -S1131380EE5A0000124B70B5984204460E461546BC +S1131380F25A0000124B70B5984204460E461546B8 S113139004D0104840F28F2101F01AF826B90D4804 S11313A04FF4247101F014F8002D04DC094840F2D4 S11313B0912101F00DF8606B10F03F0006D020463B S11313C031462A46BDE87040FFF7DABE70BD00BF63 -S11313D000800440EE5A0000144B70B59842054654 +S11313D000800440F25A0000144B70B59842054650 S11313E00E46144604D0124840F29E3100F0F0FF3D S11313F026B90F4840F29F3100F0EAFF002C04DCCC S11314000B484FF4687100F0E3FFA86BC107FCD4EC S113141040F2FE718C4201DD604270BD28463146C7 S11314202246BDE87040FFF7E9BE00BF00800440DB -S1131430EE5A000038B50B4B044698420D4604D0D2 +S1131430F25A000038B50B4B044698420D4604D0CE S1131440094840F2474100F0C3FF35F07F0304D060 S1131450054840F24A4100F0BBFF606820EA0505F8 -S1131460656038BD00800440EE5A000038B5074B73 +S1131460656038BD00800440F25A000038B5074B6F S1131470044698420D4604D0054840F26A4100F003 S1131480A7FF20680DB16168084038BD00800440A2 -S1131490EE5A000038B50A4B044698420D4604D073 +S1131490F25A000038B50A4B044698420D4604D06F S11314A0084840F29F4100F093FF35F07F0304D0D9 S11314B0044840F2A24100F08BFF256038BD00BF14 -S11314C000800440EE5A000038B50D4B04469842A3 +S11314C000800440F25A000038B50D4B044698429F S11314D00D4604D00B4840F2125100F079FF226A05 S11314E004F12001D207FAD4E800C5B245F00105A1 S11314F00D600B68D807FCD4216B88B238BD00BFDF -S113150000800440EE5A000013B5064C0146204604 +S113150000800440F25A000013B5064C0146204600 S1131510FFF702FE204601A9FFF71EFE9DF8040016 S11315201CBD00BF0080004038B500F0CBFE00F5C4 S1131530FA75FF20FFF7E8FFFF28044603D000F008 @@ -474,36 +474,36 @@ S1131D7014F0010007D00448044940F24262BDE86F S1131D801040FFF7FFBA10BD00800440CA0F0020C6 S1131D90024B034803491A88FFF71EBBC00F0020FB S1131DA000800440CA0F002000B589B000216846B5 -S1131DB0202203F045FD0848694602F01DFC40B9A5 +S1131DB0202203F047FD0848694602F01FFC40B9A1 S1131DC0009838B19DF8080080F01001C1F30010AC -S1131DD000E0002009B000BD5B5B000000487047D4 -S1131DE05B5B000010B5074C0023204606490A221D -S1131DF084F8243202F0DAF810B9012084F82402BD -S1131E0010BD00BF08000020765B000008B508483C -S1131E1090F82432012B01D102F049FB0548FFF769 -S1131E20C9F80128FAD00448BDE8084002F008BC0B -S1131E300800002000C000405B5B0000034890F8ED -S1131E402432012B01D102F032BB7047080000207C +S1131DD000E0002009B000BD5F5B000000487047D0 +S1131DE05F5B000010B5074C0023204606490A2219 +S1131DF084F8243202F0DCF810B9012084F82402BB +S1131E0010BD00BF080000207A5B000008B5084838 +S1131E1090F82432012B01D102F04BFB0548FFF767 +S1131E20C9F80128FAD00448BDE8084002F00ABC09 +S1131E300800002000C000405F5B0000034890F8E9 +S1131E402432012B01D102F034BB7047080000207A S1131E5038B50F4C054694F82432012B0AD121469B -S1131E6002F08AFC002805DA002084F824022046C7 -S1131E7002F01DFB6C1E14F8011F41B10548FFF769 +S1131E6002F08CFC002805DA002084F824022046C5 +S1131E7002F01FFB6C1E14F8011F41B10548FFF767 S1131E8083F80448FFF75AF80028FAD0F3E738BD7E S1131E900800002000C0004008B50848FEF7B4FB65 S1131EA00748FEF77BFB4FF040200321FEF7AAFE14 -S1131EB000F0CCFA00F0D9FAFCE700BF8003C001BF -S1131EC00100002001483D2100F082BA835B00003C -S1131ED008B500F0C8F978B100F010FB00F0DEF9A5 +S1131EB000F0CEFA00F0DBFAFCE700BF8003C001BB +S1131EC00100002001483D2100F082BA875B000038 +S1131ED008B500F0C8F978B100F012FB00F0DEF9A3 S1131EE000F0B8F9054B20F0604020F07F01196044 S1131EF000F0B0F94268904708BD00BF08ED00E06B S1131F00F8B505460E4617460024A3B29F4205D0F5 -S1131F10A05D605500F029FB0134F6E7F8BDFEF73B -S1131F202EB9000070B500240646254600F01DFBBE +S1131F10A05D605500F02BFB0134F6E7F8BDFEF739 +S1131F202EB9000070B500240646254600F01FFBBC S1131F30094BE258964209D3191948681218964277 S1131F4004D20C2101FB0535287A70BD0C3401350F -S1131F50C02CEBD1FF2070BD085C00002DE9F341DB +S1131F50C02CEBD1FF2070BD0C5C00002DE9F341D7 S1131F6005460068FFF7DEFFFF2801D100201AE0D4 S1131F7000242B1958682F6802AE46F8040D04EBB0 -S1131F80070800F0F2FA304641460422FEF77CFED0 +S1131F80070800F0F4FA304641460422FEF77CFECE S1131F900028EBD1E25901998A42E7D10434B4F51F S1131FA0007FE6D10120BDE8FC81000038B5104B6C S1131FB0044698420D4606D0B1F5004F05D0FFF710 @@ -515,7 +515,7 @@ S113200021F4FF75013304460E46904625F0010580 S113201006D140F8045B29464FF40072FFF770FFC5 S11320202068A84208D020462946FFF7BFFF04468F S113203010B90020BDE8F88321684746761AA21932 -S1132040161D00F092FA231DF01AB0F5007F08D394 +S1132040161D00F094FA231DF01AB0F5007F08D392 S1132050204605F50071FFF7A9FF04460028E8D0E3 S1132060061D17F8011B08EB0902974206F8011B2D S1132070E7D10120BDE8F883034A04484FF0FF3359 @@ -527,16 +527,16 @@ S11320C032462B46BDE87040FFF796BF002070BD36 S11320D03002002034040020F8B505460E46FFF710 S11320E021FF0446681E8019FFF71CFFFF2C0546DC S11320F04DD0FF284BD0844249D8032C47D913280C -S113210045D8002600F031FA224B0C2202FB06319E +S113210045D8002600F033FA224B0C2202FB06319C S11321100F7AA74201D10C6804E00136102EF1D1E8 -S11321204FF0FF34002700F020FA1A4A0C2000FB7D +S11321204FF0FF34002700F022FA1A4A0C2000FB7B S11321300723197AA94201D11F6804E00137102F3F -S1132140F1D14FF0FF37002600F00FFA114A0C20AE +S1132140F1D14FF0FF37002600F011FA114A0C20AC S113215000FB0623197AA94201D15D6803E0013628 S1132160102EF1D100253F1B7819C0F38F270025CD -S1132170BD420AD200F0F9F92046FEF75DFD04F5F0 +S1132170BD420AD200F0FBF92046FEF75DFD04F5EE S1132180806420B96A1C95B2F2E70120F8BD0020F2 -S1132190F8BD00BF085C00000E4B07B51A68013299 +S1132190F8BD00BF0C5C00000E4B07B51A68013295 S11321A016D058689968DA680918881819695A693C S11321B0401881189869DB690A18D118484202AAA4 S11321C042F8040D042148F2F000FFF761FF00E03B @@ -561,1054 +561,1054 @@ S11322E0014605484FF461426023BDE81040FEF703 S11322F0BDBD00BF0100001000C00040402970B502 S113230006460D4603D91648572100F061F81548D2 S11323102946FEF739FE30B11248FEF70FFE30B9F8 -S113232000F023F9F8E70E485B2100F051F800248F -S1132330A3B2AB4213D200F018F90A48315DFEF79C -S113234023FE30B10748FEF7F9FD30B900F00DF96E +S113232000F025F9F8E70E485B2100F051F800248D +S1132330A3B2AB4213D200F01AF90A48315DFEF79A +S113234023FE30B10748FEF7F9FD30B900F00FF96C S1132350F8E70348642100F03BF80134E8E770BD76 -S1132360C85C000000C00040F8B5154C064625784E +S1132360CC5C000000C00040F8B5154C064625784A S11323706DB91448FEF7F4FD421C01D10020F8BDEC S11323801149124B0870012020701D70F6E70F4DA3 S11323900C482F78FEF7E4FD0137431CEED00A49C0 S11323A02B78C8550A78581CC3B29A422B70E5D1D1 S11323B030460131FFF7A4FD002222700120F8BD50 S11323C07D06002000C000403C0600207E06002060 -S11323D008B5034B18600348016000F0C6F8FCE739 -S11323E0800600208406002010B500F0BBF8012808 -S11323F017D000F063FAA0B10A4C2378012B10D156 -S1132400FFF760FF08490A6802F2EE23984208D3F6 -S11324100020207000F05CFA18B9BDE81040FFF706 -S113242057BD10BD880600208C06002008B5054B5A -S113243001221A70FFF746FF03490860BDE808400F -S1132440FFF7D2BF880600208C06002008B500F0F4 -S11324508BF8FFF713FFFFF700FF00F019FA00F005 -S113246011F8BDE80840FFF7E1BF08B500F07DF8BA -S1132470FFF71AFF00F016FB00F022F8BDE8084051 -S1132480FFF7B2BF37B50C4CFF2300258DF804309D -S11324908DF8055000F074F8FFF71CFF257003F069 -S11324A0E1F8064903200A782070012A02D101A824 -S11324B000F084F83EBD00BF01000020900600201B -S11324C008B50C48FFF750FF012805D10A4B00223C -S11324D008481A7000F072F8064803F00FF9012852 -S11324E007D10549032008700248BDE8084000F000 -S11324F065B808BD91060020010000207047000067 -S11325000A4B70B51A7806460C461D4612B9C9B274 -S1132510FFF7F4FE2878032803D13046E1B203F034 -S1132520D1F8BDE8704000F041B800BF01000020C0 -S1132530034B1878411E01298CBF402000207047AE -S113254001000020034B1878411E01298CBF402054 -S11325500020704701000020014B01221A707047CF -S11325609006002000F01AB870477047034BFE2213 -S113257018710220DA70A3F844007047D4060020D2 -S1132580054B00221A709A6483F84320A3F8442070 -S11325909A705A70704700BFD4060020024B187816 -S11325A0003018BF01207047D4060020024B0022DF -S11325B083F84320704700BFD4060020F8B506789E -S11325C00546FF2E824C19D100F078F908B9102085 -S11325D0E4E0002301251020637063712570E67028 -S11325E02071FFF7A5FFA071FFF7ACFFE071FFF7C3 -S11325F0A9FF010A21726572A57281E02778012F73 -S113260040F0E480F32E57D01FD8CF2E00F0BC80CA -S113261006D8C92E00F08580CC2E40F0BE80BAE0EA -S1132620D12E00F0AB80C0F08E80D22E40F0B58069 -S11326300025FF21E17025716571FFF779FFE571D0 -S1132640A07125726572072229E0FA2E4DD00AD8AE -S1132650F52E11D026D3F62E40F09F80FF21E17095 -S11326604268A26494E0FD2E4CD0FE2E55D0FC2E80 -S113267040F09380002091E0FFF75AFF6A7890427F -S113268001DC22208AE0A16C201DFFF739FCFF2029 -S1132690E070A26C69788B18A3646878421CA4F873 -S11326A044207DE0FFF744FF6B789842E9DD6968D8 -S11326B0201DA1646A78E8E7FF22E270A36C4468F5 -S11326C000221C19A34204D013F8010B1118CAB23A -S11326D0F8E73F4B0021C3F80720012008221871B6 -S11326E059719971A3F844205AE03A4B0020FF2213 -S11326F00721E270A36420716071A071C4F807100F -S11327000822CCE761780020FF23E3702071617117 -S1132710A071E07120720622C1E70021217061706E -S113272034E0A66CFFF704FF6A1C411E3046FFF735 -S113273096FD80B3FF23A56CE370FFF7F9FE013D1E -S11327402818A06424E0FFF7F3FE6B780138984260 -S113275097DDFF21E170A4F84470697819B9FFF797 -S113276084FDE8B917E01A4CAA1CA06CFFF777FDAA -S113277088B16A78A06C1318A36411E0A06C69682E -S1132780FFF76FFD10B906E0FFF7C9FBFF22E27007 -S1132790A4F8447004E0312000E02020FFF7E6FEB6 -S11327A00B4C94F84320012A02D11020FFF7DEFEDF -S11327B0B4F8441006480BB2002B07DD012280F860 -S11327C043200330BDE8F840FFF79ABEF8BD00BFD0 -S11327D0D40600203F5D000070B5002506462C4657 -S11327E0705D03F017F8C0B2A0F13003DAB2162A14 -S11327F010D8A0F13A0106290CD9092A84BFA0F106 -S11328003702D2B2013502EB0414022D04F0FF04A6 -S113281001D0E5E70024204670BD000010B5034652 -S11328200B4819460A24B1FBF4F102460130002991 -S1132830F8D102F801190A24B3FBF4F104FB1133B3 -S11328403033104602F801390B460029F3D110BD8C -S11328502107002038B50309092B05460C46184604 -S113286001D9373003E0303002F0D4FFC0B2207019 -S113287005F00F00092801D9373003E0303002F0A9 -S1132880C9FFC0B260700020A070204638BD0000AF -S113289008B5074B00200749187001F077FB28B1F1 -S11328A005487C21BDE80840FFF792BD08BD00BF84 -S11328B0600700206C070020475D0000034B187878 -S11328C0D0F1010038BF0020704700BF600700202E -S11328D010B5FFF747FE012801D1002010BD054CBB -S11328E02378002BF9D1FFF75FFA0128F5D1207086 -S11328F010BD00BF6007002010B50446007802F048 -S113290089FF532801D0032010BD607802F07CFFBA -S11329100028F8D06078312806D0322806D0332831 -S113292014BF0320022010BD002010BD012010BDE3 -S1132930F8B505460230FFF74FFF04350446074655 -S113294000262846FFF748FF013EB6B2BB1999B2EC -S1132950201802350129C4B2F3D82846FFF73CFFFA -S1132960E243D4B2231A58425841F8BD2DE9F0414C -S1132970044616460D4601B120B9494840F23621B5 -S1132980FFF726FD2046FFF7B7FF0328074600F0B0 -S113299082802046FFF7CCFF002879D0012F23D076 -S11329A002D3022F77D146E0A01CFFF715FF804623 -S11329B0201DFFF711FF07022F60A01DFFF70CFF7A -S11329C038182860A8F103050834ADB2002E63D08E -S11329D0002729B28F425FDA2046FFF7FDFEF0554B -S11329E001370234BFB2F4E7A01CFFF7F5FE8046BE -S11329F0201DFFF7F1FE07042F60A01DFFF7ECFE7A -S1132A0007EB00272F6004F10800FFF7E5FEA8F1AB -S1132A1004023B182B600A3495B2002E3CD00027E8 -S1132A2028B2874238DA2046FFF7D6FE791CF055E3 -S1132A3002348FB2F4E7A01CFFF7CEFE8046201DBF -S1132A40FFF7CAFE07062F60A01DFFF7C5FE07EBC0 -S1132A5000472F6004F10800FFF7BEFE07EB0027D4 -S1132A602F6004F10A00FFF7B7FEA8F1050138183A -S1132A7028600C348DB27EB100272BB29F420BDA52 -S1132A802046FFF7A9FE7A1CF055023497B2F4E70A -S1132A904FF6FF7500E0002528B2BDE8F08100BFC5 -S1132AA0475D00002DE9F041A84D2C78002C00F082 -S1132AB09181012C26D1FFF795F9A548FFF7C8F9B4 -S1132AC0A448FFF7C5F9FFF789F922460146A24851 -S1132AD001F06CFA064638B1A048FFF7B9F9204670 -S1132AE0BDE8F041FFF7AAB99D48FFF7B1F99D4849 -S1132AF0FFF7AEF99C48FFF7ABF99C480223066048 -S1132B004660BEE0022C40F09180994E4FF48071F3 -S1132B10984806F50D7201F0F3FD96F93A12002972 -S1132B2001DA8E48A3E068B19248002200F5C07132 -S1132B30FFF71CFF421C074604D18848FFF788F9B9 -S1132B40032097E03CB2002C12DD884D894B696864 -S1132B502A4621B9D3F8802185E8140008E0D3F887 -S1132B60805110683FB28542394438BF15605160C6 -S1132B707F4DD5F83C22D5F840329A4240F02A8164 -S1132B8005F50D70002101F099FC70B17348FFF751 -S1132B905FF90420FFF752F905F50D7001F087FC89 -S1132BA06A4A00211170BDE8F081704E6C48FFF74D -S1132BB04FF97148FFF74CF97068FFF72FFE6F4823 -S1132BC0FFF746F96E48FFF743F9F0786B49FFF7D2 -S1132BD041FEB0786B49FFF73DFE70786A49FFF714 -S1132BE039FE6A493078FFF735FE6448FFF730F95B -S1132BF06748FFF72DF996E80300FFF732FB534CC3 -S1132C00064660B95548FFF723F90520FFF716F982 -S1132C1005F50D7001F04BFC2670BDE8F0815048BD -S1132C20FFF716F903202070BDE8F081032C40F073 -S1132C30D1804F4E4F484FF4807106F50D7201F06C -S1132C405FFD96F93A32002B04DA5248FFF700F997 -S1132C5002200FE0C0B1474800F5C07100F5807252 -S1132C60FFF784FEB0F1FF3F80460DD14A48FFF7DD -S1132C70EFF82046FFF7E2F806F50D7001F017FCB7 -S1132C8000232B70BDE8F0810FFA88F5002D3FDD9D -S1132C904248FFF7DDF82846364CFFF7BFFD3748BA -S1132CA0FFF7D6F83E48FFF7D3F894F88301334989 -S1132CB0FFF7D0FD94F882013249FFF7CBFD94F879 -S1132CC081013149FFF7C6FD304994F88001FFF7CF -S1132CD0C1FD2A48FFF7BCF82D48FFF7B9F8D4F82E -S1132CE0800104F580722946FFF7B9FA044660B9F9 -S1132CF01A48FFF7ADF80620FFF7A0F8164801F0D0 -S1132D00D6FB12480470BDE8F0811548FFF7A0F81F -S1132D10174CD4F83C22D4F8400282425AD12148BC -S1132D20FFF796F8FFF7A1FA054600283CD10B48B7 -S1132D30FFF78EF80720FFF781F804F50D7001F016 -S1132D40B6FB024A1570BDE8F08100BF60070020A1 -S1132D50B25D0000D55D0000A0090020AD5E00005A -S1132D60FA5D0000FF5D0000235E000064070020A0 -S1132D706C070020C40B0020515E000020070020D7 -S1132D805A5E0000220700202407002026070020A6 -S1132D904D5E0000735E0000945E0000B55E0000AE -S1132DA0C25E0000D95E00000B48FFF751F80B48E3 -S1132DB0FFF74EF804F50D7001F079FB0848FFF7B2 -S1132DC047F8084B00211970FFF720F8BDE8F041DF -S1132DD0FFF77EB8BDE8F081FA5D0000F55E000003 -S1132DE00D5F00006007002010B50023934203D05C -S1132DF0CC5CC4540133F9E710BD002310B504467C -S1132E0018464208E15C42EAC010013342180B2B19 -S1132E1002F0FF00F5D110BD08B580B1036873B1AD -S1132E201A7862B1D9888088814208D15878FEF72F -S1132E3053FD10F0010F0CBF0020032008BD092032 -S1132E4008BDF8B503690C4601F10902002B4DD009 -S1132E50436911461F7B00255E5D0A46202E13D070 -S1132E60052E14BF3246E52207F00806F6B22EB14D -S1132E70A2F14106192E01D82032D2B2013501F84F -S1132E80012B082D0A46E7D11E7A202E17D02E22B8 -S1132E9001F8012B08269D5D0A46202D0FD007F06E -S1132EA01002D2B22AB1A5F14102192A01D8203563 -S1132EB0EDB2013601F8015B0B2E0A46EBD1D97A4B -S1132EC021729E7FDD7F310441EA05661D7F597FB3 -S1132ED02E4346EA012626605D7E197E41EA0526D8 -S1132EE0A680DD7D9B7D43EA0521E18000251570E8 -S1132EF0A669E6B1E269D2B103690BB9002514E011 -S1132F00018C4FF6FF729142F8D0C76937F815006B -S1132F1058B1002101F040FC0028EFD0E369591EAC -S1132F208D42EBD270550135F0E700207055F8BDA5 -S1132F30CA7E8B7E032843EA022305D1487D097D9E -S1132F4041EA002243EA02431846704710B504469A -S1132F500A46407804F134010123FEF7C5FC80BB26 -S1132F6094F8332294F8323243EA0221174B0AB21E -S1132F709A4228D194F86C2094F86D10130494F8B4 -S1132F806A2043EA016194F86B30114341EA03215A -S1132F900F4B21F07F429A4216D094F8880094F89F -S1132FA08910020494F8860042EA016194F88720AB -S1132FB0014341EA022121F07F40C01A18BF0120D9 -S1132FC010BD032010BD022010BD00BF55AAFFFF95 -S1132FD0464154002DE9F041154602681378303B10 -S1132FE0092B05D854783A2C02D10232026000E051 -S1132FF0002300200860002B40F05A81B54C24685F -S1133000002C00F058810C60217881B16078FEF7C3 -S113301063FCC1070BD4002D00F0508100F00401C3 -S1133020C8B2002814BF0A200020BDE8F0810020A7 -S113303020706070FEF73CFBC20700F142812DB1A5 -S113304000F00403DAB2002A40F03E810021204659 -S1133050FFF77CFF012818D194F8F60110B90D2070 -S1133060BDE8F08194F8FC5194F8FD112B0494F818 -S1133070FA0143EA016294F8FB11024342EA012592 -S113308020462946FFF762FF00E00025032800F0F0 -S11330901E810028E3D194F8402094F83F3043EA9D -S11330A00220B0F5007FDAD194F84B6094F84A100E -S11330B051EA06210DD194F85A3094F85B2094F823 -S11330C05810180440EA026694F859200E4346EA60 -S11330D0022194F84460E161731E012BE670BED8AE -S11330E094F84120A270002AB9D0501E1042B6D1E3 -S11330F094F8460094F8453043EA002398B21B073D -S11331002081ACD194F8487094F8473053EA0723EF -S11331100DD194F8563094F857701B0443EA0763B2 -S113312094F854703B4394F8557043EA072394F899 -S1133130438094F8427057EA082890D006FB01FCBB -S113314008EB10176744BB4289D3DB1BB3FBF2F3D4 -S1133150002B84D040F6F576B34206D94FF6F572CB -S113316093428CBF0326022600E00126023305EBBE -S113317008027F19032EA36125626262E76213D1FC -S113318000287FF46CAF94F8622094F86300120472 -S113319042EA006294F86000024394F8610042EA53 -S11331A00022A26298000FE000283FF458AF0CEB15 -S11331B00200022EA06201D1580005E003225A4306 -S11331C003F0010303EB520000F2FF13B1EB532FA2 -S11331D0FFF445AF00204FF0FF31032E2161E06082 -S11331E05AD194F8652094F86430607143EA02215E -S11331F06A186261607804F134010123FEF774FBFC -S1133200002849D194F8330294F8322242EA002388 -S1133210314819B281423FD194F8362094F83730BE -S1133220110441EA036094F8343094F835201843CB -S113323040EA0221294881422ED194F81A2294F8B6 -S11332401B32110441EA036094F8183294F81922ED -S1133250184340EA0221224881421DD194F82232C7 -S113326094F82322190441EA026094F8202294F885 -S11332702132104394F81E2240EA032194F81F02DD -S11332801304E16043EA006194F81C0294F81D22DF -S1133290014341EA02232361124926700888421C33 -S11332A093B200200B80E38020632071BDE8F0819D -S11332B00B20BDE8F0810C20BDE8F0812846BDE874 -S11332C0F0810320BDE8F0810A20BDE8F0810120EF -S11332D0BDE8F0814C0F002055AAFFFF5252614116 -S11332E072724161480F0020F8B50446007908B3B2 -S11332F0256B04F13407607839462A460123FEF72A -S113330037FBB0B9636A20719D4201D20020F8BD39 -S1133310E26998188542F9D2E678012EF6D9E16976 -S113332060786D182A4639460123FEF721FB013ED9 -S1133330F3E70120F8BD38B50446FFF7D5FF03468F -S1133340002B50D12278032A45D16079002842D03D -S1133350236304F134010025CD540133B3F5007F18 -S1133360F9D1522384F8343084F835306123AA200B -S113337084F8363084F81B32236984F833027220CF -S1133380552284F8180284F81902180C84F83222A1 -S113339084F81E024122E06884F8372084F81A2257 -S11333A084F81C32C3F307221B0E84F81D2284F810 -S11333B01F32C0F30722030C84F82002000E84F8A5 -S11333C0212284F8223284F823026269607801237E -S11333D0FEF7CEFA6571002160780A46FEF72AFBF3 -S11333E0003018BF012038BD38B5036B044699423C -S11333F00D460CD0FFF778FF58B9607804F134011A -S11334002A460123FEF770FA18B9256338BD002057 -S113341038BD012038BD836902399A1E914204D215 -S11334208278C06A02FB01007047002070470129BE -S1133430F8B504460D465DD9836999425AD201789C -S1133440022928D0032937D0012950D1426A05EB3B -S1133450550602EB5621FFF7C7FF002847D1636AE0 -S1133460F005013604EBD05703EB5621204697F8BC -S11334703470FFF7B9FF002839D1F60504EBD654B0 -S113348094F83410EB0747EA012201D51009F8BD7E -S11334901005000DF8BD426A02EB1521FFF7A4FFE9 -S11334A028BB2D06ED0D6119641991F8343094F898 -S11334B0350043EA0020F8BD436A03EBD511FFF75A -S11334C093FFA0B96D06ED0D611991F8370091F8DD -S11334D03620343103064978641943EA024294F8E9 -S11334E0343042EA0120184320F07040F8BD4FF018 -S11334F0FF30F8BD0120F8BD70B504460D46E180EB -S11335008168012901D1022070BD03689A69914242 -S1133510F9D271B91878032801D1996A49B919897E -S11335200020A942E060EED99B6A03EB15122261E8 -S113353019E09E783601B5420ED32068FFF777FF75 -S1133540421C014618D00128DDD923689A699042AB -S1133550D9D2AD1BADB2EEE7E1602068FFF75BFFA7 -S113356000EB15112161206805F00F0500EB4511F2 -S113357034316161002070BD012070BD0129F8B5AE -S113358004460D46164672D9836999426FD2017872 -S113359002293AD0032949D0012964D1426A05EBB2 -S11335A0550702EB5721FFF71FFF00285CD1F805F0 -S11335B0C20D15F00105F3B207D0A11891F834003B -S11335C000F00F0141EA0313DBB2616A0120A21883 -S11335D00137207182F83430204601EB5721FFF780 -S11335E003FF002840D1FF05FA0D15B1C6F30716F5 -S11335F007E0A31893F83410C6F3032621F00F074D -S11336003E43A71887F834602EE0416A01EB152188 -S1133610FFF7EAFE40BB2D06EB0DE21882F834609A -S1133620C6F30726154682F835601DE0426A02EBB0 -S1133630D511FFF7D9FEB8B96D06EB0DE11891F875 -S113364037200D46130603F070421643C6F30723D2 -S1133650320C81F83460360E81F8353081F836202A -S113366081F8376000E0022001212171F8BD0220B9 -S1133670F8BDF8B505460F4631B9C6686EB1806924 -S1133680864228BF012609E0FFF7D1FE01283BD975 -S1133690AB69984239D33E4600E001263446A96915 -S11336A001348C4204D3012E01D80020F8BD022439 -S11336B028462146FFF7BBFE48B1431C02D14FF018 -S11336C0FF30F8BD01281FD0B442E8D1EDE7284609 -S11336D021466FF07042FFF751FF98B947B92A6944 -S11336E0EC60511C0CD0531E01202B61687107E063 -S11336F0284639462246FFF741FF0028EFD001E073 -S11337002046F8BD0128DAD00120F8BD2DE9F843A0 -S1133710C6880446701C86B20F4616B90420BDE85C -S1133720F8832369002BF9D016F00F085AD1591CDD -S11337302161E168206819B90289B242EED951E0E9 -S11337408278531E13EA16124CD1FFF770FE01283B -S1133750054602D80220BDE8F883411C02D10120AD -S1133760BDE8F883206881698D4235D3002FD5D018 -S1133770E168FFF77EFF054600283CD00128E9D028 -S1133780421CECD02068FFF7AFFD0028E7D1226887 -S11337903432002717540130B0F5007FF9D1D4F842 -S11337A0009029464846FFF736FEC9F830002068E5 -S11337B08378BB420DD9012202712068FFF794FD82 -S11337C00028CCD120680137036BFFB2591C016378 -S11337D0EDE7016BCF1B0763E56020682946FFF71F -S11337E01AFE20612068E68000EB481334336361DD -S11337F00020BDE8F8830720BDE8F8832DE9F84FE1 -S11338004FF0FF0906464C4630683169FFF7ECFD7E -S11338108046002840F0838075692F78002F78D087 -S1133820EA7AE52F02F03F0369D002F00800C1B242 -S113383011B10F2B63D101E00F2B4AD1D6F81CB084 -S1133840BBF1000F5CD007F04000C1B231B1F48885 -S113385095F80D9007F0BF07348401E0A7424ED1DC -S11338606B7B4B454BD12A780D2122F04000441E3E -S11338704C434FF001084FF0000A2A4B1AF803108A -S11338806A1850786B5C43EA0020B8F1000F0BD043 -S113389000F09EFFFE2C804631D83BF8140000F067 -S11338A097FF0134804502E04FF6FF71884226D12C -S11338B00AF1010ABAF10D0FDFD12A7802F04000B3 -S11338C0C3B24BB3B8F1000F26D03BF814401CB37D -S11338D015E024B92846FFF790FA81451FD04FF62A -S11338E0FF723284B269D37A13F0010307D1E85C22 -S11338F0D15C0133884202D10B2BF8D10FE0FF24B5 -S113390030460021FFF702FF804600283FF47CAFD9 -S113391005E04FF0040802E0791ECCB2F0E740461F -S1133920BDE8F88FC65F00002DE9F74F0B78064617 -S11339302F2B894601D05C2B01D109F10109002408 -S1133940B46099F800001F2800F2948030462146A4 -S1133950FFF7D2FD74611FE15C2900F08B80D6F87B -S11339601CB00025785D6C1C1F2800F28B8007EBCF -S113397004091F2894BF042400240BEB4500002DE8 -S113398000F0048130F8021D202900F098802E29CF -S113399000F095800023B2690BEB45072BF8153036 -S11339A02020D05401330B2BFAD14FF000083BF800 -S11339B01810202900F085802E2900F08280B8F1AB -S11339C0000F01D044F003043B4633F8027D2E2F50 -S11339D001D0013DF9D100224FF0080A17463BF807 -S11339E0183008F10108002B6ED1B3691978E52964 -S11339F001D105201870BAF1080F01D1BA00D7B26D -S1133A0007F00C030C2B00F0A88007F00301032936 -S1133A1000F0A38004F00200C2B24AB907F0030721 -S1133A20012F08BF44F01004042B08BF44F008041D -S1133A30B3693046DC720021FFF75EFD10B93046F1 -S1133A40FFF7DCFEB169CA7A002840F0898002F0F1 -S1133A500403D9B2002940F09F807169C87A00F04C -S1133A601002D3B2002B00F0858034682078FFF771 -S1133A705FFAB0604F46397809F101092F297FF4C4 -S1133A806BAFF7E72F283FF472AF5C283FF46FAFBA -S1133A90B4F5807F7AD0012100F07EFE002875D035 -S1133AA07F2806D83D4A12F8013F13B18342FAD168 -S1133AB06CE00BEB440525F8020C254652E7013D6A -S1133AC05DE708F1010872E7202B03D02E2B04D107 -S1133AD0A8455DD044F0030481E7524502D2A845CD -S1133AE015D155E0BAF10B0F04D144F003044FF0A3 -S1133AF00B0A7AE7A84503D044F003043FF675AFF8 -S1133B00BF00FFB2A8464FF00B0A082267E77F2BDD -S1133B100ED918460021019200F03EFE019A034698 -S1133B2018B11F48C11811F8803C44F002042BB1AD -S1133B301C4810F8011F29B19942FAD144F003043A -S1133B405F2306E0A3F1410081B2192914D847F09C -S1133B500207B0698354013241E744F0020459E793 -S1133B60042819D102F00401C8B2002814BF0420AB -S1133B70052011E005200FE0A3F1610081B21929AD -S1133B80E7D8203B47F001079BB2E2E7062003E0B9 -S1133B90BAF10B0FB4D1A8E7BDE8FE8F355F000082 -S1133BA0465F00003E5F000038B5018CC5884FF6C3 -S1133BB0FF73994208BF29460446FFF79DFC01465E -S1133BC0B8B921692068FFF70FFC014670B9606934 -S1133BD0E5220270236801201871E288AA4208D203 -S1133BE02046FFF793FD01460028EAD0042908BFC8 -S1133BF00221084638BD00002DE9F041FF270446A4 -S1133C003D4604262169002967D02068FFF7ECFBB4 -S1133C100646002862D163691A78002A64D0E52A2E -S1133C20D97A51D02E2A4FD001F03F0008284BD02A -S1133C300F283FD102F04006F1B229B1E5885F7B3D -S1133C4002F0BF02258401E0AA423DD1587BB8426C -S1133C503AD119780D2001F03F05691EE669414308 -S1133C604FF0010E0020234D10F805C003EB0C05A6 -S1133C7095F8018013F80C5045EA0825BEF1000FB1 -S1133C8006D0FE2920D826F81150AE46013103E0B3 -S1133C904FF6FF7C654517D101300D28E3D11B7821 -S1133CA003F04005E8B2E0B1FE290DD8002326F860 -S1133CB0113016E025B91846FFF79FF8874215D052 -S1133CC04FF6FF73238411E0FF2520460021FFF700 -S1133CD01DFD0646002895D000E03EB1002121617B -S1133CE004E0013AD5B2F0E70426F7E73046BDE830 -S1133CF0F08100BFC65F0000012970B504460D467F -S1133D0022D9836999421FD2A069854205D22046EF -S1133D102946FFF78CFB064608B9002070BD012830 -S1133D2012D0431C0ED0204629460022FFF726FC61 -S1133D3058B92169481C03D04A1C012522616571C8 -S1133D403546E1E7012070BD022070BD73B51C4605 -S1133D5016460B220546FFF747F8052C0AD9B21E72 -S1133D6032F8020F630843EAC434538821188CB232 -S1133D70002BF5D1072304F00F0000F13002392A9B -S1133D8088BF00F137020DF80320013B2409F2D16A -S1133D9002A9C8187E2200F8082C9C4204D0295D90 -S1133DA0202901D00134F8E7072B05D802AAD1183D -S1133DB011F8080C013300E0202028550134072CA9 -S1133DC0F2D97CBD2DE9FF418669D0F81C800C2214 -S1133DD00446314601A8FFF707F89DF80F30DA07CB -S1133DE022D50020F0720127E061304601A9424645 -S1133DF03B46FFF7ABFF20460021FFF77DFB05465E -S1133E0050B92046FFF7FAFC054628B90137BFB27E -S1133E10642FEAD10725B2E0042D40F0B0809DF86C -S1133E200F10F172C4F81C809DF80F2002F00205F7 -S1133E30EBB20BB901270CE0002038F8107017B171 -S1133E40471CB8B2F9E700F119010D2291FBF2F514 -S1133E50AFB220460021FFF74FFB0546002840F093 -S1133E608E80064620682169FFF7BEFA05460028C1 -S1133E7040F0858063691878E52800D018B90136C8 -S1133E80BE4201D108E02E4620460121FFF73EFC48 -S1133E9005460028E6D072E0013EB6B2002E53D0AB -S1133EA0E18820468A1B91B2FFF726FB05460028CD -S1133EB065D1A069FEF7A1FF074620682169FFF7D5 -S1133EC093FA03460546002859D162690F20F5B2DA -S1133ED0D4F81CE0691ED0720D204143577313734C -S1133EE09376D37618464FF6FF7CDFF89C806345C3 -S1133EF018BF3EF8113010F808C04FEA132802F832 -S1133F000C30944418BF01318CF8018001304FF615 -S1133F10FF7C002B08BF63460D28E4D1634502D023 -S1133F203EF8113013B946F04005EDB21570216822 -S1133F3001220A7120460021FFF7E8FB0546F0B98B -S1133F40013EB6B2002EB8D120682169FFF74CFAC1 -S1133F500546A0B960692B460021C1540133202BCA -S1133F60FAD16069A1690B22FEF73EFFA26960697C -S1133F70D17A012201F018030373206802712846E4 -S1133F8004B0BDE8F08100BFC65F000048B9064A2E -S1133F90136803B1187009B1002008701160002083 -S1133FA070470B20704700BF4C0F00202DE9F047ED -S1133FB08EB0019116460546002800F09880002333 -S1133FC0036005A901A802F01E02FFF703F880466A -S1133FD0002840F095804C4902A80B900C9105A84C -S1133FE00199FFF7A1FC0A9C18B9002C0CBF06200C -S1133FF0002016F01C0F06F01F0748D048B1042813 -S113400002D105A8FFF7DEFE47F008070A9C48B175 -S113401075E0E17A11F0110F70D106F00403DEB2FD -S1134020002E67D107F00802D0B200283DD0FDF77A -S1134030FFFDC0F30726E673010C0026030EDDF82E -S113404014902174E67226776677A677E677A073D4 -S1134050637499F800002146FEF76AFF0122A676F0 -S1134060E6762675667589F804200646E8B1484662 -S11340703146D9F830A0FFF73FFE00283FD105981C -S1134080013EC6605146FFF7AFF970B137E0002832 -S113409035D1E37A03F01002D0B200282CD106F017 -S11340A00206F6B20EB1D90728D407F00800C1B24F -S11340B009B147F02007059E2146336B2C62EB6162 -S11340C0AF713078FEF734FF2861A07FE27F0104EE -S11340D041EA0263227F607F1343F28843EA0021AE -S11340E00023E960AB60AB612E60AA8008E04FF06A -S11340F0090805E0082002E0042000E007208046CB -S113410040460EB0BDE8F087480D00202DE9F74F7A -S11341109A460023CAF80030044688461746FEF73C -S11341207BFE0546002840F0A080A179080600F136 -S11341309980C90740F19880E068A268861AB7425E -S113414038BF3E46002E00F09080A168CB0570D1A8 -S1134150206883785A1E02EA512313F0FF030CD11E -S113416009B9206904E061690193FFF760F9019BD3 -S113417001280BD9421C55D06061D4F800B06169A4 -S113418058460193FFF747F9019B20B9A07960F0E5 -S11341907F03A37166E05FEA562900EB030724D08E -S11341A09BF8022009EB0300904288BFC3EB02098D -S11341B041469BF801003A465FFA89F3FDF794FB08 -S11341C0A17980BB01F04001CBB25BB1A269D71BDE -S11341D04F4507D208EB472004F124014FF4007245 -S11341E0FEF702FE4FEA492731E0A269BA421FD026 -S11341F0A07900F04001CBB25BB104F124019BF83B -S113420001000123FDF7B4FBA17960B921F040025C -S1134210A271214651F8240B3A4640780123FDF758 -S113422063FB28B1A17961F07F05A57101251CE02C -S1134230A761A7684046F905CB0DC3F50077BE42D8 -S113424038BF3746E11824313A46FEF7CDFDA06861 -S1134250DAF80030C119DA19A160B844CAF80020AC -S1134260F61B6FE7022500E007252846BDE8FE8F10 -S11342702DE9F74F99460023C9F8003004468846D3 -S11342801746FEF7C9FD0546002840F0B780A0791F -S1134290010657D400F00201CAB2002A00F0AD8032 -S11342A0E368DF4228BF002730E05FEA572B00EBCA -S11342B00A0674D098780BEB0A01814288BFCAEBD6 -S11342C0000B4146587832465FFA8BF3FDF750FBFA -S11342D0002873D1A3699E1B5E450BD204F1240010 -S11342E04FF4007208EB4621FEF77EFDA27922F01E -S11342F04000A0714FEA4B26A168D9F800208B1921 -S11343009019A360B044C9F80000BF1B0FB3A168A3 -S1134310CA055AD1206890F802A00AF1FF3202EAD5 -S1134320512313F0FF0A1DD171B9216921B9FFF797 -S1134330A0F90146206161B10129A3790FD163F08D -S11343407F01A171022559E06169FFF792F90146E5 -S1134350F1E7A068E26890424AD9E06048E04A1C6C -S11343602DD06161A07900F04001CAB262B121464A -S113437051F8243BA26958780123FDF7F9FAA3798F -S1134380E8B923F04000A0712268616910460192E7 -S1134390FFF741F8019B002887D1A379CFE7A169F2 -S11343A0B14211D0A068E26890420DD2587804F16D -S11343B0240132460123FDF797FA28B1A37963F06B -S11343C07F05A571012519E0A661A668F305D90D3D -S11343D0C1F500766018B74238BF3E4624303246F5 -S11343E04146FEF701FDA07940F04002A27183E747 -S11343F0A37943F02001A17100E007252846BDE818 -S1134400FE8F70B50446FEF707FD00284ED1A37950 -S113441003F02002D1B2002948D003F04000C3B217 -S11344206BB1214651F8242B01235078A269FDF782 -S11344309FFA002839D1A67926F04001A17120689D -S1134440E169FEF7D1FF0646002E2FD1256AE87AEE -S113445040F02003EB72E2682A77A189080A6877A2 -S1134460E389AB77E27BEA7721690B0C1A0AC1F383 -S11344700720A9762B756A75E876FDF7D9FBA87530 -S1134480030CC0F30721000EE97568762B76AE7431 -S1134490EE74A2792368012022F02001A171187121 -S11344A02068BDE87040FEF746BF012070BD10B51E -S11344B00446FFF7A6FF00B9206010BDF8B5044616 -S11344C00D46FEF7A9FC0646002840F09380A27929 -S11344D0110600F18E80E3689D4205D902F00200C6 -S11344E0C1B2002908BF1D460022A368A2600DB90D -S11344F000254DE0206887787F026BB1013B691E7F -S1134500B1FBF7F1B3FBF7F2914205D378420340D4 -S1134510A360ED1A61690AE0216939B9FFF7A9F8C6 -S1134520012801462DD0431C52D02061616100292D -S1134530DED0BD421CD9A379206803F00202D3B2B5 -S113454023B1FFF796F8014618B910E0FEF76FFFA4 -S11345500146481C3CD0012913D920688269914244 -S11345600FD2A3686161D819A060ED1BE1E73D4655 -S1134570A2685319A360EB05BAD02068FEF74BFF7D -S113458020B9A07960F07F02A27132E000EB5525DA -S1134590A168CB0523D0A269954220D0A07900F070 -S11345A04003D9B259B1214651F8240B0123407874 -S11345B0FDF7DEF9A17960B921F04002A27121462C -S11345C051F8243B2A4658780123FDF78DF928B188 -S11345D0A17961F07F06A67101260BE0A561A168AF -S11345E0E068814206D9A279E16042F02003A37118 -S11345F000E002263046F8BD30B58FB00EAB43F86C -S1134600340D0D46184605A90022FEF7E3FC0446C6 -S113461088B90A4902A80B900C9105A80199FFF7E3 -S113462083F9044638B90A9A22B105A82946FEF747 -S113463008FC00E0062420460FB030BD480D0020E1 -S113464070B598B018AB43F85C0D184606A9012262 -S1134650FEF7C0FC044600284DD1284903A80C905D -S11346600D9106A80199FFF75FF90446002842D18D -S11346700B9E36B1F27A12F0010F0CBF002407240E -S113468000E00624069D31462878FEF751FC0546D5 -S1134690002C30D1F47A04F01003D8B2C8B1012D43 -S11346A013D90FA806A92422FEF79EFB0FA8022106 -S11346B01195FEF721FF0446E8B90FA8FFF79CFA0D -S11346C0044620B1042804D015E0022413E0072492 -S11346D011E006A8FFF768FA044660B925B9069800 -S11346E0FEF729FE044606E006982946FFF704FB78 -S11346F004460028F3D0204618B070BD480D0020B1 -S11347002DE9F34106460F469046054600247B1EDC -S11347109C4211DA01224046694601ABFFF7F6FCE0 -S11347200198012808D19DF800100D29EFD001341B -S11347300A2905F8011BEAD100222A70944214BF09 -S113474030461046BDE8FC810A2837B504460D46BC -S113475002D10D20FFF7F8FF02A901F8084D284601 -S11347606946012201ABFFF783FD0198012814BFBC -S11347704FF0FF3001203EBD70B505460E460024C3 -S1134780285D38B13146FFF7DFFF431C01D0013407 -S1134790F6E70446204670BD7F2816D931B1FF28BC -S11347A012D80A49803831F810007047074A8BB292 -S11347B032F81120824203D001318029F6D10B4610 -S11347C003F18000C0B2704700207047B46100005C -S11347D00023064A32F8131031B1884201D0013364 -S11347E0F7E7034830F81300704700BFD45F0000B8 -S11347F0B462000010B5013A8A1891420CD20C78C8 -S11348004B7803EB04239BB2181880B2984201D270 -S1134810431C98B20231F0E707D10B78190208184B -S113482080B2884201D2421C90B210BD38B50E4C01 -S11348300822657C237C143D05EB03218DB24019CD -S113484004F11A0180B2FFF7D5FF04F122012A46D0 -S1134850FFF7D0FF20B1020A42EA002398B238BD24 -S11348604FF6FF7038BD00BFCA0F002070B5C47882 -S1134870124B0A19D4B2DC7085780E0A7219D2B2BE -S11348809A704578B2425D700078187005D201358F -S1134890EDB25D700DB901301870C9B28C420CDAFA -S11348A0531C0648DAB282703AB941784B1CDAB22A -S11348B0427012B901784B1C037070BD19160020A8 -S11348C010B5084C014620680830FFF7CFFF064AB0 -S11348D023681178507819729178D2785872997245 -S11348E0DA7210BD500F00201916002008B5002000 -S11348F006491422FFF77EFF20B1030A43EA002091 -S113490080B208BD4FF6FF7008BD00BFD80F00206D -S11349100620FFF78BBF0000064900231A460B80D0 -S1134920054B01200549187005484A764FF480620A -S1134930028070472A16002028160020540F0020F9 -S11349401E160020044A054B118811B919701080F5 -S113495070470120187070472A160020281600207E -S1134960F8B5834B83491C68834B032803F1360253 -S11349700A6082490A600AD1607E00F00F03032BAB -S113498040F0BE84218A002940F0BA846DE00228F8 -S11349906FD17B48C278511CCBB2C37063B98278A3 -S11349A0511CCBB283703BB94278511CCBB24370DB -S11349B013B90278511C0170724B734A002018809D -S11349C01080607E072801D005280AD1A07E431CF0 -S11349D0D9B27829A17640F093840022627600F05F -S11349E08FBC002800F08C84218A002938D0A27E54 -S11349F0511EA176002A40F08384E37E082B04D064 -S1134A00421E012A09D8052B07D100235F4A8021C1 -S1134A106376117000F0C2FE60E3042B04D8032215 -S1134A2002FA03F2D1B200E0302100F00F00A176C7 -S1134A300133411EE376072900F26284DFE811F0B6 -S1134A40800108000A00EC026004EC026004EC023D -S1134A50002576E14D4B04221A7000F09FFE5CE3C2 -S1134A6000F00F03032B40F04B84484808220270E7 -S1134A709DE2987B452840F0438442481E7C5A7C42 -S1134A80018802EB06268E4200F33A841A7DB6B200 -S1134A909206068040F034845B7D002B40F0308425 -S1134AA03B4804880CB9418849B1334AD38BA342AB -S1134AB040F02684118C4088814240F02184FFF725 -S1134AC015FF4FF6FF729042074640F019842A4DB5 -S1134AD0EB7D062B1DD0012B40F0128495F822109B -S1134AE0082940F00D84AB8C4FF6F67200209342F7 -S1134AF085F8220001D9093300E008331E49AB844C -S1134B00488B234A8B8BC88350880B844C838883BF -S1134B10DFE3FFF7FDFEB84240F0F2831D4B5C7EFD -S1134B2084B1A98C9A8891420CD1688CD988884226 -S1134B3008D1688B1A88904204D1A98B5888814285 -S1134B4000F01A810C4B93F82F2002F03F01022948 -S1134B502AD19A8C1048114602801048104B0088C4 -S1134B6082421FD1002C74D100241C70094C7AE0BD -S1134B70500F00200C160020CA0F00202C16002015 -S1134B8010160020C00F0020C80F002018160020A7 -S1134B9014160020540F0020201600202A1600208E -S1134BA02816002001221A707B4B93F82F1001F075 -S1134BB00400C2B2002A40F0A38393F82D20774961 -S1134BC0142528240C8083F82F5093F8294093F857 -S1134BD02C5083F8292093F82B20502093F8271089 -S1134BE083F82E0083F8272093F8280093F82620D2 -S1134BF083F828506A4D01342A7093F82A5083F8B8 -S1134C002C0083F82650E5B283F82B1083F82A2071 -S1134C1083F82D5065B90130C4B283F82C403CB9F7 -S1134C200131CDB283F82B5015B9013283F82A2013 -S1134C30594B5C4C588C5D8B2080998C98845A48D5 -S1134C4059849A8B04884188DD831A845C83998310 -S1134C5017E356480122072C0CBF044600241A709F -S1134C60002C00F04D83524D0326A67626760423AD -S1134C7000262C60484DE375A675E676A18095F86C -S1134C80221095F823006B8B41EA0022E280A98B65 -S1134C90484A238061801378517823736173937831 -S1134CA095F82910D278A373E27395F8283095F813 -S1134CB02720E17295F82610012060762082A372E5 -S1134CC062722172FFF7FCFD95F82E5005F0F0009A -S1134CD0502835DD2B0938495A1F95000A78334688 -S1134CE0AB4229DA2C48C11891F8362022B3012AA4 -S1134CF001D101331EE0022A17D191F83760042E46 -S1134D0013D12D48264D027091F8382091F83910AE -S1134D102B70244D41EA022340F20A602B80834227 -S1134D2028BF03466382A3820AE0C01890F83710B4 -S1134D3011B1CB18DBB2D3E719491F4D0B702A70A0 -S1134D4010251548144B80F82F5093F82F10042089 -S1134D5041F00202022583F837001048062183F847 -S1134D602F2083F836500A222C2583F8381083F834 -S1134D703920058060214AE20D4F95F82F203B60D1 -S1134D800E4902F004070020FFB20870C7B158763C -S1134D9020230B70E8E100BFCA0F0020C00F0020E1 -S1134DA0281600202016002014160020540F00207E -S1134DB0500F002010160020301600201816002076 -S1134DC095F82E30143E19098800964B361A9649E8 -S1134DD004F00F04B6B2022C18700E8003D102F056 -S1134DE03F0012280ED00EB994070BD08F49904B78 -S1134DF0CC8C1889844240F00082098D5B899942E9 -S1134E0040F0FB8102F01002D4B2002C44D0884C54 -S1134E10218A002940D004F10C00FFF727FD834AC2 -S1134E20844B92F82A001D78854235D192F82B10D4 -S1134E305878884230D192F82C609978B1422BD1BD -S1134E4092F82D20DB78934226D16073E07E25739F -S1134E50A173E373C0B9227EA37EA17DD01AA0EB17 -S1134E60D102D3B2DAB25918C9B21006A17501D56C -S1134E705C42E2B26E4BD87DA0EB9004A218D0B293 -S1134E8000EBD101D875197669486B4B027E012479 -S1134E9000211C7082760182654B674A597E01F0BD -S1134EA00F04601E072800F22B82DFE810F00800D0 -S1134EB01D008D00600181019D01A601540111783E -S1134EC05D4CCA0740F11C820320002158761982E8 -S1134ED0554B402218882270002800F0EF804222AF -S1134EE02270FFF7EDFCE9E01478E30762D54F4B3D -S1134EF093F82F2002F03F0012285BD193F82E3054 -S1134F0003F0F002502A36DD4C491809441F0A7890 -S1134F10A4000023A3422ADA4448C11891F8362099 -S1134F202AB3012A01D101331FE0022A18D191F8D2 -S1134F303750042D14D141483A4C027091F838206E -S1134F4091F8391023703E4B41EA022440F20A6082 -S1134F50374A1C80844228BF0446548294820AE063 -S1134F60C01890F8371011B1CB18DBB2D2E72D4935 -S1134F70324C0B7022702E4C2C4B032093F82620BD -S1134F8093F82710607693F8280093F8293022725A -S1134F906172A072E3720120FFF792FC264942225B -S1134FA00A70214B274A002020821880108000F0CC -S1134FB0F5FB89E0204C2021217000F0EFFB224B0F -S1134FC0002218684276EFE5184C94F82F30D80781 -S1134FD03CD501F01002D0B2002837D11448018A20 -S1134FE0002940F08D81104D2A88541CA0B2FFF78F -S1134FF067FC114B2D88187840F01001197015B119 -S113500040F012021A700A4C00F0C8FB0123082079 -S1135010002123826076E1761122044D85F82F2049 -S1135020F0E000BF28160020C00F0020CA0F0020A7 -S1135030540F0020191600201816002030160020E6 -S113504020160020C80F0020500F002003F0200479 -S1135050E3B273B1A04AA14B92F8340092F8354000 -S113506044EA0022186884181C609D4B1888821A30 -S11350701A809B4C208850B101F01001CBB233B997 -S1135080984C227842F002012170FFF719FC9248F3 -S113509090F8304090F83130934803EB0422818A31 -S11350A094B2924B8C421C8000D804B919808D4C68 -S11350B01A88237842829A0700F022818C480024BF -S11350C0048000F06BFB884C864B894A1B7803F004 -S11350D02001C9B221B100231380637614229CE716 -S11350E003F01000C0B230B10125042011802582E4 -S11350F06076E17690E7118869B1DB0748BF2082CA -S1135100228A7B4B32B9608A814288BF1880198811 -S1135110218200E01A800022E276764B744A1868F5 -S11351206E491388086033B1208A20B16C4B283053 -S1135130188018220BE06B490A7802F00203D8B2F7 -S1135140002800F0DD806648282505801022624989 -S113515081F82F2059E01178CA0740F1D18000244A -S11351605C76604B1020187000F018FBC8E05C48B7 -S1135170008808B1FFF7A4FB574B5A4993F82F2036 -S1135180087812F001040CD010F0010F564D05D030 -S1135190002207236B76AA762A8218E006246C760E -S11351A015E0C0071CD55048052141760482A7E0CC -S11351B04B48008808B1FFF783FB474B93F82F2037 -S11351C0D1070DD5484D072100246976AC7601201E -S11351D0FFF776FB43491020087000F0DFFA0CE07B -S11351E03F4B1A884AB98BE01278D20740F1888085 -S11351F00721002459769C7682E0374910253A4CE1 -S113520081F82F50364B28201880334B502183F8D7 -S11352102E10227A304D85F82A20607A85F82B00EA -S1135220A17A85F82C10E37A85F82D30227B85F855 -S11352302620607B062285F82700A17B85F82810AC -S1135240E37BEA7585F82930A0882B4B6884E188D4 -S1135250A984188859886883A9832388EB83608884 -S11352602884647E04F01001CBB22BB1002085F8B1 -S1135270310085F8300004E085F830200A2285F8F2 -S113528031201749144C0B8840251A0AA5750025AE -S11352902274637484F8355084F8345084F832509E -S11352A084F83350FFF734FB144AC04360861388F4 -S11352B04521581CA17381B211800A0AE5736575F2 -S11352C02575A274E17425766576FFF70FFBC34359 -S11352D02383002218E000BFCA0F00200C16002010 -S11352E0C00F002018160020540F002020160020A4 -S11352F0C80F00202C16002014160020C20F002016 -S1135300034900231A460B8002480270F8BD00BF0F -S1135310C00F0020181600200A1E034609DD0548A8 -S1135320054900680A80834203D0194692B200F00E -S113533079BA70472C160020C80F002038B52C4BC2 -S1135340988BDD8B0023072B11D80C225A43294953 -S11353508C18895A41B1628832B1884204D195428D -S113536002D12548037039E00133DBB2EBE70023B7 -S1135370072B0DD80C2058431E490A5A0C1822B981 -S1135380618811B91C48037023E00133DBB2EFE7F5 -S1135390194A082B13701CD11848002305781946A4 -S11353A01A46072A13480BD80C2404FB0200847AFB -S11353B0281B9842C4BFC3B211460132D2B2F0E7EF -S11353C00F4C0D4A23700C2404FB01040D4B117087 -S11353D0197020460C49042200F024FA0B490622D5 -S11353E0201D00F01FFA05490A78A27238BD00BFDB -S11353F0CA0F002034160020311600209516002014 -S11354003216002094160020E60F0020E00F002042 -S113541008B5124B00211A78501C187010480170FE -S11354200F490B78072B17D80C2043430D4AD0188B -S11354304188D35A41EA030291B249B1074B817AB8 -S11354401A78531A772B03DD0021042200F0F8F9AF -S113545003480278511CE2E708BD00BF95160020FE -S11354603116002034160020F8B52A4D2B88292B3C -S11354704FF000033DD9284C1F46A08A2B80B0F57D -S1135480807F03D0B0F5007F42D134E0234EE18C1D -S1135490328891423CD1208D7388984238D1FFF7ED -S11354A04DFF02216175062204F1160104F120006A -S11354B0277500F0B7F91A49062204F1160000F026 -S11354C0B1F917490622A01D00F0ACF904F120013E -S11354D00622204600F0A6F9A28BE08B338871885F -S11354E0E284208508220620A383E183227360736B -S11354F02A232B80F8BD094BE18C1A88914207D1ED -S1135500208D5B88984203D1BDE8F840FFF716BFB1 -S1135510F8BD00BFC00F0020CA0F002014160020E1 -S113552022160020434838B5C38B4FF6FF729342CE -S113553004D1028C9A4201D13F4968E03F4C404A71 -S1135540258810885D40054207D13A4D6488288C2F -S1135550528880EA0405154206D03A4D3A4B288811 -S11355606A8818805A8002E0374C23806080364C69 -S1135570002520886488072D0CD80C236B43334AFC -S1135580D118D25A824202D14B88A3423BD0013572 -S1135590EDB2F0E72E4B082D1D7036D1254CFF21BE -S11355A02046062200F04CF904F1200000210622D6 -S11355B000F046F9A01D2749062200F033F904F152 -S11355C016002449062200F02DF91F491B4B0888B8 -S11355D04A88E0841988588800232375A373637468 -S11355E02285A183E0830621012204201A4B6173E2 -S11355F06275E2732574A174E074257336341C60FB -S11356002A21164813E0124805700A48043106227C -S113561000F008F90F490622114800F003F9054982 -S1135620082200230D480A734B7301880E31018050 -S113563038BD00BFCA0F0020946400001416002077 -S1135640BC0F0020C40F0020961600203416002042 -S113565031160020221600200C160020C00F002056 -S1135660D00F002008B5FCF7E7FAFCF72BFE114B2E -S113567000F5FA701860FCF725FE0F4A00F51C517E -S113568010311160FFF748F90C4843F613714FF6D7 -S1135690A963038041800A484FF6FF720023028009 -S11356A043804EF60300FFF74DF9BDE80840FCF7D0 -S11356B0CFBA00BFA01600209C16002014160020AC -S11356C0BC0F002038B50C4B1C680023E269226231 -S11356D09AB28A4205D2C55CE21882F8245001339A -S11356E0F6E70431A4F8641004F12000FFF714FE77 -S11356F0E069411CE16138BD500F002010B5FCF792 -S11357002DFBC0B11F4C204B20809889082807D15D -S11357100120FFF725F922886AB1FFF703FF06E0AD -S1135720B0F5C16F07D1FFF79FFE218819B1FCF7CF -S11357302FFB00232380FCF7C5FD14490A6890421F -S113574011D302F5FA741248124B0C600D4C186018 -S11357500220FFF705F9218829B1FFF7E3FEFCF7E2 -S113576017FB00222280FCF7ADFD0B4B1968884221 -S113577005D301F51C5010301860FFF749FE0020D6 -S113578010BD00BFC00F0020CA0F0020A0160020CB -S1135790540F0020500F00209C16002010B5174B0A -S11357A017481C68037803F04002D0B228B10123E3 -S11357B00022E361A4F8642010BDD90703F00401BA -S11357C0CBB248BFA4F8640033B1B4F8641019B183 -S11357D004F12000FFF7A0FD094A107800F002014F -S11357E0CBB24BB1074800220168A4F86420081D1D -S11357F0BDE81040FCF7E2BE10BD00BF500F002012 -S1135800181600200C160020303809288CBF002000 -S113581001207047A0F16103D9B2192998BF20383B -S1135820704700004FF00003002A07D011F803C0AE -S113583000F803C003F10103013AF7D1704700BF38 -S11358400346002A00F0048003F8011B013AFBD14F -S1075850704700BFDA -S113585440420F0000201C0080841E0000802500AC -S1135864999E36000040380000093D0000803E0047 -S113587400004B00404B4C0000204E00808D5B0028 -S113588400C05D000080700000127A0000007D00FA -S113589480969800001BB7000080BB00C0E8CE00CF -S11358A4647ADA000024F4000000FA0080A81201EB -S11358B4002D310100366E0140787D01433A2F57A3 -S11358C46F726B2F736F6674776172652F4F706597 -S11358D46E424C542F5461726765742F44656D6F26 -S11358E42F41524D434D335F4C4D33535F454B5F12 -S11358F44C4D3353363936355F43726F7373776F58 -S1135904726B732F426F6F742F6964652F2E2E2F61 -S11359146C69622F6472697665726C69622F73793B -S11359247363746C2E63000000E10F4004E10F40C4 -S113593408E10F4040E00F4044E00F4048E00F40CE -S1135944433A2F576F726B2F736F66747761726566 -S11359542F4F70656E424C542F5461726765742FD7 -S113596444656D6F2F41524D434D335F4C4D33535A -S11359745F454B5F4C4D3353363936355F43726F55 -S11359847373776F726B732F426F6F742F696465CF -S11359942F2E2E2F6C69622F6472697665726C697E -S11359A4622F6770696F2E6300433A2F576F726BCF -S11359B42F736F6674776172652F4F70656E424CF6 -S11359C4542F5461726765742F44656D6F2F41526F -S11359D44D434D335F4C4D33535F454B5F4C4D3317 -S11359E453363936355F43726F7373776F726B73E3 -S11359F42F426F6F742F6964652F2E2E2F6C69628A -S1135A042F6472697665726C69622F666C6173685F -S1135A146C69622E6300433A2F576F726B2F736F56 -S1135A246674776172652F4F70656E424C542F54BF -S1135A3461726765742F44656D6F2F41524D434DF8 -S1135A44335F4C4D33535F454B5F4C4D33533639C1 -S1135A5436355F43726F7373776F726B732F426F54 -S1135A646F742F6964652F2E2E2F6C69622F6472F4 -S1135A74697665726C69622F756172746C69622EE1 -S1135A846300433A2F576F726B2F736F6674776199 -S1135A9472652F4F70656E424C542F546172676562 -S1135AA4742F44656D6F2F41524D434D335F4C4DFC -S1135AB433535F454B5F4C4D3353363936355F436F -S1135AC4726F7373776F726B732F426F6F742F6976 -S1135AD464652F2E2E2F6C69622F64726976657249 -S1135AE46C69622F7373692E6300433A2F576F7284 -S1135AF46B2F736F6674776172652F4F70656E4296 -S1135B044C542F5461726765742F44656D6F2F4133 -S1135B14524D434D335F4C4D33535F454B5F4C4DB6 -S1135B243353363936355F43726F7373776F726BE1 -S1135B34732F426F6F742F6964652F2E2E2F6C6937 -S1135B44622F6472697665726C69622F6574686524 -S1135B54726E65742E63002F64656D6F70726F6767 -S1135B645F656B5F6C6D3373363936352E737265CE -S1135B7463002F626F6F746C6F672E7478740043C4 -S1135B843A2F576F726B2F736F6674776172652F38 -S1135B944F70656E424C542F5461726765742F4480 -S1135BA4656D6F2F41524D434D335F4C4D33535FFD -S1135BB4454B5F4C4D3353363936355F43726F73FF -S1135BC473776F726B732F426F6F742F6964652FD1 -S1135BD42E2E2F2E2E2F2E2E2F2E2E2F536F7572E8 -S1135BE463652F41524D434D335F4C4D33532F4323 -S1135BF4726F7373776F726B732F766563746F72DE -S1135C04732E6300008000000020000004000000E4 -S1135C1400A00000002000000500000000C00000F7 -S1135C24002000000600000000E000000020000046 -S1135C34070000000000010000200000080000002C -S1135C4400200100002000000900000000400100C1 -S1135C54002000000A000000006001000020000091 -S1135C640B00000000800100002000000C00000074 -S1135C7400A00100002000000D00000000C001008D -S1135C84002000000E00000000E0010000200000DD -S1135C940F0000000000020000800000100000005B -S1135CA400800200008000001100000000000300D6 -S1135CB40080000012000000008003000080000047 -S1135CC413000000433A2F576F726B2F736F66747F -S1135CD4776172652F4F70656E424C542F54617214 -S1135CE46765742F44656D6F2F41524D434D335F87 -S1135CF44C4D33535F454B5F4C4D33533639363536 -S1135D045F43726F7373776F726B732F426F6F7429 -S1135D142F6964652F2E2E2F2E2E2F2E2E2F2E2EEE -S1135D242F536F757263652F41524D434D335F4C4E -S1135D344D33532F756172742E63004F70656E4238 -S1135D444C5400433A2F576F726B2F736F667477FA -S1135D546172652F4F70656E424C542F54617267A3 -S1135D6465742F44656D6F2F41524D434D335F4C21 -S1135D744D33535F454B5F4C4D3353363936355FA2 -S1135D8443726F7373776F726B732F426F6F742FD9 -S1135D946964652F2E2E2F2E2E2F2E2E2F2E2E2F6E -S1135DA4536F757263652F66696C652E630046696B -S1135DB4726D7761726520757064617465207265B3 -S1135DC471756573742064657465637465640A0D20 -S1135DD4004F70656E696E67206669726D776172D3 -S1135DE4652066696C6520666F72207265616469FA -S1135DF46E672E2E2E004F4B0A0D0053746172747D -S1135E04696E67207468652070726F6772616D6D66 -S1135E14696E672073657175656E63650A0D00505C -S1135E24617273696E67206669726D776172652049 -S1135E3466696C6520746F206F627461696E206595 -S1135E44726173652073697A652E2E2E0045726122 -S1135E5473696E6720002062797465732066726FBB -S1135E646D206D656D6F72792061742030780052F5 -S1135E74656164696E67206C696E652066726F6D16 -S1135E842066696C652E2E2E4552524F520A0D001F -S1135E94496E76616C696420636865636B73756DC0 -S1135EA420666F756E642E2E2E4552524F520A0D83 -S1135EB40050726F6772616D6D696E6720002062B5 -S1135EC47974657320746F206D656D6F72792061C8 -S1135ED4742030780057726974696E672070726F29 -S1135EE46772616D20636865636B73756D2E2E2E06 -S1135EF400436C6F73696E67206669726D776172B3 -S1135F04652066696C650A0D004669726D77617275 -S1135F146520757064617465207375636365737358 -S1135F2466756C6C7920636F6D706C657465640A56 -S1135F340D00222A3A3C3E3F7C7F002B2C3B3D5BE8 -S1135F445D00809A90418E418F8045454549494979 -S1135F548E8F9092924F994F555559999A9B9C9D27 -S1135F649E9F41494F55A5A5A6A7A8A9AAABAC21B4 -S1135F74AEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDC1 -S1135F84BEBFC0C1C2C3C4C5C6C7C8C9CACBCCCDB1 -S1135F94CECFD0D1D2D3D4D5D6D7D8D9DADBDCDDA1 -S1135FA4DEDFE0E1E2E3E4E5E6E7E8E9EAEBECED91 -S1135FB4EEEFF0F1F2F3F4F5F6F7F8F9FAFBFCFD81 -S1135FC4FEFF01030507090E10121416181C1E0007 -S1135FD46100620063006400650066006700680095 -S1135FE469006A006B006C006D006E006F00700045 -S1135FF471007200730074007500760077007800F5 -S113600479007A00A100A200A300A500AC00AF00AF -S1136014E000E100E200E300E400E500E600E7005C -S1136024E800E900EA00EB00EC00ED00EE00EF000C -S1136034F000F100F200F300F400F500F600F800BB -S1136044F900FA00FB00FC00FD00FE00FF00010162 -S113605403010501070109010B010D010F011101E0 -S113606413011501170119011B011D011F01210150 -S113607423012501270129012B012D012F013101C0 -S11360843301350137013A013C013E01400142012B -S11360944401460148014B014D014F015101530193 -S11360A45501570159015B015D015F016101630100 -S11360B46501670169016B016D016F017101730170 -S11360C4750177017A017C017E019201B103B20367 -S11360D4B303B403B503B603B703B803B903BA03EC -S11360E4BB03BC03BD03BE03BF03C003C103C3039B -S11360F4C403C503C603C703C803C903CA033004DE -S113610431043204330434043504360437043804C3 -S113611439043A043B043C043D043E043F04400473 -S11361244104420443044404450446044704480423 -S113613449044A044B044C044D044E044F045104D2 -S1136144520453045404550456045704580459047B -S11361545A045B045C045E045F047021712172219F -S113616473217421752176217721782179217A216B -S11361747B217C217D217E217F2141FF42FF43FF3E -S113618444FF45FF46FF47FF48FF49FF4AFF4BFFD3 -S11361944CFF4DFF4EFF4FFF50FF51FF52FF53FF83 -S11361A454FF55FF56FF57FF58FF59FF5AFF00008D -S11361B4C700FC00E900E200E400E000E500E700B9 -S11361C4EA00EB00E800EF00EE00EC00C400C500B8 -S11361D4C900E600C600F400F600F200FB00F90072 -S11361E4FF00D600DC00A200A300A500A7209201B2 -S11361F4E100ED00F300FA00F100D100AA00BA00B6 -S1136204BF001023AC00BD00BC00A100AB00BB0068 -S11362149125922593250225242561256225562559 -S113622455256325512557255D255C255B251025BA -S1136234142534252C251C2500253C255E255F25A5 -S11362445A25542569256625602550256C2567251E -S113625468256425652559255825522553256B251C -S11362646A2518250C25882584258C2590258025C8 -S1136274B103DF009303C003A303C303B500C40342 -S1136284A6039803A903B4031E22C603B503292253 -S11362946122B1006522642220232123F7004822CD -S11362A4B0001922B7001A227F20B200A025A00052 -S11362B441004200430044004500460047004800B2 -S11362C449004A004B004C004D004E004F00500062 -S11362D45100520053005400550056005700580012 -S11362E459005A002100E0FFE1FFE5FFE2FFE3FF6C -S11362F4C000C100C200C300C400C500C600C7007A -S1136304C800C900CA00CB00CC00CD00CE00CF0029 -S1136314D000D100D200D300D400D500D600D800D8 -S1136324D900DA00DB00DC00DD00DE0078010001C6 -S113633402010401060108010A010C010E01100105 -S113634412011401160118011A011C011E01200175 -S113635422012401260128012A012C012E013001E5 -S113636432013401360139013B013D013F01410150 -S11363744301450147014A014C014E0150015201B8 -S11363845401560158015A015C015E016001620125 -S11363946401660168016A016C016E017001720195 -S11363A47401760179017B017D01910191039203CA -S11363B493039403950396039703980399039A0309 -S11363C49B039C039D039E039F03A003A103A303B8 -S11363D4A403A503A603A703A803A903AA031004FB -S11363E411041204130414041504160417041804E1 -S11363F419041A041B041C041D041E041F04200491 -S11364042104220423042404250426042704280440 -S113641429042A042B042C042D042E042F0401041F -S11364240204030404040504060407040804090418 -S11364340A040B040C040E040F046021612162217C -S113644463216421652166216721682169216A2108 -S11364546B216C216D216E216F2121FF22FF23FF0B -S113646424FF25FF26FF27FF28FF29FF2AFF2BFFF0 -S11364742CFF2DFF2EFF2FFF30FF31FF32FF33FFA0 -S113648434FF35FF36FF37FF38FF39FF3AFF00008A -S1096494FFFFFFFFFFFF04 -S105649C0104F5 +S11323D008B5034B18600348016000F0C8F8FCE737 +S11323E0800600208406002010B500F0BDF8012806 +S11323F018D000F065FAA8B10B4C2378012B11D149 +S1132400FFF760FF09490A6802F51C531033834241 +S113241008D80020207000F05DFA18B9BDE810401B +S1132420FFF756BD10BD00BF880600208C060020B3 +S113243008B5054B01221A70FFF744FF03490860F1 +S1132440BDE80840FFF7D0BF880600208C060020B6 +S113245008B500F08BF8FFF711FFFFF7FEFE00F060 +S113246019FA00F011F8BDE80840FFF7E1BF08B51C +S113247000F07DF8FFF718FF00F016FB00F022F8DB +S1132480BDE80840FFF7B0BF37B50C4CFF2300256B +S11324908DF804308DF8055000F074F8FFF71AFF3A +S11324A0257003F0E1F8064903200A782070012A18 +S11324B002D101A800F084F83EBD00BF0100002055 +S11324C09006002008B50C48FFF74EFF012805D1FF +S11324D00A4B002208481A7000F072F8064803F00C +S11324E00FF9012807D10549032008700248BDE807 +S11324F0084000F065B808BD9106002001000020E6 +S1132500704700000A4B70B51A7806460C461D4603 +S113251012B9C9B2FFF7F2FE2878032803D1304676 +S1132520E1B203F0D1F8BDE8704000F041B800BF5B +S113253001000020034B1878411E01298CBF402064 +S11325400020704701000020034B1878411E012928 +S11325508CBF40200020704701000020014B012265 +S11325601A7070479006002000F01AB87047704740 +S1132570034BFE2218710220DA70A3F8440070475E +S1132580D4060020054B00221A709A6483F8432075 +S1132590A3F844209A705A70704700BFD4060020F4 +S11325A0024B1878003018BF01207047D406002071 +S11325B0024B002283F84320704700BFD40600205A +S11325C0F8B506780546FF2E824C19D100F078F94B +S11325D008B91020E4E00023012510206370637122 +S11325E02570E6702071FFF7A5FFA071FFF7ACFF1F +S11325F0E071FFF7A9FF010A21726572A57281E0FB +S11326002778012F40F0E480F32E57D01FD8CF2E27 +S113261000F0BC8006D8C92E00F08580CC2E40F096 +S1132620BE80BAE0D12E00F0AB80C0F08E80D22EF6 +S113263040F0B5800025FF21E17025716571FFF739 +S113264079FFE571A07125726572072229E0FA2EDF +S11326504DD00AD8F52E11D026D3F62E40F09F8007 +S1132660FF21E1704268A26494E0FD2E4CD0FE2E5E +S113267055D0FC2E40F09380002091E0FFF75AFFE4 +S11326806A78904201DC22208AE0A16C201DFFF7C9 +S113269037FCFF20E070A26C69788B18A36468781B +S11326A0421CA4F844207DE0FFF744FF6B78984275 +S11326B0E9DD6968201DA1646A78E8E7FF22E27019 +S11326C0A36C446800221C19A34204D013F8010B24 +S11326D01118CAB2F8E73F4B0021C3F807200120C4 +S11326E00822187159719971A3F844205AE03A4BA1 +S11326F00020FF220721E270A36420716071A071A1 +S1132700C4F807100822CCE761780020FF23E370A7 +S113271020716171A071E07120720622C1E700216D +S11327202170617034E0A66CFFF704FF6A1C411E3F +S11327303046FFF794FD80B3FF23A56CE370FFF7E9 +S1132740F9FE013D2818A06424E0FFF7F3FE6B783E +S11327500138984297DDFF21E170A4F8447069784C +S113276019B9FFF782FDE8B917E01A4CAA1CA06C4E +S1132770FFF775FD88B16A78A06C1318A36411E0A3 +S1132780A06C6968FFF76DFD10B906E0FFF7C7FBA1 +S1132790FF22E270A4F8447004E0312000E020201D +S11327A0FFF7E6FE0B4C94F84320012A02D11020D7 +S11327B0FFF7DEFEB4F8441006480BB2002B07DD29 +S11327C0012280F843200330BDE8F840FFF79ABEA9 +S11327D0F8BD00BFD4060020435D000070B500259D +S11327E006462C46705D03F017F8C0B2A0F1300322 +S11327F0DAB2162A10D8A0F13A0106290CD9092A0E +S113280084BFA0F13702D2B2013502EB0414022DC9 +S113281004F0FF0401D0E5E70024204670BD000069 +S113282010B503460B4819460A24B1FBF4F10246DD +S113283001300029F8D102F801190A24B3FBF4F19C +S113284004FB11333033104602F801390B460029DA +S1132850F3D110BD2107002038B50309092B054623 +S11328600C46184601D9373003E0303002F0D4FF6B +S1132870C0B2207005F00F00092801D9373003E0F9 +S1132880303002F0C9FFC0B260700020A070204652 +S113289038BD000008B5074B00200749187001F047 +S11328A077FB28B105487C21BDE80840FFF790BDBF +S11328B008BD00BF600700206C0700204B5D0000CE +S11328C0034B1878D0F1010038BF0020704700BFD7 +S11328D06007002010B5FFF747FE012801D1002052 +S11328E010BD054C2378002BF9D1FFF75DFA0128C0 +S11328F0F5D1207010BD00BF6007002010B504465C +S1132900007802F089FF532801D0032010BD6078BD +S113291002F07CFF0028F8D06078312806D03228F5 +S113292006D0332814BF0320022010BD002010BDA0 +S1132930012010BDF8B505460230FFF74FFF0435FE +S11329400446074600262846FFF748FF013EB6B274 +S1132950BB1999B2201802350129C4B2F3D828460C +S1132960FFF73CFFE243D4B2231A58425841F8BD62 +S11329702DE9F041044616460D4601B120B94948F7 +S113298040F23621FFF724FD2046FFF7B7FF032866 +S1132990074600F082802046FFF7CCFF002879D05C +S11329A0012F23D002D3022F77D146E0A01CFFF7DA +S11329B015FF8046201DFFF711FF07022F60A01DA1 +S11329C0FFF70CFF38182860A8F103050834ADB2EE +S11329D0002E63D0002729B28F425FDA2046FFF72A +S11329E0FDFEF05501370234BFB2F4E7A01CFFF737 +S11329F0F5FE8046201DFFF7F1FE07042F60A01DA1 +S1132A00FFF7ECFE07EB00272F6004F10800FFF747 +S1132A10E5FEA8F104023B182B600A3495B2002E9F +S1132A203CD0002728B2874238DA2046FFF7D6FE8A +S1132A30791CF05502348FB2F4E7A01CFFF7CEFEE8 +S1132A408046201DFFF7CAFE07062F60A01DFFF772 +S1132A50C5FE07EB00472F6004F10800FFF7BEFE38 +S1132A6007EB00272F6004F10A00FFF7B7FEA8F177 +S1132A700501381828600C348DB27EB100272BB2C2 +S1132A809F420BDA2046FFF7A9FE7A1CF055023468 +S1132A9097B2F4E74FF6FF7500E0002528B2BDE8D1 +S1132AA0F08100BF4B5D00002DE9F041A84D2C786A +S1132AB0002C00F09181012C26D1FFF793F9A54851 +S1132AC0FFF7C6F9A448FFF7C3F9FFF787F92246D1 +S1132AD00146A24801F06CFA064638B1A048FFF757 +S1132AE0B7F92046BDE8F041FFF7A8B99D48FFF7C4 +S1132AF0AFF99D48FFF7ACF99C48FFF7A9F99C484A +S1132B00022306604660BEE0022C40F09180994E9C +S1132B104FF48071984806F50D7201F0F3FD96F9B3 +S1132B203A12002901DA8E48A3E068B192480022E3 +S1132B3000F5C071FFF71CFF421C074604D188480A +S1132B40FFF786F9032097E03CB2002C12DD884D94 +S1132B50894B69682A4621B9D3F8802185E8140095 +S1132B6008E0D3F8805110683FB28542394438BF39 +S1132B70156051607F4DD5F83C22D5F840329A4219 +S1132B8040F02A8105F50D70002101F099FC70B127 +S1132B907348FFF75DF90420FFF750F905F50D7050 +S1132BA001F087FC6A4A00211170BDE8F081704E83 +S1132BB06C48FFF74DF97148FFF74AF97068FFF761 +S1132BC02FFE6F48FFF744F96E48FFF741F9F0789C +S1132BD06B49FFF741FEB0786B49FFF73DFE707813 +S1132BE06A49FFF739FE6A493078FFF735FE6448D1 +S1132BF0FFF72EF96748FFF72BF996E80300FFF774 +S1132C0030FB534C064660B95548FFF721F90520BF +S1132C10FFF714F905F50D7001F04BFC2670BDE8C3 +S1132C20F0815048FFF714F903202070BDE8F081CB +S1132C30032C40F0D1804F4E4F484FF4807106F57D +S1132C400D7201F05FFD96F93A32002B04DA524816 +S1132C50FFF7FEF802200FE0C0B1474800F5C0714D +S1132C6000F58072FFF784FEB0F1FF3F80460DD17E +S1132C704A48FFF7EDF82046FFF7E0F806F50D7037 +S1132C8001F017FC00232B70BDE8F0810FFA88F5E2 +S1132C90002D3FDD4248FFF7DBF82846364CFFF7AE +S1132CA0BFFD3748FFF7D4F83E48FFF7D1F894F852 +S1132CB083013349FFF7D0FD94F882013249FFF7CD +S1132CC0CBFD94F881013149FFF7C6FD304994F8F2 +S1132CD08001FFF7C1FD2A48FFF7BAF82D48FFF736 +S1132CE0B7F8D4F8800104F580722946FFF7B7FAE3 +S1132CF0044660B91A48FFF7ABF80620FFF79EF8C0 +S1132D00164801F0D6FB12480470BDE8F08115485E +S1132D10FFF79EF8174CD4F83C22D4F840028242C4 +S1132D205AD12148FFF794F8FFF79FFA0546002887 +S1132D303CD10B48FFF78CF80720FFF77FF804F528 +S1132D400D7001F0B6FB024A1570BDE8F08100BFBA +S1132D5060070020B65D0000D95D0000A0090020D6 +S1132D60B15E0000FE5D0000035E0000275E00000F +S1132D70640700206C070020C40B0020555E00008F +S1132D80200700205E5E00002207002024070020A8 +S1132D9026070020515E0000775E0000985E000068 +S1132DA0B95E0000C65E0000DD5E00000B48FFF760 +S1132DB04FF80B48FFF74CF804F50D7001F079FB60 +S1132DC00848FFF745F8084B00211970FFF71EF873 +S1132DD0BDE8F041FFF77CB8BDE8F081FE5D00007E +S1132DE0F95E0000115F00006007002010B50023A9 +S1132DF0934203D0CC5CC4540133F9E710BD0023E3 +S1132E0010B5044618464208E15C42EAC01001339A +S1132E1042180B2B02F0FF00F5D110BD08B580B1AC +S1132E20036873B11A7862B1D9888088814208D165 +S1132E305878FEF751FD10F0010F0CBF002003205D +S1132E4008BD092008BDF8B503690C4601F1090263 +S1132E50002B4DD0436911461F7B00255E5D0A4659 +S1132E60202E13D0052E14BF3246E52207F00806A3 +S1132E70F6B22EB1A2F14106192E01D82032D2B2F7 +S1132E80013501F8012B082D0A46E7D11E7A202EC0 +S1132E9017D02E2201F8012B08269D5D0A46202D0D +S1132EA00FD007F01002D2B22AB1A5F14102192ABB +S1132EB001D82035EDB2013601F8015B0B2E0A462C +S1132EC0EBD1D97A21729E7FDD7F310441EA056618 +S1132ED01D7F597F2E4346EA012626605D7E197EBA +S1132EE041EA0526A680DD7D9B7D43EA0521E1803C +S1132EF000251570A669E6B1E269D2B103690BB980 +S1132F00002514E0018C4FF6FF729142F8D0C76996 +S1132F1037F8150058B1002101F040FC0028EFD02B +S1132F20E369591E8D42EBD270550135F0E700205C +S1132F307055F8BDCA7E8B7E032843EA022305D16F +S1132F40487D097D41EA002243EA0243184670475E +S1132F5010B504460A46407804F134010123FEF713 +S1132F60C3FC80BB94F8332294F8323243EA022142 +S1132F70174B0AB29A4228D194F86C2094F86D1039 +S1132F80130494F86A2043EA016194F86B30114306 +S1132F9041EA03210F4B21F07F429A4216D094F864 +S1132FA0880094F88910020494F8860042EA0161CA +S1132FB094F88720014341EA022121F07F40C01A9E +S1132FC018BF012010BD032010BD022010BD00BF9A +S1132FD055AAFFFF464154002DE9F0411546026809 +S1132FE01378303B092B05D854783A2C02D102329D +S1132FF0026000E0002300200860002B40F05A81AA +S1133000B54C2468002C00F058810C60217881B103 +S11330106078FEF761FCC1070BD4002D00F05081ED +S113302000F00401C8B2002814BF0A200020BDE843 +S1133030F081002020706070FEF73AFBC20700F1B7 +S113304042812DB100F00403DAB2002A40F03E813F +S113305000212046FFF77CFF012818D194F8F601DF +S113306010B90D20BDE8F08194F8FC5194F8FD11DD +S11330702B0494F8FA0143EA016294F8FB11024329 +S113308042EA012520462946FFF762FF00E00025B9 +S1133090032800F01E810028E3D194F8402094F81E +S11330A03F3043EA0220B0F5007FDAD194F84B6058 +S11330B094F84A1051EA06210DD194F85A3094F844 +S11330C05B2094F85810180440EA026694F85920DA +S11330D00E4346EA022194F84460E161731E012B19 +S11330E0E670BED894F84120A270002AB9D0501ED0 +S11330F01042B6D194F8460094F8453043EA0023D0 +S113310098B21B072081ACD194F8487094F84730EA +S113311053EA07230DD194F8563094F857701B04E2 +S113312043EA076394F854703B4394F8557043EAB8 +S1133130072394F8438094F8427057EA082890D003 +S113314006FB01FC08EB10176744BB4289D3DB1B69 +S1133150B3FBF2F3002B84D040F6F576B34206D9E4 +S11331604FF6F57293428CBF0326022600E0012637 +S1133170023305EB08027F19032EA3612562626204 +S1133180E76213D100287FF46CAF94F8622094F8BE +S11331906300120442EA006294F86000024394F867 +S11331A0610042EA0022A26298000FE000283FF486 +S11331B058AF0CEB0200022EA06201D1580005E0CA +S11331C003225A4303F0010303EB520000F2FF13FE +S11331D0B1EB532FFFF445AF00204FF0FF31032E26 +S11331E02161E0605AD194F8652094F864306071EC +S11331F043EA02216A186261607804F13401012310 +S1133200FEF772FB002849D194F8330294F8322275 +S113321042EA0023314819B281423FD194F8362062 +S113322094F83730110441EA036094F8343094F888 +S11332303520184340EA0221294881422ED194F8CE +S11332401A2294F81B32110441EA036094F81832EC +S113325094F81922184340EA0221224881421DD1E0 +S113326094F8223294F82322190441EA026094F873 +S1133270202294F82132104394F81E2240EA0321BC +S113328094F81F021304E16043EA006194F81C02FD +S113329094F81D22014341EA022323611249267056 +S11332A00888421C93B200200B80E38020632071C5 +S11332B0BDE8F0810B20BDE8F0810C20BDE8F08171 +S11332C02846BDE8F0810320BDE8F0810A20BDE86E +S11332D0F0810120BDE8F0814C0F002055AAFFFFCA +S11332E05252614172724161480F0020F8B50446A0 +S11332F0007908B3256B04F13407607839462A460F +S11333000123FEF735FBB0B9636A20719D4201D2F7 +S11333100020F8BDE26998188542F9D2E678012EBA +S1133320F6D9E16960786D182A4639460123FEF71B +S11333301FFB013EF3E70120F8BD38B50446FFF753 +S1133340D5FF0346002B50D12278032A45D160795A +S1133350002842D0236304F134010025CD54013305 +S1133360B3F5007FF9D1522384F8343084F8353032 +S11333706123AA2084F8363084F81B32236984F848 +S113338033027220552284F8180284F81902180CAA +S113339084F8322284F81E024122E06884F837203F +S11333A084F81A2284F81C32C3F307221B0E84F813 +S11333B01D2284F81F32C0F30722030C84F8200274 +S11333C0000E84F8212284F8223284F823026269F0 +S11333D060780123FEF7CCFA6571002160780A4613 +S11333E0FEF728FB003018BF012038BD38B5036B49 +S11333F0044699420D460CD0FFF778FF58B960781F +S113340004F134012A460123FEF76EFA18B9256344 +S113341038BD002038BD012038BD836902399A1EA9 +S1133420914204D28278C06A02FB010070470020F6 +S113343070470129F8B504460D465DD98369994260 +S11334405AD20178022928D0032937D0012950D132 +S1133450426A05EB550602EB5621FFF7C7FF002829 +S113346047D1636AF005013604EBD05703EB5621CC +S1133470204697F83470FFF7B9FF002839D1F605D4 +S113348004EBD65494F83410EB0747EA012201D533 +S11334901009F8BD1005000DF8BD426A02EB1521B4 +S11334A0FFF7A4FF28BB2D06ED0D6119641991F8EF +S11334B0343094F8350043EA0020F8BD436A03EB46 +S11334C0D511FFF793FFA0B96D06ED0D611991F8C1 +S11334D0370091F83620343103064978641943EAF9 +S11334E0024294F8343042EA0120184320F070403C +S11334F0F8BD4FF0FF30F8BD0120F8BD70B50446AB +S11335000D46E1808168012901D1022070BD036864 +S11335109A699142F9D271B91878032801D1996A4C +S113352049B919890020A942E060EED99B6A03EBEE +S11335301512226119E09E783601B5420ED3206837 +S1133540FFF777FF421C014618D00128DDD9236814 +S11335509A699042D9D2AD1BADB2EEE7E160206822 +S1133560FFF75BFF00EB15112161206805F00F05E3 +S113357000EB451134316161002070BD012070BD44 +S11335800129F8B504460D46164672D98369994255 +S11335906FD2017802293AD0032949D0012964D194 +S11335A0426A05EB550702EB5721FFF71FFF00287E +S11335B05CD1F805C20D15F00105F3B207D0A118CE +S11335C091F8340000F00F0141EA0313DBB2616AA1 +S11335D00120A2180137207182F83430204601EB13 +S11335E05721FFF703FF002840D1FF05FA0D15B15D +S11335F0C6F3071607E0A31893F83410C6F303269E +S113360021F00F073E43A71887F834602EE0416A83 +S113361001EB1521FFF7EAFE40BB2D06EB0DE21886 +S113362082F83460C6F30726154682F835601DE03B +S1133630426A02EBD511FFF7D9FEB8B96D06EB0D5E +S1133640E11891F837200D46130603F07042164333 +S1133650C6F30723320C81F83460360E81F8353016 +S113366081F8362081F8376000E0022001212171C1 +S1133670F8BD0220F8BDF8B505460F4631B9C66855 +S11336806EB18069864228BF012609E0FFF7D1FEAA +S113369001283BD9AB69984239D33E4600E0012664 +S11336A03446A96901348C4204D3012E01D8002088 +S11336B0F8BD022428462146FFF7BBFE48B1431C4F +S11336C002D14FF0FF30F8BD01281FD0B442E8D139 +S11336D0EDE7284621466FF07042FFF751FF98B995 +S11336E047B92A69EC60511C0CD0531E01202B6190 +S11336F0687107E0284639462246FFF741FF002853 +S1133700EFD001E02046F8BD0128DAD00120F8BD51 +S11337102DE9F843C6880446701C86B20F4616B9D4 +S11337200420BDE8F8832369002BF9D016F00F08B4 +S11337305AD1591C2161E168206819B90289B24241 +S1133740EED951E08278531E13EA16124CD1FFF7DA +S113375070FE0128054602D80220BDE8F883411C0A +S113376002D10120BDE8F883206881698D4235D3F8 +S1133770002FD5D0E168FFF77EFF054600283CD036 +S11337800128E9D0421CECD02068FFF7AFFD0028E7 +S1133790E7D122683432002717540130B0F5007F96 +S11337A0F9D1D4F8009029464846FFF736FEC9F807 +S11337B0300020688378BB420DD901220271206851 +S11337C0FFF794FD0028CCD120680137036BFFB2CA +S11337D0591C0163EDE7016BCF1B0763E5602068AB +S11337E02946FFF71AFE20612068E68000EB4813A3 +S11337F0343363610020BDE8F8830720BDE8F88313 +S11338002DE9F84F4FF0FF0906464C463068316900 +S1133810FFF7ECFD8046002840F0838075692F781F +S1133820002F78D0EA7AE52F02F03F0369D002F046 +S11338300800C1B211B10F2B63D101E00F2B4AD1A3 +S1133840D6F81CB0BBF1000F5CD007F04000C1B249 +S113385031B1F48895F80D9007F0BF07348401E086 +S1133860A7424ED16B7B4B454BD12A780D2122F0D8 +S11338704000441E4C434FF001084FF0000A2A4B0D +S11338801AF803106A1850786B5C43EA0020B8F108 +S1133890000F0BD000F09EFFFE2C804631D83BF881 +S11338A0140000F097FF0134804502E04FF6FF71E9 +S11338B0884226D10AF1010ABAF10D0FDFD12A7824 +S11338C002F04000C3B24BB3B8F1000F26D03BF86E +S11338D014401CB315E024B92846FFF790FA81453B +S11338E01FD04FF6FF723284B269D37A13F001030A +S11338F007D1E85CD15C0133884202D10B2BF8D1AB +S11339000FE0FF2430460021FFF702FF8046002825 +S11339103FF47CAF05E04FF0040802E0791ECCB21E +S1133920F0E74046BDE8F88FCA5F00002DE9F74F85 +S11339300B7806462F2B894601D05C2B01D109F167 +S113394001090024B46099F800001F2800F2948053 +S113395030462146FFF7D2FD74611FE15C2900F077 +S11339608B80D6F81CB00025785D6C1C1F2800F2F3 +S11339708B8007EB04091F2894BF042400240BEB5D +S11339804500002D00F0048130F8021D202900F0CC +S113399098802E2900F095800023B2690BEB45072F +S11339A02BF815302020D05401330B2BFAD14FF0D3 +S11339B000083BF81810202900F085802E2900F01B +S11339C08280B8F1000F01D044F003043B4633F881 +S11339D0027D2E2F01D0013DF9D100224FF0080ABB +S11339E017463BF8183008F10108002B6ED1B36973 +S11339F01978E52901D105201870BAF1080F01D111 +S1133A00BA00D7B207F00C030C2B00F0A88007F023 +S1133A100301032900F0A38004F00200C2B24AB9F2 +S1133A2007F00307012F08BF44F01004042B08BF5C +S1133A3044F00804B3693046DC720021FFF75EFDF0 +S1133A4010B93046FFF7DCFEB169CA7A002840F0AD +S1133A50898002F00403D9B2002940F09F80716983 +S1133A60C87A00F01002D3B2002B00F085803468CD +S1133A702078FFF75FFAB0604F46397809F1010901 +S1133A802F297FF46BAFF7E72F283FF472AF5C2840 +S1133A903FF46FAFB4F5807F7AD0012100F07EFE51 +S1133AA0002875D07F2806D83D4A12F8013F13B18B +S1133AB08342FAD16CE00BEB440525F8020C254651 +S1133AC052E7013D5DE708F1010872E7202B03D0BE +S1133AD02E2B04D1A8455DD044F0030481E7524560 +S1133AE002D2A84515D155E0BAF10B0F04D144F028 +S1133AF003044FF00B0A7AE7A84503D044F003040B +S1133B003FF675AFBF00FFB2A8464FF00B0A08227C +S1133B1067E77F2B0ED918460021019200F03EFE84 +S1133B20019A034618B11F48C11811F8803C44F0AB +S1133B3002042BB11C4810F8011F29B19942FAD193 +S1133B4044F003045F2306E0A3F1410081B2192984 +S1133B5014D847F00207B0698354013241E744F0B6 +S1133B60020459E7042819D102F00401C8B200285C +S1133B7014BF0420052011E005200FE0A3F161002B +S1133B8081B21929E7D8203B47F001079BB2E2E74D +S1133B90062003E0BAF10B0FB4D1A8E7BDE8FE8F0D +S1133BA0395F00004A5F0000425F000038B5018CB5 +S1133BB0C5884FF6FF73994208BF29460446FFF7AC +S1133BC09DFC0146B8B921692068FFF70FFC014646 +S1133BD070B96069E5220270236801201871E288D7 +S1133BE0AA4208D22046FFF793FD01460028EAD0F6 +S1133BF0042908BF0221084638BD00002DE9F04120 +S1133C00FF2704463D4604262169002967D0206821 +S1133C10FFF7ECFB0646002862D163691A78002A94 +S1133C2064D0E52AD97A51D02E2A4FD001F03F0032 +S1133C3008284BD00F283FD102F04006F1B229B139 +S1133C40E5885F7B02F0BF02258401E0AA423DD1F2 +S1133C50587BB8423AD119780D2001F03F05691E0E +S1133C60E66941434FF0010E0020234D10F805C0D2 +S1133C7003EB0C0595F8018013F80C5045EA082570 +S1133C80BEF1000F06D0FE2920D826F81150AE460A +S1133C90013103E04FF6FF7C654517D101300D2853 +S1133CA0E3D11B7803F04005E8B2E0B1FE290DD85A +S1133CB0002326F8113016E025B91846FFF79FF8BF +S1133CC0874215D04FF6FF73238411E0FF25204669 +S1133CD00021FFF71DFD0646002895D000E03EB107 +S1133CE00021216104E0013AD5B2F0E70426F7E7A8 +S1133CF03046BDE8F08100BFCA5F0000012970B5FD +S1133D0004460D4622D9836999421FD2A06985428F +S1133D1005D220462946FFF78CFB064608B9002049 +S1133D2070BD012812D0431C0ED020462946002223 +S1133D30FFF726FC58B92169481C03D04A1C012509 +S1133D40226165713546E1E7012070BD022070BD36 +S1133D5073B51C4616460B220546FFF747F8052C9B +S1133D600AD9B21E32F8020F630843EAC4345388F6 +S1133D7021188CB2002BF5D1072304F00F0000F1B9 +S1133D803002392A88BF00F137020DF80320013BC5 +S1133D902409F2D102A9C8187E2200F8082C9C42FA +S1133DA004D0295D202901D00134F8E7072B05D878 +S1133DB002AAD11811F8080C013300E0202028557C +S1133DC00134072CF2D97CBD2DE9FF418669D0F876 +S1133DD01C800C220446314601A8FFF707F89DF821 +S1133DE00F30DA0722D50020F0720127E061304657 +S1133DF001A942463B46FFF7ABFF20460021FFF7EF +S1133E007DFB054650B92046FFF7FAFC054628B964 +S1133E100137BFB2642FEAD10725B2E0042D40F088 +S1133E20B0809DF80F10F172C4F81C809DF80F202B +S1133E3002F00205EBB20BB901270CE0002038F8C0 +S1133E40107017B1471CB8B2F9E700F119010D223F +S1133E5091FBF2F5AFB220460021FFF74FFB054678 +S1133E60002840F08E80064620682169FFF7BEFADC +S1133E700546002840F0858063691878E52800D05D +S1133E8018B90136BE4201D108E02E462046012170 +S1133E90FFF73EFC05460028E6D072E0013EB6B2CC +S1133EA0002E53D0E18820468A1B91B2FFF726FBEF +S1133EB00546002865D1A069FEF7A1FF07462068E2 +S1133EC02169FFF793FA03460546002859D1626930 +S1133ED00F20F5B2D4F81CE0691ED0720D204143C6 +S1133EE0577313739376D37618464FF6FF7CDFF837 +S1133EF09C80634518BF3EF8113010F808C04FEAA3 +S1133F00132802F80C30944418BF01318CF8018056 +S1133F1001304FF6FF7C002B08BF63460D28E4D127 +S1133F20634502D03EF8113013B946F04005EDB2B6 +S1133F301570216801220A7120460021FFF7E8FB71 +S1133F400546F0B9013EB6B2002EB8D12068216909 +S1133F50FFF74CFA0546A0B960692B460021C1540D +S1133F600133202BFAD16069A1690B22FEF73EFFD1 +S1133F70A2696069D17A012201F0180303732068F1 +S1133F800271284604B0BDE8F08100BFCA5F00009A +S1133F9048B9064A136803B1187009B100200870C3 +S1133FA01160002070470B20704700BF4C0F0020A9 +S1133FB02DE9F0478EB0019116460546002800F021 +S1133FC098800023036005A901A802F01E02FFF7F0 +S1133FD003F88046002840F095804C4902A80B90D5 +S1133FE00C9105A80199FFF7A1FC0A9C18B9002CB3 +S1133FF00CBF0620002016F01C0F06F01F0748D047 +S113400048B1042802D105A8FFF7DEFE47F00807EF +S11340100A9C48B175E0E17A11F0110F70D106F0F5 +S11340200403DEB2002E67D107F00802D0B20028E4 +S11340303DD0FDF7FDFDC0F30726E673010C002615 +S1134040030EDDF814902174E67226776677A6775E +S1134050E677A073637499F800002146FEF76AFFBF +S11340600122A676E6762675667589F8042006464A +S1134070E8B148463146D9F830A0FFF73FFE0028A2 +S11340803FD10598013EC6605146FFF7AFF970B1C4 +S113409037E0002835D1E37A03F01002D0B20028CB +S11340A02CD106F00206F6B20EB1D90728D407F0D7 +S11340B00800C1B209B147F02007059E2146336BC1 +S11340C02C62EB61AF713078FEF734FF2861A07F7A +S11340D0E27F010441EA0263227F607F1343F28896 +S11340E043EA00210023E960AB60AB612E60AA8043 +S11340F008E04FF0090805E0082002E0042000E091 +S11341000720804640460EB0BDE8F087480D0020E9 +S11341102DE9F74F9A460023CAF800300446884632 +S11341201746FEF77BFE0546002840F0A080A179E3 +S1134130080600F19980C90740F19880E068A268F8 +S1134140861AB74238BF3E46002E00F09080A16820 +S1134150CB0570D1206883785A1E02EA512313F0EC +S1134160FF030CD109B9206904E061690193FFF7E9 +S113417060F9019B01280BD9421C55D06061D4F829 +S113418000B0616958460193FFF747F9019B20B9D4 +S1134190A07960F07F03A37166E05FEA562900EB23 +S11341A0030724D09BF8022009EB0300904288BF48 +S11341B0C3EB020941469BF801003A465FFA89F3D2 +S11341C0FDF792FBA17980BB01F04001CBB25BB15A +S11341D0A269D71B4F4507D208EB472004F12401FD +S11341E04FF40072FEF702FE4FEA492731E0A2695C +S11341F0BA421FD0A07900F04001CBB25BB104F108 +S113420024019BF801000123FDF7B2FBA17960B9F9 +S113421021F04002A271214651F8240B3A4640781D +S11342200123FDF761FB28B1A17961F07F05A57138 +S113423001251CE0A761A7684046F905CB0DC3F52D +S11342400077BE4238BF3746E11824313A46FEF7BC +S1134250CDFDA068DAF80030C119DA19A160B844BC +S1134260CAF80020F61B6FE7022500E00725284660 +S1134270BDE8FE8F2DE9F74F99460023C9F80030B9 +S1134280044688461746FEF7C9FD0546002840F057 +S1134290B780A079010657D400F00201CAB2002AFF +S11342A000F0AD80E368DF4228BF002730E05FEA1A +S11342B0572B00EB0A0674D098780BEB0A01814265 +S11342C088BFCAEB000B4146587832465FFA8BF33D +S11342D0FDF74EFB002873D1A3699E1B5E450BD2EC +S11342E004F124004FF4007208EB4621FEF77EFD32 +S11342F0A27922F04000A0714FEA4B26A168D9F8B8 +S113430000208B199019A360B044C9F80000BF1BAA +S11343100FB3A168CA055AD1206890F802A00AF127 +S1134320FF3202EA512313F0FF0A1DD171B921694A +S113433021B9FFF7A0F90146206161B10129A379F0 +S11343400FD163F07F01A171022559E06169FFF784 +S113435092F90146F1E7A068E26890424AD9E06028 +S113436048E04A1C2DD06161A07900F04001CAB236 +S113437062B1214651F8243BA26958780123FDF724 +S1134380F7FAA379E8B923F04000A07122686169C3 +S113439010460192FFF741F8019B002887D1A379C9 +S11343A0CFE7A169B14211D0A068E26890420DD272 +S11343B0587804F1240132460123FDF795FA28B117 +S11343C0A37963F07F05A571012519E0A661A668AC +S11343D0F305D90DC1F500766018B74238BF3E46E3 +S11343E0243032464146FEF701FDA07940F04002F8 +S11343F0A27183E7A37943F02001A17100E00725AE +S11344002846BDE8FE8F70B50446FEF707FD002878 +S11344104ED1A37903F02002D1B2002948D003F091 +S11344204000C3B26BB1214651F8242B01235078CC +S1134430A269FDF79DFA002839D1A67926F040013A +S1134440A1712068E169FEF7D1FF0646002E2FD145 +S1134450256AE87A40F02003EB72E2682A77A189A2 +S1134460080A6877E389AB77E27BEA7721690B0C6A +S11344701A0AC1F30720A9762B756A75E876FDF749 +S1134480D7FBA875030CC0F30721000EE975687605 +S11344902B76AE74EE74A2792368012022F02001F9 +S11344A0A17118712068BDE87040FEF746BF012075 +S11344B070BD10B50446FFF7A6FF00B9206010BD1B +S11344C0F8B504460D46FEF7A9FC0646002840F060 +S11344D09380A279110600F18E80E3689D4205D98C +S11344E002F00200C1B2002908BF1D460022A368E1 +S11344F0A2600DB900254DE0206887787F026BB17A +S1134500013B691EB1FBF7F1B3FBF7F2914205D30E +S113451078420340A360ED1A61690AE0216939B960 +S1134520FFF7A9F8012801462DD0431C52D0206181 +S113453061610029DED0BD421CD9A379206803F053 +S11345400202D3B223B1FFF796F8014618B910E07E +S1134550FEF76FFF0146481C3CD0012913D920689F +S1134560826991420FD2A3686161D819A060ED1BE2 +S1134570E1E73D46A2685319A360EB05BAD0206871 +S1134580FEF74BFF20B9A07960F07F02A27132E000 +S113459000EB5525A168CB0523D0A269954220D014 +S11345A0A07900F04003D9B259B1214651F8240B47 +S11345B001234078FDF7DCF9A17960B921F04002CC +S11345C0A271214651F8243B2A4658780123FDF76D +S11345D08BF928B1A17961F07F06A67101260BE061 +S11345E0A561A168E068814206D9A279E16042F040 +S11345F02003A37100E002263046F8BD30B58FB029 +S11346000EAB43F8340D0D46184605A90022FEF7FB +S1134610E3FC044688B90A4902A80B900C9105A84A +S11346200199FFF783F9044638B90A9A22B105A81B +S11346302946FEF708FC00E0062420460FB030BDF2 +S1134640480D002070B598B018AB43F85C0D1846BF +S113465006A90122FEF7C0FC044600284DD12849D2 +S113466003A80C900D9106A80199FFF75FF9044681 +S1134670002842D10B9E36B1F27A12F0010F0CBF22 +S11346800024072400E00624069D31462878FEF71E +S113469051FC0546002C30D1F47A04F01003D8B252 +S11346A0C8B1012D13D90FA806A92422FEF79EFB39 +S11346B00FA802211195FEF721FF0446E8B90FA8BF +S11346C0FFF79CFA044620B1042804D015E0022424 +S11346D013E0072411E006A8FFF768FA044660B95E +S11346E025B90698FEF729FE044606E006982946F1 +S11346F0FFF704FB04460028F3D0204618B070BD31 +S1134700480D00202DE9F34106460F469046054624 +S113471000247B1E9C4211DA01224046694601AB0B +S1134720FFF7F6FC0198012808D19DF800100D2927 +S1134730EFD001340A2905F8011BEAD100222A70BE +S1134740944214BF30461046BDE8FC810A2837B5B0 +S113475004460D4602D10D20FFF7F8FF02A901F827 +S1134760084D28466946012201ABFFF783FD0198F5 +S1134770012814BF4FF0FF3001203EBD70B505463F +S11347800E460024285D38B13146FFF7DFFF431C95 +S113479001D00134F6E70446204670BD7F2816D9BF +S11347A031B1FF2812D80A49803831F81000704717 +S11347B0074A8BB232F81120824203D0013180299A +S11347C0F6D10B4603F18000C0B270470020704759 +S11347D0B86100000023064A32F8131031B1884250 +S11347E001D00133F7E7034830F81300704700BFE6 +S11347F0D85F0000B862000010B5013A8A189142EF +S11348000CD20C784B7803EB04239BB2181880B2BB +S1134810984201D2431C98B20231F0E707D10B78D9 +S11348201902081880B2884201D2421C90B210BD0D +S113483038B50E4C0822657C237C143D05EB03211E +S11348408DB2401904F11A0180B2FFF7D5FF04F1CB +S113485022012A46FFF7D0FF20B1020A42EA0023D0 +S113486098B238BD4FF6FF7038BD00BFCA0F0020A4 +S113487070B5C478124B0A19D4B2DC7085780E0A6C +S11348807219D2B29A704578B2425D70007818708D +S113489005D20135EDB25D700DB901301870C9B2A1 +S11348A08C420CDA531C0648DAB282703AB9417869 +S11348B04B1CDAB2427012B901784B1C037070BD04 +S11348C01916002010B5084C014620680830FFF77F +S11348D0CFFF064A23681178507819729178D278FC +S11348E058729972DA7210BD500F00201916002008 +S11348F008B5002006491422FFF77EFF20B1030A01 +S113490043EA002080B208BD4FF6FF7008BD00BF27 +S1134910D80F00200620FFF78BBF000006490023B4 +S11349201A460B80054B01200549187005484A7644 +S11349304FF48062028070472A1600202816002057 +S1134940540F00201E160020044A054B118811B98B +S11349501970108070470120187070472A160020C3 +S113496028160020F8B5834B83491C68834B032821 +S113497003F136020A6082490A600AD1607E00F0BF +S11349800F03032B40F0BE84218A002940F0BA842F +S11349906DE002286FD17B48C278511CCBB2C37042 +S11349A063B98278511CCBB283703BB94278511CF5 +S11349B0CBB2437013B90278511C0170724B734A25 +S11349C0002018801080607E072801D005280AD1B5 +S11349D0A07E431CD9B27829A17640F093840022AA +S11349E0627600F08FBC002800F08C84218A0029B4 +S11349F038D0A27E511EA176002A40F08384E37E43 +S1134A00082B04D0421E012A09D8052B07D1002304 +S1134A105F4A80216376117000F0C2FE60E3042BCC +S1134A2004D8032202FA03F2D1B200E0302100F0EC +S1134A300F00A1760133411EE376072900F2628458 +S1134A40DFE811F0800108000A00EC026004EC02C7 +S1134A506004EC02002576E14D4B04221A7000F04C +S1134A609FFE5CE300F00F03032B40F04B844848A7 +S1134A70082202709DE2987B452840F04384424816 +S1134A801E7C5A7C018802EB06268E4200F33A848F +S1134A901A7DB6B29206068040F034845B7D002B0A +S1134AA040F030843B4804880CB9418849B1334A0A +S1134AB0D38BA34240F02684118C4088814240F07D +S1134AC02184FFF715FF4FF6FF729042074640F02E +S1134AD019842A4DEB7D062B1DD0012B40F0128446 +S1134AE095F82210082940F00D84AB8C4FF6F6722D +S1134AF00020934285F8220001D9093300E00833ED +S1134B001E49AB84488B234A8B8BC88350880B8403 +S1134B104C838883DFE3FFF7FDFEB84240F0F28365 +S1134B201D4B5C7E84B1A98C9A8891420CD1688C0F +S1134B30D988884208D1688B1A88904204D1A98BFD +S1134B405888814200F01A810C4B93F82F2002F010 +S1134B503F0102292AD19A8C10481146028010483C +S1134B60104B008882421FD1002C74D100241C7089 +S1134B70094C7AE0500F00200C160020CA0F0020C8 +S1134B802C16002010160020C00F0020C80F002093 +S1134B901816002014160020540F002020160020A0 +S1134BA02A1600202816002001221A707B4B93F845 +S1134BB02F1001F00400C2B2002A40F0A38393F83E +S1134BC02D207749142528240C8083F82F5093F83E +S1134BD0294093F82C5083F8292093F82B20502057 +S1134BE093F8271083F82E0083F8272093F82800E1 +S1134BF093F8262083F828506A4D01342A7093F8DC +S1134C002A5083F82C0083F82650E5B283F82B1041 +S1134C1083F82A2083F82D5065B90130C4B283F893 +S1134C202C403CB90131CDB283F82B5015B9013277 +S1134C3083F82A20594B5C4C588C5D8B2080998CCE +S1134C4098845A4859849A8B04884188DD831A844D +S1134C505C83998317E356480122072C0CBF044652 +S1134C6000241A70002C00F04D83524D0326A676C2 +S1134C702676042300262C60484DE375A675E67657 +S1134C80A18095F8221095F823006B8B41EA00224D +S1134C90E280A98B484A238061801378517823737A +S1134CA06173937895F82910D278A373E27395F819 +S1134CB0283095F82720E17295F8261001206076B7 +S1134CC02082A37262722172FFF7FCFD95F82E50C8 +S1134CD005F0F000502835DD2B0938495A1F95009E +S1134CE00A783346AB4229DA2C48C11891F83620A9 +S1134CF022B3012A01D101331EE0022A17D191F80F +S1134D003760042E13D12D48264D027091F83820B7 +S1134D1091F839102B70244D41EA022340F20A60C5 +S1134D202B80834228BF03466382A3820AE0C01813 +S1134D3090F8371011B1CB18DBB2D3E719491F4DE6 +S1134D400B702A7010251548144B80F82F5093F8D7 +S1134D502F10042041F00202022583F83700104886 +S1134D60062183F82F2083F836500A222C2583F855 +S1134D70381083F83920058060214AE20D4F95F8F8 +S1134D802F203B600E4902F004070020FFB2087098 +S1134D90C7B1587620230B70E8E100BFCA0F00208A +S1134DA0C00F002028160020201600201416002012 +S1134DB0540F0020500F0020101600203016002041 +S1134DC01816002095F82E30143E19098800964BC9 +S1134DD0361A964904F00F04B6B2022C18700E80ED +S1134DE003D102F03F0012280ED00EB994070BD065 +S1134DF08F49904BCC8C1889844240F00082098DF5 +S1134E005B89994240F0FB8102F01002D4B2002C7D +S1134E1044D0884C218A002940D004F10C00FFF7CB +S1134E2027FD834A844B92F82A001D78854235D1A8 +S1134E3092F82B105878884230D192F82C609978E7 +S1134E40B1422BD192F82D20DB78934226D16073A6 +S1134E50E07E2573A173E373C0B9227EA37EA17D96 +S1134E60D01AA0EBD102D3B2DAB25918C9B21006E3 +S1134E70A17501D55C42E2B26E4BD87DA0EB9004E3 +S1134E80A218D0B200EBD101D875197669486B4BE2 +S1134E90027E012400211C7082760182654B674AE0 +S1134EA0597E01F00F04601E072800F22B82DFE810 +S1134EB010F008001D008D00600181019D01A60114 +S1134EC0540111785D4CCA0740F11C820320002173 +S1134ED058761982554B402218882270002800F019 +S1134EE0EF8042222270FFF7EDFCE9E01478E3073B +S1134EF062D54F4B93F82F2002F03F0012285BD16C +S1134F0093F82E3003F0F002502A36DD4C4918098C +S1134F10441F0A78A4000023A3422ADA4448C11893 +S1134F2091F836202AB3012A01D101331FE0022A65 +S1134F3018D191F83750042D14D141483A4C0270DD +S1134F4091F8382091F8391023703E4B41EA02243D +S1134F5040F20A60374A1C80844228BF04465482C7 +S1134F6094820AE0C01890F8371011B1CB18DBB264 +S1134F70D2E72D49324C0B7022702E4C2C4B03205F +S1134F8093F8262093F82710607693F8280093F876 +S1134F90293022726172A072E3720120FFF792FC41 +S1134FA0264942220A70214B274A00202082188079 +S1134FB0108000F0F5FB89E0204C2021217000F0E6 +S1134FC0EFFB224B002218684276EFE5184C94F868 +S1134FD02F30D8073CD501F01002D0B2002837D1C9 +S1134FE01448018A002940F08D81104D2A88541CF0 +S1134FF0A0B2FFF767FC114B2D88187840F0100120 +S1135000197015B140F012021A700A4C00F0C8FB76 +S113501001230820002123826076E1761122044DC9 +S113502085F82F20F0E000BF28160020C00F0020D4 +S1135030CA0F0020540F0020191600201816002053 +S11350403016002020160020C80F0020500F00202A +S113505003F02004E3B273B1A04AA14B92F83400E8 +S113506092F8354044EA0022186884181C609D4B6D +S11350701888821A1A809B4C208850B101F01001C4 +S1135080CBB233B9984C227842F002012170FFF779 +S113509019FC924890F8304090F83130934803EB73 +S11350A00422818A94B2924B8C421C8000D804B9A9 +S11350B019808D4C1A88237842829A0700F0228145 +S11350C08C480024048000F06BFB884C864B894A92 +S11350D01B7803F02001C9B221B100231380637649 +S11350E014229CE703F01000C0B230B10125042063 +S11350F0118025826076E17690E7118869B1DB073B +S113510048BF2082228A7B4B32B9608A814288BFA1 +S113511018801988218200E01A800022E276764BFA +S1135120744A18686E491388086033B1208A20B124 +S11351306C4B2830188018220BE06B490A7802F077 +S11351400203D8B2002800F0DD80664828250580D7 +S11351501022624981F82F2059E01178CA0740F1E2 +S1135160D18000245C76604B1020187000F018FB8E +S1135170C8E05C48008808B1FFF7A4FB574B5A49C4 +S113518093F82F20087812F001040CD010F0010FCE +S1135190564D05D0002207236B76AA762A8218E0A2 +S11351A006246C7615E0C0071CD5504805214176CD +S11351B00482A7E04B48008808B1FFF783FB474B04 +S11351C093F82F20D1070DD5484D07210024697687 +S11351D0AC760120FFF776FB43491020087000F0FD +S11351E0DFFA0CE03F4B1A884AB98BE01278D207F9 +S11351F040F188800721002459769C7682E0374963 +S113520010253A4C81F82F50364B28201880334B08 +S1135210502183F82E10227A304D85F82A20607AA6 +S113522085F82B00A17A85F82C10E37A85F82D30C7 +S1135230227B85F82620607B062285F82700A17B47 +S113524085F82810E37BEA7585F82930A0882B4B74 +S11352506884E188A984188859886883A983238885 +S1135260EB8360882884647E04F01001CBB22BB1F8 +S1135270002085F8310085F8300004E085F83020FE +S11352800A2285F831201749144C0B8840251A0A44 +S1135290A57500252274637484F8355084F834505D +S11352A084F8325084F83350FFF734FB144AC04377 +S11352B0608613884521581CA17381B211800A0AA3 +S11352C0E57365752575A274E17425766576FFF737 +S11352D00FFBC3432383002218E000BFCA0F002042 +S11352E00C160020C00F002018160020540F0020B8 +S11352F020160020C80F00202C16002014160020B1 +S1135300C20F0020034900231A460B800248027092 +S1135310F8BD00BFC00F0020181600200A1E034667 +S113532009DD0548054900680A80834203D019460F +S113533092B200F079BA70472C160020C80F0020F2 +S113534038B52C4B988BDD8B0023072B11D80C22FE +S11353505A4329498C18895A41B1628832B188422A +S113536004D1954202D12548037039E00133DBB200 +S1135370EBE70023072B0DD80C2058431E490A5A8B +S11353800C1822B9618811B91C48037023E0013359 +S1135390DBB2EFE7194A082B13701CD1184800231D +S11353A0057819461A46072A13480BD80C2404FB1F +S11353B00200847A281B9842C4BFC3B2114601324A +S11353C0D2B2F0E70F4C0D4A23700C2404FB010405 +S11353D00D4B1170197020460C49042200F024FA78 +S11353E00B490622201D00F01FFA05490A78A27213 +S11353F038BD00BFCA0F002034160020311600202B +S1135400951600203216002094160020E60F002086 +S1135410E00F002008B5124B00211A78501C1870B8 +S1135420104801700F490B78072B17D80C20434301 +S11354300D4AD0184188D35A41EA030291B249B1C6 +S1135440074B817A1A78531A772B03DD0021042243 +S113545000F0F8F903480278511CE2E708BD00BFE8 +S1135460951600203116002034160020F8B52A4D78 +S11354702B88292B4FF000033DD9284C1F46A08AC6 +S11354802B80B0F5807F03D0B0F5007F42D134E0AB +S1135490234EE18C328891423CD1208D738898420E +S11354A038D1FFF74DFF02216175062204F1160180 +S11354B004F12000277500F0B7F91A49062204F117 +S11354C0160000F0B1F917490622A01D00F0ACF94E +S11354D004F120010622204600F0A6F9A28BE08BFD +S11354E033887188E284208508220620A383E1831F +S11354F0227360732A232B80F8BD094BE18C1A8830 +S1135500914207D1208D5B88984203D1BDE8F840D1 +S1135510FFF716BFF8BD00BFC00F0020CA0F002060 +S11355201416002022160020434838B5C38B4FF6CA +S1135530FF72934204D1028C9A4201D13F4968E040 +S11355403F4C404A258810885D40054207D13A4DBA +S11355506488288C528880EA0405154206D03A4DA6 +S11355603A4B28886A8818805A8002E0374C238096 +S11355706080364C002520886488072D0CD80C23C5 +S11355806B43334AD118D25A824202D14B88A34288 +S11355903BD00135EDB2F0E72E4B082D1D7036D10E +S11355A0254CFF212046062200F04CF904F120008E +S11355B00021062200F046F9A01D2749062200F02A +S11355C033F904F116002449062200F02DF91F498D +S11355D01B4B08884A88E08419885888002323755F +S11355E0A37363742285A183E0830621012204202E +S11355F01A4B61736275E2732574A174E0742573A8 +S113560036341C602A21164813E0124805700A48F3 +S11356100431062200F008F90F490622114800F06F +S113562003F90549082200230D480A734B730188C6 +S11356300E31018038BD00BFCA0F002098640000FD +S113564014160020BC0F0020C40F00209616002062 +S11356503416002031160020221600200C160020DB +S1135660C00F0020D00F002008B5FCF7E5FAFCF7C6 +S113567029FE114B00F5FA701860FCF723FE0F4A5F +S113568000F51C5110311160FFF748F90C4843F63E +S113569013714FF6A963038041800A484FF6FF72E5 +S11356A00023028043804EF60300FFF74DF9BDE866 +S11356B00840FCF7CDBA00BFA01600209C160020BD +S11356C014160020BC0F002038B50C4B1C680023B6 +S11356D0E26922629AB28A4205D2C55CE21882F873 +S11356E024500133F6E70431A4F8641004F12000D7 +S11356F0FFF714FEE069411CE16138BD500F002042 +S113570010B5FCF72BFBC0B11F4C204B20809889AF +S1135710082807D10120FFF725F922886AB1FFF78D +S113572003FF06E0B0F5C16F07D1FFF79FFE2188A4 +S113573019B1FCF72DFB00232380FCF7C3FD1449AA +S11357400A68904211D302F5FA741248124B0C60A5 +S11357500D4C18600220FFF705F9218829B1FFF7E5 +S1135760E3FEFCF715FB00222280FCF7ABFD0B4B9C +S11357701968884205D301F51C5010301860FFF7F2 +S113578049FE002010BD00BFC00F0020CA0F00203A +S1135790A0160020540F0020500F00209C1600205B +S11357A010B5174B17481C68037803F04002D0B2B9 +S11357B028B101230022E361A4F8642010BDD907B5 +S11357C003F00401CBB248BFA4F8640033B1B4F8C9 +S11357D0641019B104F12000FFF7A0FD094A107804 +S11357E000F00201CBB24BB1074800220168A4F8D3 +S11357F06420081DBDE81040FCF7E2BE10BD00BFE8 +S1135800500F0020181600200C16002030380928EC +S11358108CBF002001207047A0F16103D9B219297F +S113582098BF2038704700004FF00003002A07D0CB +S113583011F803C000F803C003F10103013AF7D1E2 +S1135840704700BF0346002A00F0048003F8011BE0 +S10B5850013AFBD1704700BFCF +S113585840420F0000201C0080841E0000802500A8 +S1135868999E36000040380000093D0000803E0043 +S113587800004B00404B4C0000204E00808D5B0024 +S113588800C05D000080700000127A0000007D00F6 +S113589880969800001BB7000080BB00C0E8CE00CB +S11358A8647ADA000024F4000000FA0080A81201E7 +S11358B8002D310100366E0140787D01433A2F579F +S11358C86F726B2F736F6674776172652F4F706593 +S11358D86E424C542F5461726765742F44656D6F22 +S11358E82F41524D434D335F4C4D33535F454B5F0E +S11358F84C4D3353363936355F43726F7373776F54 +S1135908726B732F426F6F742F6964652F2E2E2F5D +S11359186C69622F6472697665726C69622F737937 +S11359287363746C2E63000000E10F4004E10F40C0 +S113593808E10F4040E00F4044E00F4048E00F40CA +S1135948433A2F576F726B2F736F66747761726562 +S11359582F4F70656E424C542F5461726765742FD3 +S113596844656D6F2F41524D434D335F4C4D335356 +S11359785F454B5F4C4D3353363936355F43726F51 +S11359887373776F726B732F426F6F742F696465CB +S11359982F2E2E2F6C69622F6472697665726C697A +S11359A8622F6770696F2E6300433A2F576F726BCB +S11359B82F736F6674776172652F4F70656E424CF2 +S11359C8542F5461726765742F44656D6F2F41526B +S11359D84D434D335F4C4D33535F454B5F4C4D3313 +S11359E853363936355F43726F7373776F726B73DF +S11359F82F426F6F742F6964652F2E2E2F6C696286 +S1135A082F6472697665726C69622F666C6173685B +S1135A186C69622E6300433A2F576F726B2F736F52 +S1135A286674776172652F4F70656E424C542F54BB +S1135A3861726765742F44656D6F2F41524D434DF4 +S1135A48335F4C4D33535F454B5F4C4D33533639BD +S1135A5836355F43726F7373776F726B732F426F50 +S1135A686F742F6964652F2E2E2F6C69622F6472F0 +S1135A78697665726C69622F756172746C69622EDD +S1135A886300433A2F576F726B2F736F6674776195 +S1135A9872652F4F70656E424C542F54617267655E +S1135AA8742F44656D6F2F41524D434D335F4C4DF8 +S1135AB833535F454B5F4C4D3353363936355F436B +S1135AC8726F7373776F726B732F426F6F742F6972 +S1135AD864652F2E2E2F6C69622F64726976657245 +S1135AE86C69622F7373692E6300433A2F576F7280 +S1135AF86B2F736F6674776172652F4F70656E4292 +S1135B084C542F5461726765742F44656D6F2F412F +S1135B18524D434D335F4C4D33535F454B5F4C4DB2 +S1135B283353363936355F43726F7373776F726BDD +S1135B38732F426F6F742F6964652F2E2E2F6C6933 +S1135B48622F6472697665726C69622F6574686520 +S1135B58726E65742E63002F64656D6F70726F6763 +S1135B685F656B5F6C6D3373363936352E737265CA +S1135B7863002F626F6F746C6F672E7478740043C0 +S1135B883A2F576F726B2F736F6674776172652F34 +S1135B984F70656E424C542F5461726765742F447C +S1135BA8656D6F2F41524D434D335F4C4D33535FF9 +S1135BB8454B5F4C4D3353363936355F43726F73FB +S1135BC873776F726B732F426F6F742F6964652FCD +S1135BD82E2E2F2E2E2F2E2E2F2E2E2F536F7572E4 +S1135BE863652F41524D434D335F4C4D33532F431F +S1135BF8726F7373776F726B732F766563746F72DA +S1135C08732E6300008000000020000004000000E0 +S1135C1800A00000002000000500000000C00000F3 +S1135C28002000000600000000E000000020000042 +S1135C380700000000000100002000000800000028 +S1135C4800200100002000000900000000400100BD +S1135C58002000000A00000000600100002000008D +S1135C680B00000000800100002000000C00000070 +S1135C7800A00100002000000D00000000C0010089 +S1135C88002000000E00000000E0010000200000D9 +S1135C980F00000000000200008000001000000057 +S1135CA800800200008000001100000000000300D2 +S1135CB80080000012000000008003000080000043 +S1135CC813000000433A2F576F726B2F736F66747B +S1135CD8776172652F4F70656E424C542F54617210 +S1135CE86765742F44656D6F2F41524D434D335F83 +S1135CF84C4D33535F454B5F4C4D33533639363532 +S1135D085F43726F7373776F726B732F426F6F7425 +S1135D182F6964652F2E2E2F2E2E2F2E2E2F2E2EEA +S1135D282F536F757263652F41524D434D335F4C4A +S1135D384D33532F756172742E63004F70656E4234 +S1135D484C5400433A2F576F726B2F736F667477F6 +S1135D586172652F4F70656E424C542F546172679F +S1135D6865742F44656D6F2F41524D434D335F4C1D +S1135D784D33535F454B5F4C4D3353363936355F9E +S1135D8843726F7373776F726B732F426F6F742FD5 +S1135D986964652F2E2E2F2E2E2F2E2E2F2E2E2F6A +S1135DA8536F757263652F66696C652E6300466967 +S1135DB8726D7761726520757064617465207265AF +S1135DC871756573742064657465637465640A0D1C +S1135DD8004F70656E696E67206669726D776172CF +S1135DE8652066696C6520666F72207265616469F6 +S1135DF86E672E2E2E004F4B0A0D00537461727479 +S1135E08696E67207468652070726F6772616D6D62 +S1135E18696E672073657175656E63650A0D005058 +S1135E28617273696E67206669726D776172652045 +S1135E3866696C6520746F206F627461696E206591 +S1135E48726173652073697A652E2E2E004572611E +S1135E5873696E6720002062797465732066726FB7 +S1135E686D206D656D6F72792061742030780052F1 +S1135E78656164696E67206C696E652066726F6D12 +S1135E882066696C652E2E2E4552524F520A0D001B +S1135E98496E76616C696420636865636B73756DBC +S1135EA820666F756E642E2E2E4552524F520A0D7F +S1135EB80050726F6772616D6D696E6720002062B1 +S1135EC87974657320746F206D656D6F72792061C4 +S1135ED8742030780057726974696E672070726F25 +S1135EE86772616D20636865636B73756D2E2E2E02 +S1135EF800436C6F73696E67206669726D776172AF +S1135F08652066696C650A0D004669726D77617271 +S1135F186520757064617465207375636365737354 +S1135F2866756C6C7920636F6D706C657465640A52 +S1135F380D00222A3A3C3E3F7C7F002B2C3B3D5BE4 +S1135F485D00809A90418E418F8045454549494975 +S1135F588E8F9092924F994F555559999A9B9C9D23 +S1135F689E9F41494F55A5A5A6A7A8A9AAABAC21B0 +S1135F78AEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBD +S1135F88BEBFC0C1C2C3C4C5C6C7C8C9CACBCCCDAD +S1135F98CECFD0D1D2D3D4D5D6D7D8D9DADBDCDD9D +S1135FA8DEDFE0E1E2E3E4E5E6E7E8E9EAEBECED8D +S1135FB8EEEFF0F1F2F3F4F5F6F7F8F9FAFBFCFD7D +S1135FC8FEFF01030507090E10121416181C1E0003 +S1135FD86100620063006400650066006700680091 +S1135FE869006A006B006C006D006E006F00700041 +S1135FF871007200730074007500760077007800F1 +S113600879007A00A100A200A300A500AC00AF00AB +S1136018E000E100E200E300E400E500E600E70058 +S1136028E800E900EA00EB00EC00ED00EE00EF0008 +S1136038F000F100F200F300F400F500F600F800B7 +S1136048F900FA00FB00FC00FD00FE00FF0001015E +S113605803010501070109010B010D010F011101DC +S113606813011501170119011B011D011F0121014C +S113607823012501270129012B012D012F013101BC +S11360883301350137013A013C013E014001420127 +S11360984401460148014B014D014F01510153018F +S11360A85501570159015B015D015F0161016301FC +S11360B86501670169016B016D016F01710173016C +S11360C8750177017A017C017E019201B103B20363 +S11360D8B303B403B503B603B703B803B903BA03E8 +S11360E8BB03BC03BD03BE03BF03C003C103C30397 +S11360F8C403C503C603C703C803C903CA033004DA +S113610831043204330434043504360437043804BF +S113611839043A043B043C043D043E043F0440046F +S1136128410442044304440445044604470448041F +S113613849044A044B044C044D044E044F045104CE +S11361485204530454045504560457045804590477 +S11361585A045B045C045E045F047021712172219B +S113616873217421752176217721782179217A2167 +S11361787B217C217D217E217F2141FF42FF43FF3A +S113618844FF45FF46FF47FF48FF49FF4AFF4BFFCF +S11361984CFF4DFF4EFF4FFF50FF51FF52FF53FF7F +S11361A854FF55FF56FF57FF58FF59FF5AFF000089 +S11361B8C700FC00E900E200E400E000E500E700B5 +S11361C8EA00EB00E800EF00EE00EC00C400C500B4 +S11361D8C900E600C600F400F600F200FB00F9006E +S11361E8FF00D600DC00A200A300A500A7209201AE +S11361F8E100ED00F300FA00F100D100AA00BA00B2 +S1136208BF001023AC00BD00BC00A100AB00BB0064 +S11362189125922593250225242561256225562555 +S113622855256325512557255D255C255B251025B6 +S1136238142534252C251C2500253C255E255F25A1 +S11362485A25542569256625602550256C2567251A +S113625868256425652559255825522553256B2518 +S11362686A2518250C25882584258C2590258025C4 +S1136278B103DF009303C003A303C303B500C4033E +S1136288A6039803A903B4031E22C603B50329224F +S11362986122B1006522642220232123F7004822C9 +S11362A8B0001922B7001A227F20B200A025A0004E +S11362B841004200430044004500460047004800AE +S11362C849004A004B004C004D004E004F0050005E +S11362D8510052005300540055005600570058000E +S11362E859005A002100E0FFE1FFE5FFE2FFE3FF68 +S11362F8C000C100C200C300C400C500C600C70076 +S1136308C800C900CA00CB00CC00CD00CE00CF0025 +S1136318D000D100D200D300D400D500D600D800D4 +S1136328D900DA00DB00DC00DD00DE0078010001C2 +S113633802010401060108010A010C010E01100101 +S113634812011401160118011A011C011E01200171 +S113635822012401260128012A012C012E013001E1 +S113636832013401360139013B013D013F0141014C +S11363784301450147014A014C014E0150015201B4 +S11363885401560158015A015C015E016001620121 +S11363986401660168016A016C016E017001720191 +S11363A87401760179017B017D01910191039203C6 +S11363B893039403950396039703980399039A0305 +S11363C89B039C039D039E039F03A003A103A303B4 +S11363D8A403A503A603A703A803A903AA031004F7 +S11363E811041204130414041504160417041804DD +S11363F819041A041B041C041D041E041F0420048D +S1136408210422042304240425042604270428043C +S113641829042A042B042C042D042E042F0401041B +S11364280204030404040504060407040804090414 +S11364380A040B040C040E040F0460216121622178 +S113644863216421652166216721682169216A2104 +S11364586B216C216D216E216F2121FF22FF23FF07 +S113646824FF25FF26FF27FF28FF29FF2AFF2BFFEC +S11364782CFF2DFF2EFF2FFF30FF31FF32FF33FF9C +S113648834FF35FF36FF37FF38FF39FF3AFF000086 +S1096498FFFFFFFFFFFF00 +S10564A00104F1 S903017F7C diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Boot/blt_conf.h b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Boot/blt_conf.h index e90acf9f..ca8bb51e 100644 --- a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Boot/blt_conf.h +++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Boot/blt_conf.h @@ -123,6 +123,26 @@ #define BOOT_COM_NET_NETMASK_HOOK_ENABLE (0) +/**************************************************************************************** +* B A C K D O O R C O N F I G U R A T I O N +****************************************************************************************/ +#if (BOOT_COM_NET_ENABLE > 0) +/* Override the default time that the backdoor is open if firmware updates via TCP/IP + * are supported. in this case a reactivation of the bootloader results in a re- + * initialization of the ethernet MAC. when directly connected to the ethernet port of + * a PC this will go relatively fast (depending on what MS Windows is being used), but + * when connected to the network via a router this can take several seconds. feel free to + * shorten/lengthen this time for finetuning. the only downside of a long backdoor open + * time is that the starting of the user program will also be delayed for this time. + * + * Also note that when the target is directly connected to the ethernet port of a PC, + * the checkbox "Automatically retry socket connection" should be checked in the + * Microboot settings. if connection via a router the uncheck this checkbox. + */ +#define BACKDOOR_ENTRY_TIMEOUT_MS (10000) +#endif + + /**************************************************************************************** * F I L E S Y S T E M I N T E R F A C E C O N F I G U R A T I O N ****************************************************************************************/ diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Boot/ide/lm3s6965_crossworks.hzs b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Boot/ide/lm3s6965_crossworks.hzs index 594a1c1b..b9f7b850 100644 --- a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Boot/ide/lm3s6965_crossworks.hzs +++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Boot/ide/lm3s6965_crossworks.hzs @@ -51,7 +51,7 @@ - + diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Prog/ide/lm3s6965_crossworks.hzs b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Prog/ide/lm3s6965_crossworks.hzs index 02507b9f..c6e173e2 100644 --- a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Prog/ide/lm3s6965_crossworks.hzs +++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_Crossworks/Prog/ide/lm3s6965_crossworks.hzs @@ -51,10 +51,10 @@ - - - - + + + + diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Boot/bin/openbtl_ek_lm3s6965.bin b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Boot/bin/openbtl_ek_lm3s6965.bin index 29a05300..b740bdb4 100644 Binary files a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Boot/bin/openbtl_ek_lm3s6965.bin and b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Boot/bin/openbtl_ek_lm3s6965.bin differ diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Boot/bin/openbtl_ek_lm3s6965.elf b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Boot/bin/openbtl_ek_lm3s6965.elf index 890b84e8..9232457e 100644 Binary files a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Boot/bin/openbtl_ek_lm3s6965.elf and b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Boot/bin/openbtl_ek_lm3s6965.elf differ diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Boot/bin/openbtl_ek_lm3s6965.map b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Boot/bin/openbtl_ek_lm3s6965.map index f98b17ef..ae3bffee 100644 --- a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Boot/bin/openbtl_ek_lm3s6965.map +++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Boot/bin/openbtl_ek_lm3s6965.map @@ -7,18 +7,18 @@ start address 0x00000000 Program Header: LOAD off 0x00008000 vaddr 0x00000000 paddr 0x00000000 align 2**15 - filesz 0x00006058 memsz 0x00006058 flags r-x - LOAD off 0x00010000 vaddr 0x20000000 paddr 0x00006058 align 2**15 + filesz 0x0000605c memsz 0x0000605c flags r-x + LOAD off 0x00010000 vaddr 0x20000000 paddr 0x0000605c align 2**15 filesz 0x00000008 memsz 0x000018ac flags rw- private flags = 5000200: [Version5 EABI] [soft-float ABI] Sections: Idx Name Size VMA LMA File off Algn - 0 .text 00006058 00000000 00000000 00008000 2**2 + 0 .text 0000605c 00000000 00000000 00008000 2**2 CONTENTS, ALLOC, LOAD, READONLY, CODE - 1 .data 00000008 20000000 00006058 00010000 2**2 + 1 .data 00000008 20000000 0000605c 00010000 2**2 CONTENTS, ALLOC, LOAD, DATA - 2 .bss 000018a4 20000008 00006060 00010008 2**2 + 2 .bss 000018a4 20000008 00006064 00010008 2**2 ALLOC 3 .debug_info 0000f8d4 00000000 00000000 00010008 2**0 CONTENTS, READONLY, DEBUGGING @@ -57,9 +57,9 @@ SYMBOL TABLE: 00000000 l df *ABS* 00000000 vectors.c 00000000 l df *ABS* 00000000 cstart.c 0000011c l F .text 00000000 zero_loop2 -00005486 l F .text 00000000 zero_loop +0000548a l F .text 00000000 zero_loop 00000000 l df *ABS* 00000000 hooks.c -000055f4 l O .text 0000001b firmwareFilename +000055f8 l O .text 0000001b firmwareFilename 20000008 l O .bss 00000228 logfile 00000000 l df *ABS* 00000000 main.c 00000000 l df *ABS* 00000000 ethernet.c @@ -68,9 +68,9 @@ SYMBOL TABLE: 00000000 l df *ABS* 00000000 flashlib.c 00000000 l df *ABS* 00000000 sysctl.c 0000079c l F .text 00000154 SysCtlPeripheralValid -00005654 l O .text 0000006c g_pulXtals -000056dc l O .text 0000000c g_pulRCGCRegs -000056e8 l O .text 0000000c g_pulSRCRRegs +00005658 l O .text 0000006c g_pulXtals +000056e0 l O .text 0000000c g_pulRCGCRegs +000056ec l O .text 0000000c g_pulSRCRRegs 00000000 l df *ABS* 00000000 gpio.c 00000ce8 l F .text 00000054 GPIOBaseValid 00000000 l df *ABS* 00000000 uartlib.c @@ -95,17 +95,17 @@ SYMBOL TABLE: 20000235 l O .bss 00000040 xcpCtoReqPacket.4412 00000000 l df *ABS* 00000000 xcp.c 00001c98 l F .text 00000014 XcpSetCtoError -0000573b l O .text 00000008 xcpStationId +0000573f l O .text 00000008 xcpStationId 20000278 l O .bss 0000004c xcpInfo 00000000 l df *ABS* 00000000 backdoor.c 200002c4 l O .bss 00000001 backdoorOpen 200002c8 l O .bss 00000004 backdoorOpenTime 00000000 l df *ABS* 00000000 cop.c 00000000 l df *ABS* 00000000 file.c -00001f64 l F .text 0000002c FileLibByteNibbleToChar -00001f90 l F .text 0000001e FileLibByteToHexString -00001fb0 l F .text 00000058 FileLibHexStringToByte -00002008 l F .text 00000038 FileLibLongToIntString.constprop.0 +00001f68 l F .text 0000002c FileLibByteNibbleToChar +00001f94 l F .text 0000001e FileLibByteToHexString +00001fb4 l F .text 00000058 FileLibHexStringToByte +0000200c l F .text 00000038 FileLibLongToIntString.constprop.0 200002cc l O .bss 00000040 loggingStr 2000030c l O .bss 00000001 firmwareUpdateState 20000310 l O .bss 00000008 eraseInfo @@ -118,39 +118,39 @@ SYMBOL TABLE: 200008fc l O .bss 00000004 assert_failure_file 20000900 l O .bss 00000004 assert_failure_line 00000000 l df *ABS* 00000000 ff.c -00002744 l F .text 00000012 mem_cpy -00002756 l F .text 0000001e sum_sfn -00002774 l F .text 0000002a validate -0000279e l F .text 000000ea get_fileinfo -00002888 l F .text 0000001c ld_clust.isra.0 -000028a4 l F .text 00000088 check_fs -0000292c l F .text 0000030c chk_mounted -00002c38 l F .text 0000004a sync_window.part.2 -00002c82 l F .text 0000000c sync_window -00002c8e l F .text 0000002e move_window -00002cbc l F .text 000000b6 sync_fs -00002e56 l F .text 00000084 dir_sdi -00002fcc l F .text 0000009a create_chain -00003066 l F .text 000000f2 dir_next -00003158 l F .text 0000012c dir_find.part.6 -00003284 l F .text 0000026c follow_path -000034f0 l F .text 0000004e dir_remove -00003540 l F .text 000000fc dir_read.constprop.8 -0000363c l F .text 00000054 remove_chain -00003710 l F .text 000001b0 dir_register +00002748 l F .text 00000012 mem_cpy +0000275a l F .text 0000001e sum_sfn +00002778 l F .text 0000002a validate +000027a2 l F .text 000000ea get_fileinfo +0000288c l F .text 0000001c ld_clust.isra.0 +000028a8 l F .text 00000088 check_fs +00002930 l F .text 0000030c chk_mounted +00002c3c l F .text 0000004a sync_window.part.2 +00002c86 l F .text 0000000c sync_window +00002c92 l F .text 0000002e move_window +00002cc0 l F .text 000000b6 sync_fs +00002e5a l F .text 00000084 dir_sdi +00002fd0 l F .text 0000009a create_chain +0000306a l F .text 000000f2 dir_next +0000315c l F .text 0000012c dir_find.part.6 +00003288 l F .text 0000026c follow_path +000034f4 l F .text 0000004e dir_remove +00003544 l F .text 000000fc dir_read.constprop.8 +00003640 l F .text 00000054 remove_chain +00003714 l F .text 000001b0 dir_register 20000904 l O .bss 00000200 LfnBuf 20000b04 l O .bss 00000002 Fsid -000058ee l O .text 00000080 ExCvt -0000596e l O .text 0000000d LfnOfs +000058f2 l O .text 00000080 ExCvt +00005972 l O .text 0000000d LfnOfs 20000b08 l O .bss 00000004 FatFs 00000000 l df *ABS* 00000000 unicode.c -0000597c l O .text 000001e0 tbl_lower.4259 -00005b5c l O .text 00000100 Tbl -00005c5c l O .text 000001e0 tbl_upper.4260 +00005980 l O .text 000001e0 tbl_lower.4259 +00005b60 l O .text 00000100 Tbl +00005c60 l O .text 000001e0 tbl_upper.4260 00000000 l df *ABS* 00000000 uip.c -00004108 l F .text 00000038 chksum -00004140 l F .text 0000003c upper_layer_chksum -000041d0 l F .text 0000002c uip_add_rcv_nxt +0000410c l F .text 00000038 chksum +00004144 l F .text 0000003c upper_layer_chksum +000041d4 l F .text 0000002c uip_add_rcv_nxt 20000b0c l O .bss 00000002 tmp16 20000b0e l O .bss 00000002 ipid 20000b10 l O .bss 00000004 iss @@ -158,11 +158,11 @@ SYMBOL TABLE: 20000b1c l O .bss 00000001 c 20000b1d l O .bss 00000001 opt 00000000 l df *ABS* 00000000 uip_arp.c -00004c10 l F .text 000000e4 uip_arp_update.constprop.0 +00004c14 l F .text 000000e4 uip_arp_update.constprop.0 20000b1e l O .bss 00000001 i 20000b1f l O .bss 00000001 tmpage 20000b20 l O .bss 00000060 arp_table -00005e3c l O .text 00000006 broadcast_ethaddr +00005e40 l O .text 00000006 broadcast_ethaddr 20000b80 l O .bss 00000001 c 20000b81 l O .bss 00000001 arptime 20000b82 l O .bss 00000004 ipaddr @@ -175,11 +175,11 @@ SYMBOL TABLE: 00000000 l df *ABS* 00000000 timer.c 20000bcc l O .bss 00000004 millisecond_counter 00000000 l df *ABS* 00000000 flash.c -00005110 l F .text 00000034 FlashGetSector -00005144 l F .text 0000004c FlashWriteBlock -00005190 l F .text 00000050 FlashSwitchBlock -000051e0 l F .text 00000080 FlashAddToBlock -00005e68 l O .text 000000c0 flashLayout +00005114 l F .text 00000034 FlashGetSector +00005148 l F .text 0000004c FlashWriteBlock +00005194 l F .text 00000050 FlashSwitchBlock +000051e4 l F .text 00000080 FlashAddToBlock +00005e6c l O .text 000000c0 flashLayout 20000bd0 l O .bss 00000204 bootBlockInfo 20000dd4 l O .bss 00000204 blockInfo 00000000 l df *ABS* 00000000 memcpy-stub.c @@ -188,14 +188,14 @@ SYMBOL TABLE: 00000000 l df *ABS* 00000000 00000200 l *ABS* 00000000 __STACKSIZE__ 00001bb4 g F .text 0000003c ComInit -00005278 g F .text 00000048 FlashWrite -00004008 g F .text 0000004e f_gets -0000272c g F .text 00000018 AssertFailure -00002d8a g F .text 000000cc get_fat +0000527c g F .text 00000048 FlashWrite +0000400c g F .text 0000004e f_gets +00002730 g F .text 00000018 AssertFailure +00002d8e g F .text 000000cc get_fat 00000f24 g F .text 00000034 GPIOPinTypeSSI -00005464 g F .text 00000040 reset_handler +00005468 g F .text 00000040 reset_handler 000012dc g F .text 00000028 SSIDataGet -000050e4 g F .text 0000001c TimerUpdate +000050e8 g F .text 0000001c TimerUpdate 00001cd8 g F .text 00000010 XcpPacketTransmitted 00001bf0 g F .text 0000003c ComTask 00001254 g F .text 00000024 SSIEnable @@ -203,66 +203,66 @@ SYMBOL TABLE: 00001c88 g F .text 0000000c ComSetConnectEntryState 20000fd8 g O .bss 00000002 uip_len 20000b16 g O .bss 00000006 uip_ethaddr -0000417c g F .text 00000054 uip_add32 +00004180 g F .text 00000054 uip_add32 00001b7c g F .text 0000001e BootInit -000020ec g F .text 0000003e FileSrecVerifyChecksum -00001f40 g F .text 00000020 BackDoorInit +000020f0 g F .text 0000003e FileSrecVerifyChecksum +00001f44 g F .text 00000020 BackDoorInit 0000118c g F .text 000000c8 SSIConfigSetExpClk -00001f62 g F .text 00000002 CopService -00006058 g .text 00000000 _etext +00001f66 g F .text 00000002 CopService +0000605c g .text 00000000 _etext 000008f0 g F .text 00000090 SysCtlPeripheralReset -000040e4 g F .text 00000024 ff_wtoupper +000040e8 g F .text 00000024 ff_wtoupper 00000e98 g F .text 00000024 GPIOPinWrite 00001b30 g F .text 00000034 netdev_read -0000426c g F .text 00000980 uip_process -00005450 g F .text 00000006 FlashGetUserProgBaseAddress -000054ac g F .text 000000a6 memcpy -00002268 g F .text 00000324 FileTask +00004270 g F .text 00000980 uip_process +00005454 g F .text 00000006 FlashGetUserProgBaseAddress +000054b0 g F .text 000000a6 memcpy +0000226c g F .text 00000324 FileTask 000010e0 g F .text 00000024 UARTSpaceAvail -000050d8 g F .text 0000000c TimerReset +000050dc g F .text 0000000c TimerReset 000014a4 g F .text 00000228 disk_initialize 20000fdc g O .bss 00000004 uip_sappdata 00001a0c g F .text 00000018 netdev_init 20000fe0 g O .bss 00000004 uip_acc32 -000041fc g F .text 00000020 uip_ipchksum +00004200 g F .text 00000020 uip_ipchksum 0000112c g F .text 0000002c UARTCharPutNonBlocking 00001b9a g F .text 0000001a BootTask -00005390 g F .text 00000044 FlashWriteChecksum +00005394 g F .text 00000044 FlashWriteChecksum 00001c30 g F .text 00000030 ComTransmitPacket 00000360 g F .text 0000002c EthernetInitExpClk 000016cc g F .text 00000014 disk_status -0000212c g F .text 0000013c FileSrecParseLine -00004250 g F .text 0000001c uip_listen +00002130 g F .text 0000013c FileSrecParseLine +00004254 g F .text 0000001c uip_listen 00001b64 g F .text 00000018 netdev_send 00001824 g F .text 000001e0 disk_ioctl -00002080 g F .text 00000028 FileHandleFirmwareUpdateRequest +00002084 g F .text 00000028 FileHandleFirmwareUpdateRequest 000004d8 g F .text 0000005c EthernetPacketPut 00000980 g F .text 00000064 SysCtlPeripheralEnable -00003690 g F .text 0000007e gen_numname +00003694 g F .text 0000007e gen_numname 20000fe4 g O .bss 00000001 uip_flags 000001bc g F .text 00000030 FileFirmwareUpdateCompletedHook 00001cc8 g F .text 00000010 XcpIsConnected -00003f4c g F .text 000000bc f_unlink -00005094 g F .text 00000004 NvmInit -00005260 g F .text 00000018 FlashInit +00003f50 g F .text 000000bc f_unlink +00005098 g F .text 00000004 NvmInit +00005264 g F .text 00000018 FlashInit 200016aa g .bss 00000000 _ebss -00004056 g F .text 00000032 f_putc -00004088 g F .text 0000001e f_puts -00005458 g F .text 0000000c UnusedISR +0000405a g F .text 00000032 f_putc +0000408c g F .text 0000001e f_puts +0000545c g F .text 0000000c UnusedISR 00000484 g F .text 00000054 EthernetPacketGetNonBlocking 00001c2c g F .text 00000002 ComFree 00000ebc g F .text 00000034 GPIOPinTypeEthernetLED -00004f94 g F .text 00000028 UartInit -0000509c g F .text 00000004 NvmErase +00004f98 g F .text 00000028 UartInit +000050a0 g F .text 00000004 NvmErase 00001a24 g F .text 0000010c netdev_init_mac 00001104 g F .text 00000028 UARTCharGetNonBlocking 0000129c g F .text 00000040 SSIDataPut 20000008 g .bss 00000000 _bss -00003dbc g F .text 0000000e f_close +00003dc0 g F .text 0000000e f_close 00001ce8 g F .text 00000214 XcpPacketReceived -0000421c g F .text 00000006 uip_tcpchksum -00003a20 g F .text 00000160 f_read -0000541c g F .text 00000034 FlashDone +00004220 g F .text 00000006 uip_tcpchksum +00003a24 g F .text 00000160 f_read +00005420 g F .text 00000034 FlashDone 000000f0 g F .text 00000050 EntryFromProg 20000fe8 g O .bss 00000004 uip_appdata 20000fec g O .bss 00000004 uip_conn @@ -270,83 +270,83 @@ SYMBOL TABLE: 00000658 g F .text 000000e4 FlashProgram 00001a04 g F .text 00000008 get_fattime 00001cac g F .text 0000001c XcpInit -00002040 g F .text 0000002c FileInit +00002044 g F .text 0000002c FileInit 0000056c g F .text 00000028 EthernetIntStatus -00004dfc g F .text 00000144 uip_arp_out -000052c0 g F .text 000000d0 FlashErase -00005554 g F .text 0000009e memset +00004e00 g F .text 00000144 uip_arp_out +000052c4 g F .text 000000d0 FlashErase +00005558 g F .text 0000009e memset 000001ec g F .text 00000014 FileFirmwareUpdateErrorHook 00000248 g F .text 0000002c main -00003d12 g F .text 000000aa f_sync +00003d16 g F .text 000000aa f_sync 00000b3c g F .text 000001ac SysCtlClockGet -000020a8 g F .text 00000044 FileSrecGetLineType +000020ac g F .text 00000044 FileSrecGetLineType 00000fdc g F .text 00000034 UARTDisable -000050a4 g F .text 00000012 NvmDone +000050a8 g F .text 00000012 NvmDone 00000444 g F .text 00000040 EthernetEnable -000038c0 g F .text 00000020 f_mount -00004fbc g F .text 0000006c UartTransmitPacket -000050a0 g F .text 00000004 NvmVerifyChecksum -00004f70 g F .text 0000001e CpuMemCopy -00002eda g F .text 000000f2 put_fat -00003dca g F .text 00000138 f_lseek -00004d4c g F .text 000000b0 uip_arp_arpin +000038c4 g F .text 00000020 f_mount +00004fc0 g F .text 0000006c UartTransmitPacket +000050a4 g F .text 00000004 NvmVerifyChecksum +00004f74 g F .text 0000001e CpuMemCopy +00002ede g F .text 000000f2 put_fat +00003dce g F .text 00000138 f_lseek +00004d50 g F .text 000000b0 uip_arp_arpin 00001c74 g F .text 00000014 ComGetActiveInterfaceMaxTxLen -00005028 g F .text 0000006c UartReceivePacket +0000502c g F .text 0000006c UartReceivePacket 0000018c g F .text 00000008 FileGetFirmwareFilenameHook 000003e4 g F .text 00000060 EthernetMACAddrSet -00004cf4 g F .text 00000058 uip_arp_timer +00004cf8 g F .text 00000058 uip_arp_timer 20001058 g O .bss 00000002 uip_listenports 2000105a g O .bss 00000004 uip_draddr 20000000 g .data 00000000 _data 000005c8 g F .text 00000040 EthernetPHYRead -00003f04 g F .text 00000048 f_stat -00001f60 g F .text 00000002 CopInit -00004f8e g F .text 00000004 CpuReset +00003f08 g F .text 00000048 f_stat +00001f64 g F .text 00000002 CopInit +00004f92 g F .text 00000004 CpuReset 00001278 g F .text 00000024 SSIDisable -00005098 g F .text 00000004 NvmWrite -00004f40 g F .text 00000030 CpuStartUserProgram -00002d72 g F .text 00000018 clust2sect +0000509c g F .text 00000004 NvmWrite +00004f44 g F .text 00000030 CpuStartUserProgram +00002d76 g F .text 00000018 clust2sect 200018ac g .bss 00000000 _estack 0000038c g F .text 00000058 EthernetConfigSet -000053d4 g F .text 00000048 FlashVerifyChecksum -000025ec g F .text 0000003c NetTransmitPacket +000053d8 g F .text 00000048 FlashVerifyChecksum +000025f0 g F .text 0000003c NetTransmitPacket 20000008 g .data 00000000 _edata -0000206c g F .text 00000014 FileIsIdle -00003b80 g F .text 00000192 f_write +00002070 g F .text 00000014 FileIsIdle +00003b84 g F .text 00000192 f_write 00000000 g O .text 000000f0 _vectab 0000073c g F .text 00000060 FlashUserGet 00000f58 g F .text 00000034 GPIOPinTypeUART -000038e0 g F .text 00000140 f_open +000038e4 g F .text 00000140 f_open 00001764 g F .text 000000c0 disk_write 00000ef0 g F .text 00000034 GPIOPinTypeGPIOOutput 00000200 g F .text 00000048 FileFirmwareUpdateLogHook 20000004 g O .data 00000004 __ctype_ptr__ 00001c94 g F .text 00000004 ComIsConnected 00000534 g F .text 00000038 EthernetIntDisable -00005f54 g O .text 00000101 _ctype_ +00005f58 g O .text 00000101 _ctype_ 00000594 g F .text 00000034 EthernetIntClear 00000154 g F .text 00000038 FileIsFirmwareUpdateRequestedHook 00001158 g F .text 00000020 UARTBusy -00004224 g F .text 0000002c uip_init +00004228 g F .text 0000002c uip_init 00001c60 g F .text 00000014 ComGetActiveInterfaceMaxRxLen -00002628 g F .text 000000a0 NetReceivePacket +0000262c g F .text 000000a0 NetReceivePacket 00000d3c g F .text 00000058 GPIODirModeSet 000016e0 g F .text 00000084 disk_read -00001efc g F .text 00000044 BackDoorCheck +00001efc g F .text 00000048 BackDoorCheck 200016aa g .bss 00000000 _stack 2000105e g O .bss 00000004 uip_netmask 20001062 g O .bss 00000004 uip_hostaddr -000040a8 g F .text 0000003c ff_convert -00005100 g F .text 00000010 TimerGet -000026c8 g F .text 00000064 NetApp +000040ac g F .text 0000003c ff_convert +00005104 g F .text 00000010 TimerGet +000026cc g F .text 00000064 NetApp 00001010 g F .text 000000d0 UARTConfigSetExpClk -0000258c g F .text 00000060 NetInit +00002590 g F .text 00000060 NetInit 000009ec g F .text 00000150 SysCtlClockSet 00000d94 g F .text 00000104 GPIOPadConfigSet -000050b8 g F .text 00000020 TimerInit +000050bc g F .text 00000020 TimerInit 20001066 g O .bss 00000642 uip_buf 00000608 g F .text 00000050 FlashClear -00004bec g F .text 00000024 uip_send +00004bf0 g F .text 00000024 uip_send 200016a8 g O .bss 00000002 uip_slen 00000194 g F .text 00000028 FileFirmwareUpdateStartedHook 00000fac g F .text 00000030 UARTEnable diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Boot/blt_conf.h b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Boot/blt_conf.h index c4a483b2..aad18f9d 100644 --- a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Boot/blt_conf.h +++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_GCC/Boot/blt_conf.h @@ -123,6 +123,26 @@ #define BOOT_COM_NET_NETMASK_HOOK_ENABLE (0) +/**************************************************************************************** +* B A C K D O O R C O N F I G U R A T I O N +****************************************************************************************/ +#if (BOOT_COM_NET_ENABLE > 0) +/* Override the default time that the backdoor is open if firmware updates via TCP/IP + * are supported. in this case a reactivation of the bootloader results in a re- + * initialization of the ethernet MAC. when directly connected to the ethernet port of + * a PC this will go relatively fast (depending on what MS Windows is being used), but + * when connected to the network via a router this can take several seconds. feel free to + * shorten/lengthen this time for finetuning. the only downside of a long backdoor open + * time is that the starting of the user program will also be delayed for this time. + * + * Also note that when the target is directly connected to the ethernet port of a PC, + * the checkbox "Automatically retry socket connection" should be checked in the + * Microboot settings. if connection via a router the uncheck this checkbox. + */ +#define BACKDOOR_ENTRY_TIMEOUT_MS (10000) +#endif + + /**************************************************************************************** * F I L E S Y S T E M I N T E R F A C E C O N F I G U R A T I O N ****************************************************************************************/ diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Boot/bin/openbtl_ek_lm3s6965.out b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Boot/bin/openbtl_ek_lm3s6965.out index 4011d2b9..91679d57 100644 Binary files a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Boot/bin/openbtl_ek_lm3s6965.out and b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Boot/bin/openbtl_ek_lm3s6965.out differ diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Boot/bin/openbtl_ek_lm3s6965.sim b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Boot/bin/openbtl_ek_lm3s6965.sim index 5519d005..2e6c5386 100644 Binary files a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Boot/bin/openbtl_ek_lm3s6965.sim and b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Boot/bin/openbtl_ek_lm3s6965.sim differ diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Boot/bin/openbtl_ek_lm3s6965.srec b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Boot/bin/openbtl_ek_lm3s6965.srec index b5780416..d206762c 100644 --- a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Boot/bin/openbtl_ek_lm3s6965.srec +++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Boot/bin/openbtl_ek_lm3s6965.srec @@ -1,19 +1,19 @@ S01B00006F70656E62746C5F656B5F6C6D3373363936352E737265632E -S1130000A0180020156C0000D97B0000D97B0000EB -S1130010D97B0000D97B0000D97B0000D97B00008C -S1130020D97B0000D97B0000D97B0000D97B00007C -S1130030D97B0000D97B0000D97B0000D97B00006C -S1130040D97B0000D97B0000D97B0000D97B00005C -S1130050D97B0000D97B0000D97B0000D97B00004C -S1130060D97B0000D97B0000D97B0000D97B00003C -S1130070D97B0000D97B0000D97B0000D97B00002C -S1130080D97B0000D97B0000D97B0000D97B00001C -S1130090D97B0000D97B0000D97B0000D97B00000C -S11300A0D97B0000D97B0000D97B0000D97B0000FC -S11300B0D97B0000D97B0000D97B0000D97B0000EC -S11300C0D97B0000D97B0000D97B0000D97B0000DC -S11300D0D97B0000D97B0000D97B0000D97B0000CC -S11300E0D97B0000D97B0000D97B0000D97B0000BC +S1130000A0180020156C0000DD7B0000DD7B0000E3 +S1130010DD7B0000DD7B0000DD7B0000DD7B00007C +S1130020DD7B0000DD7B0000DD7B0000DD7B00006C +S1130030DD7B0000DD7B0000DD7B0000DD7B00005C +S1130040DD7B0000DD7B0000DD7B0000DD7B00004C +S1130050DD7B0000DD7B0000DD7B0000DD7B00003C +S1130060DD7B0000DD7B0000DD7B0000DD7B00002C +S1130070DD7B0000DD7B0000DD7B0000DD7B00001C +S1130080DD7B0000DD7B0000DD7B0000DD7B00000C +S1130090DD7B0000DD7B0000DD7B0000DD7B0000FC +S11300A0DD7B0000DD7B0000DD7B0000DD7B0000EC +S11300B0DD7B0000DD7B0000DD7B0000DD7B0000DC +S11300C0DD7B0000DD7B0000DD7B0000DD7B0000CC +S11300D0DD7B0000DD7B0000DD7B0000DD7B0000BC +S11300E0DD7B0000DD7B0000DD7B0000DD7B0000AC S11300F0044B9D46C046C046C046C04605F014FEAB S113010006F012FFA018002003E00B780370491CCE S1130110401C13005A1E002BF7D1704701E00170F8 @@ -345,7 +345,7 @@ S113156020120843E06094F81F0294F81E12090444 S113157051EA006094F81D1250EA012094F81C12FC S1131580084320612670DFF8D8090088401CDFF882 S1131590D0190880E0800020206300202071002002 -S11315A0F2BD0000A87B000080B500280BD00168C4 +S11315A0F2BD0000AC7B000080B500280BD00168C0 S11315B0002908D001680978002904D00168C98885 S11315C08288914201D0092008E00068407800F048 S11315D061FFC00701D5032000E0002002BDC0B2B6 @@ -376,7 +376,7 @@ S113175019D1A57139000098FFF76BF82061F87F63 S1131760B97F090451EA0060797F50EA0120397F8A S11317700843E0600020A0600020A0610098206081 S11317800098C088A0803000C0B20DB0BDE8F083DE -S1131790E87B000018760000247C00002DE9F04767 +S1131790EC7B00001C760000287C00002DE9F0475B S11317A0050016001F000C00002038602800FFF719 S11317B0FBFEC0B2002801D0C0B2E7E0A879000661 S11317C001D50220E2E0A879C00701D40720DDE0BA @@ -654,8 +654,8 @@ S11328B032F8112080B29042F4D111F18000C1B2FB S11328C0080080B27047002100E0491C0B4A32F82E S11328D01120002A05D0094A32F8112080B2904212 S11328E0F3D1064A32F81120002A03D0044830F804 -S11328F01100FFE780B27047587400009870000020 -S113290078720000B0F1402F5BD0DFF838138842B2 +S11328F01100FFE780B270475C7400009C70000018 +S11329007C720000B0F1402F5BD0DFF838138842AE S113291057D0DFF83413884253D0DFF8301388429D S11329204FD0DFF82C1388424BD0DFF828138842AD S113293047D0DFF82413884243D0DFF820138842BD @@ -720,7 +720,7 @@ S1132CD00F4800F0A3FD02222900C9B22000FFF72B S1132CE075FE082301222900C9B22000FFF7AAFEBD S1132CF031BD0000000006400010064000200640E0 S1132D000030064000400640005006400060064087 -S1132D1084780000DFF8C01188420BD0DFF8BC11C2 +S1132D1088780000DFF8C01188420BD0DFF8BC11BE S1132D20884207D0DFF8B811884203D0DFF8B41125 S1132D30884201D1012000E00020C0B270472DE993 S1132D40F84304000F00150099462000FFF7E2FF46 @@ -749,7 +749,7 @@ S1132EA02521114800F0BAFCE0688007FCD5A56034 S1132EB031BD38B504000D002000FFF72BFF0028BA S1132EC004D140F27F21084800F0A8FCE0684007E4 S1132ED0FCD5A068286031BD00800040009000400F -S1132EE000A0004000B00040E0780000DFF8DC13F0 +S1132EE000A0004000B00040E4780000DFF8DC13EC S1132EF0884200F04A81DFF8D813884200F0458107 S1132F00DFF8D013884200F04081DFF8CC13884208 S1132F1000F03B81DFF8C413884200F03681DFF80B @@ -884,11 +884,11 @@ S113371010D5DFF88430134013F1004F03D0002A92 S113372008D4090506D44000C2F38651491CB0FBF5 S1133730F1F00AE0C2F3C551491CB0FBF1F004E01A S1133740C1F3C351491CB0FBF1F030BC7047000019 -S1133750C4770000055C00F000E50F4000E60F4070 -S1133760007C00000C7C000060E00F4058E00F403B +S1133750C8770000055C00F000E50F4000E60F406C +S1133760047C0000107C000060E00F4058E00F4033 S113377050E00F4000E00F400000FF7070E00F4089 S11337808FFFFF7F30000080FCFF3FF80300C0077D -S113379000004040987600000008008064E00F407C +S1133790000040409C7600000008008064E00F4078 S11337A0C0E1E4000000011000000310001BB7009A S11337B00024F40070383900C0C62D0000093D0013 S11337C080B500F00EF811484CF24F3101601048FA @@ -1181,7 +1181,7 @@ S11349A00021C1730020264948752549087525480A S11349B00088401C2349088021482249098889B27B S11349C0090A81741E481F490988C1741C480021C2 S11349D00183FEF79FFFC04319490883164800214D -S11349E00170FFF772B800005C1600204C7C0000D8 +S11349E00170FFF772B800005C160020507C0000D4 S11349F080B2010A51EA002080B2704780B50129D3 S1134A000CDB114A118011490968884206D00E490D S1134A100A8801000D48006800F01CF901BD00007F @@ -1318,7 +1318,7 @@ S1135230886410BD80B541680E48806C01F08FF918 S1135240002803D13120FFF792FE06E00948FF2130 S1135250C17008480121A0F8441001BD10B5040034 S113526001F071F90348FF21C17002480121A0F83F -S1135270441010BD1C1500201F150020447C0000A4 +S1135270441010BD1C1500201F150020487C0000A0 S1135280201500202315002080B53120FFF76FFE84 S113529001BDFF0080B5DFF8C8030078401CDFF8CB S11352A0C0130870DFF8B003002101701EE0DFF8BE @@ -1383,8 +1383,8 @@ S1135640FFF708FB0A4808218181084800880E30CA S11356500649088001BD000095160020BC140020F6 S11356609716002098160020961600208216002017 S1135670040000205C1600201A00002020000020F6 -S113568024000020341600200A000020507C000072 -S11356903C7C0000641600207C160020601600206C +S113568024000020341600200A000020547C00006E +S1135690407C0000641600207C1600206016002068 S11356A0681600203A00002062B38B0708D0521E0F S11356B011F8013B00F8013B00F024808B07F6D180 S11356C0830740F0208000BF103A07D330B4B1E81C @@ -1447,7 +1447,7 @@ S1135A40A2411148FDF7EAFE256031BD38B50400D6 S1135A500D000C48844204D040F212510A48FDF76C S1135A60DDFE206AC007FCD4EDB2E80010F0F800B7 S1135A7050F001002062206AC007FCD4206B80B281 -S1135A8032BD00000080044004770000A0252600F9 +S1135A8032BD00000080044008770000A0252600F5 S1135A90E9F1FEFF10B50400A00504D09C21DFF855 S1135AA06001FDF7BBFEDFF85C0140F601210160F7 S1135AB0DFF854010460DFF85401DFF85411016089 @@ -1471,7 +1471,7 @@ S1135BC02DFE002C04D140F285210D48FDF726FE60 S1135BD01748006810F0E04F06D0154800681549D2 S1135BE00840B0F1805F02D15FF0FF3006E0124858 S1135BF000682860114800682060002032BD000061 -S1135C006477000014D00F4000D00F4008D00F403C +S1135C006877000014D00F4000D00F4008D00F4038 S1135C10020042A40CD00F40A0E10F4000D10F407D S1135C2030D00F4020D00F40010042A404D00F40D8 S1135C3000E00F400000FF70E0E10F40E4E10F409E @@ -1596,13 +1596,13 @@ S113639000F08BF810EB08003060AD1CB7F1050875 S11363A0002C0DD0002606E0280000F07EF8B6B2DE S11363B03055AD1C761CB6B20FFA88F84645F3DBAF S11363C0FFE7404600B2BDE8F08100008F160020D0 -S11363D048060020BC790000707A0000487A00006A -S11363E07C0800202C7C0000347C0000947A00009F -S11363F0EC7900002C160020D0120020501400204C -S1136400F47B0000EC150020247B0000EE15002036 -S1136410F0150020F2150020B87A0000D0130020F7 -S1136420DC7A0000B87B0000787B0000407B000031 -S1136430907B00001C7A000080B5010011F00F0071 +S11363D048060020C0790000747A00004C7A00005E +S11363E07C080020307C0000387C0000987A000093 +S11363F0F07900002C160020D01200205014002048 +S1136400F87B0000EC150020287B0000EE1500202E +S1136410F0150020F2150020BC7A0000D0130020F3 +S1136420E07A0000BC7B00007C7B0000447B000021 +S1136430947B0000207A000080B5010011F00F0069 S11364403030C9B20A2901DBC01D02E0C0B200F03D S1136450B1F9C0B202BD38B504000D00E4B22009A0 S1136460FFF7EAFF287014F00F00FFF7E5FF6870EC @@ -1642,7 +1642,7 @@ S1136670DEE710B50400104800F0EFFB10F1010F45 S113668002D02070012000E0002010BD80B5010080 S1136690C9B2094800F0F6FB002803D1002007E046 S11366A0FDF7C9F8044800F0C2FB0028F8D0012027 -S11366B002BD00000100001000C00040807900000D +S11366B002BD00000100001000C000408479000009 S11366C091160020681500209016002069150020FE S11366D000B589B000A8202100F018FC00A93148B9 S11366E0FBF7AAFB002808D10098002805D09DF8E4 @@ -1657,7 +1657,7 @@ S11367600400114890F82402012817D10E49200092 S1136770FBF73DFC002811D50B48002180F82412BA S11367800948FBF770FA09E02178094800F07AFB20 S1136790074800F04CFB0028FAD0641C207800283D -S11367A0F2D110BD5C7B0000A00A0020C87B000071 +S11367A0F2D110BD607B0000A00A0020CC7B000069 S11367B000C0004080B500F0ACFB02BD30380A28B0 S11367C001D2012000E00020C0B27047DFF8380495 S11367D05FF0FF310160DFF834045FF0FF310160E6 @@ -1728,7 +1728,7 @@ S1136BD00400002500E06D1CEDB2102D11D2FCF76D S1136BE02AFEEDB20C200A4900FB0510007AE4B23B S1136BF0A042F0D1EDB20C20054900FB051040681D S1136C0000E0002032BD0000C80C0020CC0E0020A3 -S1136C1058750000044B9D46C046C046C046C04659 +S1136C105C750000044B9D46C046C046C046C04655 S1136C20FFF786F800F080F9A018002062F30F2225 S1136C3062F31F42401810F0030308D0C91A1FD38F S1136C40DB0748BF00F8012D28BF20F8022D1300F0 @@ -1774,7 +1774,7 @@ S1136EB010B504002000FFF7EDFE002804D140F2D5 S1136EC03B510C48FCF7AAFCA069C0F3C00010F0C9 S1136ED0010010BD00C0004000D0004000E00040B0 S1136EE000F000400000014000100140002001407B -S1136EF0003001402478000000E00F400000FF70E3 +S1136EF0003001402878000000E00F400000FF70DF S1136F000000011000000310FEFCFFFF002200F04F S1136F1017B810B50400200000F02BF8002801D0A9 S1136F20203CFFE7200010BD00F02BF8002801D022 @@ -1785,7 +1785,7 @@ S1136F60042BC90728BF20F8022B48BF00F8012BC7 S1136F7000BD61381A2801D2012000E00020C0B20F S1136F80704701207047000010B507497944183153 S1136F90064C7C44163404E00A68081D51188847DE -S1136FA00146A142F8D110BD580B0000780B000037 +S1136FA00146A142F8D110BD5C0B00007C0B00002F S1136FB080B500F005F800F017F800F023F8FCE7BE S1136FC080B50648FCF7C4F90548FCF748F90321E5 S1136FD05FF04020FBF772FE01BD00008003C0019A @@ -1793,200 +1793,200 @@ S1136FE00100002000F01AB880B5FCF723FCFCF780 S1136FF0E7FBFFF7ACFAFEF7ABFEFEF721FE00F06D S113700013F801BD80B5FCF716FCFCF7EEFBFEF7A8 S1137010D5FEFEF72EFE00F012F801BD07463846F5 -S113702000F030F8FBE7000080B51448012101703E -S1137030FCF7E5FB1249086000F001F801BD80B5DA -S1137040FEF782FE012818D0FEF795FE002814D022 -S11370500A480078012810D1FCF7D1FB08490968D7 -S113706001F2EE21884208D3044800210170FEF7A2 -S11370708BFE002801D1FFF73DFA01BD8E160020DA -S11370804416002080B5C046C046024A11001820AC -S1137090ABBEFBE7260002006100620063006400EF -S11370A0650066006700680069006A006B006C0098 -S11370B06D006E006F007000710072007300740048 -S11370C0750076007700780079007A00A100A200AC -S11370D0A300A500AC00AF00E000E100E200E30083 -S11370E0E400E500E600E700E800E900EA00EB0060 -S11370F0EC00ED00EE00EF00F000F100F200F30010 -S1137100F400F500F600F800F900FA00FB00FC00BA -S1137110FD00FE00FF000101030105010701090153 -S11371200B010D010F0111011301150117011901C3 -S11371301B011D011F012101230125012701290133 -S11371402B012D012F0131013301350137013A01A2 -S11371503C013E01400142014401460148014B010A -S11371604D014F01510153015501570159015B0173 -S11371705D015F01610163016501670169016B01E3 -S11371806D016F0171017301750177017A017C0151 -S11371907E019201B103B203B303B403B503B60392 -S11371A0B703B803B903BA03BB03BC03BD03BE03EF -S11371B0BF03C003C103C303C403C503C603C7039A -S11371C0C803C903CA033004310432043304340449 -S11371D0350436043704380439043A043B043C04C7 -S11371E03D043E043F044004410442044304440477 -S11371F0450446044704480449044A044B044C0427 -S11372004D044E044F0451045204530454045504D1 -S113721056045704580459045A045B045C045E047D -S11372205F047021712172217321742175217621EB -S11372307721782179217A217B217C217D217E216E -S11372407F2141FF42FF43FF44FF45FF46FF47FFC5 -S113725048FF49FF4AFF4BFF4CFF4DFF4EFF4FFFD6 -S113726050FF51FF52FF53FF54FF55FF56FF57FF86 -S113727058FF59FF5AFF00004100420043004400F8 -S1137280450046004700480049004A004B004C00B6 -S11372904D004E004F005000510052005300540066 -S11372A0550056005700580059005A002100E0FFCD -S11372B0E1FFE5FFE2FFE3FFC000C100C200C3003D -S11372C0C400C500C600C700C800C900CA00CB007E -S11372D0CC00CD00CE00CF00D000D100D200D3002E -S11372E0D400D500D600D800D900DA00DB00DC00D9 -S11372F0DD00DE007801000102010401060108013D -S11373000A010C010E0110011201140116011801E9 -S11373101A011C011E012001220124012601280159 -S11373202A012C012E0130013201340136013901C8 -S11373303B013D013F0141014301450147014A0130 -S11373404C014E01500152015401560158015A0199 -S11373505C015E01600162016401660168016A0109 -S11373606C016E01700172017401760179017B0177 -S11373707D01910191039203930394039503960372 -S11373809703980399039A039B039C039D039E030D -S11373909F03A003A103A303A403A503A603A703B8 -S11373A0A803A903AA031004110412041304140467 -S11373B0150416041704180419041A041B041C04E5 -S11373C01D041E041F042004210422042304240495 -S11373D0250426042704280429042A042B042C0445 -S11373E02D042E042F0401040204030404040504E0 -S11373F006040704080409040A040B040C040E041C -S11374000F046021612162216321642165216621C9 -S11374106721682169216A216B216C216D216E210C -S11374206F2121FF22FF23FF24FF25FF26FF27FFD3 -S113743028FF29FF2AFF2BFF2CFF2DFF2EFF2FFFF4 -S113744030FF31FF32FF33FF34FF35FF36FF37FFA4 -S113745038FF39FF3AFF0000C700FC00E900E200F2 -S1137460E400E000E500E700EA00EB00E800EF00DC -S1137470EE00EC00C400C500C900E600C600F4003C -S1137480F600F200FB00F900FF00D600DC00A200C9 -S1137490A300A500A7209201E100ED00F300FA008B -S11374A0F100D100AA00BA00BF001023AC00BD0057 -S11374B0BC00A100AB00BB009125922593250225B9 -S11374C024256125622556255525632551255725F3 -S11374D05D255C255B251025142534252C251C25CC -S11374E000253C255E255F255A25542569256625FA -S11374F0602550256C256725682564256525592553 -S11375005825522553256B256A2518250C258825D1 -S113751084258C2590258025B103DF009303C003C7 -S1137520A303C303B500C403A6039803A903B403C8 -S11375301E22C603B50329226122B10065226422FA -S113754020232123F7004822B0001922B7001A2271 -S11375507F20B200A025A0000080000000200000D1 -S11375600400000000A0000000200000050000004E -S113757000C00000002000000600000000E0000041 -S113758000200000070000000000010000200000AF -S11375900800000000200100002000000900000095 -S11375A000400100002000000A000000006001000B -S11375B0002000000B0000000080010000200000FB -S11375C00C00000000A00100002000000D000000DD -S11375D000C00100002000000E00000000E00100D7 -S11375E0002000000F0000000000020000800000E6 -S11375F01000000000800200008000001100000064 -S1137600000003000080000012000000008003005E -S11376100080000013000000809A90418E418F800A -S11376204545454949498E8F9092924F994F5555FA -S113763059999A9B9C9D9E9F41494F55A5A5A6A7E4 -S1137640A8A9AAABAC21AEAFB0B1B2B3B4B5B6B7CA -S1137650B8B9BABBBCBDBEBFC0C1C2C3C4C5C6C72E -S1137660C8C9CACBCCCDCECFD0D1D2D3D4D5D6D71E -S1137670D8D9DADBDCDDDEDFE0E1E2E3E4E5E6E70E -S1137680E8E9EAEBECEDEEEFF0F1F2F3F4F5F6F7FE -S1137690F8F9FAFBFCFDFEFF40420F0000201C003D -S11376A080841E0000802500999E3600004038002A -S11376B000093D0000803E0000004B00404B4C00A0 -S11376C000204E00808D5B0000C05D0000807000D3 -S11376D000127A0000007D0080969800001BB7001D -S11376E00080BB00C0E8CE00647ADA000024F40015 -S11376F00000FA0080A81201002D310100366E014D -S113770040787D01433A5C576F726B5C736F6674AB -S1137710776172655C4F70656E424C545C54617263 -S11377206765745C44656D6F5C41524D434D335FD6 -S11377304C4D33535F454B5F4C4D335336393635DF -S11377405F4941525C426F6F745C6C69625C647245 -S1137750697665726C69625C65746865726E65747D -S11377602E630000433A5C576F726B5C736F6674F0 -S1137770776172655C4F70656E424C545C54617203 -S11377806765745C44656D6F5C41524D434D335F76 -S11377904C4D33535F454B5F4C4D3353363936357F -S11377A05F4941525C426F6F745C6C69625C6472E5 -S11377B0697665726C69625C666C6173686C696237 -S11377C02E630000433A5C576F726B5C736F667490 -S11377D0776172655C4F70656E424C545C546172A3 -S11377E06765745C44656D6F5C41524D434D335F16 -S11377F04C4D33535F454B5F4C4D3353363936351F -S11378005F4941525C426F6F745C6C69625C647284 -S1137810697665726C69625C73797363746C2E63E8 -S113782000000000433A5C576F726B5C736F6674C0 -S1137830776172655C4F70656E424C545C54617242 -S11378406765745C44656D6F5C41524D434D335FB5 -S11378504C4D33535F454B5F4C4D335336393635BE -S11378605F4941525C426F6F745C6C69625C647224 -S1137870697665726C69625C756172746C69622E9A -S113788063000000433A5C576F726B5C736F6674FD -S1137890776172655C4F70656E424C545C546172E2 -S11378A06765745C44656D6F5C41524D434D335F55 -S11378B04C4D33535F454B5F4C4D3353363936355E -S11378C05F4941525C426F6F745C6C69625C6472C4 -S11378D0697665726C69625C6770696F2E6300001B -S11378E0433A5C576F726B5C736F66747761726551 -S11378F05C4F70656E424C545C5461726765745C95 -S113790044656D6F5C41524D434D335F4C4D335371 -S11379105F454B5F4C4D3353363936355F494152E1 -S11379205C426F6F745C6C69625C647269766572E8 -S11379306C69625C7373692E63000000433A5C57A0 -S11379406F726B5C736F6674776172655C4F7065A0 -S11379506E424C545C5461726765745C536F75720B -S113796063655C41524D434D335F4C4D33535C4929 -S113797041525C766563746F72732E63000000007D -S1137980433A5C576F726B5C736F667477617265B0 -S11379905C4F70656E424C545C5461726765745CF4 -S11379A0536F757263655C41524D434D335F4C4D6B -S11379B033535C756172742E63000000433A5C5764 -S11379C06F726B5C736F6674776172655C4F706520 -S11379D06E424C545C5461726765745C536F75728B -S11379E063655C66696C652E6300000050617273A8 -S11379F0696E67206669726D776172652066696C6D -S1137A006520746F206F627461696E2065726173A2 -S1137A10652073697A652E2E2E0000004669726D0A -S1137A207761726520757064617465207375636332 -S1137A3065737366756C6C7920636F6D706C6574B7 -S1137A4065640A0D000000004F70656E696E672062 -S1137A506669726D776172652066696C6520666F10 -S1137A60722072656164696E672E2E2E000000001C -S1137A704669726D77617265207570646174652002 -S1137A807265717565737420646574656374656487 -S1137A900A0D00005374617274696E67207468651E -S1137AA02070726F6772616D6D696E6720736571A6 -S1137AB075656E63650A0D0052656164696E6720C1 -S1137AC06C696E652066726F6D2066696C652E2E1A -S1137AD02E4552524F520A0D00000000496E766145 -S1137AE06C696420636865636B73756D20666F757C -S1137AF06E642E2E2E4552524F520A0D0000000085 -S1137B0063D1FFFF9816000004000020000000006D -S1137B100BA5FFFF040000003C0100000000002052 -S1137B20000000002062797465732066726F6D2016 -S1137B306D656D6F727920617420307800000000EB -S1137B4057726974696E672070726F6772616D2015 -S1137B50636865636B73756D2E2E2E002F64656DDF -S1137B606F70726F675F656B5F6C6D337336393638 -S1137B70352E737265630000206279746573207416 -S1137B806F206D656D6F727920617420307800000C -S1137B90436C6F73696E67206669726D7761726595 -S1137BA02066696C650A0D0001030507090E1012B1 -S1137BB01416181C1E00000050726F6772616D6D00 -S1137BC0696E6720000000002F626F6F746C6F672E -S1137BD02E7478740000000080B541210148FBF741 -S1137BE01DFE01BD3C790000222A3A3C3E3F7C7FC9 -S1137BF00000000045726173696E67200000000098 -S1137C0040E00F4044E00F4048E00F4000E10F40E7 -S1137C1004E10F4008E10F40C046C046C046C046DC -S1137C20FFF782F92B2C3B3D5B5D00004552524F20 -S1137C30520A0D004F4B0A0D00000000FFFFFFFF2A -S1137C40FFFF00004F70656E424C540000000000BE -S10B7C50FFFFFFFF0401000027 -S9037C1967 +S113702000F032F8FBE7000080B51548012101703B +S1137030FCF7E5FB1349086000F001F801BD80B5D9 +S1137040FEF782FE012819D0FEF795FE002815D020 +S11370500B480078012811D1FCF7D1FB09490968D4 +S113706001F51C511031884208D3054800210170F4 +S1137070FEF78AFE002801D1FFF73CFA01BD0000AB +S11370808E1600204416002080B5C046C046024A31 +S113709011001820ABBEFBE726000200610062006D +S11370A063006400650066006700680069006A00A8 +S11370B06B006C006D006E006F0070007100720058 +S11370C073007400750076007700780079007A0008 +S11370D0A100A200A300A500AC00AF00E000E10005 +S11370E0E200E300E400E500E600E700E800E90070 +S11370F0EA00EB00EC00ED00EE00EF00F000F10020 +S1137100F200F300F400F500F600F800F900FA00CC +S1137110FB00FC00FD00FE00FF000101030105016E +S1137120070109010B010D010F01110113011501E3 +S1137130170119011B011D011F0121012301250153 +S1137140270129012B012D012F01310133013501C3 +S113715037013A013C013E0140014201440146012C +S113716048014B014D014F01510153015501570194 +S113717059015B015D015F01610163016501670103 +S113718069016B016D016F01710173017501770173 +S11371907A017C017E019201B103B203B303B4030B +S11371A0B503B603B703B803B903BA03BB03BC03FF +S11371B0BD03BE03BF03C003C103C303C403C503AC +S11371C0C603C703C803C903CA0330043104320425 +S11371D033043404350436043704380439043A04D7 +S11371E03B043C043D043E043F0440044104420487 +S11371F043044404450446044704480449044A0437 +S11372004B044C044D044E044F04510452045304E3 +S11372105404550456045704580459045A045B048E +S11372205C045E045F047021712172217321742156 +S1137230752176217721782179217A217B217C217E +S11372407D217E217F2141FF42FF43FF44FF45FF13 +S113725046FF47FF48FF49FF4AFF4BFF4CFF4DFFE6 +S11372604EFF4FFF50FF51FF52FF53FF54FF55FF96 +S113727056FF57FF58FF59FF5AFF000041004200D4 +S113728043004400450046004700480049004A00C6 +S11372904B004C004D004E004F0050005100520076 +S11372A053005400550056005700580059005A0026 +S11372B02100E0FFE1FFE5FFE2FFE3FFC000C100C2 +S11372C0C200C300C400C500C600C700C800C9008E +S11372D0CA00CB00CC00CD00CE00CF00D000D1003E +S11372E0D200D300D400D500D600D800D900DA00EB +S11372F0DB00DC00DD00DE00780100010201040196 +S1137300060108010A010C010E0110011201140109 +S1137310160118011A011C011E0120012201240179 +S1137320260128012A012C012E01300132013401E9 +S1137330360139013B013D013F0141014301450152 +S113734047014A014C014E015001520154015601BA +S113735058015A015C015E01600162016401660129 +S113736068016A016C016E01700172017401760199 +S113737079017B017D0191019103920393039403AD +S1137380950396039703980399039A039B039C031D +S11373909D039E039F03A003A103A303A403A503CA +S11373A0A603A703A803A903AA0310041104120443 +S11373B013041404150416041704180419041A04F5 +S11373C01B041C041D041E041F04200421042204A5 +S11373D023042404250426042704280429042A0455 +S11373E02B042C042D042E042F0401040204030492 +S11373F00404050406040704080409040A040B042D +S11374000C040E040F0460216121622163216421B4 +S1137410652166216721682169216A216B216C211C +S11374206D216E216F2121FF22FF23FF24FF25FF01 +S113743026FF27FF28FF29FF2AFF2BFF2CFF2DFF04 +S11374402EFF2FFF30FF31FF32FF33FF34FF35FFB4 +S113745036FF37FF38FF39FF3AFF0000C700FC0052 +S1137460E900E200E400E000E500E700EA00EB00E8 +S1137470E800EF00EE00EC00C400C500C900E6001F +S1137480C600F400F600F200FB00F900FF00D6008D +S1137490DC00A200A300A500A7209201E100ED00FA +S11374A0F300FA00F100D100AA00BA00BF001023D3 +S11374B0AC00BD00BC00A100AB00BB00912592252F +S11374C09325022524256125622556255525632506 +S11374D0512557255D255C255B251025142534256C +S11374E02C251C2500253C255E255F255A25542581 +S11374F069256625602550256C2567256825642542 +S1137500652559255825522553256B256A251825A7 +S11375100C25882584258C2590258025B103DF0042 +S11375209303C003A303C303B500C403A6039803D2 +S1137530A903B4031E22C603B50329226122B100A4 +S11375406522642220232123F7004822B000192257 +S1137550B7001A227F20B200A025A00000800000FE +S1137560002000000400000000A000000020000033 +S11375700500000000C0000000200000060000001C +S113758000E00000002000000700000000000100EF +S1137590002000000800000000200100002000007E +S11375A00900000000400100002000000A00000063 +S11375B000600100002000000B00000000800100BA +S11375C0002000000C00000000A0010000200000CA +S11375D00D00000000C00100002000000E000000AB +S11375E000E00100002000000F0000000000020085 +S11375F000800000100000000080020000800000F5 +S113760011000000000003000080000012000000D0 +S1137610008003000080000013000000809A904165 +S11376208E418F804545454949498E8F9092924FAE +S1137630994F555559999A9B9C9D9E9F41494F55E9 +S1137640A5A5A6A7A8A9AAABAC21AEAFB0B1B2B309 +S1137650B4B5B6B7B8B9BABBBCBDBEBFC0C1C2C36E +S1137660C4C5C6C7C8C9CACBCCCDCECFD0D1D2D35E +S1137670D4D5D6D7D8D9DADBDCDDDEDFE0E1E2E34E +S1137680E4E5E6E7E8E9EAEBECEDEEEFF0F1F2F33E +S1137690F4F5F6F7F8F9FAFBFCFDFEFF40420F00A3 +S11376A000201C0080841E0000802500999E360066 +S11376B00040380000093D0000803E0000004B00FF +S11376C0404B4C0000204E00808D5B0000C05D00EC +S11376D00080700000127A0000007D0080969800FF +S11376E0001BB7000080BB00C0E8CE00647ADA005B +S11376F00024F4000000FA0080A81201002D3101DA +S113770000366E0140787D01433A5C576F726B5CC2 +S1137710736F6674776172655C4F70656E424C542A +S11377205C5461726765745C44656D6F5C41524D75 +S1137730434D335F4C4D33535F454B5F4C4D335397 +S1137740363936355F4941525C426F6F745C6C69FF +S1137750625C6472697665726C69625C65746865A2 +S1137760726E65742E630000433A5C576F726B5CF3 +S1137770736F6674776172655C4F70656E424C54CA +S11377805C5461726765745C44656D6F5C41524D15 +S1137790434D335F4C4D33535F454B5F4C4D335337 +S11377A0363936355F4941525C426F6F745C6C699F +S11377B0625C6472697665726C69625C666C617342 +S11377C0686C69622E630000433A5C576F726B5CAD +S11377D0736F6674776172655C4F70656E424C546A +S11377E05C5461726765745C44656D6F5C41524DB5 +S11377F0434D335F4C4D33535F454B5F4C4D3353D7 +S1137800363936355F4941525C426F6F745C6C693E +S1137810625C6472697665726C69625C73797363C5 +S1137820746C2E6300000000433A5C576F726B5C0B +S1137830736F6674776172655C4F70656E424C5409 +S11378405C5461726765745C44656D6F5C41524D54 +S1137850434D335F4C4D33535F454B5F4C4D335376 +S1137860363936355F4941525C426F6F745C6C69DE +S1137870625C6472697665726C69625C756172746B +S11378806C69622E63000000433A5C576F726B5C54 +S1137890736F6674776172655C4F70656E424C54A9 +S11378A05C5461726765745C44656D6F5C41524DF4 +S11378B0434D335F4C4D33535F454B5F4C4D335316 +S11378C0363936355F4941525C426F6F745C6C697E +S11378D0625C6472697665726C69625C6770696F18 +S11378E02E630000433A5C576F726B5C736F66746F +S11378F0776172655C4F70656E424C545C54617282 +S11379006765745C44656D6F5C41524D434D335FF4 +S11379104C4D33535F454B5F4C4D335336393635FD +S11379205F4941525C426F6F745C6C69625C647263 +S1137930697665726C69625C7373692E630000001A +S1137940433A5C576F726B5C736F667477617265F0 +S11379505C4F70656E424C545C5461726765745C34 +S1137960536F757263655C41524D434D335F4C4DAB +S113797033535C4941525C766563746F72732E6352 +S113798000000000433A5C576F726B5C736F66745F +S1137990776172655C4F70656E424C545C546172E1 +S11379A06765745C536F757263655C41524D434DFA +S11379B0335F4C4D33535C756172742E6300000069 +S11379C0433A5C576F726B5C736F66747761726570 +S11379D05C4F70656E424C545C5461726765745CB4 +S11379E0536F757263655C66696C652E6300000095 +S11379F050617273696E67206669726D7761726532 +S1137A002066696C6520746F206F627461696E20F2 +S1137A1065726173652073697A652E2E2E000000ED +S1137A204669726D77617265207570646174652052 +S1137A307375636365737366756C6C7920636F6DBE +S1137A40706C657465640A0D000000004F70656E0B +S1137A50696E67206669726D776172652066696C0C +S1137A606520666F722072656164696E672E2E2EC2 +S1137A70000000004669726D77617265207570645C +S1137A8061746520726571756573742064657465CD +S1137A90637465640A0D00005374617274696E67DF +S1137AA0207468652070726F6772616D6D696E67AE +S1137AB02073657175656E63650A0D0052656164B6 +S1137AC0696E67206C696E652066726F6D206669E9 +S1137AD06C652E2E2E4552524F520A0D00000000A6 +S1137AE0496E76616C696420636865636B73756D58 +S1137AF020666F756E642E2E2E4552524F520A0D1B +S1137B00000000005FD1FFFF981600000400002071 +S1137B100000000007A5FFFF040000003C01000076 +S1137B200000002000000000206279746573206664 +S1137B30726F6D206D656D6F72792061742030787D +S1137B400000000057726974696E672070726F6775 +S1137B5072616D20636865636B73756D2E2E2E00E4 +S1137B602F64656D6F70726F675F656B5F6C6D33EB +S1137B7073363936352E737265630000206279746A +S1137B80657320746F206D656D6F72792061742048 +S1137B9030780000436C6F73696E67206669726D9C +S1137BA0776172652066696C650A0D00010305073B +S1137BB0090E10121416181C1E00000050726F6774 +S1137BC072616D6D696E6720000000002F626F6F37 +S1137BD0746C6F672E7478740000000080B54121C6 +S1137BE00148FBF71BFE01BD40790000222A3A3C04 +S1137BF03E3F7C7F0000000045726173696E672020 +S1137C000000000040E00F4044E00F4048E00F4017 +S1137C1000E10F4004E10F4008E10F40C046C046B8 +S1137C20C046C046FFF780F92B2C3B3D5B5D00004E +S1137C304552524F520A0D004F4B0A0D00000000EE +S1137C40FFFFFFFFFFFF00004F70656E424C5400C2 +S10F7C5000000000FFFFFFFF0401000023 +S9037C1D63 diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Boot/blt_conf.h b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Boot/blt_conf.h index 34a381c4..3c46baa4 100644 --- a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Boot/blt_conf.h +++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Boot/blt_conf.h @@ -125,6 +125,26 @@ #define BOOT_COM_NET_NETMASK_HOOK_ENABLE (0) +/**************************************************************************************** +* B A C K D O O R C O N F I G U R A T I O N +****************************************************************************************/ +#if (BOOT_COM_NET_ENABLE > 0) +/* Override the default time that the backdoor is open if firmware updates via TCP/IP + * are supported. in this case a reactivation of the bootloader results in a re- + * initialization of the ethernet MAC. when directly connected to the ethernet port of + * a PC this will go relatively fast (depending on what MS Windows is being used), but + * when connected to the network via a router this can take several seconds. feel free to + * shorten/lengthen this time for finetuning. the only downside of a long backdoor open + * time is that the starting of the user program will also be delayed for this time. + * + * Also note that when the target is directly connected to the ethernet port of a PC, + * the checkbox "Automatically retry socket connection" should be checked in the + * Microboot settings. if connection via a router the uncheck this checkbox. + */ +#define BACKDOOR_ENTRY_TIMEOUT_MS (10000) +#endif + + /**************************************************************************************** * F I L E S Y S T E M I N T E R F A C E C O N F I G U R A T I O N ****************************************************************************************/ diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Boot/ide/lm3s6965.dep b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Boot/ide/lm3s6965.dep index 1c52e294..a54257cf 100644 --- a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Boot/ide/lm3s6965.dep +++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Boot/ide/lm3s6965.dep @@ -6,10 +6,58 @@ Debug - $PROJ_DIR$\..\..\..\..\Source\ARMCM3_LM3S\flash.h - $PROJ_DIR$\..\..\..\..\Source\file.h - $PROJ_DIR$\..\..\..\..\Source\ARMCM3_LM3S\nvm.c + $PROJ_DIR$\..\lib\driverlib\cpulib.h + $PROJ_DIR$\..\lib\driverlib\ethernet.h + $PROJ_DIR$\..\lib\driverlib\cpulib.c + $PROJ_DIR$\..\lib\driverlib\debug.h + $PROJ_DIR$\..\lib\driverlib\ethernet.c + $PROJ_DIR$\..\lib\driverlib\flashlib.c + $PROJ_DIR$\..\lib\driverlib\flashlib.h + $PROJ_DIR$\..\lib\driverlib\gpio.c + $PROJ_DIR$\..\lib\driverlib\gpio.h + $PROJ_DIR$\..\lib\driverlib\interrupt.c + $PROJ_DIR$\..\lib\driverlib\interrupt.h + $PROJ_DIR$\..\lib\driverlib\pin_map.h + $PROJ_DIR$\..\lib\driverlib\ssi.c + $PROJ_DIR$\..\lib\driverlib\ssi.h + $PROJ_DIR$\..\lib\driverlib\sysctl.c + $PROJ_DIR$\..\lib\driverlib\sysctl.h + $PROJ_DIR$\..\lib\driverlib\uartlib.c + $PROJ_DIR$\..\lib\driverlib\uartlib.h + $PROJ_DIR$\..\lib\fatfs\ffconf.h + $PROJ_DIR$\..\lib\fatfs\mmc.c + $PROJ_DIR$\..\lib\inc\hw_ethernet.h + $PROJ_DIR$\..\lib\inc\hw_flash.h + $PROJ_DIR$\..\lib\inc\hw_gpio.h + $PROJ_DIR$\..\lib\inc\hw_ints.h + $PROJ_DIR$\..\lib\inc\hw_memmap.h + $PROJ_DIR$\..\obj\uip_arp.o + $PROJ_DIR$\..\obj\uip_timer.o + $PROJ_DIR$\..\obj\uip.o + $PROJ_DIR$\..\obj\netdev.o + $PROJ_DIR$\..\obj\netdev.pbi + $PROJ_DIR$\..\obj\netdev.lst + $PROJ_DIR$\..\lib\inc\hw_nvic.h + $PROJ_DIR$\..\lib\inc\hw_ssi.h + $PROJ_DIR$\..\lib\inc\hw_sysctl.h + $PROJ_DIR$\..\lib\inc\hw_types.h + $PROJ_DIR$\..\lib\inc\hw_uart.h + $PROJ_DIR$\..\lib\uip\clock-arch.c + $PROJ_DIR$\..\lib\uip\clock-arch.h + $PROJ_DIR$\..\lib\uip\netdev.c + $PROJ_DIR$\..\lib\uip\netdev.h + $PROJ_DIR$\..\lib\uip\uip-conf.h + $PROJ_DIR$\..\blt_conf.h + $PROJ_DIR$\..\hooks.c + $PROJ_DIR$\..\main.c + $PROJ_DIR$\..\..\..\..\Source\ARMCM3_LM3S\IAR\vectors.c + $PROJ_DIR$\..\..\..\..\Source\ARMCM3_LM3S\IAR\cstart.s $PROJ_DIR$\..\..\..\..\Source\third_party\fatfs\src\option\unicode.c + $PROJ_DIR$\..\..\..\..\Source\ARMCM3_LM3S\cpu.c + $PROJ_DIR$\..\..\..\..\Source\ARMCM3_LM3S\cpu.h + $PROJ_DIR$\..\..\..\..\Source\ARMCM3_LM3S\flash.c + $PROJ_DIR$\..\..\..\..\Source\ARMCM3_LM3S\flash.h + $PROJ_DIR$\..\..\..\..\Source\ARMCM3_LM3S\nvm.c $PROJ_DIR$\..\..\..\..\Source\ARMCM3_LM3S\nvm.h $PROJ_DIR$\..\..\..\..\Source\ARMCM3_LM3S\timer.c $PROJ_DIR$\..\..\..\..\Source\ARMCM3_LM3S\timer.h @@ -22,6 +70,7 @@ $PROJ_DIR$\..\..\..\..\Source\third_party\fatfs\src\integer.h $PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\clock.h $PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\lc-switch.h + $TOOLKIT_DIR$\inc\c\wchar.h $PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\lc.h $PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\pt.h $PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\uip.c @@ -45,108 +94,20 @@ $PROJ_DIR$\..\..\..\..\Source\cop.c $PROJ_DIR$\..\..\..\..\Source\cop.h $PROJ_DIR$\..\..\..\..\Source\file.c - $PROJ_DIR$\..\obj\led.o - $PROJ_DIR$\..\bin\openbtl_ek_lm3s6965.out - $PROJ_DIR$\..\obj\assert.o - $PROJ_DIR$\..\obj\hooks.o - $PROJ_DIR$\..\obj\com.o - $PROJ_DIR$\..\obj\cpu.pbi - $PROJ_DIR$\..\obj\flash.pbi - $TOOLKIT_DIR$\inc\c\xmtx.h - $PROJ_DIR$\..\obj\unicode.pbi - $PROJ_DIR$\..\obj\filesys.o - $TOOLKIT_DIR$\inc\c\stdlib.h - $PROJ_DIR$\..\..\..\..\Source\fatfs\src\ff.h - $PROJ_DIR$\..\obj\unicode.lst - $PROJ_DIR$\..\..\..\..\Source\filesys.h - $PROJ_DIR$\..\obj\led.lst - $PROJ_DIR$\..\obj\filesys.lst - $PROJ_DIR$\..\obj\led.pbi - $PROJ_DIR$\..\obj\unicode.o - $PROJ_DIR$\..\..\..\..\Source\filesys.c - $PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\psock.c - $PROJ_DIR$\..\..\..\..\Source\fatfs\src\option\ccsbcs.c - $TOOLKIT_DIR$\inc\c\ctype.h - $TOOLKIT_DIR$\inc\c\xtls.h - $TOOLKIT_DIR$\inc\c\DLib_Config_Normal.h - $TOOLKIT_DIR$\inc\c\xlocale_c.h - $TOOLKIT_DIR$\inc\c\xencoding_limits.h - $PROJ_DIR$\..\obj\sysctl.pbi - $PROJ_DIR$\..\obj\uartlib.pbi - $PROJ_DIR$\..\obj\uart.o - $PROJ_DIR$\..\lib\driverlib\debug.h - $PROJ_DIR$\..\lib\driverlib\ethernet.h - $PROJ_DIR$\..\lib\driverlib\cpulib.h - $PROJ_DIR$\..\lib\driverlib\cpulib.c - $PROJ_DIR$\..\lib\driverlib\ethernet.c - $PROJ_DIR$\..\lib\driverlib\flashlib.c - $PROJ_DIR$\..\lib\driverlib\flashlib.h - $PROJ_DIR$\..\lib\driverlib\gpio.c - $PROJ_DIR$\..\lib\driverlib\gpio.h - $PROJ_DIR$\..\lib\driverlib\interrupt.c - $PROJ_DIR$\..\lib\driverlib\interrupt.h - $PROJ_DIR$\..\lib\driverlib\pin_map.h - $PROJ_DIR$\..\lib\driverlib\ssi.c - $PROJ_DIR$\..\lib\driverlib\ssi.h - $PROJ_DIR$\..\lib\driverlib\sysctl.c - $PROJ_DIR$\..\lib\driverlib\sysctl.h - $PROJ_DIR$\..\lib\driverlib\uartlib.c - $PROJ_DIR$\..\lib\driverlib\uartlib.h - $PROJ_DIR$\..\lib\fatfs\ffconf.h - $PROJ_DIR$\..\lib\fatfs\mmc.c - $PROJ_DIR$\..\lib\inc\hw_ethernet.h - $PROJ_DIR$\..\lib\inc\hw_flash.h - $PROJ_DIR$\..\lib\inc\hw_gpio.h - $PROJ_DIR$\..\lib\inc\hw_ints.h - $PROJ_DIR$\..\lib\inc\hw_memmap.h - $PROJ_DIR$\..\lib\inc\hw_nvic.h - $PROJ_DIR$\..\lib\inc\hw_ssi.h - $PROJ_DIR$\..\lib\inc\hw_sysctl.h - $PROJ_DIR$\..\lib\inc\hw_types.h - $PROJ_DIR$\..\lib\inc\hw_uart.h - $PROJ_DIR$\..\lib\uip\clock-arch.c - $PROJ_DIR$\..\lib\uip\clock-arch.h - $PROJ_DIR$\..\lib\uip\netdev.c - $PROJ_DIR$\..\lib\uip\netdev.h - $PROJ_DIR$\..\lib\uip\uip-conf.h - $PROJ_DIR$\..\blt_conf.h - $PROJ_DIR$\..\hooks.c - $PROJ_DIR$\..\main.c - $PROJ_DIR$\..\..\..\..\Source\ARMCM3_LM3S\IAR\vectors.c - $PROJ_DIR$\..\..\..\..\Source\ARMCM3_LM3S\IAR\cstart.s - $PROJ_DIR$\..\..\..\..\Source\ARMCM3_LM3S\cpu.c - $PROJ_DIR$\..\..\..\..\Source\ARMCM3_LM3S\cpu.h - $PROJ_DIR$\..\..\..\..\Source\ARMCM3_LM3S\flash.c + $PROJ_DIR$\..\..\..\..\Source\file.h $PROJ_DIR$\..\..\..\..\Source\net.c $PROJ_DIR$\..\..\..\..\Source\net.h $PROJ_DIR$\..\..\..\..\Source\plausibility.h $PROJ_DIR$\..\..\..\..\Source\xcp.c $PROJ_DIR$\..\..\..\..\Source\xcp.h - $PROJ_DIR$\..\obj\vectors.o - $PROJ_DIR$\..\config.h - $PROJ_DIR$\..\obj\main.lst - $PROJ_DIR$\..\..\..\..\Source\fatfs\src\diskio.c - $PROJ_DIR$\..\obj\file.pbi - $PROJ_DIR$\..\obj\vectors.lst - $PROJ_DIR$\..\obj\file.o - $PROJ_DIR$\..\obj\timer.lst - $PROJ_DIR$\..\obj\timer.pbi - $TOOLKIT_DIR$\lib\m7M_tl.a - $PROJ_DIR$\..\obj\boot.lst - $PROJ_DIR$\..\obj\ssi.o - $PROJ_DIR$\..\obj\ssi.pbi - $PROJ_DIR$\..\obj\ff.o - $PROJ_DIR$\..\..\..\..\Source\ARMCM3_LM3S\net.c - $PROJ_DIR$\..\..\..\..\Source\ARMCM3_LM3S\net.h - $PROJ_DIR$\..\..\..\..\Source\third_party\uip\apps\hello-world\hello-world.h $PROJ_DIR$\..\..\..\..\Source\third_party\uip\apps\hello-world\hello-world.c $PROJ_DIR$\..\..\..\..\Source\fatfs\src\ff.c $PROJ_DIR$\..\obj\ssi.lst - $PROJ_DIR$\..\..\..\..\Source\fatfs\src\diskio.h $PROJ_DIR$\..\..\..\..\Source\fatfs\src\integer.h - $PROJ_DIR$\..\obj\file.lst - $TOOLKIT_DIR$\inc\c\DLib_Defaults.h $PROJ_DIR$\..\obj\nvm.pbi + $PROJ_DIR$\..\..\..\..\Source\fatfs\src\diskio.h + $TOOLKIT_DIR$\inc\c\DLib_Defaults.h + $PROJ_DIR$\..\obj\file.lst $PROJ_DIR$\..\obj\uart.pbi $PROJ_DIR$\..\obj\xcp.lst $PROJ_DIR$\..\bin\openbtl_ek_lm3s6965.srec @@ -160,69 +121,17 @@ $PROJ_DIR$\..\obj\sysctl.lst $PROJ_DIR$\..\obj\gpio.lst $PROJ_DIR$\..\obj\diskio.pbi - $TOOLKIT_DIR$\inc\c\wchar.h $TOOLKIT_DIR$\inc\c\xlocale.h - $TOOLKIT_DIR$\inc\c\yvals.h - $TOOLKIT_DIR$\inc\c\DLib_Product.h - $TOOLKIT_DIR$\inc\c\ycheck.h - $TOOLKIT_DIR$\lib\shb_l.a - $PROJ_DIR$\..\obj\mmc.lst - $PROJ_DIR$\..\obj\hooks.pbi - $PROJ_DIR$\..\obj\uart.lst - $PROJ_DIR$\..\obj\cop.lst - $PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\psock.h - $PROJ_DIR$\..\obj\com.lst - $TOOLKIT_DIR$\lib\dl7M_tln.a - $TOOLKIT_DIR$\lib\rt7M_tl.a - $PROJ_DIR$\..\obj\ff.pbi - $PROJ_DIR$\..\obj\uartlib.lst - $PROJ_DIR$\..\obj\ff.lst - $PROJ_DIR$\..\obj\cpulib.lst - $PROJ_DIR$\..\..\..\..\Source\fatfs\src\option\unicode.c - $PROJ_DIR$\..\obj\openbtl_ek_lm3s6965.map - $PROJ_DIR$\..\obj\nvm.lst - $TOOLKIT_DIR$\inc\c\stdarg.h - $PROJ_DIR$\..\obj\cpulib.o - $PROJ_DIR$\..\obj\main.pbi - $PROJ_DIR$\..\obj\mmc.o - $PROJ_DIR$\..\obj\flashlib.lst - $PROJ_DIR$\..\obj\filesys.pbi - $PROJ_DIR$\..\obj\mmc.pbi - $PROJ_DIR$\..\obj\vectors.pbi - $PROJ_DIR$\..\obj\timer.o - $PROJ_DIR$\..\obj\flash.o - $PROJ_DIR$\..\obj\flash.lst - $PROJ_DIR$\..\obj\backdoor.lst - $PROJ_DIR$\..\obj\cpu.lst - $TOOLKIT_DIR$\inc\c\ysizet.h - $TOOLKIT_DIR$\inc\c\xlocaleuse.h - $PROJ_DIR$\..\..\..\..\Source\ARMCM3_LM3S\IAR\memory.x - $PROJ_DIR$\..\obj\lm3s6965.pbd - $PROJ_DIR$\..\obj\cstart.o - $PROJ_DIR$\..\..\..\..\Source\fatfs\src\ffconf.h - $PROJ_DIR$\..\obj\boot.pbi - $PROJ_DIR$\..\obj\main.o - $PROJ_DIR$\..\obj\boot.o - $PROJ_DIR$\..\obj\assert.pbi - $PROJ_DIR$\..\obj\xcp.o - $PROJ_DIR$\..\obj\backdoor.o - $PROJ_DIR$\..\obj\cop.o - $PROJ_DIR$\..\obj\backdoor.pbi - $PROJ_DIR$\..\obj\com.pbi - $PROJ_DIR$\..\obj\cop.pbi - $PROJ_DIR$\..\obj\xcp.pbi - $TOOLKIT_DIR$\inc\c\string.h - $TOOLKIT_DIR$\inc\c\DLib_Product_string.h - $PROJ_DIR$\..\obj\flashlib.o - $PROJ_DIR$\..\obj\gpio.o - $PROJ_DIR$\..\obj\interrupt.o + $TOOLKIT_DIR$\inc\c\ctype.h + $PROJ_DIR$\..\..\..\..\Source\fatfs\src\option\ccsbcs.c $PROJ_DIR$\..\obj\sysctl.o - $PROJ_DIR$\..\obj\uartlib.o - $PROJ_DIR$\..\obj\flashlib.pbi - $PROJ_DIR$\..\obj\cpulib.pbi - $PROJ_DIR$\..\obj\gpio.pbi $PROJ_DIR$\..\lib\uip\tapdev.c + $PROJ_DIR$\..\obj\gpio.pbi + $PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\psock.c + $PROJ_DIR$\..\obj\cpulib.pbi $PROJ_DIR$\..\obj\interrupt.pbi + $PROJ_DIR$\..\obj\flashlib.pbi + $PROJ_DIR$\..\obj\uartlib.o $PROJ_DIR$\..\..\..\..\Source\third_party\fatfs\src\option\ccsbcs.c $PROJ_DIR$\..\obj\clock-arch.o $PROJ_DIR$\..\obj\tapdev.o @@ -242,84 +151,175 @@ $PROJ_DIR$\..\obj\psock.pbi $PROJ_DIR$\..\obj\uip_arp.pbi $PROJ_DIR$\..\obj\uip_timer.pbi + $TOOLKIT_DIR$\inc\c\xlocale_c.h + $TOOLKIT_DIR$\inc\c\xencoding_limits.h + $PROJ_DIR$\..\obj\sysctl.pbi + $PROJ_DIR$\..\obj\uartlib.pbi + $PROJ_DIR$\..\obj\uart.o + $PROJ_DIR$\..\obj\vectors.o + $PROJ_DIR$\..\config.h + $PROJ_DIR$\..\obj\main.lst + $PROJ_DIR$\..\..\..\..\Source\fatfs\src\diskio.c + $PROJ_DIR$\..\obj\file.pbi + $PROJ_DIR$\..\obj\vectors.lst + $PROJ_DIR$\..\obj\file.o + $PROJ_DIR$\..\obj\timer.lst + $PROJ_DIR$\..\obj\timer.pbi + $TOOLKIT_DIR$\lib\m7M_tl.a + $PROJ_DIR$\..\obj\boot.lst + $PROJ_DIR$\..\obj\ssi.o + $PROJ_DIR$\..\obj\ssi.pbi + $PROJ_DIR$\..\obj\ff.o + $PROJ_DIR$\..\..\..\..\Source\ARMCM3_LM3S\net.c + $PROJ_DIR$\..\..\..\..\Source\ARMCM3_LM3S\net.h + $PROJ_DIR$\..\..\..\..\Source\third_party\uip\apps\hello-world\hello-world.h + $TOOLKIT_DIR$\inc\c\yvals.h + $TOOLKIT_DIR$\inc\c\DLib_Product.h + $TOOLKIT_DIR$\inc\c\ycheck.h + $TOOLKIT_DIR$\lib\shb_l.a + $PROJ_DIR$\..\obj\mmc.lst + $PROJ_DIR$\..\obj\led.pbi + $PROJ_DIR$\..\obj\net.o + $PROJ_DIR$\..\obj\net.lst + $PROJ_DIR$\..\obj\unicode.o + $PROJ_DIR$\..\obj\ethernet.pbi + $PROJ_DIR$\..\obj\ethernet.o + $PROJ_DIR$\..\obj\led.o + $PROJ_DIR$\..\obj\assert.o + $PROJ_DIR$\..\obj\psock.o + $PROJ_DIR$\..\bin\openbtl_ek_lm3s6965.out + $PROJ_DIR$\..\..\..\..\Source\filesys.c + $PROJ_DIR$\..\obj\ethernet.lst + $PROJ_DIR$\..\obj\net.pbi + $PROJ_DIR$\..\obj\flash.pbi + $PROJ_DIR$\..\obj\unicode.pbi + $TOOLKIT_DIR$\inc\c\xmtx.h + $PROJ_DIR$\..\obj\cpu.pbi + $PROJ_DIR$\..\obj\filesys.o + $PROJ_DIR$\..\obj\com.o + $PROJ_DIR$\..\obj\hooks.o + $TOOLKIT_DIR$\inc\c\stdlib.h + $PROJ_DIR$\..\..\..\..\Source\fatfs\src\ff.h + $PROJ_DIR$\..\obj\unicode.lst + $PROJ_DIR$\..\..\..\..\Source\filesys.h + $PROJ_DIR$\..\obj\led.lst + $PROJ_DIR$\..\obj\filesys.lst $PROJ_DIR$\..\obj\uiplib.pbi $TOOLKIT_DIR$\inc\c\stdio.h $TOOLKIT_DIR$\inc\c\ystdio.h - $PROJ_DIR$\..\obj\ethernet.lst - $PROJ_DIR$\..\obj\net.lst - $PROJ_DIR$\..\obj\net.o - $PROJ_DIR$\..\obj\net.pbi - $PROJ_DIR$\..\obj\ethernet.o - $PROJ_DIR$\..\obj\ethernet.pbi - $PROJ_DIR$\..\obj\psock.o - $PROJ_DIR$\..\obj\uip_arp.o - $PROJ_DIR$\..\obj\uip_timer.o - $PROJ_DIR$\..\obj\uip.o - $PROJ_DIR$\..\obj\netdev.o - $PROJ_DIR$\..\obj\netdev.pbi - $PROJ_DIR$\..\obj\netdev.lst + $PROJ_DIR$\..\obj\boot.pbi + $PROJ_DIR$\..\obj\cstart.o + $PROJ_DIR$\..\obj\lm3s6965.pbd + $PROJ_DIR$\..\obj\main.o + $PROJ_DIR$\..\..\..\..\Source\fatfs\src\ffconf.h + $PROJ_DIR$\..\obj\boot.o + $PROJ_DIR$\..\obj\assert.pbi + $PROJ_DIR$\..\obj\xcp.o + $PROJ_DIR$\..\..\..\..\Source\ARMCM3_LM3S\IAR\memory.x + $PROJ_DIR$\..\obj\backdoor.o + $PROJ_DIR$\..\obj\cop.o + $PROJ_DIR$\..\obj\backdoor.pbi + $PROJ_DIR$\..\obj\com.pbi + $PROJ_DIR$\..\obj\cop.pbi + $PROJ_DIR$\..\obj\xcp.pbi + $TOOLKIT_DIR$\inc\c\string.h + $TOOLKIT_DIR$\inc\c\DLib_Product_string.h + $PROJ_DIR$\..\obj\flashlib.o + $PROJ_DIR$\..\obj\gpio.o + $PROJ_DIR$\..\obj\interrupt.o + $TOOLKIT_DIR$\inc\c\xtls.h + $TOOLKIT_DIR$\inc\c\DLib_Config_Normal.h + $PROJ_DIR$\..\obj\hooks.pbi + $PROJ_DIR$\..\obj\uart.lst + $PROJ_DIR$\..\obj\cop.lst + $PROJ_DIR$\..\obj\com.lst + $TOOLKIT_DIR$\lib\dl7M_tln.a + $TOOLKIT_DIR$\lib\rt7M_tl.a + $PROJ_DIR$\..\obj\ff.pbi + $PROJ_DIR$\..\obj\uartlib.lst + $PROJ_DIR$\..\obj\ff.lst + $PROJ_DIR$\..\obj\cpulib.lst + $PROJ_DIR$\..\obj\openbtl_ek_lm3s6965.map + $PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\psock.h + $PROJ_DIR$\..\obj\nvm.lst + $TOOLKIT_DIR$\inc\c\stdarg.h + $PROJ_DIR$\..\obj\cpulib.o + $PROJ_DIR$\..\obj\main.pbi + $PROJ_DIR$\..\obj\mmc.o + $PROJ_DIR$\..\obj\flashlib.lst + $PROJ_DIR$\..\obj\filesys.pbi + $PROJ_DIR$\..\..\..\..\Source\fatfs\src\option\unicode.c + $PROJ_DIR$\..\obj\mmc.pbi + $PROJ_DIR$\..\obj\vectors.pbi + $PROJ_DIR$\..\obj\timer.o + $PROJ_DIR$\..\obj\flash.o + $PROJ_DIR$\..\obj\flash.lst + $PROJ_DIR$\..\obj\backdoor.lst + $PROJ_DIR$\..\obj\cpu.lst + $TOOLKIT_DIR$\inc\c\ysizet.h + $TOOLKIT_DIR$\inc\c\xlocaleuse.h [ROOT_NODE] ILINK - 40 173 + 181 233 - $PROJ_DIR$\..\..\..\..\Source\ARMCM3_LM3S\nvm.c + $PROJ_DIR$\..\lib\driverlib\cpulib.c ICCARM - 174 148 + 232 237 BICOMP - 140 + 122 ICCARM - 33 7 29 103 113 109 37 4 0 6 31 1 12 13 86 35 115 + 0 BICOMP - 33 7 29 103 113 109 37 4 0 6 31 1 12 13 86 35 115 + 0 - $PROJ_DIR$\..\..\..\..\Source\third_party\fatfs\src\option\unicode.c + $PROJ_DIR$\..\lib\driverlib\ethernet.c ICCARM - 51 56 + 183 177 BICOMP - 47 + 176 ICCARM - 12 13 86 217 + 20 23 24 34 3 82 55 78 41 91 48 86 52 50 54 80 88 60 61 18 84 93 1 15 10 BICOMP - 12 13 86 217 + 20 23 24 34 3 82 55 78 41 91 48 86 52 50 54 80 88 60 61 18 84 93 1 15 10 - $PROJ_DIR$\..\..\..\..\Source\ARMCM3_LM3S\timer.c + $PROJ_DIR$\..\lib\driverlib\flashlib.c ICCARM - 123 183 + 240 218 BICOMP @@ -329,273 +329,20 @@ ICCARM - 33 7 29 103 113 109 37 4 0 6 31 1 12 13 86 35 115 + 21 23 33 34 3 82 55 78 41 91 48 86 52 50 54 80 88 60 61 18 84 93 6 10 BICOMP - 33 7 29 103 113 109 37 4 0 6 31 1 12 13 86 35 115 + 21 23 33 34 3 82 55 78 41 91 48 86 52 50 54 80 88 60 61 18 84 93 6 10 - $PROJ_DIR$\..\..\..\..\Source\ARMCM3_LM3S\uart.c + $PROJ_DIR$\..\lib\driverlib\gpio.c ICCARM - 162 67 - - - BICOMP - 141 - - - - - ICCARM - 33 7 29 103 113 109 37 4 0 6 31 1 12 13 86 35 115 92 96 83 85 - - - BICOMP - 33 7 29 103 113 109 37 4 0 6 31 1 12 13 86 35 115 92 96 83 85 - - - - - $PROJ_DIR$\..\..\..\..\Source\third_party\fatfs\src\ff.c - - - ICCARM - 170 129 - - - BICOMP - 168 - - - - - ICCARM - 12 13 86 10 175 158 156 139 62 157 64 147 - - - BICOMP - 12 13 86 10 175 158 156 139 62 157 64 147 - - - - - $PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\uip.c - - - ICCARM - 232 248 - - - BICOMP - 223 - - - - - ICCARM - 19 27 102 33 7 29 103 113 109 37 4 0 6 31 1 12 13 86 35 115 112 20 205 158 156 139 62 157 64 147 188 206 - - - BICOMP - 19 27 102 33 7 29 103 113 109 37 4 0 6 31 1 12 13 86 35 115 112 20 205 158 156 139 62 157 64 147 188 206 - - - - - $PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\uip_arp.c - - - ICCARM - 224 246 - - - BICOMP - 234 - - - - - ICCARM - 22 19 27 102 33 7 29 103 113 109 37 4 0 6 31 1 12 13 86 35 115 112 205 158 156 139 62 157 64 147 188 206 - - - BICOMP - 22 19 27 102 33 7 29 103 113 109 37 4 0 6 31 1 12 13 86 35 115 112 205 158 156 139 62 157 64 147 188 206 - - - - - $PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\uip_timer.c - - - ICCARM - 230 247 - - - BICOMP - 235 - - - - - ICCARM - 14 99 24 - - - BICOMP - 14 99 24 - - - - - $PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\uiplib.c - - - ICCARM - 231 225 - - - BICOMP - 236 - - - - - ICCARM - 19 27 102 33 7 29 103 113 109 37 4 0 6 31 1 12 13 86 35 115 112 26 - - - BICOMP - 19 27 102 33 7 29 103 113 109 37 4 0 6 31 1 12 13 86 35 115 112 26 - - - - - $PROJ_DIR$\..\..\..\..\Source\assert.c - - - ICCARM - 145 41 - - - BICOMP - 197 - - - - - ICCARM - 33 7 29 103 113 109 37 4 0 6 31 1 12 13 86 35 115 - - - BICOMP - 33 7 29 103 113 109 37 4 0 6 31 1 12 13 86 35 115 - - - - - $PROJ_DIR$\..\..\..\..\Source\backdoor.c - - - ICCARM - 186 199 - - - BICOMP - 201 - - - - - ICCARM - 33 7 29 103 113 109 37 4 0 6 31 1 12 13 86 35 115 - - - BICOMP - 33 7 29 103 113 109 37 4 0 6 31 1 12 13 86 35 115 - - - - - $PROJ_DIR$\..\..\..\..\Source\boot.c - - - ICCARM - 126 196 - - - BICOMP - 194 - - - - - ICCARM - 33 7 29 103 113 109 37 4 0 6 31 1 12 13 86 35 115 - - - BICOMP - 33 7 29 103 113 109 37 4 0 6 31 1 12 13 86 35 115 - - - - - $PROJ_DIR$\..\..\..\..\Source\com.c - - - ICCARM - 165 43 - - - BICOMP - 202 - - - - - ICCARM - 33 7 29 103 113 109 37 4 0 6 31 1 12 13 86 35 115 9 112 - - - BICOMP - 33 7 29 103 113 109 37 4 0 6 31 1 12 13 86 35 115 9 112 - - - - - $PROJ_DIR$\..\..\..\..\Source\cop.c - - - ICCARM - 163 200 - - - BICOMP - 203 - - - - - ICCARM - 33 7 29 103 113 109 37 4 0 6 31 1 12 13 86 35 115 - - - BICOMP - 33 7 29 103 113 109 37 4 0 6 31 1 12 13 86 35 115 - - - - - $PROJ_DIR$\..\..\..\..\Source\file.c - - - ICCARM - 138 122 + 113 219 BICOMP @@ -605,108 +352,227 @@ ICCARM - 33 7 29 103 113 109 37 4 0 6 31 1 12 13 86 35 115 205 158 156 139 62 157 64 147 188 206 60 155 61 46 49 189 63 154 + 22 23 24 33 34 3 82 55 78 41 91 48 86 52 50 54 80 88 60 61 18 84 93 8 11 10 BICOMP - 33 7 29 103 113 109 37 4 0 6 31 1 12 13 86 35 115 205 158 156 139 62 157 64 147 188 206 60 155 61 46 49 189 63 154 + 22 23 24 33 34 3 82 55 78 41 91 48 86 52 50 54 80 88 60 61 18 84 93 8 11 10 - $PROJ_DIR$\..\bin\openbtl_ek_lm3s6965.out - - - ILINK - 173 - - - OBJCOPY - 143 - - - - - ILINK - 190 41 199 196 218 43 200 149 176 192 243 129 122 184 207 208 42 209 195 178 241 249 148 127 210 183 67 211 248 246 247 225 56 116 198 159 167 125 166 - - - - - $PROJ_DIR$\..\..\..\..\Source\filesys.c + $PROJ_DIR$\..\lib\driverlib\interrupt.c ICCARM - 54 48 + 111 220 BICOMP - 180 + 123 ICCARM - 33 7 29 117 113 109 37 4 0 6 31 52 50 137 193 35 115 + 23 31 34 0 3 82 55 78 41 91 48 86 52 50 54 80 88 60 61 18 84 93 10 BICOMP - 33 7 29 117 113 109 37 4 0 6 31 52 50 137 193 35 115 + 23 31 34 0 3 82 55 78 41 91 48 86 52 50 54 80 88 60 61 18 84 93 10 - $PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\psock.c + $PROJ_DIR$\..\lib\driverlib\ssi.c ICCARM - 228 245 + 96 161 BICOMP - 233 + 162 ICCARM - 237 158 156 139 62 157 64 147 188 238 205 206 27 102 33 7 29 103 113 109 37 4 0 6 31 1 35 115 131 164 17 16 15 19 + 23 24 32 34 3 82 55 78 41 91 48 86 52 50 54 80 88 60 61 18 84 93 10 13 15 BICOMP - 237 158 156 139 62 157 64 147 188 238 205 206 27 102 33 7 29 103 113 109 37 4 0 6 31 1 35 115 131 164 17 16 15 19 + 23 24 32 34 3 82 55 78 41 91 48 86 52 50 54 80 88 60 61 18 84 93 10 13 15 - $PROJ_DIR$\..\lib\driverlib\cpulib.c + $PROJ_DIR$\..\lib\driverlib\sysctl.c ICCARM - 171 176 + 112 118 BICOMP - 213 + 147 ICCARM - 70 + 23 31 33 34 0 3 82 55 78 41 91 48 86 52 50 54 80 88 60 61 18 84 93 10 15 BICOMP - 70 + 23 31 33 34 0 3 82 55 78 41 91 48 86 52 50 54 80 88 60 61 18 84 93 10 15 - $PROJ_DIR$\..\lib\driverlib\ethernet.c + $PROJ_DIR$\..\lib\driverlib\uartlib.c ICCARM - 239 243 + 230 125 + + + BICOMP + 148 + + + + + ICCARM + 23 24 33 34 35 3 82 55 78 41 91 48 86 52 50 54 80 88 60 61 18 84 93 10 17 15 + + + BICOMP + 23 24 33 34 35 3 82 55 78 41 91 48 86 52 50 54 80 88 60 61 18 84 93 10 17 15 + + + + + $PROJ_DIR$\..\lib\fatfs\mmc.c + + + ICCARM + 171 239 + + + BICOMP + 243 + + + + + ICCARM + 24 34 8 11 13 15 58 61 82 55 78 41 91 48 86 52 50 54 80 88 60 18 84 93 + + + BICOMP + 24 34 8 11 13 15 58 61 82 55 78 41 91 48 86 52 50 54 80 88 60 18 84 93 + + + + + $PROJ_DIR$\..\lib\uip\clock-arch.c + + + ICCARM + 138 127 + + + BICOMP + 129 + + + + + ICCARM + 37 82 55 78 41 91 48 86 52 50 54 80 88 60 61 18 84 93 + + + BICOMP + 37 82 55 78 41 91 48 86 52 50 54 80 88 60 61 18 84 93 + + + + + $PROJ_DIR$\..\lib\uip\netdev.c + + + ICCARM + 30 28 + + + BICOMP + 29 + + + + + ICCARM + 68 76 40 82 55 78 41 91 48 86 52 50 54 80 88 60 61 18 84 93 90 71 24 34 20 15 8 11 1 6 + + + BICOMP + 68 76 40 82 55 78 41 91 48 86 52 50 54 80 88 60 61 18 84 93 90 71 24 34 20 15 8 11 1 6 + + + + + $PROJ_DIR$\..\hooks.c + + + ICCARM + 107 191 + + + BICOMP + 223 + + + + + ICCARM + 82 55 78 41 91 48 86 52 50 54 80 88 60 61 18 84 93 24 34 17 15 + + + BICOMP + 82 55 78 41 91 48 86 52 50 54 80 88 60 61 18 84 93 24 34 17 15 + + + + + $PROJ_DIR$\..\main.c + + + ICCARM + 152 204 + + + BICOMP + 238 + + + + + ICCARM + 82 55 78 41 91 48 86 52 50 54 80 88 60 61 18 84 93 23 24 31 33 34 15 8 11 17 + + + BICOMP + 82 55 78 41 91 48 86 52 50 54 80 88 60 61 18 84 93 23 24 31 33 34 15 8 11 17 + + + + + $PROJ_DIR$\..\..\..\..\Source\ARMCM3_LM3S\IAR\vectors.c + + + ICCARM + 155 150 BICOMP @@ -716,20 +582,305 @@ ICCARM - 88 91 92 96 68 33 7 29 103 113 109 37 4 0 6 31 1 12 13 86 35 115 69 83 78 + 82 55 78 41 91 48 86 52 50 54 80 88 60 61 18 84 93 BICOMP - 88 91 92 96 68 33 7 29 103 113 109 37 4 0 6 31 1 12 13 86 35 115 69 83 78 + 82 55 78 41 91 48 86 52 50 54 80 88 60 61 18 84 93 - $PROJ_DIR$\..\lib\driverlib\flashlib.c + $PROJ_DIR$\..\..\..\..\Source\ARMCM3_LM3S\IAR\cstart.s + + + AARM + 202 + + + + + $PROJ_DIR$\..\..\..\..\Source\third_party\fatfs\src\option\unicode.c ICCARM - 179 207 + 194 175 + + + BICOMP + 186 + + + + + ICCARM + 60 61 18 126 + + + BICOMP + 60 61 18 126 + + + + + $PROJ_DIR$\..\..\..\..\Source\ARMCM3_LM3S\cpu.c + + + ICCARM + 249 110 + + + BICOMP + 188 + + + + + ICCARM + 82 55 78 41 91 48 86 52 50 54 80 88 60 61 18 84 93 + + + BICOMP + 82 55 78 41 91 48 86 52 50 54 80 88 60 61 18 84 93 + + + + + $PROJ_DIR$\..\..\..\..\Source\ARMCM3_LM3S\flash.c + + + ICCARM + 247 246 + + + BICOMP + 185 + + + + + ICCARM + 82 55 78 41 91 48 86 52 50 54 80 88 60 61 18 84 93 24 34 6 + + + BICOMP + 82 55 78 41 91 48 86 52 50 54 80 88 60 61 18 84 93 24 34 6 + + + + + $PROJ_DIR$\..\..\..\..\Source\ARMCM3_LM3S\nvm.c + + + ICCARM + 235 109 + + + BICOMP + 98 + + + + + ICCARM + 82 55 78 41 91 48 86 52 50 54 80 88 60 61 18 84 93 + + + BICOMP + 82 55 78 41 91 48 86 52 50 54 80 88 60 61 18 84 93 + + + + + $PROJ_DIR$\..\..\..\..\Source\ARMCM3_LM3S\timer.c + + + ICCARM + 157 245 + + + BICOMP + 158 + + + + + ICCARM + 82 55 78 41 91 48 86 52 50 54 80 88 60 61 18 84 93 + + + BICOMP + 82 55 78 41 91 48 86 52 50 54 80 88 60 61 18 84 93 + + + + + $PROJ_DIR$\..\..\..\..\Source\ARMCM3_LM3S\uart.c + + + ICCARM + 224 149 + + + BICOMP + 102 + + + + + ICCARM + 82 55 78 41 91 48 86 52 50 54 80 88 60 61 18 84 93 24 34 15 17 + + + BICOMP + 82 55 78 41 91 48 86 52 50 54 80 88 60 61 18 84 93 24 34 15 17 + + + + + $PROJ_DIR$\..\..\..\..\Source\third_party\fatfs\src\ff.c + + + ICCARM + 231 163 + + + BICOMP + 229 + + + + + ICCARM + 60 61 18 58 236 169 167 100 222 168 146 108 + + + BICOMP + 60 61 18 58 236 169 167 100 222 168 146 108 + + + + + $PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\uip.c + + + ICCARM + 141 27 + + + BICOMP + 132 + + + + + ICCARM + 68 76 40 82 55 78 41 91 48 86 52 50 54 80 88 60 61 18 84 93 90 69 216 169 167 100 222 168 146 108 250 217 + + + BICOMP + 68 76 40 82 55 78 41 91 48 86 52 50 54 80 88 60 61 18 84 93 90 69 216 169 167 100 222 168 146 108 250 217 + + + + + $PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\uip_arp.c + + + ICCARM + 133 25 + + + BICOMP + 143 + + + + + ICCARM + 71 68 76 40 82 55 78 41 91 48 86 52 50 54 80 88 60 61 18 84 93 90 216 169 167 100 222 168 146 108 250 217 + + + BICOMP + 71 68 76 40 82 55 78 41 91 48 86 52 50 54 80 88 60 61 18 84 93 90 216 169 167 100 222 168 146 108 250 217 + + + + + $PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\uip_timer.c + + + ICCARM + 139 26 + + + BICOMP + 144 + + + + + ICCARM + 62 37 73 + + + BICOMP + 62 37 73 + + + + + $PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\uiplib.c + + + ICCARM + 140 134 + + + BICOMP + 198 + + + + + ICCARM + 68 76 40 82 55 78 41 91 48 86 52 50 54 80 88 60 61 18 84 93 90 75 + + + BICOMP + 68 76 40 82 55 78 41 91 48 86 52 50 54 80 88 60 61 18 84 93 90 75 + + + + + $PROJ_DIR$\..\..\..\..\Source\assert.c + + + ICCARM + 106 179 + + + BICOMP + 207 + + + + + ICCARM + 82 55 78 41 91 48 86 52 50 54 80 88 60 61 18 84 93 + + + BICOMP + 82 55 78 41 91 48 86 52 50 54 80 88 60 61 18 84 93 + + + + + $PROJ_DIR$\..\..\..\..\Source\backdoor.c + + + ICCARM + 248 210 BICOMP @@ -739,20 +890,66 @@ ICCARM - 89 91 95 96 68 33 7 29 103 113 109 37 4 0 6 31 1 12 13 86 35 115 74 78 + 82 55 78 41 91 48 86 52 50 54 80 88 60 61 18 84 93 BICOMP - 89 91 95 96 68 33 7 29 103 113 109 37 4 0 6 31 1 12 13 86 35 115 74 78 + 82 55 78 41 91 48 86 52 50 54 80 88 60 61 18 84 93 - $PROJ_DIR$\..\lib\driverlib\gpio.c + $PROJ_DIR$\..\..\..\..\Source\boot.c ICCARM - 152 208 + 160 206 + + + BICOMP + 201 + + + + + ICCARM + 82 55 78 41 91 48 86 52 50 54 80 88 60 61 18 84 93 + + + BICOMP + 82 55 78 41 91 48 86 52 50 54 80 88 60 61 18 84 93 + + + + + $PROJ_DIR$\..\..\..\..\Source\com.c + + + ICCARM + 226 190 + + + BICOMP + 213 + + + + + ICCARM + 82 55 78 41 91 48 86 52 50 54 80 88 60 61 18 84 93 57 90 + + + BICOMP + 82 55 78 41 91 48 86 52 50 54 80 88 60 61 18 84 93 57 90 + + + + + $PROJ_DIR$\..\..\..\..\Source\cop.c + + + ICCARM + 225 211 BICOMP @@ -762,296 +959,34 @@ ICCARM - 90 91 92 95 96 68 33 7 29 103 113 109 37 4 0 6 31 1 12 13 86 35 115 76 79 78 + 82 55 78 41 91 48 86 52 50 54 80 88 60 61 18 84 93 BICOMP - 90 91 92 95 96 68 33 7 29 103 113 109 37 4 0 6 31 1 12 13 86 35 115 76 79 78 + 82 55 78 41 91 48 86 52 50 54 80 88 60 61 18 84 93 - $PROJ_DIR$\..\lib\driverlib\interrupt.c + $PROJ_DIR$\..\..\..\..\Source\file.c ICCARM - 150 209 + 101 156 BICOMP - 216 + 154 ICCARM - 91 93 96 70 68 33 7 29 103 113 109 37 4 0 6 31 1 12 13 86 35 115 78 + 82 55 78 41 91 48 86 52 50 54 80 88 60 61 18 84 93 216 169 167 100 222 168 146 108 250 217 116 115 221 187 192 251 145 64 BICOMP - 91 93 96 70 68 33 7 29 103 113 109 37 4 0 6 31 1 12 13 86 35 115 78 - - - - - $PROJ_DIR$\..\lib\driverlib\ssi.c - - - ICCARM - 135 127 - - - BICOMP - 128 - - - - - ICCARM - 91 92 94 96 68 33 7 29 103 113 109 37 4 0 6 31 1 12 13 86 35 115 78 81 83 - - - BICOMP - 91 92 94 96 68 33 7 29 103 113 109 37 4 0 6 31 1 12 13 86 35 115 78 81 83 - - - - - $PROJ_DIR$\..\lib\driverlib\sysctl.c - - - ICCARM - 151 210 - - - BICOMP - 65 - - - - - ICCARM - 91 93 95 96 70 68 33 7 29 103 113 109 37 4 0 6 31 1 12 13 86 35 115 78 83 - - - BICOMP - 91 93 95 96 70 68 33 7 29 103 113 109 37 4 0 6 31 1 12 13 86 35 115 78 83 - - - - - $PROJ_DIR$\..\lib\driverlib\uartlib.c - - - ICCARM - 169 211 - - - BICOMP - 66 - - - - - ICCARM - 91 92 95 96 97 68 33 7 29 103 113 109 37 4 0 6 31 1 12 13 86 35 115 78 85 83 - - - BICOMP - 91 92 95 96 97 68 33 7 29 103 113 109 37 4 0 6 31 1 12 13 86 35 115 78 85 83 - - - - - $PROJ_DIR$\..\lib\fatfs\mmc.c - - - ICCARM - 160 178 - - - BICOMP - 181 - - - - - ICCARM - 92 96 76 79 81 83 10 13 33 7 29 103 113 109 37 4 0 6 31 1 12 86 35 115 - - - BICOMP - 92 96 76 79 81 83 10 13 33 7 29 103 113 109 37 4 0 6 31 1 12 86 35 115 - - - - - $PROJ_DIR$\..\lib\uip\clock-arch.c - - - ICCARM - 229 218 - - - BICOMP - 220 - - - - - ICCARM - 99 33 7 29 103 113 109 37 4 0 6 31 1 12 13 86 35 115 - - - BICOMP - 99 33 7 29 103 113 109 37 4 0 6 31 1 12 13 86 35 115 - - - - - $PROJ_DIR$\..\lib\uip\netdev.c - - - ICCARM - 251 249 - - - BICOMP - 250 - - - - - ICCARM - 19 27 102 33 7 29 103 113 109 37 4 0 6 31 1 12 13 86 35 115 112 22 92 96 88 83 76 79 69 74 - - - BICOMP - 19 27 102 33 7 29 103 113 109 37 4 0 6 31 1 12 13 86 35 115 112 22 92 96 88 83 76 79 69 74 - - - - - $PROJ_DIR$\..\hooks.c - - - ICCARM - 146 42 - - - BICOMP - 161 - - - - - ICCARM - 33 7 29 103 113 109 37 4 0 6 31 1 12 13 86 35 115 92 96 85 83 - - - BICOMP - 33 7 29 103 113 109 37 4 0 6 31 1 12 13 86 35 115 92 96 85 83 - - - - - $PROJ_DIR$\..\main.c - - - ICCARM - 118 195 - - - BICOMP - 177 - - - - - ICCARM - 33 7 29 103 113 109 37 4 0 6 31 1 12 13 86 35 115 91 92 93 95 96 83 76 79 85 - - - BICOMP - 33 7 29 103 113 109 37 4 0 6 31 1 12 13 86 35 115 91 92 93 95 96 83 76 79 85 - - - - - $PROJ_DIR$\..\..\..\..\Source\ARMCM3_LM3S\IAR\vectors.c - - - ICCARM - 121 116 - - - BICOMP - 182 - - - - - ICCARM - 33 7 29 103 113 109 37 4 0 6 31 1 12 13 86 35 115 - - - BICOMP - 33 7 29 103 113 109 37 4 0 6 31 1 12 13 86 35 115 - - - - - $PROJ_DIR$\..\..\..\..\Source\ARMCM3_LM3S\IAR\cstart.s - - - AARM - 192 - - - - - $PROJ_DIR$\..\..\..\..\Source\ARMCM3_LM3S\cpu.c - - - ICCARM - 187 149 - - - BICOMP - 44 - - - - - ICCARM - 33 7 29 103 113 109 37 4 0 6 31 1 12 13 86 35 115 - - - BICOMP - 33 7 29 103 113 109 37 4 0 6 31 1 12 13 86 35 115 - - - - - $PROJ_DIR$\..\..\..\..\Source\ARMCM3_LM3S\flash.c - - - ICCARM - 185 184 - - - BICOMP - 45 - - - - - ICCARM - 33 7 29 103 113 109 37 4 0 6 31 1 12 13 86 35 115 92 96 74 - - - BICOMP - 33 7 29 103 113 109 37 4 0 6 31 1 12 13 86 35 115 92 96 74 + 82 55 78 41 91 48 86 52 50 54 80 88 60 61 18 84 93 216 169 167 100 222 168 146 108 250 217 116 115 221 187 192 251 145 64 @@ -1060,21 +995,21 @@ ICCARM - 240 241 + 174 173 BICOMP - 242 + 184 ICCARM - 33 7 29 103 113 109 37 4 0 6 31 1 12 13 86 35 115 101 19 27 102 112 22 92 96 88 83 76 79 69 74 + 82 55 78 41 91 48 86 52 50 54 80 88 60 61 18 84 93 39 68 76 40 90 71 24 34 20 15 8 11 1 6 BICOMP - 33 7 29 103 113 109 37 4 0 6 31 1 12 13 86 35 115 101 19 27 102 112 22 92 96 88 83 76 79 69 74 + 82 55 78 41 91 48 86 52 50 54 80 88 60 61 18 84 93 39 68 76 40 90 71 24 34 20 15 8 11 1 6 @@ -1083,63 +1018,21 @@ ICCARM - 142 198 + 103 208 BICOMP - 204 + 215 ICCARM - 33 7 29 103 113 109 37 4 0 6 31 1 12 13 86 35 115 + 82 55 78 41 91 48 86 52 50 54 80 88 60 61 18 84 93 BICOMP - 33 7 29 103 113 109 37 4 0 6 31 1 12 13 86 35 115 - - - - - $PROJ_DIR$\..\..\..\..\Source\fatfs\src\diskio.c - - - BICOMP - 153 - - - - - ICCARM - 136 137 - - - BICOMP - 136 137 - - - - - $PROJ_DIR$\..\..\..\..\Source\ARMCM3_LM3S\net.c - - - ICCARM - 240 241 - - - BICOMP - 242 - - - - - ICCARM - 33 7 29 103 113 109 37 4 0 6 31 1 35 115 101 19 27 102 131 22 - - - BICOMP - 33 7 29 103 113 109 37 4 0 6 31 1 35 115 101 19 27 102 131 22 + 82 55 78 41 91 48 86 52 50 54 80 88 60 61 18 84 93 @@ -1148,21 +1041,21 @@ ICCARM - 227 + 136 BICOMP - 222 + 131 ICCARM - 132 27 102 33 7 29 103 113 109 37 4 0 6 31 1 35 115 131 164 17 16 15 19 205 158 156 139 62 157 64 147 188 206 + 166 76 40 82 55 78 41 91 48 86 52 50 54 80 88 84 93 165 234 66 65 63 68 216 169 167 100 222 168 146 108 250 217 BICOMP - 132 27 102 33 7 29 103 113 109 37 4 0 6 31 1 35 115 131 164 17 16 15 19 205 158 156 139 62 157 64 147 188 206 + 166 76 40 82 55 78 41 91 48 86 52 50 54 80 88 84 93 165 234 66 65 63 68 216 169 167 100 222 168 146 108 250 217 @@ -1171,21 +1064,21 @@ ICCARM - 170 129 + 231 163 BICOMP - 168 + 229 ICCARM - 50 137 86 136 175 158 156 139 62 157 64 147 + 193 97 18 99 236 169 167 100 222 168 146 108 BICOMP - 50 137 86 136 175 158 156 139 62 157 64 147 + 193 97 18 99 236 169 167 100 222 168 146 108 @@ -1194,44 +1087,21 @@ ICCARM - 53 39 + 196 178 BICOMP - 55 + 172 ICCARM - 33 7 29 117 113 109 37 4 0 6 31 1 50 137 86 35 115 92 96 83 76 79 + 82 55 78 151 91 48 86 52 50 54 80 88 193 97 18 84 93 24 34 15 8 11 BICOMP - 33 7 29 117 113 109 37 4 0 6 31 1 50 137 86 35 115 92 96 83 76 79 - - - - - $PROJ_DIR$\..\..\..\..\Source\fatfs\src\option\unicode.c - - - ICCARM - 51 56 - - - BICOMP - 47 - - - - - ICCARM - 50 137 86 59 - - - BICOMP - 50 137 86 59 + 82 55 78 151 91 48 86 52 50 54 80 88 193 97 18 84 93 24 34 15 8 11 @@ -1240,21 +1110,151 @@ ICCARM - 226 219 + 135 128 BICOMP - 221 + 130 ICCARM - 19 27 102 132 164 17 16 15 22 33 7 29 103 113 109 37 4 0 6 31 1 35 115 92 96 88 83 76 79 69 + 68 76 40 166 234 66 65 63 71 82 55 78 41 91 48 86 52 50 54 80 88 84 93 24 34 20 15 8 11 1 BICOMP - 19 27 102 132 164 17 16 15 22 33 7 29 103 113 109 37 4 0 6 31 1 35 115 92 96 88 83 76 79 69 + 68 76 40 166 234 66 65 63 71 82 55 78 41 91 48 86 52 50 54 80 88 84 93 24 34 20 15 8 11 1 + + + + + $PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\psock.c + + + ICCARM + 137 180 + + + BICOMP + 142 + + + + + ICCARM + 199 169 167 100 222 168 146 108 250 200 216 217 76 40 82 55 78 41 91 48 86 52 50 54 80 88 84 93 165 234 66 65 63 68 + + + BICOMP + 199 169 167 100 222 168 146 108 250 200 216 217 76 40 82 55 78 41 91 48 86 52 50 54 80 88 84 93 165 234 66 65 63 68 + + + + + $PROJ_DIR$\..\..\..\..\Source\fatfs\src\diskio.c + + + BICOMP + 114 + + + + + ICCARM + 99 97 + + + BICOMP + 99 97 + + + + + $PROJ_DIR$\..\..\..\..\Source\ARMCM3_LM3S\net.c + + + ICCARM + 174 173 + + + BICOMP + 184 + + + + + ICCARM + 82 55 78 41 91 48 86 52 50 54 80 88 84 93 39 68 76 40 165 71 + + + BICOMP + 82 55 78 41 91 48 86 52 50 54 80 88 84 93 39 68 76 40 165 71 + + + + + $PROJ_DIR$\..\bin\openbtl_ek_lm3s6965.out + + + ILINK + 233 + + + OBJCOPY + 104 + + + + + ILINK + 209 179 210 206 127 190 211 110 237 202 177 163 156 246 218 219 191 220 204 239 173 28 109 161 118 245 149 125 27 25 26 134 175 150 208 170 228 159 227 + + + + + $PROJ_DIR$\..\..\..\..\Source\filesys.c + + + ICCARM + 197 189 + + + BICOMP + 241 + + + + + ICCARM + 82 55 78 151 91 48 86 52 50 54 80 195 193 97 205 84 93 + + + BICOMP + 82 55 78 151 91 48 86 52 50 54 80 195 193 97 205 84 93 + + + + + $PROJ_DIR$\..\..\..\..\Source\fatfs\src\option\unicode.c + + + ICCARM + 194 175 + + + BICOMP + 186 + + + + + ICCARM + 193 97 18 117 + + + BICOMP + 193 97 18 117 diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Boot/ide/settings/lm3s6965.dbgdt b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Boot/ide/settings/lm3s6965.dbgdt index 472b288a..1f1aa1f3 100644 --- a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Boot/ide/settings/lm3s6965.dbgdt +++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Boot/ide/settings/lm3s6965.dbgdt @@ -39,7 +39,7 @@ - + TabID-4214-26312 @@ -51,20 +51,20 @@ - 0TabID-14429-10902Debug LogDebug-Log0TabID-29443-18340DisassemblyDisassembly0 + 0TabID-14429-10902Debug LogDebug-Log0TabID-29443-18340DisassemblyDisassembly0 - TextEditor$WS_DIR$\..\blt_conf.h000007349444944TextEditor$WS_DIR$\..\main.c0000040303830381TextEditor$WS_DIR$\..\..\..\..\Source\backdoor.c000002429782978TextEditor$WS_DIR$\..\lib\uip\netdev.c000005328622862TextEditor$WS_DIR$\..\..\..\..\Source\net.c0000085573957390100000010000001 + TextEditor$WS_DIR$\..\blt_conf.h000008866826682TextEditor$WS_DIR$\..\main.c00000403038303810100000010000001 - iaridepm.enu1debuggergui.enu1-2-2741285-2-2240243125000241071149479737103-2-2741198-2-2200200104167198413104167737103-2-21981922-2-219242001002083198413104167198413 + iaridepm.enu1debuggergui.enu1-2-2741285-2-2240243125000241071149479737103-2-2741198-2-2200200104167198413104167737103-2-21981922-2-219242001002083198413104167198413 diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Boot/ide/settings/lm3s6965.dni b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Boot/ide/settings/lm3s6965.dni index 270be5d3..be49cb82 100644 --- a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Boot/ide/settings/lm3s6965.dni +++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Boot/ide/settings/lm3s6965.dni @@ -9,7 +9,7 @@ TriggerName=main LimitSize=0 ByteLimit=50 [DebugChecksum] -Checksum=-789430103 +Checksum=260662230 [Exceptions] StopOnUncaught=_ 0 StopOnThrow=_ 0 diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Boot/ide/settings/lm3s6965.wsdt b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Boot/ide/settings/lm3s6965.wsdt index b69fa7d4..5eff32a9 100644 --- a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Boot/ide/settings/lm3s6965.wsdt +++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Boot/ide/settings/lm3s6965.wsdt @@ -17,7 +17,7 @@ 100Find-All-References2011553087730055278946300FileFunctionLine200700100300BuildFind-in-FilesFind-All-References664941138100Build664941138 - + TabID-31649-22318 @@ -25,24 +25,24 @@ Workspace - lm3s6965lm3s6965/Bootlm3s6965/Boot/liblm3s6965/Boot/lib/uiplm3s6965/Outputlm3s6965/Sourcelm3s6965/Source/ARMCM3_LM3Slm3s6965/Source/fatfs + lm3s6965lm3s6965/Bootlm3s6965/Boot/liblm3s6965/Outputlm3s6965/Sourcelm3s6965/Source/ARMCM3_LM3Slm3s6965/Source/fatfs - 0TabID-23631-11730BuildBuildTabID-25094-12726Ambiguous DefinitionsSelect-Ambiguous-Definitions0 + 0TabID-23631-11730BuildBuildTabID-25094-12726Ambiguous DefinitionsSelect-Ambiguous-Definitions0 - TextEditor$WS_DIR$\..\blt_conf.h000007349444944TextEditor$WS_DIR$\..\main.c0000040303830381TextEditor$WS_DIR$\..\..\..\..\Source\backdoor.c000002429782978TextEditor$WS_DIR$\..\lib\uip\netdev.c000005328622862TextEditor$WS_DIR$\..\..\..\..\Source\net.c0000085573957390100000010000001 + TextEditor$WS_DIR$\..\blt_conf.h000008866826682TextEditor$WS_DIR$\..\main.c00000403038303810100000010000001 - iaridepm.enu1-2-2563326-2-23723531937503501981708335605160007-2561258237134375235119170833398810 + iaridepm.enu1-2-2563326-2-23723531937503501981708335605160007-2561258237134375235119170833398810 diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Prog/bin/demoprog_ek_lm3s6965.out b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Prog/bin/demoprog_ek_lm3s6965.out index a615f9cc..9283dd69 100644 Binary files a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Prog/bin/demoprog_ek_lm3s6965.out and b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Prog/bin/demoprog_ek_lm3s6965.out differ diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Prog/ide/lm3s6965.dep b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Prog/ide/lm3s6965.dep index e45f2132..62fc1077 100644 --- a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Prog/ide/lm3s6965.dep +++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Prog/ide/lm3s6965.dep @@ -6,10 +6,89 @@ Debug - $PROJ_DIR$\..\lib\driverlib\adc.h - $PROJ_DIR$\..\lib\driverlib\cpu.c - $PROJ_DIR$\..\lib\driverlib\adc.c + $PROJ_DIR$\..\lib\inc\hw_epi.h + $PROJ_DIR$\..\lib\inc\hw_ethernet.h + $PROJ_DIR$\..\lib\inc\hw_flash.h + $PROJ_DIR$\..\lib\inc\hw_gpio.h + $PROJ_DIR$\..\lib\inc\hw_hibernate.h + $PROJ_DIR$\..\lib\inc\hw_i2c.h + $PROJ_DIR$\..\lib\inc\hw_i2s.h + $PROJ_DIR$\..\lib\inc\hw_ints.h + $PROJ_DIR$\..\lib\inc\hw_memmap.h + $PROJ_DIR$\..\lib\inc\hw_nvic.h + $PROJ_DIR$\..\lib\inc\hw_pwm.h + $PROJ_DIR$\..\lib\inc\hw_qei.h + $PROJ_DIR$\..\lib\inc\hw_ssi.h + $PROJ_DIR$\..\lib\inc\hw_sysctl.h + $PROJ_DIR$\..\lib\inc\hw_timer.h + $PROJ_DIR$\..\lib\inc\hw_types.h + $PROJ_DIR$\..\lib\inc\hw_uart.h + $PROJ_DIR$\..\lib\inc\hw_udma.h + $PROJ_DIR$\..\lib\inc\hw_usb.h + $PROJ_DIR$\..\lib\inc\hw_watchdog.h + $PROJ_DIR$\..\lib\uip\clock-arch.c + $PROJ_DIR$\..\lib\uip\clock-arch.h + $PROJ_DIR$\..\lib\uip\netdev.c + $PROJ_DIR$\..\lib\uip\netdev.h + $PROJ_DIR$\..\lib\uip\uip-conf.h + $PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\clock.h + $PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\uip-fw.c + $PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\uip-fw.h + $PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\uip.c + $PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\uip.h + $PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\uip_arch.h + $PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\uip_arp.c + $PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\uip_arp.h + $PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\uip_timer.c + $PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\uip_timer.h + $PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\uiplib.c + $PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\uiplib.h + $PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\uipopt.h + $PROJ_DIR$\..\boot.c + $PROJ_DIR$\..\boot.h + $PROJ_DIR$\..\cstart.s + $PROJ_DIR$\..\header.h + $PROJ_DIR$\..\irq.c + $PROJ_DIR$\..\irq.h + $PROJ_DIR$\..\led.c + $PROJ_DIR$\..\led.h + $PROJ_DIR$\..\main.c + $PROJ_DIR$\..\net.c + $PROJ_DIR$\..\net.h + $PROJ_DIR$\..\time.c + $PROJ_DIR$\..\time.h + $PROJ_DIR$\..\vectors.c + $PROJ_DIR$\..\obj\netdev.lst + $PROJ_DIR$\..\obj\net.o + $PROJ_DIR$\..\obj\uip_timer.lst + $PROJ_DIR$\..\obj\clock-arch.lst + $PROJ_DIR$\..\obj\uip-fw.lst + $PROJ_DIR$\..\obj\uip.lst + $PROJ_DIR$\..\obj\net.pbi + $PROJ_DIR$\..\obj\uip_arp.lst + $PROJ_DIR$\..\obj\uiplib.lst + $PROJ_DIR$\..\obj\stm32f10x_exti.o + $PROJ_DIR$\..\obj\irq.lst + $PROJ_DIR$\..\obj\sysctl.lst + $PROJ_DIR$\..\obj\uart.lst + $PROJ_DIR$\..\obj\qei.lst + $PROJ_DIR$\..\obj\demoprog_ek_lm3s6965.map + $PROJ_DIR$\..\obj\gpio.lst + $PROJ_DIR$\..\bin\demoprog_ek_lm3s6965.srec + $PROJ_DIR$\..\obj\core_cm3.o + $PROJ_DIR$\..\obj\epi.lst + $PROJ_DIR$\..\obj\stm32f10x_crc.o + $PROJ_DIR$\..\obj\stm32f10x_fsmc.o + $PROJ_DIR$\..\obj\interrupt.o + $PROJ_DIR$\..\obj\ethernet.lst + $PROJ_DIR$\..\obj\systick.o + $PROJ_DIR$\..\obj\udma.o + $PROJ_DIR$\..\obj\uart.o + $PROJ_DIR$\..\obj\sysctl.o $PROJ_DIR$\..\lib\driverlib\comp.c + $PROJ_DIR$\..\lib\driverlib\cpu.c + $PROJ_DIR$\..\lib\driverlib\adc.h + $PROJ_DIR$\..\lib\driverlib\adc.c $PROJ_DIR$\..\lib\driverlib\comp.h $PROJ_DIR$\..\lib\driverlib\cpu.h $PROJ_DIR$\..\lib\driverlib\debug.h @@ -53,157 +132,6 @@ $PROJ_DIR$\..\lib\driverlib\watchdog.h $PROJ_DIR$\..\lib\inc\hw_adc.h $PROJ_DIR$\..\lib\inc\hw_comp.h - $PROJ_DIR$\..\lib\inc\hw_epi.h - $PROJ_DIR$\..\lib\inc\hw_ethernet.h - $PROJ_DIR$\..\lib\inc\hw_flash.h - $PROJ_DIR$\..\lib\inc\hw_gpio.h - $PROJ_DIR$\..\lib\inc\hw_hibernate.h - $PROJ_DIR$\..\lib\inc\hw_i2c.h - $PROJ_DIR$\..\lib\inc\hw_i2s.h - $PROJ_DIR$\..\lib\inc\hw_ints.h - $PROJ_DIR$\..\lib\inc\hw_memmap.h - $PROJ_DIR$\..\lib\inc\hw_nvic.h - $PROJ_DIR$\..\lib\inc\hw_pwm.h - $PROJ_DIR$\..\lib\inc\hw_qei.h - $PROJ_DIR$\..\lib\inc\hw_ssi.h - $PROJ_DIR$\..\lib\inc\hw_sysctl.h - $PROJ_DIR$\..\lib\inc\hw_timer.h - $PROJ_DIR$\..\lib\inc\hw_types.h - $PROJ_DIR$\..\lib\inc\hw_uart.h - $PROJ_DIR$\..\lib\inc\hw_udma.h - $PROJ_DIR$\..\lib\inc\hw_usb.h - $PROJ_DIR$\..\lib\inc\hw_watchdog.h - $PROJ_DIR$\..\lib\uip\clock-arch.c - $PROJ_DIR$\..\lib\uip\clock-arch.h - $PROJ_DIR$\..\lib\uip\netdev.c - $PROJ_DIR$\..\lib\uip\netdev.h - $PROJ_DIR$\..\lib\uip\uip-conf.h - $PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\clock.h - $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_iwdg.c - $PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\uip-fw.h - $PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\uip-fw.c - $PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\uip.c - $PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\uip.h - $PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\uip_arch.h - $PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\uip_arp.c - $PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\uip_arp.h - $PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\uip_timer.c - $PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\uip_timer.h - $PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\uiplib.c - $PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\uiplib.h - $PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\uipopt.h - $PROJ_DIR$\..\boot.c - $PROJ_DIR$\..\boot.h - $PROJ_DIR$\..\cstart.s - $PROJ_DIR$\..\header.h - $PROJ_DIR$\..\irq.c - $PROJ_DIR$\..\irq.h - $PROJ_DIR$\..\led.c - $PROJ_DIR$\..\led.h - $PROJ_DIR$\..\main.c - $PROJ_DIR$\..\net.c - $PROJ_DIR$\..\net.h - $PROJ_DIR$\..\time.c - $PROJ_DIR$\..\time.h - $PROJ_DIR$\..\vectors.c - $PROJ_DIR$\..\obj\flash.lst - $PROJ_DIR$\..\obj\misc.o - $PROJ_DIR$\..\obj\stm32f10x_dbgmcu.pbi - $TOOLKIT_DIR$\lib\rt7M_tl.a - $PROJ_DIR$\..\obj\stm32f10x_i2c.o - $PROJ_DIR$\..\obj\stm32f10x_gpio.o - $PROJ_DIR$\..\obj\stm32f10x_i2c.pbi - $PROJ_DIR$\..\obj\stm32f10x_iwdg.o - $PROJ_DIR$\..\obj\stm32f10x_cec.o - $PROJ_DIR$\..\obj\stm32f10x_cec.pbi - $PROJ_DIR$\..\obj\stm32f10x_pwr.o - $PROJ_DIR$\..\obj\stm32f10x_rcc.o - $PROJ_DIR$\..\obj\stm32f10x_rtc.o - $PROJ_DIR$\..\obj\stm32f10x_sdio.o - $PROJ_DIR$\..\obj\stm32f10x_spi.o - $PROJ_DIR$\..\obj\stm32f10x_tim.o - $PROJ_DIR$\..\obj\stm32f10x_usart.o - $PROJ_DIR$\..\obj\stm32f10x_wwdg.o - $PROJ_DIR$\..\obj\system_stm32f10x.o - $PROJ_DIR$\..\obj\core_cm3.pbi - $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_cec.c - $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_crc.c - $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_dac.c - $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_dbgmcu.c - $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_dma.c - $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_exti.c - $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_flash.c - $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_fsmc.c - $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_gpio.c - $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_i2c.c - $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_pwr.c - $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_rcc.c - $PROJ_DIR$\..\obj\stm32f10x_tim.pbi - $PROJ_DIR$\..\obj\stm32f10x_spi.pbi - $PROJ_DIR$\..\obj\epi.pbi - $PROJ_DIR$\..\obj\ethernet.pbi - $PROJ_DIR$\..\obj\flash.pbi - $PROJ_DIR$\..\obj\gpio.pbi - $PROJ_DIR$\..\obj\hibernate.pbi - $PROJ_DIR$\..\obj\i2c.pbi - $PROJ_DIR$\..\obj\i2s.pbi - $PROJ_DIR$\..\obj\interrupt.pbi - $PROJ_DIR$\..\obj\mpu.pbi - $PROJ_DIR$\..\obj\pwm.pbi - $TOOLKIT_DIR$\inc\c\ysizet.h - $TOOLKIT_DIR$\inc\c\DLib_Product_string.h - $TOOLKIT_DIR$\inc\c\DLib_Threads.h - $TOOLKIT_DIR$\inc\c\DLib_Defaults.h - $TOOLKIT_DIR$\inc\c\xencoding_limits.h - $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\misc.c - $PROJ_DIR$\..\lib\stdperiphlib\CMSIS\CM3\CoreSupport\core_cm3.c - $TOOLKIT_DIR$\inc\c\DLib_Config_Normal.h - $TOOLKIT_DIR$\inc\c\DLib_Product.h - $TOOLKIT_DIR$\inc\c\string.h - $TOOLKIT_DIR$\inc\c\ycheck.h - $TOOLKIT_DIR$\inc\c\yvals.h - $PROJ_DIR$\..\obj\uiplib.pbi - $PROJ_DIR$\..\obj\uip_timer.pbi - $PROJ_DIR$\..\obj\uip_arp.pbi - $PROJ_DIR$\..\obj\uip-fw.pbi - $PROJ_DIR$\..\obj\uip.pbi - $PROJ_DIR$\..\obj\uiplib.o - $PROJ_DIR$\..\obj\uip_arp.o - $PROJ_DIR$\..\obj\uip_timer.o - $PROJ_DIR$\..\obj\uip-fw.o - $PROJ_DIR$\..\obj\uip.o - $PROJ_DIR$\..\obj\netdev.pbi - $PROJ_DIR$\..\obj\netdev.o - $PROJ_DIR$\..\obj\clock-arch.pbi - $PROJ_DIR$\..\obj\clock-arch.o - $PROJ_DIR$\..\obj\net.lst - $PROJ_DIR$\..\obj\netdev.lst - $PROJ_DIR$\..\obj\net.o - $PROJ_DIR$\..\obj\uip_timer.lst - $PROJ_DIR$\..\obj\clock-arch.lst - $PROJ_DIR$\..\obj\uip-fw.lst - $PROJ_DIR$\..\obj\uip.lst - $PROJ_DIR$\..\obj\net.pbi - $PROJ_DIR$\..\obj\uip_arp.lst - $PROJ_DIR$\..\obj\uiplib.lst - $PROJ_DIR$\..\obj\stm32f10x_exti.o - $PROJ_DIR$\..\obj\irq.lst - $PROJ_DIR$\..\obj\sysctl.lst - $PROJ_DIR$\..\obj\uart.lst - $PROJ_DIR$\..\obj\qei.lst - $PROJ_DIR$\..\obj\demoprog_ek_lm3s6965.map - $PROJ_DIR$\..\obj\gpio.lst - $PROJ_DIR$\..\bin\demoprog_ek_lm3s6965.srec - $PROJ_DIR$\..\obj\core_cm3.o - $PROJ_DIR$\..\obj\epi.lst - $PROJ_DIR$\..\obj\stm32f10x_crc.o - $PROJ_DIR$\..\obj\stm32f10x_fsmc.o - $PROJ_DIR$\..\obj\interrupt.o - $PROJ_DIR$\..\obj\ethernet.lst - $PROJ_DIR$\..\obj\systick.o - $PROJ_DIR$\..\obj\udma.o - $PROJ_DIR$\..\obj\uart.o - $PROJ_DIR$\..\obj\sysctl.o $PROJ_DIR$\..\obj\ssi.o $PROJ_DIR$\..\obj\qei.o $PROJ_DIR$\..\obj\pwm.o @@ -225,6 +153,66 @@ $PROJ_DIR$\..\obj\boot.pbi $PROJ_DIR$\..\obj\stm32f10x_pwr.pbi $PROJ_DIR$\..\obj\stm32f10x_sdio.pbi + $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_i2c.c + $PROJ_DIR$\..\obj\flash.lst + $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_iwdg.c + $PROJ_DIR$\..\obj\misc.o + $PROJ_DIR$\..\obj\stm32f10x_gpio.o + $PROJ_DIR$\..\obj\stm32f10x_iwdg.o + $PROJ_DIR$\..\obj\stm32f10x_i2c.pbi + $PROJ_DIR$\..\obj\stm32f10x_i2c.o + $PROJ_DIR$\..\obj\stm32f10x_cec.o + $TOOLKIT_DIR$\lib\rt7M_tl.a + $PROJ_DIR$\..\obj\stm32f10x_dbgmcu.pbi + $PROJ_DIR$\..\obj\stm32f10x_cec.pbi + $PROJ_DIR$\..\obj\stm32f10x_pwr.o + $PROJ_DIR$\..\obj\stm32f10x_rcc.o + $PROJ_DIR$\..\obj\stm32f10x_rtc.o + $PROJ_DIR$\..\obj\stm32f10x_sdio.o + $PROJ_DIR$\..\obj\stm32f10x_spi.o + $PROJ_DIR$\..\obj\stm32f10x_tim.o + $PROJ_DIR$\..\obj\stm32f10x_usart.o + $PROJ_DIR$\..\obj\stm32f10x_wwdg.o + $PROJ_DIR$\..\obj\system_stm32f10x.o + $PROJ_DIR$\..\obj\core_cm3.pbi + $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_cec.c + $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_crc.c + $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_dac.c + $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_dbgmcu.c + $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_dma.c + $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_exti.c + $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_flash.c + $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_fsmc.c + $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_gpio.c + $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_pwr.c + $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_rcc.c + $PROJ_DIR$\..\obj\stm32f10x_tim.pbi + $PROJ_DIR$\..\obj\stm32f10x_spi.pbi + $PROJ_DIR$\..\obj\epi.pbi + $PROJ_DIR$\..\obj\ethernet.pbi + $PROJ_DIR$\..\obj\flash.pbi + $PROJ_DIR$\..\obj\gpio.pbi + $PROJ_DIR$\..\obj\hibernate.pbi + $PROJ_DIR$\..\obj\i2c.pbi + $PROJ_DIR$\..\obj\i2s.pbi + $PROJ_DIR$\..\obj\interrupt.pbi + $PROJ_DIR$\..\obj\mpu.pbi + $PROJ_DIR$\..\obj\pwm.pbi + $TOOLKIT_DIR$\inc\c\ysizet.h + $TOOLKIT_DIR$\inc\c\DLib_Product_string.h + $TOOLKIT_DIR$\inc\c\DLib_Threads.h + $TOOLKIT_DIR$\inc\c\DLib_Defaults.h + $TOOLKIT_DIR$\inc\c\xencoding_limits.h + $TOOLKIT_DIR$\inc\c\DLib_Config_Normal.h + $TOOLKIT_DIR$\inc\c\DLib_Product.h + $TOOLKIT_DIR$\inc\c\string.h + $TOOLKIT_DIR$\inc\c\ycheck.h + $TOOLKIT_DIR$\inc\c\yvals.h + $PROJ_DIR$\..\obj\uiplib.pbi + $PROJ_DIR$\..\obj\uip_timer.pbi + $PROJ_DIR$\..\obj\uip_arp.pbi + $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\misc.c + $PROJ_DIR$\..\lib\stdperiphlib\CMSIS\CM3\CoreSupport\core_cm3.c $PROJ_DIR$\..\..\Boot\blt_conf.h $PROJ_DIR$\..\obj\stm32f10x_iwdg.pbi $PROJ_DIR$\..\obj\ethernet.o @@ -312,367 +300,126 @@ $PROJ_DIR$\..\obj\stm32f10x_adc.pbi $PROJ_DIR$\..\obj\stm32f10x_dac.pbi $PROJ_DIR$\..\obj\stm32f10x_bkp.pbi + $PROJ_DIR$\..\obj\uip-fw.pbi + $PROJ_DIR$\..\obj\uip.pbi + $PROJ_DIR$\..\obj\uiplib.o + $PROJ_DIR$\..\obj\uip_arp.o + $PROJ_DIR$\..\obj\uip_timer.o + $PROJ_DIR$\..\obj\uip-fw.o + $PROJ_DIR$\..\obj\uip.o + $PROJ_DIR$\..\obj\netdev.pbi + $PROJ_DIR$\..\obj\netdev.o + $PROJ_DIR$\..\obj\clock-arch.pbi + $PROJ_DIR$\..\obj\clock-arch.o + $PROJ_DIR$\..\obj\net.lst [ROOT_NODE] ILINK - 236 185 + 224 66 - $PROJ_DIR$\..\lib\driverlib\cpu.c + $PROJ_DIR$\..\lib\uip\clock-arch.c ICCARM - 258 293 + 55 304 BICOMP - 234 + 303 ICCARM - 5 + 41 207 39 43 45 50 48 7 8 9 13 15 111 93 117 101 113 21 BICOMP - 5 + 41 207 39 43 45 50 48 7 8 9 13 15 111 93 117 101 113 21 - $PROJ_DIR$\..\lib\driverlib\adc.c + $PROJ_DIR$\..\lib\uip\netdev.c ICCARM - 291 224 + 52 302 BICOMP - 242 + 301 ICCARM - 45 54 55 62 0 6 22 + 41 207 39 43 45 50 48 7 8 9 13 15 111 93 117 101 113 29 37 24 32 1 89 91 BICOMP - 45 54 55 62 0 6 22 + 41 207 39 43 45 50 48 7 8 9 13 15 111 93 117 101 113 29 37 24 32 1 89 91 - $PROJ_DIR$\..\lib\driverlib\comp.c + $PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\uip-fw.c ICCARM - 261 225 + 56 299 BICOMP - 233 + 294 ICCARM - 46 54 55 62 4 6 22 + 29 37 24 39 48 30 27 199 200 201 195 197 198 196 194 192 193 BICOMP - 46 54 55 62 4 6 22 + 29 37 24 39 48 30 27 199 200 201 195 197 198 196 194 192 193 - $PROJ_DIR$\..\lib\driverlib\epi.c + $PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\uip.c ICCARM - 189 275 + 57 300 BICOMP - 134 + 295 ICCARM - 47 54 55 62 6 8 22 + 29 37 24 39 48 30 199 200 201 195 197 198 196 194 192 193 BICOMP - 47 54 55 62 6 8 22 + 29 37 24 39 48 30 199 200 201 195 197 198 196 194 192 193 - $PROJ_DIR$\..\lib\driverlib\ethernet.c + $PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\uip_arp.c ICCARM - 193 221 - - - BICOMP - 135 - - - - - ICCARM - 48 54 55 62 6 10 32 22 - - - BICOMP - 48 54 55 62 6 10 32 22 - - - - - $PROJ_DIR$\..\lib\driverlib\flash.c - - - ICCARM - 100 228 - - - BICOMP - 136 - - - - - ICCARM - 49 54 60 62 6 12 22 - - - BICOMP - 49 54 60 62 6 12 22 - - - - - $PROJ_DIR$\..\lib\driverlib\gpio.c - - - ICCARM - 186 229 - - - BICOMP - 137 - - - - - ICCARM - 50 54 55 60 62 6 14 22 - - - BICOMP - 50 54 55 60 62 6 14 22 - - - - - $PROJ_DIR$\..\lib\driverlib\hibernate.c - - - ICCARM - 235 230 - - - BICOMP - 138 - - - - - ICCARM - 51 54 60 62 6 16 32 22 - - - BICOMP - 51 54 60 62 6 16 32 22 - - - - - $PROJ_DIR$\..\lib\driverlib\i2c.c - - - ICCARM - 301 231 - - - BICOMP - 139 - - - - - ICCARM - 52 54 55 60 62 6 18 32 22 - - - BICOMP - 52 54 55 60 62 6 18 32 22 - - - - - $PROJ_DIR$\..\lib\driverlib\i2s.c - - - ICCARM - 252 232 - - - BICOMP - 140 - - - - - ICCARM - 53 54 55 62 6 20 22 - - - BICOMP - 53 54 55 62 6 20 22 - - - - - $PROJ_DIR$\..\lib\driverlib\interrupt.c - - - ICCARM - 264 192 - - - BICOMP - 141 - - - - - ICCARM - 54 56 62 5 6 22 - - - BICOMP - 54 56 62 5 6 22 - - - - - $PROJ_DIR$\..\lib\driverlib\mpu.c - - - ICCARM - 223 201 - - - BICOMP - 142 - - - - - ICCARM - 54 56 62 6 22 24 - - - BICOMP - 54 56 62 6 22 24 - - - - - $PROJ_DIR$\..\lib\driverlib\pwm.c - - - ICCARM - 297 200 - - - BICOMP - 143 - - - - - ICCARM - 54 55 57 60 62 6 22 26 - - - BICOMP - 54 55 57 60 62 6 22 26 - - - - - $PROJ_DIR$\..\lib\driverlib\qei.c - - - ICCARM - 184 199 - - - BICOMP - 202 - - - - - ICCARM - 54 55 58 62 6 22 28 - - - BICOMP - 54 55 58 62 6 22 28 - - - - - $PROJ_DIR$\..\lib\driverlib\ssi.c - - - ICCARM - 280 198 - - - BICOMP - 203 - - - - - ICCARM - 54 55 59 62 6 22 30 32 - - - BICOMP - 54 55 59 62 6 22 30 32 - - - - - $PROJ_DIR$\..\lib\driverlib\sysctl.c - - - ICCARM - 182 197 + 59 297 BICOMP @@ -682,277 +429,11 @@ ICCARM - 54 56 60 62 5 6 22 32 + 32 29 37 24 39 48 199 200 201 195 197 198 196 194 192 193 BICOMP - 54 56 60 62 5 6 22 32 - - - - - $PROJ_DIR$\..\lib\driverlib\systick.c - - - ICCARM - 222 194 - - - BICOMP - 205 - - - - - ICCARM - 54 56 62 6 22 34 - - - BICOMP - 54 56 62 6 22 34 - - - - - $PROJ_DIR$\..\lib\driverlib\timer.c - - - ICCARM - 283 215 - - - BICOMP - 277 - - - - - ICCARM - 54 55 61 62 6 22 36 - - - BICOMP - 54 55 61 62 6 22 36 - - - - - $PROJ_DIR$\..\lib\driverlib\uart.c - - - ICCARM - 183 196 - - - BICOMP - 206 - - - - - ICCARM - 54 55 60 62 63 6 22 38 32 - - - BICOMP - 54 55 60 62 63 6 22 38 32 - - - - - $PROJ_DIR$\..\lib\driverlib\udma.c - - - ICCARM - 295 195 - - - BICOMP - 207 - - - - - ICCARM - 62 64 6 22 40 - - - BICOMP - 62 64 6 22 40 - - - - - $PROJ_DIR$\..\lib\driverlib\usb.c - - - ICCARM - 294 243 - - - BICOMP - 208 - - - - - ICCARM - 54 55 62 65 6 22 40 42 - - - BICOMP - 54 55 62 65 6 22 40 42 - - - - - $PROJ_DIR$\..\lib\driverlib\watchdog.c - - - ICCARM - 227 241 - - - BICOMP - 209 - - - - - ICCARM - 54 55 62 66 6 22 44 - - - BICOMP - 54 55 62 66 6 22 44 - - - - - $PROJ_DIR$\..\lib\uip\clock-arch.c - - - ICCARM - 174 169 - - - BICOMP - 168 - - - - - ICCARM - 89 219 87 91 93 98 96 54 55 56 60 62 32 14 38 22 34 68 - - - BICOMP - 89 219 87 91 93 98 96 54 55 56 60 62 32 14 38 22 34 68 - - - - - $PROJ_DIR$\..\lib\uip\netdev.c - - - ICCARM - 171 167 - - - BICOMP - 166 - - - - - ICCARM - 89 219 87 91 93 98 96 54 55 56 60 62 32 14 38 22 34 77 85 71 80 48 10 12 - - - BICOMP - 89 219 87 91 93 98 96 54 55 56 60 62 32 14 38 22 34 77 85 71 80 48 10 12 - - - - - $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_iwdg.c - - - ICCARM - 107 - - - BICOMP - 220 - - - - - $PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\uip-fw.c - - - ICCARM - 175 164 - - - BICOMP - 159 - - - - - ICCARM - 77 85 71 87 96 78 74 153 154 155 147 151 152 148 146 144 145 - - - BICOMP - 77 85 71 87 96 78 74 153 154 155 147 151 152 148 146 144 145 - - - - - $PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\uip.c - - - ICCARM - 176 165 - - - BICOMP - 160 - - - - - ICCARM - 77 85 71 87 96 78 153 154 155 147 151 152 148 146 144 145 - - - BICOMP - 77 85 71 87 96 78 153 154 155 147 151 152 148 146 144 145 - - - - - $PROJ_DIR$\..\..\..\..\Source\third_party\uip\uip\uip_arp.c - - - ICCARM - 178 162 - - - BICOMP - 158 - - - - - ICCARM - 80 77 85 71 87 96 153 154 155 147 151 152 148 146 144 145 - - - BICOMP - 80 77 85 71 87 96 153 154 155 147 151 152 148 146 144 145 + 32 29 37 24 39 48 199 200 201 195 197 198 196 194 192 193 @@ -961,21 +442,21 @@ ICCARM - 173 163 + 54 298 BICOMP - 157 + 203 ICCARM - 72 68 82 + 25 21 34 BICOMP - 72 68 82 + 25 21 34 @@ -984,21 +465,21 @@ ICCARM - 179 161 + 60 296 BICOMP - 156 + 202 ICCARM - 77 85 71 87 96 84 + 29 37 24 39 48 36 BICOMP - 77 85 71 87 96 84 + 29 37 24 39 48 36 @@ -1007,21 +488,21 @@ ICCARM - 278 247 + 266 235 BICOMP - 216 + 144 ICCARM - 89 219 87 91 93 98 96 54 55 56 60 62 32 14 38 22 34 + 41 207 39 43 45 50 48 7 8 9 13 15 111 93 117 101 113 BICOMP - 89 219 87 91 93 98 96 54 55 56 60 62 32 14 38 22 34 + 41 207 39 43 45 50 48 7 8 9 13 15 111 93 117 101 113 @@ -1030,7 +511,7 @@ AARM - 237 + 225 @@ -1039,21 +520,21 @@ ICCARM - 181 253 + 62 241 BICOMP - 254 + 242 ICCARM - 89 219 87 91 93 98 96 54 55 56 60 62 32 14 38 22 34 + 41 207 39 43 45 50 48 7 8 9 13 15 111 93 117 101 113 BICOMP - 89 219 87 91 93 98 96 54 55 56 60 62 32 14 38 22 34 + 41 207 39 43 45 50 48 7 8 9 13 15 111 93 117 101 113 @@ -1062,21 +543,21 @@ ICCARM - 240 244 + 228 232 BICOMP - 268 + 256 ICCARM - 89 219 87 91 93 98 96 54 55 56 60 62 32 14 38 22 34 + 41 207 39 43 45 50 48 7 8 9 13 15 111 93 117 101 113 BICOMP - 89 219 87 91 93 98 96 54 55 56 60 62 32 14 38 22 34 + 41 207 39 43 45 50 48 7 8 9 13 15 111 93 117 101 113 @@ -1085,21 +566,21 @@ ICCARM - 284 260 + 272 248 BICOMP - 267 + 255 ICCARM - 89 219 87 91 93 98 96 54 55 56 60 62 32 14 38 22 34 + 41 207 39 43 45 50 48 7 8 9 13 15 111 93 117 101 113 BICOMP - 89 219 87 91 93 98 96 54 55 56 60 62 32 14 38 22 34 + 41 207 39 43 45 50 48 7 8 9 13 15 111 93 117 101 113 @@ -1108,21 +589,21 @@ ICCARM - 170 172 + 305 53 BICOMP - 177 + 58 ICCARM - 89 219 87 91 93 98 96 54 55 56 60 62 32 14 38 22 34 70 77 85 71 80 + 41 207 39 43 45 50 48 7 8 9 13 15 111 93 117 101 113 23 29 37 24 32 BICOMP - 89 219 87 91 93 98 96 54 55 56 60 62 32 14 38 22 34 70 77 85 71 80 + 41 207 39 43 45 50 48 7 8 9 13 15 111 93 117 101 113 23 29 37 24 32 @@ -1131,21 +612,21 @@ ICCARM - 226 257 + 214 245 BICOMP - 251 + 239 ICCARM - 89 219 87 91 93 98 96 54 55 56 60 62 32 14 38 22 34 + 41 207 39 43 45 50 48 7 8 9 13 15 111 93 117 101 113 BICOMP - 89 219 87 91 93 98 96 54 55 56 60 62 32 14 38 22 34 + 41 207 39 43 45 50 48 7 8 9 13 15 111 93 117 101 113 @@ -1154,34 +635,566 @@ ICCARM - 289 214 + 277 142 BICOMP - 288 + 276 ICCARM - 89 219 87 91 93 98 96 54 55 56 60 62 32 14 38 22 34 + 41 207 39 43 45 50 48 7 8 9 13 15 111 93 117 101 113 BICOMP - 89 219 87 91 93 98 96 54 55 56 60 62 32 14 38 22 34 + 41 207 39 43 45 50 48 7 8 9 13 15 111 93 117 101 113 + + $PROJ_DIR$\..\lib\driverlib\comp.c + + + ICCARM + 249 213 + + + BICOMP + 221 + + + + + ICCARM + 125 7 8 15 83 85 101 + + + BICOMP + 125 7 8 15 83 85 101 + + + + + $PROJ_DIR$\..\lib\driverlib\cpu.c + + + ICCARM + 246 281 + + + BICOMP + 222 + + + + + ICCARM + 84 + + + BICOMP + 84 + + + + + $PROJ_DIR$\..\lib\driverlib\adc.c + + + ICCARM + 279 212 + + + BICOMP + 230 + + + + + ICCARM + 124 7 8 15 81 85 101 + + + BICOMP + 124 7 8 15 81 85 101 + + + + + $PROJ_DIR$\..\lib\driverlib\epi.c + + + ICCARM + 70 263 + + + BICOMP + 182 + + + + + ICCARM + 0 7 8 15 85 87 101 + + + BICOMP + 0 7 8 15 85 87 101 + + + + + $PROJ_DIR$\..\lib\driverlib\ethernet.c + + + ICCARM + 74 209 + + + BICOMP + 183 + + + + + ICCARM + 1 7 8 15 85 89 111 101 + + + BICOMP + 1 7 8 15 85 89 111 101 + + + + + $PROJ_DIR$\..\lib\driverlib\flash.c + + + ICCARM + 148 216 + + + BICOMP + 184 + + + + + ICCARM + 2 7 13 15 85 91 101 + + + BICOMP + 2 7 13 15 85 91 101 + + + + + $PROJ_DIR$\..\lib\driverlib\gpio.c + + + ICCARM + 67 217 + + + BICOMP + 185 + + + + + ICCARM + 3 7 8 13 15 85 93 101 + + + BICOMP + 3 7 8 13 15 85 93 101 + + + + + $PROJ_DIR$\..\lib\driverlib\hibernate.c + + + ICCARM + 223 218 + + + BICOMP + 186 + + + + + ICCARM + 4 7 13 15 85 95 111 101 + + + BICOMP + 4 7 13 15 85 95 111 101 + + + + + $PROJ_DIR$\..\lib\driverlib\i2c.c + + + ICCARM + 289 219 + + + BICOMP + 187 + + + + + ICCARM + 5 7 8 13 15 85 97 111 101 + + + BICOMP + 5 7 8 13 15 85 97 111 101 + + + + + $PROJ_DIR$\..\lib\driverlib\i2s.c + + + ICCARM + 240 220 + + + BICOMP + 188 + + + + + ICCARM + 6 7 8 15 85 99 101 + + + BICOMP + 6 7 8 15 85 99 101 + + + + + $PROJ_DIR$\..\lib\driverlib\interrupt.c + + + ICCARM + 252 73 + + + BICOMP + 189 + + + + + ICCARM + 7 9 15 84 85 101 + + + BICOMP + 7 9 15 84 85 101 + + + + + $PROJ_DIR$\..\lib\driverlib\mpu.c + + + ICCARM + 211 129 + + + BICOMP + 190 + + + + + ICCARM + 7 9 15 85 101 103 + + + BICOMP + 7 9 15 85 101 103 + + + + + $PROJ_DIR$\..\lib\driverlib\pwm.c + + + ICCARM + 285 128 + + + BICOMP + 191 + + + + + ICCARM + 7 8 10 13 15 85 101 105 + + + BICOMP + 7 8 10 13 15 85 101 105 + + + + + $PROJ_DIR$\..\lib\driverlib\qei.c + + + ICCARM + 65 127 + + + BICOMP + 130 + + + + + ICCARM + 7 8 11 15 85 101 107 + + + BICOMP + 7 8 11 15 85 101 107 + + + + + $PROJ_DIR$\..\lib\driverlib\ssi.c + + + ICCARM + 268 126 + + + BICOMP + 131 + + + + + ICCARM + 7 8 12 15 85 101 109 111 + + + BICOMP + 7 8 12 15 85 101 109 111 + + + + + $PROJ_DIR$\..\lib\driverlib\sysctl.c + + + ICCARM + 63 78 + + + BICOMP + 132 + + + + + ICCARM + 7 9 13 15 84 85 101 111 + + + BICOMP + 7 9 13 15 84 85 101 111 + + + + + $PROJ_DIR$\..\lib\driverlib\systick.c + + + ICCARM + 210 75 + + + BICOMP + 133 + + + + + ICCARM + 7 9 15 85 101 113 + + + BICOMP + 7 9 15 85 101 113 + + + + + $PROJ_DIR$\..\lib\driverlib\timer.c + + + ICCARM + 271 143 + + + BICOMP + 265 + + + + + ICCARM + 7 8 14 15 85 101 115 + + + BICOMP + 7 8 14 15 85 101 115 + + + + + $PROJ_DIR$\..\lib\driverlib\uart.c + + + ICCARM + 64 77 + + + BICOMP + 134 + + + + + ICCARM + 7 8 13 15 16 85 101 117 111 + + + BICOMP + 7 8 13 15 16 85 101 117 111 + + + + + $PROJ_DIR$\..\lib\driverlib\udma.c + + + ICCARM + 283 76 + + + BICOMP + 135 + + + + + ICCARM + 15 17 85 101 119 + + + BICOMP + 15 17 85 101 119 + + + + + $PROJ_DIR$\..\lib\driverlib\usb.c + + + ICCARM + 282 231 + + + BICOMP + 136 + + + + + ICCARM + 7 8 15 18 85 101 119 121 + + + BICOMP + 7 8 15 18 85 101 119 121 + + + + + $PROJ_DIR$\..\lib\driverlib\watchdog.c + + + ICCARM + 215 229 + + + BICOMP + 137 + + + + + ICCARM + 7 8 15 19 85 101 123 + + + BICOMP + 7 8 15 19 85 101 123 + + + + + $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_i2c.c + + + ICCARM + 154 + + + BICOMP + 153 + + + + + $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_iwdg.c + + + ICCARM + 152 + + + BICOMP + 208 + + + $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_cec.c ICCARM - 108 + 155 BICOMP - 109 + 158 @@ -1190,11 +1203,11 @@ ICCARM - 190 + 71 BICOMP - 238 + 226 @@ -1203,11 +1216,11 @@ ICCARM - 212 + 140 BICOMP - 304 + 292 @@ -1216,11 +1229,11 @@ ICCARM - 211 + 139 BICOMP - 102 + 157 @@ -1229,243 +1242,7 @@ ICCARM - 213 - - - BICOMP - 298 - - - - - $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_exti.c - - - ICCARM - 180 - - - BICOMP - 281 - - - - - $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_flash.c - - - ICCARM - 299 - - - BICOMP - 276 - - - - - $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_fsmc.c - - - ICCARM - 191 - - - BICOMP - 279 - - - - - $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_gpio.c - - - ICCARM - 105 - - - BICOMP - 282 - - - - - $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_i2c.c - - - ICCARM - 104 - - - BICOMP - 106 - - - - - $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_pwr.c - - - ICCARM - 110 - - - BICOMP - 217 - - - - - $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_rcc.c - - - ICCARM - 111 - - - BICOMP - 274 - - - - - $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\misc.c - - - ICCARM - 101 - - - BICOMP - 270 - - - - - $PROJ_DIR$\..\lib\stdperiphlib\CMSIS\CM3\CoreSupport\core_cm3.c - - - ICCARM - 188 - - - BICOMP - 119 - - - - - $PROJ_DIR$\..\bin\demoprog_ek_lm3s6965.out - - - ILINK - 185 - - - OBJCOPY - 187 - - - - - ILINK - 210 224 247 169 225 293 237 275 221 228 229 230 231 232 192 253 244 260 201 172 167 200 199 198 197 194 257 215 196 195 164 165 162 163 161 243 214 241 248 103 287 290 - - - - - $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_spi.c - - - ICCARM - 114 - - - BICOMP - 133 - - - - - $PROJ_DIR$\..\bin\demoprog_olimex_stm32p103.out - - - OBJCOPY - 246 - - - - - $PROJ_DIR$\..\timer.c - - - ICCARM - 215 - - - BICOMP - 277 - - - - - $PROJ_DIR$\..\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.c - - - ICCARM - 118 - - - BICOMP - 271 - - - - - $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_rtc.c - - - ICCARM - 112 - - - BICOMP - 285 - - - - - $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_tim.c - - - ICCARM - 115 - - - BICOMP - 132 - - - - - $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_sdio.c - - - ICCARM - 113 - - - BICOMP - 218 - - - - - $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_usart.c - - - ICCARM - 116 + 141 BICOMP @@ -1473,16 +1250,239 @@ + + $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_exti.c + + + ICCARM + 61 + + + BICOMP + 269 + + + + + $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_flash.c + + + ICCARM + 287 + + + BICOMP + 264 + + + + + $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_fsmc.c + + + ICCARM + 72 + + + BICOMP + 267 + + + + + $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_gpio.c + + + ICCARM + 151 + + + BICOMP + 270 + + + + + $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_pwr.c + + + ICCARM + 159 + + + BICOMP + 145 + + + + + $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_rcc.c + + + ICCARM + 160 + + + BICOMP + 262 + + + + + $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\misc.c + + + ICCARM + 150 + + + BICOMP + 258 + + + + + $PROJ_DIR$\..\lib\stdperiphlib\CMSIS\CM3\CoreSupport\core_cm3.c + + + ICCARM + 69 + + + BICOMP + 168 + + + + + $PROJ_DIR$\..\bin\demoprog_ek_lm3s6965.out + + + ILINK + 66 + + + OBJCOPY + 68 + + + + + ILINK + 138 212 235 304 213 281 225 263 209 216 217 218 219 220 73 241 232 248 129 53 302 128 127 126 78 75 245 143 77 76 299 300 297 298 296 231 142 229 236 156 275 278 + + + + + $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_spi.c + + + ICCARM + 163 + + + BICOMP + 181 + + + + + $PROJ_DIR$\..\bin\demoprog_olimex_stm32p103.out + + + OBJCOPY + 234 + + + + + $PROJ_DIR$\..\timer.c + + + ICCARM + 143 + + + BICOMP + 265 + + + + + $PROJ_DIR$\..\lib\stdperiphlib\CMSIS\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.c + + + ICCARM + 167 + + + BICOMP + 259 + + + + + $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_rtc.c + + + ICCARM + 161 + + + BICOMP + 273 + + + + + $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_tim.c + + + ICCARM + 164 + + + BICOMP + 180 + + + + + $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_sdio.c + + + ICCARM + 162 + + + BICOMP + 146 + + + + + $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_usart.c + + + ICCARM + 165 + + + BICOMP + 274 + + + $PROJ_DIR$\..\lib\stdperiphlib\STM32F10x_StdPeriph_Driver\src\stm32f10x_wwdg.c ICCARM - 117 + 166 BICOMP - 272 + 260 @@ -1491,11 +1491,11 @@ ICCARM - 239 + 227 BICOMP - 300 + 288 @@ -1504,11 +1504,11 @@ ICCARM - 269 + 257 BICOMP - 303 + 291 @@ -1517,11 +1517,11 @@ ICCARM - 302 + 290 BICOMP - 305 + 293 diff --git a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Prog/ide/settings/lm3s6965.wsdt b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Prog/ide/settings/lm3s6965.wsdt index 60968397..f93cd1db 100644 --- a/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Prog/ide/settings/lm3s6965.wsdt +++ b/Target/Demo/ARMCM3_LM3S_EK_LM3S6965_IAR/Prog/ide/settings/lm3s6965.wsdt @@ -53,14 +53,14 @@ - TextEditor$WS_DIR$\..\led.c000004530723072TextEditor$WS_DIR$\..\boot.c000004510981098TextEditor$WS_DIR$\..\main.c000004931283128TextEditor$WS_DIR$\..\lib\uip\netdev.c0000084450945093TextEditor$WS_DIR$\..\net.c0000068436743670100000010000001 + TextEditor$WS_DIR$\..\led.c000004530723072TextEditor$WS_DIR$\..\main.c00000493128312810100000010000001 - iaridepm.enu1-2-2765357-2-218620596875203373186979760913-2-21981922-2-219242001002083198413104167198413 + iaridepm.enu1-2-2765357-2-218620596875203373186979760913-2-21981922-2-219242001002083198413104167198413