summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXaviDCR92 <xavi.dcr@gmail.com>2018-07-09 19:26:13 +0200
committerXaviDCR92 <xavi.dcr@gmail.com>2018-07-09 19:26:13 +0200
commitf0b654b9bf3bc2a93c1f89d4cc3edcf77b948555 (patch)
tree91b7404dca0b6eb136cb7f9b144435419144b777
parentd85464781580796bbcc744ae732e56d1920e3b0f (diff)
downloadpocketempires-f0b654b9bf3bc2a93c1f89d4cc3edcf77b948555.tar.gz
Game has been restructured in favor of OOP
-rw-r--r--.directory4
-rw-r--r--Camera.c175
-rw-r--r--Camera.cpp67
-rw-r--r--Camera.h72
-rw-r--r--CameraOld.c175
-rwxr-xr-xExe/POCKET.ELFbin45464 -> 28084 bytes
-rw-r--r--Exe/POCKET.HEX2075
-rw-r--r--Exe/POCKET.MAP2498
-rw-r--r--Game.cpp90
-rw-r--r--Game.h35
-rw-r--r--Gameplay.cpp122
-rw-r--r--Gameplay.h33
-rw-r--r--Gfx.cpp149
-rw-r--r--Gfx.h83
-rw-r--r--Global_Inc.h20
-rw-r--r--HumanPlayer.cpp43
-rw-r--r--HumanPlayer.h34
-rw-r--r--Makefile5
-rw-r--r--Menu.cpp117
-rw-r--r--Menu.d11
-rw-r--r--Menu.h12
-rw-r--r--MouseSpr.i25
-rw-r--r--Pad.cpp36
-rw-r--r--Pad.h34
-rw-r--r--Player.cpp761
-rw-r--r--Player.h119
-rw-r--r--PocketEmpires.geany69
-rw-r--r--Sprite.cpp35
-rw-r--r--Sprite.h31
-rw-r--r--Sprites/.directory4
-rw-r--r--System.c333
-rw-r--r--System.cpp62
-rw-r--r--System.h96
-rw-r--r--Unit.cpp35
-rw-r--r--Unit.h135
-rw-r--r--UnitOld.c (renamed from Unit.c)202
-rw-r--r--UnitOld.h123
-rw-r--r--main.cpp53
38 files changed, 3065 insertions, 4908 deletions
diff --git a/.directory b/.directory
index db0006e..9119c0f 100644
--- a/.directory
+++ b/.directory
@@ -1,3 +1,3 @@
[Dolphin]
-Timestamp=2017,8,28,19,30,2
-Version=3
+Timestamp=2018,5,7,23,12,51
+Version=4
diff --git a/Camera.c b/Camera.c
deleted file mode 100644
index 0c7c0c0..0000000
--- a/Camera.c
+++ /dev/null
@@ -1,175 +0,0 @@
-/* *************************************
- * Includes
- * *************************************/
-
-#include "Camera.h"
-#include "Gfx.h"
-#include "Pad.h"
-
-/* *************************************
- * Defines
- * *************************************/
-
-#define SPEED_CALCULATION_TIME 3
-#define MAX_CAMERA_SPEED 5
-#define MIN_CAMERA_SPEED 1
-
-/* *************************************
- * Local Prototypes
- * *************************************/
-
-static void CameraUpdateSpeed(TYPE_CAMERA* ptrCamera);
-
-void CameraInit(TYPE_CAMERA* ptrCamera)
-{
- ptrCamera->X_Offset = 0;
- ptrCamera->Y_Offset = 0;
- ptrCamera->X_Speed = 0;
- ptrCamera->Y_Speed = 0;
- ptrCamera->Speed_Timer = SPEED_CALCULATION_TIME;
- ptrCamera->locked = false;
-}
-
-TYPE_COLLISION_BLOCK CameraApplyCoordinatesToCoordinates( TYPE_CAMERA* ptrCamera,
- uint16_t x,
- uint16_t y )
-{
- TYPE_COLLISION_BLOCK cb = {0};
-
- cb.x = x + ptrCamera->X_Offset;
- cb.y = y + ptrCamera->Y_Offset;
-
- return cb;
-}
-
-void CameraApplyCoordinatesToSprite(TYPE_CAMERA* ptrCamera,
- TYPE_SPRITE* spr,
- uint16_t x,
- uint16_t y )
-{
- spr->x = (uint8_t)(x + ptrCamera->X_Offset);
- spr->y = (uint8_t)(y + ptrCamera->Y_Offset);
-}
-
-void CameraUpdateSpeed(TYPE_CAMERA* ptrCamera)
-{
- if (PadDirectionKeyPressed() != false)
- {
- if (PadButtonPressed(PAD_LEFT) != false)
- {
- if (ptrCamera->X_Speed < 0)
- {
- ptrCamera->X_Speed += 2;
- }
- else if (ptrCamera->X_Speed < MAX_CAMERA_SPEED)
- {
- ptrCamera->X_Speed++;
- }
- }
-
- if (PadButtonPressed(PAD_UP) != false)
- {
- if (ptrCamera->Y_Speed < 0)
- {
- ptrCamera->Y_Speed += 2;
- }
- else if (ptrCamera->Y_Speed < MAX_CAMERA_SPEED)
- {
- ptrCamera->Y_Speed++;
- }
- }
-
- if (PadButtonPressed(PAD_DOWN) != false)
- {
- if (ptrCamera->Y_Speed > 0)
- {
- ptrCamera->Y_Speed -= 2;
- }
- else if (ptrCamera->Y_Speed > -MAX_CAMERA_SPEED)
- {
- ptrCamera->Y_Speed--;
- }
- }
-
- if (PadButtonPressed(PAD_RIGHT) != false)
- {
- if (ptrCamera->X_Speed > 0)
- {
- ptrCamera->X_Speed -= 2;
- }
- else if (ptrCamera->X_Speed > -MAX_CAMERA_SPEED)
- {
- ptrCamera->X_Speed--;
- }
- }
- }
-
- if ( (PadButtonPressed(PAD_LEFT) == false)
- &&
- (PadButtonPressed(PAD_RIGHT) == false) )
- {
- ptrCamera->X_Speed = 0;
- }
-
- if ( (PadButtonPressed(PAD_UP) == false)
- &&
- (PadButtonPressed(PAD_DOWN) == false) )
- {
- ptrCamera->Y_Speed = 0;
- }
-}
-
-void CameraHandler(TYPE_CAMERA* ptrCamera)
-{
- if (ptrCamera->locked != false)
- {
- ptrCamera->X_Speed = 0;
- ptrCamera->Y_Speed = 0;
- return;
- }
-
- if (ptrCamera->Speed_Timer < SPEED_CALCULATION_TIME)
- {
- ptrCamera->Speed_Timer++;
- }
- else
- {
- ptrCamera->Speed_Timer = 0;
- CameraUpdateSpeed(ptrCamera);
- }
-
- if ((ptrCamera->X_Offset + ptrCamera->X_Speed) < 0)
- {
- ptrCamera->X_Offset += ptrCamera->X_Speed;
-
- if (ptrCamera->X_Offset == 0)
- {
- ptrCamera->X_Speed = 0;
- }
- }
- else
- {
- ptrCamera->X_Offset = 0;
- ptrCamera->X_Speed = 0;
- }
-
- if ((ptrCamera->Y_Offset + ptrCamera->Y_Speed) < 0)
- {
- ptrCamera->Y_Offset += ptrCamera->Y_Speed;
-
- if (ptrCamera->Y_Offset == 0)
- {
- ptrCamera->Y_Speed = 0;
- }
- }
- else
- {
- ptrCamera->Y_Offset = 0;
- ptrCamera->Y_Speed = 0;
- }
-}
-
-void CameraSetLock(TYPE_CAMERA* ptrCamera, bool value)
-{
- ptrCamera->locked = value;
-}
diff --git a/Camera.cpp b/Camera.cpp
new file mode 100644
index 0000000..5e096ed
--- /dev/null
+++ b/Camera.cpp
@@ -0,0 +1,67 @@
+/* *************************************
+ * Includes
+ * *************************************/
+
+#include "Camera.h"
+
+/* *************************************
+ * Defines
+ * *************************************/
+
+/* *************************************
+ * Structs and enums
+ * *************************************/
+
+enum
+{
+ SPEED_CALCULATION_TIME = 3
+};
+
+/* *************************************
+ * Global Variables
+ * *************************************/
+
+/* *************************************
+ * Local Variables
+ * *************************************/
+
+/* *************************************
+ * Local Prototypes
+ * *************************************/
+
+/*****************************************************************//**
+ *
+ * \brief Constructor for Camera class.
+ *
+ *********************************************************************/
+Camera::Camera(void) :
+ _bLocked(false),
+ _xOffset(0),
+ _yOffset(0),
+ _xSpeed(0),
+ _ySpeed(0),
+ _speedTimer(SPEED_CALCULATION_TIME)
+{
+}
+
+/*****************************************************************//**
+ *
+ * \brief This function transforms the coordinates for a given
+ * object to camera coordinates.
+ *
+ *********************************************************************/
+void Camera::getCoordinates(int16_t* const x, int16_t* const y)
+{
+ *x += _xOffset;
+ *y += _yOffset;
+}
+
+/*****************************************************************//**
+ *
+ * \brief Event handler executed when human player presses
+ * left button.
+ *
+ *********************************************************************/
+void Camera::onLeftBtnPressed(void)
+{
+}
diff --git a/Camera.h b/Camera.h
index cbefc6b..4e9bae9 100644
--- a/Camera.h
+++ b/Camera.h
@@ -1,56 +1,44 @@
-#ifndef __CAM_HEADER__
-#define __CAM_HEADER__
+#ifndef CAMERA_H__
+#define CAMERA_H__
/* *************************************
- * Includes
+ * Includes
* *************************************/
-#include "Global_Inc.h"
-#include "Gfx.h"
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif //__cplusplus
-
+#include <stdint.h>
/* *************************************
- * Defines
+ * Defines
* *************************************/
/* *************************************
- * Structs and enums
+ * Structs and enums
* *************************************/
-typedef struct t_Camera
-{
- int16_t X_Offset;
- int16_t Y_Offset;
- int8_t X_Speed;
- int8_t Y_Speed;
- uint8_t Speed_Timer;
- bool locked;
-}TYPE_CAMERA;
-
-typedef struct t_sprite TYPE_SPRITE;
-
/* *************************************
- * Global prototypes
+ * Class definition
* *************************************/
-void CameraInit(TYPE_CAMERA* ptrCamera);
-void CameraHandler(TYPE_CAMERA* ptrCamera);
-void CameraSetLock(TYPE_CAMERA* ptrCamera, bool value);
-void CameraApplyCoordinatesToSprite( TYPE_CAMERA* ptrCamera,
- TYPE_SPRITE* spr,
- uint16_t x,
- uint16_t y );
-TYPE_COLLISION_BLOCK CameraApplyCoordinatesToCoordinates( TYPE_CAMERA* ptrCamera,
- uint16_t x,
- uint16_t y );
-
-#ifdef __cplusplus
-}
-#endif //__cplusplus
-
-#endif //__CAM_HEADER__
+class Camera
+{
+ public:
+ Camera(void);
+ void setLock(const bool bLock)
+ {
+ _bLocked = bLock;
+ }
+ void getCoordinates(int16_t* const x, int16_t* const y);
+
+ /* Event handlers. */
+ void onLeftBtnPressed(void);
+
+ private:
+ bool _bLocked;
+ int16_t _xOffset;
+ int16_t _yOffset;
+ int16_t _xSpeed;
+ int16_t _ySpeed;
+ uint8_t _speedTimer;
+};
+
+#endif /* CAMERA_H__ */
diff --git a/CameraOld.c b/CameraOld.c
new file mode 100644
index 0000000..e2e392e
--- /dev/null
+++ b/CameraOld.c
@@ -0,0 +1,175 @@
+/* *************************************
+ * Includes
+ * *************************************/
+
+#include "Camera.h"
+#include "Gfx.h"
+#include "Pad.h"
+
+/* *************************************
+ * Defines
+ * *************************************/
+
+#define SPEED_CALCULATION_TIME 3
+#define MAX_CAMERA_SPEED 5
+#define MIN_CAMERA_SPEED 1
+
+/* *************************************
+ * Local Prototypes
+ * *************************************/
+
+static void CameraUpdateSpeed(TYPE_CAMERA* ptrCamera);
+
+void CameraInit(TYPE_CAMERA* ptrCamera)
+{
+ ptrCamera->X_Offset = 0;
+ ptrCamera->Y_Offset = 0;
+ ptrCamera->X_Speed = 0;
+ ptrCamera->Y_Speed = 0;
+ ptrCamera->Speed_Timer = SPEED_CALCULATION_TIME;
+ ptrCamera->locked = false;
+}
+
+TYPE_COLLISION_BLOCK CameraApplyCoordinatesToCoordinates( TYPE_CAMERA* ptrCamera,
+ uint16_t x,
+ uint16_t y )
+{
+ TYPE_COLLISION_BLOCK cb = {0};
+
+ cb.x = x + ptrCamera->X_Offset;
+ cb.y = y + ptrCamera->Y_Offset;
+
+ return cb;
+}
+
+void CameraApplyCoordinatesToSprite(TYPE_CAMERA* ptrCamera,
+ TYPE_SPRITE* spr,
+ uint16_t x,
+ uint16_t y )
+{
+ spr->x = (uint8_t)(x + ptrCamera->X_Offset);
+ spr->y = (uint8_t)(y + ptrCamera->Y_Offset);
+}
+
+void CameraUpdateSpeed(TYPE_CAMERA* ptrCamera)
+{
+ if (PadDirectionKeyPressed() != false)
+ {
+ if (PadButtonPressed(PAD_LEFT) != false)
+ {
+ if (ptrCamera->X_Speed < 0)
+ {
+ ptrCamera->X_Speed += 2;
+ }
+ else if (ptrCamera->X_Speed < MAX_CAMERA_SPEED)
+ {
+ ptrCamera->X_Speed++;
+ }
+ }
+
+ if (PadButtonPressed(PAD_UP) != false)
+ {
+ if (ptrCamera->Y_Speed < 0)
+ {
+ ptrCamera->Y_Speed += 2;
+ }
+ else if (ptrCamera->Y_Speed < MAX_CAMERA_SPEED)
+ {
+ ptrCamera->Y_Speed++;
+ }
+ }
+
+ if (PadButtonPressed(PAD_DOWN) != false)
+ {
+ if (ptrCamera->Y_Speed > 0)
+ {
+ ptrCamera->Y_Speed -= 2;
+ }
+ else if (ptrCamera->Y_Speed > -MAX_CAMERA_SPEED)
+ {
+ ptrCamera->Y_Speed--;
+ }
+ }
+
+ if (PadButtonPressed(PAD_RIGHT) != false)
+ {
+ if (ptrCamera->X_Speed > 0)
+ {
+ ptrCamera->X_Speed -= 2;
+ }
+ else if (ptrCamera->X_Speed > -MAX_CAMERA_SPEED)
+ {
+ ptrCamera->X_Speed--;
+ }
+ }
+ }
+
+ if ( (PadButtonPressed(PAD_LEFT) == false)
+ &&
+ (PadButtonPressed(PAD_RIGHT) == false) )
+ {
+ ptrCamera->X_Speed = 0;
+ }
+
+ if ( (PadButtonPressed(PAD_UP) == false)
+ &&
+ (PadButtonPressed(PAD_DOWN) == false) )
+ {
+ ptrCamera->Y_Speed = 0;
+ }
+}
+
+void CameraHandler(TYPE_CAMERA* ptrCamera)
+{
+ if (ptrCamera->locked != false)
+ {
+ ptrCamera->X_Speed = 0;
+ ptrCamera->Y_Speed = 0;
+ return;
+ }
+
+ if (ptrCamera->Speed_Timer < SPEED_CALCULATION_TIME)
+ {
+ ptrCamera->Speed_Timer++;
+ }
+ else
+ {
+ ptrCamera->Speed_Timer = 0;
+ CameraUpdateSpeed(ptrCamera);
+ }
+
+ if ((ptrCamera->X_Offset + ptrCamera->X_Speed) < 0)
+ {
+ ptrCamera->X_Offset += ptrCamera->X_Speed;
+
+ if (ptrCamera->X_Offset == 0)
+ {
+ ptrCamera->X_Speed = 0;
+ }
+ }
+ else
+ {
+ ptrCamera->X_Offset = 0;
+ ptrCamera->X_Speed = 0;
+ }
+
+ if ((ptrCamera->Y_Offset + ptrCamera->Y_Speed) < 0)
+ {
+ ptrCamera->Y_Offset += ptrCamera->Y_Speed;
+
+ if (ptrCamera->Y_Offset == 0)
+ {
+ ptrCamera->Y_Speed = 0;
+ }
+ }
+ else
+ {
+ ptrCamera->Y_Offset = 0;
+ ptrCamera->Y_Speed = 0;
+ }
+}
+
+void CameraSetLock(TYPE_CAMERA* ptrCamera, bool value)
+{
+ ptrCamera->locked = value;
+}
diff --git a/Exe/POCKET.ELF b/Exe/POCKET.ELF
index 5b411c5..2366d55 100755
--- a/Exe/POCKET.ELF
+++ b/Exe/POCKET.ELF
Binary files differ
diff --git a/Exe/POCKET.HEX b/Exe/POCKET.HEX
index 09a43b0..c9efb0f 100644
--- a/Exe/POCKET.HEX
+++ b/Exe/POCKET.HEX
@@ -1,1311 +1,766 @@
-:100000000C9498030C94C0030C94C0030C94C0038C
-:100010000C94C0030C94C0030C94C0030C94C00354
-:100020000C94C0030C94C0030C94C0030C94952151
-:100030000C94C0030C94C0030C94C0030C94C00334
-:100040000C947A220C94C0030C94C0030C94C0034B
-:100050000C94C0030C94C0030C94C0030C94C00314
-:100060000C94C0030C94C003506F636B65742045FF
-:100070006D70697265730080007B00517569740052
-:10008000526573756D65000808FC848884A2D10AE6
-:100090000443616E6E6F74206275696C64206865DC
-:1000A000726500436F756C64206E6F7420637265B7
-:1000B00061746520756E697400506F70756C2E20C8
-:1000C0006C696D697400496E737566662E20726581
-:1000D000736F75726365730018181F80007E0000CF
-:1000E000F80000F00000F80000F80004F80004F840
-:1000F0000004FAE004FA8004FA8004FA8004FA802A
-:1001000004FA8004FAE004F8600CF80010FC000027
-:10011000FF0000FFF180FFF180FFF1807FF1801F81
-:100120008180181803FFC00C003037FFEC780016F0
-:10013000AFFFF5A80015A8FF15A88115A8FFD5AB3E
-:100140008155AAA5D5AB8155AAA555AB81D5A8994E
-:1001500015A8FF15A6006591C3898C423183C3C1E0
-:1001600040420230420C0C423003C3C01818000059
-:10017000000000FEFE00FEFE003E3E00FEFE00FE11
-:10018000FE001E1E001E1E001E1E001E1E001E1E45
-:10019000001E1E001E1E001E1E001E1E001E1E0033
-:1001A0001E1E001E1E00FEFE00FEFE003E3E00FE65
-:1001B000FE00FEFE00FE1818E700E7BD00BDE7FFE9
-:1001C000E7BD00BD81FF81E700E7A500A5BDFFBD3C
-:1001D000A500A5A500A5A500A5A500A5A500A5A508
-:1001E00000A5A500A5A500A5E700E7BD00BDE7FFA8
-:1001F000E7BD00BD81FF81811881812481FFFFFF60
-:100200000808E0BCC299BDFF5D4708083C4299BDA3
-:10021000FE5840400808003C4299A56618000808AE
-:1002200060BCC299A5671D024E023D023502300234
-:1002300051756974004F7074696F6E73004D756C01
-:100240007469706C617965722067616D65005369CE
-:100250006E676C6520706C617965722067616D6591
-:10026000000303070507050405050405030603024B
-:1002700007020201020203020E090E0E0D0E0E0FFE
-:100280000E070507050307050F0507050706070104
-:10029000020502000702020700020702000207022D
-:1002A0000007060306070702020505020102020411
-:1002B0000200050202050006070505070502030204
-:1002C000020602000000000B0003000307050704FC
-:1002D00007010502050707040003000007050507DD
-:1002E00000050005020702000C00020202000400E3
-:1002F00004020107050705070401070405070203B7
-:1003000002070407010706060101070707070303A1
-:1003100007000500000D00020500050505000502A7
-:100320000107030F09030603060707020205050775
-:100330000702070705070301070506070207050768
-:100340000504040307020507040407030707010661
-:100350000705070703030705030703060407010151
-:100360000701070407030403070607050205010642
-:10037000010107040007050102040507000201024C
-:100380000808080003000603060707020205050720
-:10039000050207070507030107050607020705070A
-:1003A0000504040307020507040407030707010601
-:1003B00007050707030307050307030604070101F1
-:1003C00007010704070304030706070502050106E2
-:1003D00001010704020705000700050702060203E2
-:1003E00007050703053F213F1208120A100A0E1CD9
-:1003F0000E0C1E0C141A14161F161E131E1E1B1E86
-:100400001E1F1E3F213F3A2F3A173D173F213F182D
-:100410001F02040A041F0E04040E1F0A1F0A0E0EF8
-:100420001F04110E2E252E2F2A2E262929021F02E7
-:10043000081F08150E04040E150E15151B151B04B8
-:100440000604040C040000000017000300031F0A48
-:100450001F16371A1904130A153A000300000E116B
-:10046000110E000A040A040E040030000404040003
-:1004700010001804031F111F121F101D151711154E
-:100480001F07041F17151D1F151D01011F1F151F15
-:1004900017151F000A00003200040A110A0A0A1187
-:1004A0000A040115020E11171E051E1F150A0E1152
-:1004B0000A1F110E1F15111F05010E111D1F041F0C
-:1004C000111F1108100F1F041B1F10101F061F1EE5
-:1004D000040F0E110E1F09060E112E1F051A1215FC
-:1004E00009011F011F101F0F180F1F0C1F1B041BDA
-:1004F000031C03191513001F11030418111F000218
-:1005000001022020200001020C121E1F120C0C12EE
-:10051000120C121F0C1A14041E05242A1E1F021C82
-:10052000141D1020201D1F0814111F101E041E1E54
-:10053000021C0C120C3E0A040C123E1E040214167D
-:100540000A020F120E101E0E100E1E081E120C12A2
-:1005500026281E322A26041E21001F00211E040107
-:1005600002013F213F0A4E6F2053442063617264B1
-:10057000206F720A6E6F204C4F414445522E484501
-:10058000580A0A153A45786974001D20466C617353
-:1005900068696E670A20206C6F616465722E2E2E6A
-:1005A0000A0A444F4E2754205455524E204F464677
-:1005B00021000A0A153A49676E6F7265006D560A86
-:1005C0000A504C45415345205455524E204F464603
-:1005D00020004C4F5720424154544552592120008D
-:1005E000175344001613780016131400151020003A
-:1005F00015201000540A03E181867F3E186D830F99
-:100600000F0E0183866033186DC3198F1803C38ED4
-:100610006033186DE330CF1803C39E603630CDE3EE
-:1006200060CF3006C79E7E3E30CDB360CF300CC663
-:10063000F6603330D9B660CF33CFCCF66061B0DB33
-:100640001E60CF30D86CE6C061B0DB1E618F199898
-:100650006CC6C063B19B0E330F0FB078C6FF7E1F10
-:100660001B061E0F050089300802380249786814FD
-:100670000000F6E8DBCFC3B8AEA49B928A827B74FD
-:100680006E68625C57524E4945413E3A3734312ECE
-:100690002C29272523211F1D1C1A19171615141381
-:1006A0001211100F0E0D0C0B0A0908070645006801
-:1006B00001000005006801380100000500380168EC
-:1006C000010000CB06C7060101FF030101F703008B
-:1006D0000000070002010000030406000000000003
-:1006E00000000001020408102040800102040810EC
-:1006F0002001020408102004040404040404040279
-:1007000002020202020303030303030000000023AA
-:10071000002600290000000000250028002B000012
-:10072000000000240027002A0000D303230427042C
-:1007300011241FBECFEFD8E0DEBFCDBF11E0A0E097
-:10074000B1E0EAE3F1E502C005900D92A838B107E7
-:10075000D9F727E0A8E8B1E001C01D92A73DB20794
-:10076000E1F713E0C7E9D3E004C02197FE010E943E
-:10077000E626C539D107C9F70E94C2030C94902818
-:100780000C9400000E941B230E94AA0488E891E0B8
-:100790000E94B21E68E670E088E891E00E94351E73
-:1007A0000E94E411F7CF1092D9011092D8018DE781
-:1007B00091E09093D7018093D601089588E192E06B
-:1007C0000E94590881E08093180287E890E0909396
-:1007D00017028093160282E0809315021092130292
-:1007E0001092140286E280930F0284E1809310023B
-:1007F0000E94730586E090E00E948706882349F0F6
-:1008000042E067E770E088E891E00E94701B811188
-:10081000089588E192E00E94760D0E94BB06811146
-:100820000E942B040E947B058823E1F30E9485052A
-:1008300088E192E00E94C00C8FE092E00E94950552
-:100840000E944704D7CF88E192E00C94CB0688E160
-:1008500092E00C94CC0680914105811117C081E093
-:1008600080934105309142052091430580914405D4
-:100870008091450580914605809147058091480506
-:1008800080914905832F922F0C947628089520910A
-:1008900042053091430540914405509145056091D2
-:1008A0004605709147058091480590914905A1E062
-:1008B0000E94DA2620934205309343054093440575
-:1008C000509345056093460570934705809348050E
-:1008D0009093490508958F929F92AF92BF92CF92C5
-:1008E000DF92EF92FF924B015C0169017A010E9455
-:1008F0007128BC01990F880B990BC818D908EA0810
-:10090000FB08A70196012F5F3F4F4F4F5F4F0E949B
-:100910008E26680D791D8A1D9B1DFF90EF90DF903C
-:10092000CF90BF90AF909F908F900895EFEDF4E03F
-:10093000138612861186108610821182128213820B
-:1009400014821582168217823C9685E0EF33F807F1
-:1009500079F70895109242051092430510924405CC
-:1009600010924505109246051092470510924805D1
-:1009700010924905109240050E94960410923F057E
-:100980000895FC01DB01608171814D915C911197AB
-:1009900014962C911497240F352F311D621773076D
-:1009A000E8F48481860F972F911D48175907B0F4FA
-:1009B0006281738112964D915C91139715968C917B
-:1009C000840F952F911D6817790740F42581260F14
-:1009D000372F311D81E04217530708F080E0817006
-:1009E0000895AF92BF92CF92DF92EF92FF920F9352
-:1009F0001F93CF93DF93EC018A016115710569F4B0
-:100A000090E080E0DF91CF911F910F91FF90EF90E8
-:100A1000DF90CF90BF90AF900895E0E057FF03C004
-:100A20008DE28883E1E085E0C82ED12C20E137E219
-:100A300040E07B0181E0E81AF1089AE0A92EB12C90
-:100A4000C801B9010E946626629FC001639F900D94
-:100A50001124081B190B611102C0442361F081E0CD
-:100A60008E0FEC0FFD2FF11D605D60838E151F044E
-:100A700038F6E82F41E0C901B5010E9466269B01C6
-:100A800081E0C81AD108E1F68E2F90E0C80FD91F77
-:100A90001882B8CF889FA001899F500D500D112456
-:100AA000669F9001679F300D300D1124B90190E0D1
-:100AB00080E0640F751F811D911D089550E0480F5F
-:100AC000511D87FD5A9557FD0CC0843554F430E014
-:100AD000260F311D67FD3A9537FD03C081E0603375
-:100AE0000CF080E008951092DC0163EE73E086ED77
-:100AF00091E00C94DB1788E891E00E94B81A91E02D
-:100B0000811101C090E0892F089560E086ED91E0A9
-:100B10000E94DD1286ED91E00C94CC12FC01238141
-:100B20004281618180810C945E05EF920F931F9347
-:100B3000CF93DF93EC01009701F10E948E0588238B
-:100B4000E1F01091F60140E06E8186ED91E00E94A7
-:100B50002E132F813885ED800C814981688186EDC7
-:100B600091E00E94F416612F86ED91E0DF91CF9124
-:100B70001F910F91EF900C942A13DF91CF911F9149
-:100B80000F91EF900895FC01849108950196FC0166
-:100B9000849108954CE3BC0188E891E00C9490198D
-:100BA0000F931F93CF93DF938C01C091F401D091E9
-:100BB000F50122974093DF012093E00186ED91E05B
-:100BC0000E94DB1740E061E086ED91E00E942E1369
-:100BD000B80186ED91E00E94E424209749F0BE011F
-:100BE00086ED91E0DF91CF911F910F910C94DB176F
-:100BF000DF91CF911F910F910895FF920F931F9353
-:100C0000CF93DF93D82F162FC42FF22E242F0E94BC
-:100C10005E058823C1F00091F6016F2D86ED91E00D
-:100C20000E942A132C2F412F6D2F86ED91E00E94F8
-:100C3000BB13602F86ED91E0DF91CF911F910F9153
-:100C4000FF900C942A13DF91CF911F910F91FF9089
-:100C50000895EF92FF920F931F93CF93DF93C82FC6
-:100C6000D62F142FF22E0E945E058823D1F0E0903B
-:100C7000F601602F86ED91E00E942A130F2D212F9F
-:100C80004D2F6C2F86ED91E00E946A136E2D86ED3C
-:100C900091E0DF91CF911F910F91FF90EF900C9415
-:100CA0002A13DF91CF911F910F91FF90EF9008953C
-:100CB000EF92FF920F931F93CF93DF93C82FD62FFE
-:100CC000142FF22E0E945E058823D1F0E090F601E9
-:100CD000602F86ED91E00E942A130F2D212F4D2FBA
-:100CE0006C2F86ED91E00E9492136E2D86ED91E0BF
-:100CF000DF91CF911F910F91FF90EF900C942A13E9
-:100D0000DF91CF911F910F91FF90EF900895682F81
-:100D100082E991E00E943A1291E0811101C090E0D5
-:100D2000892F0895CF93C62F682F82E991E00E9402
-:100D3000591291E0C81708F090E0892FCF910895DB
-:100D400060E00C94920681E090E00E94A006811180
-:100D500010C083E090E00E94A00681110AC090E0DC
-:100D600080E00E94A006811104C082E090E00C9413
-:100D7000A00681E008950E94A30681110AC084E0C4
-:100D800090E00E94A006811104C085E090E00C94E0
-:100D9000A00681E00895089508950F931F93CF93BF
-:100DA000DF93CDB7DEB728970FB6F894DEBF0FBE3E
-:100DB000CDBF162F88E4898380E58A838DE38B83FA
-:100DC00000E028E044E56BE280E00E945806412FF5
-:100DD00050E065E070E0CE0104960E94F1042CE240
-:100DE00044E061E672E0CE0101960E94D0052896AB
-:100DF0000FB6F894DEBF0FBECDBFDF91CF911F912C
-:100E00000F910895FC01E954FD4F2081FC0190E011
-:100E100080E0291731F037A131118F5F9F5F759600
-:100E2000F8CF0895EF92FF920F93CF93DF93CDB752
-:100E3000DEB728970FB6F894DEBF0FBECDBF7C019A
-:100E40008DE38A8363E086ED91E00E942A1308E037
-:100E500024E540E060E086ED91E00E94921387E592
-:100E60008983F7014189528966E070E0CE010396DB
-:100E70000E94F10421E048E061E672E0CE010196B3
-:100E80000E94D00587E48983F7014389548966E08D
-:100E900070E0CE0103960E94F10425E042E061E695
-:100EA00072E0CE0101960E94D00586E48983F701A5
-:100EB0004589568966E070E0CE0103960E94F104F0
-:100EC00021E04AE261E672E0CE0101960E94D0057F
-:100ED000C7010E940207482F50E063E070E0CE0196
-:100EE00001960E94F1049C012F5F3F4FE1E0F0E08A
-:100EF000EC0FFD1FE80FF91F8FE2808368E070E0C0
-:100F0000621B730B40E250E081E090E08C0F9D1F6C
-:100F1000820F931F0E94F10425E04AE261E672E02D
-:100F2000CE0101960E94D00528960FB6F894DEBF38
-:100F30000FBECDBFDF91CF910F91FF90EF9008953D
-:100F40006F927F928F929F92AF92BF92CF92DF92D9
-:100F5000EF92FF920F931F93CF93DF93CDB7DEB73E
-:100F60002C970FB6F894DEBF0FBECDBF7C016B018E
-:100F70000F83188729873A874B875C87CB010E94AC
-:100F8000391029833A834B835C836D837E838D8004
-:100F90009E80F701858996898815990570F069808A
-:100FA0007A80818992898615970538F0AB80BC805C
-:100FB000838994898A159B05C0F486EC90E02C9671
-:100FC0000FB6F894DEBF0FBECDBFDF91CF911F915A
-:100FD0000F91FF90EF90DF90CF90BF90AF909F90D8
-:100FE0008F907F906F900C94CA05C7010E940207F2
-:100FF000803208F05BC0F701C70180569D4F27A1E2
-:1010000021114EC0F701E954FD4F808191E0980F06
-:1010100090838701F5E18F9F000D111D1124F801C8
-:10102000D1A2C0A28F819885908F878B89859A8560
-:10103000928F818FC6010E943410F801878F81E062
-:1010400087A3F3E0CF16D1040CF480E0F80185A368
-:10105000F7018189928986199709928B818B8389FF
-:1010600094898A199B09948B838B85899689881921
-:101070009909968B858B2C960FB6F894DEBF0FBE20
-:10108000CDBFDF91CF911F910F91FF90EF90DF9037
-:10109000CF90BF90AF909F908F907F906F9008956A
-:1010A0007596E817F90709F0AACFE5CF89EB90E02C
-:1010B00086CFEF92FF920F931F93CF93DF9300D0D1
-:1010C00000D000D0CDB7DEB77C018C0109541D4F94
-:1010D000D8011C92FC01EF53FD4F8FEF8083C701B5
-:1010E00088549D4F0E94980D0E946E0EF7017796CE
-:1010F00085E1DF01982F1D929A95E9F77596E01723
-:10110000F107B9F788EE93E0D70152969C938E933E
-:10111000519754969C938E93539756969C938E9387
-:10112000559728E130E040E050E060E070E0CB010E
-:101130000E946B047A83698328E130E040E050E04C
-:1011400060E070E0CB010E946B04262F7C836B83F0
-:1011500009811A813C814D815E8165E070E0C701A3
-:101160000E94A00728E330E040E050E060E370E038
-:1011700080E090E00E946B047A83698328E330E08A
-:1011800040E050E060E370E080E090E00E946B049B
-:101190007C836B8390E080E00E942E0F8D8390E033
-:1011A00080E00E943A0FF701EC53FD4F1082319618
-:1011B0001082329710823397108209811A812B8115
-:1011C0003C814D81582F70E060E0C7010E94A0076C
-:1011D00026960FB6F894DEBF0FBECDBFDF91CF913C
-:1011E0001F910F91FF90EF900895CF93DF9300D060
-:1011F00000D000D0CDB7DEB7FC01E654FD4F208112
-:10120000318144E150E0421B530B88549D4FFC0157
-:101210008081918126E230E0281B390B3A832983B3
-:101220005C834B833A815C8168E078E080E090E009
-:1012300026960FB6F894DEBF0FBECDBFDF91CF91DB
-:1012400008953F924F925F926F927F928F929F92FA
-:10125000AF92BF92CF92DF92EF92FF920F931F93C4
-:10126000CF93DF9300D000D000D0CDB7DEB75C01C4
-:101270008C01912C88248A9444244A94542C320161
-:10128000F80187A1882309F44FC080A581114CC0C3
-:10129000C5010E94F50829833A834B835C836D83E3
-:1012A0007E83F801E788F08CC18CD28C80A191A15B
-:1012B0000E942E0F382EF80180A191A10E943A0FB2
-:1012C00029813A81A701421B530B9A01432D50E01B
-:1012D00055954795240F351FA90137FF04C04427B2
-:1012E0005527421B530B4B325105F4F44B815C8163
-:1012F000C41AD50A682F70E0759567956C0D7D1D31
-:10130000CB0177FF04C088279927861B970B499745
-:101310005CF4C9010E944A056415750586059705A8
-:1013200018F4892C2B013C010B5E1F4F939450E263
-:101330009512A6CFF501EF53FD4F808226960FB68A
-:10134000F894DEBF0FBECDBFDF91CF911F910F91FB
-:10135000FF90EF90DF90CF90BF90AF909F908F90D5
-:101360007F906F905F904F903F900895FC01E05404
-:10137000FD4F2081222351F033962081211106C098
-:1013800031968081853010F48F5F808308956F924D
-:101390007F928F929F92AF92BF92CF92DF92EF9205
-:1013A000FF920F931F93CF93DF9300D000D000D014
-:1013B000CDB7DEB75C017B016A0160E1762E4C019E
-:1013C00087E1880E911CF701818592850E942E0F7E
-:1013D000182FF701818592850E943A0F682EF70138
-:1013E0000081812F90E09C0135952795280F391FAA
-:1013F000032E000C440B550B60E070E0CB010E9403
-:101400006B04060FF7011281862D90E09C01359543
-:101410002795280F391F032E000C440B550B662D02
-:1014200070E090E080E00E946B04802F90E09A834F
-:101430008983160F612F70E07C836B83C6010E9445
-:101440002E0F8D83C6010E943A0F8E8350E040E03C
-:10145000B401CE0101960E94681081111FC009815C
-:101460001A812B813C814D815E81B601C5010E94AC
-:10147000A00726960FB6F894DEBF0FBECDBFDF9152
-:10148000CF911F910F91FF90EF90DF90CF90BF9081
-:10149000AF909F908F907F906F9008957A94711085
-:1014A00092CF83EA90E00E94CA05E3CFCF92DF9209
-:1014B000EF92FF920F931F93CF93DF9300D000D052
-:1014C00000D0CDB7DEB77C016B010E94F5082983FF
-:1014D0003A834B835C836D837E83C6010E942E0F0B
-:1014E0008D83C6010E943A0F8D83B701695E7F4FDD
-:1014F00050E040E0CE0101960E946810811119C0B1
-:1015000009811A812B813C814D815E81B601C70121
-:101510000E94A00726960FB6F894DEBF0FBECDBF7F
-:10152000DF91CF911F910F91FF90EF90DF90CF90BF
-:10153000089581E990E00E94CA05ECCF0F931F93B4
-:10154000CF93DF93EC01CC53DD4F28818C010D53F9
-:101550001D4F253018F5FC01EF53FD4F20812F3F23
-:1015600081F0FC0135E12302E00DF11D112421E0A1
-:1015700020A7FC01E054FD4F20838B539D4FFC01BD
-:101580001082188281E09881953008F480E0F8019B
-:101590008083DF91CF911F910F910895F8012081F1
-:1015A000222381F3FC0130E020E040A5442339F1FF
-:1015B00045E1429FB001439F700D1124695E7F4F4A
-:1015C000680F791FFC01EA53FD4F1082319720818B
-:1015D000213041F078F0223051F0233099F665E067
-:1015E00070E00AC050E040E00E94C709CBCF41E064
-:1015F00050E0FACF63E070E00E94560AC3CF2F5F3D
-:101600003F4F75962032310581F6BCCFCF93DF93E3
-:10161000EC01C054DD4F28812223D9F0DC01AE5308
-:10162000BD4F2C912530C0F0FC019C0120563D4F50
-:1016300040A5411110A67596E217F307C9F71C9251
-:101640001882FC01ED53FD4F10828C539D4FFC011D
-:101650001082DF91CF9108952F5F2C93FACF8F9254
-:101660009F92AF92BF92CF92DF92EF92FF920F9331
-:101670001F93CF93DF9300D000D000D0CDB7DEB75B
-:101680008C01FC01E054FD4F8081882379F1C80171
-:101690000E94F50829833A834B835C836D837E83A4
-:1016A0007801580180E6A81A8DEFB80A6801EDE3C9
-:1016B000CE1AEDEFDE0A4801FCE38F1AFDEF9F0A18
-:1016C000F70180A5882361F0F6018081811125C092
-:1016D0004B815C8169817A81C70147960E946010C5
-:1016E000F5E1EF0EF11CEA14FB0451F7F801EE539B
-:1016F000FD4F108226960FB6F894DEBF0FBECDBF09
-:10170000DF91CF911F910F91FF90EF90DF90CF90DD
-:10171000BF90AF909F908F9008951082F401108237
-:10172000DFCFEF92FF920F931F93CF93DF93FC01D4
-:10173000ED53FD4F2081222351F1EC018C01005625
-:101740001D4F7C018BE3E81A8DEFF80A88A58823EA
-:10175000D1F0CE0147960E94C811F70140819FEF5A
-:10176000940F282F30E0491771F0993008F097E076
-:10177000B901092E02C0759567950A94E2F760FFDA
-:101780000DC0F70190836596C017D107F9F6DF9178
-:10179000CF911F910F91FF90EF9008959150E3CF5B
-:1017A000EF92FF920F931F93CF93DF93FC01ED53C2
-:1017B000FD4F2081222351F1EC018C0100561D4F79
-:1017C0007C018BE3E81A8DEFF80A88A58823D1F015
-:1017D000CE0147960E94C811F701408191E0940F15
-:1017E000282F30E0491771F0983008F090E0B901E7
-:1017F000092E02C0759567950A94E2F760FF0DC047
-:10180000F70190836596C017D107F9F6DF91CF9164
-:101810001F910F91FF90EF9008959F5FE3CF8F92FC
-:101820009F92AF92BF92CF92DF92EF92FF920F936F
-:101830001F93CF93DF93CDB7DEB729970FB6F894F8
-:10184000DEBF0FBECDBF7C016C014C0120E6821AC9
-:101850002DEF920AB12CA12C1FEF00E0F60180A51C
-:10186000882349F05601F7E1AF0EB11C0F5FC501A7
-:101870000E94C811182325E1C20ED11C8C149D04AE
-:1018800069F7002309F441C0013009F051C0F501A6
-:101890006085C7010E94CD068FEF810F8E3FA8F5AE
-:1018A000812F90E06701FBE3CF1AFDEFDF0AF6011D
-:1018B000208102C0959587952A95E2F780FD03C0A7
-:1018C000C7010E94D00B01E023E04AE06CE284E40F
-:1018D0000E942906F701EC53FD4F4081440F23E09D
-:1018E0006CE284E40E945806F701ED53FD4F8081BD
-:1018F000882359F0F601808190E00E94D0112CE2FB
-:1019000048E261E672E00E94D00529960FB6F8948D
-:10191000DEBF0FBECDBFDF91CF911F910F91FF9022
-:10192000EF90DF90CF90BF90AF909F908F900895F1
-:10193000402F50E063E070E0CE0101960E94F10478
-:10194000A1E0B0E0AC0FBD1FA80FB91F96E0E6E024
-:10195000F1E001900D929A95E1F72CE244E061E606
-:1019600072E0CE0101960E94D00596CFCF93DF930F
-:10197000EC010E940F0CCE01DF91CF910C94120765
-:10198000AF92BF92CF92DF92EF92FF920F931F938D
-:10199000CF93DF93EC018C017C0180E6E81A8DEF98
-:1019A000F80A6E01E8E4CE1AEDEFDE0AF80187A12D
-:1019B000882341F085A1882329F0B601C801479604
-:1019C0000E94020F0B5E1F4F0E151F0579F77E0157
-:1019D000F7E1EF0EF11C10E000E06E018FE3C81A92
-:1019E0008DEFD80A5E01E8E4AE1AEDEFBE0AF7010A
-:1019F0008089882381F0F60180818F3F39F0082E9D
-:101A0000000C990B41E08017910709F040E0B50107
-:101A1000C7010E94460F0F5F1F4FF5E1EF0EF11C4B
-:101A20000032110521F78881882369F0CE01DF910A
-:101A3000CF911F910F91FF90EF90DF90CF90BF90CB
-:101A4000AF900C94B60CDF91CF911F910F91FF9046
-:101A5000EF90DF90CF90BF90AF900895CF93DF933A
-:101A6000EC0184E090E00E94A006882329F0CE01DA
-:101A7000DF91CF910C94B60984E090E00E94870634
-:101A8000882329F0CE01DF91CF910C949E0A85E046
-:101A900090E00E94A006882329F0CE01DF91CF912B
-:101AA0000C94060B85E090E00E948706882329F0BD
-:101AB000CE01DF91CF910C942F0B90E080E00E943B
-:101AC0008706882329F0CE01DF91CF910C94910BEA
-:101AD00082E090E00E948706882329F0CE01DF9102
-:101AE000CF910C94D00BDF91CF9108950F931F935A
-:101AF000CF93DF93EC018C0108541D4FFC01ED5393
-:101B0000FD4F6081C8010E946B0EC8010E94E00D6C
-:101B1000CE010E94210960E270E0CE0147960E944A
-:101B2000B910CE01DF91CF911F910F910C942E0D22
-:101B3000FC0111821082138212821482158283E0CA
-:101B4000868317820895CF93DF93CDB7DEB72C97A6
-:101B50000FB6F894DEBF0FBECDBF1C861B86FC01FE
-:101B600022813381420F531F80819181680F791F39
-:101B700078876F835A87498786E0FE013796DE01B2
-:101B8000119601900D928A95E1F729813A814B8156
-:101B90005C816D817E8180E090E02C960FB6F89498
-:101BA000DEBF0FBECDBFDF91CF910895FC019081C4
-:101BB000490FDB014C938281280F11962C930895D5
-:101BC000CF93DF93EC018F81882319F01C821D8253
-:101BD0001BC08E818330D8F48F5F8E832C818881E7
-:101BE0009981820F911D27FD9A9597FF6DC099836A
-:101BF00088832D818A819B81820F911D27FD9A9573
-:101C000097FF66C09B838A83DF91CF9108951E82E0
-:101C10000E94A306882361F190E080E00E94A00664
-:101C2000882329F08C8187FF3EC08E5F8C8381E002
-:101C300090E00E94A006882329F08D8187FF38C09C
-:101C40008E5F8D8383E090E00E94A006882329F0B8
-:101C50008D8118168CF582508D8382E090E00E9471
-:101C6000A006882329F08C81181654F582508C83A5
-:101C700090E080E00E94A006811107C082E090E021
-:101C80000E94A006811101C01C8281E090E00E94A8
-:101C9000A0068111A3CF83E090E00E94A0068111ED
-:101CA0009DCF1D829BCF85300CF0C1CF8F5FBECF03
-:101CB000853044F68F5FC5CF8C3F7CF28150CCCF0E
-:101CC0008C3FB4F28150D3CF198218821C8291CFFD
-:101CD0001B821A827CCFFC0167830895FF920F93C9
-:101CE0001F93CF93DF9309E815E084E192E0F801B8
-:101CF000908787830E94C305F801828384E192E084
-:101D00000E94C605F801838315821482FF24F39490
-:101D1000F6828AE092E0918B808B0E94C305F801E5
-:101D200083878AE092E00E94C605F80184871686C0
-:101D30001586F786CAE4D5E08EE192E098878F8316
-:101D40000E94C3058A838EE192E00E94C6058B83C0
-:101D50001D821C82FE8280E092E0998B888B0E941B
-:101D6000C3058B8780E092E00E94C6058C871E86A3
-:101D70001D86FF8686EB91E0F80193A382A30E9463
-:101D8000C305F801858F86EB91E00E94C605F80136
-:101D9000868F10A2178EF1A282E291E095AB84AB00
-:101DA0000E94C305F80187A782E291E00E94C60560
-:101DB000F80180AB12AA11AAF3AA8CE691E09BA3CA
-:101DC0008AA30E94C3058D8F8CE691E00E94C60510
-:101DD0008E8F18A21F8E13E019A388ED90E09DABA3
-:101DE0008CAB0E94C3058FA788ED90E00E94C605CA
-:101DF00088AB1AAA19AA1BABDF91CF911F910F9143
-:101E0000FF900895CF93DF93DC01CB011996CD911C
-:101E1000DC911A97FE01FF2729E0C29FE0011124FF
-:101E2000C65BDA4FEE0FFF1FE95FFE4F418112964E
-:101E30002D913C911397240F311D47FD3A956081F8
-:101E40004D915C91460F511D67FD5A95BE010E9450
-:101E5000D60DCE01DF91CF910C94950529E0289FF6
-:101E6000F001299FF00D1124E757FA4F87819085E3
-:101E70000C94C30529E0289FF001299FF00D11243F
-:101E8000E757FA4F878190850C94C6058F929F92F1
-:101E9000AF92BF92CF92DF92EF92FF920F931F9378
-:101EA000CF93DF9300D000D000D0CDB7DEB77C0158
-:101EB0006B01B42EFC018089882309F476C001856A
-:101EC000128548019924F9E00F9F80011124F70140
-:101ED00086858111A6C08785882309F479C0065BB1
-:101EE0001A4FF80114821582882339F0F70184898A
-:101EF0008F5F853008F06FC0848BF70183859485F0
-:101F00008130910509F483C008F47DC082309105C9
-:101F100009F467C0039709F46EC0F7012281338189
-:101F200040815181B801C6010E94D60DC8010E94AE
-:101F30009505B11004C0F70181898823B1F1F7013B
-:101F40004281538160817181C6010E94A30D298362
-:101F50003A834B835C83C980DA80AB80BC80F70115
-:101F6000818901E0811101C003E0C4010E942E0FAC
-:101F7000182FC4010E943A0FF7019685992309F49E
-:101F800053C0282F26952695280F412F4695469514
-:101F9000410F8695869586956A2D681B1695169530
-:101FA00016958C2D811B0E94290626960FB6F89453
-:101FB000DEBF0FBECDBFDF91CF911F910F91FF907C
-:101FC000EF90DF90CF90BF90AF909F908F9008954B
-:101FD00007571A4F86CF148A858591E08927858710
-:101FE0008CCF82E0F8018583F7018585882309F489
-:101FF00094CF83E005C08585882309F48ECF81E0E6
-:10200000F80185838ACF81E0F8018483ECCF81E0F9
-:10201000F8018483F7018585882309F47ECF82E067
-:10202000EFCF07571A4F79CF682F66956A0D7B2D32
-:10203000711D812F8695202F412F8C0D9D2D911D77
-:1020400026960FB6F894DEBF0FBECDBFDF91CF91BD
-:102050001F910F91FF90EF90DF90CF90BF90AF90C6
-:102060009F908F900C94FD058E589E4FFC018081AF
-:102070000895CF93DF9300D000D000D0CDB7DEB766
-:1020800026E0289FF001299FF00D1124E85BFE4F08
-:1020900086E0DE01119601900D928A95E1F7298183
-:1020A0003A814B815C816D817E8180E090E0269653
-:1020B0000FB6F894DEBF0FBECDBFDF91CF9108956C
-:1020C000FC01758364835783468381E08787089585
-:1020D000AF92BF92CF92DF92EF92FF920F931F9336
-:1020E000CF93DF9300D000D000D0CDB7DEB76C0126
-:1020F0005A018B017B0180E6E81A8DEFF80AF8019E
-:10210000808191819A838983828193819C838B834F
-:10211000818592850E942E0F8D83F801818592859D
-:102120000E943A0F8E83F8018089882359F0A01607
-:10213000B10641F0BE016F5F7F4FC6010E94C1042E
-:10214000811106C00B5E1F4F0E151F05C1F680E002
-:1021500026960FB6F894DEBF0FBECDBFDF91CF91AC
-:102160001F910F91FF90EF90DF90CF90BF90AF90B5
-:1021700008953F924F925F926F927F928F929F92BB
-:10218000AF92BF92CF92DF92EF92FF920F931F9385
-:10219000CF93DF9300D000D000D0CDB7DEB7382E7C
-:1021A000692E2B01082F192FB12CA12CA414B504D2
-:1021B000C1F426960FB6F894DEBF0FBECDBFDF91F7
-:1021C000CF911F910F91FF90EF90DF90CF90BF9034
-:1021D000AF909F908F907F906F905F904F903F90C7
-:1021E0000895F8018089882309F4CCC0778477208A
-:1021F00009F4C8C0C480D580E080F18081859285D3
-:102200000E942E0FCE18DF088695C81AD108F80153
-:10221000E680F78082809380818592850E943A0FC4
-:10222000E818F9088695E81AF108F8018185928581
-:10223000FC01EF5BFE4FE0812E2F30E0B601D7FEB0
-:1022400004C0662777276C197D09A701F7FE04C033
-:10225000442755274E195F09440F551F440F551F3A
-:102260004617570708F054C0C216D3060CF444C0F2
-:10227000EE2E21E030E0F80134872387F12CF801BD
-:102280002785222309F46AC0208131812E0D311D5A
-:10229000E7FC3A953A832983228133812F0D311D42
-:1022A000F7FC3A953C832B830E942E0F8D83F80117
-:1022B000818592850E943A0F8E83A801632D762D29
-:1022C000CE0101960E946810882309F447C0F801E6
-:1022D0008385948582309105A8F1049708F03EC06B
-:1022E00081E090E01F1414F090E080E0F801948702
-:1022F0008387EF2CF12C32C03195219531092C15B3
-:102300003D05E4F0EE2EE194F80114861386B6CF75
-:10231000E216F30644F0FE2E23E030E0F8013487A5
-:102320002387E12CACCF3195219531092E153F053E
-:102330002CF0FE2EF19422E030E0F0CFF12CE12CD5
-:10234000712C9DCFFE2CF19483E090E01F1414F0CB
-:1023500082E090E0F80194878387E12CF80177868A
-:10236000772081F0808191818E0D911DE7FC9A95F7
-:1023700091838083828193818F0D911DF7FC9A95C3
-:1023800093838283FFEFAF1ABF0A0B5E1F4F0ECFFE
-:10239000DC011996ED91FC91ED5EFE4F8081089570
-:1023A000880F991FFC01E75CFE4F808191810895A1
-:1023B000BC016F5F7F4F80E1FB0111928A95E9F7C5
-:1023C00088E891E00C940D1F43E068E272E088E831
-:1023D00091E00E94701B811106C088E192E00E948A
-:1023E000D8110C94DE030895FC0188E0808389E015
-:1023F000818387E0828386E0838384E0848382E034
-:10240000858381E186830895FF920F931F93CF9375
-:10241000DF93EC018C01095F1F4FFF24FA9462E007
-:1024200088810E94F72388810E9461242F81892B53
-:1024300081F42F5F2F8360E088810E94F72321962B
-:10244000C017D10761F7DF91CF911F910F91FF90D6
-:1024500008952223A1F32F3F11F41F82ECCFFF82B6
-:10246000EACFFC01E60FF11D81E09781913009F080
-:1024700080E00895FC01E60FF11D81E097819F3F08
-:1024800009F080E00895860F911DFC01878142309C
-:1024900038F49FEF980F81E09E3F50F080E008C035
-:1024A0008F3FE1F3642F0E945A2681E09130B1F70B
-:1024B0000895860F911DFC0187818F3F09F480E00C
-:1024C00008958EBD0DB407FEFDCF8EB50895DC01D5
-:1024D000643508F042C0403308F03FC090968C91BC
-:1024E0009097E62F062E000CFF0B242F259525959F
-:1024F000259594E52902E00DF11D1124E853FA4FCA
-:102500002081342F37708230A1F4822F90E0032E87
-:1025100002C0959587950A94E2F78095817088238B
-:1025200099F081E090E001C0880F3A95EAF7822B9C
-:1025300013C08330A1F71C968C916427062E000CE3
-:10254000770B682760FDEDCF81E090E001C0880F38
-:102550003A95EAF780958223808308951F93CF935D
-:10256000DF93EC01162FF89460E08F850E943324EE
-:10257000888918161CF460E00E943324812F0E9481
-:102580006112888918161CF461E00E943324789443
-:10259000DF91CF911F910895E8ECF5E028EF31E04D
-:1025A000DF01A9011D9241505040E1F7DC0119966D
-:1025B0001C9219971A961C92089548EF51E06FEFFC
-:1025C0007FEF88EC95E00C948128CF92DF92EF9218
-:1025D000FF920F931F93CF93DF93EC018C858F5F56
-:1025E0008C8788ECE82E85E0F82E10E0612F60647F
-:1025F000CE010E94AE1260E8CE010E94AE1261E0F0
-:102600008F850E943324888918161CF460E00E948C
-:102610003324670104E5F60181916F010E94611284
-:102620000150C9F7888918161CF461E00E94332410
-:102630001F5FF4E5EF0EF11C1630C1F660E4CE0129
-:10264000DF91CF911F910F91FF90EF90DF90CF908E
-:102650000C94AE12FC0160A361A30895FC0160A379
-:1026600041A30895EF92FF920F931F93CF93DF93AF
-:102670008C01D62FF42EE22EC0E0CE1544F44F2D5F
-:102680004C0F6D2FC8010E946712CF5FF6CFDF910C
-:10269000CF911F910F91FF90EF900895EF92FF92CD
-:1026A0000F931F93CF93DF938C01F62ED42FE22E3E
-:1026B000C0E0CE1544F46F2D6C0F4D2FC8010E9461
-:1026C0006712CF5FF6CFDF91CF911F910F91FF90EF
-:1026D000EF900895EF92FF920F931F93CF93DF93A4
-:1026E0007C01162FD42FC22F0E944E134FEF400FA4
-:1026F0004D0F2C2F612FC7010E944E13202F4D2FFD
-:10270000612FC7010E9432136FEF6C0F610F202FF2
-:102710004D2FC701DF91CF911F910F91FF90EF9047
-:102720000C943213DF92EF92FF920F931F93CF938B
-:10273000DF937C01D62FD22EC42F002E000C110B5C
-:10274000040F111D47FD1A958C2F0C2E000C990BB0
-:102750008017910744F42D2D4C2F6D2FC7010E9437
-:102760004E13CF5FF1CFDF91CF911F910F91FF906B
-:10277000EF90DF9008959F92AF92BF92CF92DF9239
-:10278000EF92FF920F931F93CF93DF938C01E62E6E
-:10279000F42EC22F81E0D82ED21AC22EC194CC0CB6
-:1027A000422F4F0DC8010E9467124F2D4C1B6E2DFA
-:1027B000C8010E9467126C2F6E0D4F2DC8010E9438
-:1027C00067126E2D6C1B4F2DC8010E946712D0E05E
-:1027D000DC170CF044C0D7FC04C0C150C394C394B0
-:1027E000DC0CDF5F8D2F880F8F5FD80E9E2C9D0E27
-:1027F000BF2CBC0E4B2D692DC8010E946712AE2C58
-:10280000AD1A4B2D6A2DC8010E946712BF2CBC1A4D
-:102810004B2D692DC8010E9467124B2D6A2DC801EE
-:102820000E946712BF2CBD0E4B2DAE2CAC0E6A2D34
-:10283000C8010E9467124B2DBE2CBC1A6B2DC8011B
-:102840000E9467129F2C9D1A492D6A2DC8010E9473
-:102850006712492D6B2DC8010E946712B9CFDF9115
-:10286000CF911F910F91FF90EF90DF90CF90BF908D
-:10287000AF909F9008958F929F92AF92BF92CF9208
-:10288000DF92EF92FF920F931F93CF93DF937C0120
-:10289000162FD42EC22F81E0C82EC21AB22EB194A8
-:1028A000BB0CD0E0802F8470A82E802F8270982ED1
-:1028B000802F8870882E0170DC170CF04DC0C7FC8B
-:1028C00004C0C150B394B394CB0CDF5F8D2F880F3D
-:1028D0008F5FC80EAA2071F04D2D4C0F612F6D0F28
-:1028E000C7010E9467124D2D4D0F6C2F610FC7015C
-:1028F0000E946712992071F04D2D4C1B612F6D0FB6
-:10290000C7010E9467124D2D4D1B6C2F610FC7012F
-:102910000E946712882071F04D2D4D0F612F6C1BA6
-:10292000C7010E9467124D2D4C0F612F6D1BC7010F
-:102930000E946712002309F4BFCF4D2D4D1B612F5C
-:102940006C1BC7010E9467124D2D4C1B612F6D1B24
-:10295000C7010E946712B0CFDF91CF911F910F91F5
-:10296000FF90EF90DF90CF90BF90AF909F908F90AF
-:1029700008957F928F929F92AF92BF92CF92DF92F3
-:10298000EF92FF920F931F93CF93DF935C01C62EBC
-:10299000942EC22F11E0121BD22ED194DD0C83E0B5
-:1029A000F82ED0E0802F8170782E882483948E0CAE
-:1029B0000270DC17ACF517FD04C0C150D394D3945A
-:1029C0001D0DDF5F1F0D772099F02C2F220F280D92
-:1029D000492D4C1B6C2D6D0FC5010E9432132E2DFD
-:1029E0002F0D492D4D1B6C2F6C0DC5010E9432130C
-:1029F000002399F02C2F220F280D492D4C1B6C2DF4
-:102A00006D1BC5010E9432132E2D2F0D492D4D1B1C
-:102A10006C2D6C1BC5010E943213F394F394C9CF43
-:102A2000DF91CF911F910F91FF90EF90DF90CF90AA
-:102A3000BF90AF909F908F907F9008959F92AF929C
-:102A4000BF92CF92DF92EF92FF920F931F93CF939B
-:102A5000DF93EC01B62E142FD22EAE2CAA0C922EA0
-:102A60009A18CE2CC60E292D6C2D0E944E13FF24D1
-:102A7000FA94F00EF10E292D4F2D6C2DCE010E94EF
-:102A80004E130A191E0D202F412F6B2DCE010E94CF
-:102A90003213DB0C6FEF6D0D202F412FCE010E9402
-:102AA000321301E02E2D412F6C2DCE010E943B14DC
-:102AB0008E2D8095D80E02E02E2D412F6D2DCE014A
-:102AC0000E943B14FE1804E02E2D4F2D6D2DCE01DB
-:102AD0000E943B1408E02E2D4F2D6C2DCE010E943C
-:102AE0003B14DF91CF911F910F91FF90EF90DF90FA
-:102AF000CF90BF90AF909F900895AF92BF92CF922A
-:102B0000DF92EF92FF920F931F93CF93DF936C01AD
-:102B1000C62FF42EA22ED02F1E2DEE0CB12EB60EE7
-:102B20002E196B2D0E949213D150DE19F10E6FEF0A
-:102B30006C0F6A0D611BED2E01E0212F4F2DC60198
-:102B40000E94B91402E0212F4F2D6B2DC6010E9467
-:102B5000B914DF91CF911F910F91FF90EF90DF900B
-:102B6000CF90BF90AF9008952F923F925F926F9257
-:102B70007F928F929F92AF92BF92CF92DF92EF920D
-:102B8000FF920F931F93CF93DF93EC01F901E49031
-:102B90003196849164350CF015C10E2C000CFF08A1
-:102BA000062F062E000C110BF701E00FF11F1E1669
-:102BB0001F060CF007C140330CF004C1A82FC42E2F
-:102BC000042E000CDD085601A80EB11C87FDBA9436
-:102BD0001A141B040CF0F6C02E5F3F4F570197E00C
-:102BE000A90EB11CB7FE04C05701BEE0AB0EB11C6C
-:102BF000B3E0B594A794BA95E1F747FF0AC0A42FB4
-:102C0000A80FAC9CC001AD9C900D1124281B390B62
-:102C100040E08A2F0A2E000C990B840F911D47FD6E
-:102C20009A95C19714F0A0E3A41BF8A067FD60E09B
-:102C3000E535F10514F0E4E5F0E09E2FCC85C427DE
-:102C4000C62E062E000CDD08F601E01BF10B8F01ED
-:102C50004F01F7E08F229924E0E8F0E002C0F595FB
-:102C6000E7958A94E2F77E2F17FF02C0095F1F4F96
-:102C7000F3E015950795FA95E1F7200F311F542FD2
-:102C8000577081E001C0880F5A95EAF74595459540
-:102C90004595F601B4E54B02E00DF11D1124AF019D
-:102CA00048535A4FD0E02A2EAA0F3308EE24E3945B
-:102CB000BB24D21513040CF085C0F9015490F1E047
-:102CC000FF121AC06901962E8A01E72F991608F0A3
-:102CD00057C08E2E852021F0D8018C90882A8C92A6
-:102CE000E69531F4BFEFCB1ADB0AF6015490E0E829
-:102CF00093940F5F1F4FEACFF1101CC0782E709491
-:102D00006901962E8A01E72F991608F039C08E2E98
-:102D1000852021F0D8018C9087208C92E69531F4A3
-:102D2000BFEFCB1ADB0AF6015490E0E893940F5FF3
-:102D30001F4FEACFF3E0FF122CC0782E7094690188
-:102D4000862E8A01972E8916D0F4E92DE52141F0CF
-:102D5000D801EC916C2E682460FE0FC0E82BEC9338
-:102D6000969439F4BFEFCB1ADB0AF6015490E0E8F1
-:102D70009E2E83940F5F1F4FE6CFE721F0CFCE2525
-:102D8000880F19F44C5A5F4F81E0DF5F2A0D3B1D1D
-:102D900090CF6901962E8A01E72F991688F78E2E1B
-:102DA000852021F0D8018C9088268C92E69531F40C
-:102DB000BFEFCB1ADB0AF6015490E0E893940F5F63
-:102DC0001F4FEBCFDF91CF911F910F91FF90EF90AD
-:102DD000DF90CF90BF90AF909F908F907F906F903B
-:102DE0005F903F902F9008952F923F924F925F9265
-:102DF0006F927F928F929F92AF92BF92CF92DF920B
-:102E0000EF92FF920F931F93CF93DF9300D000D0E8
-:102E100000D01F92CDB7DEB74C01462E342E69018B
-:102E20008E2D01111DC0E1101BC0C40127960FB6E5
-:102E3000F894DEBF0FBECDBFDF91CF911F910F91F0
-:102E4000FF90EF90DF90CF90BF90AF909F908F90CA
-:102E50007F906F905F904F903F902F900C94B4159F
-:102E6000F60154903196E490A52CB12C9501295F80
-:102E70003F4FA90133E0559547953A95E1F75B83BC
-:102E80004A830370F12CEE2DF0E0FD83EC835A941D
-:102E90001FEF1E0D2F2D0F2C000C330B2A153B0599
-:102EA0000CF070C0F982F7FE03C0F7E0FF0DF98364
-:102EB000298125952595259529839F2D977897FF1D
-:102EC00003C09150986F9F5F20E8622E712C02C062
-:102ED000759467949A95E2F7212C4981042E000C91
-:102EE000550B4E5F5F4F5F834E83222D022C000CEB
-:102EF000330BEC81FD812E173F070CF041C04A8156
-:102F00005B81429FF001439FF00D529FF00D112411
-:102F10002E813F81E20FF31FEC0DFD1DE491F0E0E7
-:102F2000E621F721EF2B41F1023069F0612F6219A0
-:102F30004F2D033061F0452D4F19622D013039F0CE
-:102F4000422D6F2D04C0652D6F19412F4219882322
-:102F5000A9F0382F3370398380FF03C0552D561BDD
-:102F6000652F81FF03C08E2D841B482F640D430DF8
-:102F7000C4010E94671289812394B7CF1982F6CFCA
-:102F8000F39488CF27960FB6F894DEBF0FBECDBF5F
-:102F9000DF91CF911F910F91FF90EF90DF90CF9035
-:102FA000BF90AF909F908F907F906F905F904F9069
-:102FB0003F902F900895DC01FB0184918F5F149660
-:102FC0008C9314973196E491EF5F1596EC931597D7
-:102FD0006E5F7F4F5F967C936E935E970895EF923E
-:102FE0000F93CF93DF93EC014E876D872F87E98A8C
-:102FF000088B81E0888788A319A28F8363EE73E032
-:10300000CE010E94DB170E94172681E00E942D2628
-:1030100085E00E943B268CE00E94362661E08E858A
-:103020000E94F72361E08D850E94F72361E08F8580
-:103030000E94F723898918161CF461E00E94F72387
-:10304000888918161CF461E00E94F72389891816F4
-:103050006CF460E00E9433246AE070E080E090E06D
-:103060000E94F52261E089890E9433248D85082E13
-:10307000000C990BFC01E950F94FE491F0E0EE0FE0
-:10308000FF1FEB5EF84F259134913D8B2C8BFC019B
-:10309000ED51F94FE491EB8F8E85082E000C990BC2
-:1030A000FC01E950F94FE491F0E0EE0FFF1FEB5EF9
-:1030B000F84F259134913B8B2A8BFC01ED51F94F50
-:1030C000E491EA8F8889082E000C990BFC01E950E5
-:1030D000F94FE491F0E0EE0FFF1FEB5EF84F259102
-:1030E00034913F8B2E8BFC01ED51F94FE491EC8F25
-:1030F0008F85082E000C990BFC01E950F94FE491E3
-:10310000F0E0EE0FFF1FEB5EF84F25913491398F01
-:10311000288FFC01ED51F94FE491ED8F61E2CE0172
-:103120000E94AE1264E1CE010E94AE128B8587FF31
-:1031300002C08FE78B876B856068CE010E94AE125C
-:1031400060E2CE010E94AE126CE0CE010E94AE128F
-:10315000CE01DF91CF910F91EF900C94E5124F9239
-:103160005F926F927F928F929F92AF92BF92CF9217
-:10317000DF92EF92FF920F931F93CF93DF93EC01B7
-:10318000862EF42E102F83E586170CF485C08FE26F
-:1031900084170CF481C04C814150550B049FC00131
-:1031A000059F900D1124860F911D67FD9A951816A5
-:1031B00019060CF071C03D818F2D0F2C000C990B5E
-:1031C000039F800D911D1124181619060CF064C080
-:1031D00078A0E62E912CC22ED12C292D092C000C82
-:1031E000330B8C8190E0281739070CF054C00197FD
-:1031F000E0E02817390771F0C89EF001C99EF00D74
-:10320000D89EF00D11242E0F3F1FEE8DFF8DE20F83
-:10321000F31FE4915F2C612C492C480C2D81862DE5
-:10322000062C000C990B2817190691F18CF1AE2E83
-:10323000B12CE0FF16C0113061F4462D4F0D642D06
-:10324000CE010E946712F501F595E7956394510E42
-:10325000E5CF012F212F452D6E2DCE010E94921317
-:10326000F2CF89A198A1891771F388A3113041F495
-:10327000462D4F0D642DCE010E94671278A2E3CF38
-:10328000012F212F452D6E2DCE010E949213F6CFD6
-:103290009394E10EA2CF78A2DF91CF911F910F916D
-:1032A000FF90EF90DF90CF90BF90AF909F908F9066
-:1032B0007F906F905F904F9008950F93CF93DF931F
-:1032C000EC01262F6A3049F428859D818A85299F43
-:1032D000800D11248A8719861DC06D30D9F00885AC
-:1032E0004A8569850E94AF1828853C818985239F7E
-:1032F000800D112489879F81992361F0082E000C8D
-:10330000990B44E550E0239F4019510911244817B7
-:103310005907DCF281E090E0DF91CF910F910895A1
-:10332000FC01EC57FF4F718360838A579F4F445FC6
-:10333000FC01408308956F927F928F929F92AF928B
-:10334000BF92CF92DF92EF920F93CF93DF934C0116
-:103350005C0186E8A80EB11CD5018C91882309F484
-:103360004AC0CCE0C81B8C3008F0C0E0F401EA5A37
-:10337000FF4F81E080836401BEE4CB0ED11C60E08E
-:10338000C6010E942A133401E3E56E0E711CD301BD
-:103390008C9103E0080FDDE24D2F481B4C0F83E0BA
-:1033A000E82E24E560E0C6010E947D1561E0C601BB
-:1033B0000E942A13F301808103E0080F4D2F481B60
-:1033C0004C0F24E560E0C6010E941E15F401E95A85
-:1033D000FF4F84E080833196D3018C91C81BC15D7F
-:1033E000C083BC9660817181C6010E94C124F50131
-:1033F000808181508083DF91CF910F91EF90DF909A
-:10340000CF90BF90AF909F908F907F906F900895D6
-:10341000CF92DF92FF920F931F93CF93DF93EC0134
-:103420008C8D9D8D892B01F18E01025B1F4F40E039
-:1034300061E0C8010E942E13FE01E95AFF4FDE0130
-:10344000AE5ABF4F9C9185E5891B808331961082CF
-:10345000698D613009F46DC078F0888D653008F0B1
-:1034600082C06B5F811175C0DF91CF911F910F9169
-:10347000FF90DF90CF900895CE0185960E94622143
-:1034800081E0FE01EA5AFF4F808363EE73E0C801DA
-:103490000E94DB171D8E1C8EFE01EC5AFF4F10821E
-:1034A00088EAF82E6E018AE0C80ED11CCE010E9477
-:1034B000B81A8823D9F362ED75E0C8010E94C124CF
-:1034C0006A8D7B8D4AE050E0C8010E94D0256DEBEB
-:1034D00075E0C8010E94C1246F2D62956F7070E085
-:1034E0004AE050E0C8010E94BC2562EB75E0C801CB
-:1034F0000E94C12464E0C6010E9431128111B4CF40
-:10350000FA94F110D3CF60E0CE010E94D52183B7A9
-:10351000817F846083BF83B7816083BF83B781600D
-:1035200083BF889583B78E7F83BF83B78E7F83BF2A
-:10353000BDCFCF58DF4F88819981AA81BB818F7021
-:103540009927AA27BB2767E00897A105B10508F0CE
-:1035500068E7C801DF91CF911F910F91FF90DF9035
-:10356000CF900C94EC24882309F47ECF6FE2F1CF46
-:103570008F929F92AF92BF92CF92DF92EF92FF9283
-:103580000F931F93CF93DF93EC017C0180E8E80E4B
-:10359000F11CF70180809180A280B3800E94C42238
-:1035A000861A970AA80AB90A6E01FFE7CF0ED11C46
-:1035B000F601808190E0B0E0A0E08E0105581F4F39
-:1035C00088159905AA05BB0508F04AC0F801808155
-:1035D0009181A281B381892B8A2B8B2B09F440C066
-:1035E0000E94C422F6012081620F711D811D911D70
-:1035F000F70160837183828393833F9780819181F8
-:10360000A281B3810196A11DB11D80839183A28304
-:10361000B383F80110821182128213820E94D02299
-:10362000FE01E958FF4F6083718382839383CE014B
-:103630000E94D921CE010A960E940412CE0148961A
-:103640000E94422281E0DF91CF911F910F91FF9064
-:10365000EF90DF90CF90BF90AF909F908F900895A4
-:10366000F80180819181A281B381892B8A2B8B2BD8
-:10367000A9F57E01F5E2EF0EF11CC7010E941D20A5
-:10368000C7010E949020C7010E945421CE010E94D0
-:103690009B19CE010E94081A7E018EE4E80EF11CEF
-:1036A000C7010E94E512FE01EC5AFF4F8081811193
-:1036B00003C0C7010E94CC120E94D022F80160838F
-:1036C000718382839383FE01EB58FF4FC958DF4F0C
-:1036D00028813981621B730B7183608380E0B3CFD3
-:1036E0002F923F924F925F926F927F928F929F9212
-:1036F000AF92BF92CF92DF92EF92FF920F931F9300
-:10370000CF93DF93CDB7DEB765970FB6F894DEBFE2
-:103710000FBECDBF6C016A8B7B8B4B83FC01EC5AD7
-:10372000FF4F10822FEF2D831C821D8A10E31C8A0D
-:103730003C013AE0630E711C842F90E09F838E83DE
-:103740002601E3E54E0E511C4601F5E28F0E911C59
-:103750009601295A3F4F39872887C601885A9F4FBB
-:103760009B878A87F601EA5AFF4FFF87EE87225030
-:103770003109398B288B0A971C01C6010E94B81A9F
-:103780008823D9F364E0C3010E943112012F110F85
-:10379000110B882399F0F201F081F1952B81F29FB2
-:1037A000202D112422502D8B64E0C3010E94311280
-:1037B000811193C0C4010E94BD2194C065E0C30182
-:1037C0000E9431128111E7CF66E0C3010E943112DD
-:1037D0008111E1CF8C81811185C044E063E0C30198
-:1037E0000E944312882331F09C899F5F9C8BC40107
-:1037F0000E94C12144E061E0C3010E94431288237A
-:1038000031F0EC89E150EC8BC4010E94C121FC89AC
-:103810008F2F0F2E000C990B2E813F81821793075B
-:1038200009F46BC0F7FF03C03B8131503C8BF201C0
-:103830008081F4E0F80F2C89829FF0191124FD8B10
-:103840009D89090F111D97FD1A9517FF02C00F5F83
-:103850001F4FF801F595E795FA83E9830981102F49
-:10386000E885F9851082EA85FB85008321E0EE85F5
-:10387000FF852083E889F9891082EA88FB88B12CCA
-:10388000A12C2C89022E000C330B3D872C878E81B6
-:103890009F818A159B0599F1EC85FD85EA15FB054D
-:1038A00079F423E0E885F9852083F2018081F02F07
-:1038B0002C89289FF00D11248F2FEA85FB858083AA
-:1038C000F70165917491C1010E940725FFEFAF1ABE
-:1038D000BF0A22E0E20EF11CDACFC4010E94B92136
-:1038E0003C893D83C8013D89831B910937FD939530
-:1038F000029764F181E08C83A3CF1C8A98CF60E0AB
-:10390000C1010E942A13F20180814981FC89F89F3C
-:10391000400D1124415024E560E0C1010E944E1386
-:1039200061E0C1010E942A13F201808103E0080FC7
-:103930004981FC898F9F400D1124425083E0E82E7D
-:1039400024E560E0C1010E941E1517CF8D816596A8
-:103950000FB6F894DEBF0FBECDBFDF91CF911F91A0
-:103960000F91FF90EF90DF90CF90BF90AF909F901E
-:103970008F907F906F905F904F903F902F90089521
-:103980000F931F93CF93DF93EC018C01025B1F4FCA
-:10399000C8010E94CC126AE875E0C8010E94C124E7
-:1039A000C8010E94E51283E00E943B2681E891E075
-:1039B000EEEFFFE30995FE01EC5AFF4F108265E63A
-:1039C00075E0C8010E940725C8010E94E5122A96E9
-:1039D000CE010E94041264E0CE010E9431128111D6
-:1039E00007C062E370E080E090E00E94F522F0CF33
-:1039F000DF91CF911F910F9108952F923F924F9297
-:103A00005F926F927F928F929F92AF92BF92CF926E
-:103A1000DF92EF92FF920F931F93CF93DF93CDB777
-:103A2000DEB729970FB6F894DEBF0FBECDBF9987DA
-:103A300088877B836A832A013C0180E7680E711CBA
-:103A4000F3018081882309F4F7C081E0E885F985D6
-:103A5000EA5AFF4F8083E885F985EB5AFF4F1082C1
-:103A6000E885F985EC5AFF4F1082E885F985108EBC
-:103A70008F01025B1F4F61E0C8010E942A138885F5
-:103A800099858D5A9F4F9F838E83A884B98497E52B
-:103A9000A90EB11CE884F984E8E5EE0EF11C8884D7
-:103AA0009984F2E58F0E911C888599858F589F4FD8
-:103AB0009D838C83288439849AE0290E311CC88424
-:103AC000D984E5E2CE0ED11C888599850E94B81A6A
-:103AD0008823D1F3EA81FB81F491F983FF2321F05C
-:103AE000EE81FF81F081F98324EF35E040E060E072
-:103AF000C8010E94B4154114510439F04981445F52
-:103B0000920160E0C8010E94B415F50110828CE0BA
-:103B1000F70180836A817B81C8010E94C124F4017E
-:103B20008081982F990F990F891B8D5AF5018083F9
-:103B3000EE81FF818081982F990F990F891B835DFA
-:103B4000F7018083EC81FD81808160EF75E084FD69
-:103B500002C06CEE75E0C8010E940725F401808167
-:103B6000982F990F990F891B8D5AF5018083F701C2
-:103B700080818F5F8083E885F98582A568EE75E096
-:103B8000811102C064EE75E0C8010E940725F401AE
-:103B90008081982F990F990F891B8D5AF501808389
-:103BA000F70180818F5F808360EE75E0C8010E941D
-:103BB000072565E0C1010E943112882351F0E88594
-:103BC000F98562A56F5FC6010E94C521C6010E94EA
-:103BD000C12164E0C1010E94311281111FC0F301B3
-:103BE0002081422F50E070E060E0EC81FD81808117
-:103BF0009181A281B38184179507A607B70710F0BA
-:103C00002F3F61F466E0C1010E943112882309F45C
-:103C10005BCF888599850E94C01C56CF8FEFF3013A
-:103C2000808360E0C6010E945721C6010E94B9212D
-:103C300081E0E885F985808F29960FB6F894DEBF7C
-:103C40000FBECDBFDF91CF911F910F91FF90EF90ED
-:103C5000DF90CF90BF90AF909F908F907F906F90AC
-:103C60005F904F903F902F90089550E040E00C946B
-:103C7000FD1CE0E8F7E72591349181E02130304CDC
-:103C800009F080E00895CF93DF93EC010E94391E84
-:103C90009E01275A3F4FDE01A059BF4F882309F4E8
-:103CA00040C0E6E9F7E78491F9018083E7E9F7E7A7
-:103CB000E491EC83E8E9F7E7E491ED83E9E9F7E7DC
-:103CC000859194919F838E83EBE9F7E78591949199
-:103CD00099878887EDE9F7E7E491EBA7EEE9F7E745
-:103CE000E491EAA7EFE9F7E7E491EC93E0EAF7E77C
-:103CF000859194919D8F8C8FE2EAF7E7859194915D
-:103D00009F8F8E8FE4EAF7E78591949199A388A31A
-:103D1000E6EAF7E7859194919BA38AA3DF91CF917F
-:103D200008958CE3F90180831C828FEF8D8320E25C
-:103D300033E03F832E8324ED33E03987288791E0F9
-:103D40009BA79AA78C938CEA9DE09D8F8C8F8EED1C
-:103D50009DE09F8F8E8F84E79EE099A388A38CE3DC
-:103D60009FE0DACFCF92DF92EF920F93CF93DF9362
-:103D7000EC01FC01E158FF4F82E38083349781E03E
-:103D800090E0A0E0B0E080839183A283B3833B976F
-:103D90008FEF8083CE010E94431ECE010E94D1216D
-:103DA0006FEFCE010E94D5216E018AE0C80ED11CB2
-:103DB000C6010E94F411C6010E940412CE01489669
-:103DC0000E9438228EE0E82E0FE020E14BE06DE00B
-:103DD000CE01825B9F4F0E94EF17A596CE010E94F5
-:103DE000561F65E0C6010E943112882351F060E041
-:103DF000CE01DF91CF910F91EF90DF90CF900C9497
-:103E0000C52140E064E676E0CE01DF91CF910F91CD
-:103E1000EF90DF90CF900C94EA1FCF93DF93D62FD3
-:103E2000C72F0E94391E882359F0AD2FBC2FEBE815
-:103E3000F7E784918D933196E53987E7F807C9F75D
-:103E4000DF91CF910895CF93DF93DC0170E0660F8F
-:103E5000771F1F96ED91FC915097E60FF71F259164
-:103E6000349190963C932E935F97F901459154912C
-:103E700014968C911497849F402D112491964C9305
-:103E80009197F901C591D4916D2F70E046171706EF
-:103E900029F020F0F90125913491432F849F402D82
-:103EA000112492964C93DF91CF91089521E0FC016B
-:103EB000248324E020A723EC36E0308B278760E0C2
-:103EC0000E94231F61E070E083E00E947123E1EB18
-:103ED000F0E08081887F81608083F8941092800078
-:103EE000E1E8F0E01082109285001092840088E1F1
-:103EF00091E090938900809388008081886080831E
-:103F0000808181608083EFE6F0E080818260808341
-:103F1000789408950F93FC01011107C06230D9F025
-:103F200030F4662379F0613091F00F910895633099
-:103F3000C9F06430D1F76481649F402D1124458F0E
-:103F4000268FF3CF4B3008F04AE0468BEECF642F3C
-:103F50000F910C94231F6481649F402D1124418F85
-:103F6000228FE3CF6481649F402D1124438F248FDF
-:103F7000DCCF8091CC07882329F08091C9078093FA
-:103F8000B400089580E0FBCFFC01178A158A14A2C3
-:103F900013A2108E1092C9071092CA071092CC0774
-:103FA0000C94B91F0F931F93CF93DF93EC018B01F8
-:103FB0000E94C41F1E870D871B8A1A8A81E089838D
-:103FC00089E08E8B198E1B8E1D8EDF91CF911F91F4
-:103FD0000F910895411102C00C94D21F0895CF9300
-:103FE000DF93EC01611115C08881882391F08981EC
-:103FF00081110FC0E9858E2F90E0880F991FEF8106
-:10400000F885E80FF91F859194918F3F980721F467
-:104010001882DF91CF9108959C879927880F991F67
-:10402000EA85FB85E80FF91F65917491CE010E9426
-:10403000D21F89858F5F8987ECCF60E00C94EF1FDA
-:104040000F93CF93DF93EC01611166C089818823C0
-:1040500009F462C08D8981115FC08D859E85EA89D2
-:10406000FB89EE0FFF1FE80FF91F45915491411591
-:10407000510541F42989213021F51B8A1A8AFC0156
-:1040800045915491BA017695679576956795862FF7
-:1040900040FF2EC0252F269526952695205186E097
-:1040A000569547958A95E1F74F716F7000E0CE0104
-:1040B0000E948A1FEA89FB893196FB8BEA8BCF012C
-:1040C0000AC019828881882369F060E0CE010E94CD
-:1040D000EF1F8A899B89880F991FED85FE85E80F60
-:1040E000F91FCECFCE01DF91CF910F910C94C41F59
-:1040F0008F738C8B8C81859F802D11248D8B1DA2BD
-:104100001CA21BA281E08F8B8093CC07188E8A891A
-:104110009B8901969B8B8A8BDF91CF910F9108959C
-:1041200060E00C942020CF93DF93EC016111B3C0C9
-:104130008F89882309F4AFC08D89811105C0CE0114
-:10414000DF91CF910C94C41F81508D8B8DA1811173
-:1041500034C02BA13CA12F5F3F4FC901880F991F8D
-:10416000EF8DF8A1E80FF91F85919491482F4770C2
-:104170004EA3492F469546954FA3AC0164E0569552
-:1041800047956A95E1F74F739C81499F402D112413
-:104190004DA383FB882780F98093C8073CA32BA3FA
-:1041A00089A190E02817390740F02AA1222309F4B9
-:1041B00075C0821B91099CA38BA38DA181508DA3F7
-:1041C000888D31E0380F388F4C892FA1240F8C85D2
-:1041D000280F2A836B8D662361F070E0832F032EF6
-:1041E000000C990B0E947A268C8D869F200D11243D
-:1041F0002A838A8190E0CB966BE370E00E947A2656
-:104200008A832E892B83698D662371F0062E000C1C
-:10421000770B832F032E000C990B0E947A268A8D30
-:10422000869F200D11242B836D8D662389F0832FAB
-:10423000330F990B70E00E947A26CB0162E070E0A8
-:104240000E947A262E8D9B81289F900D11249B839E
-:104250004F3341F18B818A300CF089E087FD80E09B
-:104260008B83F894EA81F0E0EE58F94FE491E09303
-:10427000CB078D8198A5899F802D11249B81899FD3
-:10428000802D11249EA1899F802D11248093CA071F
-:104290008093C9077894DF91CF910895CE010E9451
-:1042A000C41F8BCF1B82DDCF60E00C949320CF9393
-:1042B000DF93EC01611103C00E94C41F1982DF91DA
-:1042C000CF910895CF93DF93EC010E94C41F198210
-:1042D000DF91CF9108956091CA07662329F18091FB
-:1042E000CD078F5F8093CD079091CB078917E0F0C2
-:1042F00081E09091CC07911180E08093CC071092DF
-:10430000CD078091C807882369F08091040193E468
-:10431000899F802D1124895B809304010E945A2675
-:104320009093C9070C94B91F08951F920F920FB66E
-:104330000F9211242F933F934F935F936F937F932B
-:104340008F939F93AF93BF93EF93FF930E946B2143
-:10435000FF91EF91BF91AF919F918F917F916F915D
-:104360005F914F913F912F910F900FBE0F901F9033
-:1043700018956BEB76E00C94D21F63EB76E00C940F
-:10438000D21F6DEA76E00C94D21FFC01862F660FD7
-:10439000990B668170E06F5F7F4F0E947A2685835C
-:1043A000089521E0FC012083089570E085E00C94DD
-:1043B0007123AF92BF92CF92DF92EF92FF920F9351
-:1043C0001F93CF93DF93EC0189819A812FE0289F7F
-:1043D0008001299F100D112485E10E945623800F32
-:1043E000911F24E0969587952A95E1F79A83898312
-:1043F0002881222391F1EC81AD80B12CD12CC12CEC
-:10440000A885B9857D0110E000E06E817F819B0168
-:1044100050E040E08617970728F0BC01A817B907BD
-:1044200008F4BD0190E080E01F921F921F92EF936D
-:104430000E94D6256B830F900F900F900F9070E025
-:1044400085E0DF91CF911F910F91FF90EF90DF906A
-:10445000CF90BF90AF900C947123DF91CF911F91BB
-:104460000F91FF90EF90DF90CF90BF90AF900895A5
-:10447000FC018CE39FE09383828384E0818381E06D
-:1044800084870895CF93DF93EC018C819D81892BE4
-:1044900021F18C858F7139F584E10E945623BC018E
-:1044A000990F880B990B0E942C2726EE3FE34EECC8
-:1044B00050E40E94B8270E94FB269B017B836A83FD
-:1044C000672BA9F084E08983FE01349680E0419156
-:1044D00051912417350720F48983DF91CF910895F6
-:1044E0008F5F8430A1F78C858F5F8C87F6CF8FEF3D
-:1044F0008983F9CF1F920F920FB60F9211242F9339
-:104500003F938F939F93AF93BF938091CF079091E9
-:10451000D007A091D107B091D2073091CE0723E008
-:10452000230F2D3758F50196A11DB11D2093CE07FD
-:104530008093CF079093D007A093D107B093D20771
-:104540008091D3079091D407A091D507B091D60759
-:104550000196A11DB11D8093D3079093D407A0931A
-:10456000D507B093D607BF91AF919F918F913F919F
-:104570002F910F900FBE0F901F90189526E8230FD4
-:104580000296A11DB11DD2CF2FB7F8946091CF072D
-:104590007091D0078091D1079091D2072FBF0895D5
-:1045A0003FB7F8948091D3079091D407A091D50795
-:1045B000B091D60726B5A89B05C02F3F19F00196EC
-:1045C000A11DB11D3FBFBA2FA92F982F8827BC016D
-:1045D000CD01620F711D811D911D42E0660F771F95
-:1045E000881F991F4A95D1F70895CF92DF92EF92D5
-:1045F000FF92CF93DF936B017C010E94D022EB01ED
-:10460000C114D104E104F10439F4DF91CF91FF909A
-:10461000EF90DF90CF9008950E94D0226C1B7D0B0D
-:10462000683E734068F381E0C81AD108E108F108D8
-:10463000C851DC4FE5CF789484B5826084BD84B5E1
-:10464000816084BD85B5826085BD85B5816085BD8D
-:10465000EEE6F0E0808181608083E1E8F0E01082A6
-:10466000808182608083808181608083E0E8F0E0E7
-:10467000808181608083E1EBF0E0808184608083D1
-:10468000E0EBF0E0808181608083EAE7F0E0808108
-:104690008460808380818260808380818160808368
-:1046A0008081806880831092C10008958E3008F068
-:1046B0008E502091050190E4299F9001112487706C
-:1046C000822B80937C0080917A00806480937A00B2
-:1046D00080917A0086FDFCCF8091780090917900DE
-:1046E00008951F93CF93DF93182FEB0161E00E9491
-:1046F000F723209739F460E0812FDF91CF911F914C
-:104700000C943324CF3FD10511F461E0F5CFE12FB4
-:10471000F0E0E153F94FE491E33031F140F4E1305E
-:10472000B1F0E230E1F0C038D1057CF7E4CFE630FB
-:1047300029F1E73059F1E430B1F7809180008062CF
-:1047400080938000D0938B00C0938A0004C084B50E
-:10475000806884BDC7BDDF91CF911F91089584B556
-:10476000806284BDC8BDF7CF80918000806880934F
-:104770008000D0938900C0938800EDCF8091B00075
-:1047800080688093B000C093B300E5CF8091B00003
-:1047900080628093B000C093B400DDCF833081F09D
-:1047A00028F4813099F08230A9F008958630A9F07C
-:1047B0008730C9F08430B1F4809180008F7D03C0D0
-:1047C000809180008F7780938000089584B58F77E3
-:1047D00084BD089584B58F7DFBCF8091B0008F7725
-:1047E0008093B00008958091B0008F7DF9CFCF9372
-:1047F000DF9390E0FC01ED51F94F24918950994FDE
-:10480000FC0184918823C9F090E0880F991FFC0176
-:10481000E15EF84FA591B491FC01EB5EF84FC591B4
-:10482000D49161110DC09FB7F8948C91209582238B
-:104830008C938881282328839FBFDF91CF9108958F
-:10484000623051F49FB7F8943C91822F8095832376
-:104850008C93E8812E2BEFCF8FB7F894EC912E2B11
-:104860002C938FBFEACF1F93CF93DF93162F282F60
-:1048700030E0F901E153F94F8491F901ED51F94F1D
-:10488000D491F901E950F94FC491CC23A1F08111E1
-:104890000E94CE23EC2FF0E0EE0FFF1FEB5EF84FEF
-:1048A000A591B4918FB7F894EC91111108C0D095EF
-:1048B000DE23DC938FBFDF91CF911F910895DE2B14
-:1048C000F8CFCF93DF93282F30E0F901E153F94F70
-:1048D0008491F901ED51F94FD491F901E950F94F63
-:1048E000C491CC23A1F081110E94CE23EC2FF0E0E3
-:1048F000EE0FFF1FE55FF84FA591B491EC91ED230A
-:1049000081E090E009F480E0DF91CF91089580E0AC
-:1049100090E0FACFCF92DF92EF92FF920F931F9326
-:10492000CF93DF936C01EB017B01E40EF51E10E0E9
-:1049300000E0CE15DF0561F06991D601ED91FC91A3
-:104940000190F081E02DC6010995080F191FF1CFE4
-:10495000C801DF91CF911F910F91FF90EF90DF90F1
-:10496000CF900895FB0101900020E9F73197AF0146
-:10497000461B570BDC01ED91FC910280F381E02D89
-:104980000994EF92FF920F931F93CF93DF937C01D3
-:104990008B01D0E0C0E0F80164910F5F1F4F6623E8
-:1049A00059F0D701ED91FC910190F081E02DC70104
-:1049B0000995C80FD91FEFCFCE01DF91CF911F917D
-:1049C0000F91FF90EF9008956115710511F00C940F
-:1049D000B22490E080E00895DC01ED91FC9101901B
-:1049E000F081E02D09940F931F93CF93DF93EC0197
-:1049F0006DE00E94EC248C016AE0CE010E94EC2460
-:104A0000800F911FDF91CF911F910F9108950F9308
-:104A10001F93CF93DF93EC010E94C1248C01CE0140
-:104A20000E94F324800F911FDF91CF911F910F916E
-:104A300008958F929F92AF92BF92CF92DF92EF92A2
-:104A4000FF920F931F93CF93DF93CDB7DEB7A1975C
-:104A50000FB6F894DEBF0FBECDBF6C01142FE52F4B
-:104A6000CB01022F19A2223008F40AE07E0121E2D4
-:104A7000E20EF11C802E912CB12CA12C612F7E2FE7
-:104A8000A50194010E948E26029F101911241A304C
-:104A90003CF5105DF70112937F01122FE32FCA013D
-:104AA000232B242B252B51F790E080E0E114F10417
-:104AB00021F0B701C6010E94B224A1960FB6F89466
-:104AC000DEBF0FBECDBFDF91CF911F910F91FF9041
-:104AD000EF90DF90CF90BF90AF909F908F90089510
-:104AE000195CD8CFCF92DF92EF92FF920F931F9372
-:104AF000CF93DF93EC016A017B012115310579F435
-:104B0000E881F9810190F081E02D642FDF91CF9150
-:104B10001F910F91FF90EF90DF90CF9009942A3072
-:104B20003105E9F42AE0F7FE1AC06DE20E94EC2498
-:104B30008C0144275527BA014C195D096E097F097C
-:104B40002AE0CE010E941925800F911FDF91CF919D
-:104B50001F910F91FF90EF90DF90CF900895B701D4
-:104B6000A601CE01DF91CF911F910F91FF90EF90A1
-:104B7000DF90CF900C9419259A01AB01770F660B4B
-:104B8000770B0C9472252115310541F4DC01ED9170
-:104B9000FC910190F081E02D642F09940C9419256B
-:104BA0009A01AB0170E060E00C94C3254F925F92D4
-:104BB0006F927F92AF92BF92CF92DF92EF92FF926D
-:104BC0000F931F93CF93DF93CDB7DEB729013A013F
-:104BD0009B01AC01241935094609570989899A892D
-:104BE000AB89BC89BC01CD016A197B098C099D097F
-:104BF0000E944A26A8019701241935094609570938
-:104C00000E94B026CA01B9016A0D7B1D8C1D9D1D35
-:104C1000DF91CF911F910F91FF90EF90DF90CF9098
-:104C2000BF90AF907F906F905F904F90089561E03C
-:104C30008AE00E94332461E08AE00E94F7238CB569
-:104C400080618CBD8CB580648CBD61E08DE00E947C
-:104C5000F72361E08BE00C94F723811104C08CB53D
-:104C600080628CBD08958CB58F7DFBCF9CB5937F02
-:104C7000892B8CBD08959CB59C7F282F2370922B87
-:104C80009CBD9DB582FB222720F9892F8E7F822B28
-:104C90008DBD0895DB018F939F930E94CF26BF9116
-:104CA000AF91A29F800D911DA39F900DB29F900D7B
-:104CB00011240895991B79E004C0991F961708F0F4
-:104CC000961B881F7A95C9F780950895AA1BBB1B70
-:104CD00051E107C0AA1FBB1FA617B70710F0A61BFC
-:104CE000B70B881F991F5A95A9F780959095BC011D
-:104CF000CD01089597FB072E16F4009407D077FD99
-:104D000009D00E94662607FC05D03EF49095819557
-:104D10009F4F0895709561957F4F0895A1E21A2ED7
-:104D2000AA1BBB1BFD010DC0AA1FBB1FEE1FFF1F4F
-:104D3000A217B307E407F50720F0A21BB30BE40B9F
-:104D4000F50B661F771F881F991F1A9469F76095E6
-:104D50007095809590959B01AC01BD01CF010895A0
-:104D6000052E97FB1EF400940E94C72657FD07D01E
-:104D70000E948E2607FC03D04EF40C94C726509553
-:104D80004095309521953F4F4F4F5F4F0895909537
-:104D90008095709561957F4F8F4F9F4F08950E942A
-:104DA000EC26A59F900DB49F900DA49F800D911DA2
-:104DB000112408950024A7FD00942A0F301D401DE2
-:104DC000501D601D701D801D901D0895EE0FFF1F6A
-:104DD0000590F491E02D0994A29FB001B39FC0010A
-:104DE000A39F700D811D1124911DB29F700D811D17
-:104DF0001124911D08950E94972788F09F5798F0DD
-:104E0000B92F9927B751B0F0E1F0660F771F881FCF
-:104E1000991F1AF0BA95C9F714C0B13091F00E94E9
-:104E2000B127B1E008950C94B127672F782F882718
-:104E3000B85F39F0B93FCCF3869577956795B39510
-:104E4000D9F73EF490958095709561957F4F8F4F7F
-:104E50009F4F0895E89409C097FB3EF49095809584
-:104E6000709561957F4F8F4F9F4F9923A9F0F92F30
-:104E700096E9BB279395F695879577956795B795AE
-:104E8000F111F8CFFAF4BB0F11F460FF1BC06F5F94
-:104E90007F4F8F4F9F4F16C0882311F096E911C0A6
-:104EA000772321F09EE8872F762F05C0662371F0C7
-:104EB00096E8862F70E060E02AF09A95660F771FDB
-:104EC000881FDAF7880F9695879597F9089597F9CF
-:104ED0009F6780E870E060E008959FEF80EC0895A0
-:104EE00000240A94161617061806090608950024C9
-:104EF0000A9412161306140605060895092E039443
-:104F0000000C11F4882352F0BB0F40F4BF2B11F4B6
-:104F100060FF04C06F5F7F4F8F4F9F4F089557FD15
-:104F20009058440F551F59F05F3F71F04795880F17
-:104F300097FB991F61F09F3F79F0879508951216AE
-:104F400013061406551FF2CF4695F1DF08C016165A
-:104F500017061806991FF1CF86957105610508940B
-:104F60000895E894BB2766277727CB0197F9089522
-:104F70000E94CB270C947E270E94702738F00E9455
-:104F8000772720F0952311F00C9467270C946D2758
-:104F900011240C94B2270E948F2770F3959FC1F3C0
-:104FA000950F50E0551F629FF001729FBB27F00DD7
-:104FB000B11D639FAA27F00DB11DAA1F649F66272C
-:104FC000B00DA11D661F829F2227B00DA11D621F7B
-:104FD000739FB00DA11D621F839FA00D611D221F35
-:104FE000749F3327A00D611D231F849F600D211D19
-:104FF000822F762F6A2F11249F5750409AF0F1F09C
-:1050000088234AF0EE0FFF1FBB1F661F771F881F04
-:1050100091505040A9F79E3F510580F00C946727AE
-:105020000C94B2275F3FE4F3983ED4F386957795CE
-:105030006795B795F795E7959F5FC1F7FE2B880FAA
-:10504000911D9695879597F908958F929F92AF92AB
-:10505000BF92CF92DF92EF92FF92CF93DF93EC015A
-:10506000688179818A819B8161157105810591052E
-:1050700021F464E279ED8BE597E02DE133EF41E037
-:1050800050E00E94B02649015A019B01AC01A7EAF9
-:10509000B1E40E94CF266B017C01ACEEB4EFA50118
-:1050A00094010E948B28DC01CB018C0D9D1DAE1D4F
-:1050B000BF1DB7FF03C00197A109B048888399833A
-:1050C000AA83BB839F77DF91CF91FF90EF90DF9012
-:1050D000CF90BF90AF909F908F9008950E94252809
-:1050E000089580E091E00E9425280895B0E0A0E0B6
-:1050F0008093000190930101A0930201B0930301FA
-:105100000895DC0101C06D9341505040E0F70895CF
-:10511000B7FF0C94CF260E94CF26821B930B0895D5
-:1051200013E0C7E9D3E004C0FE010E94E626219601
-:0A513000C839D107C9F7F894FFCF82
-:10513A00010000000101756E6974730000FA000035
-:10514A0000FD0009000004000200422E42415252B2
-:10515A0000432E504541532E00432E534C44522EA9
-:10516A0000432E54574E432E001A012101290131C2
-:10517A0001010100000000000000000032001900D7
-:10518A000A00320000000000000064000000000075
-:10519A00000000000000C80000000000000000003D
-:1051AA0000001950006400C800000000005D198A60
-:0851BA00244C4F414445520012
-:04000003000007846E
+:100000000C94FB010C9423020C9423020C94230205
+:100010000C9423020C9423020C9423020C942302CC
+:100020000C9423020C9423020C9423020C94F910D8
+:100030000C9423020C9423020C9423020C942302AC
+:100040000C9417120C9423020C9423020C94230298
+:100050000C9423020C9423020C9423020C9423028C
+:100060000C9423020C9423020201090153696E6768
+:100070006C6520706C617965722067616D65004DFB
+:10008000756C7469706C617965722067616D65006B
+:100090004F7074696F6E73006C007F009000506F3A
+:1000A000636B657420456D70697265730003053F6D
+:1000B000213F1208120A100A0E1C0E0C1E0C141AF4
+:1000C00014161F161E131E1E1B1E1E1F1E3F213F31
+:1000D0003A2F3A173D173F213F181F02040A041F09
+:1000E0000E04040E1F0A1F0A0E0E1F04110E2E25E9
+:1000F0002E2F2A2E262929021F02081F08150E045A
+:10010000040E150E15151B151B040604040C040023
+:1001100000000017000300031F0A1F16371A1904F6
+:10012000130A153A000300000E11110E000A040A0A
+:10013000040E040030000404040010001804031F1F
+:10014000111F121F101D151711151F07041F17155A
+:100150001D1F151D01011F1F151F17151F000A0068
+:10016000003200040A110A0A0A110A040115020EDB
+:1001700011171E051E1F150A0E110A1F110E1F153D
+:10018000111F05010E111D1F041F111F1108100F53
+:100190001F041B1F10101F061F1E040F0E110E1F21
+:1001A00009060E112E1F051A121509011F011F1035
+:1001B0001F0F180F1F0C1F1B041B031C0319151303
+:1001C000001F11030418111F00020102202020004B
+:1001D00001020C121E1F120C0C12120C121F0C1A10
+:1001E00014041E05242A1E1F021C141D1020201D8D
+:1001F0001F0814111F101E041E1E021C0C120C3EA0
+:100200000A040C123E1E040214160A020F120E10EB
+:100210001E0E100E1E081E120C1226281E322A2632
+:10022000041E21001F00211E040102013F213F0A7C
+:100230004E6F2053442063617264206F720A6E6FA8
+:10024000204C4F414445522E4845580A0A153A451C
+:10025000786974001D20466C617368696E670A20B6
+:10026000206C6F616465722E2E2E0A0A444F4E2751
+:1002700054205455524E204F464621000A0A153A42
+:1002800049676E6F7265006D560A0A504C454153BE
+:1002900045205455524E204F464620004C4F572083
+:1002A000424154544552592120001753440016131B
+:1002B0007800161314001510200015201000540AA1
+:1002C00003E181867F3E186D830F0F0E01838660E8
+:1002D00033186DC3198F1803C38E6033186DE33064
+:1002E000CF1803C39E603630CDE360CF3006C79E83
+:1002F0007E3E30CDB360CF300CC6F6603330D9B619
+:1003000060CF33CFCCF66061B0DB1E60CF30D86CED
+:10031000E6C061B0DB1E618F19986CC6C063B19BEB
+:100320000E330F0FB078C6FF7E1F1B061E0F050091
+:10033000893008023802497868140000F6E8DBCFFB
+:10034000C3B8AEA49B928A827B746E68625C57527B
+:100350004E4945413E3A3734312E2C292725232159
+:100360001F1D1C1A1917161514131211100F0E0D3C
+:100370000C0B0A0908070645006801000005006823
+:100380000138010000050038016801000095039163
+:10039000030101FF030101F7030000000700020150
+:1003A0000000030406000000000000000001020439
+:1003B00008102040800102040810200102040810E7
+:1003C00020040404040404040402020202020203DE
+:1003D000030303030300000000230026002900009C
+:1003E000000000250028002B00000000002400274A
+:1003F000002A0000470211241FBECFEFD8E0DEBF65
+:10040000CDBF11E0A0E0B1E0ECE8FFE202C0059052
+:100410000D92AA32B107D9F723E0AAE2B1E001C0F8
+:100420001D92A03CB207E1F711E0CBEFD1E004C090
+:100430002197FE010E947616CA3FD107C9F70E9494
+:1004400025020C94C4170C9400000E9441020E94E3
+:100450008702FDCF8AE291E00E94FC098823D1F354
+:1004600066E084E391E00E940E03882399F342E062
+:1004700068E670E08AE291E00E94B70A813051F7A5
+:1004800008950E94B8128AE291E00C94FD0D10923A
+:100490007B0110927A018EE191E090937901809333
+:1004A000780108950895CF93DF93EC010E946202D2
+:1004B00082E191E099838883CE014896DF91CF91C4
+:1004C0000C947A02FC0128E131E02193319326E07B
+:1004D000DF011D922A95E9F7089620E1FC011192AF
+:1004E0002A95E9F76115710521F040E150E00C947F
+:1004F000B5170895FC0110821282118214821382B2
+:10050000168215821086178283E0818708950F93E3
+:100510001F93CF93DF93CDB7DEB7AF970FB6F894A5
+:10052000DEBF0FBECDBF6EE970E08AE291E00E94AF
+:10053000800D43E068E970E08AE291E00E94B70A2A
+:1005400081111BC08E010D5D1F4F8AE0F8011192D1
+:100550008A95E9F7B8018AE291E00E94580EB80145
+:1005600002521109C8010E94530281E08FA71EA701
+:100570000DA7CE018D960E942A02AF960FB6F89471
+:10058000DEBF0FBECDBFDF91CF911F910F910895B8
+:10059000FC0188E0808389E0818387E0828386E0B4
+:1005A000838384E0848382E0858381E18683089568
+:1005B000FF920F931F93CF93DF93EC018C01095FA0
+:1005C0001F4FFF24FA9462E088810E94981388816B
+:1005D0000E9403142F81892B19F42F5F2F8307C0EA
+:1005E000222349F02F3F11F41F8201C0FF8260E0F7
+:1005F00088810E9498132196C017D10721F7DF91B7
+:10060000CF911F910F91FF900895FC01E60FF11D0E
+:1006100081E09781913009F080E00895FC01E60FB8
+:10062000F11D81E097819F3F09F080E00895262F1A
+:1006300030E0FC01E20FF31F423030F4978191501B
+:1006400081E09E3F58F009C087818F3F31F0642FD1
+:100650000E94F61581E0913009F080E008958EBD8A
+:100660000DB407FEFDCF8EB50895DC01643508F0AA
+:1006700057C0403308F054C090969C919097E42F57
+:10068000E595E595E595262F062E000C330B542FA6
+:1006900057709230A1F4D90184E5E802A00DB11D94
+:1006A0001124AF54BE4F8C9190E0052E02C0959559
+:1006B00087950A94E2F78095982F91700CC093303B
+:1006C00051F41C968C916427062E000C770B68273A
+:1006D00060FF03C014C0911112C084E5E802200D30
+:1006E000311D1124F901EF54FE4F81E090E001C06B
+:1006F000880F5A95EAF780959081892310C084E588
+:10070000E802200D311D1124F901EF54FE4F81E064
+:1007100090E001C0880F5A95EAF79081892B808379
+:1007200008951F93CF93DF93EC01162FF89460E0A8
+:100730008F850E94D413888918161CF460E00E94EB
+:10074000D413812F0E942F03888918161CF461E0AE
+:100750000E94D4137894DF91CF911F91089528EFD0
+:1007600031E0E1EBF1E0DF01A9011D924150504081
+:10077000E1F7DC0119961C9219971A961C920895BC
+:10078000CF92DF92EF92FF920F931F93CF93DF935D
+:10079000EC018C858F5F8C8781EBE82E81E0F82E51
+:1007A00010E0612F6064CE010E94910360E8CE01E9
+:1007B0000E94910361E08F850E94D41388891816E6
+:1007C0001CF460E00E94D413670104E5F6018191F6
+:1007D0006F010E942F030150C9F7888918161CF475
+:1007E00061E00E94D4131F5FF4E5EF0EF11C163098
+:1007F000C1F660E4CE01DF91CF911F910F91FF9080
+:10080000EF90DF90CF900C949103FC0160A361A363
+:100810000895FC0160A341A30895EF92FF920F9306
+:100820001F93CF93DF938C01D62FF42EE22EC0E0DE
+:10083000CE1544F44F2D4C0F6D2FC8010E94350387
+:10084000CF5FF6CFDF91CF911F910F91FF90EF9087
+:100850000895EF92FF920F931F93CF93DF938C0134
+:10086000F62ED42FE22EC0E0CE1544F46F2D6C0F7F
+:100870004D2FC8010E943503CF5FF6CFDF91CF9196
+:100880001F910F91FF90EF900895DF92EF92FF92EA
+:100890000F931F93CF93DF937C01D62FD22EC42FBB
+:1008A000002E000C110B040F111D47FD1A958C2F03
+:1008B0000C2E000C990B8017910744F42D2D4C2F12
+:1008C0006D2FC7010E942904CF5FF1CFDF91CF9137
+:1008D0001F910F91FF90EF90DF9008958F929F925C
+:1008E000AF92BF92CF92DF92EF92FF920F931F933E
+:1008F000CF93DF937C01162FD42EC22F81E0C82E18
+:10090000C21AB22EB194BB0CD0E0802F8470A82EF6
+:10091000802F8270982E802F8870882E0170DC17AF
+:100920000CF04DC0C7FC04C0C150B394B394CB0CC1
+:10093000DF5F8D2F880F8F5FC80EAA2071F04D2DBD
+:100940004C0F612F6D0FC7010E9435034D2D4D0FC8
+:100950006C2F610FC7010E943503992071F04D2D56
+:100960004C1B612F6D0FC7010E9435034D2D4D1B90
+:100970006C2F610FC7010E943503882071F04D2D47
+:100980004D0F612F6C1BC7010E9435034D2D4C0F7D
+:10099000612F6D1BC7010E943503002309F4BFCFEF
+:1009A0004D2D4D1B612F6C1BC7010E9435034D2D32
+:1009B0004C1B612F6D1BC7010E943503B0CFDF9127
+:1009C000CF911F910F91FF90EF90DF90CF90BF904C
+:1009D000AF909F908F9008958F929F92AF92BF9209
+:1009E000CF92DF92EF92FF920F931F93CF93DF93FB
+:1009F0006C01A62E942EC22F11E0121BF22EF19440
+:100A0000FF0C83E0B82EBE0CD1E0802F8170882EC1
+:100A1000E39402708FEF8D0F8C17BCF517FD04C0A7
+:100A2000C150F394F3941F0D8D2F880F8F5F180F13
+:100A3000882091F02C2F220F2E0D492D4C1B6D2F4D
+:100A40006A0DC6010E940D042B2D492D4D1B6C2FE4
+:100A50006A0DC6010E940D04011104C0DF5FB3944A
+:100A6000B394D8CF2C2F220F2E0D492D4C1B6A2D5D
+:100A70006D1BC6010E940D042B2D492D4D1B6A2DA7
+:100A80006C1BC6010E940D04E9CFDF91CF911F912D
+:100A90000F91FF90EF90DF90CF90BF90AF909F901D
+:100AA0008F9008959F92AF92BF92CF92DF92EF9274
+:100AB000FF920F931F93CF93DF936C01C62FD42F18
+:100AC000B22EAE2CAA0C922E9A18FE2CF60E292DC0
+:100AD0006F2D0E9429041FEF100F1D0F292D412F8C
+:100AE0006F2DC6010E9429040A19DE0D202F4D2FFB
+:100AF0006C2FC6010E940D04CB0D6FEF6C0F202FE1
+:100B00004D2FC6010E940D0401E02E2D4D2F6F2D9B
+:100B1000C6010E946E048E2D8095C80F02E02E2D16
+:100B20004D2F6C2FC6010E946E04D12FDE1904E0F8
+:100B30002E2D4D2F6C2FC6010E946E0408E02E2D25
+:100B40004D2F6F2DC6010E946E04DF91CF911F9132
+:100B50000F91FF90EF90DF90CF90BF90AF909F905C
+:100B60000895AF92BF92CF92DF92EF92FF920F93D0
+:100B70001F93CF93DF936C01B62EF42E122FC02F4C
+:100B8000DE2DEE0CAD2EA60E2E196A2D0E94450408
+:100B9000C150CE19FD0E6FEF6B0D610F6D1BEC2E6A
+:100BA00001E02D2F4F2DC6010E94EC0402E02D2FF5
+:100BB0004F2D6A2DC6010E94EC04DF91CF911F9149
+:100BC0000F91FF90EF90DF90CF90BF90AF9008957E
+:100BD0002F923F925F926F927F928F929F92AF92ED
+:100BE000BF92CF92DF92EF92FF920F931F93CF931A
+:100BF000DF93EC01F901E4903196849164350CF0B7
+:100C000019C10E2C000CFF08062F062E000C110B2C
+:100C1000F701E00FF11F1E161F060CF00BC1403349
+:100C20000CF008C1A82FC42E042E000CDD085601BC
+:100C3000A80EB11C87FDBA941A141B040CF0FAC05C
+:100C40002E5F3F4F570197E0A90EB11CB7FE04C0BD
+:100C50005701BEE0AB0EB11CB3E0B594A794BA95B2
+:100C6000E1F747FF0AC0A42FA80FAC9CC001AD9CC0
+:100C7000900D1124281B390B40E08A2F0A2E000CFE
+:100C8000990B840F911D47FD9A95C19714F0A0E32D
+:100C9000A41BF8A067FD60E0E535F10514F0E4E57C
+:100CA000F0E09E2FCC85C427C62E062E000CDD0852
+:100CB000F601E01BF10B8F014F01F7E08F22992421
+:100CC000E0E8F0E002C0F595E7958A94E2F77E2F20
+:100CD00017FF02C0095F1F4FF3E015950795FA95BE
+:100CE000E1F7200F311F542F577081E001C0880FAA
+:100CF0005A95EAF7459545954595F601B4E54B02B9
+:100D0000E00DF11D1124AF014F545E4FD0E02A2EAB
+:100D1000AA0F3308EE24E394BB24ED2FF0E0E21594
+:100D2000F3050CF087C0F9015490F1E0FF121AC0EE
+:100D3000962E8A01E72F6901991608F072C08E2E4F
+:100D4000852021F0D8018C90882A8C92E69531F488
+:100D5000BFEFCB1ADB0AF6015490E0E893940F5FE3
+:100D60001F4FEACFF1101CC0782E7094962E8A0186
+:100D7000E72F6901991608F054C08E2E852021F0C6
+:100D8000D8018C9087208C92E69531F4BFEFCB1A76
+:100D9000DB0AF6015490E0E893940F5F1F4FEACF0F
+:100DA000F3E0FF1629F0962E8A01E72F690137C07C
+:100DB000682E6094862E8A01972E69018916D8F4D0
+:100DC000E92DE52159F0D801EC917C2E782470FEB4
+:100DD00002C0E82B02C0E621D801EC93969439F4C6
+:100DE000BFEFCB1ADB0AF6015490E0E89E2E839405
+:100DF0000F5F1F4FE3CFCE2514C08E2E852021F02C
+:100E0000D8018C9088268C92E69531F4BFEFCB1AEE
+:100E1000DB0AF6015490E0E893940F5F1F4F991698
+:100E200060F3880F19F44C5A5F4F81E0DF5F2A0DA1
+:100E30003B1D73CFDF91CF911F910F91FF90EF90EA
+:100E4000DF90CF90BF90AF909F908F907F906F90EA
+:100E50005F903F902F900895DC01FB0184918F5F9C
+:100E600014968C9314973196E491EF5F1596EC935A
+:100E700015976E5F7F4F5F967C936E935E97089594
+:100E8000EF920F93CF93DF93EC014E876D872F87FF
+:100E9000E98A088B81E0888788A319A28F836DEA8D
+:100EA00070E0CE010E942C070E94B31581E00E94E1
+:100EB000C91585E00E94D7158CE00E94D21561E02B
+:100EC0008E850E94981361E08D850E94981361E0E1
+:100ED0008F850E949813898918161CF461E00E947E
+:100EE0009813888918161CF461E00E949813898968
+:100EF00018166CF460E00E94D4136AE070E080E0A1
+:100F000090E00E94921261E089890E94D4138D853D
+:100F1000082E000C990BFC01EF53FC4FE491F0E01C
+:100F2000EE0FFF1FE152FC4F259134913D8B2C8B2E
+:100F3000FC01E355FC4FE491EB8F8E85082E000CED
+:100F4000990BFC01EF53FC4FE491F0E0EE0FFF1F13
+:100F5000E152FC4F259134913B8B2A8BFC01E355E8
+:100F6000FC4FE491EA8F8889082E000C990BFC0154
+:100F7000EF53FC4FE491F0E0EE0FFF1FE152FC4F06
+:100F8000259134913F8B2E8BFC01E355FC4FE4916E
+:100F9000EC8F8F85082E000C990BFC01EF53FC4F52
+:100FA000E491F0E0EE0FFF1FE152FC4F25913491E8
+:100FB000398F288FFC01E355FC4FE491ED8F61E2FE
+:100FC000CE010E94910364E1CE010E9491038B85C2
+:100FD00087FF02C08FE78B876B856068CE010E9418
+:100FE000910360E2CE010E9491036CE0CE010E9469
+:100FF0009103CE01DF91CF910F91EF900C94C0033C
+:101000006F927F928F929F92AF92BF92CF92DF9218
+:10101000EF92FF920F931F93CF93DF93EC01643510
+:101020000CF084C040330CF081C0EC81F0E03197CB
+:101030000E9FC0010F9F900D1124860F911D67FD1B
+:101040009A95181619060CF071C03D81842F042E54
+:10105000000C990B039F800D911D11241816190681
+:101060000CF064C0D02EB42EC62E88A0A62E962ECC
+:10107000E22EF12CEA2DEC190E2E000CFF0B8C81C8
+:1010800090E0E817F9070CF050C00197E817F9074E
+:1010900079F0E89E9001E99E300DF89E300D112404
+:1010A000E20FF31F8E8D9F8DE80FF91F149101C081
+:1010B00010E07B2C6B2C272D2B19022E000C330BF0
+:1010C0008D8190E0281739076CF510FF11C081E081
+:1010D000D81206C0472D6A2DCE010E9435031EC0CE
+:1010E0000D2D2D2D462D692DCE010E94450416C0D3
+:1010F00089A198A1891791F088A381E0D81206C030
+:10110000472D6A2DCE010E94350307C00D2D2D2DD0
+:10111000462D692DCE010E94450488A216956D0CBE
+:101120007394C9CF9D0CA394A5CF88A2DF91CF91D2
+:101130001F910F91FF90EF90DF90CF90BF90AF90F5
+:101140009F908F907F906F9008950F93CF93DF9330
+:10115000EC016A3011F428851EC06D3019F1262F7C
+:1011600008854A8569850E94000828853C81898513
+:10117000239F800D112489879F81992399F0082E40
+:10118000000C990B44E550E0239F401951091124AC
+:10119000481759073CF49D818A85299F800D1124A9
+:1011A0008A87198681E090E0DF91CF910F910895B1
+:1011B0008F929F92AF92BF92CF92DF92EF92FF9267
+:1011C0000F931F93CF93DF93EC015C0186E8A80E89
+:1011D000B11CD5019C91992309F44DC09C3018F4A1
+:1011E0001CE0191B01C010E0FE01EA5AFF4F81E02C
+:1011F00080836E01BEE4CB0ED11C60E0C6010E946C
+:1012000005044E01E3E58E0E911CD4018C9103E0A0
+:10121000080F9DE2F92E4F2D481B410F23E0E22ECF
+:1012200024E560E0C6010E94B10561E0C6010E94AC
+:101230000504F401808103E0080F4F2D481B410F86
+:1012400024E560E0C6010E945205FE01E95AFF4F05
+:1012500084E080833196D4018C91181B115D10833A
+:10126000CC57DF4F68817981C6010E946914F5016E
+:10127000808181508083DF91CF911F910F91FF90EA
+:10128000EF90DF90CF90BF90AF909F908F90089598
+:10129000CF92DF92FF920F931F93CF93DF93FC01C6
+:1012A000248D358D232B09F49FC0EC018C01025B4A
+:1012B0001F4F40E061E0C8010E940904FE01E95AA5
+:1012C000FF4FDE01AE5ABF4F9C9185E5891B80839D
+:1012D00031961082698D613009F463C028F0888DE1
+:1012E000653008F074C06FC0CE0185960E949E0FD5
+:1012F00081E0FE01EA5AFF4F80836DEA70E0C80189
+:101300000E942C071D8E1C8EFE01EC5AFF4F10828E
+:1013100088EAF82E6E01FAE0CF0ED11CCE010E94B1
+:10132000FC098823D9F36CE972E0C8010E946914B2
+:101330006A8D7B8D4AE050E0C8010E941C1567E869
+:1013400072E0C8010E9469146F2D62956F7070E0A1
+:101350004AE050E0C8010E946A156CE772E0C801DB
+:101360000E94691464E0C6010E94050381113CC01B
+:10137000FA94F110D3CF60E0CE010E94711183B7CF
+:10138000817F846083BF83B7816083BF83B78160BF
+:1013900083BF889583B78E7F83BF83B78E7F83BFDC
+:1013A000BDCFCF58DF4F88819981AA81BB818F70D3
+:1013B0009927AA27BB270897A105B10510F467E074
+:1013C00009C068E707C0882379F06B5F03C08823F2
+:1013D00059F06FE2C801DF91CF911F910F91FF90FB
+:1013E000DF90CF900C948C14DF91CF911F910F91CF
+:1013F000FF90DF90CF9008958F929F92AF92BF920F
+:10140000CF92DF92EF92FF920F931F93CF93DF93D0
+:10141000EC017C0180E8E80EF11CF70180809180EE
+:10142000A280B3800E946112861A970AA80AB90A9C
+:101430006E01FFE7CF0ED11CF601808190E0A0E0A5
+:10144000B0E08E0105581F4F88159905AA05BB0508
+:1014500050F4F80180819181A281B381892B8A2B7C
+:101460008B2B09F040C0F80180819181A281B3816A
+:10147000892B8A2B8B2BA9F57E01F5E2EF0EF11C4F
+:10148000C7010E949B0FC7010E940710C7010E945D
+:10149000CC10CE010E94D808CE010E9448097E01DE
+:1014A0008EE4E80EF11CC7010E94C003FE01EC5A55
+:1014B000FF4F8081811103C0C7010E94AF030E94CA
+:1014C0006D12F8016083718382839383FE01EB5870
+:1014D000FF4FC958DF4F28813981621B730B71831D
+:1014E000608380E037C00E946112F6012081DC0138
+:1014F000CB01820F911DA11DB11DF7018083918346
+:10150000A283B383FE01EF58FF4F80819181A281B6
+:10151000B3810196A11DB11D80839183A283B38302
+:10152000F80110821182128213820E946D12FE0154
+:10153000E958FF4F6083718382839383CE010E94B9
+:101540007511CE010A960E94D802CE0148960E94DB
+:10155000DE1181E0DF91CF911F910F91FF90EF900D
+:10156000DF90CF90BF90AF909F908F9008952F9273
+:101570003F924F925F926F927F928F929F92AF9223
+:10158000BF92CF92DF92EF92FF920F931F93CF9370
+:10159000DF93CDB7DEB765970FB6F894DEBF0FBE09
+:1015A000CDBF6C016A8B7B8B4B83FC01EC5AFF4FE8
+:1015B00010822FEF2D831C821D8A10E31C8A5C0190
+:1015C0003AE0A30EB11C1C0183E5280E311CBF9725
+:1015D0002F01242F30E03F832E83C601895A9F4F6D
+:1015E00099878887F396FB87EA8796012A5A3F4FA7
+:1015F0003F872E870297998B888B3A973F01C601C8
+:101600000E94FC098823D9F364E0C5010E94050308
+:10161000012F110F110B811144C065E0C5010E941B
+:10162000050381113EC066E0C5010E9405038111DA
+:1016300038C02C8121114CC044E063E0C5010E94F8
+:101640001703882331F03C893F5F3C8BC2010E9425
+:10165000491144E061E0C5010E941703882331F07D
+:101660008C8981508C8BC2010E944911EC898E2F8C
+:101670000E2E000C990B2E813F818217930731F0BB
+:10168000E7FF05C03B8131503C8B01C01C8AF10152
+:101690008081F4E0F80F2C89829FF0191124FD8BD2
+:1016A00022C0F101F081F98364E0C5010E940503C5
+:1016B000882309F48CC0C2010E941D11FC89FD839E
+:1016C000298121953B81239F302D112432503D8B60
+:1016D000C8013D89831B910937FD939502970CF44E
+:1016E0007AC081E08C839D89090F111D97FD1A95A1
+:1016F00017FF02C00F5F1F4FF801F595E795FA83BA
+:10170000E9830981102FE885F9851082EA85FB8538
+:10171000008381E0EE85FF858083E889F989108266
+:10172000EA88FB88812C912C2C89022E000C330B2B
+:101730003D872C878E819F818816990609F1EC855B
+:10174000FD85E815F90579F423E0E885F98520831E
+:10175000F1018081F02F2C89289FF00D11248F2F0B
+:10176000EA85FB858083F70165917491C3010E942E
+:10177000A714FFEF8F1A9F0A22E0E20EF11CDACFC6
+:1017800060E0C3010E940504F10180814981FC8968
+:10179000F89F400D1124415024E560E0C3010E94F0
+:1017A000290461E0C3010E940504F101808103E086
+:1017B000080F4981FC89F89F400D1124425083E0B5
+:1017C000E82E24E560E0C3010E94520518CFC20153
+:1017D0000E94331175CF8D8165960FB6F894DEBFE8
+:1017E0000FBECDBFDF91CF911F910F91FF90EF9072
+:1017F000DF90CF90BF90AF909F908F907F906F9031
+:101800005F904F903F902F9008950F931F93CF9329
+:10181000DF93EC018C01025B1F4FC8010E94AF03F4
+:1018200064E572E0C8010E946914C8010E94C00307
+:1018300083E00E94D71582E291E0EEEFFFE3099585
+:10184000FE01EC5AFF4F10826FE272E0C8010E9465
+:10185000A714C8010E94C0032A96CE010E94D80294
+:1018600064E0CE010E940503811107C062E370E0CD
+:1018700080E090E00E949212F0CFDF91CF911F9113
+:101880000F9108952F923F924F925F926F927F92A5
+:101890008F929F92AF92BF92CF92DF92EF92FF9280
+:1018A0000F931F93CF93DF93CDB7DEB729970FB672
+:1018B000F894DEBF0FBECDBF3C0120E7620E711C65
+:1018C000F3012081222309F402C15A011B019987E7
+:1018D00088877A9781E08083E885F985EB5AFF4F06
+:1018E0001082E885F985EC5AFF4F1082E885F9856A
+:1018F000108E8F01025B1F4F61E0C8010E9405043A
+:10190000888599858D5A9F4F9D838C83C884D984FF
+:1019100097E5C90ED11CE884F984E8E5EE0EF11CC8
+:10192000888599858E5A9F4F9A838983E885F985A2
+:10193000EF58FF4FFF83EE8388849984FAE08F0E7F
+:10194000911C4884598425E2420E511C8885998552
+:101950000E94FC098823D1F3F1018491882329F0A6
+:10196000EC81FD81F081FB8301C01B822EEB32E014
+:1019700040E060E0C8010E94E805A114B10439F01C
+:101980004B81445F950160E0C8010E94E805F601C3
+:1019900010822CE0F7012083B101C8010E94691474
+:1019A000E981FA818081982F990F890F81958D5A4D
+:1019B000F6018083EC81FD818081982F990F890F3A
+:1019C0008195835DF7018083EE81FF81808184FFB3
+:1019D00003C06AEB72E002C066EB72E0C8010E94CD
+:1019E000A714E981FA818081982F990F890F819539
+:1019F0008D5AF6018083F70180818F5F8083E885AF
+:101A0000F98582A5882319F062EB72E002C06EEAC4
+:101A100072E0C8010E94A714E981FA818081982FA1
+:101A2000990F890F81958D5AF6018083F701808186
+:101A30008F5F80836AEA72E0C8010E94A71465E0A4
+:101A4000C4010E940503882351F0E885F98562A549
+:101A50006F5FC2010E945F11C2010E94491164E0E0
+:101A6000C4010E940503811113C0F3012081422F9C
+:101A700050E060E070E0EE81FF8180819181A28181
+:101A8000B38184179507A607B707A8F02F3F99F0F1
+:101A90008FEFF3018083088519850B5D1F4F60E090
+:101AA000C8010E943C0FC8010E941D1181E0E88519
+:101AB000F985808F0CC066E0C4010E94050388236D
+:101AC00009F444CF888599850E94050C35CF299665
+:101AD0000FB6F894DEBF0FBECDBFDF91CF911F913F
+:101AE0000F91FF90EF90DF90CF90BF90AF909F90BD
+:101AF0008F907F906F905F904F903F902F900895C0
+:101B000040E050E00C94420CE0E8F7E72591349176
+:101B100081E02130304C09F080E00895CF93DF93CD
+:101B2000EC010E94840D9E01275A3F4FDE01A0590F
+:101B3000BF4F882309F43CC0E6E9F7E78491F90137
+:101B40008083E7E9F7E7E491EC83E8E9F7E7E491DC
+:101B5000ED83E9E9F7E7859194919F838E83EBE923
+:101B6000F7E78591949199878887EDE9F7E7E49104
+:101B7000EBA7EEE9F7E7E491EAA7EFE9F7E7E491ED
+:101B8000EC93E0EAF7E7859194919D8F8C8FE2EAE0
+:101B9000F7E7859194919F8F8E8FE4EAF7E785911F
+:101BA000949199A388A3E6EAF7E78591949120C0E0
+:101BB0008CE3F90180831C828FEF8D8320E233E078
+:101BC0003F832E8324ED33E03987288791E09BA75C
+:101BD0009AA78C938CEA9DE09D8F8C8F8EED9DE073
+:101BE0009F8F8E8F84E79EE099A388A38CE39FE06C
+:101BF0009BA38AA3DF91CF910895CF92DF92EF92BA
+:101C00000F93CF93DF93EC01FC01E158FF4F82E388
+:101C10008083349781E090E0A0E0B0E080839183FE
+:101C2000A283B3833B978FEF8083CE010E948E0DFA
+:101C3000CE010E946D116FEFCE010E9471116E01F5
+:101C40008AE0C80ED11CC6010E94C802C6010E94CB
+:101C5000D802CE0148960E94D4118EE0E82E0FE003
+:101C600020E14BE06DE0CE01825B9F4F0E94400778
+:101C7000A596CE010E94A80E65E0C6010E9405034C
+:101C8000882351F060E0CE01DF91CF910F91EF906A
+:101C9000DF90CF900C945F1140E06EE273E0CE01D4
+:101CA000DF91CF910F91EF90DF90CF900C94470F81
+:101CB000CF93DF93D62FC72F0E94840D882359F02E
+:101CC000AD2FBC2FEBE8F7E784918D933196E53982
+:101CD00087E7F807C9F7DF91CF91089550E0DA015F
+:101CE000AA0FBB1FA80FB91F1F963C911F975096B4
+:101CF0002C915097E32FF22FE60FF11DE60FF11D07
+:101D00002591349190963C932E935F97F9016591BC
+:101D10007491FC017481769F602D1124DC01A40F65
+:101D2000B51F91966C939197F90185919491E92F44
+:101D3000F0E0862F90E0E817F90720F4F90185918B
+:101D40009491692F769F602D112492966C9308953B
+:101D500021E0FC01248324E020A72DE833E0308B30
+:101D6000278740E060E00E946E0E61E070E083E053
+:101D70000E941013E1EBF0E08081887F8160808316
+:101D8000F89410928000E1E8F0E010821092850053
+:101D90001092840088E191E09093890080938800FC
+:101DA000808188608083808181608083EFE6F0E0BD
+:101DB000808182608083789408950F93FC01842F42
+:101DC00001112AC06230D9F050F4662399F06130D5
+:101DD00019F540E0682FCF010F910C946E0E63301F
+:101DE000A9F06430C9F46481649F802D1124858F2B
+:101DF000268F12C04B3008F08AE0868B0DC06481BC
+:101E0000649F802D1124818F228F06C06481649F7E
+:101E1000802D1124838F248F0F910895FC012111AF
+:101E20000EC0648B8481849F402D1124458B15A2A4
+:101E300014A213A281E0878B8093B503108E0895BE
+:101E40008091B503882319F08091B20301C080E02E
+:101E50008093B4000895FC0161110DC0178A158AA2
+:101E600014A213A2108E1092B2031092B303109218
+:101E7000B5030C94200F0895CF93DF93611104C034
+:101E8000EC010E942B0F1982DF91CF9108950F93DF
+:101E90001F93CF93DF93411110C08B01EC0160E0E1
+:101EA0000E943C0F1E870D871B8A1A8A81E0898356
+:101EB00089E08E8B198E1B8E1D8EDF91CF911F9125
+:101EC0000F910895CF93DF93DC01611131C08C91A4
+:101ED000882371F111968C911197811129C019965F
+:101EE0008C91199717962C91179718969C91189783
+:101EF000E22FF92FE80FF11DE80FF11D2591349124
+:101F00002F3F8FEF380711F41C9212C0ED013C8770
+:101F10003327220F331FEA85FB85E20FF31F6591FC
+:101F2000749140E0CD010E94470F89858F5F8987BA
+:101F3000DF91CF91089560E00C94620F60E00C9403
+:101F40003C0F0F93CF93DF93EC0161115CC089814B
+:101F5000882309F458C08D89811155C02D853E858F
+:101F6000EA89FB89EE0FFF1FE20FF31F8591949121
+:101F7000009701F58989813021F41B8A1A8AF901B9
+:101F800010C01982888160E0882371F0CE010E9420
+:101F9000620FEA89FB89EE0FFF1F8D859E85E80F92
+:101FA000F91F8591949106C0CE01DF91CF910F91D9
+:101FB0000C942B0FBC01769567957695679580FFFD
+:101FC00017C0AC0186E0569547958A95E1F7292F11
+:101FD00026952695269520514F716F7000E0CE0111
+:101FE0000E94DD0EEA89FB893196FB8BEA8BD3CF09
+:101FF000492F6F7320E0CE010E940E0F8A899B89C2
+:1020000001969B8B8A8BDF91CF910F91089560E0B1
+:102010000C94A10FCF93DF93EC016111BAC08F89AB
+:10202000882309F4B6C09D89911105C0CE01DF91C6
+:10203000CF910C942B0F91509D8B8DA1811139C0A4
+:102040002BA13CA12F5F3F4FC901880F991FEF8D36
+:10205000F8A1E80FF91F65917491862F87708EA300
+:10206000AB0163E0569547956A95E1F7CA019695ED
+:102070008795972F969596959FA38F739C81899F9F
+:10208000802D11248DA341704093B1033CA32BA359
+:1020900089A190E02817390760F02AA1222329F0AE
+:1020A000821B91099CA38BA304C060E0CE010E9417
+:1020B0002B0F8DA181508DA3888D21E0280F288FB3
+:1020C0004C893FA1340F8C85380F3A836B8D662382
+:1020D00061F070E0822F022E000C990B0E94161600
+:1020E0008C8D869F300D11243A838A8190E0CB96A7
+:1020F0006BE370E00E9416168A833E893B83698DEC
+:10210000662371F0062E000C770B822F022E000C36
+:10211000990B0E9416168A8D869F300D11243B83E1
+:102120006D8D662389F0822F220F990B70E00E943B
+:102130001616CB0162E070E00E9416162E8D9B8170
+:10214000289F900D11249B834F3341F08B818A305F
+:102150000CF089E087FD80E08B8301C01B82F8943E
+:10216000EA81F0E0E45CFC4FE491E093B4038D81FC
+:1021700098A5899F802D11249B81899F802D1124F2
+:102180009EA1899F802D11248093B3038093B20375
+:102190007894DF91CF91089560E00C940A106091DB
+:1021A000B303662329F18091B6038F5F8093B60352
+:1021B0009091B4038917E0F081E09091B5039111FB
+:1021C00080E08093B5031092B6038091B103882319
+:1021D00069F08091000193E4899F802D1124895B2F
+:1021E000809300010E94F6159093B2030C94200F87
+:1021F00008951F920F920FB60F9211242F933F93C1
+:102200004F935F936F937F938F939F93AF93BF93FE
+:10221000EF93FF930E94CF10FF91EF91BF91AF9189
+:102220009F918F917F916F915F914F913F912F91EE
+:102230000F900FBE0F901F901895CF93DF93EC0176
+:1022400060E00E943C0F85E893E09E878D871B8AA3
+:102250001A8A81E0898389E08E8B198E1B8E1D8EF0
+:10226000DF91CF910895CF93DF93EC0160E00E945E
+:102270003C0F8DE793E09E878D871B8A1A8A81E049
+:10228000898389E08E8B198E1B8E1D8EDF91CF91F5
+:102290000895CF93DF93EC0160E00E943C0F87E745
+:1022A00093E09E878D871B8A1A8A81E0898389E063
+:1022B0008E8B198E1B8E1D8EDF91CF910895FC01A0
+:1022C000262F660F330B9681692F70E06F5F7F4F6B
+:1022D000C9010E9416168583089521E0FC01208320
+:1022E000089570E085E00C941013AF92BF92CF92E6
+:1022F000DF92EF92FF920F931F93CF93DF93EC0146
+:1023000089819A812FE0289F8001299F100D112437
+:1023100085E10E94F312800F911F24E09695879526
+:102320002A95E1F79A8389832881222391F1EC8110
+:10233000AD80B12CC12CD12CA885B9857D0100E0E0
+:1023400010E06E817F819B0140E050E08617970787
+:1023500028F0BC01A817B90708F4BD0180E090E09F
+:102360001F921F921F92EF930E9471156B830F9023
+:102370000F900F900F9070E085E0DF91CF911F914B
+:102380000F91FF90EF90DF90CF90BF90AF900C94A3
+:102390001013DF91CF911F910F91FF90EF90DF907D
+:1023A000CF90BF90AF900895FC018CE39FE09383A2
+:1023B000828384E0818381E084870895CF93DF93D3
+:1023C000FC0124813581232B79F1EC0184858F7107
+:1023D00041F584E10E94F312BC01990F880B990B1F
+:1023E0000E94BC1626EE3FE34EEC50E40E944817D4
+:1023F0000E948B169B017B836A83672B81F084E0AC
+:102400008983FE01349680E041915191241735076C
+:1024100010F4898309C08F5F8430B1F702C08FEF59
+:1024200089838C858F5F8C87DF91CF9108951F9270
+:102430000F920FB60F9211242F933F938F939F9378
+:10244000AF93BF938091B8039091B903A091BA0361
+:10245000B091BB033091B70323E0230F2D3720F455
+:102460000196A11DB11D05C026E8230F0296A11DEE
+:10247000B11D2093B7038093B8039093B903A09341
+:10248000BA03B093BB038091BC039091BD03A091AC
+:10249000BE03B091BF030196A11DB11D8093BC0383
+:1024A0009093BD03A093BE03B093BF03BF91AF91C0
+:1024B0009F918F913F912F910F900FBE0F901F9082
+:1024C00018952FB7F8946091B8037091B903809173
+:1024D000BA039091BB032FBF08953FB7F894809142
+:1024E000BC039091BD03A091BE03B091BF0326B57C
+:1024F000A89B05C02F3F19F00196A11DB11D3FBF3C
+:10250000BA2FA92F982F8827820F911DA11DB11DC9
+:10251000BC01CD0142E0660F771F881F991F4A95C5
+:10252000D1F70895CF92DF92EF92FF92CF93DF938E
+:102530006B017C010E946D12EB01C114D104E10416
+:10254000F10479F00E946D126C1B7D0B683E7340A4
+:10255000A0F381E0C81AD108E108F108C851DC4FA6
+:10256000ECCFDF91CF91FF90EF90DF90CF90089567
+:10257000789484B5826084BD84B5816084BD85B55E
+:10258000826085BD85B5816085BDEEE6F0E0808125
+:1025900081608083E1E8F0E0108280818260808346
+:1025A000808181608083E0E8F0E0808181608083C9
+:1025B000E1EBF0E0808184608083E0EBF0E08081FB
+:1025C00081608083EAE7F0E080818460808380819D
+:1025D0008260808380818160808380818068808345
+:1025E0001092C10008958E3008F08E5020910101A4
+:1025F00090E4299F900111248770822B80937C00A6
+:1026000080917A00806480937A0080917A0086FDC0
+:10261000FCCF809178002091790090E0922B089572
+:102620001F93CF93DF93182FEB0161E00E94981363
+:10263000209711F460E004C0CF3FD10539F461E088
+:10264000812FDF91CF911F910C94D413E12FF0E0F3
+:10265000E756FC4FE491E330F9F048F4E130B9F08B
+:10266000E230A1F584B5806284BDC8BD34C0E630D7
+:10267000E9F0E73019F1E43049F58091800080629B
+:1026800080938000D0938B00C0938A0024C084B5CF
+:10269000806884BDC7BD1FC0809180008068809322
+:1026A0008000D0938900C093880015C08091B0004D
+:1026B00080688093B000C093B3000DC08091B000DB
+:1026C00080628093B000C093B40005C0C038D105CB
+:1026D0000CF0B5CFAFCFDF91CF911F91089583302C
+:1026E00081F028F4813099F08230A1F0089586308D
+:1026F000A9F08730B9F08430D1F4809180008F7DCB
+:1027000003C0809180008F7780938000089584B506
+:102710008F7702C084B58F7D84BD08958091B0000D
+:102720008F7703C08091B0008F7D8093B0000895B3
+:10273000CF93DF9390E0FC01E355FC4F2491FC0123
+:10274000EF53FC4F8491882361F190E0880F991F2B
+:10275000FC01E751FC4FC591D491FC01E152FC4FC3
+:10276000A591B491611109C09FB7F8948881209513
+:1027700082238883EC912E230BC0623061F49FB7D3
+:10278000F8948881322F309583238883EC912E2B07
+:102790002C939FBF06C08FB7F894E8812E2B288317
+:1027A0008FBFDF91CF9108951F93CF93DF93282F91
+:1027B00030E0F901E756FC4F8491F901E355FC4FF5
+:1027C000D491F901EF53FC4FC491CC23C1F0162FE3
+:1027D00081110E946F13EC2FF0E0EE0FFF1FE1520A
+:1027E000FC4FA591B4919FB7F894111104C08C913E
+:1027F000D095D82302C0EC91DE2BDC939FBFDF91F4
+:10280000CF911F910895CF93DF93282F30E0F901E6
+:10281000E756FC4F8491F901E355FC4FD491F9013F
+:10282000EF53FC4FC491CC2391F081110E946F13A0
+:10283000EC2FF0E0EE0FFF1FEB52FC4FA591B4918F
+:10284000EC91ED2381E090E021F480E002C080E093
+:1028500090E0DF91CF910895CF92DF92EF92FF92B7
+:102860000F931F93CF93DF936C01EB017B01E40E79
+:10287000F51E00E010E0CE15DF0561F06991D6018C
+:10288000ED91FC910190F081E02DC6010995080FB2
+:10289000191FF1CFC801DF91CF911F910F91FF90C8
+:1028A000EF90DF90CF9008956115710579F0FB01ED
+:1028B00001900020E9F73197AF01461B570BDC016F
+:1028C000ED91FC910280F381E02D099480E090E08D
+:1028D0000895EF92FF920F931F93CF93DF937C01A4
+:1028E000FB0100E010E06491EF012196662361F0A6
+:1028F000D701ED91FC910190F081E02DC701099580
+:10290000080F191FFE01EFCFC801DF91CF911F9172
+:102910000F91FF90EF900895DC01ED91FC910190F3
+:10292000F081E02D09940F931F93CF93DF93EC0177
+:102930006DE00E948C148C016AE0CE010E948C1420
+:10294000800F911FDF91CF911F910F9108950F93E9
+:102950001F93CF93DF93EC010E9469148C01CE0189
+:102960000E949314800F911FDF91CF911F910F91BF
+:1029700008958F929F92AF92BF92CF92DF92EF9283
+:10298000FF920F931F93CF93DF93CDB7DEB7A1973D
+:102990000FB6F894DEBF0FBECDBF6C01142FE52F2C
+:1029A000CB01022F19A2223008F40AE07E0121E2B5
+:1029B000E20EF11C802E912CA12CB12C612F7E2FC8
+:1029C000A50194010E942A16029F1019112481E08A
+:1029D000E81AF1081A3014F4105D01C0195CF7010F
+:1029E0001083122FE32FCA01232B242B252B31F721
+:1029F000B701C6010E945414A1960FB6F894DEBF29
+:102A00000FBECDBFDF91CF911F910F91FF90EF903F
+:102A1000DF90CF90BF90AF909F908F900895211539
+:102A2000310541F4DC01ED91FC910190F081E02D44
+:102A3000642F09940C94B9149A01AB0160E070E022
+:102A40000C940F15CF92DF92EF92FF920F931F938A
+:102A5000CF93DF932115310581F4DC01ED91FC91D9
+:102A60000190F081E02D642FDF91CF911F910F91A4
+:102A7000FF90EF90DF90CF9009942A30310501F557
+:102A800077FF1DC06A017B01EC016DE20E948C148E
+:102A90008C0144275527BA014C195D096E097F093D
+:102AA0002AE0CE010E94B914800F911FDF91CF91CF
+:102AB0001F910F91FF90EF90DF90CF9008952AE043
+:102AC000DF91CF911F910F91FF90EF90DF90CF900A
+:102AD0000C94B9149A01AB01770F660B770B0C9429
+:102AE00022154F925F926F927F92AF92BF92CF92D8
+:102AF000DF92EF92FF920F931F93CF93DF93CDB7A7
+:102B0000DEB729013A019B01AC01241935094609B8
+:102B1000570989899A89AB89BC89BC01CD016A1999
+:102B20007B098C099D090E94E615A80197012419CB
+:102B30003509460957090E944C16CA01B9016A0DA8
+:102B40007B1D8C1D9D1DDF91CF911F910F91FF90DB
+:102B5000EF90DF90CF90BF90AF907F906F905F909D
+:102B60004F900895089561E08AE00E94D41361E0D7
+:102B70008AE00E9498138CB580618CBD8CB580640E
+:102B80008CBD61E08DE00E94981361E08BE00C94B5
+:102B90009813811103C08CB5806202C08CB58F7D03
+:102BA0008CBD08959CB5937F892B8CBD08959CB5F1
+:102BB0009C7F282F2370922B9CBD2DB582FB9927DB
+:102BC00090F9822F8E7F892B8DBD0895DB018F9325
+:102BD0009F930E946B16BF91AF91A29F800D911D94
+:102BE000A39F900DB29F900D11240895991B79E039
+:102BF00004C0991F961708F0961B881F7A95C9F78D
+:102C000080950895AA1BBB1B51E107C0AA1FBB1FDB
+:102C1000A617B70710F0A61BB70B881F991F5A9568
+:102C2000A9F780959095BC01CD01089597FB072EDB
+:102C300016F4009407D077FD09D00E94021607FC15
+:102C400005D03EF4909581959F4F089570956195BC
+:102C50007F4F0895A1E21A2EAA1BBB1BFD010DC0D8
+:102C6000AA1FBB1FEE1FFF1FA217B307E407F5073C
+:102C700020F0A21BB30BE40BF50B661F771F881F18
+:102C8000991F1A9469F760957095809590959B01AE
+:102C9000AC01BD01CF010895052E97FB1EF40094F1
+:102CA0000E94631657FD07D00E942A1607FC03D026
+:102CB0004EF40C94631650954095309521953F4FF6
+:102CC0004F4F5F4F089590958095709561957F4F18
+:102CD0008F4F9F4F08950E947C16A59F900DB49F23
+:102CE000900DA49F800D911D11240895EE0FFF1FDC
+:102CF0000590F491E02D0994A29FB001B39FC0010B
+:102D0000A39F700D811D1124911DB29F700D811D17
+:102D10001124911D08950E94271788F09F5798F05D
+:102D2000B92F9927B751B0F0E1F0660F771F881FD0
+:102D3000991F1AF0BA95C9F714C0B13091F00E94EA
+:102D40004117B1E008950C944117672F782F882719
+:102D5000B85F39F0B93FCCF3869577956795B39511
+:102D6000D9F73EF490958095709561957F4F8F4F80
+:102D70009F4F0895E89409C097FB3EF49095809585
+:102D8000709561957F4F8F4F9F4F9923A9F0F92F31
+:102D900096E9BB279395F695879577956795B795AF
+:102DA000F111F8CFFAF4BB0F11F460FF1BC06F5F95
+:102DB0007F4F8F4F9F4F16C0882311F096E911C0A7
+:102DC000772321F09EE8872F762F05C0662371F0C8
+:102DD00096E8862F70E060E02AF09A95660F771FDC
+:102DE000881FDAF7880F9695879597F9089597F9D0
+:102DF0009F6780E870E060E008959FEF80EC0895A1
+:102E000000240A94161617061806090608950024C9
+:102E10000A9412161306140605060895092E039443
+:102E2000000C11F4882352F0BB0F40F4BF2B11F4B7
+:102E300060FF04C06F5F7F4F8F4F9F4F089557FD16
+:102E40009058440F551F59F05F3F71F04795880F18
+:102E500097FB991F61F09F3F79F0879508951216AF
+:102E600013061406551FF2CF4695F1DF08C016165B
+:102E700017061806991FF1CF86957105610508940C
+:102E80000895E894BB2766277727CB0197F9089523
+:102E90000E945B170C940E170E94001738F00E94D6
+:102EA000071720F0952311F00C94F7160C94FD16DB
+:102EB00011240C9442170E941F1770F3959FC1F3C1
+:102EC000950F50E0551F629FF001729FBB27F00DD8
+:102ED000B11D639FAA27F00DB11DAA1F649F66272D
+:102EE000B00DA11D661F829F2227B00DA11D621F7C
+:102EF000739FB00DA11D621F839FA00D611D221F36
+:102F0000749F3327A00D611D231F849F600D211D19
+:102F1000822F762F6A2F11249F5750409AF0F1F09C
+:102F200088234AF0EE0FFF1FBB1F661F771F881F05
+:102F300091505040A9F79E3F510580F00C94F71630
+:102F40000C9442175F3FE4F3983ED4F3869577954F
+:102F50006795B795F795E7959F5FC1F7FE2B880FAB
+:102F6000911D9695879597F90895FB01DC014150D5
+:102F7000504048F001900D920020C9F701C01D9209
+:0C2F800041505040E0F70895F894FFCF56
+:102F8C000101526573756D6500517569740000001F
+:102F9C000000520200000000B21500000000A5085D
+:0A2FAC002C144C4F41444552000024
+:040000030000044AAB
:00000001FF
diff --git a/Exe/POCKET.MAP b/Exe/POCKET.MAP
index e1baeea..7054ed5 100644
--- a/Exe/POCKET.MAP
+++ b/Exe/POCKET.MAP
@@ -1,15 +1,13 @@
Archive member included to satisfy reference by file (symbol)
../lib/libgamebuino.a(Buttons.o)
- Obj/Pad.o (_ZN7Buttons8releasedEh)
+ Obj/Game.o (_ZN7Buttons8releasedEh)
../lib/libgamebuino.a(Display.o)
- Obj/Gfx.o (_ZN7Display5clearEv)
-../lib/libgamebuino.a(font3x3.o)
- Obj/Player.o (font3x3)
+ Obj/System.o (_ZTV7Display)
../lib/libgamebuino.a(font3x5.o)
- Obj/Gfx.o (font3x5)
+ ../lib/libgamebuino.a(Display.o) (font3x5)
../lib/libgamebuino.a(Gamebuino.o)
- Obj/Gfx.o (_ZN9Gamebuino5popupEPK19__FlashStringHelperh)
+ Obj/Game.o (_ZN9Gamebuino6updateEv)
../lib/libgamebuino.a(Sound.o)
../lib/libgamebuino.a(Gamebuino.o) (_ZN5Sound5beginEv)
../lib/libgamebuino.a(Backlight.o)
@@ -27,229 +25,187 @@ Archive member included to satisfy reference by file (symbol)
../lib/libarduino.a(WString.o)
../lib/libarduino.a(Print.o) (_ZNK6StringixEj)
../lib/libarduino.a(forward.o)
- ../lib/libarduino.a(Print.o) (__cxa_pure_virtual)
+ Obj/Player.o (__cxa_pure_virtual)
../lib/libarduino.a(SPI.o) ../lib/libgamebuino.a(Display.o) (_ZN8SPIClass5beginEv)
-/usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_mulsi3.o)
+/usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_mulsi3.o)
../lib/libarduino.a(WMath.o) (__mulsi3)
-/usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_udivmodqi4.o)
+/usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_udivmodqi4.o)
../lib/libgamebuino.a(Buttons.o) (__udivmodqi4)
-/usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_udivmodhi4.o)
- Obj/System.o (__udivmodhi4)
-/usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_divmodhi4.o)
+/usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_udivmodhi4.o)
+ ../lib/libgamebuino.a(Gamebuino.o) (__udivmodhi4)
+/usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_divmodhi4.o)
../lib/libgamebuino.a(Display.o) (__divmodhi4)
-/usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_udivmodsi4.o)
- Obj/System.o (__udivmodsi4)
-/usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_divmodsi4.o)
+/usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_udivmodsi4.o)
+ ../lib/libarduino.a(Print.o) (__udivmodsi4)
+/usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_divmodsi4.o)
../lib/libarduino.a(WMath.o) (__divmodsi4)
-/usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_negsi2.o)
- /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_divmodsi4.o) (__negsi2)
-/usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_exit.o)
- /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/crtatmega328p.o (exit)
-/usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_copy_data.o)
- Obj/Player.o (__do_copy_data)
-/usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_clear_bss.o)
- Obj/main.o (__do_clear_bss)
-/usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_ctors.o)
- Obj/main.o (__do_global_ctors)
-/usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_dtors.o)
- Obj/Gameplay.o (__do_global_dtors)
-/usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_muluhisi3.o)
- /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_mulsi3.o) (__muluhisi3)
-/usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_adddi3.o)
- Obj/System.o (__adddi3)
-/usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_adddi3_s8.o)
- Obj/System.o (__adddi3_s8)
-/usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_cmpdi2.o)
- Obj/System.o (__cmpdi2)
-/usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_tablejump2.o)
- /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_ctors.o) (__tablejump2__)
-/usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_umulhisi3.o)
- /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_muluhisi3.o) (__umulhisi3)
-/usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(addsf3.o)
+/usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_negsi2.o)
+ /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_divmodsi4.o) (__negsi2)
+/usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_exit.o)
+ /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/crtatmega328p.o (exit)
+/usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_copy_data.o)
+ Obj/Game.o (__do_copy_data)
+/usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_clear_bss.o)
+ Obj/System.o (__do_clear_bss)
+/usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_ctors.o)
+ Obj/System.o (__do_global_ctors)
+/usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_muluhisi3.o)
+ /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_mulsi3.o) (__muluhisi3)
+/usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_tablejump2.o)
+ /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_ctors.o) (__tablejump2__)
+/usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_umulhisi3.o)
+ /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_muluhisi3.o) (__umulhisi3)
+/usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(addsf3.o)
../lib/libarduino.a(Print.o) (__subsf3)
-/usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(addsf3x.o)
- /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(addsf3.o) (__addsf3x)
-/usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(cmpsf2.o)
+/usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(addsf3x.o)
+ /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(addsf3.o) (__addsf3x)
+/usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(cmpsf2.o)
../lib/libarduino.a(Print.o) (__ltsf2)
-/usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(divsf3.o)
+/usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(divsf3.o)
../lib/libarduino.a(Print.o) (__divsf3)
-/usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(divsf3x.o)
- /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(divsf3.o) (__divsf3x)
-/usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(fixsfsi.o)
+/usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(divsf3x.o)
+ /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(divsf3.o) (__divsf3x)
+/usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(fixsfsi.o)
../lib/libarduino.a(Print.o) (__fixsfsi)
-/usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(fixunssfsi.o)
+/usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(fixunssfsi.o)
../lib/libgamebuino.a(Battery.o) (__fixunssfsi)
-/usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(floatsisf.o)
+/usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(floatsisf.o)
../lib/libarduino.a(Print.o) (__floatunsisf)
-/usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(fp_cmp.o)
- /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(cmpsf2.o) (__fp_cmp)
-/usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(fp_inf.o)
- /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(addsf3x.o) (__fp_inf)
-/usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(fp_nan.o)
- /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(addsf3x.o) (__fp_nan)
-/usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(fp_pscA.o)
- /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(addsf3x.o) (__fp_pscA)
-/usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(fp_pscB.o)
- /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(addsf3x.o) (__fp_pscB)
-/usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(fp_round.o)
- /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(addsf3.o) (__fp_round)
-/usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(fp_split3.o)
- /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(addsf3x.o) (__fp_split3)
-/usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(fp_zero.o)
- /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(addsf3x.o) (__fp_zero)
-/usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(gesf2.o)
+/usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(fp_cmp.o)
+ /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(cmpsf2.o) (__fp_cmp)
+/usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(fp_inf.o)
+ /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(addsf3x.o) (__fp_inf)
+/usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(fp_nan.o)
+ /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(addsf3x.o) (__fp_nan)
+/usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(fp_pscA.o)
+ /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(addsf3x.o) (__fp_pscA)
+/usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(fp_pscB.o)
+ /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(addsf3x.o) (__fp_pscB)
+/usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(fp_round.o)
+ /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(addsf3.o) (__fp_round)
+/usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(fp_split3.o)
+ /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(addsf3x.o) (__fp_split3)
+/usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(fp_zero.o)
+ /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(addsf3x.o) (__fp_zero)
+/usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(gesf2.o)
../lib/libarduino.a(Print.o) (__gtsf2)
-/usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(mulsf3.o)
+/usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(mulsf3.o)
../lib/libgamebuino.a(Battery.o) (__mulsf3)
-/usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(mulsf3x.o)
- /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(mulsf3.o) (__mulsf3x)
-/usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(unordsf2.o)
+/usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(mulsf3x.o)
+ /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(mulsf3.o) (__mulsf3x)
+/usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(unordsf2.o)
../lib/libarduino.a(Print.o) (__unordsf2)
-/usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(malloc.o)
+/usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(malloc.o)
../lib/libgamebuino.a(Gamebuino.o) (__brkval)
-/usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(rand.o)
- Obj/System.o (rand)
-/usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(random.o)
+/usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(random.o)
../lib/libarduino.a(WMath.o) (random)
-/usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(realloc.o)
+/usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(realloc.o)
../lib/libarduino.a(WString.o) (realloc)
-/usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(atol.o)
+/usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(atol.o)
../lib/libarduino.a(WString.o) (atol)
-/usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(isspace.o)
+/usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(isspace.o)
../lib/libarduino.a(WString.o) (isspace)
-/usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(tolower.o)
+/usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(tolower.o)
../lib/libarduino.a(WString.o) (tolower)
-/usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(toupper.o)
+/usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(toupper.o)
../lib/libarduino.a(WString.o) (toupper)
-/usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(memcpy.o)
+/usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(memcpy.o)
../lib/libarduino.a(WString.o) (memcpy)
-/usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(memmove.o)
+/usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(memmove.o)
../lib/libarduino.a(WString.o) (memmove)
-/usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(memset.o)
+/usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(memset.o)
../lib/libgamebuino.a(Display.o) (memset)
-/usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(strchr.o)
+/usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(strchr.o)
../lib/libarduino.a(WString.o) (strchr)
-/usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(strcmp.o)
+/usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(strcmp.o)
../lib/libarduino.a(WString.o) (strcmp)
-/usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(strcpy.o)
+/usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(strcpy.o)
../lib/libarduino.a(WString.o) (strcpy)
-/usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(strncmp.o)
+/usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(strncmp.o)
../lib/libarduino.a(WString.o) (strncmp)
-/usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(strncpy.o)
- ../lib/libarduino.a(WString.o) (strncpy)
-/usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(strrchr.o)
+/usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(strncpy.o)
+ Obj/Player.o (strncpy)
+/usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(strrchr.o)
../lib/libarduino.a(WString.o) (strrchr)
-/usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(strstr.o)
+/usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(strstr.o)
../lib/libarduino.a(WString.o) (strstr)
-/usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(itoa.o)
+/usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(itoa.o)
../lib/libarduino.a(WString.o) (__itoa)
-/usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(itoa_ncheck.o)
- ../lib/libarduino.a(WString.o) (__itoa_ncheck)
-/usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(ltoa.o)
+/usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(itoa_ncheck.o)
+ /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(itoa.o) (__itoa_ncheck)
+/usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(ltoa.o)
../lib/libarduino.a(WString.o) (__ltoa)
-/usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(ltoa_ncheck.o)
- ../lib/libarduino.a(WString.o) (__ltoa_ncheck)
-/usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(mulsi10.o)
- /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(atol.o) (__mulsi_const_10)
-/usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(ultoa.o)
+/usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(ltoa_ncheck.o)
+ /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(ltoa.o) (__ltoa_ncheck)
+/usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(mulsi10.o)
+ /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(atol.o) (__mulsi_const_10)
+/usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(ultoa.o)
../lib/libarduino.a(WString.o) (__ultoa)
-/usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(ultoa_ncheck.o)
- ../lib/libarduino.a(WString.o) (__ultoa_ncheck)
-/usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(utoa.o)
+/usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(ultoa_ncheck.o)
+ /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(ultoa.o) (__ultoa_ncheck)
+/usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(utoa.o)
../lib/libarduino.a(WString.o) (__utoa)
-/usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(utoa_ncheck.o)
- ../lib/libarduino.a(WString.o) (__utoa_ncheck)
-/usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(cty_isfalse.o)
- /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(isspace.o) (__ctype_isfalse)
-/usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(strrev.o)
- /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(ultoa_ncheck.o) (strrev)
-/usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_mulshisi3.o)
- /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(rand.o) (__mulohisi3)
-/usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_prologue.o)
- /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(realloc.o) (__prologue_saves__)
-/usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_epilogue.o)
- /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(realloc.o) (__epilogue_restores__)
+/usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(utoa_ncheck.o)
+ /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(utoa.o) (__utoa_ncheck)
+/usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(cty_isfalse.o)
+ /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(isspace.o) (__ctype_isfalse)
+/usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(strrev.o)
+ /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(ultoa_ncheck.o) (strrev)
+/usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_mulshisi3.o)
+ /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(random.o) (__mulohisi3)
+/usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_prologue.o)
+ /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(realloc.o) (__prologue_saves__)
+/usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_epilogue.o)
+ /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(realloc.o) (__epilogue_restores__)
Allocating common symbols
Common symbol size file
-__brkval 0x2 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(malloc.o)
-__flp 0x2 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(malloc.o)
+__brkval 0x2 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(malloc.o)
+__flp 0x2 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(malloc.o)
Discarded input sections
- .data 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/crtatmega328p.o
- .bss 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/crtatmega328p.o
+ .data 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/crtatmega328p.o
+ .bss 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/crtatmega328p.o
.text 0x0000000000000000 0x0 Obj/main.o
.data 0x0000000000000000 0x0 Obj/main.o
.bss 0x0000000000000000 0x0 Obj/main.o
- .text 0x0000000000000000 0x0 Obj/Gameplay.o
- .data 0x0000000000000000 0x0 Obj/Gameplay.o
- .bss 0x0000000000000000 0x0 Obj/Gameplay.o
+ .text 0x0000000000000000 0x0 Obj/Game.o
+ .data 0x0000000000000000 0x0 Obj/Game.o
+ .bss 0x0000000000000000 0x0 Obj/Game.o
.text 0x0000000000000000 0x0 Obj/System.o
.data 0x0000000000000000 0x0 Obj/System.o
.bss 0x0000000000000000 0x0 Obj/System.o
- .text.SystemIsRandSeedSet
- 0x0000000000000000 0x6 Obj/System.o
- .text.SystemGetGlobalTimer
- 0x0000000000000000 0x22 Obj/System.o
- .text.System1SecondTick
- 0x0000000000000000 0x6 Obj/System.o
- .text.System100msTick
- 0x0000000000000000 0x4 Obj/System.o
- .text.SystemRunTimers
- 0x0000000000000000 0x2 Obj/System.o
- .text.SystemCheckTimer
- 0x0000000000000000 0xd8 Obj/System.o
- .text.SystemWaitCycles
- 0x0000000000000000 0xfa Obj/System.o
- .text.SystemIsBusy
- 0x0000000000000000 0x6 Obj/System.o
- .text.SystemContains_u8
- 0x0000000000000000 0x1a Obj/System.o
- .text.SystemContains_u16
- 0x0000000000000000 0x24 Obj/System.o
- .text.SystemCreateTimer
- 0x0000000000000000 0x56 Obj/System.o
- .text.SystemUserTimersHandler
- 0x0000000000000000 0x70 Obj/System.o
- .text.SystemTimerRestart
- 0x0000000000000000 0x14 Obj/System.o
- .text.SystemTimerRemove
- 0x0000000000000000 0x1c Obj/System.o
- .text.SystemArrayCompare
- 0x0000000000000000 0x34 Obj/System.o
- .text 0x0000000000000000 0x0 Obj/Gfx.o
- .data 0x0000000000000000 0x0 Obj/Gfx.o
- .bss 0x0000000000000000 0x0 Obj/Gfx.o
- .text.GfxShowKeyboard
- 0x0000000000000000 0xc Obj/Gfx.o
- .text.GfxPrintText
- 0x0000000000000000 0xc Obj/Gfx.o
- .text.GfxDrawFillCircle
- 0x0000000000000000 0x58 Obj/Gfx.o
- .text.GfxDrawLine
- 0x0000000000000000 0x38 Obj/Gfx.o
- .text 0x0000000000000000 0x0 Obj/Pad.o
- .data 0x0000000000000000 0x0 Obj/Pad.o
- .bss 0x0000000000000000 0x0 Obj/Pad.o
+ .group 0x0000000000000000 0x8 Obj/HumanPlayer.o
+ .text 0x0000000000000000 0x0 Obj/HumanPlayer.o
+ .data 0x0000000000000000 0x0 Obj/HumanPlayer.o
+ .bss 0x0000000000000000 0x0 Obj/HumanPlayer.o
+ .text._ZN11HumanPlayer16onLeftBtnPressedEv
+ 0x0000000000000000 0x6 Obj/HumanPlayer.o
+ .text 0x0000000000000000 0x0 Obj/Sprite.o
+ .data 0x0000000000000000 0x0 Obj/Sprite.o
+ .bss 0x0000000000000000 0x0 Obj/Sprite.o
+ .text._ZN6SpriteC2ERKh
+ 0x0000000000000000 0x8 Obj/Sprite.o
+ .comment 0x0000000000000000 0x12 Obj/Sprite.o
+ .group 0x0000000000000000 0x8 Obj/Player.o
.text 0x0000000000000000 0x0 Obj/Player.o
.data 0x0000000000000000 0x0 Obj/Player.o
.bss 0x0000000000000000 0x0 Obj/Player.o
- .text._ZN6Player24checkNewBuildingPositionEP16t_CollisionBlock
- 0x0000000000000000 0xee Obj/Player.o
- .text._ZN6Player19ButtonRightReleasedEv
- 0x0000000000000000 0x4 Obj/Player.o
- .bss._ZZN6Player24checkNewBuildingPositionEP16t_CollisionBlockE9max_tries
- 0x0000000000000000 0x1 Obj/Player.o
.text 0x0000000000000000 0x0 Obj/Camera.o
.data 0x0000000000000000 0x0 Obj/Camera.o
.bss 0x0000000000000000 0x0 Obj/Camera.o
+ .text._ZN6Camera14getCoordinatesEPiS0_
+ 0x0000000000000000 0x2c Obj/Camera.o
+ .text._ZN6Camera16onLeftBtnPressedEv
+ 0x0000000000000000 0x2 Obj/Camera.o
.text 0x0000000000000000 0x0 Obj/Unit.o
.data 0x0000000000000000 0x0 Obj/Unit.o
.bss 0x0000000000000000 0x0 Obj/Unit.o
- .text.UnitAttackAccepted
- 0x0000000000000000 0x8 Obj/Unit.o
+ .text._ZN4UnitC2Ev
+ 0x0000000000000000 0x2 Obj/Unit.o
+ .comment 0x0000000000000000 0x12 Obj/Unit.o
.text 0x0000000000000000 0x0 Obj/Menu.o
.data 0x0000000000000000 0x0 Obj/Menu.o
.bss 0x0000000000000000 0x0 Obj/Menu.o
@@ -257,7 +213,9 @@ Discarded input sections
.data 0x0000000000000000 0x0 ../lib/libgamebuino.a(Buttons.o)
.bss 0x0000000000000000 0x0 ../lib/libgamebuino.a(Buttons.o)
.text._ZN7Buttons4heldEhh
- 0x0000000000000000 0x1a ../lib/libgamebuino.a(Buttons.o)
+ 0x0000000000000000 0x1c ../lib/libgamebuino.a(Buttons.o)
+ .text._ZN7Buttons8timeHeldEh
+ 0x0000000000000000 0x10 ../lib/libgamebuino.a(Buttons.o)
.group 0x0000000000000000 0x8 ../lib/libgamebuino.a(Display.o)
.group 0x0000000000000000 0x8 ../lib/libgamebuino.a(Display.o)
.group 0x0000000000000000 0x8 ../lib/libgamebuino.a(Display.o)
@@ -267,20 +225,25 @@ Discarded input sections
.text._ZN7Display4dataEh
0x0000000000000000 0x3c ../lib/libgamebuino.a(Display.o)
.text._ZN7Display11setContrastEh
- 0x0000000000000000 0x32 ../lib/libgamebuino.a(Display.o)
+ 0x0000000000000000 0x34 ../lib/libgamebuino.a(Display.o)
+ .text._ZN7Display10fillScreenEh
+ 0x0000000000000000 0x10 ../lib/libgamebuino.a(Display.o)
+ .text._ZN7Display8drawRectEaaaa
+ 0x0000000000000000 0x50 ../lib/libgamebuino.a(Display.o)
.text._ZN7Display8drawLineEaaaa
- 0x0000000000000000 0xf0 ../lib/libgamebuino.a(Display.o)
+ 0x0000000000000000 0xf2 ../lib/libgamebuino.a(Display.o)
+ .text._ZN7Display10drawCircleEaaa
+ 0x0000000000000000 0x100 ../lib/libgamebuino.a(Display.o)
.text._ZN7Display10fillCircleEaaa
0x0000000000000000 0x40 ../lib/libgamebuino.a(Display.o)
.text._ZN7Display12drawTriangleEaaaaaa
0x0000000000000000 0x50 ../lib/libgamebuino.a(Display.o)
.text._ZN7Display12fillTriangleEaaaaaa
- 0x0000000000000000 0x26c ../lib/libgamebuino.a(Display.o)
+ 0x0000000000000000 0x254 ../lib/libgamebuino.a(Display.o)
.text._ZN7Display14getBitmapPixelEPKhhh
- 0x0000000000000000 0x4a ../lib/libgamebuino.a(Display.o)
- .text 0x0000000000000000 0x0 ../lib/libgamebuino.a(font3x3.o)
- .data 0x0000000000000000 0x0 ../lib/libgamebuino.a(font3x3.o)
- .bss 0x0000000000000000 0x0 ../lib/libgamebuino.a(font3x3.o)
+ 0x0000000000000000 0x50 ../lib/libgamebuino.a(Display.o)
+ .text._ZN7Display10drawBitmapEaaPKhhh
+ 0x0000000000000000 0x1d4 ../lib/libgamebuino.a(Display.o)
.text 0x0000000000000000 0x0 ../lib/libgamebuino.a(font3x5.o)
.data 0x0000000000000000 0x0 ../lib/libgamebuino.a(font3x5.o)
.bss 0x0000000000000000 0x0 ../lib/libgamebuino.a(font3x5.o)
@@ -290,13 +253,15 @@ Discarded input sections
.text._ZN9Gamebuino12setFrameRateEh
0x0000000000000000 0x30 ../lib/libgamebuino.a(Gamebuino.o)
.text._ZN9Gamebuino14pickRandomSeedEv
- 0x0000000000000000 0x7c ../lib/libgamebuino.a(Gamebuino.o)
+ 0x0000000000000000 0x88 ../lib/libgamebuino.a(Gamebuino.o)
.text._ZN9Gamebuino10getCpuLoadEv
- 0x0000000000000000 0x22 ../lib/libgamebuino.a(Gamebuino.o)
+ 0x0000000000000000 0x1e ../lib/libgamebuino.a(Gamebuino.o)
.text._ZN9Gamebuino10getFreeRamEv
0x0000000000000000 0x2e ../lib/libgamebuino.a(Gamebuino.o)
+ .text._ZN9Gamebuino5popupEPK19__FlashStringHelperh
+ 0x0000000000000000 0x12 ../lib/libgamebuino.a(Gamebuino.o)
.text._ZN9Gamebuino8keyboardEPch
- 0x0000000000000000 0x4fc ../lib/libgamebuino.a(Gamebuino.o)
+ 0x0000000000000000 0x4ec ../lib/libgamebuino.a(Gamebuino.o)
.text._ZN9Gamebuino11titleScreenEv
0x0000000000000000 0x8 ../lib/libgamebuino.a(Gamebuino.o)
.text._ZN9Gamebuino11titleScreenEPKh
@@ -306,7 +271,7 @@ Discarded input sections
.text._ZN9Gamebuino15collideRectRectEiiiiiiii
0x0000000000000000 0x62 ../lib/libgamebuino.a(Gamebuino.o)
.text._ZN9Gamebuino19collideBitmapBitmapEiiPKhiiS1_
- 0x0000000000000000 0x19a ../lib/libgamebuino.a(Gamebuino.o)
+ 0x0000000000000000 0x1ac ../lib/libgamebuino.a(Gamebuino.o)
.progmem.data._ZZN9Gamebuino8keyboardEPchE3__c_3
0x0000000000000000 0x6 ../lib/libgamebuino.a(Gamebuino.o)
.progmem.data._ZZN9Gamebuino8keyboardEPchE3__c_2
@@ -328,18 +293,14 @@ Discarded input sections
0x0000000000000000 0xc ../lib/libgamebuino.a(Sound.o)
.text._ZN5Sound19changeInstrumentSetEPKPKjh
0x0000000000000000 0xc ../lib/libgamebuino.a(Sound.o)
- .text._ZN5Sound8playNoteEhhh
- 0x0000000000000000 0x24 ../lib/libgamebuino.a(Sound.o)
- .text._ZN5Sound8stopNoteEh
- 0x0000000000000000 0xa ../lib/libgamebuino.a(Sound.o)
- .text._ZN5Sound8stopNoteEv
- 0x0000000000000000 0x4 ../lib/libgamebuino.a(Sound.o)
- .text._ZN5Sound9playTrackEPKjh
- 0x0000000000000000 0x2c ../lib/libgamebuino.a(Sound.o)
.text._ZN5Sound9stopTrackEh
- 0x0000000000000000 0x18 ../lib/libgamebuino.a(Sound.o)
+ 0x0000000000000000 0xe ../lib/libgamebuino.a(Sound.o)
+ .text._ZN5Sound9playTrackEPKjh
+ 0x0000000000000000 0x2a ../lib/libgamebuino.a(Sound.o)
.text._ZN5Sound9stopTrackEv
- 0x0000000000000000 0x14 ../lib/libgamebuino.a(Sound.o)
+ 0x0000000000000000 0x6 ../lib/libgamebuino.a(Sound.o)
+ .text._ZN5Sound8stopNoteEv
+ 0x0000000000000000 0x6 ../lib/libgamebuino.a(Sound.o)
.text._ZN5Sound20setChannelHalfPeriodEhh
0x0000000000000000 0x16 ../lib/libgamebuino.a(Sound.o)
.text._ZN5Sound17setPatternLoopingEhh
@@ -370,25 +331,24 @@ Discarded input sections
.data 0x0000000000000000 0x0 ../lib/libarduino.a(wiring_digital.o)
.bss 0x0000000000000000 0x0 ../lib/libarduino.a(wiring_digital.o)
.group 0x0000000000000000 0x8 ../lib/libarduino.a(Print.o)
+ .group 0x0000000000000000 0x8 ../lib/libarduino.a(Print.o)
.text 0x0000000000000000 0x0 ../lib/libarduino.a(Print.o)
.data 0x0000000000000000 0x0 ../lib/libarduino.a(Print.o)
.bss 0x0000000000000000 0x0 ../lib/libarduino.a(Print.o)
.text._ZN5Print5printERK6String
- 0x0000000000000000 0x68 ../lib/libarduino.a(Print.o)
+ 0x0000000000000000 0x6a ../lib/libarduino.a(Print.o)
+ .text._ZN5Print5printEPKc
+ 0x0000000000000000 0x4 ../lib/libarduino.a(Print.o)
.text._ZN5Print5printERK9Printable
0x0000000000000000 0x14 ../lib/libarduino.a(Print.o)
.text._ZN5Print7printlnERK6String
0x0000000000000000 0x24 ../lib/libarduino.a(Print.o)
.text._ZN5Print7printlnEPKc
- 0x0000000000000000 0x2e ../lib/libarduino.a(Print.o)
+ 0x0000000000000000 0x24 ../lib/libarduino.a(Print.o)
.text._ZN5Print7printlnEc
0x0000000000000000 0x24 ../lib/libarduino.a(Print.o)
.text._ZN5Print7printlnERK9Printable
0x0000000000000000 0x24 ../lib/libarduino.a(Print.o)
- .text._ZN5Print7printlnEii
- 0x0000000000000000 0x24 ../lib/libarduino.a(Print.o)
- .text._ZN5Print7printlnEli
- 0x0000000000000000 0x24 ../lib/libarduino.a(Print.o)
.text._ZN5Print5printEhi
0x0000000000000000 0xe ../lib/libarduino.a(Print.o)
.text._ZN5Print7printlnEhi
@@ -397,10 +357,14 @@ Discarded input sections
0x0000000000000000 0x24 ../lib/libarduino.a(Print.o)
.text._ZN5Print7printlnEmi
0x0000000000000000 0x24 ../lib/libarduino.a(Print.o)
- .rodata._ZN5Print10printFloatEdh.str1.1
+ .text._ZN5Print7printlnEii
+ 0x0000000000000000 0x24 ../lib/libarduino.a(Print.o)
+ .text._ZN5Print7printlnEli
+ 0x0000000000000000 0x24 ../lib/libarduino.a(Print.o)
+ .rodata.str1.1
0x0000000000000000 0xe ../lib/libarduino.a(Print.o)
.text._ZN5Print10printFloatEdh
- 0x0000000000000000 0x1cc ../lib/libarduino.a(Print.o)
+ 0x0000000000000000 0x1ba ../lib/libarduino.a(Print.o)
.text._ZN5Print5printEdi
0x0000000000000000 0x4 ../lib/libarduino.a(Print.o)
.text._ZN5Print7printlnEdi
@@ -415,18 +379,22 @@ Discarded input sections
.text._Z6randoml
0x0000000000000000 0x34 ../lib/libarduino.a(WMath.o)
.text._Z6randomll
- 0x0000000000000000 0x3c ../lib/libarduino.a(WMath.o)
+ 0x0000000000000000 0x44 ../lib/libarduino.a(WMath.o)
.text._Z8makeWordj
0x0000000000000000 0x2 ../lib/libarduino.a(WMath.o)
.text._Z8makeWordhh
- 0x0000000000000000 0x6 ../lib/libarduino.a(WMath.o)
+ 0x0000000000000000 0xa ../lib/libarduino.a(WMath.o)
+ .group 0x0000000000000000 0x8 ../lib/libarduino.a(WString.o)
+ .group 0x0000000000000000 0x8 ../lib/libarduino.a(WString.o)
+ .group 0x0000000000000000 0x8 ../lib/libarduino.a(WString.o)
+ .group 0x0000000000000000 0x8 ../lib/libarduino.a(WString.o)
.text 0x0000000000000000 0x0 ../lib/libarduino.a(WString.o)
.data 0x0000000000000000 0x0 ../lib/libarduino.a(WString.o)
.bss 0x0000000000000000 0x0 ../lib/libarduino.a(WString.o)
- .text._ZN6StringC2EOS_
- 0x0000000000000000 0x4c ../lib/libarduino.a(WString.o)
- .text._ZN6StringC2EO15StringSumHelper
- 0x0000000000000000 0x4c ../lib/libarduino.a(WString.o)
+ .text.itoa 0x0000000000000000 0x4 ../lib/libarduino.a(WString.o)
+ .text.ltoa 0x0000000000000000 0x4 ../lib/libarduino.a(WString.o)
+ .text.utoa 0x0000000000000000 0x4 ../lib/libarduino.a(WString.o)
+ .text.ultoa 0x0000000000000000 0x4 ../lib/libarduino.a(WString.o)
.text._ZN6StringD2Ev
0x0000000000000000 0xa ../lib/libarduino.a(WString.o)
.text._ZN6String10invalidateEv
@@ -434,13 +402,17 @@ Discarded input sections
.text._ZN6String12changeBufferEj
0x0000000000000000 0x34 ../lib/libarduino.a(WString.o)
.text._ZN6String7reserveEj
- 0x0000000000000000 0x3a ../lib/libarduino.a(WString.o)
+ 0x0000000000000000 0x38 ../lib/libarduino.a(WString.o)
.text._ZN6String4copyEPKcj
0x0000000000000000 0x42 ../lib/libarduino.a(WString.o)
.text._ZN6StringC2EPKc
0x0000000000000000 0x2c ../lib/libarduino.a(WString.o)
- .text._ZN6StringaSEPKc.part.3
+ .text._ZN6StringaSERKS_
+ 0x0000000000000000 0x2e ../lib/libarduino.a(WString.o)
+ .text._ZN6StringC2ERKS_
0x0000000000000000 0x14 ../lib/libarduino.a(WString.o)
+ .text._ZN6StringaSEPKc
+ 0x0000000000000000 0x2e ../lib/libarduino.a(WString.o)
.text._ZN6StringC2Ec
0x0000000000000000 0x32 ../lib/libarduino.a(WString.o)
.text._ZN6StringC2Ehh
@@ -453,20 +425,8 @@ Discarded input sections
0x0000000000000000 0x5c ../lib/libarduino.a(WString.o)
.text._ZN6StringC2Emh
0x0000000000000000 0x5c ../lib/libarduino.a(WString.o)
- .text._ZN6String4moveERS_
- 0x0000000000000000 0x6c ../lib/libarduino.a(WString.o)
- .text._ZN6StringaSERKS_
- 0x0000000000000000 0x2e ../lib/libarduino.a(WString.o)
- .text._ZN6StringC2ERKS_
- 0x0000000000000000 0x14 ../lib/libarduino.a(WString.o)
- .text._ZN6StringaSEOS_
- 0x0000000000000000 0x18 ../lib/libarduino.a(WString.o)
- .text._ZN6StringaSEO15StringSumHelper
- 0x0000000000000000 0x18 ../lib/libarduino.a(WString.o)
- .text._ZN6StringaSEPKc
- 0x0000000000000000 0x1e ../lib/libarduino.a(WString.o)
.text._ZN6String6concatEPKcj
- 0x0000000000000000 0x56 ../lib/libarduino.a(WString.o)
+ 0x0000000000000000 0x5c ../lib/libarduino.a(WString.o)
.text._ZN6String6concatERKS_
0x0000000000000000 0xe ../lib/libarduino.a(WString.o)
.text._ZN6String6concatEPKc
@@ -474,19 +434,19 @@ Discarded input sections
.text._ZN6String6concatEc
0x0000000000000000 0x26 ../lib/libarduino.a(WString.o)
.text._ZN6String6concatEh
- 0x0000000000000000 0x56 ../lib/libarduino.a(WString.o)
+ 0x0000000000000000 0x58 ../lib/libarduino.a(WString.o)
.text._ZN6String6concatEi
- 0x0000000000000000 0x5c ../lib/libarduino.a(WString.o)
+ 0x0000000000000000 0x62 ../lib/libarduino.a(WString.o)
.text._ZN6String6concatEj
- 0x0000000000000000 0x5a ../lib/libarduino.a(WString.o)
+ 0x0000000000000000 0x5c ../lib/libarduino.a(WString.o)
.text._ZN6String6concatEl
- 0x0000000000000000 0x62 ../lib/libarduino.a(WString.o)
+ 0x0000000000000000 0x64 ../lib/libarduino.a(WString.o)
.text._ZN6String6concatEm
- 0x0000000000000000 0x62 ../lib/libarduino.a(WString.o)
+ 0x0000000000000000 0x64 ../lib/libarduino.a(WString.o)
.text._ZplRK15StringSumHelperRK6String
0x0000000000000000 0x26 ../lib/libarduino.a(WString.o)
.text._ZplRK15StringSumHelperPKc
- 0x0000000000000000 0x34 ../lib/libarduino.a(WString.o)
+ 0x0000000000000000 0x32 ../lib/libarduino.a(WString.o)
.text._ZplRK15StringSumHelperc
0x0000000000000000 0x1c ../lib/libarduino.a(WString.o)
.text._ZplRK15StringSumHelperh
@@ -500,11 +460,11 @@ Discarded input sections
.text._ZplRK15StringSumHelperm
0x0000000000000000 0x1c ../lib/libarduino.a(WString.o)
.text._ZNK6String9compareToERKS_
- 0x0000000000000000 0x5a ../lib/libarduino.a(WString.o)
+ 0x0000000000000000 0x60 ../lib/libarduino.a(WString.o)
.text._ZNK6String6equalsERKS_
0x0000000000000000 0x22 ../lib/libarduino.a(WString.o)
.text._ZNK6String6equalsEPKc
- 0x0000000000000000 0x3a ../lib/libarduino.a(WString.o)
+ 0x0000000000000000 0x3e ../lib/libarduino.a(WString.o)
.text._ZNK6StringltERKS_
0x0000000000000000 0xe ../lib/libarduino.a(WString.o)
.text._ZNK6StringgtERKS_
@@ -514,15 +474,15 @@ Discarded input sections
.text._ZNK6StringgeERKS_
0x0000000000000000 0x10 ../lib/libarduino.a(WString.o)
.text._ZNK6String16equalsIgnoreCaseERKS_
- 0x0000000000000000 0x70 ../lib/libarduino.a(WString.o)
+ 0x0000000000000000 0x6e ../lib/libarduino.a(WString.o)
.text._ZNK6String10startsWithERKS_j
- 0x0000000000000000 0x46 ../lib/libarduino.a(WString.o)
+ 0x0000000000000000 0x4c ../lib/libarduino.a(WString.o)
.text._ZNK6String10startsWithERKS_
0x0000000000000000 0x1e ../lib/libarduino.a(WString.o)
.text._ZNK6String8endsWithERKS_
0x0000000000000000 0x40 ../lib/libarduino.a(WString.o)
.text._ZN6String9setCharAtEjc
- 0x0000000000000000 0x1c ../lib/libarduino.a(WString.o)
+ 0x0000000000000000 0x1a ../lib/libarduino.a(WString.o)
.text._ZN6StringixEj
0x0000000000000000 0x24 ../lib/libarduino.a(WString.o)
.text._ZNK6StringixEj
@@ -530,39 +490,39 @@ Discarded input sections
.text._ZNK6String6charAtEj
0x0000000000000000 0x4 ../lib/libarduino.a(WString.o)
.text._ZNK6String8getBytesEPhjj
- 0x0000000000000000 0x5a ../lib/libarduino.a(WString.o)
+ 0x0000000000000000 0x5e ../lib/libarduino.a(WString.o)
.text._ZNK6String7indexOfEcj
0x0000000000000000 0x38 ../lib/libarduino.a(WString.o)
.text._ZNK6String7indexOfEc
0x0000000000000000 0x8 ../lib/libarduino.a(WString.o)
.text._ZNK6String7indexOfERKS_j
- 0x0000000000000000 0x38 ../lib/libarduino.a(WString.o)
+ 0x0000000000000000 0x3a ../lib/libarduino.a(WString.o)
.text._ZNK6String7indexOfERKS_
0x0000000000000000 0x8 ../lib/libarduino.a(WString.o)
.text._ZNK6String11lastIndexOfEcj
- 0x0000000000000000 0x6c ../lib/libarduino.a(WString.o)
+ 0x0000000000000000 0x6e ../lib/libarduino.a(WString.o)
.text._ZNK6String11lastIndexOfEc
0x0000000000000000 0xe ../lib/libarduino.a(WString.o)
.text._ZNK6String11lastIndexOfERKS_j
0x0000000000000000 0x9c ../lib/libarduino.a(WString.o)
.text._ZNK6String11lastIndexOfERKS_
0x0000000000000000 0x14 ../lib/libarduino.a(WString.o)
- .rodata._ZNK6String9substringEjj.str1.1
+ .rodata.str1.1
0x0000000000000000 0x1 ../lib/libarduino.a(WString.o)
.text._ZNK6String9substringEjj
- 0x0000000000000000 0x8c ../lib/libarduino.a(WString.o)
+ 0x0000000000000000 0x8a ../lib/libarduino.a(WString.o)
.text._ZNK6String9substringEj
0x0000000000000000 0x18 ../lib/libarduino.a(WString.o)
.text._ZN6String7replaceEcc
- 0x0000000000000000 0x1e ../lib/libarduino.a(WString.o)
+ 0x0000000000000000 0x1c ../lib/libarduino.a(WString.o)
.text._ZN6String7replaceERKS_S1_
- 0x0000000000000000 0x1f6 ../lib/libarduino.a(WString.o)
+ 0x0000000000000000 0x1f4 ../lib/libarduino.a(WString.o)
.text._ZN6String11toLowerCaseEv
- 0x0000000000000000 0x2c ../lib/libarduino.a(WString.o)
+ 0x0000000000000000 0x28 ../lib/libarduino.a(WString.o)
.text._ZN6String11toUpperCaseEv
- 0x0000000000000000 0x2c ../lib/libarduino.a(WString.o)
+ 0x0000000000000000 0x28 ../lib/libarduino.a(WString.o)
.text._ZN6String4trimEv
- 0x0000000000000000 0xba ../lib/libarduino.a(WString.o)
+ 0x0000000000000000 0xc0 ../lib/libarduino.a(WString.o)
.text._ZNK6String5toIntEv
0x0000000000000000 0x16 ../lib/libarduino.a(WString.o)
.bss._ZZN6StringixEjE19dummy_writable_char
@@ -571,581 +531,491 @@ Discarded input sections
.text 0x0000000000000000 0x0 ../lib/libarduino.a(forward.o)
.data 0x0000000000000000 0x0 ../lib/libarduino.a(forward.o)
.bss 0x0000000000000000 0x0 ../lib/libarduino.a(forward.o)
- .text.__cxa_pure_virtual
- 0x0000000000000000 0x2 ../lib/libarduino.a(forward.o)
.text.__cxa_guard_acquire
0x0000000000000000 0x12 ../lib/libarduino.a(forward.o)
.text.__cxa_guard_release
0x0000000000000000 0x8 ../lib/libarduino.a(forward.o)
.text.__cxa_guard_abort
0x0000000000000000 0x2 ../lib/libarduino.a(forward.o)
- .comment 0x0000000000000000 0x12 ../lib/libarduino.a(forward.o)
.text 0x0000000000000000 0x0 ../lib/libarduino.a(SPI.o)
.data 0x0000000000000000 0x0 ../lib/libarduino.a(SPI.o)
.bss 0x0000000000000000 0x0 ../lib/libarduino.a(SPI.o)
.text._ZN8SPIClass3endEv
0x0000000000000000 0x8 ../lib/libarduino.a(SPI.o)
.bss.SPI 0x0000000000000000 0x1 ../lib/libarduino.a(SPI.o)
- .text 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_mulsi3.o)
- .data 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_mulsi3.o)
- .bss 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_mulsi3.o)
+ .text 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_mulsi3.o)
+ .data 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_mulsi3.o)
+ .bss 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_mulsi3.o)
.text.libgcc.div
- 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_mulsi3.o)
- .text.libgcc 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_mulsi3.o)
- .text.libgcc.prologue
- 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_mulsi3.o)
- .text.libgcc.builtins
- 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_mulsi3.o)
- .text.libgcc.fmul
- 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_mulsi3.o)
- .text.libgcc.fixed
- 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_mulsi3.o)
- .text 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_udivmodqi4.o)
- .data 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_udivmodqi4.o)
- .bss 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_udivmodqi4.o)
- .text.libgcc.mul
- 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_udivmodqi4.o)
- .text.libgcc 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_udivmodqi4.o)
- .text.libgcc.prologue
- 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_udivmodqi4.o)
- .text.libgcc.builtins
- 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_udivmodqi4.o)
- .text.libgcc.fmul
- 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_udivmodqi4.o)
- .text.libgcc.fixed
- 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_udivmodqi4.o)
- .text 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_udivmodhi4.o)
- .data 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_udivmodhi4.o)
- .bss 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_udivmodhi4.o)
- .text.libgcc.mul
- 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_udivmodhi4.o)
- .text.libgcc 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_udivmodhi4.o)
- .text.libgcc.prologue
- 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_udivmodhi4.o)
- .text.libgcc.builtins
- 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_udivmodhi4.o)
- .text.libgcc.fmul
- 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_udivmodhi4.o)
- .text.libgcc.fixed
- 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_udivmodhi4.o)
- .text 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_divmodhi4.o)
- .data 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_divmodhi4.o)
- .bss 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_divmodhi4.o)
- .text.libgcc.mul
- 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_divmodhi4.o)
- .text.libgcc 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_divmodhi4.o)
+ 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_mulsi3.o)
+ .text.libgcc 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_mulsi3.o)
.text.libgcc.prologue
- 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_divmodhi4.o)
+ 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_mulsi3.o)
.text.libgcc.builtins
- 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_divmodhi4.o)
+ 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_mulsi3.o)
.text.libgcc.fmul
- 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_divmodhi4.o)
+ 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_mulsi3.o)
.text.libgcc.fixed
- 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_divmodhi4.o)
- .text 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_udivmodsi4.o)
- .data 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_udivmodsi4.o)
- .bss 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_udivmodsi4.o)
+ 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_mulsi3.o)
+ .text 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_udivmodqi4.o)
+ .data 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_udivmodqi4.o)
+ .bss 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_udivmodqi4.o)
.text.libgcc.mul
- 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_udivmodsi4.o)
- .text.libgcc 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_udivmodsi4.o)
+ 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_udivmodqi4.o)
+ .text.libgcc 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_udivmodqi4.o)
.text.libgcc.prologue
- 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_udivmodsi4.o)
+ 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_udivmodqi4.o)
.text.libgcc.builtins
- 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_udivmodsi4.o)
+ 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_udivmodqi4.o)
.text.libgcc.fmul
- 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_udivmodsi4.o)
+ 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_udivmodqi4.o)
.text.libgcc.fixed
- 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_udivmodsi4.o)
- .text 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_divmodsi4.o)
- .data 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_divmodsi4.o)
- .bss 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_divmodsi4.o)
+ 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_udivmodqi4.o)
+ .text 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_udivmodhi4.o)
+ .data 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_udivmodhi4.o)
+ .bss 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_udivmodhi4.o)
.text.libgcc.mul
- 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_divmodsi4.o)
- .text.libgcc 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_divmodsi4.o)
+ 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_udivmodhi4.o)
+ .text.libgcc 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_udivmodhi4.o)
.text.libgcc.prologue
- 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_divmodsi4.o)
+ 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_udivmodhi4.o)
.text.libgcc.builtins
- 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_divmodsi4.o)
+ 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_udivmodhi4.o)
.text.libgcc.fmul
- 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_divmodsi4.o)
+ 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_udivmodhi4.o)
.text.libgcc.fixed
- 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_divmodsi4.o)
- .text 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_negsi2.o)
- .data 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_negsi2.o)
- .bss 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_negsi2.o)
+ 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_udivmodhi4.o)
+ .text 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_divmodhi4.o)
+ .data 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_divmodhi4.o)
+ .bss 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_divmodhi4.o)
.text.libgcc.mul
- 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_negsi2.o)
- .text.libgcc 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_negsi2.o)
+ 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_divmodhi4.o)
+ .text.libgcc 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_divmodhi4.o)
.text.libgcc.prologue
- 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_negsi2.o)
+ 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_divmodhi4.o)
.text.libgcc.builtins
- 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_negsi2.o)
+ 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_divmodhi4.o)
.text.libgcc.fmul
- 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_negsi2.o)
+ 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_divmodhi4.o)
.text.libgcc.fixed
- 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_negsi2.o)
- .text 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_exit.o)
- .data 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_exit.o)
- .bss 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_exit.o)
+ 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_divmodhi4.o)
+ .text 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_udivmodsi4.o)
+ .data 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_udivmodsi4.o)
+ .bss 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_udivmodsi4.o)
.text.libgcc.mul
- 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_exit.o)
- .text.libgcc.div
- 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_exit.o)
- .text.libgcc 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_exit.o)
+ 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_udivmodsi4.o)
+ .text.libgcc 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_udivmodsi4.o)
.text.libgcc.prologue
- 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_exit.o)
+ 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_udivmodsi4.o)
.text.libgcc.builtins
- 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_exit.o)
+ 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_udivmodsi4.o)
.text.libgcc.fmul
- 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_exit.o)
+ 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_udivmodsi4.o)
.text.libgcc.fixed
- 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_exit.o)
- .text 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_copy_data.o)
- .data 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_copy_data.o)
- .bss 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_copy_data.o)
+ 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_udivmodsi4.o)
+ .text 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_divmodsi4.o)
+ .data 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_divmodsi4.o)
+ .bss 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_divmodsi4.o)
.text.libgcc.mul
- 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_copy_data.o)
- .text.libgcc.div
- 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_copy_data.o)
- .text.libgcc 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_copy_data.o)
+ 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_divmodsi4.o)
+ .text.libgcc 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_divmodsi4.o)
.text.libgcc.prologue
- 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_copy_data.o)
+ 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_divmodsi4.o)
.text.libgcc.builtins
- 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_copy_data.o)
+ 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_divmodsi4.o)
.text.libgcc.fmul
- 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_copy_data.o)
+ 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_divmodsi4.o)
.text.libgcc.fixed
- 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_copy_data.o)
- .text 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_clear_bss.o)
- .data 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_clear_bss.o)
- .bss 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_clear_bss.o)
+ 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_divmodsi4.o)
+ .text 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_negsi2.o)
+ .data 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_negsi2.o)
+ .bss 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_negsi2.o)
.text.libgcc.mul
- 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_clear_bss.o)
- .text.libgcc.div
- 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_clear_bss.o)
- .text.libgcc 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_clear_bss.o)
+ 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_negsi2.o)
+ .text.libgcc 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_negsi2.o)
.text.libgcc.prologue
- 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_clear_bss.o)
+ 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_negsi2.o)
.text.libgcc.builtins
- 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_clear_bss.o)
+ 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_negsi2.o)
.text.libgcc.fmul
- 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_clear_bss.o)
+ 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_negsi2.o)
.text.libgcc.fixed
- 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_clear_bss.o)
- .text 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_ctors.o)
- .data 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_ctors.o)
- .bss 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_ctors.o)
+ 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_negsi2.o)
+ .text 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_exit.o)
+ .data 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_exit.o)
+ .bss 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_exit.o)
.text.libgcc.mul
- 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_ctors.o)
+ 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_exit.o)
.text.libgcc.div
- 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_ctors.o)
- .text.libgcc 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_ctors.o)
+ 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_exit.o)
+ .text.libgcc 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_exit.o)
.text.libgcc.prologue
- 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_ctors.o)
+ 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_exit.o)
.text.libgcc.builtins
- 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_ctors.o)
+ 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_exit.o)
.text.libgcc.fmul
- 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_ctors.o)
+ 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_exit.o)
.text.libgcc.fixed
- 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_ctors.o)
- .text 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_dtors.o)
- .data 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_dtors.o)
- .bss 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_dtors.o)
+ 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_exit.o)
+ .text 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_copy_data.o)
+ .data 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_copy_data.o)
+ .bss 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_copy_data.o)
.text.libgcc.mul
- 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_dtors.o)
- .text.libgcc.div
- 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_dtors.o)
- .text.libgcc 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_dtors.o)
- .text.libgcc.prologue
- 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_dtors.o)
- .text.libgcc.builtins
- 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_dtors.o)
- .text.libgcc.fmul
- 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_dtors.o)
- .text.libgcc.fixed
- 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_dtors.o)
- .text 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_muluhisi3.o)
- .data 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_muluhisi3.o)
- .bss 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_muluhisi3.o)
+ 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_copy_data.o)
.text.libgcc.div
- 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_muluhisi3.o)
- .text.libgcc 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_muluhisi3.o)
+ 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_copy_data.o)
+ .text.libgcc 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_copy_data.o)
.text.libgcc.prologue
- 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_muluhisi3.o)
+ 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_copy_data.o)
.text.libgcc.builtins
- 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_muluhisi3.o)
+ 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_copy_data.o)
.text.libgcc.fmul
- 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_muluhisi3.o)
+ 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_copy_data.o)
.text.libgcc.fixed
- 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_muluhisi3.o)
- .text 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_adddi3.o)
- .data 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_adddi3.o)
- .bss 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_adddi3.o)
+ 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_copy_data.o)
+ .text 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_clear_bss.o)
+ .data 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_clear_bss.o)
+ .bss 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_clear_bss.o)
.text.libgcc.mul
- 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_adddi3.o)
+ 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_clear_bss.o)
.text.libgcc.div
- 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_adddi3.o)
- .text.libgcc 0x0000000000000000 0x12 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_adddi3.o)
+ 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_clear_bss.o)
+ .text.libgcc 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_clear_bss.o)
.text.libgcc.prologue
- 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_adddi3.o)
+ 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_clear_bss.o)
.text.libgcc.builtins
- 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_adddi3.o)
+ 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_clear_bss.o)
.text.libgcc.fmul
- 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_adddi3.o)
+ 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_clear_bss.o)
.text.libgcc.fixed
- 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_adddi3.o)
- .debug_line 0x0000000000000000 0x67 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_adddi3.o)
- .debug_info 0x0000000000000000 0x26 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_adddi3.o)
- .debug_abbrev 0x0000000000000000 0x14 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_adddi3.o)
- .debug_aranges
- 0x0000000000000000 0x20 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_adddi3.o)
- .debug_str 0x0000000000000000 0x65 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_adddi3.o)
- .text 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_adddi3_s8.o)
- .data 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_adddi3_s8.o)
- .bss 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_adddi3_s8.o)
+ 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_clear_bss.o)
+ .text 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_ctors.o)
+ .data 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_ctors.o)
+ .bss 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_ctors.o)
.text.libgcc.mul
- 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_adddi3_s8.o)
+ 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_ctors.o)
.text.libgcc.div
- 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_adddi3_s8.o)
+ 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_ctors.o)
+ .text.libgcc 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_ctors.o)
.text.libgcc.prologue
- 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_adddi3_s8.o)
+ 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_ctors.o)
.text.libgcc.builtins
- 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_adddi3_s8.o)
+ 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_ctors.o)
.text.libgcc.fmul
- 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_adddi3_s8.o)
+ 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_ctors.o)
.text.libgcc.fixed
- 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_adddi3_s8.o)
- .text 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_cmpdi2.o)
- .data 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_cmpdi2.o)
- .bss 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_cmpdi2.o)
- .text.libgcc.mul
- 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_cmpdi2.o)
+ 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_ctors.o)
+ .text 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_muluhisi3.o)
+ .data 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_muluhisi3.o)
+ .bss 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_muluhisi3.o)
.text.libgcc.div
- 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_cmpdi2.o)
- .text.libgcc 0x0000000000000000 0x12 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_cmpdi2.o)
+ 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_muluhisi3.o)
+ .text.libgcc 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_muluhisi3.o)
.text.libgcc.prologue
- 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_cmpdi2.o)
+ 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_muluhisi3.o)
.text.libgcc.builtins
- 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_cmpdi2.o)
+ 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_muluhisi3.o)
.text.libgcc.fmul
- 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_cmpdi2.o)
+ 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_muluhisi3.o)
.text.libgcc.fixed
- 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_cmpdi2.o)
- .debug_line 0x0000000000000000 0x67 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_cmpdi2.o)
- .debug_info 0x0000000000000000 0x26 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_cmpdi2.o)
- .debug_abbrev 0x0000000000000000 0x14 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_cmpdi2.o)
- .debug_aranges
- 0x0000000000000000 0x20 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_cmpdi2.o)
- .debug_str 0x0000000000000000 0x65 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_cmpdi2.o)
- .text 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_tablejump2.o)
- .data 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_tablejump2.o)
- .bss 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_tablejump2.o)
+ 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_muluhisi3.o)
+ .text 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_tablejump2.o)
+ .data 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_tablejump2.o)
+ .bss 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_tablejump2.o)
.text.libgcc.mul
- 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_tablejump2.o)
+ 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_tablejump2.o)
.text.libgcc.div
- 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_tablejump2.o)
+ 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_tablejump2.o)
.text.libgcc.prologue
- 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_tablejump2.o)
+ 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_tablejump2.o)
.text.libgcc.builtins
- 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_tablejump2.o)
+ 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_tablejump2.o)
.text.libgcc.fmul
- 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_tablejump2.o)
+ 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_tablejump2.o)
.text.libgcc.fixed
- 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_tablejump2.o)
- .text 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_umulhisi3.o)
- .data 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_umulhisi3.o)
- .bss 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_umulhisi3.o)
+ 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_tablejump2.o)
+ .text 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_umulhisi3.o)
+ .data 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_umulhisi3.o)
+ .bss 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_umulhisi3.o)
.text.libgcc.div
- 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_umulhisi3.o)
- .text.libgcc 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_umulhisi3.o)
+ 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_umulhisi3.o)
+ .text.libgcc 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_umulhisi3.o)
.text.libgcc.prologue
- 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_umulhisi3.o)
+ 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_umulhisi3.o)
.text.libgcc.builtins
- 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_umulhisi3.o)
+ 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_umulhisi3.o)
.text.libgcc.fmul
- 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_umulhisi3.o)
+ 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_umulhisi3.o)
.text.libgcc.fixed
- 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_umulhisi3.o)
- .text 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(addsf3.o)
- .data 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(addsf3.o)
- .bss 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(addsf3.o)
+ 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_umulhisi3.o)
+ .text 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(addsf3.o)
+ .data 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(addsf3.o)
+ .bss 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(addsf3.o)
.text.avr-libc.fplib
- 0x0000000000000000 0xe /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(addsf3.o)
- .text 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(addsf3x.o)
- .data 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(addsf3x.o)
- .bss 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(addsf3x.o)
+ 0x0000000000000000 0xe /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(addsf3.o)
+ .text 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(addsf3x.o)
+ .data 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(addsf3x.o)
+ .bss 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(addsf3x.o)
.text.avr-libc.fplib
- 0x0000000000000000 0xcc /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(addsf3x.o)
- .text 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(cmpsf2.o)
- .data 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(cmpsf2.o)
- .bss 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(cmpsf2.o)
+ 0x0000000000000000 0xcc /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(addsf3x.o)
+ .text 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(cmpsf2.o)
+ .data 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(cmpsf2.o)
+ .bss 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(cmpsf2.o)
.text.avr-libc.fplib
- 0x0000000000000000 0xa /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(cmpsf2.o)
- .text 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(divsf3.o)
- .data 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(divsf3.o)
- .bss 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(divsf3.o)
+ 0x0000000000000000 0xa /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(cmpsf2.o)
+ .text 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(divsf3.o)
+ .data 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(divsf3.o)
+ .bss 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(divsf3.o)
.text.avr-libc.fplib
- 0x0000000000000000 0x8 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(divsf3.o)
- .text 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(divsf3x.o)
- .data 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(divsf3x.o)
- .bss 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(divsf3x.o)
+ 0x0000000000000000 0x8 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(divsf3.o)
+ .text 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(divsf3x.o)
+ .data 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(divsf3x.o)
+ .bss 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(divsf3x.o)
.text.avr-libc.fplib
- 0x0000000000000000 0xdc /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(divsf3x.o)
- .text 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(fixsfsi.o)
- .data 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(fixsfsi.o)
- .bss 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(fixsfsi.o)
+ 0x0000000000000000 0xdc /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(divsf3x.o)
+ .text 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(fixsfsi.o)
+ .data 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(fixsfsi.o)
+ .bss 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(fixsfsi.o)
.text.avr-libc.fplib
- 0x0000000000000000 0xe /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(fixsfsi.o)
- .text 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(fixunssfsi.o)
- .data 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(fixunssfsi.o)
- .bss 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(fixunssfsi.o)
- .text 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(floatsisf.o)
- .data 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(floatsisf.o)
- .bss 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(floatsisf.o)
- .text 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(fp_cmp.o)
- .data 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(fp_cmp.o)
- .bss 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(fp_cmp.o)
+ 0x0000000000000000 0xe /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(fixsfsi.o)
+ .text 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(fixunssfsi.o)
+ .data 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(fixunssfsi.o)
+ .bss 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(fixunssfsi.o)
+ .text 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(floatsisf.o)
+ .data 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(floatsisf.o)
+ .bss 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(floatsisf.o)
+ .text 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(fp_cmp.o)
+ .data 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(fp_cmp.o)
+ .bss 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(fp_cmp.o)
.text.avr-libc.fplib
- 0x0000000000000000 0x48 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(fp_cmp.o)
- .text 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(fp_inf.o)
- .data 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(fp_inf.o)
- .bss 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(fp_inf.o)
- .text 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(fp_nan.o)
- .data 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(fp_nan.o)
- .bss 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(fp_nan.o)
- .text 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(fp_pscA.o)
- .data 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(fp_pscA.o)
- .bss 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(fp_pscA.o)
- .text 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(fp_pscB.o)
- .data 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(fp_pscB.o)
- .bss 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(fp_pscB.o)
- .text 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(fp_round.o)
- .data 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(fp_round.o)
- .bss 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(fp_round.o)
- .text 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(fp_split3.o)
- .data 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(fp_split3.o)
- .bss 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(fp_split3.o)
- .text 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(fp_zero.o)
- .data 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(fp_zero.o)
- .bss 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(fp_zero.o)
- .text 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(gesf2.o)
- .data 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(gesf2.o)
- .bss 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(gesf2.o)
+ 0x0000000000000000 0x48 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(fp_cmp.o)
+ .text 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(fp_inf.o)
+ .data 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(fp_inf.o)
+ .bss 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(fp_inf.o)
+ .text 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(fp_nan.o)
+ .data 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(fp_nan.o)
+ .bss 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(fp_nan.o)
+ .text 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(fp_pscA.o)
+ .data 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(fp_pscA.o)
+ .bss 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(fp_pscA.o)
+ .text 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(fp_pscB.o)
+ .data 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(fp_pscB.o)
+ .bss 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(fp_pscB.o)
+ .text 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(fp_round.o)
+ .data 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(fp_round.o)
+ .bss 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(fp_round.o)
+ .text 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(fp_split3.o)
+ .data 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(fp_split3.o)
+ .bss 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(fp_split3.o)
+ .text 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(fp_zero.o)
+ .data 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(fp_zero.o)
+ .bss 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(fp_zero.o)
+ .text 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(gesf2.o)
+ .data 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(gesf2.o)
+ .bss 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(gesf2.o)
.text.avr-libc.fplib
- 0x0000000000000000 0xa /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(gesf2.o)
- .text 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(mulsf3.o)
- .data 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(mulsf3.o)
- .bss 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(mulsf3.o)
- .text 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(mulsf3x.o)
- .data 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(mulsf3x.o)
- .bss 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(mulsf3x.o)
- .text 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(unordsf2.o)
- .data 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(unordsf2.o)
- .bss 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(unordsf2.o)
+ 0x0000000000000000 0xa /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(gesf2.o)
+ .text 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(mulsf3.o)
+ .data 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(mulsf3.o)
+ .bss 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(mulsf3.o)
+ .text 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(mulsf3x.o)
+ .data 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(mulsf3x.o)
+ .bss 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(mulsf3x.o)
+ .text 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(unordsf2.o)
+ .data 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(unordsf2.o)
+ .bss 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(unordsf2.o)
.text.avr-libc.fplib
- 0x0000000000000000 0xa /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(unordsf2.o)
- .text 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(malloc.o)
- .data 0x0000000000000000 0x6 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(malloc.o)
- .bss 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(malloc.o)
+ 0x0000000000000000 0xa /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(unordsf2.o)
+ .text 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(malloc.o)
+ .data 0x0000000000000000 0x6 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(malloc.o)
+ .bss 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(malloc.o)
.text.avr-libc
- 0x0000000000000000 0x24a /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(malloc.o)
- .comment 0x0000000000000000 0x12 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(malloc.o)
- COMMON 0x0000000000000000 0x4 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(malloc.o)
- .text 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(rand.o)
- .bss 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(rand.o)
- .text 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(random.o)
- .data 0x0000000000000000 0x4 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(random.o)
- .bss 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(random.o)
+ 0x0000000000000000 0x242 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(malloc.o)
+ .comment 0x0000000000000000 0x12 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(malloc.o)
+ COMMON 0x0000000000000000 0x4 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(malloc.o)
+ .text 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(random.o)
+ .data 0x0000000000000000 0x4 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(random.o)
+ .bss 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(random.o)
.text.avr-libc
- 0x0000000000000000 0x148 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(random.o)
- .comment 0x0000000000000000 0x12 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(random.o)
- .text 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(realloc.o)
- .data 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(realloc.o)
- .bss 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(realloc.o)
+ 0x0000000000000000 0x144 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(random.o)
+ .comment 0x0000000000000000 0x12 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(random.o)
+ .text 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(realloc.o)
+ .data 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(realloc.o)
+ .bss 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(realloc.o)
.text.avr-libc
- 0x0000000000000000 0x17a /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(realloc.o)
- .comment 0x0000000000000000 0x12 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(realloc.o)
- .text 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(atol.o)
- .data 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(atol.o)
- .bss 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(atol.o)
+ 0x0000000000000000 0x18c /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(realloc.o)
+ .comment 0x0000000000000000 0x12 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(realloc.o)
+ .text 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(atol.o)
+ .data 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(atol.o)
+ .bss 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(atol.o)
.text.avr-libc
- 0x0000000000000000 0x4e /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(atol.o)
- .text 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(isspace.o)
- .data 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(isspace.o)
- .bss 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(isspace.o)
+ 0x0000000000000000 0x4e /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(atol.o)
+ .text 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(isspace.o)
+ .data 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(isspace.o)
+ .bss 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(isspace.o)
.text.avr-libc
- 0x0000000000000000 0x12 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(isspace.o)
- .text 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(tolower.o)
- .data 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(tolower.o)
- .bss 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(tolower.o)
+ 0x0000000000000000 0x12 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(isspace.o)
+ .text 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(tolower.o)
+ .data 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(tolower.o)
+ .bss 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(tolower.o)
.text.avr-libc
- 0x0000000000000000 0x10 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(tolower.o)
- .text 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(toupper.o)
- .data 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(toupper.o)
- .bss 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(toupper.o)
+ 0x0000000000000000 0x10 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(tolower.o)
+ .text 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(toupper.o)
+ .data 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(toupper.o)
+ .bss 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(toupper.o)
.text.avr-libc
- 0x0000000000000000 0x10 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(toupper.o)
- .text 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(memcpy.o)
- .data 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(memcpy.o)
- .bss 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(memcpy.o)
+ 0x0000000000000000 0x10 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(toupper.o)
+ .text 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(memcpy.o)
+ .data 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(memcpy.o)
+ .bss 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(memcpy.o)
.text.avr-libc
- 0x0000000000000000 0x12 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(memcpy.o)
- .text 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(memmove.o)
- .data 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(memmove.o)
- .bss 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(memmove.o)
+ 0x0000000000000000 0x12 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(memcpy.o)
+ .text 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(memmove.o)
+ .data 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(memmove.o)
+ .bss 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(memmove.o)
.text.avr-libc
- 0x0000000000000000 0x24 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(memmove.o)
- .text 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(memset.o)
- .data 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(memset.o)
- .bss 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(memset.o)
- .text 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(strchr.o)
- .data 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(strchr.o)
- .bss 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(strchr.o)
+ 0x0000000000000000 0x24 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(memmove.o)
+ .text 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(memset.o)
+ .data 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(memset.o)
+ .bss 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(memset.o)
.text.avr-libc
- 0x0000000000000000 0x16 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(strchr.o)
- .text 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(strcmp.o)
- .data 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(strcmp.o)
- .bss 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(strcmp.o)
+ 0x0000000000000000 0xe /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(memset.o)
+ .text 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(strchr.o)
+ .data 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(strchr.o)
+ .bss 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(strchr.o)
.text.avr-libc
- 0x0000000000000000 0x12 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(strcmp.o)
- .text 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(strcpy.o)
- .data 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(strcpy.o)
- .bss 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(strcpy.o)
+ 0x0000000000000000 0x16 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(strchr.o)
+ .text 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(strcmp.o)
+ .data 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(strcmp.o)
+ .bss 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(strcmp.o)
.text.avr-libc
- 0x0000000000000000 0xe /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(strcpy.o)
- .text 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(strncmp.o)
- .data 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(strncmp.o)
- .bss 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(strncmp.o)
+ 0x0000000000000000 0x12 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(strcmp.o)
+ .text 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(strcpy.o)
+ .data 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(strcpy.o)
+ .bss 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(strcpy.o)
.text.avr-libc
- 0x0000000000000000 0x1c /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(strncmp.o)
- .text 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(strncpy.o)
- .data 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(strncpy.o)
- .bss 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(strncpy.o)
+ 0x0000000000000000 0xe /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(strcpy.o)
+ .text 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(strncmp.o)
+ .data 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(strncmp.o)
+ .bss 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(strncmp.o)
.text.avr-libc
- 0x0000000000000000 0x1e /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(strncpy.o)
- .text 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(strrchr.o)
- .data 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(strrchr.o)
- .bss 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(strrchr.o)
+ 0x0000000000000000 0x1c /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(strncmp.o)
+ .text 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(strncpy.o)
+ .data 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(strncpy.o)
+ .bss 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(strncpy.o)
+ .text 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(strrchr.o)
+ .data 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(strrchr.o)
+ .bss 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(strrchr.o)
.text.avr-libc
- 0x0000000000000000 0x16 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(strrchr.o)
- .text 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(strstr.o)
- .data 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(strstr.o)
- .bss 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(strstr.o)
+ 0x0000000000000000 0x16 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(strrchr.o)
+ .text 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(strstr.o)
+ .data 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(strstr.o)
+ .bss 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(strstr.o)
.text.avr-libc
- 0x0000000000000000 0x34 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(strstr.o)
- .text 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(itoa.o)
- .data 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(itoa.o)
- .bss 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(itoa.o)
+ 0x0000000000000000 0x34 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(strstr.o)
+ .text 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(itoa.o)
+ .data 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(itoa.o)
+ .bss 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(itoa.o)
.text.avr-libc
- 0x0000000000000000 0x16 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(itoa.o)
- .text 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(itoa_ncheck.o)
- .data 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(itoa_ncheck.o)
- .bss 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(itoa_ncheck.o)
+ 0x0000000000000000 0x16 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(itoa.o)
+ .text 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(itoa_ncheck.o)
+ .data 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(itoa_ncheck.o)
+ .bss 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(itoa_ncheck.o)
.text.avr-libc
- 0x0000000000000000 0x16 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(itoa_ncheck.o)
- .text 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(ltoa.o)
- .data 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(ltoa.o)
- .bss 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(ltoa.o)
+ 0x0000000000000000 0x16 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(itoa_ncheck.o)
+ .text 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(ltoa.o)
+ .data 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(ltoa.o)
+ .bss 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(ltoa.o)
.text.avr-libc
- 0x0000000000000000 0x16 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(ltoa.o)
- .text 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(ltoa_ncheck.o)
- .data 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(ltoa_ncheck.o)
- .bss 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(ltoa_ncheck.o)
+ 0x0000000000000000 0x16 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(ltoa.o)
+ .text 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(ltoa_ncheck.o)
+ .data 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(ltoa_ncheck.o)
+ .bss 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(ltoa_ncheck.o)
.text.avr-libc
- 0x0000000000000000 0x1e /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(ltoa_ncheck.o)
- .text 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(mulsi10.o)
- .data 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(mulsi10.o)
- .bss 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(mulsi10.o)
+ 0x0000000000000000 0x1e /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(ltoa_ncheck.o)
+ .text 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(mulsi10.o)
+ .data 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(mulsi10.o)
+ .bss 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(mulsi10.o)
.text.avr-libc
- 0x0000000000000000 0x2a /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(mulsi10.o)
- .text 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(ultoa.o)
- .data 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(ultoa.o)
- .bss 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(ultoa.o)
+ 0x0000000000000000 0x2a /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(mulsi10.o)
+ .text 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(ultoa.o)
+ .data 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(ultoa.o)
+ .bss 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(ultoa.o)
.text.avr-libc
- 0x0000000000000000 0x16 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(ultoa.o)
- .text 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(ultoa_ncheck.o)
- .data 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(ultoa_ncheck.o)
- .bss 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(ultoa_ncheck.o)
+ 0x0000000000000000 0x16 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(ultoa.o)
+ .text 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(ultoa_ncheck.o)
+ .data 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(ultoa_ncheck.o)
+ .bss 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(ultoa_ncheck.o)
.text.avr-libc
- 0x0000000000000000 0x44 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(ultoa_ncheck.o)
- .text 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(utoa.o)
- .data 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(utoa.o)
- .bss 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(utoa.o)
+ 0x0000000000000000 0x44 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(ultoa_ncheck.o)
+ .text 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(utoa.o)
+ .data 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(utoa.o)
+ .bss 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(utoa.o)
.text.avr-libc
- 0x0000000000000000 0x16 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(utoa.o)
- .text 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(utoa_ncheck.o)
- .data 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(utoa_ncheck.o)
- .bss 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(utoa_ncheck.o)
+ 0x0000000000000000 0x16 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(utoa.o)
+ .text 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(utoa_ncheck.o)
+ .data 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(utoa_ncheck.o)
+ .bss 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(utoa_ncheck.o)
.text.avr-libc
- 0x0000000000000000 0x34 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(utoa_ncheck.o)
- .text 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(cty_isfalse.o)
- .data 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(cty_isfalse.o)
- .bss 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(cty_isfalse.o)
+ 0x0000000000000000 0x34 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(utoa_ncheck.o)
+ .text 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(cty_isfalse.o)
+ .data 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(cty_isfalse.o)
+ .bss 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(cty_isfalse.o)
.text.avr-libc
- 0x0000000000000000 0x6 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(cty_isfalse.o)
- .text 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(strrev.o)
- .data 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(strrev.o)
- .bss 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(strrev.o)
+ 0x0000000000000000 0x6 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(cty_isfalse.o)
+ .text 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(strrev.o)
+ .data 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(strrev.o)
+ .bss 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(strrev.o)
.text.avr-libc
- 0x0000000000000000 0x20 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(strrev.o)
- .text 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_mulshisi3.o)
- .data 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_mulshisi3.o)
- .bss 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_mulshisi3.o)
+ 0x0000000000000000 0x20 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(strrev.o)
+ .text 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_mulshisi3.o)
+ .data 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_mulshisi3.o)
+ .bss 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_mulshisi3.o)
+ .text.libgcc.mul
+ 0x0000000000000000 0x10 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_mulshisi3.o)
.text.libgcc.div
- 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_mulshisi3.o)
- .text.libgcc 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_mulshisi3.o)
+ 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_mulshisi3.o)
+ .text.libgcc 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_mulshisi3.o)
.text.libgcc.prologue
- 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_mulshisi3.o)
+ 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_mulshisi3.o)
.text.libgcc.builtins
- 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_mulshisi3.o)
+ 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_mulshisi3.o)
.text.libgcc.fmul
- 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_mulshisi3.o)
+ 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_mulshisi3.o)
.text.libgcc.fixed
- 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_mulshisi3.o)
- .text 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_prologue.o)
- .data 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_prologue.o)
- .bss 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_prologue.o)
+ 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_mulshisi3.o)
+ .text 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_prologue.o)
+ .data 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_prologue.o)
+ .bss 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_prologue.o)
.text.libgcc.mul
- 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_prologue.o)
+ 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_prologue.o)
.text.libgcc.div
- 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_prologue.o)
- .text.libgcc 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_prologue.o)
+ 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_prologue.o)
+ .text.libgcc 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_prologue.o)
.text.libgcc.prologue
- 0x0000000000000000 0x38 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_prologue.o)
+ 0x0000000000000000 0x38 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_prologue.o)
.text.libgcc.builtins
- 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_prologue.o)
+ 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_prologue.o)
.text.libgcc.fmul
- 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_prologue.o)
+ 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_prologue.o)
.text.libgcc.fixed
- 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_prologue.o)
- .debug_line 0x0000000000000000 0xfd /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_prologue.o)
- .debug_info 0x0000000000000000 0x26 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_prologue.o)
- .debug_abbrev 0x0000000000000000 0x14 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_prologue.o)
- .debug_aranges
- 0x0000000000000000 0x20 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_prologue.o)
- .debug_str 0x0000000000000000 0x65 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_prologue.o)
- .text 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_epilogue.o)
- .data 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_epilogue.o)
- .bss 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_epilogue.o)
+ 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_prologue.o)
+ .text 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_epilogue.o)
+ .data 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_epilogue.o)
+ .bss 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_epilogue.o)
.text.libgcc.mul
- 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_epilogue.o)
+ 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_epilogue.o)
.text.libgcc.div
- 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_epilogue.o)
- .text.libgcc 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_epilogue.o)
+ 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_epilogue.o)
+ .text.libgcc 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_epilogue.o)
.text.libgcc.prologue
- 0x0000000000000000 0x36 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_epilogue.o)
+ 0x0000000000000000 0x36 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_epilogue.o)
.text.libgcc.builtins
- 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_epilogue.o)
+ 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_epilogue.o)
.text.libgcc.fmul
- 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_epilogue.o)
+ 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_epilogue.o)
.text.libgcc.fixed
- 0x0000000000000000 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_epilogue.o)
- .debug_line 0x0000000000000000 0xf7 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_epilogue.o)
- .debug_info 0x0000000000000000 0x26 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_epilogue.o)
- .debug_abbrev 0x0000000000000000 0x14 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_epilogue.o)
- .debug_aranges
- 0x0000000000000000 0x20 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_epilogue.o)
- .debug_str 0x0000000000000000 0x65 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_epilogue.o)
+ 0x0000000000000000 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_epilogue.o)
Memory Configuration
@@ -1153,7 +1023,7 @@ Name Origin Length Attributes
text 0x0000000000000000 0x0000000000020000 xr
data 0x0000000000800060 0x000000000000ffa0 rw !x
eeprom 0x0000000000810000 0x0000000000010000 rw !x
-fuse 0x0000000000820000 0x0000000000000400 rw !x
+fuse 0x0000000000820000 0x0000000000000003 rw !x
lock 0x0000000000830000 0x0000000000000400 rw !x
signature 0x0000000000840000 0x0000000000000400 rw !x
user_signatures 0x0000000000850000 0x0000000000000400 rw !x
@@ -1162,30 +1032,30 @@ user_signatures 0x0000000000850000 0x0000000000000400 rw !x
Linker script and memory map
Address of section .data set to 0x800100
-LOAD /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/crtatmega328p.o
+LOAD /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/crtatmega328p.o
LOAD Obj/main.o
-LOAD Obj/Gameplay.o
+LOAD Obj/Game.o
LOAD Obj/System.o
-LOAD Obj/Gfx.o
-LOAD Obj/Pad.o
+LOAD Obj/HumanPlayer.o
+LOAD Obj/Sprite.o
LOAD Obj/Player.o
LOAD Obj/Camera.o
LOAD Obj/Unit.o
LOAD Obj/Menu.o
LOAD ../lib/libgamebuino.a
LOAD ../lib/libarduino.a
-LOAD /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a
-LOAD /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a
+LOAD /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a
+LOAD /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a
START GROUP
-LOAD /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a
-LOAD /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a
-LOAD /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a
-LOAD /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libatmega328p.a
+LOAD /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a
+LOAD /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a
+LOAD /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a
+LOAD /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libatmega328p.a
END GROUP
0x0000000000020000 __TEXT_REGION_LENGTH__ = DEFINED (__TEXT_REGION_LENGTH__)?__TEXT_REGION_LENGTH__:0x20000
0x000000000000ffa0 __DATA_REGION_LENGTH__ = DEFINED (__DATA_REGION_LENGTH__)?__DATA_REGION_LENGTH__:0xffa0
0x0000000000010000 __EEPROM_REGION_LENGTH__ = DEFINED (__EEPROM_REGION_LENGTH__)?__EEPROM_REGION_LENGTH__:0x10000
- 0x0000000000000400 __FUSE_REGION_LENGTH__ = DEFINED (__FUSE_REGION_LENGTH__)?__FUSE_REGION_LENGTH__:0x400
+ [0x0000000000000003] __FUSE_REGION_LENGTH__ = DEFINED (__FUSE_REGION_LENGTH__)?__FUSE_REGION_LENGTH__:0x400
0x0000000000000400 __LOCK_REGION_LENGTH__ = DEFINED (__LOCK_REGION_LENGTH__)?__LOCK_REGION_LENGTH__:0x400
0x0000000000000400 __SIGNATURE_REGION_LENGTH__ = DEFINED (__SIGNATURE_REGION_LENGTH__)?__SIGNATURE_REGION_LENGTH__:0x400
0x0000000000000400 __USER_SIGNATURE_REGION_LENGTH__ = DEFINED (__USER_SIGNATURE_REGION_LENGTH__)?__USER_SIGNATURE_REGION_LENGTH__:0x400
@@ -1280,9 +1150,9 @@ END GROUP
.rela.plt
*(.rela.plt)
-.text 0x0000000000000000 0x513a
+.text 0x0000000000000000 0x2f8c
*(.vectors)
- .vectors 0x0000000000000000 0x68 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/crtatmega328p.o
+ .vectors 0x0000000000000000 0x68 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/crtatmega328p.o
0x0000000000000000 __vectors
0x0000000000000000 __vector_default
*(.vectors)
@@ -1296,775 +1166,520 @@ END GROUP
*libprintf_flt.a:*(.progmem.data)
*libc.a:*(.progmem.data)
*(.progmem*)
- .progmem.data._ZZ4mainE3__c
- 0x0000000000000068 0xf Obj/main.o
- .progmem.data._ZL16PauseMenuOptions
- 0x0000000000000077 0x4 Obj/Gameplay.o
- .progmem.data._ZL17PauseMenuOption_1
- 0x000000000000007b 0x5 Obj/Gameplay.o
- .progmem.data._ZL17PauseMenuOption_0
- 0x0000000000000080 0x7 Obj/Gameplay.o
- .progmem.data._ZL12MouseSprData
- 0x0000000000000087 0xa Obj/Gameplay.o
- .progmem.data._ZZN6Player20ActionCreateBuildingE8t_unitidE3__c
- 0x0000000000000091 0x12 Obj/Player.o
- .progmem.data._ZZN6Player16ActionCreateUnitEP6t_Unit8t_unitidE3__c
- 0x00000000000000a3 0x16 Obj/Player.o
- .progmem.data._ZZN6Player10createUnitE8t_unitid16t_CollisionBlockE3__c_0
- 0x00000000000000b9 0xd Obj/Player.o
- .progmem.data._ZZN6Player10createUnitE8t_unitid16t_CollisionBlockE3__c
- 0x00000000000000c6 0x12 Obj/Player.o
- .progmem.data.TownCentreShadowSprData
- 0x00000000000000d8 0x4a Obj/Unit.o
- 0x00000000000000d8 TownCentreShadowSprData
- .progmem.data.TownCentreSprData
- 0x0000000000000122 0x4a Obj/Unit.o
- 0x0000000000000122 TownCentreSprData
- .progmem.data.BarracksShadowSpr_Data
- 0x000000000000016c 0x4a Obj/Unit.o
- 0x000000000000016c BarracksShadowSpr_Data
- .progmem.data.BarracksSpr_Data
- 0x00000000000001b6 0x4a Obj/Unit.o
- 0x00000000000001b6 BarracksSpr_Data
- .progmem.data.SoldierSprData_Walking
- 0x0000000000000200 0xa Obj/Unit.o
- 0x0000000000000200 SoldierSprData_Walking
- .progmem.data.SoldierSprData
- 0x000000000000020a 0xa Obj/Unit.o
- 0x000000000000020a SoldierSprData
- .progmem.data.Peasant_SprData
- 0x0000000000000214 0xa Obj/Unit.o
- 0x0000000000000214 Peasant_SprData
- .progmem.data.Peasant_Walking_SprData
- 0x000000000000021e 0xa Obj/Unit.o
- 0x000000000000021e Peasant_Walking_SprData
- .progmem.data._ZL15MainMenuOptions
- 0x0000000000000228 0x8 Obj/Menu.o
- .progmem.data._ZL16MainMenuOption_3
- 0x0000000000000230 0x5 Obj/Menu.o
- .progmem.data._ZL16MainMenuOption_2
- 0x0000000000000235 0x8 Obj/Menu.o
- .progmem.data._ZL16MainMenuOption_1
- 0x000000000000023d 0x11 Obj/Menu.o
- .progmem.data._ZL16MainMenuOption_0
- 0x000000000000024e 0x13 Obj/Menu.o
- .progmem.data.font3x3
- 0x0000000000000261 0x182 ../lib/libgamebuino.a(font3x3.o)
- 0x0000000000000261 font3x3
+ .progmem.data._ZZL9GamePausevE20astrPauseMenuOptions
+ 0x0000000000000068 0x4 Obj/Game.o
+ .progmem.data._ZZ8MainMenuvE20strMainMenuOptions_0
+ 0x000000000000006c 0x13 Obj/Menu.o
+ .progmem.data._ZZ8MainMenuvE20strMainMenuOptions_1
+ 0x000000000000007f 0x11 Obj/Menu.o
+ .progmem.data._ZZ8MainMenuvE20strMainMenuOptions_2
+ 0x0000000000000090 0x8 Obj/Menu.o
+ .progmem.data._ZZ8MainMenuvE19astrMainMenuOptions
+ 0x0000000000000098 0x6 Obj/Menu.o
+ .progmem.data._ZZ8MainMenuvE3__c
+ 0x000000000000009e 0xf Obj/Menu.o
.progmem.data.font3x5
- 0x00000000000003e3 0x182 ../lib/libgamebuino.a(font3x5.o)
- 0x00000000000003e3 font3x5
+ 0x00000000000000ad 0x182 ../lib/libgamebuino.a(font3x5.o)
+ 0x00000000000000ad font3x5
.progmem.data._ZZN9Gamebuino10changeGameEvE3__c_0
- 0x0000000000000565 0x25 ../lib/libgamebuino.a(Gamebuino.o)
+ 0x000000000000022f 0x25 ../lib/libgamebuino.a(Gamebuino.o)
.progmem.data._ZZN9Gamebuino10changeGameEvE3__c
- 0x000000000000058a 0x28 ../lib/libgamebuino.a(Gamebuino.o)
+ 0x0000000000000254 0x28 ../lib/libgamebuino.a(Gamebuino.o)
.progmem.data._ZZN9Gamebuino14displayBatteryEvE3__c_1
- 0x00000000000005b2 0xb ../lib/libgamebuino.a(Gamebuino.o)
+ 0x000000000000027c 0xb ../lib/libgamebuino.a(Gamebuino.o)
.progmem.data._ZZN9Gamebuino14displayBatteryEvE3__c_0
- 0x00000000000005bd 0x15 ../lib/libgamebuino.a(Gamebuino.o)
+ 0x0000000000000287 0x15 ../lib/libgamebuino.a(Gamebuino.o)
.progmem.data._ZZN9Gamebuino14displayBatteryEvE3__c
- 0x00000000000005d2 0xe ../lib/libgamebuino.a(Gamebuino.o)
+ 0x000000000000029c 0xe ../lib/libgamebuino.a(Gamebuino.o)
.progmem.data._ZZN9Gamebuino11titleScreenEPK19__FlashStringHelperPKhE3__c_3
- 0x00000000000005e0 0x4 ../lib/libgamebuino.a(Gamebuino.o)
+ 0x00000000000002aa 0x4 ../lib/libgamebuino.a(Gamebuino.o)
.progmem.data._ZZN9Gamebuino11titleScreenEPK19__FlashStringHelperPKhE3__c_2
- 0x00000000000005e4 0x4 ../lib/libgamebuino.a(Gamebuino.o)
+ 0x00000000000002ae 0x4 ../lib/libgamebuino.a(Gamebuino.o)
.progmem.data._ZZN9Gamebuino11titleScreenEPK19__FlashStringHelperPKhE3__c_1
- 0x00000000000005e8 0x4 ../lib/libgamebuino.a(Gamebuino.o)
+ 0x00000000000002b2 0x4 ../lib/libgamebuino.a(Gamebuino.o)
.progmem.data._ZZN9Gamebuino11titleScreenEPK19__FlashStringHelperPKhE3__c_0
- 0x00000000000005ec 0x4 ../lib/libgamebuino.a(Gamebuino.o)
+ 0x00000000000002b6 0x4 ../lib/libgamebuino.a(Gamebuino.o)
.progmem.data._ZZN9Gamebuino11titleScreenEPK19__FlashStringHelperPKhE3__c
- 0x00000000000005f0 0x4 ../lib/libgamebuino.a(Gamebuino.o)
+ 0x00000000000002ba 0x4 ../lib/libgamebuino.a(Gamebuino.o)
.progmem.data._ZL13gamebuinoLogo
- 0x00000000000005f4 0x70 ../lib/libgamebuino.a(Gamebuino.o)
+ 0x00000000000002be 0x70 ../lib/libgamebuino.a(Gamebuino.o)
.progmem.data._ZL12startupSound
- 0x0000000000000664 0xe ../lib/libgamebuino.a(Gamebuino.o)
+ 0x000000000000032e 0xe ../lib/libgamebuino.a(Gamebuino.o)
.progmem.data._ZL12_halfPeriods
- 0x0000000000000672 0x3b ../lib/libgamebuino.a(Sound.o)
+ 0x000000000000033c 0x3b ../lib/libgamebuino.a(Sound.o)
.progmem.data._ZL9playTickP
- 0x00000000000006ad 0x6 ../lib/libgamebuino.a(Sound.o)
+ 0x0000000000000377 0x6 ../lib/libgamebuino.a(Sound.o)
.progmem.data._ZL17playCancelPattern
- 0x00000000000006b3 0x8 ../lib/libgamebuino.a(Sound.o)
+ 0x000000000000037d 0x8 ../lib/libgamebuino.a(Sound.o)
.progmem.data._ZL13playOKPattern
- 0x00000000000006bb 0x8 ../lib/libgamebuino.a(Sound.o)
+ 0x0000000000000385 0x8 ../lib/libgamebuino.a(Sound.o)
.progmem.data._ZL18defaultInstruments
- 0x00000000000006c3 0x4 ../lib/libgamebuino.a(Sound.o)
+ 0x000000000000038d 0x4 ../lib/libgamebuino.a(Sound.o)
.progmem.data._ZL15noiseInstrument
- 0x00000000000006c7 0x4 ../lib/libgamebuino.a(Sound.o)
+ 0x0000000000000391 0x4 ../lib/libgamebuino.a(Sound.o)
.progmem.data._ZL20squareWaveInstrument
- 0x00000000000006cb 0x4 ../lib/libgamebuino.a(Sound.o)
+ 0x0000000000000395 0x4 ../lib/libgamebuino.a(Sound.o)
.progmem.data.digital_pin_to_timer_PGM
- 0x00000000000006cf 0x14 ../lib/libarduino.a(wiring_digital.o)
- 0x00000000000006cf digital_pin_to_timer_PGM
+ 0x0000000000000399 0x14 ../lib/libarduino.a(wiring_digital.o)
+ 0x0000000000000399 digital_pin_to_timer_PGM
.progmem.data.digital_pin_to_bit_mask_PGM
- 0x00000000000006e3 0x14 ../lib/libarduino.a(wiring_digital.o)
- 0x00000000000006e3 digital_pin_to_bit_mask_PGM
+ 0x00000000000003ad 0x14 ../lib/libarduino.a(wiring_digital.o)
+ 0x00000000000003ad digital_pin_to_bit_mask_PGM
.progmem.data.digital_pin_to_port_PGM
- 0x00000000000006f7 0x14 ../lib/libarduino.a(wiring_digital.o)
- 0x00000000000006f7 digital_pin_to_port_PGM
+ 0x00000000000003c1 0x14 ../lib/libarduino.a(wiring_digital.o)
+ 0x00000000000003c1 digital_pin_to_port_PGM
.progmem.data.port_to_input_PGM
- 0x000000000000070b 0xa ../lib/libarduino.a(wiring_digital.o)
- 0x000000000000070b port_to_input_PGM
+ 0x00000000000003d5 0xa ../lib/libarduino.a(wiring_digital.o)
+ 0x00000000000003d5 port_to_input_PGM
.progmem.data.port_to_output_PGM
- 0x0000000000000715 0xa ../lib/libarduino.a(wiring_digital.o)
- 0x0000000000000715 port_to_output_PGM
+ 0x00000000000003df 0xa ../lib/libarduino.a(wiring_digital.o)
+ 0x00000000000003df port_to_output_PGM
.progmem.data.port_to_mode_PGM
- 0x000000000000071f 0xa ../lib/libarduino.a(wiring_digital.o)
- 0x000000000000071f port_to_mode_PGM
- 0x000000000000072a . = ALIGN (0x2)
- *fill* 0x0000000000000729 0x1
+ 0x00000000000003e9 0xa ../lib/libarduino.a(wiring_digital.o)
+ 0x00000000000003e9 port_to_mode_PGM
+ 0x00000000000003f4 . = ALIGN (0x2)
+ *fill* 0x00000000000003f3 0x1
+ *(.jumptables)
+ *(.jumptables*)
*(.lowtext)
*(.lowtext*)
- 0x000000000000072a __ctors_start = .
+ 0x00000000000003f4 __ctors_start = .
*(.ctors)
- .ctors 0x000000000000072a 0x2 Obj/main.o
- .ctors 0x000000000000072c 0x2 Obj/Gameplay.o
- 0x000000000000072e __ctors_end = .
- 0x000000000000072e __dtors_start = .
+ .ctors 0x00000000000003f4 0x2 Obj/System.o
+ 0x00000000000003f6 __ctors_end = .
+ 0x00000000000003f6 __dtors_start = .
*(.dtors)
- .dtors 0x000000000000072e 0x2 Obj/Gameplay.o
- 0x0000000000000730 __dtors_end = .
+ 0x00000000000003f6 __dtors_end = .
SORT(*)(.ctors)
SORT(*)(.dtors)
*(.init0)
- .init0 0x0000000000000730 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/crtatmega328p.o
- 0x0000000000000730 __init
+ .init0 0x00000000000003f6 0x0 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/crtatmega328p.o
+ 0x00000000000003f6 __init
*(.init0)
*(.init1)
*(.init1)
*(.init2)
- .init2 0x0000000000000730 0xc /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/crtatmega328p.o
+ .init2 0x00000000000003f6 0xc /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/crtatmega328p.o
*(.init2)
*(.init3)
*(.init3)
*(.init4)
- .init4 0x000000000000073c 0x16 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_copy_data.o)
- 0x000000000000073c __do_copy_data
- .init4 0x0000000000000752 0x10 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_clear_bss.o)
- 0x0000000000000752 __do_clear_bss
+ .init4 0x0000000000000402 0x16 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_copy_data.o)
+ 0x0000000000000402 __do_copy_data
+ .init4 0x0000000000000418 0x10 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_clear_bss.o)
+ 0x0000000000000418 __do_clear_bss
*(.init4)
*(.init5)
*(.init5)
*(.init6)
- .init6 0x0000000000000762 0x16 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_ctors.o)
- 0x0000000000000762 __do_global_ctors
+ .init6 0x0000000000000428 0x16 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_ctors.o)
+ 0x0000000000000428 __do_global_ctors
*(.init6)
*(.init7)
*(.init7)
*(.init8)
*(.init8)
*(.init9)
- .init9 0x0000000000000778 0x8 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/crtatmega328p.o
+ .init9 0x000000000000043e 0x8 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/crtatmega328p.o
*(.init9)
*(.text)
- .text 0x0000000000000780 0x4 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/crtatmega328p.o
- 0x0000000000000780 __vector_22
- 0x0000000000000780 __vector_1
- 0x0000000000000780 __vector_24
- 0x0000000000000780 __vector_12
- 0x0000000000000780 __bad_interrupt
- 0x0000000000000780 __vector_6
- 0x0000000000000780 __vector_3
- 0x0000000000000780 __vector_23
- 0x0000000000000780 __vector_25
- 0x0000000000000780 __vector_13
- 0x0000000000000780 __vector_17
- 0x0000000000000780 __vector_19
- 0x0000000000000780 __vector_7
- 0x0000000000000780 __vector_5
- 0x0000000000000780 __vector_4
- 0x0000000000000780 __vector_9
- 0x0000000000000780 __vector_2
- 0x0000000000000780 __vector_21
- 0x0000000000000780 __vector_15
- 0x0000000000000780 __vector_8
- 0x0000000000000780 __vector_14
- 0x0000000000000780 __vector_10
- 0x0000000000000780 __vector_18
- 0x0000000000000780 __vector_20
- 0x0000000000000784 . = ALIGN (0x2)
+ .text 0x0000000000000446 0x4 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/crtatmega328p.o
+ 0x0000000000000446 __vector_22
+ 0x0000000000000446 __vector_1
+ 0x0000000000000446 __vector_24
+ 0x0000000000000446 __vector_12
+ 0x0000000000000446 __bad_interrupt
+ 0x0000000000000446 __vector_6
+ 0x0000000000000446 __vector_3
+ 0x0000000000000446 __vector_23
+ 0x0000000000000446 __vector_25
+ 0x0000000000000446 __vector_13
+ 0x0000000000000446 __vector_17
+ 0x0000000000000446 __vector_19
+ 0x0000000000000446 __vector_7
+ 0x0000000000000446 __vector_5
+ 0x0000000000000446 __vector_4
+ 0x0000000000000446 __vector_9
+ 0x0000000000000446 __vector_2
+ 0x0000000000000446 __vector_21
+ 0x0000000000000446 __vector_15
+ 0x0000000000000446 __vector_8
+ 0x0000000000000446 __vector_14
+ 0x0000000000000446 __vector_10
+ 0x0000000000000446 __vector_18
+ 0x0000000000000446 __vector_20
+ 0x000000000000044a . = ALIGN (0x2)
*(.text.*)
.text.startup.main
- 0x0000000000000784 0x22 Obj/main.o
- 0x0000000000000784 main
+ 0x000000000000044a 0xa Obj/main.o
+ 0x000000000000044a main
+ .text._Z4GameRK11tGameConfig
+ 0x0000000000000454 0x2e Obj/Game.o
+ 0x0000000000000454 _Z4GameRK11tGameConfig
+ .text._Z10SystemInitv
+ 0x0000000000000482 0xc Obj/System.o
+ 0x0000000000000482 _Z10SystemInitv
.text.startup._GLOBAL__sub_I_gb
- 0x00000000000007a6 0x16 Obj/main.o
- .text._Z8GameInitv
- 0x00000000000007bc 0x8a Obj/Gameplay.o
- 0x00000000000007bc _Z8GameInitv
- .text.startup._GLOBAL__sub_I_GamePlayers
- 0x0000000000000846 0x8 Obj/Gameplay.o
- .text.exit._GLOBAL__sub_D_GamePlayers
- 0x000000000000084e 0x8 Obj/Gameplay.o
- .text.SystemSetRandSeed
- 0x0000000000000856 0x38 Obj/System.o
- 0x0000000000000856 SystemSetRandSeed
- .text.SystemIncreaseGlobalTimer
- 0x000000000000088e 0x48 Obj/System.o
- 0x000000000000088e SystemIncreaseGlobalTimer
- .text.SystemRand
- 0x00000000000008d6 0x56 Obj/System.o
- 0x00000000000008d6 SystemRand
- .text.SystemResetTimers
- 0x000000000000092c 0x28 Obj/System.o
- 0x000000000000092c SystemResetTimers
- .text.SystemInit
- 0x0000000000000954 0x2e Obj/System.o
- 0x0000000000000954 SystemInit
- .text.SystemCollisionCheck
- 0x0000000000000982 0x60 Obj/System.o
- 0x0000000000000982 SystemCollisionCheck
- .text.Systemitoa
- 0x00000000000009e2 0xb2 Obj/System.o
- 0x00000000000009e2 Systemitoa
- .text.SystemGetHyp
- 0x0000000000000a94 0x28 Obj/System.o
- 0x0000000000000a94 SystemGetHyp
- .text._ZL21GfxIsInsideScreenAreaaahh
- 0x0000000000000abc 0x2a Obj/Gfx.o
- .text.GfxInit 0x0000000000000ae6 0x10 Obj/Gfx.o
- 0x0000000000000ae6 GfxInit
- .text.GfxRefreshNeeded
- 0x0000000000000af6 0x14 Obj/Gfx.o
- 0x0000000000000af6 GfxRefreshNeeded
- .text.GfxClearScreen
- 0x0000000000000b0a 0x12 Obj/Gfx.o
- 0x0000000000000b0a GfxClearScreen
- .text.GfxIsSpriteInsideScreenArea
- 0x0000000000000b1c 0xe Obj/Gfx.o
- 0x0000000000000b1c GfxIsSpriteInsideScreenArea
- .text.GfxDrawSprite
- 0x0000000000000b2a 0x5c Obj/Gfx.o
- 0x0000000000000b2a GfxDrawSprite
- .text.GfxGetWidthFromSpriteData
- 0x0000000000000b86 0x6 Obj/Gfx.o
- 0x0000000000000b86 GfxGetWidthFromSpriteData
- .text.GfxGetHeightFromSpriteData
- 0x0000000000000b8c 0x8 Obj/Gfx.o
- 0x0000000000000b8c GfxGetHeightFromSpriteData
- .text.GfxPrintText_Flash
- 0x0000000000000b94 0xc Obj/Gfx.o
- 0x0000000000000b94 GfxPrintText_Flash
- .text.GfxPrintTextFont
- 0x0000000000000ba0 0x5a Obj/Gfx.o
- 0x0000000000000ba0 GfxPrintTextFont
- .text.GfxDrawCircle
- 0x0000000000000bfa 0x58 Obj/Gfx.o
- 0x0000000000000bfa GfxDrawCircle
- .text.GfxDrawRectangle
- 0x0000000000000c52 0x5e Obj/Gfx.o
- 0x0000000000000c52 GfxDrawRectangle
- .text.GfxFillRectangle
- 0x0000000000000cb0 0x5e Obj/Gfx.o
- 0x0000000000000cb0 GfxFillRectangle
- .text.PadButtonReleased
- 0x0000000000000d0e 0x16 Obj/Pad.o
- 0x0000000000000d0e PadButtonReleased
- .text.PadButtonPressedFrames
- 0x0000000000000d24 0x1c Obj/Pad.o
- 0x0000000000000d24 PadButtonPressedFrames
- .text.PadButtonPressed
- 0x0000000000000d40 0x6 Obj/Pad.o
- 0x0000000000000d40 PadButtonPressed
- .text.PadDirectionKeyPressed
- 0x0000000000000d46 0x30 Obj/Pad.o
- 0x0000000000000d46 PadDirectionKeyPressed
- .text.PadAnyKeyPressed
- 0x0000000000000d76 0x20 Obj/Pad.o
- 0x0000000000000d76 PadAnyKeyPressed
- .text._ZN6PlayerC2Ev
- 0x0000000000000d96 0x2 Obj/Player.o
- 0x0000000000000d96 _ZN6PlayerC2Ev
- 0x0000000000000d96 _ZN6PlayerC1Ev
- .text._ZN6PlayerD2Ev
- 0x0000000000000d98 0x2 Obj/Player.o
- 0x0000000000000d98 _ZN6PlayerD2Ev
- 0x0000000000000d98 _ZN6PlayerD1Ev
- .text._ZN6Player10showHealthEh
- 0x0000000000000d9a 0x6a Obj/Player.o
- 0x0000000000000d9a _ZN6Player10showHealthEh
- .text._ZN6Player13getAliveUnitsEv
- 0x0000000000000e04 0x20 Obj/Player.o
- 0x0000000000000e04 _ZN6Player13getAliveUnitsEv
- .text._ZN6Player13ShowResourcesEv
- 0x0000000000000e24 0x11c Obj/Player.o
- 0x0000000000000e24 _ZN6Player13ShowResourcesEv
- .text._ZN6Player10createUnitE8t_unitid16t_CollisionBlock
- 0x0000000000000f40 0x172 Obj/Player.o
- 0x0000000000000f40 _ZN6Player10createUnitE8t_unitid16t_CollisionBlock
- .text._ZN6Player4InitEv
- 0x00000000000010b2 0x138 Obj/Player.o
- 0x00000000000010b2 _ZN6Player4InitEv
- .text._ZN6Player12GetCursorPosEv
- 0x00000000000011ea 0x58 Obj/Player.o
- 0x00000000000011ea _ZN6Player12GetCursorPosEv
- .text._ZN6Player21UnitBuildingSelectionEv
- 0x0000000000001242 0x12a Obj/Player.o
- 0x0000000000001242 _ZN6Player21UnitBuildingSelectionEv
- .text._ZN6Player14ButtonAPressedEv
- 0x000000000000136c 0x22 Obj/Player.o
- 0x000000000000136c _ZN6Player14ButtonAPressedEv
- .text._ZN6Player16ActionCreateUnitEP6t_Unit8t_unitid
- 0x000000000000138e 0x11e Obj/Player.o
- 0x000000000000138e _ZN6Player16ActionCreateUnitEP6t_Unit8t_unitid
- .text._ZN6Player20ActionCreateBuildingE8t_unitid
- 0x00000000000014ac 0x90 Obj/Player.o
- 0x00000000000014ac _ZN6Player20ActionCreateBuildingE8t_unitid
- .text._ZN6Player15ButtonAReleasedEv
- 0x000000000000153c 0xd0 Obj/Player.o
- 0x000000000000153c _ZN6Player15ButtonAReleasedEv
- .text._ZN6Player14ButtonBPressedEv
- 0x000000000000160c 0x52 Obj/Player.o
- 0x000000000000160c _ZN6Player14ButtonBPressedEv
- .text._ZN6Player15ButtonBReleasedEv
- 0x000000000000165e 0xc4 Obj/Player.o
- 0x000000000000165e _ZN6Player15ButtonBReleasedEv
- .text._ZN6Player18ButtonLeftReleasedEv
- 0x0000000000001722 0x7e Obj/Player.o
- 0x0000000000001722 _ZN6Player18ButtonLeftReleasedEv
- .text._ZN6Player28IncreaseShowActionsMenuIndexEv
- 0x00000000000017a0 0x7e Obj/Player.o
- 0x00000000000017a0 _ZN6Player28IncreaseShowActionsMenuIndexEv
- .text._ZN6Player11ActionsMenuEv
- 0x000000000000181e 0x14e Obj/Player.o
- 0x000000000000181e _ZN6Player11ActionsMenuEv
- .text._ZN6Player15MenuDrawHandlerEv
- 0x000000000000196c 0x14 Obj/Player.o
- 0x000000000000196c _ZN6Player15MenuDrawHandlerEv
- .text._ZN6Player11DrawHandlerEv
- 0x0000000000001980 0xdc Obj/Player.o
- 0x0000000000001980 _ZN6Player11DrawHandlerEv
- .text._ZN6Player13ButtonHandlerEv
- 0x0000000000001a5c 0x90 Obj/Player.o
- 0x0000000000001a5c _ZN6Player13ButtonHandlerEv
- .text._ZN6Player7HandlerEv
- 0x0000000000001aec 0x44 Obj/Player.o
- 0x0000000000001aec _ZN6Player7HandlerEv
- .text.CameraInit
- 0x0000000000001b30 0x16 Obj/Camera.o
- 0x0000000000001b30 CameraInit
- .text.CameraApplyCoordinatesToCoordinates
- 0x0000000000001b46 0x66 Obj/Camera.o
- 0x0000000000001b46 CameraApplyCoordinatesToCoordinates
- .text.CameraApplyCoordinatesToSprite
- 0x0000000000001bac 0x14 Obj/Camera.o
- 0x0000000000001bac CameraApplyCoordinatesToSprite
- .text.CameraHandler
- 0x0000000000001bc0 0x116 Obj/Camera.o
- 0x0000000000001bc0 CameraHandler
- .text.CameraSetLock
- 0x0000000000001cd6 0x6 Obj/Camera.o
- 0x0000000000001cd6 CameraSetLock
- .text.UnitInit
- 0x0000000000001cdc 0x128 Obj/Unit.o
- 0x0000000000001cdc UnitInit
- .text.UnitDrawShadow
- 0x0000000000001e04 0x58 Obj/Unit.o
- 0x0000000000001e04 UnitDrawShadow
- .text.UnitGetWidthFromID
- 0x0000000000001e5c 0x18 Obj/Unit.o
- 0x0000000000001e5c UnitGetWidthFromID
- .text.UnitGetHeightFromID
- 0x0000000000001e74 0x18 Obj/Unit.o
- 0x0000000000001e74 UnitGetHeightFromID
- .text.UnitDraw
- 0x0000000000001e8c 0x1dc Obj/Unit.o
- 0x0000000000001e8c UnitDraw
- .text.UnitGetHpFromID
- 0x0000000000002068 0xa Obj/Unit.o
- 0x0000000000002068 UnitGetHpFromID
- .text.UnitNeededResourcesFromID
- 0x0000000000002072 0x4e Obj/Unit.o
- 0x0000000000002072 UnitNeededResourcesFromID
- .text.UnitMoveTo
- 0x00000000000020c0 0x10 Obj/Unit.o
- 0x00000000000020c0 UnitMoveTo
- .text.UnitCheckCollisionAgainstOtherUnits
- 0x00000000000020d0 0xa2 Obj/Unit.o
- 0x00000000000020d0 UnitCheckCollisionAgainstOtherUnits
- .text.UnitHandler
- 0x0000000000002172 0x21e Obj/Unit.o
- 0x0000000000002172 UnitHandler
- .text.UnitGetAvailableActions
- 0x0000000000002390 0x10 Obj/Unit.o
- 0x0000000000002390 UnitGetAvailableActions
- .text.UnitGetActionString
- 0x00000000000023a0 0x10 Obj/Unit.o
- 0x00000000000023a0 UnitGetActionString
- .text._Z17MenuGetPlayerNameP6Player
- 0x00000000000023b0 0x18 Obj/Menu.o
- 0x00000000000023b0 _Z17MenuGetPlayerNameP6Player
+ 0x000000000000048e 0x16 Obj/System.o
+ .text._ZN11HumanPlayer11drawHandlerEv
+ 0x00000000000004a4 0x2 Obj/HumanPlayer.o
+ 0x00000000000004a4 _ZN11HumanPlayer11drawHandlerEv
+ .text._ZN11HumanPlayerC2EPKc
+ 0x00000000000004a6 0x1e Obj/HumanPlayer.o
+ 0x00000000000004a6 _ZN11HumanPlayerC2EPKc
+ 0x00000000000004a6 _ZN11HumanPlayerC1EPKc
+ .text._ZN6PlayerC2EPKc
+ 0x00000000000004c4 0x30 Obj/Player.o
+ 0x00000000000004c4 _ZN6PlayerC1EPKc
+ 0x00000000000004c4 _ZN6PlayerC2EPKc
+ .text._ZN6CameraC2Ev
+ 0x00000000000004f4 0x1a Obj/Camera.o
+ 0x00000000000004f4 _ZN6CameraC1Ev
+ 0x00000000000004f4 _ZN6CameraC2Ev
.text._Z8MainMenuv
- 0x00000000000023c8 0x20 Obj/Menu.o
- 0x00000000000023c8 _Z8MainMenuv
+ 0x000000000000050e 0x82 Obj/Menu.o
+ 0x000000000000050e _Z8MainMenuv
.text._ZN7Buttons5beginEv
- 0x00000000000023e8 0x20 ../lib/libgamebuino.a(Buttons.o)
- 0x00000000000023e8 _ZN7Buttons5beginEv
+ 0x0000000000000590 0x20 ../lib/libgamebuino.a(Buttons.o)
+ 0x0000000000000590 _ZN7Buttons5beginEv
.text._ZN7Buttons6updateEv
- 0x0000000000002408 0x5a ../lib/libgamebuino.a(Buttons.o)
- 0x0000000000002408 _ZN7Buttons6updateEv
+ 0x00000000000005b0 0x5a ../lib/libgamebuino.a(Buttons.o)
+ 0x00000000000005b0 _ZN7Buttons6updateEv
.text._ZN7Buttons7pressedEh
- 0x0000000000002462 0x12 ../lib/libgamebuino.a(Buttons.o)
- 0x0000000000002462 _ZN7Buttons7pressedEh
+ 0x000000000000060a 0x12 ../lib/libgamebuino.a(Buttons.o)
+ 0x000000000000060a _ZN7Buttons7pressedEh
.text._ZN7Buttons8releasedEh
- 0x0000000000002474 0x12 ../lib/libgamebuino.a(Buttons.o)
- 0x0000000000002474 _ZN7Buttons8releasedEh
+ 0x000000000000061c 0x12 ../lib/libgamebuino.a(Buttons.o)
+ 0x000000000000061c _ZN7Buttons8releasedEh
.text._ZN7Buttons6repeatEhh
- 0x0000000000002486 0x2c ../lib/libgamebuino.a(Buttons.o)
- 0x0000000000002486 _ZN7Buttons6repeatEhh
- .text._ZN7Buttons8timeHeldEh
- 0x00000000000024b2 0x10 ../lib/libgamebuino.a(Buttons.o)
- 0x00000000000024b2 _ZN7Buttons8timeHeldEh
+ 0x000000000000062e 0x30 ../lib/libgamebuino.a(Buttons.o)
+ 0x000000000000062e _ZN7Buttons6repeatEhh
.text._ZN8SPIClass8transferEh
- 0x00000000000024c2 0xc ../lib/libgamebuino.a(Display.o)
- 0x00000000000024c2 _ZN8SPIClass8transferEh
+ 0x000000000000065e 0xc ../lib/libgamebuino.a(Display.o)
+ 0x000000000000065e _ZN8SPIClass8transferEh
.text._ZN7Display9drawPixelEaa
- 0x00000000000024ce 0x8e ../lib/libgamebuino.a(Display.o)
- 0x00000000000024ce _ZN7Display9drawPixelEaa
+ 0x000000000000066a 0xb8 ../lib/libgamebuino.a(Display.o)
+ 0x000000000000066a _ZN7Display9drawPixelEaa
.text._ZN7Display7commandEh
- 0x000000000000255c 0x3c ../lib/libgamebuino.a(Display.o)
- 0x000000000000255c _ZN7Display7commandEh
+ 0x0000000000000722 0x3c ../lib/libgamebuino.a(Display.o)
+ 0x0000000000000722 _ZN7Display7commandEh
.text._ZN7Display5clearEv
- 0x0000000000002598 0x22 ../lib/libgamebuino.a(Display.o)
- 0x0000000000002598 _ZN7Display5clearEv
- .text._ZN7Display10fillScreenEh
- 0x00000000000025ba 0x10 ../lib/libgamebuino.a(Display.o)
- 0x00000000000025ba _ZN7Display10fillScreenEh
+ 0x000000000000075e 0x22 ../lib/libgamebuino.a(Display.o)
+ 0x000000000000075e _ZN7Display5clearEv
.text._ZN7Display6updateEv
- 0x00000000000025ca 0x8a ../lib/libgamebuino.a(Display.o)
- 0x00000000000025ca _ZN7Display6updateEv
+ 0x0000000000000780 0x8a ../lib/libgamebuino.a(Display.o)
+ 0x0000000000000780 _ZN7Display6updateEv
.text._ZN7Display8setColorEa
- 0x0000000000002654 0x8 ../lib/libgamebuino.a(Display.o)
- 0x0000000000002654 _ZN7Display8setColorEa
+ 0x000000000000080a 0x8 ../lib/libgamebuino.a(Display.o)
+ 0x000000000000080a _ZN7Display8setColorEa
.text._ZN7Display8setColorEaa
- 0x000000000000265c 0x8 ../lib/libgamebuino.a(Display.o)
- 0x000000000000265c _ZN7Display8setColorEaa
+ 0x0000000000000812 0x8 ../lib/libgamebuino.a(Display.o)
+ 0x0000000000000812 _ZN7Display8setColorEaa
.text._ZN7Display13drawFastVLineEaaa
- 0x0000000000002664 0x38 ../lib/libgamebuino.a(Display.o)
- 0x0000000000002664 _ZN7Display13drawFastVLineEaaa
+ 0x000000000000081a 0x38 ../lib/libgamebuino.a(Display.o)
+ 0x000000000000081a _ZN7Display13drawFastVLineEaaa
.text._ZN7Display13drawFastHLineEaaa
- 0x000000000000269c 0x38 ../lib/libgamebuino.a(Display.o)
- 0x000000000000269c _ZN7Display13drawFastHLineEaaa
- .text._ZN7Display8drawRectEaaaa
- 0x00000000000026d4 0x50 ../lib/libgamebuino.a(Display.o)
- 0x00000000000026d4 _ZN7Display8drawRectEaaaa
+ 0x0000000000000852 0x38 ../lib/libgamebuino.a(Display.o)
+ 0x0000000000000852 _ZN7Display13drawFastHLineEaaa
.text._ZN7Display8fillRectEaaaa
- 0x0000000000002724 0x52 ../lib/libgamebuino.a(Display.o)
- 0x0000000000002724 _ZN7Display8fillRectEaaaa
- .text._ZN7Display10drawCircleEaaa
- 0x0000000000002776 0x100 ../lib/libgamebuino.a(Display.o)
- 0x0000000000002776 _ZN7Display10drawCircleEaaa
+ 0x000000000000088a 0x52 ../lib/libgamebuino.a(Display.o)
+ 0x000000000000088a _ZN7Display8fillRectEaaaa
.text._ZN7Display16drawCircleHelperEaaah
- 0x0000000000002876 0xfc ../lib/libgamebuino.a(Display.o)
- 0x0000000000002876 _ZN7Display16drawCircleHelperEaaah
+ 0x00000000000008dc 0xfc ../lib/libgamebuino.a(Display.o)
+ 0x00000000000008dc _ZN7Display16drawCircleHelperEaaah
.text._ZN7Display16fillCircleHelperEaaaha
- 0x0000000000002972 0xca ../lib/libgamebuino.a(Display.o)
- 0x0000000000002972 _ZN7Display16fillCircleHelperEaaaha
+ 0x00000000000009d8 0xcc ../lib/libgamebuino.a(Display.o)
+ 0x00000000000009d8 _ZN7Display16fillCircleHelperEaaaha
.text._ZN7Display13drawRoundRectEaaaaa
- 0x0000000000002a3c 0xbe ../lib/libgamebuino.a(Display.o)
- 0x0000000000002a3c _ZN7Display13drawRoundRectEaaaaa
+ 0x0000000000000aa4 0xbe ../lib/libgamebuino.a(Display.o)
+ 0x0000000000000aa4 _ZN7Display13drawRoundRectEaaaaa
.text._ZN7Display13fillRoundRectEaaaaa
- 0x0000000000002afa 0x6e ../lib/libgamebuino.a(Display.o)
- 0x0000000000002afa _ZN7Display13fillRoundRectEaaaaa
+ 0x0000000000000b62 0x6e ../lib/libgamebuino.a(Display.o)
+ 0x0000000000000b62 _ZN7Display13fillRoundRectEaaaaa
.text._ZN7Display10drawBitmapEaaPKh
- 0x0000000000002b68 0x280 ../lib/libgamebuino.a(Display.o)
- 0x0000000000002b68 _ZN7Display10drawBitmapEaaPKh
- .text._ZN7Display10drawBitmapEaaPKhhh
- 0x0000000000002de8 0x1ce ../lib/libgamebuino.a(Display.o)
- 0x0000000000002de8 _ZN7Display10drawBitmapEaaPKhhh
+ 0x0000000000000bd0 0x288 ../lib/libgamebuino.a(Display.o)
+ 0x0000000000000bd0 _ZN7Display10drawBitmapEaaPKh
.text._ZN7Display7setFontEPKh
- 0x0000000000002fb6 0x28 ../lib/libgamebuino.a(Display.o)
- 0x0000000000002fb6 _ZN7Display7setFontEPKh
+ 0x0000000000000e58 0x28 ../lib/libgamebuino.a(Display.o)
+ 0x0000000000000e58 _ZN7Display7setFontEPKh
.text._ZN7Display5beginEaaaaa
- 0x0000000000002fde 0x180 ../lib/libgamebuino.a(Display.o)
- 0x0000000000002fde _ZN7Display5beginEaaaaa
+ 0x0000000000000e80 0x180 ../lib/libgamebuino.a(Display.o)
+ 0x0000000000000e80 _ZN7Display5beginEaaaaa
.text._ZN7Display8drawCharEaahh
- 0x000000000000315e 0x15c ../lib/libgamebuino.a(Display.o)
- 0x000000000000315e _ZN7Display8drawCharEaahh
+ 0x0000000000001000 0x14a ../lib/libgamebuino.a(Display.o)
+ 0x0000000000001000 _ZN7Display8drawCharEaahh
.text._ZN7Display5writeEh
- 0x00000000000032ba 0x66 ../lib/libgamebuino.a(Display.o)
- 0x00000000000032ba _ZN7Display5writeEh
- .text._ZN9Gamebuino5popupEPK19__FlashStringHelperh
- 0x0000000000003320 0x16 ../lib/libgamebuino.a(Gamebuino.o)
- 0x0000000000003320 _ZN9Gamebuino5popupEPK19__FlashStringHelperh
+ 0x000000000000114a 0x66 ../lib/libgamebuino.a(Display.o)
+ 0x000000000000114a _ZN7Display5writeEh
.text._ZN9Gamebuino11updatePopupEv
- 0x0000000000003336 0xda ../lib/libgamebuino.a(Gamebuino.o)
- 0x0000000000003336 _ZN9Gamebuino11updatePopupEv
+ 0x00000000000011b0 0xe0 ../lib/libgamebuino.a(Gamebuino.o)
+ 0x00000000000011b0 _ZN9Gamebuino11updatePopupEv
.text._ZN9Gamebuino14displayBatteryEv
- 0x0000000000003410 0x160 ../lib/libgamebuino.a(Gamebuino.o)
- 0x0000000000003410 _ZN9Gamebuino14displayBatteryEv
+ 0x0000000000001290 0x168 ../lib/libgamebuino.a(Gamebuino.o)
+ 0x0000000000001290 _ZN9Gamebuino14displayBatteryEv
.text._ZN9Gamebuino6updateEv
- 0x0000000000003570 0x170 ../lib/libgamebuino.a(Gamebuino.o)
- 0x0000000000003570 _ZN9Gamebuino6updateEv
+ 0x00000000000013f8 0x176 ../lib/libgamebuino.a(Gamebuino.o)
+ 0x00000000000013f8 _ZN9Gamebuino6updateEv
.text._ZN9Gamebuino4menuEPKPKch
- 0x00000000000036e0 0x2a0 ../lib/libgamebuino.a(Gamebuino.o)
- 0x00000000000036e0 _ZN9Gamebuino4menuEPKPKch
+ 0x000000000000156e 0x29c ../lib/libgamebuino.a(Gamebuino.o)
+ 0x000000000000156e _ZN9Gamebuino4menuEPKPKch
.text._ZN9Gamebuino10changeGameEv
- 0x0000000000003980 0x7a ../lib/libgamebuino.a(Gamebuino.o)
- 0x0000000000003980 _ZN9Gamebuino10changeGameEv
+ 0x000000000000180a 0x7a ../lib/libgamebuino.a(Gamebuino.o)
+ 0x000000000000180a _ZN9Gamebuino10changeGameEv
.text._ZN9Gamebuino11titleScreenEPK19__FlashStringHelperPKh
- 0x00000000000039fa 0x270 ../lib/libgamebuino.a(Gamebuino.o)
- 0x00000000000039fa _ZN9Gamebuino11titleScreenEPK19__FlashStringHelperPKh
+ 0x0000000000001884 0x27c ../lib/libgamebuino.a(Gamebuino.o)
+ 0x0000000000001884 _ZN9Gamebuino11titleScreenEPK19__FlashStringHelperPKh
.text._ZN9Gamebuino11titleScreenEPK19__FlashStringHelper
- 0x0000000000003c6a 0x8 ../lib/libgamebuino.a(Gamebuino.o)
- 0x0000000000003c6a _ZN9Gamebuino11titleScreenEPK19__FlashStringHelper
+ 0x0000000000001b00 0x8 ../lib/libgamebuino.a(Gamebuino.o)
+ 0x0000000000001b00 _ZN9Gamebuino11titleScreenEPK19__FlashStringHelper
.text._ZN9Gamebuino17settingsAvailableEv
- 0x0000000000003c72 0x14 ../lib/libgamebuino.a(Gamebuino.o)
- 0x0000000000003c72 _ZN9Gamebuino17settingsAvailableEv
+ 0x0000000000001b08 0x14 ../lib/libgamebuino.a(Gamebuino.o)
+ 0x0000000000001b08 _ZN9Gamebuino17settingsAvailableEv
.text._ZN9Gamebuino12readSettingsEv
- 0x0000000000003c86 0xde ../lib/libgamebuino.a(Gamebuino.o)
- 0x0000000000003c86 _ZN9Gamebuino12readSettingsEv
+ 0x0000000000001b1c 0xde ../lib/libgamebuino.a(Gamebuino.o)
+ 0x0000000000001b1c _ZN9Gamebuino12readSettingsEv
.text._ZN9Gamebuino5beginEv
- 0x0000000000003d64 0xb6 ../lib/libgamebuino.a(Gamebuino.o)
- 0x0000000000003d64 _ZN9Gamebuino5beginEv
+ 0x0000000000001bfa 0xb6 ../lib/libgamebuino.a(Gamebuino.o)
+ 0x0000000000001bfa _ZN9Gamebuino5beginEv
.text._ZN9Gamebuino14getDefaultNameEPc
- 0x0000000000003e1a 0x2c ../lib/libgamebuino.a(Gamebuino.o)
- 0x0000000000003e1a _ZN9Gamebuino14getDefaultNameEPc
+ 0x0000000000001cb0 0x2c ../lib/libgamebuino.a(Gamebuino.o)
+ 0x0000000000001cb0 _ZN9Gamebuino14getDefaultNameEPc
.text._ZN5Sound7commandEhhah.part.0
- 0x0000000000003e46 0x66 ../lib/libgamebuino.a(Sound.o)
+ 0x0000000000001cdc 0x74 ../lib/libgamebuino.a(Sound.o)
.text._ZN5Sound5beginEv
- 0x0000000000003eac 0x68 ../lib/libgamebuino.a(Sound.o)
- 0x0000000000003eac _ZN5Sound5beginEv
+ 0x0000000000001d50 0x6a ../lib/libgamebuino.a(Sound.o)
+ 0x0000000000001d50 _ZN5Sound5beginEv
.text._ZN5Sound7commandEhhah
- 0x0000000000003f14 0x5e ../lib/libgamebuino.a(Sound.o)
- 0x0000000000003f14 _ZN5Sound7commandEhhah
+ 0x0000000000001dba 0x62 ../lib/libgamebuino.a(Sound.o)
+ 0x0000000000001dba _ZN5Sound7commandEhhah
+ .text._ZN5Sound8playNoteEhhh
+ 0x0000000000001e1c 0x24 ../lib/libgamebuino.a(Sound.o)
+ 0x0000000000001e1c _ZN5Sound8playNoteEhhh
.text._ZN5Sound12updateOutputEv
- 0x0000000000003f72 0x16 ../lib/libgamebuino.a(Sound.o)
- 0x0000000000003f72 _ZN5Sound12updateOutputEv
- .text._ZN5Sound8stopNoteEh.part.2
- 0x0000000000003f88 0x1c ../lib/libgamebuino.a(Sound.o)
- .text._ZN5Sound11playPatternEPKjh.part.5
- 0x0000000000003fa4 0x30 ../lib/libgamebuino.a(Sound.o)
+ 0x0000000000001e40 0x16 ../lib/libgamebuino.a(Sound.o)
+ 0x0000000000001e40 _ZN5Sound12updateOutputEv
+ .text._ZN5Sound8stopNoteEh
+ 0x0000000000001e56 0x22 ../lib/libgamebuino.a(Sound.o)
+ 0x0000000000001e56 _ZN5Sound8stopNoteEh
+ .text._ZN5Sound11stopPatternEh
+ 0x0000000000001e78 0x16 ../lib/libgamebuino.a(Sound.o)
+ 0x0000000000001e78 _ZN5Sound11stopPatternEh
.text._ZN5Sound11playPatternEPKjh
- 0x0000000000003fd4 0xa ../lib/libgamebuino.a(Sound.o)
- 0x0000000000003fd4 _ZN5Sound11playPatternEPKjh
+ 0x0000000000001e8e 0x36 ../lib/libgamebuino.a(Sound.o)
+ 0x0000000000001e8e _ZN5Sound11playPatternEPKjh
.text._ZN5Sound11updateTrackEh
- 0x0000000000003fde 0x5c ../lib/libgamebuino.a(Sound.o)
- 0x0000000000003fde _ZN5Sound11updateTrackEh
+ 0x0000000000001ec4 0x72 ../lib/libgamebuino.a(Sound.o)
+ 0x0000000000001ec4 _ZN5Sound11updateTrackEh
.text._ZN5Sound11updateTrackEv
- 0x000000000000403a 0x6 ../lib/libgamebuino.a(Sound.o)
- 0x000000000000403a _ZN5Sound11updateTrackEv
+ 0x0000000000001f36 0x6 ../lib/libgamebuino.a(Sound.o)
+ 0x0000000000001f36 _ZN5Sound11updateTrackEv
+ .text._ZN5Sound11stopPatternEv
+ 0x0000000000001f3c 0x6 ../lib/libgamebuino.a(Sound.o)
+ 0x0000000000001f3c _ZN5Sound11stopPatternEv
.text._ZN5Sound13updatePatternEh
- 0x0000000000004040 0xe0 ../lib/libgamebuino.a(Sound.o)
- 0x0000000000004040 _ZN5Sound13updatePatternEh
+ 0x0000000000001f42 0xcc ../lib/libgamebuino.a(Sound.o)
+ 0x0000000000001f42 _ZN5Sound13updatePatternEh
.text._ZN5Sound13updatePatternEv
- 0x0000000000004120 0x6 ../lib/libgamebuino.a(Sound.o)
- 0x0000000000004120 _ZN5Sound13updatePatternEv
+ 0x000000000000200e 0x6 ../lib/libgamebuino.a(Sound.o)
+ 0x000000000000200e _ZN5Sound13updatePatternEv
.text._ZN5Sound10updateNoteEh
- 0x0000000000004126 0x182 ../lib/libgamebuino.a(Sound.o)
- 0x0000000000004126 _ZN5Sound10updateNoteEh
+ 0x0000000000002014 0x184 ../lib/libgamebuino.a(Sound.o)
+ 0x0000000000002014 _ZN5Sound10updateNoteEh
.text._ZN5Sound10updateNoteEv
- 0x00000000000042a8 0x6 ../lib/libgamebuino.a(Sound.o)
- 0x00000000000042a8 _ZN5Sound10updateNoteEv
- .text._ZN5Sound11stopPatternEh
- 0x00000000000042ae 0x16 ../lib/libgamebuino.a(Sound.o)
- 0x00000000000042ae _ZN5Sound11stopPatternEh
- .text._ZN5Sound11stopPatternEv
- 0x00000000000042c4 0x12 ../lib/libgamebuino.a(Sound.o)
- 0x00000000000042c4 _ZN5Sound11stopPatternEv
+ 0x0000000000002198 0x6 ../lib/libgamebuino.a(Sound.o)
+ 0x0000000000002198 _ZN5Sound10updateNoteEv
.text._ZN5Sound14generateOutputEv
- 0x00000000000042d6 0x54 ../lib/libgamebuino.a(Sound.o)
- 0x00000000000042d6 _ZN5Sound14generateOutputEv
+ 0x000000000000219e 0x54 ../lib/libgamebuino.a(Sound.o)
+ 0x000000000000219e _ZN5Sound14generateOutputEv
.text.__vector_11
- 0x000000000000432a 0x48 ../lib/libgamebuino.a(Sound.o)
- 0x000000000000432a __vector_11
+ 0x00000000000021f2 0x48 ../lib/libgamebuino.a(Sound.o)
+ 0x00000000000021f2 __vector_11
.text._ZN5Sound6playOKEv
- 0x0000000000004372 0x8 ../lib/libgamebuino.a(Sound.o)
- 0x0000000000004372 _ZN5Sound6playOKEv
+ 0x000000000000223a 0x2c ../lib/libgamebuino.a(Sound.o)
+ 0x000000000000223a _ZN5Sound6playOKEv
.text._ZN5Sound10playCancelEv
- 0x000000000000437a 0x8 ../lib/libgamebuino.a(Sound.o)
- 0x000000000000437a _ZN5Sound10playCancelEv
+ 0x0000000000002266 0x2c ../lib/libgamebuino.a(Sound.o)
+ 0x0000000000002266 _ZN5Sound10playCancelEv
.text._ZN5Sound8playTickEv
- 0x0000000000004382 0x8 ../lib/libgamebuino.a(Sound.o)
- 0x0000000000004382 _ZN5Sound8playTickEv
+ 0x0000000000002292 0x2c ../lib/libgamebuino.a(Sound.o)
+ 0x0000000000002292 _ZN5Sound8playTickEv
.text._ZN5Sound9setVolumeEa
- 0x000000000000438a 0x18 ../lib/libgamebuino.a(Sound.o)
- 0x000000000000438a _ZN5Sound9setVolumeEa
+ 0x00000000000022be 0x1c ../lib/libgamebuino.a(Sound.o)
+ 0x00000000000022be _ZN5Sound9setVolumeEa
.text._ZN9Backlight5beginEv
- 0x00000000000043a2 0x8 ../lib/libgamebuino.a(Backlight.o)
- 0x00000000000043a2 _ZN9Backlight5beginEv
+ 0x00000000000022da 0x8 ../lib/libgamebuino.a(Backlight.o)
+ 0x00000000000022da _ZN9Backlight5beginEv
.text._ZN9Backlight3setEh
- 0x00000000000043aa 0x8 ../lib/libgamebuino.a(Backlight.o)
- 0x00000000000043aa _ZN9Backlight3setEh
+ 0x00000000000022e2 0x8 ../lib/libgamebuino.a(Backlight.o)
+ 0x00000000000022e2 _ZN9Backlight3setEh
.text._ZN9Backlight6updateEv
- 0x00000000000043b2 0xbe ../lib/libgamebuino.a(Backlight.o)
- 0x00000000000043b2 _ZN9Backlight6updateEv
+ 0x00000000000022ea 0xbe ../lib/libgamebuino.a(Backlight.o)
+ 0x00000000000022ea _ZN9Backlight6updateEv
.text._ZN7Battery5beginEv
- 0x0000000000004470 0x14 ../lib/libgamebuino.a(Battery.o)
- 0x0000000000004470 _ZN7Battery5beginEv
+ 0x00000000000023a8 0x14 ../lib/libgamebuino.a(Battery.o)
+ 0x00000000000023a8 _ZN7Battery5beginEv
.text._ZN7Battery6updateEv
- 0x0000000000004484 0x70 ../lib/libgamebuino.a(Battery.o)
- 0x0000000000004484 _ZN7Battery6updateEv
+ 0x00000000000023bc 0x72 ../lib/libgamebuino.a(Battery.o)
+ 0x00000000000023bc _ZN7Battery6updateEv
.text.__vector_16
- 0x00000000000044f4 0x94 ../lib/libarduino.a(wiring.o)
- 0x00000000000044f4 __vector_16
- .text.millis 0x0000000000004588 0x18 ../lib/libarduino.a(wiring.o)
- 0x0000000000004588 millis
- .text.micros 0x00000000000045a0 0x4a ../lib/libarduino.a(wiring.o)
- 0x00000000000045a0 micros
- .text.delay 0x00000000000045ea 0x4c ../lib/libarduino.a(wiring.o)
- 0x00000000000045ea delay
- .text.init 0x0000000000004636 0x76 ../lib/libarduino.a(wiring.o)
- 0x0000000000004636 init
+ 0x000000000000242e 0x94 ../lib/libarduino.a(wiring.o)
+ 0x000000000000242e __vector_16
+ .text.millis 0x00000000000024c2 0x18 ../lib/libarduino.a(wiring.o)
+ 0x00000000000024c2 millis
+ .text.micros 0x00000000000024da 0x4a ../lib/libarduino.a(wiring.o)
+ 0x00000000000024da micros
+ .text.delay 0x0000000000002524 0x4c ../lib/libarduino.a(wiring.o)
+ 0x0000000000002524 delay
+ .text.init 0x0000000000002570 0x76 ../lib/libarduino.a(wiring.o)
+ 0x0000000000002570 init
.text.analogRead
- 0x00000000000046ac 0x36 ../lib/libarduino.a(wiring_analog.o)
- 0x00000000000046ac analogRead
+ 0x00000000000025e6 0x3a ../lib/libarduino.a(wiring_analog.o)
+ 0x00000000000025e6 analogRead
.text.analogWrite
- 0x00000000000046e2 0xba ../lib/libarduino.a(wiring_analog.o)
- 0x00000000000046e2 analogWrite
+ 0x0000000000002620 0xbe ../lib/libarduino.a(wiring_analog.o)
+ 0x0000000000002620 analogWrite
.text.turnOffPWM
- 0x000000000000479c 0x52 ../lib/libarduino.a(wiring_digital.o)
- .text.pinMode 0x00000000000047ee 0x78 ../lib/libarduino.a(wiring_digital.o)
- 0x00000000000047ee pinMode
+ 0x00000000000026de 0x52 ../lib/libarduino.a(wiring_digital.o)
+ .text.pinMode 0x0000000000002730 0x78 ../lib/libarduino.a(wiring_digital.o)
+ 0x0000000000002730 pinMode
.text.digitalWrite
- 0x0000000000004866 0x5c ../lib/libarduino.a(wiring_digital.o)
- 0x0000000000004866 digitalWrite
+ 0x00000000000027a8 0x5e ../lib/libarduino.a(wiring_digital.o)
+ 0x00000000000027a8 digitalWrite
.text.digitalRead
- 0x00000000000048c2 0x52 ../lib/libarduino.a(wiring_digital.o)
- 0x00000000000048c2 digitalRead
+ 0x0000000000002806 0x52 ../lib/libarduino.a(wiring_digital.o)
+ 0x0000000000002806 digitalRead
.text._ZN5Print5writeEPKhj
- 0x0000000000004914 0x50 ../lib/libarduino.a(Print.o)
- 0x0000000000004914 _ZN5Print5writeEPKhj
- .text._ZN5Print5writeEPKc.part.1
- 0x0000000000004964 0x1e ../lib/libarduino.a(Print.o)
+ 0x0000000000002858 0x50 ../lib/libarduino.a(Print.o)
+ 0x0000000000002858 _ZN5Print5writeEPKhj
+ .text._ZN5Print5writeEPKc
+ 0x00000000000028a8 0x2a ../lib/libarduino.a(Print.o)
+ 0x00000000000028a8 _ZN5Print5writeEPKc
.text._ZN5Print5printEPK19__FlashStringHelper
- 0x0000000000004982 0x46 ../lib/libarduino.a(Print.o)
- 0x0000000000004982 _ZN5Print5printEPK19__FlashStringHelper
- .text._ZN5Print5printEPKc
- 0x00000000000049c8 0x10 ../lib/libarduino.a(Print.o)
- 0x00000000000049c8 _ZN5Print5printEPKc
+ 0x00000000000028d2 0x46 ../lib/libarduino.a(Print.o)
+ 0x00000000000028d2 _ZN5Print5printEPK19__FlashStringHelper
.text._ZN5Print5printEc
- 0x00000000000049d8 0xe ../lib/libarduino.a(Print.o)
- 0x00000000000049d8 _ZN5Print5printEc
+ 0x0000000000002918 0xe ../lib/libarduino.a(Print.o)
+ 0x0000000000002918 _ZN5Print5printEc
.text._ZN5Print7printlnEv
- 0x00000000000049e6 0x28 ../lib/libarduino.a(Print.o)
- 0x00000000000049e6 _ZN5Print7printlnEv
+ 0x0000000000002926 0x28 ../lib/libarduino.a(Print.o)
+ 0x0000000000002926 _ZN5Print7printlnEv
.text._ZN5Print7printlnEPK19__FlashStringHelper
- 0x0000000000004a0e 0x24 ../lib/libarduino.a(Print.o)
- 0x0000000000004a0e _ZN5Print7printlnEPK19__FlashStringHelper
+ 0x000000000000294e 0x24 ../lib/libarduino.a(Print.o)
+ 0x000000000000294e _ZN5Print7printlnEPK19__FlashStringHelper
.text._ZN5Print11printNumberEmh
- 0x0000000000004a32 0xb2 ../lib/libarduino.a(Print.o)
- 0x0000000000004a32 _ZN5Print11printNumberEmh
- .text._ZN5Print5printEli
- 0x0000000000004ae4 0x94 ../lib/libarduino.a(Print.o)
- 0x0000000000004ae4 _ZN5Print5printEli
- .text._ZN5Print5printEii
- 0x0000000000004b78 0xe ../lib/libarduino.a(Print.o)
- 0x0000000000004b78 _ZN5Print5printEii
+ 0x0000000000002972 0xac ../lib/libarduino.a(Print.o)
+ 0x0000000000002972 _ZN5Print11printNumberEmh
.text._ZN5Print5printEmi
- 0x0000000000004b86 0x1a ../lib/libarduino.a(Print.o)
- 0x0000000000004b86 _ZN5Print5printEmi
+ 0x0000000000002a1e 0x1a ../lib/libarduino.a(Print.o)
+ 0x0000000000002a1e _ZN5Print5printEmi
.text._ZN5Print5printEji
- 0x0000000000004ba0 0xc ../lib/libarduino.a(Print.o)
- 0x0000000000004ba0 _ZN5Print5printEji
+ 0x0000000000002a38 0xc ../lib/libarduino.a(Print.o)
+ 0x0000000000002a38 _ZN5Print5printEji
+ .text._ZN5Print5printEli
+ 0x0000000000002a44 0x90 ../lib/libarduino.a(Print.o)
+ 0x0000000000002a44 _ZN5Print5printEli
+ .text._ZN5Print5printEii
+ 0x0000000000002ad4 0xe ../lib/libarduino.a(Print.o)
+ 0x0000000000002ad4 _ZN5Print5printEii
.text._Z3maplllll
- 0x0000000000004bac 0x82 ../lib/libarduino.a(WMath.o)
- 0x0000000000004bac _Z3maplllll
+ 0x0000000000002ae2 0x82 ../lib/libarduino.a(WMath.o)
+ 0x0000000000002ae2 _Z3maplllll
+ .text.__cxa_pure_virtual
+ 0x0000000000002b64 0x2 ../lib/libarduino.a(forward.o)
+ 0x0000000000002b64 __cxa_pure_virtual
.text._ZN8SPIClass5beginEv
- 0x0000000000004c2e 0x2c ../lib/libarduino.a(SPI.o)
- 0x0000000000004c2e _ZN8SPIClass5beginEv
+ 0x0000000000002b66 0x2c ../lib/libarduino.a(SPI.o)
+ 0x0000000000002b66 _ZN8SPIClass5beginEv
.text._ZN8SPIClass11setBitOrderEh
- 0x0000000000004c5a 0x12 ../lib/libarduino.a(SPI.o)
- 0x0000000000004c5a _ZN8SPIClass11setBitOrderEh
+ 0x0000000000002b92 0x12 ../lib/libarduino.a(SPI.o)
+ 0x0000000000002b92 _ZN8SPIClass11setBitOrderEh
.text._ZN8SPIClass11setDataModeEh
- 0x0000000000004c6c 0xa ../lib/libarduino.a(SPI.o)
- 0x0000000000004c6c _ZN8SPIClass11setDataModeEh
+ 0x0000000000002ba4 0xa ../lib/libarduino.a(SPI.o)
+ 0x0000000000002ba4 _ZN8SPIClass11setDataModeEh
.text._ZN8SPIClass15setClockDividerEh
- 0x0000000000004c76 0x1e ../lib/libarduino.a(SPI.o)
- 0x0000000000004c76 _ZN8SPIClass15setClockDividerEh
+ 0x0000000000002bae 0x1e ../lib/libarduino.a(SPI.o)
+ 0x0000000000002bae _ZN8SPIClass15setClockDividerEh
.text.libgcc.mul
- 0x0000000000004c94 0x20 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_mulsi3.o)
- 0x0000000000004c94 __mulsi3
+ 0x0000000000002bcc 0x20 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_mulsi3.o)
+ 0x0000000000002bcc __mulsi3
.text.libgcc.div
- 0x0000000000004cb4 0x18 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_udivmodqi4.o)
- 0x0000000000004cb4 __udivmodqi4
+ 0x0000000000002bec 0x18 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_udivmodqi4.o)
+ 0x0000000000002bec __udivmodqi4
.text.libgcc.div
- 0x0000000000004ccc 0x28 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_udivmodhi4.o)
- 0x0000000000004ccc __udivmodhi4
+ 0x0000000000002c04 0x28 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_udivmodhi4.o)
+ 0x0000000000002c04 __udivmodhi4
.text.libgcc.div
- 0x0000000000004cf4 0x28 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_divmodhi4.o)
- 0x0000000000004cf4 __divmodhi4
- 0x0000000000004cf4 _div
+ 0x0000000000002c2c 0x28 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_divmodhi4.o)
+ 0x0000000000002c2c __divmodhi4
+ 0x0000000000002c2c _div
.text.libgcc.div
- 0x0000000000004d1c 0x44 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_udivmodsi4.o)
- 0x0000000000004d1c __udivmodsi4
+ 0x0000000000002c54 0x44 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_udivmodsi4.o)
+ 0x0000000000002c54 __udivmodsi4
.text.libgcc.div
- 0x0000000000004d60 0x2e /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_divmodsi4.o)
- 0x0000000000004d60 __divmodsi4
+ 0x0000000000002c98 0x2e /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_divmodsi4.o)
+ 0x0000000000002c98 __divmodsi4
.text.libgcc.div
- 0x0000000000004d8e 0x10 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_negsi2.o)
- 0x0000000000004d8e __negsi2
+ 0x0000000000002cc6 0x10 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_negsi2.o)
+ 0x0000000000002cc6 __negsi2
.text.libgcc.mul
- 0x0000000000004d9e 0x16 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_muluhisi3.o)
- 0x0000000000004d9e __muluhisi3
- .text.libgcc 0x0000000000004db4 0x18 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_adddi3_s8.o)
- 0x0000000000004db4 __adddi3_s8
- .text.libgcc 0x0000000000004dcc 0xc /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_tablejump2.o)
- 0x0000000000004dcc __tablejump2__
+ 0x0000000000002cd6 0x16 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_muluhisi3.o)
+ 0x0000000000002cd6 __muluhisi3
+ .text.libgcc 0x0000000000002cec 0xc /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_tablejump2.o)
+ 0x0000000000002cec __tablejump2__
.text.libgcc.mul
- 0x0000000000004dd8 0x1e /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_umulhisi3.o)
- 0x0000000000004dd8 __umulhisi3
+ 0x0000000000002cf8 0x1e /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_umulhisi3.o)
+ 0x0000000000002cf8 __umulhisi3
.text.avr-libc.fplib
- 0x0000000000004df6 0x5e /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(fixunssfsi.o)
- 0x0000000000004df6 __fixunssfsi
+ 0x0000000000002d16 0x5e /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(fixunssfsi.o)
+ 0x0000000000002d16 __fixunssfsi
.text.avr-libc.fplib
- 0x0000000000004e54 0x7a /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(floatsisf.o)
- 0x0000000000004e54 __floatunsisf
- 0x0000000000004e58 __floatsisf
+ 0x0000000000002d74 0x7a /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(floatsisf.o)
+ 0x0000000000002d74 __floatunsisf
+ 0x0000000000002d78 __floatsisf
.text.avr-libc.fplib
- 0x0000000000004ece 0xc /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(fp_inf.o)
- 0x0000000000004ece __fp_inf
+ 0x0000000000002dee 0xc /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(fp_inf.o)
+ 0x0000000000002dee __fp_inf
.text.avr-libc.fplib
- 0x0000000000004eda 0x6 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(fp_nan.o)
- 0x0000000000004eda __fp_nan
+ 0x0000000000002dfa 0x6 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(fp_nan.o)
+ 0x0000000000002dfa __fp_nan
.text.avr-libc.fplib
- 0x0000000000004ee0 0xe /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(fp_pscA.o)
- 0x0000000000004ee0 __fp_pscA
+ 0x0000000000002e00 0xe /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(fp_pscA.o)
+ 0x0000000000002e00 __fp_pscA
.text.avr-libc.fplib
- 0x0000000000004eee 0xe /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(fp_pscB.o)
- 0x0000000000004eee __fp_pscB
+ 0x0000000000002e0e 0xe /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(fp_pscB.o)
+ 0x0000000000002e0e __fp_pscB
.text.avr-libc.fplib
- 0x0000000000004efc 0x22 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(fp_round.o)
- 0x0000000000004efc __fp_round
+ 0x0000000000002e1c 0x22 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(fp_round.o)
+ 0x0000000000002e1c __fp_round
.text.avr-libc.fplib
- 0x0000000000004f1e 0x44 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(fp_split3.o)
- 0x0000000000004f1e __fp_split3
- 0x0000000000004f2e __fp_splitA
+ 0x0000000000002e3e 0x44 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(fp_split3.o)
+ 0x0000000000002e3e __fp_split3
+ 0x0000000000002e4e __fp_splitA
.text.avr-libc.fplib
- 0x0000000000004f62 0xe /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(fp_zero.o)
- 0x0000000000004f62 __fp_zero
- 0x0000000000004f64 __fp_szero
+ 0x0000000000002e82 0xe /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(fp_zero.o)
+ 0x0000000000002e82 __fp_zero
+ 0x0000000000002e84 __fp_szero
.text.avr-libc.fplib
- 0x0000000000004f70 0x8 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(mulsf3.o)
- 0x0000000000004f70 __mulsf3
+ 0x0000000000002e90 0x8 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(mulsf3.o)
+ 0x0000000000002e90 __mulsf3
.text.avr-libc.fplib
- 0x0000000000004f78 0xd2 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(mulsf3x.o)
- 0x0000000000004f96 __mulsf3x
- 0x0000000000004f9c __mulsf3_pse
+ 0x0000000000002e98 0xd2 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libm.a(mulsf3x.o)
+ 0x0000000000002eb6 __mulsf3x
+ 0x0000000000002ebc __mulsf3_pse
.text.avr-libc
- 0x000000000000504a 0xb8 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(rand.o)
- 0x00000000000050dc rand_r
- 0x00000000000050e2 rand
- 0x00000000000050ec srand
- .text.avr-libc
- 0x0000000000005102 0xe /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(memset.o)
- 0x0000000000005102 memset
- .text.libgcc.mul
- 0x0000000000005110 0x10 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_mulshisi3.o)
- 0x0000000000005110 __mulshisi3
- 0x0000000000005116 __mulohisi3
- 0x0000000000005120 . = ALIGN (0x2)
+ 0x0000000000002f6a 0x1e /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/libc.a(strncpy.o)
+ 0x0000000000002f6a strncpy
+ 0x0000000000002f88 . = ALIGN (0x2)
*(.fini9)
- .fini9 0x0000000000005120 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_exit.o)
- 0x0000000000005120 exit
- 0x0000000000005120 _exit
+ .fini9 0x0000000000002f88 0x0 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_exit.o)
+ 0x0000000000002f88 exit
+ 0x0000000000002f88 _exit
*(.fini9)
*(.fini8)
*(.fini8)
*(.fini7)
*(.fini7)
*(.fini6)
- .fini6 0x0000000000005120 0x16 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_dtors.o)
- 0x0000000000005120 __do_global_dtors
*(.fini6)
*(.fini5)
*(.fini5)
@@ -2077,118 +1692,86 @@ END GROUP
*(.fini1)
*(.fini1)
*(.fini0)
- .fini0 0x0000000000005136 0x4 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_exit.o)
+ .fini0 0x0000000000002f88 0x4 /usr/lib/gcc/avr/5.4.0/avr5/libgcc.a(_exit.o)
*(.fini0)
- *(.hightext)
- *(.hightext*)
- 0x000000000000513a . = ALIGN (0x2)
- *(.jumptables)
- *(.jumptables*)
- 0x000000000000513a _etext = .
+ 0x0000000000002f8c _etext = .
-.data 0x0000000000800100 0x88 load address 0x000000000000513a
+.data 0x0000000000800100 0x2a load address 0x0000000000002f8c
0x0000000000800100 PROVIDE (__data_start, .)
*(.data)
- .data 0x0000000000800100 0x4 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(rand.o)
*(.data*)
- .data._rand 0x0000000000800104 0x1 ../lib/libgamebuino.a(Sound.o)
- 0x0000000000800104 _rand
+ .data._rand 0x0000000000800100 0x1 ../lib/libgamebuino.a(Sound.o)
+ 0x0000000000800100 _rand
.data.analog_reference
- 0x0000000000800105 0x1 ../lib/libarduino.a(wiring_analog.o)
- 0x0000000000800105 analog_reference
- *(.gnu.linkonce.d*)
+ 0x0000000000800101 0x1 ../lib/libarduino.a(wiring_analog.o)
+ 0x0000000000800101 analog_reference
*(.rodata)
- .rodata 0x0000000000800106 0x7 Obj/Player.o
*(.rodata*)
- .rodata.UnitShadowOffsetTable
- 0x000000000080010d 0x6 Obj/Unit.o
- .rodata.UnitActionsTable
- 0x0000000000800113 0x7 Obj/Unit.o
.rodata.str1.1
- 0x000000000080011a 0x1f Obj/Unit.o
- .rodata.UnitActionsTable_Level
- 0x0000000000800139 0x8 Obj/Unit.o
- .rodata.UnitSpeedTable
- 0x0000000000800141 0x7 Obj/Unit.o
- .rodata.UnitResourcesTable
- 0x0000000000800148 0x2a Obj/Unit.o
- .rodata.UnitHPTable
- 0x0000000000800172 0x7 Obj/Unit.o
+ 0x0000000000800102 0xc Obj/Game.o
+ .rodata._ZTV11HumanPlayer
+ 0x000000000080010e 0x6 Obj/HumanPlayer.o
+ 0x000000000080010e _ZTV11HumanPlayer
+ .rodata._ZTV6Player
+ 0x0000000000800114 0x6 Obj/Player.o
+ 0x0000000000800114 _ZTV6Player
.rodata._ZTV7Display
- 0x0000000000800179 0x8 ../lib/libgamebuino.a(Display.o)
- 0x0000000000800179 _ZTV7Display
- .rodata._ZN9Gamebuino10changeGameEv.str1.1
- 0x0000000000800181 0x7 ../lib/libgamebuino.a(Gamebuino.o)
- *(.gnu.linkonce.r*)
- 0x0000000000800188 . = ALIGN (0x2)
- 0x0000000000800188 _edata = .
- 0x0000000000800188 PROVIDE (__data_end, .)
-
-.bss 0x0000000000800188 0x64f
- 0x0000000000800188 PROVIDE (__bss_start, .)
+ 0x000000000080011a 0x8 ../lib/libgamebuino.a(Display.o)
+ 0x000000000080011a _ZTV7Display
+ .rodata.str1.1
+ 0x0000000000800122 0x7 ../lib/libgamebuino.a(Gamebuino.o)
+ *(.gnu.linkonce.d*)
+ 0x000000000080012a . = ALIGN (0x2)
+ *fill* 0x0000000000800129 0x1
+ 0x000000000080012a _edata = .
+ 0x000000000080012a PROVIDE (__data_end, .)
+
+.bss 0x000000000080012a 0x296
+ 0x000000000080012a PROVIDE (__bss_start, .)
*(.bss)
*(.bss*)
- .bss.gb 0x0000000000800188 0x87 Obj/main.o
- 0x0000000000800188 gb
- .bss._ZL8MouseSpr
- 0x000000000080020f 0x9 Obj/Gameplay.o
- .bss.GamePlayers
- 0x0000000000800218 0x2c7 Obj/Gameplay.o
- 0x0000000000800218 GamePlayers
- .bss.timer_array
- 0x00000000008004df 0x60 Obj/System.o
- .bss.system_busy
- 0x000000000080053f 0x1 Obj/System.o
- .bss.one_second_timer
- 0x0000000000800540 0x1 Obj/System.o
- .bss.rand_seed
- 0x0000000000800541 0x1 Obj/System.o
- .bss.global_timer
- 0x0000000000800542 0x8 Obj/System.o
- .bss.UnitWalkingShadowSprTable
- 0x000000000080054a 0x3f Obj/Unit.o
- .bss.UnitSprTable
- 0x0000000000800589 0x3f Obj/Unit.o
+ .bss.gb 0x000000000080012a 0x87 Obj/System.o
+ 0x000000000080012a gb
.bss._displayBuffer
- 0x00000000008005c8 0x200 ../lib/libgamebuino.a(Display.o)
- 0x00000000008005c8 _displayBuffer
+ 0x00000000008001b1 0x200 ../lib/libgamebuino.a(Display.o)
+ 0x00000000008001b1 _displayBuffer
.bss._chanNoise
- 0x00000000008007c8 0x1 ../lib/libgamebuino.a(Sound.o)
- 0x00000000008007c8 _chanNoise
+ 0x00000000008003b1 0x1 ../lib/libgamebuino.a(Sound.o)
+ 0x00000000008003b1 _chanNoise
.bss._chanOutput
- 0x00000000008007c9 0x1 ../lib/libgamebuino.a(Sound.o)
- 0x00000000008007c9 _chanOutput
+ 0x00000000008003b2 0x1 ../lib/libgamebuino.a(Sound.o)
+ 0x00000000008003b2 _chanOutput
.bss._chanOutputVolume
- 0x00000000008007ca 0x1 ../lib/libgamebuino.a(Sound.o)
- 0x00000000008007ca _chanOutputVolume
+ 0x00000000008003b3 0x1 ../lib/libgamebuino.a(Sound.o)
+ 0x00000000008003b3 _chanOutputVolume
.bss._chanHalfPeriod
- 0x00000000008007cb 0x1 ../lib/libgamebuino.a(Sound.o)
- 0x00000000008007cb _chanHalfPeriod
+ 0x00000000008003b4 0x1 ../lib/libgamebuino.a(Sound.o)
+ 0x00000000008003b4 _chanHalfPeriod
.bss._chanState
- 0x00000000008007cc 0x1 ../lib/libgamebuino.a(Sound.o)
- 0x00000000008007cc _chanState
+ 0x00000000008003b5 0x1 ../lib/libgamebuino.a(Sound.o)
+ 0x00000000008003b5 _chanState
.bss._chanCount
- 0x00000000008007cd 0x1 ../lib/libgamebuino.a(Sound.o)
- 0x00000000008007cd _chanCount
+ 0x00000000008003b6 0x1 ../lib/libgamebuino.a(Sound.o)
+ 0x00000000008003b6 _chanCount
.bss.timer0_fract
- 0x00000000008007ce 0x1 ../lib/libarduino.a(wiring.o)
+ 0x00000000008003b7 0x1 ../lib/libarduino.a(wiring.o)
.bss.timer0_millis
- 0x00000000008007cf 0x4 ../lib/libarduino.a(wiring.o)
- 0x00000000008007cf timer0_millis
+ 0x00000000008003b8 0x4 ../lib/libarduino.a(wiring.o)
+ 0x00000000008003b8 timer0_millis
.bss.timer0_overflow_count
- 0x00000000008007d3 0x4 ../lib/libarduino.a(wiring.o)
- 0x00000000008007d3 timer0_overflow_count
+ 0x00000000008003bc 0x4 ../lib/libarduino.a(wiring.o)
+ 0x00000000008003bc timer0_overflow_count
*(COMMON)
- 0x00000000008007d7 PROVIDE (__bss_end, .)
- 0x000000000000513a __data_load_start = LOADADDR (.data)
- 0x00000000000051c2 __data_load_end = (__data_load_start + SIZEOF (.data))
+ 0x00000000008003c0 PROVIDE (__bss_end, .)
+ 0x0000000000002f8c __data_load_start = LOADADDR (.data)
+ 0x0000000000002fb6 __data_load_end = (__data_load_start + SIZEOF (.data))
-.noinit 0x00000000008007d7 0x0
+.noinit 0x00000000008003c0 0x0
[!provide] PROVIDE (__noinit_start, .)
*(.noinit*)
[!provide] PROVIDE (__noinit_end, .)
- 0x00000000008007d7 _end = .
- 0x00000000008007d7 PROVIDE (__heap_start, .)
+ 0x00000000008003c0 _end = .
+ 0x00000000008003c0 PROVIDE (__heap_start, .)
.eeprom 0x0000000000810000 0x0
*(.eeprom*)
@@ -2206,6 +1789,9 @@ END GROUP
.signature
*(.signature*)
+.user_signatures
+ *(.user_signatures*)
+
.stab
*(.stab)
@@ -2228,17 +1814,14 @@ END GROUP
*(.comment)
.comment 0x0000000000000000 0x11 Obj/main.o
0x12 (size before relaxing)
- .comment 0x0000000000000011 0x12 Obj/Gameplay.o
+ .comment 0x0000000000000011 0x12 Obj/Game.o
.comment 0x0000000000000011 0x12 Obj/System.o
- .comment 0x0000000000000011 0x12 Obj/Gfx.o
- .comment 0x0000000000000011 0x12 Obj/Pad.o
+ .comment 0x0000000000000011 0x12 Obj/HumanPlayer.o
.comment 0x0000000000000011 0x12 Obj/Player.o
.comment 0x0000000000000011 0x12 Obj/Camera.o
- .comment 0x0000000000000011 0x12 Obj/Unit.o
.comment 0x0000000000000011 0x12 Obj/Menu.o
.comment 0x0000000000000011 0x12 ../lib/libgamebuino.a(Buttons.o)
.comment 0x0000000000000011 0x12 ../lib/libgamebuino.a(Display.o)
- .comment 0x0000000000000011 0x12 ../lib/libgamebuino.a(font3x3.o)
.comment 0x0000000000000011 0x12 ../lib/libgamebuino.a(font3x5.o)
.comment 0x0000000000000011 0x12 ../lib/libgamebuino.a(Gamebuino.o)
.comment 0x0000000000000011 0x12 ../lib/libgamebuino.a(Sound.o)
@@ -2249,13 +1832,13 @@ END GROUP
.comment 0x0000000000000011 0x12 ../lib/libarduino.a(wiring_digital.o)
.comment 0x0000000000000011 0x12 ../lib/libarduino.a(Print.o)
.comment 0x0000000000000011 0x12 ../lib/libarduino.a(WMath.o)
+ .comment 0x0000000000000011 0x12 ../lib/libarduino.a(forward.o)
.comment 0x0000000000000011 0x12 ../lib/libarduino.a(SPI.o)
- .comment 0x0000000000000011 0x12 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(rand.o)
.note.gnu.avr.deviceinfo
0x0000000000000000 0x40
.note.gnu.avr.deviceinfo
- 0x0000000000000000 0x40 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/crtatmega328p.o
+ 0x0000000000000000 0x40 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/crtatmega328p.o
.note.gnu.build-id
*(.note.gnu.build-id)
@@ -2272,132 +1855,30 @@ END GROUP
.debug_sfnames
*(.debug_sfnames)
-.debug_aranges 0x0000000000000000 0x220
+.debug_aranges
*(.debug_aranges)
- .debug_aranges
- 0x0000000000000000 0x20 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_mulsi3.o)
- .debug_aranges
- 0x0000000000000020 0x20 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_udivmodqi4.o)
- .debug_aranges
- 0x0000000000000040 0x20 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_udivmodhi4.o)
- .debug_aranges
- 0x0000000000000060 0x20 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_divmodhi4.o)
- .debug_aranges
- 0x0000000000000080 0x20 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_udivmodsi4.o)
- .debug_aranges
- 0x00000000000000a0 0x20 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_divmodsi4.o)
- .debug_aranges
- 0x00000000000000c0 0x20 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_negsi2.o)
- .debug_aranges
- 0x00000000000000e0 0x20 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_exit.o)
- .debug_aranges
- 0x0000000000000100 0x20 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_copy_data.o)
- .debug_aranges
- 0x0000000000000120 0x20 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_clear_bss.o)
- .debug_aranges
- 0x0000000000000140 0x20 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_ctors.o)
- .debug_aranges
- 0x0000000000000160 0x20 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_dtors.o)
- .debug_aranges
- 0x0000000000000180 0x20 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_muluhisi3.o)
- .debug_aranges
- 0x00000000000001a0 0x20 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_adddi3_s8.o)
- .debug_aranges
- 0x00000000000001c0 0x20 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_tablejump2.o)
- .debug_aranges
- 0x00000000000001e0 0x20 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_umulhisi3.o)
- .debug_aranges
- 0x0000000000000200 0x20 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_mulshisi3.o)
.debug_pubnames
*(.debug_pubnames)
-.debug_info 0x0000000000000000 0x87a
+.debug_info 0x0000000000000000 0x5f4
*(.debug_info .gnu.linkonce.wi.*)
- .debug_info 0x0000000000000000 0x5f4 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/crtatmega328p.o
- .debug_info 0x00000000000005f4 0x26 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_mulsi3.o)
- .debug_info 0x000000000000061a 0x26 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_udivmodqi4.o)
- .debug_info 0x0000000000000640 0x26 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_udivmodhi4.o)
- .debug_info 0x0000000000000666 0x26 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_divmodhi4.o)
- .debug_info 0x000000000000068c 0x26 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_udivmodsi4.o)
- .debug_info 0x00000000000006b2 0x26 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_divmodsi4.o)
- .debug_info 0x00000000000006d8 0x26 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_negsi2.o)
- .debug_info 0x00000000000006fe 0x26 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_exit.o)
- .debug_info 0x0000000000000724 0x26 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_copy_data.o)
- .debug_info 0x000000000000074a 0x26 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_clear_bss.o)
- .debug_info 0x0000000000000770 0x26 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_ctors.o)
- .debug_info 0x0000000000000796 0x26 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_dtors.o)
- .debug_info 0x00000000000007bc 0x26 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_muluhisi3.o)
- .debug_info 0x00000000000007e2 0x26 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_adddi3_s8.o)
- .debug_info 0x0000000000000808 0x26 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_tablejump2.o)
- .debug_info 0x000000000000082e 0x26 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_umulhisi3.o)
- .debug_info 0x0000000000000854 0x26 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_mulshisi3.o)
-
-.debug_abbrev 0x0000000000000000 0x6f6
+ .debug_info 0x0000000000000000 0x5f4 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/crtatmega328p.o
+
+.debug_abbrev 0x0000000000000000 0x5a2
*(.debug_abbrev)
- .debug_abbrev 0x0000000000000000 0x5a2 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/crtatmega328p.o
- .debug_abbrev 0x00000000000005a2 0x14 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_mulsi3.o)
- .debug_abbrev 0x00000000000005b6 0x14 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_udivmodqi4.o)
- .debug_abbrev 0x00000000000005ca 0x14 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_udivmodhi4.o)
- .debug_abbrev 0x00000000000005de 0x14 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_divmodhi4.o)
- .debug_abbrev 0x00000000000005f2 0x14 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_udivmodsi4.o)
- .debug_abbrev 0x0000000000000606 0x14 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_divmodsi4.o)
- .debug_abbrev 0x000000000000061a 0x14 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_negsi2.o)
- .debug_abbrev 0x000000000000062e 0x14 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_exit.o)
- .debug_abbrev 0x0000000000000642 0x14 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_copy_data.o)
- .debug_abbrev 0x0000000000000656 0x14 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_clear_bss.o)
- .debug_abbrev 0x000000000000066a 0x14 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_ctors.o)
- .debug_abbrev 0x000000000000067e 0x14 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_dtors.o)
- .debug_abbrev 0x0000000000000692 0x14 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_muluhisi3.o)
- .debug_abbrev 0x00000000000006a6 0x14 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_adddi3_s8.o)
- .debug_abbrev 0x00000000000006ba 0x14 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_tablejump2.o)
- .debug_abbrev 0x00000000000006ce 0x14 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_umulhisi3.o)
- .debug_abbrev 0x00000000000006e2 0x14 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_mulshisi3.o)
-
-.debug_line 0x0000000000000000 0xa96
+ .debug_abbrev 0x0000000000000000 0x5a2 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/crtatmega328p.o
+
+.debug_line 0x0000000000000000 0x1a
*(.debug_line .debug_line.* .debug_line_end)
- .debug_line 0x0000000000000000 0x1d /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/crtatmega328p.o
- .debug_line 0x000000000000001d 0xaf /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_mulsi3.o)
- .debug_line 0x00000000000000cc 0x9d /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_udivmodqi4.o)
- .debug_line 0x0000000000000169 0xcd /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_udivmodhi4.o)
- .debug_line 0x0000000000000236 0xc7 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_divmodhi4.o)
- .debug_line 0x00000000000002fd 0x121 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_udivmodsi4.o)
- .debug_line 0x000000000000041e 0xcd /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_divmodsi4.o)
- .debug_line 0x00000000000004eb 0x61 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_negsi2.o)
- .debug_line 0x000000000000054c 0x61 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_exit.o)
- .debug_line 0x00000000000005ad 0x97 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_copy_data.o)
- .debug_line 0x0000000000000644 0x85 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_clear_bss.o)
- .debug_line 0x00000000000006c9 0x91 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_ctors.o)
- .debug_line 0x000000000000075a 0x91 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_dtors.o)
- .debug_line 0x00000000000007eb 0x91 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_muluhisi3.o)
- .debug_line 0x000000000000087c 0x79 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_adddi3_s8.o)
- .debug_line 0x00000000000008f5 0x79 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_tablejump2.o)
- .debug_line 0x000000000000096e 0xaf /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_umulhisi3.o)
- .debug_line 0x0000000000000a1d 0x79 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_mulshisi3.o)
+ .debug_line 0x0000000000000000 0x1a /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/crtatmega328p.o
.debug_frame
*(.debug_frame)
-.debug_str 0x0000000000000000 0x26d
+.debug_str 0x0000000000000000 0x208
*(.debug_str)
- .debug_str 0x0000000000000000 0x208 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/crtatmega328p.o
- .debug_str 0x0000000000000208 0x65 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_mulsi3.o)
- .debug_str 0x000000000000026d 0x65 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_udivmodqi4.o)
- .debug_str 0x000000000000026d 0x65 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_udivmodhi4.o)
- .debug_str 0x000000000000026d 0x65 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_divmodhi4.o)
- .debug_str 0x000000000000026d 0x65 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_udivmodsi4.o)
- .debug_str 0x000000000000026d 0x65 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_divmodsi4.o)
- .debug_str 0x000000000000026d 0x65 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_negsi2.o)
- .debug_str 0x000000000000026d 0x65 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_exit.o)
- .debug_str 0x000000000000026d 0x65 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_copy_data.o)
- .debug_str 0x000000000000026d 0x65 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_clear_bss.o)
- .debug_str 0x000000000000026d 0x65 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_ctors.o)
- .debug_str 0x000000000000026d 0x65 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_dtors.o)
- .debug_str 0x000000000000026d 0x65 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_muluhisi3.o)
- .debug_str 0x000000000000026d 0x65 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_adddi3_s8.o)
- .debug_str 0x000000000000026d 0x65 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_tablejump2.o)
- .debug_str 0x000000000000026d 0x65 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_umulhisi3.o)
- .debug_str 0x000000000000026d 0x65 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_mulshisi3.o)
+ .debug_str 0x0000000000000000 0x208 /usr/lib/gcc/avr/5.4.0/../../../avr/lib/avr5/crtatmega328p.o
.debug_loc
*(.debug_loc)
@@ -2425,8 +1906,5 @@ END GROUP
.debug_macro
*(.debug_macro)
-
-.debug_addr
- *(.debug_addr)
OUTPUT(Exe/POCKET.ELF elf32-avr)
LOAD linker stubs
diff --git a/Game.cpp b/Game.cpp
new file mode 100644
index 0000000..2fa2ba2
--- /dev/null
+++ b/Game.cpp
@@ -0,0 +1,90 @@
+/* **************************************
+ * Includes *
+ * **************************************/
+
+#include "Game.h"
+#include "Sprite.h"
+#include "MouseSpr.i"
+#include "System.h"
+#include <Gamebuino.h>
+#include <Display.h>
+
+/* **************************************
+ * Defines *
+ * **************************************/
+
+/* **************************************
+ * Structs and enums *
+ * **************************************/
+
+enum tPauseMenuChoice
+{
+ PAUSE_MENU_CHOICE_RESUME,
+ PAUSE_MENU_CHOICE_QUIT,
+
+ MAX_PAUSE_MENU_CHOICES,
+};
+
+/* **************************************
+ * Global variables *
+ * **************************************/
+
+/* **************************************
+ * Local variables *
+ * **************************************/
+
+/* **************************************
+ * Local prototypes *
+ * **************************************/
+
+static enum tPauseMenuChoice GamePause(void);
+
+/* **************************************
+ * Functions definition *
+ * **************************************/
+
+/*****************************************************************//**
+ *
+ * \brief Entry point for gameplay logic.
+ *
+ *********************************************************************/
+void Game(const struct tGameConfig& psGameConfig)
+{
+#if 0
+ Sprite MouseSpr( MouseSprData,
+ INVERT,
+ NOROT,
+ NOFLIP,
+ (X_SCREEN_RESOLUTION >> 1) - 4,
+ (Y_SCREEN_RESOLUTION >> 1) - 4);
+#endif /* 0 */
+
+ do
+ {
+ /* Do not calculate a new frame
+ * until refresh flag is set. */
+ while (gb.update() == false);
+ } while (GamePause() != PAUSE_MENU_CHOICE_QUIT);
+}
+
+static enum tPauseMenuChoice GamePause(void)
+{
+ if (gb.buttons.released(BTN_C) != false)
+ {
+ static const char* const astrPauseMenuOptions[MAX_PAUSE_MENU_CHOICES] PROGMEM =
+ {
+ [PAUSE_MENU_CHOICE_RESUME] = "Resume",
+ [PAUSE_MENU_CHOICE_QUIT] = "Quit"
+ };
+
+ return (enum tPauseMenuChoice)gb.menu(astrPauseMenuOptions, MAX_PAUSE_MENU_CHOICES);
+ }
+ else
+ {
+ /* C button has not been pressed. Exit. */
+ }
+
+ /* Return false since no
+ * actions need to be done yet. */
+ return PAUSE_MENU_CHOICE_RESUME;
+}
diff --git a/Game.h b/Game.h
new file mode 100644
index 0000000..5021c87
--- /dev/null
+++ b/Game.h
@@ -0,0 +1,35 @@
+#ifndef GAMEPLAY_H__
+#define GAMEPLAY_H__
+
+/* **************************************
+ * Includes *
+ * **************************************/
+
+#include "HumanPlayer.h"
+#include <stdint.h>
+
+/* **************************************
+ * Defines *
+ * **************************************/
+
+/* **************************************
+ * Structs and enums *
+ * **************************************/
+
+struct tGameConfig
+{
+ HumanPlayer* pHumanPlayerData;
+ uint8_t u8NHumanPlayers;
+};
+
+/* **************************************
+ * Global prototypes *
+ * **************************************/
+
+void Game(const struct tGameConfig& psGameConfig);
+
+/* **************************************
+ * Global variables *
+ * **************************************/
+
+#endif /* GAMEPLAY_H__ */
diff --git a/Gameplay.cpp b/Gameplay.cpp
deleted file mode 100644
index 1613a86..0000000
--- a/Gameplay.cpp
+++ /dev/null
@@ -1,122 +0,0 @@
-/* **************************************
- * Includes *
- * **************************************/
-
-#include "Gameplay.h"
-#include "MouseSpr.i"
-#include "Pad.h"
-#include "Camera.h"
-
-/* **************************************
- * Defines *
- * **************************************/
-
-/* **************************************
- * Global variables *
- * **************************************/
-
-Player GamePlayers[GAME_MAX_PLAYERS];
-
-/* **************************************
- * Local variables *
- * **************************************/
-
-static const char PauseMenuOption_0[] PROGMEM = "Resume";
-static const char PauseMenuOption_1[] PROGMEM = "Quit";
-static TYPE_SPRITE MouseSpr;
-
-static const char* const PauseMenuOptions[] PROGMEM = { PauseMenuOption_0,
- PauseMenuOption_1 };
-
-/* **************************************
- * Local prototypes *
- * **************************************/
-
-static void GameCalculations(void);
-static void GameGraphics(void);
-static bool GamePause(void);
-static void GameLoop(void);
-
-void GameInit(void)
-{
- for (uint8_t i = 0; i < GAME_MAX_PLAYERS; i++)
- {
- GamePlayers[i].Init();
- }
-
- GamePlayers[0].setHuman(true);
-
- MouseSpr.Data = MouseSprData;
- MouseSpr.color = GFX_INVERT;
- MouseSpr.rotation = NOROT;
- MouseSpr.flip = NOFLIP;
- MouseSpr.x = (X_SCREEN_RESOLUTION >> 1) - 4;
- MouseSpr.y = (Y_SCREEN_RESOLUTION >> 1) - 4;
-
- GfxInit();
-
- GameLoop();
-}
-
-bool GamePause(void)
-{
- if (PadButtonReleased(PAD_C) != false)
- {
- uint8_t choice = gb.menu(PauseMenuOptions, 2);
-
- if (choice != 0)
- {
- return true;
- }
- }
-
- return false;
-}
-
-void GameCalculations(void)
-{
- uint8_t i;
-
- for (i = 0; i < GAME_MAX_PLAYERS; i++)
- {
- GamePlayers[i].Handler();
- }
-
- if (PadAnyKeyPressed() != false)
- {
- SystemSetRandSeed();
- }
-}
-
-void GameGraphics(void)
-{
- uint8_t i;
-
- GfxClearScreen();
-
- for (i = 0; i < GAME_MAX_PLAYERS; i++)
- {
- GamePlayers[i].DrawHandler();
- }
-
- GfxDrawSprite(&MouseSpr);
-}
-
-void GameLoop(void)
-{
- while (1)
- {
- if (GamePause() != false)
- {
- return;
- }
-
- GameCalculations();
-
- while (GfxRefreshNeeded() == false);
-
- GameGraphics();
-
- SystemIncreaseGlobalTimer();
- }
-}
diff --git a/Gameplay.h b/Gameplay.h
deleted file mode 100644
index b7179c2..0000000
--- a/Gameplay.h
+++ /dev/null
@@ -1,33 +0,0 @@
-#ifndef __GAMEPLAY_H__
-#define __GAMEPLAY_H__
-
-/* **************************************
- * Includes *
- * **************************************/
-
-#include "Global_Inc.h"
-#include "Player.h"
-
-/* **************************************
- * Defines *
- * **************************************/
-
-#define GAME_MAX_PLAYERS 1
-
-/* **************************************
- * Structs and enums *
- * **************************************/
-
-/* **************************************
- * Global prototypes *
- * **************************************/
-
-void GameInit(void);
-
-/* **************************************
- * Global variables *
- * **************************************/
-
-extern Player GamePlayers[GAME_MAX_PLAYERS];
-
-#endif // __GAMEPLAY_H__
diff --git a/Gfx.cpp b/Gfx.cpp
index 7596443..439b33c 100644
--- a/Gfx.cpp
+++ b/Gfx.cpp
@@ -1,27 +1,26 @@
/* *************************************
- * Includes
+ * Includes
* *************************************/
#include "Gfx.h"
/* *************************************
- * Defines
+ * Defines
* *************************************/
/* *************************************
- * Structs and enums
+ * Structs and enums
* *************************************/
/* *************************************
- * Local variables
+ * Local variables
* *************************************/
static bool GfxIsInsideScreenArea(int8_t x, int8_t y, uint8_t w, uint8_t h);
void GfxInit(void)
{
- gb.display.persistence = false; // Clears screen automatically
- gb.display.setFont(font3x5);
+ gb.display.persistence = true; /* Clears screen automatically. */
}
void GfxDrawSprite(TYPE_SPRITE* ptrSprite)
@@ -31,131 +30,125 @@ void GfxDrawSprite(TYPE_SPRITE* ptrSprite)
return;
}
- if (GfxIsSpriteInsideScreenArea(ptrSprite) != false)
- {
- int8_t orig_color = gb.display.getColor();
+ if (GfxIsSpriteInsideScreenArea(ptrSprite) != false)
+ {
+ int8_t orig_color = gb.display.getColor();
- gb.display.setColor(ptrSprite->color, GFX_WHITE);
- gb.display.drawBitmap( ptrSprite->x,
- ptrSprite->y,
- ptrSprite->Data,
- ptrSprite->rotation,
- ptrSprite->flip );
+ gb.display.setColor(ptrSprite->color, GFX_WHITE);
+ gb.display.drawBitmap( ptrSprite->x,
+ ptrSprite->y,
+ ptrSprite->Data,
+ ptrSprite->rotation,
+ ptrSprite->flip );
- gb.display.setColor(orig_color);
- }
+ gb.display.setColor(orig_color);
+ }
}
bool GfxRefreshNeeded(void)
{
- return gb.update();
+ return gb.update();
}
void GfxShowKeyboard(char* str, uint8_t length)
{
- gb.keyboard(str, length);
-}
-
-void GfxClearScreen(void)
-{
- gb.display.fillScreen(GFX_WHITE);
- gb.display.clear();
+ gb.keyboard(str, length);
}
bool GfxIsInsideScreenArea(int8_t x, int8_t y, uint8_t w, uint8_t h)
{
- if ( ( (x + w) >= 0)
- &&
- (x < X_SCREEN_RESOLUTION)
- &&
- ( (y + h) >= 0)
- &&
- (y < Y_SCREEN_RESOLUTION) )
- {
- return true;
- }
+ if ( ( (x + w) >= 0)
+ &&
+ (x < X_SCREEN_RESOLUTION)
+ &&
+ ( (y + h) >= 0)
+ &&
+ (y < Y_SCREEN_RESOLUTION) )
+ {
+ return true;
+ }
- return false;
+ return false;
}
bool GfxIsSpriteInsideScreenArea(TYPE_SPRITE* spr)
{
- return GfxIsInsideScreenArea(spr->x, spr->y, spr->w, spr->h);
+ return GfxIsInsideScreenArea(spr->x, spr->y, spr->w, spr->h);
}
uint8_t GfxGetWidthFromSpriteData(const uint8_t* sprData)
{
- // On Gamebuino bitmaps, width is always stored on first byte.
- return pgm_read_byte_near(&sprData[0]);
+ /* On Gamebuino bitmaps, width is always stored on first byte.. */
+ return pgm_read_byte_near(&sprData[0]);
}
uint8_t GfxGetHeightFromSpriteData(const uint8_t* sprData)
{
- // On Gamebuino bitmaps, height is always stored on second byte.
- return pgm_read_byte_near(&sprData[1]);
+ /* On Gamebuino bitmaps, height is always stored on second byte.. */
+ return pgm_read_byte_near(&sprData[1]);
}
void GfxPrintText_Flash(const __FlashStringHelper * str)
{
- gb.popup(str, 20 * 3 /* 3 seconds */);
+ gb.popup(str, 20 * 3 /* 3 seconds */);
}
void GfxPrintTextFont(const char* str, const uint8_t* font, uint8_t x, uint8_t y)
{
- uint8_t* orig_font = gb.display.getFont();
+ uint8_t* orig_font = gb.display.getFont();
- gb.display.cursorX = x;
- gb.display.cursorY = y;
+ gb.display.cursorX = x;
+ gb.display.cursorY = y;
- gb.display.setFont(font);
+ gb.display.setFont(font);
- gb.display.setColor(GFX_BLACK, GFX_WHITE);
+ gb.display.setColor(GFX_BLACK, GFX_WHITE);
- gb.display.print(str);
+ gb.display.print(str);
- if (orig_font != NULL)
- {
- gb.display.setFont(orig_font);
- }
+ if (orig_font != NULL)
+ {
+ gb.display.setFont(orig_font);
+ }
}
void GfxPrintText(const char* str, uint8_t x, uint8_t y)
{
- GfxPrintTextFont(str, font3x5, x, y);
+ GfxPrintTextFont(str, font3x5, x, y);
}
void GfxDrawCircle(uint16_t x, uint16_t y, uint8_t radius, int8_t color)
{
- if (GfxIsInsideScreenArea(x, y, radius, radius) != false)
- {
- int8_t orig_color = gb.display.getColor();
- gb.display.setColor(color);
- gb.display.drawCircle(x, y, radius);
- gb.display.setColor(orig_color);
- }
+ if (GfxIsInsideScreenArea(x, y, radius, radius) != false)
+ {
+ int8_t orig_color = gb.display.getColor();
+ gb.display.setColor(color);
+ gb.display.drawCircle(x, y, radius);
+ gb.display.setColor(orig_color);
+ }
}
void GfxDrawFillCircle(uint16_t x, uint16_t y, uint8_t radius, int8_t color)
{
if (GfxIsInsideScreenArea(x, y, radius, radius) != false)
- {
+ {
int8_t orig_color = gb.display.getColor();
- gb.display.setColor(color);
- gb.display.fillCircle(x, y, radius);
- gb.display.setColor(orig_color);
+ gb.display.setColor(color);
+ gb.display.fillCircle(x, y, radius);
+ gb.display.setColor(orig_color);
}
}
void GfxDrawRectangle(uint8_t x, uint8_t y, uint8_t w, uint8_t h, int8_t color)
{
- if (GfxIsInsideScreenArea(x, y, w, h) != false)
- {
- int8_t orig_color = gb.display.getColor();
+ if (GfxIsInsideScreenArea(x, y, w, h) != false)
+ {
+ int8_t orig_color = gb.display.getColor();
- gb.display.setColor(color);
- gb.display.drawRect(x, y, w, h);
- gb.display.setColor(orig_color);
- }
+ gb.display.setColor(color);
+ gb.display.drawRect(x, y, w, h);
+ gb.display.setColor(orig_color);
+ }
}
void GfxDrawLine(uint8_t x0, uint8_t x1, uint8_t y0, uint8_t y1, uint8_t color)
@@ -166,12 +159,12 @@ void GfxDrawLine(uint8_t x0, uint8_t x1, uint8_t y0, uint8_t y1, uint8_t color)
void GfxFillRectangle(uint8_t x, uint8_t y, uint8_t w, uint8_t h, int8_t color)
{
- if (GfxIsInsideScreenArea(x, y, w, h) != false)
- {
- int8_t orig_color = gb.display.getColor();
+ if (GfxIsInsideScreenArea(x, y, w, h) != false)
+ {
+ int8_t orig_color = gb.display.getColor();
- gb.display.setColor(color);
- gb.display.fillRect(x, y, w, h);
- gb.display.setColor(orig_color);
- }
+ gb.display.setColor(color);
+ gb.display.fillRect(x, y, w, h);
+ gb.display.setColor(orig_color);
+ }
}
diff --git a/Gfx.h b/Gfx.h
index 055b0b8..3bcd790 100644
--- a/Gfx.h
+++ b/Gfx.h
@@ -1,62 +1,49 @@
-#ifndef __GFX_HEADER__
-#define __GFX_HEADER__
+#ifndef GFX_H__
+#define GFX_H__
/* *************************************
- * Includes
+ * Includes
* *************************************/
-#include "Global_Inc.h"
-#include "System.h"
-#include "Player.h"
-#include "Camera.h"
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif //__cplusplus
-
/* *************************************
- * Defines
+ * Defines
* *************************************/
-#define X_SCREEN_RESOLUTION 84
-#define Y_SCREEN_RESOLUTION 48
-
-#define GFX_WHITE 0
-#define GFX_BLACK 1
-#define GFX_INVERT 2
-#define GFX_GRAY 3
-
-#define GFX_NOFLIP 0
-#define GFX_FLIPH 1
-#define GFX_FLIPV 2
-#define GFX_FLIPHV (GFX_FLIPH | GFX_FLIPV)
-
-#define GFX_NOROT 0
-#define GFX_ROTCCW 1
-#define GFX_ROTCW 3
-
/* *************************************
- * Structs and enums
+ * Structs and enums
* *************************************/
-typedef struct t_sprite
+enum tScreenResolution
+{
+ X_SCREEN_RESOLUTION = 84,
+ Y_SCREEN_RESOLUTION = 48
+};
+
+enum tColour
{
- int8_t x;
- int8_t y;
- uint8_t w;
- uint8_t h;
- uint8_t rotation;
- uint8_t flip;
- uint8_t color;
- const uint8_t* Data;
-}TYPE_SPRITE;
+ GFX_WHITE,
+ GFX_BLACK,
+ GFX_INVERT,
+ GFX_GRAY
+};
-typedef struct t_Resource TYPE_RESOURCES;
-typedef struct t_Camera TYPE_CAMERA;
+enum tMirror
+{
+ GFX_NOFLIP,
+ GFX_FLIPH,
+ GFX_FLIPV,
+ GFX_FLIPHV = (GFX_FLIPH | GFX_FLIPV)
+};
+
+enum tRotation
+{
+ GFX_NOROT,
+ GFX_ROTCCW,
+ GFX_ROTCW
+};
/* *************************************
- * Global prototypes
+ * Global prototypes
* *************************************/
void GfxDrawSprite(TYPE_SPRITE* ptrSprite);
@@ -73,13 +60,13 @@ bool GfxIsSpriteInsideScreenArea(TYPE_SPRITE* spr);
void GfxClearScreen(void);
#ifdef __cplusplus
void GfxPrintText_Flash(const __FlashStringHelper * str);
-#endif // __cplusplus
+#endif /* cplusplus. */
void GfxPrintText(const char* str, uint8_t x, uint8_t y);
void GfxPrintTextFont(const char* str, const uint8_t* font, uint8_t x, uint8_t y);
void GfxInit(void);
#ifdef __cplusplus
}
-#endif //__cplusplus
+#endif /* cplusplus. */
-#endif //__GFX_HEADER__
+#endif /* GFX_H__. */
diff --git a/Global_Inc.h b/Global_Inc.h
index 1b1cd88..358b545 100644
--- a/Global_Inc.h
+++ b/Global_Inc.h
@@ -1,9 +1,9 @@
-#ifndef __GLOBAL_INC_HEADER__
-#define __GLOBAL_INC_HEADER__
+#ifndef GLOBAL_INC_H__
+#define GLOBAL_INC_H__
/* *************************************
- * Includes
+ * Includes
* *************************************/
#include <inttypes.h>
@@ -17,10 +17,10 @@
#ifdef __cplusplus
#include <Gamebuino.h>
#include <Print.h>
-#endif //__cplusplus
+#endif /* cplusplus. */
/* *************************************
- * Defines
+ * Defines
* *************************************/
#define DEBUG_VAR(var, suff, x, y) if (1) \
@@ -31,22 +31,22 @@
}
/* *************************************
- * Structs and enums
+ * Structs and enums
* *************************************/
/* *************************************
- * Global variables
+ * Global variables
* *************************************/
#ifdef __cplusplus
extern Gamebuino gb;
-#endif //__cplusplus
+#endif /* cplusplus. */
extern const uint8_t font3x5[];
extern const uint8_t font3x3[];
/* *************************************
- * Global prototypes
+ * Global prototypes
* *************************************/
-#endif //__GLOBAL_INC_HEADER__
+#endif /* GLOBAL_INC_H__. */
diff --git a/HumanPlayer.cpp b/HumanPlayer.cpp
new file mode 100644
index 0000000..eadebcf
--- /dev/null
+++ b/HumanPlayer.cpp
@@ -0,0 +1,43 @@
+/* **************************************
+ * Includes *
+ * **************************************/
+
+#include "HumanPlayer.h"
+
+/* **************************************
+ * Defines *
+ * **************************************/
+
+/* **************************************
+ * Structs and enums *
+ * **************************************/
+
+/* **************************************
+ * Local variables *
+ * **************************************/
+
+/* **************************************
+ * Functions definition *
+ * **************************************/
+
+HumanPlayer::HumanPlayer(const char* const strPlayerName) :
+Player(strPlayerName)
+{
+}
+
+/*****************************************************************//**
+ *
+ * \brief Event handler executed when human player presses
+ * left arrow button.
+ *
+ *********************************************************************/
+void HumanPlayer::onLeftBtnPressed(void)
+{
+ /* Also, send the event to Camera object. */
+ _cam.onLeftBtnPressed();
+}
+
+void HumanPlayer::drawHandler(void)
+{
+
+}
diff --git a/HumanPlayer.h b/HumanPlayer.h
new file mode 100644
index 0000000..0ed983a
--- /dev/null
+++ b/HumanPlayer.h
@@ -0,0 +1,34 @@
+#ifndef HUMAN_PLAYER_H__
+#define HUMAN_PLAYER_H__
+
+/* **************************************
+ * Includes *
+ * **************************************/
+
+#include "Player.h"
+#include "Camera.h"
+
+/* **************************************
+ * Defines *
+ * **************************************/
+
+/* **************************************
+ * Structs and enums *
+ * **************************************/
+
+/* **************************************
+ * Class definition *
+ * **************************************/
+
+class HumanPlayer : public Player
+{
+ public:
+ HumanPlayer(const char* const strPlayerName);
+ void onLeftBtnPressed(void);
+ void drawHandler(void);
+
+ private:
+ Camera _cam;
+};
+
+#endif /* HUMAN_PLAYER_H__ */
diff --git a/Makefile b/Makefile
index d98733d..d047fd3 100644
--- a/Makefile
+++ b/Makefile
@@ -8,11 +8,12 @@ INCLUDE= $(foreach dir,$(INCLUDE_FOLDERS),-I$/../include/$(dir))
EXE_DIR=Exe
CC_FLAGS += -Werror -Wfatal-errors
+CXX_FLAGS = $(CC_FLAGS) -std=c++11
OBJ_DIR = Obj
SRC_DIR = .
-OBJECTS=$(addprefix $(OBJ_DIR)/,main.o Gameplay.o System.o Gfx.o Pad.o \
+OBJECTS=$(addprefix $(OBJ_DIR)/,main.o Game.o System.o HumanPlayer.o Sprite.o \
Player.o Camera.o Unit.o Menu.o )
DEPS = $(OBJECTS:.o=.d)
@@ -36,7 +37,7 @@ run: $(EXE_DIR)/$(PROJECT).ELF
-include $(DEPS)
$(OBJ_DIR)/%.o: $(SRC_DIR)/%.cpp $(OBJ_DIR)/%.d
- $(CXX) $< -o $@ $(INCLUDE) $(DEFINE) $(CC_FLAGS) -MMD
+ $(CXX) $< -o $@ $(INCLUDE) $(DEFINE) $(CXX_FLAGS) -MMD
$(OBJ_DIR)/%.o: $(SRC_DIR)/%.c $(OBJ_DIR)/%.d
$(CC) $< -o $@ $(INCLUDE) $(DEFINE) $(CC_FLAGS) -MMD
diff --git a/Menu.cpp b/Menu.cpp
index 85c36ae..a8c0115 100644
--- a/Menu.cpp
+++ b/Menu.cpp
@@ -1,56 +1,103 @@
/* **************************************
- * Includes *
+ * Includes *
* **************************************/
#include "Menu.h"
-#include "Player.h"
-#include "Gameplay.h"
+#include "HumanPlayer.h"
+#include "Game.h"
+#include "System.h"
+#include <Gamebuino.h>
+#include <Arduino.h>
/* **************************************
- * Defines *
+ * Defines *
* **************************************/
+#define GAME_NAME "Pocket Empires"
+
/* **************************************
- * Local variables *
+ * Structs and enums *
* **************************************/
-static const char MainMenuOption_0[] PROGMEM = "Single player game";
-static const char MainMenuOption_1[] PROGMEM = "Multiplayer game";
-static const char MainMenuOption_2[] PROGMEM = "Options";
-static const char MainMenuOption_3[] PROGMEM = "Quit";
-
-static const char* const MainMenuOptions[] PROGMEM = { MainMenuOption_0,
- MainMenuOption_1,
- MainMenuOption_2,
- MainMenuOption_3 };
+/* **************************************
+ * Local variables *
+ * **************************************/
-void MenuGetPlayerName(Player * ptrPlayer)
-{
- memset(ptrPlayer->getName(), 0, PLAYER_NAME_LENGTH);
- gb.getDefaultName(ptrPlayer->getName());
-}
+/* **************************************
+ * Functions definition *
+ * **************************************/
+/*****************************************************************//**
+ *
+ * \brief Video game entry point. Main menu is shown, allowing
+ * the user to choose an option.
+ *
+ *********************************************************************/
void MainMenu(void)
{
- //int8_t menu(const char* const* items, uint8_t length);
+ enum
+ {
+ CHOICE_SINGLE_PLAYER_GAME,
+ CHOICE_MULTI_PLAYER_GAME,
+ CHOICE_OPTIONS,
+
+ MAX_CHOICES
+ };
+
+ static const char strMainMenuOptions_0[] PROGMEM = "Single player game";
+ static const char strMainMenuOptions_1[] PROGMEM = "Multiplayer game";
+ static const char strMainMenuOptions_2[] PROGMEM = "Options";
+
+ static const char* const astrMainMenuOptions[MAX_CHOICES] PROGMEM =
+ {
+ [CHOICE_SINGLE_PLAYER_GAME] = strMainMenuOptions_0,
+ [CHOICE_MULTI_PLAYER_GAME] = strMainMenuOptions_1,
+ [CHOICE_OPTIONS] = strMainMenuOptions_2
+ };
+
+ /* Show video game name on
+ * Gamebuino default title screen. */
+ gb.titleScreen(F(GAME_NAME));
+
+ /* Choose which module should be
+ * executed depending on user input. */
+ switch (gb.menu(astrMainMenuOptions, MAX_CHOICES))
+ {
+ case CHOICE_SINGLE_PLAYER_GAME:
+ {
+ enum
+ {
+ /* Maximum number of characters for
+ * player name, as specified on
+ * Gamebuino documentation. */
+ GAMEBUINO_MAX_PLAYER_NAME = 10
+ };
+
+ char strName[GAMEBUINO_MAX_PLAYER_NAME] = {0};
- uint8_t choice = gb.menu(MainMenuOptions, 3);
+ /* Fill strName with default user name. */
+ gb.getDefaultName(strName);
- switch(choice)
- {
- case 0:
- MenuGetPlayerName(&GamePlayers[0]);
- GameInit();
- break;
- case 1:
- break;
- break;
- case 2:
+ /* Declare 1 human player instance. */
+ HumanPlayer h(strName);
- break;
+ const struct tGameConfig c =
+ {
+ .pHumanPlayerData = &h,
+ .u8NHumanPlayers = 1
+ };
- default:
- break;
- }
+ /* Initialize game with defined configuration. */
+ Game(c);
+ }
+ break;
+ case CHOICE_MULTI_PLAYER_GAME:
+ /* Not implemented yet. Fall through. */
+ case CHOICE_OPTIONS:
+ /* Not implemented yet. Fall through. */
+ default:
+ /* Undefined choice. Exit. */
+ break;
+ }
}
diff --git a/Menu.d b/Menu.d
new file mode 100644
index 0000000..d9d8455
--- /dev/null
+++ b/Menu.d
@@ -0,0 +1,11 @@
+Menu.o: Menu.cpp Menu.h HumanPlayer.h Player.h Camera.h Game.h System.h \
+ ../include/gamebuino/Gamebuino.h ../include/arduino/Arduino.h \
+ ../include/arduino/binary.h ../include/arduino/WCharacter.h \
+ ../include/arduino/WString.h ../include/arduino/HardwareSerial.h \
+ ../include/arduino/Stream.h ../include/arduino/Print.h \
+ ../include/arduino/Printable.h ../include/arduino/new.h \
+ ../include/arduino/pins_arduino.h ../include/gamebuino/settings.c \
+ ../include/gamebuino/Backlight.h ../include/gamebuino/Display.h \
+ ../include/arduino/SPI.h ../include/arduino/Arduino.h \
+ ../include/gamebuino/Buttons.h ../include/gamebuino/Battery.h \
+ ../include/gamebuino/Sound.h
diff --git a/Menu.h b/Menu.h
index 35c8108..904b0b6 100644
--- a/Menu.h
+++ b/Menu.h
@@ -1,16 +1,14 @@
-#ifndef __MENU_HEADER__
-#define __MENU_HEADER__
+#ifndef MENU_H__
+#define MENU_H__
/* **************************************
- * Includes *
+ * Includes *
* **************************************/
-#include "Global_Inc.h"
-
/* **************************************
- * Global prototypes *
+ * Global prototypes *
* **************************************/
void MainMenu(void);
-#endif // __MENU_HEADER__
+#endif /* MENU_H__. */
diff --git a/MouseSpr.i b/MouseSpr.i
index a4c7e8b..91bc2ef 100644
--- a/MouseSpr.i
+++ b/MouseSpr.i
@@ -1,18 +1,21 @@
#ifndef MOUSE_SPR_I__
#define MOUSE_SPR_I__
+#include <stdint.h>
+#include <avr/pgmspace.h>
+#include <Arduino.h>
+
const uint8_t PROGMEM MouseSprData[] =
{
- 8,8, //width and height
- B11111100,
- B10000100,
- B10001000,
- B10000100,
- B10100010,
- B11010001,
- B00001010,
- B00000100,
-
+ 8,8, //width and height
+ B11111100,
+ B10000100,
+ B10001000,
+ B10000100,
+ B10100010,
+ B11010001,
+ B00001010,
+ B00000100
};
-#endif // MOUSE_SPR_I__
+#endif /* MOUSE_SPR_I__ */
diff --git a/Pad.cpp b/Pad.cpp
index fc5fa60..6a00307 100644
--- a/Pad.cpp
+++ b/Pad.cpp
@@ -1,48 +1,48 @@
/* *************************************
- * Includes
+ * Includes
* *************************************/
#include "Pad.h"
/* *************************************
- * Defines
+ * Defines
* *************************************/
/* *************************************
- * Structs and enums
+ * Structs and enums
* *************************************/
bool PadButtonReleased(PAD_BUTTONS btn)
{
- return gb.buttons.released(btn);
+ return gb.buttons.released(btn);
}
bool PadButtonPressed(PAD_BUTTONS btn)
{
- return PadButtonPressedFrames(btn, 0);
+ return PadButtonPressedFrames(btn, 0);
}
bool PadButtonPressedFrames(PAD_BUTTONS btn, uint8_t frames)
{
- return gb.buttons.timeHeld(btn) > frames;
+ return gb.buttons.timeHeld(btn) > frames;
}
bool PadDirectionKeyPressed(void)
{
- return ( PadButtonPressed(PAD_UP)
- ||
- PadButtonPressed(PAD_DOWN)
- ||
- PadButtonPressed(PAD_LEFT)
- ||
- PadButtonPressed(PAD_RIGHT) );
+ return ( PadButtonPressed(PAD_UP)
+ ||
+ PadButtonPressed(PAD_DOWN)
+ ||
+ PadButtonPressed(PAD_LEFT)
+ ||
+ PadButtonPressed(PAD_RIGHT) );
}
bool PadAnyKeyPressed(void)
{
- return ( (PadDirectionKeyPressed() != false)
- ||
- (PadButtonPressed(PAD_A) != false)
- ||
- (PadButtonPressed(PAD_B) != false) );
+ return ( (PadDirectionKeyPressed() != false)
+ ||
+ (PadButtonPressed(PAD_A) != false)
+ ||
+ (PadButtonPressed(PAD_B) != false) );
}
diff --git a/Pad.h b/Pad.h
index a89b308..a9f3ea7 100644
--- a/Pad.h
+++ b/Pad.h
@@ -1,40 +1,40 @@
-#ifndef __PAD_HEADER__
-#define __PAD_HEADER__
+#ifndef PAD_H__
+#define PAD_H__
/* **************************************
- * Includes *
+ * Includes *
* **************************************/
#include "Global_Inc.h"
/* **************************************
- * Defines *
+ * Defines *
* **************************************/
/* **************************************
- * Structs and enums *
+ * Structs and enums *
* **************************************/
- //BTN_A, BTN_B, BTN_C, BTN_UP, BTN_RIGHT, BTN_DOWN, BTN_LEFT
+ /* BTN_A, BTN_B, BTN_C, BTN_UP, BTN_RIGHT, BTN_DOWN, BTN_LEFT. */
#ifdef __cplusplus
extern "C"
{
-#endif //__cplusplus
+#endif /* cplusplus. */
typedef enum t_padbuttons
{
- PAD_A = BTN_A,
- PAD_B = BTN_B,
- PAD_C = BTN_C,
- PAD_LEFT = BTN_LEFT,
- PAD_RIGHT = BTN_RIGHT,
- PAD_UP = BTN_UP,
- PAD_DOWN = BTN_DOWN,
+ PAD_A = BTN_A,
+ PAD_B = BTN_B,
+ PAD_C = BTN_C,
+ PAD_LEFT = BTN_LEFT,
+ PAD_RIGHT = BTN_RIGHT,
+ PAD_UP = BTN_UP,
+ PAD_DOWN = BTN_DOWN,
}PAD_BUTTONS;
/* **************************************
- * Global prototypes *
+ * Global prototypes *
* **************************************/
bool PadButtonReleased(PAD_BUTTONS btn);
@@ -45,6 +45,6 @@ bool PadAnyKeyPressed(void);
#ifdef __cplusplus
}
-#endif //__cplusplus
+#endif /* cplusplus. */
-#endif //__PAD_HEADER__
+#endif /* PAD_H__. */
diff --git a/Player.cpp b/Player.cpp
index 4358d0c..ba507a6 100644
--- a/Player.cpp
+++ b/Player.cpp
@@ -1,762 +1,39 @@
/* **************************************
- * Includes *
+ * Includes *
* **************************************/
#include "Player.h"
-#include "Pad.h"
-#include "Unit.h"
-#include "Gameplay.h"
+#include <string.h>
/* **************************************
- * Defines *
+ * Defines *
* **************************************/
-#define ACCEPT_UNIT_BUILDING_OPTIONS_FRAMES 5
-#define MAX_SELECTION_DIST 400
-#define NO_SELECTION -1
-
/* **************************************
- * Local variables *
+ * Structs and enums *
* **************************************/
-Player::Player(void)
-{
-}
-
-Player::~Player(void)
-{
-
-}
-
-void Player::Init(void)
-{
- enum
- {
- DEFAULT_WOOD = 1000,
- DEFAULT_GOLD = 1000,
- DEFAULT_FOOD = 1000
- };
-
- uint8_t i;
-
- unit_i = 0;
-
- selectedUnitCandidate = NO_SELECTION;
-
- CameraInit(&Camera);
- UnitInit();
-
- for (i = 0; i < PLAYER_MAX_UNITS_BUILDINGS; i++)
- {
- memset(&units[i], 0, sizeof(TYPE_UNIT));
- }
-
- TYPE_COLLISION_BLOCK cb;
-
- Resources.Wood = DEFAULT_WOOD;
- Resources.Gold = DEFAULT_GOLD;
- Resources.Food = DEFAULT_FOOD;
-
- cb.x = SystemRand(0, 24);
- cb.y = SystemRand(0, 24);
-
- createUnit(TOWN_CENTER, cb);
-
- cb.x = SystemRand(48, 56);
- cb.y = SystemRand(48, 56);
- cb.w = UnitGetWidthFromID(PEASANT);
- cb.h = UnitGetHeightFromID(PEASANT);
-
- showActionsMenu_counter = 0;
- showActionsMenu_index = 0;
- showActionsMenu = false;
- anyUnitSelected = false;
-
- createUnit(PEASANT, cb);
-}
-
-void Player::showHealth(uint8_t hp)
-{
- enum
- {
- HP_TEXT_X = 4,
- HP_TEXT_Y = Y_SCREEN_RESOLUTION - 4,
- };
-
- char str[8];
-
- str[0] = 'H';
- str[1] = 'P';
- str[2] = '=';
-
- GfxFillRectangle(0, Y_SCREEN_RESOLUTION - 5, X_SCREEN_RESOLUTION, 8, GFX_WHITE);
-
- Systemitoa(&str[3], sizeof(str) - 3, hp);
-
- GfxPrintTextFont(str, font3x3, HP_TEXT_X, HP_TEXT_Y);
-}
-
-void Player::DrawHandler(void)
-{
- uint8_t i;
- bool bAnyoneSelected = false;
-
- for (i = 0; i < PLAYER_MAX_UNITS_BUILDINGS; i++)
- {
- TYPE_UNIT *u = &units[i];
-
- if ( (u->alive == false) || (u->building == false) )
- {
- continue;
- }
-
- UnitDrawShadow(u, &Camera);
- }
-
-
- for (i = 0; i < PLAYER_MAX_UNITS_BUILDINGS; i++)
- {
- TYPE_UNIT *u = &units[i];
-
- if (u->alive == false)
- {
- continue;
- }
-
- bool selected = false;
-
- if (selectedUnitCandidate != NO_SELECTION)
- {
- selected = (i == selectedUnitCandidate);
- }
-
- UnitDraw(u, &Camera, selected);
-
- if ( (u->selected != false) && (bAnyoneSelected == false) )
- {
- bAnyoneSelected = true;
- }
- }
-
- if (human != false)
- {
- MenuDrawHandler();
- }
-}
-
-void Player::MenuDrawHandler(void)
-{
- ActionsMenu();
-
- ShowResources();
-}
-
-void Player::ShowResources(void)
-{
- char str[8];
- size_t i;
-
- str[1] = '=';
-
- gb.display.setColor(GFX_GRAY);
- gb.display.fillRect(0, 0, X_SCREEN_RESOLUTION, 8);
-
- str[0] = 'W';
-
- Systemitoa(&str[2], 6, Resources.Wood);
-
- GfxPrintTextFont(str, font3x3, 8, 1);
-
- str[0] = 'G';
-
- Systemitoa(&str[2], 6, Resources.Gold);
-
- GfxPrintTextFont(str, font3x3, 2, 5);
-
- str[0] = 'F';
-
- Systemitoa(&str[2], 6, Resources.Food);
-
- GfxPrintTextFont(str, font3x3, 42, 1);
-
- i = Systemitoa(str, 3, getAliveUnits());
-
- str[i++] = '/';
-
- Systemitoa(&str[i], sizeof(str) - i, PLAYER_MAX_UNITS_BUILDINGS);
-
- GfxPrintTextFont(str, font3x3, 42, 5);
-}
-
-
-bool Player::checkNewBuildingPosition(TYPE_COLLISION_BLOCK * cb)
-{
- uint8_t i;
- TYPE_COLLISION_BLOCK bldgCB;
- bool success;
- static uint8_t max_tries = 0;
-
- for (i = 0; i < PLAYER_MAX_UNITS_BUILDINGS; i++)
- {
- TYPE_UNIT *ptrUnit = &units[i];
- success = false;
-
- if (ptrUnit->building == false)
- {
- continue;
- }
-
- bldgCB.x = ptrUnit->x;
- bldgCB.y = ptrUnit->y;
- bldgCB.w = UnitGetWidthFromID(ptrUnit->id);
- bldgCB.h = UnitGetHeightFromID(ptrUnit->id);
-
- if (SystemCollisionCheck(cb, &bldgCB) != false)
- {
- success = false;
- }
- else
- {
- success = true;
- }
-
- if (success == false)
- {
- cb->x = SystemRand(0, 128);
- cb->y = SystemRand(0, 128);
-
- if (++max_tries < 16)
- {
- if (checkNewBuildingPosition(cb) == false)
- {
- return false;
- }
- else
- {
- return true;
- }
- }
- else
- {
- return false;
- }
- }
- }
-
- max_tries = 0;
- return true;
-}
-
-uint8_t Player::getAliveUnits(void)
-{
- uint8_t ret = 0;
-
- for (uint8_t i = 0; i < unit_i; i++)
- {
- if (units[i].alive != false)
- {
- ret++;
- }
- }
-
- return ret;
-}
-
-void Player::createUnit(TYPE_UNIT_ID id, TYPE_COLLISION_BLOCK cb)
-{
- TYPE_RESOURCES res = UnitNeededResourcesFromID(id);
-
- if ( (Resources.Food < res.Food)
- ||
- (Resources.Wood < res.Wood)
- ||
- (Resources.Gold < res.Gold) )
- {
- GfxPrintText_Flash(F("Insuff. resources"));
- return;
- }
-
- if (getAliveUnits() < PLAYER_MAX_UNITS_BUILDINGS)
- {
- for (uint8_t i = 0; i < PLAYER_MAX_UNITS_BUILDINGS; i++)
- {
- if (units[i].alive == false)
- {
- TYPE_UNIT* ptrNewUnit = &units[unit_i++];
- ptrNewUnit->id = id;
- ptrNewUnit->x = cb.x;
- ptrNewUnit->y = cb.y;
- ptrNewUnit->hp = UnitGetHpFromID(id);
- ptrNewUnit->alive = true;
- ptrNewUnit->building = (id > MAX_UNIT_ID);
-
- /* Substract resources from player */
- Resources.Wood -= res.Wood;
- Resources.Gold -= res.Gold;
- Resources.Food -= res.Food;
- return;
- }
- }
- }
- else
- {
- GfxPrintText_Flash(F("Popul. limit"));
- }
-}
-
-TYPE_COLLISION_BLOCK Player::GetCursorPos(void)
-{
- enum
- {
- MOUSE_W = 8,
- MOUSE_H = 8
- };
-
- TYPE_COLLISION_BLOCK cb;
-
- cb.x = (X_SCREEN_RESOLUTION >> 1) - 4 - Camera.X_Offset;
- cb.y = (Y_SCREEN_RESOLUTION >> 1) - 4 - Camera.Y_Offset;
- cb.w = MOUSE_W;
- cb.h = MOUSE_H;
-
- return cb;
-}
-
-void Player::UnitBuildingSelection(void)
-{
- enum
- {
- X_MAX_ALLOWED_DISTANCE = X_SCREEN_RESOLUTION >> 1,
- Y_MAX_ALLOWED_DISTANCE = Y_SCREEN_RESOLUTION >> 1
- };
-
- uint16_t i;
- uint32_t nearest_unit_dist = 0xFFFFFFFF; // Set maximum value
- uint32_t dist = nearest_unit_dist;
-
- int8_t nearest_unit = NO_SELECTION;
-
- for (i = 0; i < PLAYER_MAX_UNITS_BUILDINGS; i++)
- {
- TYPE_UNIT *u = &units[i];
-
- if ( (u->alive == false) || (u->selected != false) )
- {
- continue;
- }
-
- TYPE_COLLISION_BLOCK cursor_cb = GetCursorPos();
- TYPE_COLLISION_BLOCK u_cb = {u->x, u->y, UnitGetWidthFromID(u->id), UnitGetHeightFromID(u->id) };
-
- int16_t dist_x = (u_cb.x + (u_cb.w >> 1) - cursor_cb.x);
- int16_t dist_y = (u_cb.y + (u_cb.h >> 1) - cursor_cb.y);
-
- if ( (abs(dist_x) > X_MAX_ALLOWED_DISTANCE) || (abs(dist_y) > Y_MAX_ALLOWED_DISTANCE) )
- {
- continue;
- }
-
- dist = SystemGetHyp(dist_x, dist_y);
-
- if (dist < nearest_unit_dist)
- {
- nearest_unit_dist = dist;
- nearest_unit = (int8_t)i;
- }
- }
-
- selectedUnitCandidate = nearest_unit;
-}
-
-void Player::ActionsMenu(void)
-{
- enum
- {
- ALL_ACTIONS_MASK = 0xFF
- };
-
- uint8_t selectedUnits = 0;
- uint8_t availableActions = ALL_ACTIONS_MASK;
-
- TYPE_UNIT *ptrSelectedUnit = NULL;
-
- for (uint8_t i = 0; i < PLAYER_MAX_UNITS_BUILDINGS; i++)
- {
- TYPE_UNIT *ptrUnit = &units[i];
-
- if (ptrUnit->selected != false)
- {
- ptrSelectedUnit = ptrUnit;
- selectedUnits++;
- availableActions &= UnitGetAvailableActions(ptrUnit);
- }
- }
-
- if (selectedUnits != 0)
- {
- if (selectedUnits == 1)
- {
- showHealth(ptrSelectedUnit->hp);
- }
- else
- {
- enum
- {
- UNITS_SELECTED_NUMBER_STR_SIZE = 3 /* "000" */,
- UNITS_SELECTED_STR = UNITS_SELECTED_NUMBER_STR_SIZE + 6 /* strlen("units\0") */,
-
- UNITS_SELECTED_TEXT_X = 4,
- UNITS_SELECTED_TEXT_Y = Y_SCREEN_RESOLUTION - 4,
- };
-
- char unitsSelectedStr[UNITS_SELECTED_STR];
- size_t i = Systemitoa(unitsSelectedStr, UNITS_SELECTED_NUMBER_STR_SIZE, selectedUnits);
-
- //~ strcpy(&unitsSelectedStr[i], "units");
- memcpy(&unitsSelectedStr[i], "units\0", 6 /* strlen("units")*/);
-
- GfxPrintTextFont(unitsSelectedStr, font3x3, UNITS_SELECTED_TEXT_X, UNITS_SELECTED_TEXT_Y);
- }
-
- if ( (availableActions != 0)
- &&
- (availableActions != ALL_ACTIONS_MASK) )
- {
- enum
- {
- PROGRESS_BAR_X = X_SCREEN_RESOLUTION - 16,
- PROGRESS_BAR_Y = Y_SCREEN_RESOLUTION - 4,
- PROGRESS_BAR_W = ACCEPT_UNIT_BUILDING_OPTIONS_FRAMES << 1,
- PROGRESS_BAR_H = 3,
- };
-
- if (!(availableActions & (1 << showActionsMenu_index) ) )
- {
- IncreaseShowActionsMenuIndex();
- }
-
- GfxDrawRectangle(PROGRESS_BAR_X, PROGRESS_BAR_Y, PROGRESS_BAR_W, PROGRESS_BAR_H, GFX_BLACK);
-
- GfxFillRectangle(PROGRESS_BAR_X, PROGRESS_BAR_Y, showActionsMenu_counter << 1, PROGRESS_BAR_H, GFX_BLACK);
-
- if (showActionsMenu != false)
- {
- UNIT_ACTION action = (UNIT_ACTION)(showActionsMenu_index);
-
- const char* str = UnitGetActionString(action);
-
- GfxPrintTextFont(str, font3x3, 40, Y_SCREEN_RESOLUTION - 4);
- }
- }
- }
-}
-
-void Player::Handler(void)
-{
- CameraSetLock(&Camera, showActionsMenu);
-
- CameraHandler(&Camera);
-
- UnitBuildingSelection();
-
- UnitHandler(units, sizeof(units) / sizeof(units[0]));
-
- ButtonHandler();
-}
-
-void Player::ButtonHandler(void)
-{
- if (PadButtonPressed(PAD_A) != false)
- {
- ButtonAPressed();
- }
- else if (PadButtonReleased(PAD_A) != false)
- {
- ButtonAReleased();
- }
- else if (PadButtonPressed(PAD_B) != false)
- {
- ButtonBPressed();
- }
- else if (PadButtonReleased(PAD_B) != false)
- {
- ButtonBReleased();
- }
- else if (PadButtonReleased(PAD_LEFT) != false)
- {
- ButtonLeftReleased();
- }
- else if (PadButtonReleased(PAD_RIGHT) != false)
- {
- ButtonRightReleased();
- }
-}
-
-void Player::ButtonAPressed(void)
-{
- // Only increase progress bar when any unit has been previously selected
- if (anyUnitSelected != false)
- {
- if (showActionsMenu == false)
- {
- if (showActionsMenu_counter < ACCEPT_UNIT_BUILDING_OPTIONS_FRAMES)
- {
- showActionsMenu_counter++;
- }
- }
- }
-}
-
-void Player::ButtonAReleased(void)
-{
- if (showActionsMenu_counter < ACCEPT_UNIT_BUILDING_OPTIONS_FRAMES)
- {
- if (selectedUnitCandidate != NO_SELECTION)
- {
- // When actions menu is not active, select unit if
- // a candidate is present
- TYPE_UNIT *ptrUnit = &units[selectedUnitCandidate];
-
- ptrUnit->selected = true;
- anyUnitSelected = true;
- showActionsMenu_index = 0;
- }
-
- showActionsMenu_counter = 0;
- }
- else if (showActionsMenu != false)
- {
- uint8_t i = 0;
-
- for (i = 0; i < PLAYER_MAX_UNITS_BUILDINGS; i++)
- {
- TYPE_UNIT *ptrUnit = &units[i];
-
- if (ptrUnit->selected != false)
- {
- showActionsMenu_counterLevel1 = 0;
-
- switch (showActionsMenu_index)
- {
- case ACTION_CREATE_PEASANT:
- ActionCreateUnit(ptrUnit, PEASANT);
- break;
-
- case ACTION_CREATE_SOLDIER:
- ActionCreateUnit(ptrUnit, SOLDIER);
- break;
-
- case ACTION_BUILD_BARRACKS:
- ActionCreateBuilding(BARRACKS);
- break;
-
- case ACTION_BUILD_TOWER_CENTER:
- ActionCreateBuilding(TOWN_CENTER);
- break;
-
- default:
- break;
- }
-
- break;
- }
- }
- }
-
- showActionsMenu = (showActionsMenu_counter < ACCEPT_UNIT_BUILDING_OPTIONS_FRAMES)? false: true;
-}
-
-void Player::ActionCreateUnit(TYPE_UNIT *ptrUnit, TYPE_UNIT_ID unit)
-{
- enum
- {
- MAX_RETRIES = 16
- };
-
- uint8_t retries = 0;
-
- do
- {
- uint8_t w = UnitGetWidthFromID(ptrUnit->id);
- uint8_t h = UnitGetHeightFromID(ptrUnit->id);
- uint8_t new_pos_x = ptrUnit->x + SystemRand(0, w + (w >> 1));
- uint8_t new_pos_y = ptrUnit->y + SystemRand(h, h + (h >> 1));
- TYPE_COLLISION_BLOCK cb = { .x = new_pos_x,
- .y = new_pos_y,
- .w = UnitGetWidthFromID(unit),
- .h = UnitGetHeightFromID(unit)};
-
- if (UnitCheckCollisionAgainstOtherUnits(&cb, units, NULL) == false)
- {
- createUnit(unit, cb);
- return;
- }
-
- }while (++retries < MAX_RETRIES);
+/* **************************************
+ * Local variables *
+ * **************************************/
- /* Will only get here if we could not create the new unit */
- GfxPrintText_Flash(F("Could not create unit"));
-}
+/* **************************************
+ * Functions definition *
+ * **************************************/
-void Player::ActionCreateBuilding(TYPE_UNIT_ID bldg)
+/*****************************************************************//**
+ *
+ * \brief Constructor for Player class.
+ *
+ *********************************************************************/
+Player::Player(const char* const strPlayerName)
{
- TYPE_COLLISION_BLOCK cb = GetCursorPos();
-
- cb.w = UnitGetWidthFromID(bldg);
- cb.w = UnitGetHeightFromID(bldg);
-
- if (UnitCheckCollisionAgainstOtherUnits(&cb, units, NULL) == false)
+ if (strPlayerName != NULL)
{
- createUnit(bldg, cb);
+ strncpy(_name, strPlayerName, MAX_NAME_LENGTH);
}
else
{
- GfxPrintText_Flash(F("Cannot build here"));
- }
-}
-
-void Player::ButtonBPressed(void)
-{
- enum
- {
- CANCEL_SELECTION_FRAMES = 5
- };
-
- if (anyUnitSelected != false)
- {
- if (unselectUnits_counter < CANCEL_SELECTION_FRAMES)
- {
- unselectUnits_counter++;
- }
- else
- {
- if (anyUnitSelected != false)
- {
- uint8_t i;
-
- /* Cancel selection of all units */
- for (i = 0; i < PLAYER_MAX_UNITS_BUILDINGS; i++)
- {
- TYPE_UNIT *ptrUnit = &units[i];
-
- if (ptrUnit->selected != false)
- {
- ptrUnit->selected = false;
- }
- }
-
- /* Reset accumulated counter and flags */
- unselectUnits_counter = 0;
- anyUnitSelected = false;
- showActionsMenu = false;
- showActionsMenu_counter = 0;
- }
- }
- }
-}
-
-void Player::ButtonBReleased(void)
-{
- if (anyUnitSelected != false)
- {
- TYPE_COLLISION_BLOCK cursor = GetCursorPos();
- uint8_t i;
-
- for (i = 0; i < PLAYER_MAX_UNITS_BUILDINGS; i++)
- {
- TYPE_UNIT *ptrUnit = &units[i];
-
- if (ptrUnit->selected != false)
- {
- if (showActionsMenu == false)
- {
- UnitMoveTo(ptrUnit, cursor.x, cursor.y);
- }
- else
- {
- showActionsMenu = false;
- showActionsMenu_counter = 0;
- }
- }
- }
- }
-
- /* Reset accumulated counter */
- unselectUnits_counter = 0;
-}
-
-
-void Player::ButtonLeftReleased(void)
-{
- if (showActionsMenu != false)
- {
- uint8_t i;
-
- for (i = 0; i < PLAYER_MAX_UNITS_BUILDINGS; i++)
- {
- TYPE_UNIT *ptrUnit = &units[i];
-
- if (ptrUnit->selected != false)
- {
- /* We need to iterate over all available actions
- * for current unit. */
- uint8_t availableActions = UnitGetAvailableActions(ptrUnit);
-
- for (uint8_t j = showActionsMenu_index - 1; j != showActionsMenu_index ; j--)
- {
- if (j > (sizeof(uint8_t) << 3))
- {
- // Maximum index: 7
- j = (sizeof(uint8_t) << 3) - 1;
- }
-
- if (availableActions & (1 << j))
- {
- showActionsMenu_index = j;
- break;
- }
-
- }
- }
- }
- }
-}
-
-void Player::ButtonRightReleased(void)
-{
- IncreaseShowActionsMenuIndex();
-}
-
-void Player::IncreaseShowActionsMenuIndex(void)
-{
- if (showActionsMenu != false)
- {
- uint8_t i;
-
- for (i = 0; i < PLAYER_MAX_UNITS_BUILDINGS; i++)
- {
- TYPE_UNIT *ptrUnit = &units[i];
-
- if (ptrUnit->selected != false)
- {
- /* We need to iterate over all available actions
- * for current unit. */
- uint8_t availableActions = UnitGetAvailableActions(ptrUnit);
-
- for (uint8_t j = showActionsMenu_index + 1; j != showActionsMenu_index ; j++)
- {
- if (j >= (sizeof(uint8_t) << 3) )
- {
- j = 0;
- }
-
- if (availableActions & (1 << j))
- {
- showActionsMenu_index = j;
- break;
- }
- }
- }
- }
+ /* Undefined player name. */
}
}
diff --git a/Player.h b/Player.h
index cade879..6e89052 100644
--- a/Player.h
+++ b/Player.h
@@ -1,106 +1,49 @@
-#ifndef __PLAYER_HEADER__
-#define __PLAYER_HEADER__
+#ifndef PLAYER_H__
+#define PLAYER_H__
/* **************************************
- * Includes *
+ * Includes *
* **************************************/
-#include "Global_Inc.h"
-#include "Camera.h"
-#include "Unit.h"
+#include <stdint.h>
/* **************************************
- * Defines *
+ * Defines *
* **************************************/
-#define PLAYER_NAME_LENGTH 16
-#define PLAYER_MAX_UNITS_BUILDINGS 32
-
/* **************************************
- * Structs and enums *
+ * Structs and enums *
* **************************************/
-typedef struct t_Resource
-{
- uint16_t Wood;
- uint16_t Gold;
- uint16_t Food;
-}TYPE_RESOURCES;
-
/* **************************************
- * Class definition *
+ * Class definition *
* **************************************/
-#ifdef __cplusplus
-
class Player
{
- public:
- Player();
- ~Player();
- void Init(void);
- void Handler(void);
- void DrawHandler(void);
- char* getName(void) {return name;}
- void setHuman(bool value) { human = value; }
- bool isHuman(void) {return human;}
- void createUnit(TYPE_UNIT_ID id, TYPE_COLLISION_BLOCK cb);
- uint8_t getPopulation(void) {return (unit_i + 1);}
- void ShowResources(void);
- uint8_t getAliveUnits(void);
-
- private:
- // Player definition
- bool human;
- char name[PLAYER_NAME_LENGTH];
- TYPE_RESOURCES Resources;
-
- // Unit handling
- TYPE_UNIT units[PLAYER_MAX_UNITS_BUILDINGS];
- uint8_t unit_i;
-
- // Camera handling
- TYPE_CAMERA Camera;
-
- // Map rendering
- void RenderMap(void);
-
- // Button pressed/released events
- void ButtonLeftReleased(void);
- void ButtonRightReleased(void);
- void ButtonAPressed(void);
- void ButtonAReleased(void);
- void ButtonBPressed(void);
- void ButtonBReleased(void);
-
- bool checkNewBuildingPosition(TYPE_COLLISION_BLOCK * cb);
- void UnitBuildingSelection(void);
- void showHealth(uint8_t hp);
- void ButtonHandler(void);
- void ActionsMenu(void);
- void MenuDrawHandler(void);
- TYPE_COLLISION_BLOCK GetCursorPos(void);
-
- // Unit selection
- bool anyUnitSelected;
- int8_t selectedUnitCandidate;
- uint8_t unselectUnits_counter;
-
- // Actions selection
- bool showActionsMenu;
- uint8_t showActionsMenu_counter;
- uint8_t showActionsMenu_index;
- uint8_t showActionsMenu_counterLevel1;
- void IncreaseShowActionsMenuIndex();
-
- // Action callbacks
- void ActionCreateUnit(TYPE_UNIT *ptrUnit, TYPE_UNIT_ID unit);
- void ActionCreateBuilding(TYPE_UNIT_ID bldg);
-
- // Collision detection
- bool checkCollisionAgainstOtherUnits(TYPE_COLLISION_BLOCK* cb);
+ public:
+ enum tResource
+ {
+ RESOURCE_TYPE_WOOD,
+ RESOURCE_TYPE_FOOD,
+ RESOURCE_TYPE_GOLD,
+
+ MAX_RESOURCE_TYPES
+ };
+
+ explicit Player(const char* const strPlayerName);
+ virtual void drawHandler(void) = 0;
+ const char* getName(void) {return _name;}
+ void setName(const char* const strName);
+
+ protected:
+ enum
+ {
+ MAX_NAME_LENGTH = 16
+ };
+
+ uint16_t _resourcesMap[MAX_RESOURCE_TYPES] = {0};
+ char _name[MAX_NAME_LENGTH] = {0};
};
-#endif // __cplusplus
-
-#endif //PLAYER_HEADER__
+#endif /* PLAYER_H__ */
diff --git a/PocketEmpires.geany b/PocketEmpires.geany
new file mode 100644
index 0000000..98143c2
--- /dev/null
+++ b/PocketEmpires.geany
@@ -0,0 +1,69 @@
+[editor]
+line_wrapping=false
+line_break_column=72
+auto_continue_multiline=true
+
+[file_prefs]
+final_new_line=true
+ensure_convert_new_lines=true
+strip_trailing_spaces=true
+replace_tabs=true
+
+[indentation]
+indent_width=4
+indent_type=0
+indent_hard_tab_width=8
+detect_indent=false
+detect_indent_width=false
+indent_mode=3
+
+[project]
+name=PocketEmpires
+base_path=/home/xavier/PocketEmpires/src
+description=
+file_patterns=
+
+[long line marker]
+long_line_behaviour=1
+long_line_column=120
+
+[files]
+current_page=2
+FILE_NAME_0=0;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FGfx.cpp;0;4
+FILE_NAME_1=889;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2Fmain.cpp;0;4
+FILE_NAME_2=1577;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FMenu.cpp;0;4
+FILE_NAME_3=317;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FPad.cpp;0;4
+FILE_NAME_4=874;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FCamera.h;0;4
+FILE_NAME_5=665;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FGfx.h;0;4
+FILE_NAME_6=314;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FGlobal_Inc.h;0;4
+FILE_NAME_7=299;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FMenu.h;0;4
+FILE_NAME_8=651;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FPad.h;0;4
+FILE_NAME_9=868;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FPlayer.h;0;4
+FILE_NAME_10=543;Make;0;EUTF-8;1;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FMakefile;0;4
+FILE_NAME_11=1466;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FSystem.cpp;0;4
+FILE_NAME_12=670;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FHumanPlayer.h;0;4
+FILE_NAME_13=1034;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FHumanPlayer.cpp;0;4
+FILE_NAME_14=164;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FPlayer.cpp;0;4
+FILE_NAME_15=331;None;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FMouseSpr.i;0;4
+FILE_NAME_16=2015;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FGame.cpp;0;4
+FILE_NAME_17=725;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FGame.h;0;4
+FILE_NAME_18=910;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FCamera.cpp;0;4
+FILE_NAME_19=1377;C;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FCameraOld.c;0;4
+FILE_NAME_20=476;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FSprite.h;0;4
+FILE_NAME_21=854;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FSprite.cpp;0;4
+FILE_NAME_22=818;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FSystem.h;0;4
+FILE_NAME_23=486;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FUnit.h;0;4
+FILE_NAME_24=115;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FUnit.cpp;0;4
+FILE_NAME_25=2863;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FLibs%2Flibgamebuino%2FDisplay.h;0;4
+FILE_NAME_26=7382;C++;0;EUTF-8;0;1;0;%2Fhome%2Fxavier%2FPocketEmpires%2Fsrc%2FLibs%2Flibgamebuino%2FGamebuino.cpp;0;4
+
+[VTE]
+last_dir=/home/xavier/PocketEmpires/src
+
+[build-menu]
+NF_00_LB=_Make
+NF_00_CM=make
+NF_00_WD=/home/xavier/PocketEmpires/src
+NF_02_LB=Make Rebuild
+NF_02_CM=make rebuild
+NF_02_WD=/home/xavier/PocketEmpires/src
diff --git a/Sprite.cpp b/Sprite.cpp
new file mode 100644
index 0000000..3fb3f0a
--- /dev/null
+++ b/Sprite.cpp
@@ -0,0 +1,35 @@
+/* *************************************
+ * Includes
+ * *************************************/
+
+#include "Sprite.h"
+
+/* *************************************
+ * Defines
+ * *************************************/
+
+/* *************************************
+ * Structs and enums
+ * *************************************/
+
+/* *************************************
+ * Global Variables
+ * *************************************/
+
+/* *************************************
+ * Local Variables
+ * *************************************/
+
+/* *************************************
+ * Local Prototypes
+ * *************************************/
+
+/*****************************************************************//**
+ *
+ * \brief Constructor for Sprite class.
+ *
+ *********************************************************************/
+Sprite::Sprite(const uint8_t& pu8SprData) :
+_pu8SprData(pu8SprData)
+{
+}
diff --git a/Sprite.h b/Sprite.h
new file mode 100644
index 0000000..d690ddd
--- /dev/null
+++ b/Sprite.h
@@ -0,0 +1,31 @@
+#ifndef SPRITE_H__
+#define SPRITE_H__
+
+/* *************************************
+ * Includes
+ * *************************************/
+
+#include <stdint.h>
+
+/* *************************************
+ * Defines
+ * *************************************/
+
+/* *************************************
+ * Structs and enums
+ * *************************************/
+
+/* *************************************
+ * Class definition
+ * *************************************/
+
+class Sprite
+{
+ public:
+ Sprite(const uint8_t& pu8SprData);
+
+ private:
+ const uint8_t& _pu8SprData;
+};
+
+#endif /* SPRITE_H__ */
diff --git a/Sprites/.directory b/Sprites/.directory
index 1f60e19..7e4d0d7 100644
--- a/Sprites/.directory
+++ b/Sprites/.directory
@@ -1,4 +1,4 @@
[Dolphin]
PreviewsShown=true
-Timestamp=2017,11,5,4,13,19
-Version=3
+Timestamp=2018,7,8,20,49,2
+Version=4
diff --git a/System.c b/System.c
deleted file mode 100644
index 91ddea8..0000000
--- a/System.c
+++ /dev/null
@@ -1,333 +0,0 @@
-/* *************************************
- * Includes
- * *************************************/
-
-#include "System.h"
-
-/* *************************************
- * Defines
- * *************************************/
-
-#define SYSTEM_MAX_TIMERS 8
-#define check_bb_collision(x1,y1,w1,h1,x2,y2,w2,h2) (!( ((x1)>=(x2)+(w2)) || ((x2)>=(x1)+(w1)) || \
- ((y1)>=(y2)+(h2)) || ((y2)>=(y1)+(h1)) ))
-
-/* *************************************
- * Local Prototypes
- * *************************************/
-
-//static void SystemCheckTimer(bool * timer, uint64_t * last_timer, uint8_t step);
-
-/* *************************************
- * Local Variables
- * *************************************/
-
-//Global timer (called by interrupt)
-static volatile uint64_t global_timer;
-//Tells whether rand seed has been set
-static bool rand_seed;
-//Timers
-static bool one_second_timer;
-static bool hundred_ms_timer;
-//Critical section is entered
-static bool system_busy;
-//Timer array
-static TYPE_TIMER timer_array[SYSTEM_MAX_TIMERS];
-
-/* *************************************
- * @name: void SystemInit(void)
- * @date: 19/05/2016
- * @author: Xavier Del Campo
- * @brief:
- * *************************************/
-
-void SystemInit(void)
-{
- //Reset global timer
- global_timer = 0;
- //Reset 1 second timer
- one_second_timer = 0;
- //Reset all user-handled timers
- SystemResetTimers();
- //Initial value for system_busy
- system_busy = false;
-
- #if defined(USBCON)
- USBDevice.attach();
- #endif
-}
-
-void SystemSetRandSeed(void)
-{
- if (rand_seed == false)
- {
- rand_seed = true;
- //Set random seed using global timer as reference
- srand((unsigned int)global_timer);
- }
-}
-
-bool SystemIsRandSeedSet(void)
-{
- return rand_seed;
-}
-
-void SystemIncreaseGlobalTimer(void)
-{
- global_timer++;
-}
-
-uint64_t SystemGetGlobalTimer(void)
-{
- return global_timer;
-}
-
-bool System1SecondTick(void)
-{
- return one_second_timer;
-}
-
-bool System100msTick(void)
-{
- return hundred_ms_timer;
-}
-
-void SystemRunTimers(void)
-{
-/* static uint64_t last_one_second_tick;
- static uint64_t last_100_ms_tick;
-
- SystemCheckTimer(&one_second_timer, &last_one_second_tick, REFRESH_FREQUENCY);
- SystemCheckTimer(&hundred_ms_timer, &last_100_ms_tick, 2);
- * */
-}
-
-void SystemCheckTimer(bool * timer, uint64_t * last_timer, uint8_t step)
-{
- if (*timer != false)
- {
- *timer = false;
- *last_timer = global_timer;
- }
-
- if (global_timer >= (*last_timer + step) )
- {
- *timer = true;
- }
-}
-
-void SystemWaitCycles(uint32_t cycles)
-{
- uint64_t currentTime = global_timer;
-
- while (global_timer < (currentTime + cycles) );
-}
-
-uint32_t SystemRand(uint32_t min, uint32_t max)
-{
- return rand() % (max - min + 1) + min;
-}
-
-bool SystemIsBusy(void)
-{
- return system_busy;
-}
-
-bool SystemContains_u8(uint8_t value, uint8_t* buffer, size_t sz)
-{
- size_t i = 0;
-
- for (i = 0; i < sz; i++)
- {
- if (buffer[i] == value)
- {
- return true;
- }
- }
-
- return false;
-}
-
-bool SystemContains_u16(uint16_t value, uint16_t * buffer, size_t sz)
-{
- size_t i = 0;
-
- for (i = 0; i < sz; i++)
- {
- if (buffer[i] == value)
- {
- return true;
- }
- }
-
- return false;
-}
-
-TYPE_TIMER * SystemCreateTimer(uint32_t seconds, bool rf, void (*timer_callback)(void) )
-{
- bool success = false;
- uint8_t i;
-
- if (seconds == 0)
- {
- return NULL;
- }
-
- for (i = 0; i < SYSTEM_MAX_TIMERS; i++)
- {
- if (timer_array[i].busy == false)
- {
- timer_array[i].Timeout_Callback = timer_callback;
- timer_array[i].time = seconds;
- timer_array[i].orig_time = seconds;
- timer_array[i].repeat_flag = rf;
- timer_array[i].busy = true;
- success = true;
- break;
- }
- }
-
- if (success == false)
- {
- return NULL;
- }
-
- return &timer_array[i];
-}
-
-void SystemResetTimers(void)
-{
- uint8_t i;
-
- for (i = 0; i < SYSTEM_MAX_TIMERS; i++)
- {
- timer_array[i].Timeout_Callback = NULL;
- timer_array[i].busy = false;
- timer_array[i].repeat_flag = false;
- timer_array[i].time = 0;
- timer_array[i].orig_time = 0;
- }
-}
-
-void SystemUserTimersHandler(void)
-{
- uint8_t i;
-
- for (i = 0; i < SYSTEM_MAX_TIMERS; i++)
- {
- if (timer_array[i].busy != false)
- {
- if (System1SecondTick() != false)
- {
- timer_array[i].time--;
-
- if (timer_array[i].time == 0)
- {
- timer_array[i].Timeout_Callback();
-
- if (timer_array[i].repeat_flag != false)
- {
- timer_array[i].time = timer_array[i].orig_time;
- }
- else
- {
- // Clean timer data
- timer_array[i].busy = false;
- timer_array[i].orig_time = 0;
- timer_array[i].Timeout_Callback = NULL;
- }
- }
- }
- }
- }
-}
-
-void SystemTimerRestart(TYPE_TIMER * timer)
-{
- timer->time = timer->orig_time;
-}
-
-void SystemTimerRemove(TYPE_TIMER * timer)
-{
- timer->time = 0;
- timer->orig_time = 0;
- timer->Timeout_Callback = NULL;
- timer->busy = false;
- timer->repeat_flag = false;
-}
-
-bool SystemArrayCompare(unsigned short * arr1, unsigned short * arr2, size_t sz)
-{
- size_t i;
-
- for (i = 0; i < sz; i++)
- {
- if (arr1[i] != arr2[i])
- {
- return false;
- }
- }
-
- return true;
-}
-
-bool SystemCollisionCheck(TYPE_COLLISION_BLOCK* c1, TYPE_COLLISION_BLOCK* c2)
-{
- return (bool)check_bb_collision( c1->x, c1->y, c1->w, c1->h,
- c2->x, c2->y, c2->w, c2->h );
-}
-
-size_t Systemitoa(char* str, size_t sz, int16_t value)
-{
- if (sz != 0)
- {
- bool first_digit_found = false;
- uint16_t i;
- uint8_t bytes_written = 0;
-
- /* Example: 65535 */
- /* Another example: -32767 */
-
- if (value & 0x8000)
- {
- /* Sign bit */
- str[bytes_written++] = '-';
- }
-
- for (i = 10000; i >= 1; i /= 10)
- {
- uint8_t digit = (uint8_t)(value / i);
- value -= (uint16_t)(digit * i);
-
- if (digit != 0)
- {
- if (first_digit_found == false)
- {
- first_digit_found = true;
- }
- }
- else if (first_digit_found == false)
- {
- continue;
- }
-
- str[bytes_written++] = digit + '0';
-
- if (bytes_written >= (sz - 1))
- {
- return 0;
- }
- }
-
- str[bytes_written] = '\0';
-
- return bytes_written;
- }
-
- return 0;
-}
-
-uint32_t SystemGetHyp(uint16_t x, uint16_t y)
-{
- return (uint32_t)((uint32_t)(x * x) + (uint32_t)(y * y));
-}
diff --git a/System.cpp b/System.cpp
new file mode 100644
index 0000000..7961512
--- /dev/null
+++ b/System.cpp
@@ -0,0 +1,62 @@
+/* *************************************
+ * Includes
+ * *************************************/
+
+#include <Arduino.h>
+#include <Gamebuino.h>
+
+/* *************************************
+ * Defines
+ * *************************************/
+
+#define mCHECK_COLLISION(x1, y1, w1, h1, x2, y2, w2, h2) \
+ (!( ((x1) >= (x2) + (w2)) \
+ || \
+ ((x2) >= (x1) + (w1)) \
+ || \
+ ((y1) >= (y2) + (h2)) \
+ || \
+ ((y2) >= (y1) + (h1)) )
+
+/* *************************************
+ * Structs and enums
+ * *************************************/
+
+/* *************************************
+ * Global Variables
+ * *************************************/
+
+/*****************************************************************//**
+ *
+ * \brief Global interface to Gamebuino low-level libs.
+ *
+ *********************************************************************/
+Gamebuino gb;
+
+/* *************************************
+ * Local Variables
+ * *************************************/
+
+/* *************************************
+ * Local Prototypes
+ * *************************************/
+
+/*****************************************************************//**
+ *
+ * \brief Initializes the device and game parameters.
+ *
+ *********************************************************************/
+void SystemInit(void)
+{
+ /* Arduino initialization routine. */
+ init();
+
+ /* Initialize Gamebuino libs. */
+ gb.begin();
+
+#ifdef USBCON
+
+ USBDevice.attach();
+
+#endif /* USBCON */
+}
diff --git a/System.h b/System.h
index 71d6987..0459243 100644
--- a/System.h
+++ b/System.h
@@ -1,102 +1,32 @@
-#ifndef __SYSTEM_HEADER__
-#define __SYSTEM_HEADER__
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif
+#ifndef SYSTEM_H__
+#define SYSTEM_H__
/* **************************************
- * Includes *
+ * Includes *
* **************************************/
-#include "Global_Inc.h"
+#include <Gamebuino.h>
/* **************************************
- * Defines *
+ * Defines *
* **************************************/
-#define TIMEBASE_1_SECOND 1
-#define TIMEBASE_1_MINUTE TIMEBASE_1_SECOND * 60
-
/* **************************************
- * Structs and enums *
+ * Structs and enums *
* **************************************/
-typedef struct t_Timer
-{
- uint32_t time;
- uint32_t orig_time;
- bool repeat_flag;
- bool busy;
- void (*Timeout_Callback)(void);
-}TYPE_TIMER;
-
-typedef struct t_CollisionBlock
-{
- uint16_t x;
- uint16_t y;
- uint8_t w;
- uint8_t h;
-}TYPE_COLLISION_BLOCK;
-
/* **************************************
- * Global Prototypes *
+ * Global Variables *
* **************************************/
-// Calls init routines
-void SystemInit(void);
-// Calls srand() using current global_timer value as seed
-void SystemSetRandSeed(void);
-// Tells whether srand() has been called using a pseudo-random value
-bool SystemIsRandSeedSet(void);
-// Stops program flow during X cycles
-void SystemWaitCycles(uint32_t cycles);
-// To be called from GfxDrawScene after each cycle
-void SystemRunTimers(void);
-// 1 cycle-length flag with a frequency of 1 Hz
-bool System1SecondTick(void);
-// 1 cycle-length flag with a frequency of 10 Hz
-bool System100msTick(void);
-// Returns random value between given minimum and maximum values
-uint32_t SystemRand(uint32_t min, uint32_t max);
-// Increases global timer by 1 step
-void SystemIncreaseGlobalTimer(void);
-// (Experimental)
-uint64_t SystemGetGlobalTimer(void);
-// Returns whether critical section of code is being entered
-bool SystemIsBusy(void);
-// Returns whether indicated value is contained inside buffer
-bool SystemContains_u8(uint8_t value, uint8_t* buffer, size_t sz);
-// Overload for uint16_t
-bool SystemContains_u16(uint16_t value, uint16_t * buffer, size_t sz);
-// Creates a timer instance wiht a determined value and associates it to a callback
-// Once time expires, callback is automatically called right after GfxDrawScene().
-TYPE_TIMER * SystemCreateTimer(uint32_t seconds, bool rf, void (*timer_callback)(void) );
-// Reportedly, sets all timer data to zero.
-void SystemResetTimers(void);
-// To be called every cycle (i.e.: inside GfxDrawScene() ).
-void SystemUserTimersHandler(void);
-// Sets timer remaining time to initial value.
-void SystemTimerRestart(TYPE_TIMER * timer);
-// Flushes a timer pointed to by timer.
-void SystemTimerRemove(TYPE_TIMER * timer);
-// Compares two arrays of unsigned short type.
-bool SystemArrayCompare(unsigned short * arr1, unsigned short * arr2, size_t sz);
-// Checks collision of two objects
-bool SystemCollisionCheck(TYPE_COLLISION_BLOCK* c1, TYPE_COLLISION_BLOCK* c2);
-// Transforms integer to string. Use this instead of sprintf() as much as possible.
-// Returns the number of bytes written into "str". In case of error, 0 is returned.
-size_t Systemitoa(char* str, size_t sz, int16_t value);
-// Return hypothenuse of two points
-uint32_t SystemGetHyp(uint16_t x, uint16_t y);
+/* Gamebuino object is only visible for
+ * and accessed by C++ source files. */
+extern Gamebuino gb;
/* **************************************
- * Global Variables *
+ * Global Prototypes *
* **************************************/
-#ifdef __cplusplus
-}
-#endif
+void SystemInit(void);
-#endif //__SYSTEM_HEADER__
+#endif /* SYSTEM_H__ */
diff --git a/Unit.cpp b/Unit.cpp
new file mode 100644
index 0000000..74a2110
--- /dev/null
+++ b/Unit.cpp
@@ -0,0 +1,35 @@
+/* *************************************
+ * Includes
+ * *************************************/
+
+#include "Unit.h"
+
+/* *************************************
+ * Defines
+ * *************************************/
+
+/* *************************************
+ * Structs and enums
+ * *************************************/
+
+/* *************************************
+ * Global Variables
+ * *************************************/
+
+/* *************************************
+ * Local Variables
+ * *************************************/
+
+/* *************************************
+ * Local Prototypes
+ * *************************************/
+
+/*****************************************************************//**
+ *
+ * \brief Constructor for Unit class.
+ *
+ *********************************************************************/
+Unit::Unit(void)
+{
+}
+
diff --git a/Unit.h b/Unit.h
index b5a4409..1508a88 100644
--- a/Unit.h
+++ b/Unit.h
@@ -1,123 +1,26 @@
-#ifndef __UNIT_HEADER__
-#define __UNIT_HEADER__
+#ifndef UNIT_H__
+#define UNIT_H__
-/* **************************************
- * Includes *
- * **************************************/
+/* *************************************
+ * Includes
+ * *************************************/
-#include "Global_Inc.h"
-#include "Camera.h"
-#include "Player.h"
+/* *************************************
+ * Defines
+ * *************************************/
-#ifdef __cplusplus
-extern "C"
-{
-#endif //__cplusplus
-
-/* **************************************
- * Defines *
- * **************************************/
-
- /* **************************************
- * Structs and enums *
- * **************************************/
-
-typedef enum t_unitdirection
-{
- DIRECTION_LEFT = 0,
- DIRECTION_RIGHT,
- DIRECTION_UP,
- DIRECTION_DOWN
-}UNIT_DIRECTION;
-
-typedef enum t_unitid
-{
- // Walking units
- PEASANT,
- SOLDIER,
-
- MAX_UNIT_ID,
-
- // Buildings
- BARRACKS,
- TOWER,
- TOWN_CENTER,
-
- MAX_BUILDING_ID,
-
- MAX_UNITS_BUILDINGS,
-
- FIRST_UNIT_ID = PEASANT,
- FIRST_BUILDING_ID = BARRACKS
-}TYPE_UNIT_ID;
+/* *************************************
+ * Structs and enums
+ * *************************************/
-typedef struct t_Unit
-{
- uint16_t x;
- uint16_t y;
- uint16_t target_x;
- uint16_t target_y;
- uint8_t hp;
- TYPE_UNIT_ID id;
- UNIT_DIRECTION dir;
- bool mirror; // True = down or left; true = up or right
- bool building;
- bool walking;
- bool alive;
- bool selected;
- bool selecting_attack;
- bool attacking;
- uint8_t walk_counter;
-}TYPE_UNIT;
-
-typedef struct
-{
- const char* str;
- void (*pAction)(TYPE_UNIT*);
-}TYPE_UNIT_ACTION;
+/* *************************************
+ * Class definition
+ * *************************************/
-typedef enum t_availableactions
+class Unit
{
- ACTION_BUILD_BARRACKS,
- ACTION_CREATE_PEASANT,
- ACTION_CREATE_SOLDIER,
- ACTION_BUILD_TOWER_CENTER,
- MAX_ACTIONS
-}UNIT_ACTION;
-
-typedef struct t_Camera TYPE_CAMERA;
-typedef struct t_Resource TYPE_RESOURCES;
-
-/* **************************************
- * Global prototypes *
- * **************************************/
-
-// Initialization and handling
-void UnitInit(void);
-void UnitHandler(TYPE_UNIT* unitArray, size_t sz);
-
-// Unit information
-uint8_t UnitGetHpFromID(TYPE_UNIT_ID id);
-uint8_t UnitGetWidthFromID(TYPE_UNIT_ID id);
-uint8_t UnitGetHeightFromID(TYPE_UNIT_ID id);
-uint8_t UnitGetAvailableActions(TYPE_UNIT *ptrUnit);
-TYPE_RESOURCES UnitNeededResourcesFromID(TYPE_UNIT_ID id);
-
-// Rendering
-void UnitDraw(TYPE_UNIT *ptrUnit, TYPE_CAMERA* ptrCamera, bool bHighlighted);
-void UnitDrawShadow(TYPE_UNIT *ptrUnit, TYPE_CAMERA *ptrCamera);
-
-// Movement
-void UnitMoveTo(TYPE_UNIT *ptrUnit, uint16_t x, uint16_t y);
-
-// Collision cheking
-bool UnitCheckCollisionAgainstOtherUnits(TYPE_COLLISION_BLOCK* cb, TYPE_UNIT *ptrUnitArray, TYPE_UNIT* ptrCurrentUnit);
-
-// Selection index
-const char* UnitGetActionString(UNIT_ACTION action);
-
-#ifdef __cplusplus
-}
-#endif //__cplusplus
+ public:
+ Unit(void);
+};
-#endif //__UNIT_HEADER__
+#endif /* UNIT_H__ */
diff --git a/Unit.c b/UnitOld.c
index a75097b..a7cbf97 100644
--- a/Unit.c
+++ b/UnitOld.c
@@ -1,5 +1,5 @@
/* **************************************
- * Includes *
+ * Includes *
* **************************************/
#include "Unit.h"
@@ -13,11 +13,11 @@
#include "TownCentre.i"
/* **************************************
- * Defines *
+ * Defines *
* **************************************/
/* **************************************
-* Structs and enums *
+* Structs and enums *
* **************************************/
struct t_coordinates
@@ -27,11 +27,11 @@ struct t_coordinates
};
/* **************************************
-* Local prototypes *
+* Local prototypes *
* **************************************/
/* **************************************
- * Local variables *
+ * Local variables *
* **************************************/
/* Tables */
@@ -60,9 +60,9 @@ static uint8_t const UnitActionsTable[MAX_UNITS_BUILDINGS] = { [PEASANT] =
[BARRACKS] = (1 << ACTION_CREATE_SOLDIER),
[TOWN_CENTER] = (1 << ACTION_CREATE_PEASANT) };
-// **************
-// Sprite tables
-// **************
+/* **************. */
+/* Sprite tables. */
+/* **************. */
static TYPE_SPRITE UnitSprTable[MAX_UNITS_BUILDINGS];
static TYPE_SPRITE UnitWalkingShadowSprTable[MAX_UNITS_BUILDINGS];
static const struct t_coordinates UnitShadowOffsetTable[MAX_BUILDING_ID - FIRST_BUILDING_ID] = { [BARRACKS - FIRST_BUILDING_ID] = {.x = -6, .y = 0},
@@ -75,64 +75,64 @@ void UnitInit(void)
* ***********************************/
UnitSprTable[PEASANT].Data = Peasant_SprData;
- UnitSprTable[PEASANT].w = GfxGetWidthFromSpriteData(Peasant_SprData);
- UnitSprTable[PEASANT].h = GfxGetHeightFromSpriteData(Peasant_SprData);
- UnitSprTable[PEASANT].flip = 0;
- UnitSprTable[PEASANT].rotation = 0;
- UnitSprTable[PEASANT].color = GFX_BLACK;
+ UnitSprTable[PEASANT].w = GfxGetWidthFromSpriteData(Peasant_SprData);
+ UnitSprTable[PEASANT].h = GfxGetHeightFromSpriteData(Peasant_SprData);
+ UnitSprTable[PEASANT].flip = 0;
+ UnitSprTable[PEASANT].rotation = 0;
+ UnitSprTable[PEASANT].color = GFX_BLACK;
UnitSprTable[SOLDIER].Data = SoldierSprData;
- UnitSprTable[SOLDIER].w = GfxGetWidthFromSpriteData(SoldierSprData);
- UnitSprTable[SOLDIER].h = GfxGetHeightFromSpriteData(SoldierSprData);
- UnitSprTable[SOLDIER].flip = 0;
- UnitSprTable[SOLDIER].rotation = 0;
- UnitSprTable[SOLDIER].color = GFX_BLACK;
-
- UnitWalkingShadowSprTable[PEASANT].Data = Peasant_Walking_SprData;
- UnitWalkingShadowSprTable[PEASANT].w = GfxGetWidthFromSpriteData(Peasant_Walking_SprData);
- UnitWalkingShadowSprTable[PEASANT].h = GfxGetHeightFromSpriteData(Peasant_Walking_SprData);
- UnitWalkingShadowSprTable[PEASANT].flip = 0;
- UnitWalkingShadowSprTable[PEASANT].rotation = 0;
- UnitWalkingShadowSprTable[PEASANT].color = GFX_BLACK;
+ UnitSprTable[SOLDIER].w = GfxGetWidthFromSpriteData(SoldierSprData);
+ UnitSprTable[SOLDIER].h = GfxGetHeightFromSpriteData(SoldierSprData);
+ UnitSprTable[SOLDIER].flip = 0;
+ UnitSprTable[SOLDIER].rotation = 0;
+ UnitSprTable[SOLDIER].color = GFX_BLACK;
+
+ UnitWalkingShadowSprTable[PEASANT].Data = Peasant_Walking_SprData;
+ UnitWalkingShadowSprTable[PEASANT].w = GfxGetWidthFromSpriteData(Peasant_Walking_SprData);
+ UnitWalkingShadowSprTable[PEASANT].h = GfxGetHeightFromSpriteData(Peasant_Walking_SprData);
+ UnitWalkingShadowSprTable[PEASANT].flip = 0;
+ UnitWalkingShadowSprTable[PEASANT].rotation = 0;
+ UnitWalkingShadowSprTable[PEASANT].color = GFX_BLACK;
UnitWalkingShadowSprTable[SOLDIER].Data = SoldierSprData_Walking;
- UnitWalkingShadowSprTable[SOLDIER].w = GfxGetWidthFromSpriteData(SoldierSprData_Walking);
- UnitWalkingShadowSprTable[SOLDIER].h = GfxGetHeightFromSpriteData(SoldierSprData_Walking);
- UnitWalkingShadowSprTable[SOLDIER].flip = 0;
- UnitWalkingShadowSprTable[SOLDIER].rotation = 0;
- UnitWalkingShadowSprTable[SOLDIER].color = GFX_BLACK;
+ UnitWalkingShadowSprTable[SOLDIER].w = GfxGetWidthFromSpriteData(SoldierSprData_Walking);
+ UnitWalkingShadowSprTable[SOLDIER].h = GfxGetHeightFromSpriteData(SoldierSprData_Walking);
+ UnitWalkingShadowSprTable[SOLDIER].flip = 0;
+ UnitWalkingShadowSprTable[SOLDIER].rotation = 0;
+ UnitWalkingShadowSprTable[SOLDIER].color = GFX_BLACK;
/* ***********************************
* Buildings sprite data init
* ***********************************/
UnitSprTable[BARRACKS].Data = BarracksSpr_Data;
- UnitSprTable[BARRACKS].w = GfxGetWidthFromSpriteData(BarracksSpr_Data);
- UnitSprTable[BARRACKS].h = GfxGetHeightFromSpriteData(BarracksSpr_Data);
- UnitSprTable[BARRACKS].flip = 0;
- UnitSprTable[BARRACKS].rotation = 0;
- UnitSprTable[BARRACKS].color = GFX_BLACK;
+ UnitSprTable[BARRACKS].w = GfxGetWidthFromSpriteData(BarracksSpr_Data);
+ UnitSprTable[BARRACKS].h = GfxGetHeightFromSpriteData(BarracksSpr_Data);
+ UnitSprTable[BARRACKS].flip = 0;
+ UnitSprTable[BARRACKS].rotation = 0;
+ UnitSprTable[BARRACKS].color = GFX_BLACK;
UnitSprTable[TOWN_CENTER].Data = TownCentreSprData;
- UnitSprTable[TOWN_CENTER].w = GfxGetWidthFromSpriteData(TownCentreSprData);
- UnitSprTable[TOWN_CENTER].h = GfxGetHeightFromSpriteData(TownCentreSprData);
- UnitSprTable[TOWN_CENTER].flip = 0;
- UnitSprTable[TOWN_CENTER].rotation = 0;
- UnitSprTable[TOWN_CENTER].color = GFX_BLACK;
-
- UnitWalkingShadowSprTable[BARRACKS].Data = BarracksShadowSpr_Data;
- UnitWalkingShadowSprTable[BARRACKS].w = GfxGetWidthFromSpriteData(BarracksShadowSpr_Data);
- UnitWalkingShadowSprTable[BARRACKS].h = GfxGetHeightFromSpriteData(BarracksShadowSpr_Data);
- UnitWalkingShadowSprTable[BARRACKS].flip = 0;
- UnitWalkingShadowSprTable[BARRACKS].rotation = 0;
- UnitWalkingShadowSprTable[BARRACKS].color = GFX_GRAY;
+ UnitSprTable[TOWN_CENTER].w = GfxGetWidthFromSpriteData(TownCentreSprData);
+ UnitSprTable[TOWN_CENTER].h = GfxGetHeightFromSpriteData(TownCentreSprData);
+ UnitSprTable[TOWN_CENTER].flip = 0;
+ UnitSprTable[TOWN_CENTER].rotation = 0;
+ UnitSprTable[TOWN_CENTER].color = GFX_BLACK;
+
+ UnitWalkingShadowSprTable[BARRACKS].Data = BarracksShadowSpr_Data;
+ UnitWalkingShadowSprTable[BARRACKS].w = GfxGetWidthFromSpriteData(BarracksShadowSpr_Data);
+ UnitWalkingShadowSprTable[BARRACKS].h = GfxGetHeightFromSpriteData(BarracksShadowSpr_Data);
+ UnitWalkingShadowSprTable[BARRACKS].flip = 0;
+ UnitWalkingShadowSprTable[BARRACKS].rotation = 0;
+ UnitWalkingShadowSprTable[BARRACKS].color = GFX_GRAY;
UnitWalkingShadowSprTable[TOWN_CENTER].Data = TownCentreShadowSprData;
- UnitWalkingShadowSprTable[TOWN_CENTER].w = GfxGetWidthFromSpriteData(TownCentreShadowSprData);
- UnitWalkingShadowSprTable[TOWN_CENTER].h = GfxGetHeightFromSpriteData(TownCentreShadowSprData);
- UnitWalkingShadowSprTable[TOWN_CENTER].flip = 0;
- UnitWalkingShadowSprTable[TOWN_CENTER].rotation = 0;
- UnitWalkingShadowSprTable[TOWN_CENTER].color = GFX_GRAY;
+ UnitWalkingShadowSprTable[TOWN_CENTER].w = GfxGetWidthFromSpriteData(TownCentreShadowSprData);
+ UnitWalkingShadowSprTable[TOWN_CENTER].h = GfxGetHeightFromSpriteData(TownCentreShadowSprData);
+ UnitWalkingShadowSprTable[TOWN_CENTER].flip = 0;
+ UnitWalkingShadowSprTable[TOWN_CENTER].rotation = 0;
+ UnitWalkingShadowSprTable[TOWN_CENTER].color = GFX_GRAY;
}
void UnitDrawShadow(TYPE_UNIT *ptrUnit, TYPE_CAMERA *ptrCamera)
@@ -149,13 +149,13 @@ void UnitDrawShadow(TYPE_UNIT *ptrUnit, TYPE_CAMERA *ptrCamera)
void UnitDraw(TYPE_UNIT *ptrUnit, TYPE_CAMERA* ptrCamera, bool bHighlighted)
{
- uint8_t id = ptrUnit->id;
- TYPE_SPRITE* ptrSpr;
+ uint8_t id = ptrUnit->id;
+ TYPE_SPRITE* ptrSpr;
- if (ptrUnit->alive == false)
- {
- return;
- }
+ if (ptrUnit->alive == false)
+ {
+ return;
+ }
if (ptrUnit->building == false)
{
@@ -164,9 +164,9 @@ void UnitDraw(TYPE_UNIT *ptrUnit, TYPE_CAMERA* ptrCamera, bool bHighlighted)
WALK_FRAMES = 4
};
- // ***************
- // Units
- // ***************
+ /* ***************. */
+ /* Units. */
+ /* ***************. */
ptrSpr = ptrUnit->walking ? &UnitWalkingShadowSprTable[id] : &UnitSprTable[id];
@@ -222,18 +222,18 @@ void UnitDraw(TYPE_UNIT *ptrUnit, TYPE_CAMERA* ptrCamera, bool bHighlighted)
}
else
{
- // *******************
- // Buildings
- // *******************
+ /* *******************. */
+ /* Buildings. */
+ /* *******************. */
ptrSpr = &UnitSprTable[id];
}
- CameraApplyCoordinatesToSprite( ptrCamera,
- ptrSpr,
- ptrUnit->x,
- ptrUnit->y );
+ CameraApplyCoordinatesToSprite( ptrCamera,
+ ptrSpr,
+ ptrUnit->x,
+ ptrUnit->y );
- GfxDrawSprite(ptrSpr);
+ GfxDrawSprite(ptrSpr);
if ( (bHighlighted != false) || (ptrUnit->selected != false) )
{
@@ -255,17 +255,17 @@ void UnitDraw(TYPE_UNIT *ptrUnit, TYPE_CAMERA* ptrCamera, bool bHighlighted)
uint8_t UnitGetWidthFromID(TYPE_UNIT_ID id)
{
- return GfxGetWidthFromSpriteData(UnitSprTable[id].Data);
+ return GfxGetWidthFromSpriteData(UnitSprTable[id].Data);
}
uint8_t UnitGetHeightFromID(TYPE_UNIT_ID id)
{
- return GfxGetHeightFromSpriteData(UnitSprTable[id].Data);
+ return GfxGetHeightFromSpriteData(UnitSprTable[id].Data);
}
uint8_t UnitGetHpFromID(TYPE_UNIT_ID id)
{
- return UnitHPTable[id];
+ return UnitHPTable[id];
}
TYPE_RESOURCES UnitNeededResourcesFromID(TYPE_UNIT_ID id)
@@ -275,9 +275,9 @@ TYPE_RESOURCES UnitNeededResourcesFromID(TYPE_UNIT_ID id)
void UnitMoveTo(TYPE_UNIT *ptrUnit, uint16_t x, uint16_t y)
{
- ptrUnit->target_x = x;
- ptrUnit->target_y = y;
- ptrUnit->walking = true;
+ ptrUnit->target_x = x;
+ ptrUnit->target_y = y;
+ ptrUnit->walking = true;
}
void UnitAttackAccepted(TYPE_UNIT *ptrUnit)
@@ -374,30 +374,30 @@ void UnitHandler(TYPE_UNIT* unitArray, size_t sz)
}
}
- //~ if ( (ptrUnit->x - UnitSpeedTable[ptrUnit->id]) > ptrUnit->target_x)
- //~ {
- //~ ptrUnit->dir = DIRECTION_LEFT;
- //~ x_d = (int8_t)-UnitSpeedTable[ptrUnit->id];
- //~ }
- //~ else if ( (ptrUnit->x + UnitSpeedTable[ptrUnit->id]) < ptrUnit->target_x)
- //~ {
- //~ ptrUnit->dir = DIRECTION_RIGHT;
- //~ x_d = (int8_t)UnitSpeedTable[ptrUnit->id];
- //~ }
- //~ else if ( (ptrUnit->y - UnitSpeedTable[ptrUnit->id]) > ptrUnit->target_y)
- //~ {
- //~ ptrUnit->dir = DIRECTION_UP;
- //~ y_d = (int8_t)-UnitSpeedTable[ptrUnit->id];
- //~ }
- //~ else if ( (ptrUnit->y + UnitSpeedTable[ptrUnit->id]) < ptrUnit->target_y)
- //~ {
- //~ ptrUnit->dir = DIRECTION_DOWN;
- //~ y_d = (int8_t)UnitSpeedTable[ptrUnit->id];
- //~ }
- //~ else
- //~ {
- //~ bMoving = false;
- //~ }
+ /* ~ if ( (ptrUnit->x - UnitSpeedTable[ptrUnit->id]) > ptrUnit->target_x). */
+ /* ~ {. */
+ /* ~ ptrUnit->dir = DIRECTION_LEFT;. */
+ /* ~ x_d = (int8_t)-UnitSpeedTable[ptrUnit->id];. */
+ /* ~ }. */
+ /* ~ else if ( (ptrUnit->x + UnitSpeedTable[ptrUnit->id]) < ptrUnit->target_x). */
+ /* ~ {. */
+ /* ~ ptrUnit->dir = DIRECTION_RIGHT;. */
+ /* ~ x_d = (int8_t)UnitSpeedTable[ptrUnit->id];. */
+ /* ~ }. */
+ /* ~ else if ( (ptrUnit->y - UnitSpeedTable[ptrUnit->id]) > ptrUnit->target_y). */
+ /* ~ {. */
+ /* ~ ptrUnit->dir = DIRECTION_UP;. */
+ /* ~ y_d = (int8_t)-UnitSpeedTable[ptrUnit->id];. */
+ /* ~ }. */
+ /* ~ else if ( (ptrUnit->y + UnitSpeedTable[ptrUnit->id]) < ptrUnit->target_y). */
+ /* ~ {. */
+ /* ~ ptrUnit->dir = DIRECTION_DOWN;. */
+ /* ~ y_d = (int8_t)UnitSpeedTable[ptrUnit->id];. */
+ /* ~ }. */
+ /* ~ else. */
+ /* ~ {. */
+ /* ~ bMoving = false;. */
+ /* ~ }. */
if (ptrUnit->walking != false)
{
@@ -411,7 +411,7 @@ void UnitHandler(TYPE_UNIT* unitArray, size_t sz)
switch (ptrUnit->dir)
{
case DIRECTION_LEFT:
- // Fall through
+ /* Fall through. */
case DIRECTION_RIGHT:
y_d = -x_d;
x_d = 0;
@@ -419,7 +419,7 @@ void UnitHandler(TYPE_UNIT* unitArray, size_t sz)
break;
case DIRECTION_UP:
- // Fall through
+ /* Fall through. */
case DIRECTION_DOWN:
x_d = y_d;
y_d = 0;
diff --git a/UnitOld.h b/UnitOld.h
new file mode 100644
index 0000000..d8a59e0
--- /dev/null
+++ b/UnitOld.h
@@ -0,0 +1,123 @@
+#ifndef UNIT_H__
+#define UNIT_H__
+
+/* **************************************
+ * Includes *
+ * **************************************/
+
+#include "Global_Inc.h"
+#include "Camera.h"
+#include "Player.h"
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif /* cplusplus. */
+
+/* **************************************
+ * Defines *
+ * **************************************/
+
+ /* **************************************
+ * Structs and enums *
+ * **************************************/
+
+typedef enum t_unitdirection
+{
+ DIRECTION_LEFT = 0,
+ DIRECTION_RIGHT,
+ DIRECTION_UP,
+ DIRECTION_DOWN
+}UNIT_DIRECTION;
+
+typedef enum t_unitid
+{
+ /* Walking units. */
+ PEASANT,
+ SOLDIER,
+
+ MAX_UNIT_ID,
+
+ /* Buildings. */
+ BARRACKS,
+ TOWER,
+ TOWN_CENTER,
+
+ MAX_BUILDING_ID,
+
+ MAX_UNITS_BUILDINGS,
+
+ FIRST_UNIT_ID = PEASANT,
+ FIRST_BUILDING_ID = BARRACKS
+}TYPE_UNIT_ID;
+
+typedef struct t_Unit
+{
+ uint16_t x;
+ uint16_t y;
+ uint16_t target_x;
+ uint16_t target_y;
+ uint8_t hp;
+ TYPE_UNIT_ID id;
+ UNIT_DIRECTION dir;
+ bool mirror; /* True = down or left; true = up or right. */
+ bool building;
+ bool walking;
+ bool alive;
+ bool selected;
+ bool selecting_attack;
+ bool attacking;
+ uint8_t walk_counter;
+}TYPE_UNIT;
+
+typedef struct
+{
+ const char* str;
+ void (*pAction)(TYPE_UNIT*);
+}TYPE_UNIT_ACTION;
+
+typedef enum t_availableactions
+{
+ ACTION_BUILD_BARRACKS,
+ ACTION_CREATE_PEASANT,
+ ACTION_CREATE_SOLDIER,
+ ACTION_BUILD_TOWER_CENTER,
+ MAX_ACTIONS
+}UNIT_ACTION;
+
+typedef struct t_Camera TYPE_CAMERA;
+typedef struct t_Resource TYPE_RESOURCES;
+
+/* **************************************
+ * Global prototypes *
+ * **************************************/
+
+/* Initialization and handling. */
+void UnitInit(void);
+void UnitHandler(TYPE_UNIT* unitArray, size_t sz);
+
+/* Unit information. */
+uint8_t UnitGetHpFromID(TYPE_UNIT_ID id);
+uint8_t UnitGetWidthFromID(TYPE_UNIT_ID id);
+uint8_t UnitGetHeightFromID(TYPE_UNIT_ID id);
+uint8_t UnitGetAvailableActions(TYPE_UNIT *ptrUnit);
+TYPE_RESOURCES UnitNeededResourcesFromID(TYPE_UNIT_ID id);
+
+/* Rendering. */
+void UnitDraw(TYPE_UNIT *ptrUnit, TYPE_CAMERA* ptrCamera, bool bHighlighted);
+void UnitDrawShadow(TYPE_UNIT *ptrUnit, TYPE_CAMERA *ptrCamera);
+
+/* Movement. */
+void UnitMoveTo(TYPE_UNIT *ptrUnit, uint16_t x, uint16_t y);
+
+/* Collision cheking. */
+bool UnitCheckCollisionAgainstOtherUnits(TYPE_COLLISION_BLOCK* cb, TYPE_UNIT *ptrUnitArray, TYPE_UNIT* ptrCurrentUnit);
+
+/* Selection index. */
+const char* UnitGetActionString(UNIT_ACTION action);
+
+#ifdef __cplusplus
+}
+#endif /* cplusplus. */
+
+#endif /* UNIT_H__. */
diff --git a/main.cpp b/main.cpp
index c302408..a6f0cc3 100644
--- a/main.cpp
+++ b/main.cpp
@@ -1,34 +1,41 @@
/* **************************************
- * Includes *
+ * Includes *
* **************************************/
-#include "Global_Inc.h"
-#include "Gameplay.h"
#include "Menu.h"
+#include "System.h"
/* **************************************
- * Global variables *
+ * Defines *
* **************************************/
-Gamebuino gb;
-
-int main(){
-
- init();
-
- SystemInit();
-
- gb.begin();
-
- // Main loop
- while (1)
- {
- gb.titleScreen(F("Pocket Empires"));
-
- MainMenu();
- }
-
+/* **************************************
+ * Global variables *
+ * **************************************/
- return 0;
+/* **************************************
+ * Functions definition *
+ * **************************************/
+/*****************************************************************//**
+ *
+ * \brief Initializes the device and game parameters.
+ *
+ * \return Error code (always 0), but is never returned.
+ *
+ *********************************************************************/
+int main()
+{
+ /* Initialize system and game parameters. */
+ SystemInit();
+
+ /* Main loop. */
+ for (;;)
+ {
+ /* Execute gameplay. */
+ MainMenu();
+ }
+
+ /* This must never be reached. */
+ return 0;
}