summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXaviDCR92 <xavi.dcr@gmail.com>2017-11-05 05:38:31 +0100
committerXaviDCR92 <xavi.dcr@gmail.com>2017-11-05 05:38:31 +0100
commit8fba2176bc34aa7e507f0b9d983427bb5e522e17 (patch)
treed5e1c7d5560f30581fc5a1957121fc0a198b62f7
parent2cf2d608af862e812e7fd3ac580f869141a96fa7 (diff)
downloadpocketempires-8fba2176bc34aa7e507f0b9d983427bb5e522e17.tar.gz
* Modified shadows for Town centre.
* Bugfixes in unit movement and collision detection. Now it should work fine. * Added include guards to all *.i files. * Other minor changes
-rwxr-xr-xExe/POCKET.ELFbin46488 -> 47220 bytes
-rw-r--r--Exe/POCKET.HEX2685
-rw-r--r--Exe/POCKET.MAP1121
-rw-r--r--Gfx.cpp11
-rw-r--r--Gfx.h1
-rw-r--r--MouseSpr.i5
-rw-r--r--PeasantSpr.i5
-rw-r--r--Player.cpp82
-rw-r--r--Player.h10
-rw-r--r--SoldierSpr.i26
-rw-r--r--Sprites/SoldierSpr.bmpbin0 -> 246 bytes
-rw-r--r--Sprites/SoldierSpr_Walking.bmpbin0 -> 246 bytes
-rw-r--r--Sprites/TownCentreShadow.bmpbin1782 -> 1782 bytes
-rw-r--r--System.c6
-rw-r--r--System.h2
-rw-r--r--TownCentre.i43
-rw-r--r--Unit.c97
-rw-r--r--Unit.h64
18 files changed, 2163 insertions, 1995 deletions
diff --git a/Exe/POCKET.ELF b/Exe/POCKET.ELF
index 94e29f1..b06b678 100755
--- a/Exe/POCKET.ELF
+++ b/Exe/POCKET.ELF
Binary files differ
diff --git a/Exe/POCKET.HEX b/Exe/POCKET.HEX
index f911339..1e2e438 100644
--- a/Exe/POCKET.HEX
+++ b/Exe/POCKET.HEX
@@ -1,1334 +1,1357 @@
-:100000000C9483030C94AB030C94AB030C94AB03E0
-:100010000C94AB030C94AB030C94AB030C94AB03A8
-:100020000C94AB030C94AB030C94AB030C947D1FAA
-:100030000C94AB030C94AB030C94AB030C94AB0388
-:100040000C9462200C94AB030C94AB030C94AB03A4
-:100050000C94AB030C94AB030C94AB030C94AB0368
-:100060000C94AB030C94AB03506F636B6574204529
+:100000000C9493030C94BB030C94BB030C94BB03A0
+:100010000C94BB030C94BB030C94BB030C94BB0368
+:100020000C94BB030C94BB030C94BB030C941120E5
+:100030000C94BB030C94BB030C94BB030C94BB0348
+:100040000C94F6200C94BB030C94BB030C94BB03E0
+:100050000C94BB030C94BB030C94BB030C94BB0328
+:100060000C94BB030C94BB03506F636B6574204509
:100070006D70697265730080007B00517569740052
:10008000526573756D65000808FC848884A2D10AE6
-:10009000044661696C656420746F206372656174E5
-:1000A0006520756E697421004661696C6564207411
-:1000B0006F20637265617465206275696C64696E36
-:1000C00067210018181F80007E0000F80000F00073
-:1000D00000E00000E00004E00004E00004E2E004CE
-:1000E000E28004E28004E28004E28004E28004E230
-:1000F000E004E0600CE00010E00000E00000E0013F
-:1001000080F00180F801807E01801F818018180333
-:10011000FFC00C003037FFEC780016AFFFF5A800E9
-:1001200015A8FF15A88115A8FFD5AB8155AAA5D59F
-:10013000AB8155AAA555AB81D5A89915A8FF15A6E1
-:10014000006591C3898C423183C3C1404202304271
-:100150000C0C423003C3C018180000000000FEFE63
-:1001600000FEFE003E3E00FEFE00FEFE001E1E00E3
-:100170001E1E001E1E001E1E001E1E001E1E001E35
-:100180001E001E1E001E1E001E1E001E1E001E1E25
-:1001900000FEFE00FEFE003E3E00FEFE00FEFE00F3
-:1001A000FE1818E700E7BD00BDE7FFE7BD00BD8111
-:1001B000FF81E700E7A500A5BDFFBDA500A5A5003F
-:1001C000A5A500A5A500A5A500A5A500A5A500A518
-:1001D000A500A5E700E7BD00BDE7FFE7BD00BD81C5
-:1001E000FF81811881812481FFFFFF0808003C42C4
-:1001F00099A5661800080860BCC299A5671D02256C
-:100200000214020C02070251756974004F70746980
-:100210006F6E73004D756C7469706C6179657220D6
-:1002200067616D650053696E676C6520706C6179FC
-:1002300065722067616D6500030307050705040506
-:100240000504050306030207020201020203020E6F
-:10025000090E0E0D0E0E0F0E070507050307050FFD
-:10026000050705070607010205020007020207004D
-:100270000207020002070200070603060707020240
-:10028000050502010202040200050202050006073C
-:1002900005050705020302020602000000000B002C
-:1002A000030003070507040701050205070704000B
-:1002B0000300000705050700050005020702000C02
-:1002C00000020202000400040201070507050704FA
-:1002D00001070405070203020704070107060601D8
-:1002E0000107070707030307000500000D000205CB
-:1002F000000505050005020107030F0903060306B3
-:10030000070702020505070702070705070301079C
-:10031000050607020705070504040307020507048D
-:10032000040703070701060705070703030705037B
-:100330000703060407010107010704070304030775
-:100340000607050205010601010704000705010271
-:10035000040507000201020808080003000603065E
-:10036000070702020505070502070705070301073E
-:10037000050607020705070504040307020507042D
-:10038000040703070701060705070703030705031B
-:100390000703060407010107010704070304030715
-:1003A000060705020501060101070402070500070B
-:1003B0000005070206020307050703053F213F1258
-:1003C00008120A100A0E1C0E0C1E0C141A14161F0A
-:1003D000161E131E1E1B1E1E1F1E3F213F3A2F3AC4
-:1003E000173D173F213F181F02040A041F0E040483
-:1003F0000E1F0A1F0A0E0E1F04110E2E252E2F2A65
-:100400002E262929021F02081F08150E04040E15A6
-:100410000E15151B151B040604040C040000000037
-:1004200017000300031F0A1F16371A1904130A15B1
-:100430003A000300000E11110E000A040A040E0413
-:100440000030000404040010001804031F111F12E0
-:100450001F101D151711151F07041F17151D1F1538
-:100460001D01011F1F151F17151F000A0000320074
-:10047000040A110A0A0A110A040115020E11171EB4
-:10048000051E1F150A0E110A1F110E1F15111F053B
-:10049000010E111D1F041F111F1108100F1F041B37
-:1004A0001F10101F061F1E040F0E110E1F09060E2F
-:1004B000112E1F051A121509011F011F101F0F18F9
-:1004C0000F1F0C1F1B041B031C03191513001F1106
-:1004D000030418111F000201022020200001020C59
-:1004E000121E1F120C0C12120C121F0C1A14041ED6
-:1004F00005242A1E1F021C141D1020201D1F081475
-:10050000111F101E041E1E021C0C120C3E0A040CAD
-:10051000123E1E040214160A020F120E101E0E10B6
-:100520000E1E081E120C1226281E322A26041E2118
-:10053000001F00211E040102013F213F0A4E6F20CF
-:1005400053442063617264206F720A6E6F204C4FB7
-:10055000414445522E4845580A0A153A457869746F
-:10056000001D20466C617368696E670A20206C6FFD
-:10057000616465722E2E2E0A0A444F4E2754205471
-:1005800055524E204F464621000A0A153A49676ED9
-:100590006F7265006D560A0A504C45415345205410
-:1005A00055524E204F464620004C4F572042415452
-:1005B0005445525921200017534400161378001651
-:1005C0001314001510200015201000540A03E181B7
-:1005D000867F3E186D830F0F0E0183866033186D82
-:1005E000C3198F1803C38E6033186DE330CF18031F
-:1005F000C39E603630CDE360CF3006C79E7E3E306E
-:10060000CDB360CF300CC6F6603330D9B660CF338F
-:10061000CFCCF66061B0DB1E60CF30D86CE6C06135
-:10062000B0DB1E618F19986CC6C063B19B0E330F8F
-:100630000FB078C6FF7E1F1B061E0F05008930080D
-:10064000023802497868140000F6E8DBCFC3B8AE80
-:10065000A49B928A827B746E68625C57524E4945B5
-:10066000413E3A3734312E2C29272523211F1D1CCA
-:100670001A1917161514131211100F0E0D0C0B0A60
-:1006800009080706450068010000050068013801F7
-:1006900000000500380168010000A2069E06010165
-:1006A000FF030101F703000000070002010000033F
-:1006B00004060000000000000000010204081020F1
-:1006C00040800102040810200102040810200404E4
-:1006D00004040404040402020202020203030303EA
-:1006E0000303000000002300260029000000000092
-:1006F000250028002B0000000000240027002A000D
-:10070000BE030E04120411241FBECFEFD8E0DEBFDB
-:10071000CDBF11E0A0E0B1E0E4EDF2E502C005904C
-:100720000D92AE35B107D9F727E0AEE5B1E001C0D3
-:100730001D92A837B207E1F713E0C2E8D3E004C086
-:100740002197FE010E94CE24C038D107C9F70E942C
-:10075000AD030C945D290C9400000E9403210E94BB
-:1007600095048EE591E00E949A1C68E670E08EE5A3
-:1007700091E00E941D1C0E94CC0FF7CF1092AF0198
-:100780001092AE0183E591E09093AD018093AC01AE
-:1007900008958EEE91E00E94710781E08093EE0152
-:1007A00087E890E09093ED018093EC0182E08093E4
-:1007B000EB011092E9011092EA0186E28093E501D3
-:1007C00084E18093E6010E940B0586E090E00E94A0
-:1007D0001F06882349F042E067E770E08EE591E06C
-:1007E0000E945819811108958EEE91E00E94CB0B62
-:1007F0000E94530681110E9416040E94130588234B
-:10080000E1F30E941D058EEE91E00E94070B85EE3C
-:1008100091E00E942D050E943204D7CF8EEE91E028
-:100820000C9463068EEE91E00C9464068091F404BF
-:10083000811117C081E08093F4043091F504209178
-:10084000F6048091F7048091F8048091F904809176
-:10085000FA048091FB048091FC04832F922F0C9466
-:100860005E2608952091F5043091F6044091F70436
-:100870005091F8046091F9047091FA048091FB049E
-:100880009091FC04A1E00E94C2242093F5043093CF
-:10089000F6044093F7045093F8046093F9047093BE
-:1008A000FA048093FB049093FC0408958F929F9226
-:1008B000AF92BF92CF92DF92EF92FF924B015C0119
-:1008C00069017A010E945926BC01990F880B990B86
-:1008D000C818D908EA08FB08A70196012F5F3F4F07
-:1008E0004F4F5F4F0E947624680D791D8A1D9B1D16
-:1008F000FF90EF90DF90CF90BF90AF909F908F9040
-:100900000895E2E9F4E013861286118610861082BB
-:1009100011821282138214821582168217823C96EB
-:1009200084E0E23FF80779F708951092F5041092F9
-:10093000F6041092F7041092F8041092F904109241
-:10094000FA041092FB041092FC041092F3040E942B
-:1009500081041092F2040895EF92FF920F931F9377
-:10096000CF93DF93CDB7DEB72C970FB6F894DEBFE9
-:100970000FBECDBF49835A836B837C839E83EF82F6
-:10098000F88609871A873C8769817A814F81588563
-:10099000240F352F311D62177307C8F4860F972F68
-:1009A000911D4817590798F46B817C8149855A85B8
-:1009B0008C85840F952F911D6817790740F42E813F
-:1009C000260F372F311D81E04217530708F080E0D2
-:1009D00081702C960FB6F894DEBF0FBECDBFDF91AD
-:1009E000CF911F910F91FF90EF90089550E0480F25
-:1009F000511D87FD5A9557FD0CC0843554F430E0E5
-:100A0000260F311D67FD3A9537FD03C081E0603345
-:100A10000CF080E008951092B2016AEB73E08CEA6A
-:100A200091E00C94C3158EE591E00E94A01891E02E
-:100A3000811101C090E0892F089560E08CEA91E077
-:100A40000E94C5108CEA91E00C94B410FC01238143
-:100A50004281618180810C94F604EF920F931F9381
-:100A6000CF93DF93EC01009701F10E9426058823C4
-:100A7000E1F01091CC0140E06E818CEA91E00E949F
-:100A800016112F813885ED800C81498168818CEAAF
-:100A900091E00E94DC14612F8CEA91E0DF91CF910C
-:100AA0001F910F91EF900C941211DF91CF911F9134
-:100AB0000F91EF900895FC01849108950196FC0137
-:100AC000849108954CE3BC018EE591E00C94781775
-:100AD0000F931F93CF93DF938C01C091CA01D091E4
-:100AE000CB0122974093B5012093B6018CEA91E0A7
-:100AF0000E94C31540E061E08CEA91E00E9416116B
-:100B0000B8018CEA91E00E94CC22209749F0BE0106
-:100B10008CEA91E0DF91CF911F910F910C94C31556
-:100B2000DF91CF911F910F910895FF920F931F9323
-:100B3000CF93DF93D82F162FC42FF22E242F0E948D
-:100B4000F6048823C1F00091CC016F2D8CEA91E06E
-:100B50000E9412112C2F412F6D2F8CEA91E00E94E0
-:100B6000A311602F8CEA91E0DF91CF911F910F913B
-:100B7000FF900C941211DF91CF911F910F91FF9074
-:100B80000895EF92FF920F931F93CF93DF93C82F97
-:100B9000D62F142FF22E0E94F6048823D1F0E09075
-:100BA000CC01602F8CEA91E00E9412110F2D212FB1
-:100BB0004D2F6C2F8CEA91E00E9452116E2D8CEA21
-:100BC00091E0DF91CF911F910F91FF90EF900C94E6
-:100BD0001211DF91CF911F910F91FF90EF90089527
-:100BE000EF92FF920F931F93CF93DF93C82FD62FCF
-:100BF000142FF22E0E94F6048823D1F0E090CC014D
-:100C0000602F8CEA91E00E9412110F2D212F4D2FA1
-:100C10006C2F8CEA91E00E947A116E2D8CEA91E0A3
-:100C2000DF91CF911F910F91FF90EF900C941211D3
-:100C3000DF91CF911F910F91FF90EF900895682F52
-:100C400088E691E00E94221091E0811101C090E0BD
-:100C5000892F0895CF93C62F682F88E691E00E94D0
-:100C6000411091E0C81708F090E0892FCF910895C6
-:100C700060E00C942A0681E090E00E943806811121
-:100C800010C083E090E00E94380681110AC090E015
-:100C900080E00E943806811104C082E090E00C944C
-:100CA000380681E008950E943B0681110AC084E065
-:100CB00090E00E943806811104C085E090E00C9419
-:100CC000380681E00895089508950F931F93CF93F8
-:100CD000DF93CDB7DEB728970FB6F894DEBF0FBE0F
-:100CE000CDBF162F00E028E044E56BE280E00E94D3
-:100CF000F0051F921F9386E091E09F938F931F92C0
-:100D000088E08F938E010F5F1F4F1F930F930E94F8
-:100D100070262CE244E068E372E0C8010E94680596
-:100D20000FB6F894DEBF0FBECDBF28960FB6F8946D
-:100D3000DEBF0FBECDBFDF91CF911F910F91089500
-:100D4000CF92DF92FF920F931F93CF93DF93CDB794
-:100D5000DEB760970FB6F894DEBF0FBECDBF6C0153
-:100D600060E08CEA91E00E94121105E024E540E089
-:100D700060E08CEA91E00E947A11F60181891F926D
-:100D80008F938CE091E09F938F931F9280E1F82ED8
-:100D9000FF928E010F5F1F4F1F930F930E947026CB
-:100DA00021E042E068E372E0C8010E946805F601B4
-:100DB00082891F928F9381E191E09F938F931F927D
-:100DC000FF921F930F930E94702621E046E168E393
-:100DD00072E0C8010E946805F60183891F928F9313
-:100DE00086E191E09F938F931F92FF921F930F9341
-:100DF0000E94702621E04AE268E372E0C8010E9486
-:100E000068050FB6F894DEBF0FBECDBF60960FB673
-:100E1000F894DEBF0FBECDBFDF91CF911F910F9130
-:100E2000FF90DF90CF900895CF92DF92EF92FF92E4
-:100E30000F931F93CF93DF9300D000D000D0CDB796
-:100E4000DEB76B0109831A832B833C837C012CE67C
-:100E5000E21A2DEFF20AF7014081403208F03FC05C
-:100E600054E1242F30E08C01549F000D111D1124FA
-:100E7000F801658F2F5F3F4F529FB001539F700D58
-:100E80001124860F971F29813A81FC013183208329
-:100E90008B819C81F801978B868B8C2D0E947C0E18
-:100EA000F801848F81E083A3F2E0CF16D1040CF423
-:100EB00080E0F80181A3F70180818F5F808381E06A
-:100EC00026960FB6F894DEBF0FBECDBFDF91CF914F
-:100ED0001F910F91FF90EF90DF90CF90089580E0E9
-:100EE000EFCFEF92FF920F931F93CF93DF9300D03A
-:100EF00000D000D0CDB7DEB77C018C010C561D4F61
-:100F0000D8011C92FC01E256FD4F8FEF8083C70190
-:100F10008B569D4F0E94ED0B0E94D60CF7017496E4
-:100F200084E1DF01982F1D929A95E9F77496E017F6
-:100F3000F107B9F789E1D70151968C93519782E374
-:100F400052968C9352978BE453968C9324E130E025
-:100F500040E050E060E070E0CB010E9456047A83EC
-:100F6000698324E130E040E050E060E070E0CB01D4
-:100F70000E945604262F7C836B8309811A813C8151
-:100F80004D815E8164E070E0C7010E941407811109
-:100F900004C088EA90E00E94620528E330E040E067
-:100FA00050E060E370E080E090E00E9456047A83B5
-:100FB000698328E330E040E050E060E370E080E0E7
-:100FC00090E00E9456047C836B8380E00E944A0D6F
-:100FD0008D8380E00E94540DF701EF55FD4F108284
-:100FE00031961082329710823397108209811A81CC
-:100FF0002B813C814D81582F70E060E0C7010E9439
-:101000001407811110C081E990E026960FB6F8947C
-:10101000DEBF0FBECDBFDF91CF911F910F91FF902B
-:10102000EF900C94620526960FB6F894DEBF0FBEC3
-:10103000CDBFDF91CF911F910F91FF90EF90089559
-:10104000CF93DF9300D000D000D0CDB7DEB7FC0146
-:10105000E956FD4F2081318144E150E0421B530BA2
-:101060008B569D4FFC018081918126E230E0281B48
-:10107000390B3A8329835C834B833A815C8168E036
-:1010800078E080E090E026960FB6F894DEBF0FBEC1
-:10109000CDBFDF91CF9108953F924F925F926F92B3
-:1010A0007F928F929F92AF92BF92CF92DF92EF92F8
-:1010B000FF920F931F93CF93DF9300D000D000D007
-:1010C000CDB7DEB75C018C01912C88248A9444242E
-:1010D0004A94542C3201F80183A1882309F444C0B6
-:1010E00084A1811141C0C5010E94200829833A834F
-:1010F0004B835C836D837E83F801C488D588E68842
-:10110000F788858D0E944A0D382EF801858D0E9442
-:10111000540D29813A81C21AD30A232D30E0359526
-:101120002795C20ED31E2B813C81E21AF30A90E070
-:1011300095958795E80EF91ECC9CC001CD9C900D2D
-:10114000900D1124EE9C9001EF9C300D300D112478
-:10115000820F931FB0E0A0E084159505A605B705A2
-:1011600018F4892C2C013D010C5E1F4F9394F0E282
-:101170009F12B1CFF501E256FD4F808226960FB641
-:10118000F894DEBF0FBECDBFDF91CF911F910F91BD
-:10119000FF90EF90DF90CF90BF90AF909F908F9097
-:1011A0007F906F905F904F903F900895FC01E356C1
-:1011B000FD4F2081222351F033962081211106C05A
-:1011C00031968081853010F48F5F808308958F92EF
-:1011D0009F92BF92CF92DF92EF92FF920F931F9355
-:1011E000CF93DF9300D000D000D0CDB7DEB77C0125
-:1011F0004B016A01FB0181850E944A0D182FF40101
-:1012000081850E94540DB82EF4010081812F90E059
-:101210009C0135952795280F391F032E000C440B90
-:10122000550B612F70E090E080E00E945604060F9D
-:10123000F40112818B2D90E09C0135952795280FA4
-:10124000391F032E000C440B550B6B2D70E090E002
-:1012500080E00E9456041E821D82802F90E09A83B7
-:101260008983160F612F70E0212F7C836B831A8195
-:101270003C8140E05E81B601C7010E9414072696BA
-:101280000FB6F894DEBF0FBECDBFDF91CF911F9197
-:101290000F91FF90EF90DF90CF90BF909F908F9035
-:1012A0000895CF92DF92EF92FF920F931F93CF9307
-:1012B000DF9300D000D000D0CDB7DEB77C016A014B
-:1012C0000E94200889019A01AB01B601C7010E9462
-:1012D000140726960FB6F894DEBF0FBECDBFDF9180
-:1012E000CF911F910F91FF90EF90DF90CF900895D5
-:1012F0000F931F93CF93DF93EC01CF55DD4F2881E0
-:101300008C0100561D4F253018F5FC01E256FD4FAB
-:1013100020812F3F81F0FC0134E12302E00DF11D1B
-:10132000112421E024A3FC01E356FD4F20838E55B8
-:101330009D4FFC011082188281E09881953008F45D
-:1013400080E0F8018083DF91CF911F910F91089584
-:10135000F8012081222381F3FC0130E020E044A148
-:101360002F5F3F4F4423E1F044E1429FB001439F90
-:10137000700D1124680F791FFC01ED55FD4F10828F
-:1013800031972081222339F02230B1F650E040E03D
-:101390000E94E708D1CF42E050E00E945109CCCF33
-:1013A000749620323105D9F6C7CFCF93DF93EC0185
-:1013B000C356DD4F28812223D9F0DC01A156BD4F51
-:1013C0002C912530C0F0FC019C0120583D4F44A1D8
-:1013D000411114A27496E217F307C9F71C92188200
-:1013E000FC01E056FD4F10828F559D4FFC0110828D
-:1013F000DF91CF9108952F5F2C93FACFCF92DF9298
-:10140000EF92FF920F931F93CF93DF9300D000D002
-:1014100000D0CDB7DEB78C01FC01E356FD4F8081D3
-:10142000882309F1C8010E94200829833A834B834D
-:101430005C836D837E83F801680120E8C21A2DEF7A
-:10144000D20A84A19F012C5E3F4F7901882339F095
-:101450004B815C8169817A81C9010E94820EF7010A
-:10146000EC14FD0471F7F801E156FD4F1082269649
-:101470000FB6F894DEBF0FBECDBFDF91CF911F91A5
-:101480000F91FF90EF90DF90CF900895EF92FF9231
-:101490000F931F93CF93DF93FC01E056FD4F208104
-:1014A000222349F1EC017C0180E8E81A8DEFF80A6B
-:1014B0008E010E551D4F8CA164968823C9F0CE0174
-:1014C0000E94B00FF80140819FEF940F282F30E069
-:1014D000491771F0993008F097E0B901092E02C060
-:1014E000759567950A94E2F760FF0CC0F801908348
-:1014F000CE15DF0501F7DF91CF911F910F91FF907E
-:10150000EF9008959150E4CFEF92FF920F931F93C5
-:10151000CF93DF93FC01E056FD4F2081222349F158
-:10152000EC017C0180E8E81A8DEFF80A8E010E5577
-:101530001D4F8CA164968823C9F0CE010E94B00F84
-:10154000F801408191E0940F282F30E0491771F0A5
-:10155000983008F090E0B901092E02C075956795A2
-:101560000A94E2F760FF0CC0F8019083CE15DF0506
-:1015700001F7DF91CF911F910F91FF90EF900895A8
-:101580009F5FE4CF0F931F93CF93DF93EC01FC0198
-:10159000E056FD4F80818823A9F1FE0190E080E0B4
-:1015A00024A10196222351F144E1489F9001499FD3
-:1015B000300D1124CE01820F931F0E94B00F90E0D6
-:1015C0008E010E551D4FF801208102C0959587951B
-:1015D0002A95E2F780FD03C0CE010E94840AF8013B
-:1015E000808190E00E94B80F2CE248E268E372E04C
-:1015F000DF91CF911F910F910C9468057496803202
-:10160000910571F6DF91CF911F910F9108958F92FF
-:101610009F92AF92BF92CF92DF92EF92FF920F9381
-:101620001F93CF93DF93EC018C010C5E1F4FF12CC5
-:10163000E12C912C6C0182E6C81A8DEFD80A5E016C
-:10164000EBE6AE1AEDEFBE0AF80187858823D9F0E4
-:10165000F60180818F3F39F0082E000C990B41E094
-:101660008E159F0509F040E0B501C8010E945E0D8E
-:10167000F8018088882039F0911005C06085CE017E
-:101680000E946506982CFFEFEF1AFF0A0C5E1F4FB1
-:1016900080E2E816F104C1F68881882339F19920A7
-:1016A00099F001E023E04AE06CE284E40E94C10585
-:1016B000FE01EF55FD4F4081442331F0440F23E0FC
-:1016C0006CE284E40E94F005CE010E94C20ACE01C1
-:1016D000DF91CF911F910F91FF90EF90DF90CF900E
-:1016E000BF90AF909F908F900C94A006DF91CF9108
-:1016F0001F910F91FF90EF90DF90CF90BF90AF9030
-:101700009F908F900895CF93DF93EC0184E090E059
-:101710000E943806882329F0CE01DF91CF910C94E6
-:10172000D60884E090E00E941F06882329F0CE01AD
-:10173000DF91CF910C94780985E090E00E94380603
-:10174000882329F0CE01DF91CF910C94D50985E053
-:1017500090E00E941F06882329F0CE01DF91CF91EF
-:101760000C94FE0990E080E00E941F06882329F077
-:10177000CE01DF91CF910C94460A82E090E00E9466
-:101780001F06882329F0CE01DF91CF910C94840AA3
-:10179000DF91CF9108950F931F93CF93DF93EC01C7
-:1017A0008C010B561D4FFC01E056FD4F6081C801B6
-:1017B0000E94D30CC8010E94350CCE010E944C0837
-:1017C00060E270E0CE0144960E948A0ECE01DF9165
-:1017D000CF911F910F910C94830BFC011182108209
-:1017E000138212821482158283E086831782089501
-:1017F000CF93DF93CDB7DEB72C970FB6F894DEBF4B
-:101800000FBECDBF1C861B86FC0122813381420F97
-:10181000531F80819181680F791F78876F835A8762
-:10182000498786E0FE013796DE01119601900D9200
-:101830008A95E1F729813A814B815C816D817E81B6
-:1018400080E090E02C960FB6F894DEBF0FBECDBFBF
-:10185000DF91CF910895FC019081490FDB014C93FA
-:101860008281280F11962C930895CF93DF93EC017A
-:101870008F81882319F01C821D821BC08E818330CA
-:10188000D8F48F5F8E832C8188819981820F911D7E
-:1018900027FD9A9597FF80C0998388832D818A813F
-:1018A0009B81820F911D27FD9A9597FF79C09B839D
-:1018B0008A83DF91CF9108951E820E943B06882380
-:1018C00069F190E080E00E943806882329F08C813D
-:1018D00087FF47C08E5F8C8381E090E00E943806CE
-:1018E000882329F08D8187FF41C08E5F8D8383E03F
-:1018F00090E00E943806882331F08D8118160CF094
-:101900003AC082508D8382E090E00E94380688239E
-:1019100029F08C8118169CF582508C8390E080E031
-:101920000E94380681110BC082E090E00E943806C8
-:10193000811105C08C81181634F581508C8381E0AB
-:1019400090E00E94380681119ECF83E090E00E94D3
-:101950003806811198CF8D811816CCF481508D8373
-:1019600092CF85300CF0B8CF8F5FB5CF85300CF0BB
-:10197000BECF8F5FBBCF8C3F34F28150C3CF8C3F43
-:101980006CF28150CACF8823D1F28F5FD7CF8823E2
-:1019900009F479CF8F5FE3CF198218821C827ECF42
-:1019A0001B821A8269CFFC0167830895FF920F930F
-:1019B0001F93CF93DF9303E315E08BEE91E0F801E3
-:1019C000908787830E945B05F80182838BEE91E00C
-:1019D0000E945E05F801838315821482FF24F3942C
-:1019E000F682CDEFD4E085EF91E098878F830E9457
-:1019F0005B058A8385EF91E00E945E058B831D82E3
-:101A00001C82FE8281EA91E0F801928F818F0E9410
-:101A10005B05F801848B81EA91E00E945E05F80184
-:101A2000858B178A168AF08E8DE091E094A783A7A4
-:101A30000E945B05F80186A38DE091E00E945E059F
-:101A4000F80187A311A610A6F2A687E591E09A8F68
-:101A5000898F0E945B058C8B87E591E00E945E0573
-:101A60008D8B1F8A1E8A13E0188F83EC90E09CA751
-:101A70008BA70E945B058EA383EC90E00E945E051D
-:101A80008FA319A618A61AA7DF91CF911F910F91C6
-:101A9000FF90089599E0899FF0011124ED5CFA4FC1
-:101AA000878190850C945B0599E0899FF001112452
-:101AB000ED5CFA4F878190850C945E058F929F9222
-:101AC000AF92BF92CF92DF92EF92FF920F931F934C
-:101AD000CF93DF9300D000D000D0CDB7DEB77C012C
-:101AE0006B01842EDC011F968C911F97882309F4CB
-:101AF00080C019969C90E92DF0E0B9E09B9E800192
-:101B00001124D7011D968C911D978111B3C01E968B
-:101B10008C91882309F480C003501B4FF801148274
-:101B20001582882351F0D70153968C9153978F5F7C
-:101B3000853008F074C053968C93D7011A968D9116
-:101B40009C911B978130910509F48AC008F484C0E8
-:101B50008230910509F46AC0039709F473C0F70154
-:101B60002281338140815181B801C6010E942B0C32
-:101B7000C8010E942D05811005C0D70150968C9197
-:101B80008823B9F1F7014281538160817181C601D7
-:101B90000E94F80B29833A834B835C83C980DA80E7
-:101BA000AB80BC80D70150968C9101E0811101C0BF
-:101BB00003E0892D0E944A0D182F892D0E94540D93
-:101BC000F7019585992309F477C0282F2695269546
-:101BD000280F412F46954695410F86958695869507
-:101BE0006A2D681B1695169516958C2D811B0E94E3
-:101BF000C10526960FB6F894DEBF0FBECDBFDF91AC
-:101C0000CF911F910F91FF90EF90DF90CF90BF90F9
-:101C1000AF909F908F9008950D5C1A4F7FCFF70182
-:101C2000138A848591E08927848787CF82E0F80131
-:101C30008583D7011C968C91882309F490CF83E08B
-:101C400085838DCFF7018485882309F488CF81E0CF
-:101C5000D80115968C9383CF81E0F8018483E8CF77
-:101C600081E0F80184831C968C91882309F477CF56
-:101C700082E0E6CFC80183509B4F5C01EE0FFF1F4F
-:101C8000E95EFE4F818112962D913C911397280FAA
-:101C9000311D87FD3A9580814D915C91480F511D12
-:101CA00087FD5A95B501C6010E942B0CC5010E9403
-:101CB0002D050D5C1A4F53CF682F66956A0D7B2D4D
-:101CC000711D812F8695202F412F8C0D9D2D911DEB
-:101CD00026960FB6F894DEBF0FBECDBFDF91CF9131
-:101CE0001F910F91FF90EF90DF90CF90BF90AF903A
-:101CF0009F908F900C949505E82FF0E0E75BFE4FE6
-:101D000080810895FC01758364835783468381E055
-:101D1000868708952F923F924F925F926F927F92A3
-:101D20008F929F92AF92BF92CF92DF92EF92FF92EB
-:101D30000F931F93CF93DF93CDB7DEB762970FB6A4
-:101D4000F894DEBF0FBECDBF882E592E7E876D87DB
-:101D5000C82ED92E312C212C8D859E85281639062A
-:101D6000C9F462960FB6F894DEBF0FBECDBFDF9107
-:101D7000CF911F910F91FF90EF90DF90CF90BF9088
-:101D8000AF909F908F907F906F905F904F903F901B
-:101D90002F900895D6011F968C911F97882309F4E0
-:101DA000D8C01E96BC901E97BB2009F4D2C0ED91FE
-:101DB000FC91119719968C91A82FB0E0AD5BBE4FA6
-:101DC0004C90842D90E0D60114966D917C911597DE
-:101DD0009F01281B390B6217730788F51B961C920D
-:101DE0001E921A97942C9194D60112964D915C9163
-:101DF000139716962D913C91DA01A81BB90B2A175F
-:101E00003B0760F522E030E0F601338722874194FA
-:101E1000D6011E96BC92BB2009F49BC0A82CB52C01
-:101E2000712C612C292D092C000C330B388B2F873A
-:101E3000842D042C000C990B9A8B898B28C09F0150
-:101E4000280F391F912C2617370770F621E030E054
-:101E50001B963C932E931A97942CC6CF840F951FF4
-:101E60008217930740F4E3E0F0E0D6011B96FC9361
-:101E7000EE931A97CDCF9E2E961A442E421AB12C6D
-:101E8000C7CFBFEF6B1A7B0AE4E1AE0EB11CAD8584
-:101E9000BE856A167B0609F448C0F60180819181EF
-:101EA0002F853889820F931F98878F838281938132
-:101EB000A989BA898A0F9B1F9A87898781850E9481
-:101EC0004A0D8B87F60181850E94540D8C87D501C0
-:101ED0001F968C911F978823A1F22614370489F24C
-:101EE0008D919C9111979A8389839C838B831996FA
-:101EF0008C910E944A0D8D83F50181850E94540DBD
-:101F00008E83E980FA800B811C812D81382F4F81CF
-:101F1000588569857A858B859C850E94AC048823C9
-:101F200009F4AFCFD6011E961C92F6018685882350
-:101F300081F080819181890D911D97FC9A95918303
-:101F4000808382819381840D911D47FC9A959383B0
-:101F50008283FFEF2F1A3F0A24E1C20ED11CFCCE70
-:101F6000DC011996EC91F0E0EF5DFE4F8081089561
-:101F7000880F991FFC01E35CFE4F808191810895D9
-:101F8000BC016F5F7F4F80E1FB0111928A95E9F7F9
-:101F90008EE591E00C94F51C43E06FEF71E08EE567
-:101FA00091E00E945819811106C08EEE91E00E94C6
-:101FB000C00F0C94C9030895FC0188E0808389E078
-:101FC000818387E0828386E0838384E0848382E068
-:101FD000858381E186830895FF920F931F93CF93AA
-:101FE000DF93EC018C01095F1F4FFF24FA9462E03C
-:101FF00088810E94DF2188810E9449222F81892BBC
-:1020000081F42F5F2F8360E088810E94DF21219679
-:10201000C017D10761F7DF91CF911F910F91FF900A
-:1020200008952223A1F32F3F11F41F82ECCFFF82EA
-:10203000EACFFC01E60FF11D81E09781913009F0B4
-:1020400080E00895FC01E60FF11D81E097819F3F3C
-:1020500009F080E00895860F911DFC0187814230D0
-:1020600038F49FEF980F81E09E3F50F080E008C069
-:102070008F3FE1F3642F0E94422481E09130B1F759
-:102080000895860F911DFC0187818F3F09F480E040
-:1020900008958EBD0DB407FEFDCF8EB50895DC0109
-:1020A000643508F042C0403308F03FC090968C91F0
-:1020B0009097E62F062E000CFF0B242F25952595D3
-:1020C000259594E52902E00DF11D1124E759FA4FF9
-:1020D0002081342F37708230A1F4822F90E0032EBC
-:1020E00002C0959587950A94E2F7809581708823C0
-:1020F00099F081E090E001C0880F3A95EAF7822BD1
-:1021000013C08330A1F71C968C916427062E000C17
-:10211000770B682760FDEDCF81E090E001C0880F6C
-:102120003A95EAF780958223808308951F93CF9391
-:10213000DF93EC01162FF89460E08F850E941B223C
-:10214000888918161CF460E00E941B22812F0E94CF
-:102150004910888918161CF461E00E941B227894AB
-:10216000DF91CF911F910895E9E6F5E028EF31E086
-:10217000DF01A9011D9241505040E1F7DC011996A1
-:102180001C9219971A961C92089548EF51E06FEF30
-:102190007FEF89E695E00C946926CF92DF92EF926B
-:1021A000FF920F931F93CF93DF93EC018C858F5F8A
-:1021B0008C8789E6E82E85E0F82E10E0612F6064B8
-:1021C000CE010E94961060E8CE010E94961061E058
-:1021D0008F850E941B22888918161CF460E00E94DB
-:1021E0001B22670104E5F60181916F010E944910ED
-:1021F0000150C9F7888918161CF461E00E941B225F
-:102200001F5FF4E5EF0EF11C1630C1F660E4CE015D
-:10221000DF91CF911F910F91FF90EF90DF90CF90C2
-:102220000C949610FC0160A361A30895FC0160A3C7
-:1022300041A30895EF92FF920F931F93CF93DF93E3
-:102240008C01D62FF42EE22EC0E0CE1544F44F2D93
-:102250004C0F6D2FC8010E944F10CF5FF6CFDF915A
-:10226000CF911F910F91FF90EF900895EF92FF9201
-:102270000F931F93CF93DF938C01F62ED42FE22E72
-:10228000C0E0CE1544F46F2D6C0F4D2FC8010E9495
-:102290004F10CF5FF6CFDF91CF911F910F91FF903D
-:1022A000EF900895EF92FF920F931F93CF93DF93D8
-:1022B0007C01162FD42FC22F0E9436114FEF400FF2
-:1022C0004D0F2C2F612FC7010E943611202F4D2F4B
-:1022D000612FC7010E941A116FEF6C0F610F202F41
-:1022E0004D2FC701DF91CF911F910F91FF90EF907C
-:1022F0000C941A11DF92EF92FF920F931F93CF93DA
-:10230000DF937C01D62FD22EC42F002E000C110B90
-:10231000040F111D47FD1A958C2F0C2E000C990BE4
-:102320008017910744F42D2D4C2F6D2FC7010E946B
-:102330003611CF5FF1CFDF91CF911F910F91FF90B9
-:10234000EF90DF9008959F92AF92BF92CF92DF926D
-:10235000EF92FF920F931F93CF93DF938C01E62EA2
-:10236000F42EC22F81E0D82ED21AC22EC194CC0CEA
-:10237000422F4F0DC8010E944F104F2D4C1B6E2D48
-:10238000C8010E944F106C2F6E0D4F2DC8010E9486
-:102390004F106E2D6C1B4F2DC8010E944F10D0E0C6
-:1023A000DC170CF044C0D7FC04C0C150C394C394E4
-:1023B000DC0CDF5F8D2F880F8F5FD80E9E2C9D0E5B
-:1023C000BF2CBC0E4B2D692DC8010E944F10AE2CA6
-:1023D000AD1A4B2D6A2DC8010E944F10BF2CBC1A9C
-:1023E0004B2D692DC8010E944F104B2D6A2DC8013D
-:1023F0000E944F10BF2CBD0E4B2DAE2CAC0E6A2D83
-:10240000C8010E944F104B2DBE2CBC1A6B2DC80169
-:102410000E944F109F2C9D1A492D6A2DC8010E94C1
-:102420004F10492D6B2DC8010E944F10B9CFDF917D
-:10243000CF911F910F91FF90EF90DF90CF90BF90C1
-:10244000AF909F9008958F929F92AF92BF92CF923C
-:10245000DF92EF92FF920F931F93CF93DF937C0154
-:10246000162FD42EC22F81E0C82EC21AB22EB194DC
-:10247000BB0CD0E0802F8470A82E802F8270982E05
-:10248000802F8870882E0170DC170CF04DC0C7FCBF
-:1024900004C0C150B394B394CB0CDF5F8D2F880F71
-:1024A0008F5FC80EAA2071F04D2D4C0F612F6D0F5C
-:1024B000C7010E944F104D2D4D0F6C2F610FC701AA
-:1024C0000E944F10992071F04D2D4C1B612F6D0F04
-:1024D000C7010E944F104D2D4D1B6C2F610FC7017E
-:1024E0000E944F10882071F04D2D4D0F612F6C1BF5
-:1024F000C7010E944F104D2D4C0F612F6D1BC7015E
-:102500000E944F10002309F4BFCF4D2D4D1B612FAA
-:102510006C1BC7010E944F104D2D4C1B612F6D1B72
-:10252000C7010E944F10B0CFDF91CF911F910F9143
-:10253000FF90EF90DF90CF90BF90AF909F908F90E3
-:1025400008957F928F929F92AF92BF92CF92DF9227
-:10255000EF92FF920F931F93CF93DF935C01C62EF0
-:10256000942EC22F11E0121BD22ED194DD0C83E0E9
-:10257000F82ED0E0802F8170782E882483948E0CE2
-:102580000270DC17ACF517FD04C0C150D394D3948E
-:102590001D0DDF5F1F0D772099F02C2F220F280DC6
-:1025A000492D4C1B6C2D6D0FC5010E941A112E2D4B
-:1025B0002F0D492D4D1B6C2F6C0DC5010E941A115A
-:1025C000002399F02C2F220F280D492D4C1B6C2D28
-:1025D0006D1BC5010E941A112E2D2F0D492D4D1B6B
-:1025E0006C2D6C1BC5010E941A11F394F394C9CF92
-:1025F000DF91CF911F910F91FF90EF90DF90CF90DF
-:10260000BF90AF909F908F907F9008959F92AF92D0
-:10261000BF92CF92DF92EF92FF920F931F93CF93CF
-:10262000DF93EC01B62E142FD22EAE2CAA0C922ED4
-:102630009A18CE2CC60E292D6C2D0E943611FF241F
-:10264000FA94F00EF10E292D4F2D6C2DCE010E9423
-:1026500036110A191E0D202F412F6B2DCE010E941D
-:102660001A11DB0C6FEF6D0D202F412FCE010E9450
-:102670001A1101E02E2D412F6C2DCE010E94231244
-:102680008E2D8095D80E02E02E2D412F6D2DCE017E
-:102690000E942312FE1804E02E2D4F2D6D2DCE0129
-:1026A0000E94231208E02E2D4F2D6C2DCE010E948A
-:1026B0002312DF91CF911F910F91FF90EF90DF9048
-:1026C000CF90BF90AF909F900895AF92BF92CF925E
-:1026D000DF92EF92FF920F931F93CF93DF936C01E2
-:1026E000C62FF42EA22ED02F1E2DEE0CB12EB60E1C
-:1026F0002E196B2D0E947A11D150DE19F10E6FEF59
-:102700006C0F6A0D611BED2E01E0212F4F2DC601CC
-:102710000E94A11202E0212F4F2D6B2DC6010E94B5
-:10272000A112DF91CF911F910F91FF90EF90DF9059
-:10273000CF90BF90AF9008952F923F925F926F928B
-:102740007F928F929F92AF92BF92CF92DF92EF9241
-:10275000FF920F931F93CF93DF93EC01F901E49065
-:102760003196849164350CF015C10E2C000CFF08D5
-:10277000062F062E000C110BF701E00FF11F1E169D
-:102780001F060CF007C140330CF004C1A82FC42E63
-:10279000042E000CDD085601A80EB11C87FDBA946A
-:1027A0001A141B040CF0F6C02E5F3F4F570197E040
-:1027B000A90EB11CB7FE04C05701BEE0AB0EB11CA0
-:1027C000B3E0B594A794BA95E1F747FF0AC0A42FE8
-:1027D000A80FAC9CC001AD9C900D1124281B390B97
-:1027E00040E08A2F0A2E000C990B840F911D47FDA3
-:1027F0009A95C19714F0A0E3A41BF8A067FD60E0D0
-:10280000E535F10514F0E4E5F0E09E2FCC85C42712
-:10281000C62E062E000CDD08F601E01BF10B8F0121
-:102820004F01F7E08F229924E0E8F0E002C0F5952F
-:10283000E7958A94E2F77E2F17FF02C0095F1F4FCA
-:10284000F3E015950795FA95E1F7200F311F542F06
-:10285000577081E001C0880F5A95EAF74595459574
-:102860004595F601B4E54B02E00DF11D1124AF01D1
-:1028700047595A4FD0E02A2EAA0F3308EE24E3948A
-:10288000BB24D21513040CF085C0F9015490F1E07B
-:10289000FF121AC06901962E8A01E72F991608F0D7
-:1028A00057C08E2E852021F0D8018C90882A8C92DA
-:1028B000E69531F4BFEFCB1ADB0AF6015490E0E85D
-:1028C00093940F5F1F4FEACFF1101CC0782E7094C5
-:1028D0006901962E8A01E72F991608F039C08E2ECD
-:1028E000852021F0D8018C9087208C92E69531F4D8
-:1028F000BFEFCB1ADB0AF6015490E0E893940F5F28
-:102900001F4FEACFF3E0FF122CC0782E70946901BC
-:10291000862E8A01972E8916D0F4E92DE52141F003
-:10292000D801EC916C2E682460FE0FC0E82BEC936C
-:10293000969439F4BFEFCB1ADB0AF6015490E0E825
-:102940009E2E83940F5F1F4FE6CFE721F0CFCE2559
-:10295000880F19F44C5A5F4F81E0DF5F2A0D3B1D51
-:1029600090CF6901962E8A01E72F991688F78E2E4F
-:10297000852021F0D8018C9088268C92E69531F440
-:10298000BFEFCB1ADB0AF6015490E0E893940F5F97
-:102990001F4FEBCFDF91CF911F910F91FF90EF90E1
-:1029A000DF90CF90BF90AF909F908F907F906F906F
-:1029B0005F903F902F9008952F923F924F925F9299
-:1029C0006F927F928F929F92AF92BF92CF92DF923F
-:1029D000EF92FF920F931F93CF93DF9300D000D01D
-:1029E00000D01F92CDB7DEB74C01462E342E6901C0
-:1029F0008E2D01111DC0E1101BC0C40127960FB61A
-:102A0000F894DEBF0FBECDBFDF91CF911F910F9124
-:102A1000FF90EF90DF90CF90BF90AF909F908F90FE
-:102A20007F906F905F904F903F902F900C949C13ED
-:102A3000F60154903196E490A52CB12C9501295FB4
-:102A40003F4FA90133E0559547953A95E1F75B83F0
-:102A50004A830370F12CEE2DF0E0FD83EC835A9451
-:102A60001FEF1E0D2F2D0F2C000C330B2A153B05CD
-:102A70000CF070C0F982F7FE03C0F7E0FF0DF98398
-:102A8000298125952595259529839F2D977897FF51
-:102A900003C09150986F9F5F20E8622E712C02C096
-:102AA000759467949A95E2F7212C4981042E000CC5
-:102AB000550B4E5F5F4F5F834E83222D022C000C1F
-:102AC000330BEC81FD812E173F070CF041C04A818A
-:102AD0005B81429FF001439FF00D529FF00D112446
-:102AE0002E813F81E20FF31FEC0DFD1DE491F0E01C
-:102AF000E621F721EF2B41F1023069F0612F6219D5
-:102B00004F2D033061F0452D4F19622D013039F002
-:102B1000422D6F2D04C0652D6F19412F4219882356
-:102B2000A9F0382F3370398380FF03C0552D561B11
-:102B3000652F81FF03C08E2D841B482F640D430D2C
-:102B4000C4010E944F1089812394B7CF1982F6CF18
-:102B5000F39488CF27960FB6F894DEBF0FBECDBF93
-:102B6000DF91CF911F910F91FF90EF90DF90CF9069
-:102B7000BF90AF909F908F907F906F905F904F909D
-:102B80003F902F900895DC01FB0184918F5F149694
-:102B90008C9314973196E491EF5F1596EC9315970B
-:102BA0006E5F7F4F5F967C936E935E970895EF9272
-:102BB0000F93CF93DF93EC014E876D872F87E98AC0
-:102BC000088B81E0888788A319A28F836AEB73E062
-:102BD000CE010E94C3150E94FF2381E00E941524AC
-:102BE00085E00E9423248CE00E941E2461E08E85F3
-:102BF0000E94DF2161E08D850E94DF2161E08F85E9
-:102C00000E94DF21898918161CF461E00E94DF21EF
-:102C1000888918161CF461E00E94DF218989181642
-:102C20006CF460E00E941B226AE070E080E090E0BB
-:102C30000E94DD2061E089890E941B228D85082E7B
-:102C4000000C990BFC01E253F94FE491F0E0EE0F18
-:102C5000FF1FE451F94F259134913D8B2C8BFC01E2
-:102C6000E654F94FE491EB8F8E85082E000C990BFA
-:102C7000FC01E253F94FE491F0E0EE0FFF1FE45145
-:102C8000F94F259134913B8B2A8BFC01E654F94F87
-:102C9000E491EA8F8889082E000C990BFC01E2531D
-:102CA000F94FE491F0E0EE0FFF1FE451F94F259149
-:102CB00034913F8B2E8BFC01E654F94FE491EC8F5D
-:102CC0008F85082E000C990BFC01E253F94FE4911B
-:102CD000F0E0EE0FFF1FE451F94F25913491398F49
-:102CE000288FFC01E654F94FE491ED8F61E2CE01AB
-:102CF0000E94961064E1CE010E9496108B8587FF9A
-:102D000002C08FE78B876B856068CE010E949610AA
-:102D100060E2CE010E9496106CE0CE010E949610F7
-:102D2000CE01DF91CF910F91EF900C94CD104F9287
-:102D30005F926F927F928F929F92AF92BF92CF924B
-:102D4000DF92EF92FF920F931F93CF93DF93EC01EB
-:102D5000862EF42E102F83E586170CF485C08FE2A3
-:102D600084170CF481C04C814150550B049FC00165
-:102D7000059F900D1124860F911D67FD9A951816D9
-:102D800019060CF071C03D818F2D0F2C000C990B92
-:102D9000039F800D911D1124181619060CF064C0B4
-:102DA00078A0E62E912CC22ED12C292D092C000CB6
-:102DB000330B8C8190E0281739070CF054C0019731
-:102DC000E0E02817390771F0C89EF001C99EF00DA8
-:102DD000D89EF00D11242E0F3F1FEE8DFF8DE20FB8
-:102DE000F31FE4915F2C612C492C480C2D81862D1A
-:102DF000062C000C990B2817190691F18CF1AE2EB8
-:102E0000B12CE0FF16C0113061F4462D4F0D642D3A
-:102E1000CE010E944F10F501F595E7956394510E90
-:102E2000E5CF012F212F452D6E2DCE010E947A1165
-:102E3000F2CF89A198A1891771F388A3113041F4C9
-:102E4000462D4F0D642DCE010E944F1078A2E3CF86
-:102E5000012F212F452D6E2DCE010E947A11F6CF24
-:102E60009394E10EA2CF78A2DF91CF911F910F91A1
-:102E7000FF90EF90DF90CF90BF90AF909F908F909A
-:102E80007F906F905F904F9008950F93CF93DF9353
-:102E9000EC01262F6A3049F428859D818A85299F77
-:102EA000800D11248A8719861DC06D30D9F00885E0
-:102EB0004A8569850E94971628853C818985239FCC
-:102EC000800D112489879F81992361F0082E000CC1
-:102ED000990B44E550E0239F4019510911244817EC
-:102EE0005907DCF281E090E0DF91CF910F910895D6
-:102EF000FC01EC57FF4F718360838A579F4F445FFB
-:102F0000FC01408308956F927F928F929F92AF92BF
-:102F1000BF92CF92DF92EF920F93CF93DF934C014A
-:102F20005C0186E8A80EB11CD5018C91882309F4B8
-:102F30004AC0CCE0C81B8C3008F0C0E0F401EA5A6B
-:102F4000FF4F81E080836401BEE4CB0ED11C60E0C2
-:102F5000C6010E9412113401E3E56E0E711CD3010B
-:102F60008C9103E0080FDDE24D2F481B4C0F83E0EE
-:102F7000E82E24E560E0C6010E94651361E0C60109
-:102F80000E941211F301808103E0080F4D2F481BAE
-:102F90004C0F24E560E0C6010E940613F401E95AD3
-:102FA000FF4F84E080833196D3018C91C81BC15DB3
-:102FB000C083BC9660817181C6010E94A922F5017F
-:102FC000808181508083DF91CF910F91EF90DF90CE
-:102FD000CF90BF90AF909F908F907F906F9008950B
-:102FE000CF92DF92FF920F931F93CF93DF93EC0169
-:102FF0008C8D9D8D892B01F18E01025B1F4F40E06E
-:1030000061E0C8010E941611FE01E95AFF4FDE017E
-:10301000AE5ABF4F9C9185E5891B80833196108203
-:10302000698D613009F46DC078F0888D653008F0E5
-:1030300082C06B5F811175C0DF91CF911F910F919D
-:10304000FF90DF90CF900895CE0185960E944A1F91
-:1030500081E0FE01EA5AFF4F80836AEB73E0C8010A
-:103060000E94C3151D8E1C8EFE01EC5AFF4F10826C
-:1030700088EAF82E6E018AE0C80ED11CCE010E94AB
-:10308000A0188823D9F369EA75E0C8010E94A92233
-:103090006A8D7B8D4AE050E0C8010E94B82364E944
-:1030A00075E0C8010E94A9226F2D62956F7070E0D3
-:1030B0004AE050E0C8010E94A42369E875E0C80115
-:1030C0000E94A92264E0C6010E9419108111B4CFA8
-:1030D000FA94F110D3CF60E0CE010E94BD1F83B7F8
-:1030E000817F846083BF83B7816083BF83B7816042
-:1030F00083BF889583B78E7F83BF83B78E7F83BF5F
-:10310000BDCFCF58DF4F88819981AA81BB818F7055
-:103110009927AA27BB2767E00897A105B10508F002
-:1031200068E7C801DF91CF911F910F91FF90DF9069
-:10313000CF900C94D422882309F47ECF6FE2F1CF94
-:103140008F929F92AF92BF92CF92DF92EF92FF92B7
-:103150000F931F93CF93DF93EC017C0180E8E80E7F
-:10316000F11CF70180809180A280B3800E94AC2086
-:10317000861A970AA80AB90A6E01FFE7CF0ED11C7A
-:10318000F601808190E0B0E0A0E08E0105581F4F6D
-:1031900088159905AA05BB0508F04AC0F801808189
-:1031A0009181A281B381892B8A2B8B2B09F440C09A
-:1031B0000E94AC20F6012081620F711D811D911DBE
-:1031C000F70160837183828393833F97808191812C
-:1031D000A281B3810196A11DB11D80839183A28339
-:1031E000B383F80110821182128213820E94B820E8
-:1031F000FE01E958FF4F6083718382839383CE0180
-:103200000E94C11FCE010A960E94EC0FCE01489683
-:103210000E942A2081E0DF91CF911F910F91FF90B2
-:10322000EF90DF90CF90BF90AF909F908F900895D8
-:10323000F80180819181A281B381892B8A2B8B2B0C
-:10324000A9F57E01F5E2EF0EF11CC7010E94051EF3
-:10325000C7010E94781EC7010E943C1FCE010E9438
-:103260008317CE010E94F0177E018EE4E80EF11C58
-:10327000C7010E94CD10FE01EC5AFF4F80818111E1
-:1032800003C0C7010E94B4100E94B820F8016083F7
-:10329000718382839383FE01EB58FF4FC958DF4F40
-:1032A00028813981621B730B7183608380E0B3CF07
-:1032B0002F923F924F925F926F927F928F929F9246
-:1032C000AF92BF92CF92DF92EF92FF920F931F9334
-:1032D000CF93DF93CDB7DEB765970FB6F894DEBF17
-:1032E0000FBECDBF6C016A8B7B8B4B83FC01EC5A0C
-:1032F000FF4F10822FEF2D831C821D8A10E31C8A42
-:103300003C013AE0630E711C842F90E09F838E8312
-:103310002601E3E54E0E511C4601F5E28F0E911C8D
-:103320009601295A3F4F39872887C601885A9F4FEF
-:103330009B878A87F601EA5AFF4FFF87EE87225064
-:103340003109398B288B0A971C01C6010E94A018ED
-:103350008823D9F364E0C3010E941910012F110FD3
-:10336000110B882399F0F201F081F1952B81F29FE6
-:10337000202D112422502D8B64E0C3010E941910CE
-:10338000811193C0C4010E94A51F94C065E0C301D0
-:103390000E9419108111E7CF66E0C3010E94191045
-:1033A0008111E1CF8C81811185C044E063E0C301CC
-:1033B0000E942B10882331F09C899F5F9C8BC40155
-:1033C0000E94A91F44E061E0C3010E942B108823E2
-:1033D00031F0EC89E150EC8BC4010E94A91FFC89FB
-:1033E0008F2F0F2E000C990B2E813F818217930790
-:1033F00009F46BC0F7FF03C03B8131503C8BF201F5
-:103400008081F4E0F80F2C89829FF0191124FD8B44
-:103410009D89090F111D97FD1A9517FF02C00F5FB7
-:103420001F4FF801F595E795FA83E9830981102F7D
-:10343000E885F9851082EA85FB85008321E0EE8529
-:10344000FF852083E889F9891082EA88FB88B12CFE
-:10345000A12C2C89022E000C330B3D872C878E81EA
-:103460009F818A159B0599F1EC85FD85EA15FB0581
-:1034700079F423E0E885F9852083F2018081F02F3B
-:103480002C89289FF00D11248F2FEA85FB858083DE
-:10349000F70165917491C1010E94EF22FFEFAF1A0D
-:1034A000BF0A22E0E20EF11CDACFC4010E94A11F84
-:1034B0003C893D83C8013D89831B910937FD939564
-:1034C000029764F181E08C83A3CF1C8A98CF60E0DF
-:1034D000C1010E941211F20180814981FC89F89F8B
-:1034E000400D1124415024E560E0C1010E943611D5
-:1034F00061E0C1010E941211F201808103E0080F16
-:103500004981FC898F9F400D1124425083E0E82EB1
-:1035100024E560E0C1010E94061317CF8D816596F6
-:103520000FB6F894DEBF0FBECDBFDF91CF911F91D4
-:103530000F91FF90EF90DF90CF90BF90AF909F9052
-:103540008F907F906F905F904F903F902F90089555
-:103550000F931F93CF93DF93EC018C01025B1F4FFE
-:10356000C8010E94B41061E675E0C8010E94A9225A
-:10357000C8010E94CD1083E00E94232487E591E0DA
-:10358000EEEFFFE30995FE01EC5AFF4F10826CE36A
-:1035900075E0C8010E94EF22C8010E94CD102A9652
-:1035A000CE010E94EC0F64E0CE010E94191081113F
-:1035B00007C062E370E080E090E00E94DD20F0CF81
-:1035C000DF91CF911F910F9108952F923F924F92CB
-:1035D0005F926F927F928F929F92AF92BF92CF92A3
-:1035E000DF92EF92FF920F931F93CF93DF93CDB7AC
-:1035F000DEB729970FB6F894DEBF0FBECDBF99870F
-:1036000088877B836A832A013C0180E7680E711CEE
-:10361000F3018081882309F4F7C081E0E885F9850A
-:10362000EA5AFF4F8083E885F985EB5AFF4F1082F5
-:10363000E885F985EC5AFF4F1082E885F985108EF0
-:103640008F01025B1F4F61E0C8010E941211888543
-:1036500099858D5A9F4F9F838E83A884B98497E55F
-:10366000A90EB11CE884F984E8E5EE0EF11C88840B
-:103670009984F2E58F0E911C888599858F589F4F0C
-:103680009D838C83288439849AE0290E311CC88458
-:10369000D984E5E2CE0ED11C888599850E94A018B8
-:1036A0008823D1F3EA81FB81F491F983FF2321F090
-:1036B000EE81FF81F081F9832BEC35E040E060E0A2
-:1036C000C8010E949C134114510439F04981445FA0
-:1036D000920160E0C8010E949C13F50110828CE009
-:1036E000F70180836A817B81C8010E94A922F401CD
-:1036F0008081982F990F990F891B8D5AF50180832E
-:10370000EE81FF818081982F990F990F891B835D2E
-:10371000F7018083EC81FD81808167EC75E084FD99
-:1037200002C063EC75E0C8010E94EF22F4018081C1
-:10373000982F990F990F891B8D5AF5018083F701F6
-:1037400080818F5F8083E885F98582A56FEB75E0C6
-:10375000811102C06BEB75E0C8010E94EF22F401F9
-:103760008081982F990F990F891B8D5AF5018083BD
-:10377000F70180818F5F808367EB75E0C8010E944D
-:10378000EF2265E0C1010E941910882351F0E885FD
-:10379000F98562A56F5FC6010E94AD1FC6010E9438
-:1037A000A91F64E0C1010E94191081111FC0F3011B
-:1037B0002081422F50E070E060E0EC81FD8180814B
-:1037C0009181A281B38184179507A607B70710F0EE
-:1037D0002F3F61F466E0C1010E941910882309F4AB
-:1037E0005BCF888599850E94A81A56CF8FEFF30189
-:1037F000808360E0C6010E943F1FC6010E94A11F96
-:1038000081E0E885F985808F29960FB6F894DEBFB0
-:103810000FBECDBFDF91CF911F910F91FF90EF9021
-:10382000DF90CF90BF90AF909F908F907F906F90E0
-:103830005F904F903F902F90089550E040E00C949F
-:10384000E51AE0E8F7E72591349181E02130304C2A
-:1038500009F080E00895CF93DF93EC010E94211CD2
-:103860009E01275A3F4FDE01A059BF4F882309F41C
-:1038700040C0E6E9F7E78491F9018083E7E9F7E7DB
-:10388000E491EC83E8E9F7E7E491ED83E9E9F7E710
-:10389000859194919F838E83EBE9F7E785919491CD
-:1038A00099878887EDE9F7E7E491EBA7EEE9F7E779
-:1038B000E491EAA7EFE9F7E7E491EC93E0EAF7E7B0
-:1038C000859194919D8F8C8FE2EAF7E78591949191
-:1038D0009F8F8E8FE4EAF7E78591949199A388A34F
-:1038E000E6EAF7E7859194919BA38AA3DF91CF91B4
-:1038F00008958CE3F90180831C828FEF8D8320E291
-:1039000033E03F832E8324ED33E03987288791E02D
-:103910009BA79AA78C938CEA9DE09D8F8C8F8EED50
-:103920009DE09F8F8E8F84E79EE099A388A38CE310
-:103930009FE0DACFCF92DF92EF920F93CF93DF9396
-:10394000EC01FC01E158FF4F82E38083349781E072
-:1039500090E0A0E0B0E080839183A283B3833B97A3
-:103960008FEF8083CE010E942B1CCE010E94B91FD5
-:103970006FEFCE010E94BD1F6E018AE0C80ED11C00
-:10398000C6010E94DC0FC6010E94EC0FCE014896D2
-:103990000E9420208EE0E82E0FE020E14BE06DE059
-:1039A000CE01825B9F4F0E94D715A596CE010E9443
-:1039B0003E1D65E0C6010E941910882351F060E0A9
-:1039C000CE01DF91CF910F91EF90DF90CF900C94CB
-:1039D000AD1F40E06BE376E0CE01DF91CF910F9118
-:1039E000EF90DF90CF900C94D21DCF93DF93D62F22
-:1039F000C72F0E94211C882359F0AD2FBC2FEBE864
-:103A0000F7E784918D933196E53987E7F807C9F791
-:103A1000DF91CF910895CF93DF93DC0170E0660FC3
-:103A2000771F1F96ED91FC915097E60FF71F259198
-:103A3000349190963C932E935F97F9014591549160
-:103A400014968C911497849F402D112491964C9339
-:103A50009197F901C591D4916D2F70E04617170623
-:103A600029F020F0F90125913491432F849F402DB6
-:103A7000112492964C93DF91CF91089521E0FC019F
-:103A8000248324E020A72AE936E0308B278760E0F2
-:103A90000E940B1D61E070E083E00E945921E1EB80
-:103AA000F0E08081887F81608083F89410928000AC
-:103AB000E1E8F0E01082109285001092840088E125
-:103AC00091E0909389008093880080818860808352
-:103AD000808181608083EFE6F0E080818260808376
-:103AE000789408950F93FC01011107C06230D9F05A
-:103AF00030F4662379F0613091F00F9108956330CE
-:103B0000C9F06430D1F76481649F402D1124458F42
-:103B1000268FF3CF4B3008F04AE0468BEECF642F70
-:103B20000F910C940B1D6481649F402D1124418FD3
-:103B3000228FE3CF6481649F402D1124438F248F13
-:103B4000DCCF80916D07882329F080916A078093EC
-:103B5000B400089580E0FBCFFC01178A158A14A2F7
-:103B600013A2108E10926A0710926B0710926D07C5
-:103B70000C94A11D0F931F93CF93DF93EC018B0146
-:103B80000E94AC1D1E870D871B8A1A8A81E08983DB
-:103B900089E08E8B198E1B8E1D8EDF91CF911F9128
-:103BA0000F910895411102C00C94BA1D0895CF934E
-:103BB000DF93EC01611115C08881882391F0898120
-:103BC00081110FC0E9858E2F90E0880F991FEF813A
-:103BD000F885E80FF91F859194918F3F980721F49C
-:103BE0001882DF91CF9108959C879927880F991F9C
-:103BF000EA85FB85E80FF91F65917491CE010E945B
-:103C0000BA1D89858F5F8987ECCF60E00C94D71D42
-:103C10000F93CF93DF93EC01611166C089818823F4
-:103C200009F462C08D8981115FC08D859E85EA8906
-:103C3000FB89EE0FFF1FE80FF91F459154914115C5
-:103C4000510541F42989213021F51B8A1A8AFC018A
-:103C500045915491BA017695679576956795862F2B
-:103C600040FF2EC0252F269526952695205186E0CB
-:103C7000569547958A95E1F74F716F7000E0CE0138
-:103C80000E94721DEA89FB893196FB8BEA8BCF017A
-:103C90000AC019828881882369F060E0CE010E9401
-:103CA000D71D8A899B89880F991FED85FE85E80FAE
-:103CB000F91FCECFCE01DF91CF910F910C94AC1DA7
-:103CC0008F738C8B8C81859F802D11248D8B1DA2F1
-:103CD0001CA21BA281E08F8B80936D07188E8A89AE
-:103CE0009B8901969B8B8A8BDF91CF910F910895D1
-:103CF00060E00C94081ECF93DF93EC016111B3C018
-:103D00008F89882309F4AFC08D89811105C0CE0148
-:103D1000DF91CF910C94AC1D81508D8B8DA18111C1
-:103D200034C02BA13CA12F5F3F4FC901880F991FC1
-:103D3000EF8DF8A1E80FF91F85919491482F4770F6
-:103D40004EA3492F469546954FA3AC0164E0569586
-:103D500047956A95E1F74F739C81499F402D112447
-:103D60004DA383FB882780F9809369073CA32BA38D
-:103D700089A190E02817390740F02AA1222309F4ED
-:103D800075C0821B91099CA38BA38DA181508DA32B
-:103D9000888D31E0380F388F4C892FA1240F8C8506
-:103DA000280F2A836B8D662361F070E0832F032E2A
-:103DB000000C990B0E9462248C8D869F200D11248B
-:103DC0002A838A8190E0CB966BE370E00E946224A4
-:103DD0008A832E892B83698D662371F0062E000C51
-:103DE000770B832F032E000C990B0E9462248A8D7F
-:103DF000869F200D11242B836D8D662389F0832FE0
-:103E0000330F990B70E00E946224CB0162E070E0F6
-:103E10000E9462242E8D9B81289F900D11249B83EC
-:103E20004F3341F18B818A300CF089E087FD80E0CF
-:103E30008B83F894EA81F0E0E75BF94FE491E0933B
-:103E40006C078D8198A5899F802D11249B81899F66
-:103E5000802D11249EA1899F802D112480936B07B2
-:103E600080936A077894DF91CF910895CE010E94E4
-:103E7000AC1D8BCF1B82DDCF60E00C947B1ECF93FB
-:103E8000DF93EC01611103C00E94AC1D1982DF9128
-:103E9000CF910895CF93DF93EC010E94AC1D19825E
-:103EA000DF91CF91089560916B07662329F180918E
-:103EB0006E078F5F80936E0790916C078917E0F013
-:103EC00081E090916D07911180E080936D071092D1
-:103ED0006E0780916907882369F08091040193E45B
-:103EE000899F802D1124895B809304010E944224C4
-:103EF00090936A070C94A11D08951F920F920FB61C
-:103F00000F9211242F933F934F935F936F937F935F
-:103F10008F939F93AF93BF93EF93FF930E94531F91
-:103F2000FF91EF91BF91AF919F918F917F916F9191
-:103F30005F914F913F912F910F900FBE0F901F9067
-:103F4000189562E976E00C94BA1D6AE876E00C9464
-:103F5000BA1D64E876E00C94BA1DFC01862F660F4A
-:103F6000990B668170E06F5F7F4F0E9462248583AA
-:103F7000089521E0FC012083089570E085E00C9411
-:103F80005921AF92BF92CF92DF92EF92FF920F939F
-:103F90001F93CF93DF93EC0189819A812FE0289FB3
-:103FA0008001299F100D112485E10E943E21800F80
-:103FB000911F24E0969587952A95E1F79A83898346
-:103FC0002881222391F1EC81AD80B12CD12CC12C20
-:103FD000A885B9857D0110E000E06E817F819B019D
-:103FE00050E040E08617970728F0BC01A817B907F2
-:103FF00008F4BD0190E080E01F921F921F92EF93A2
-:104000000E94BE236B830F900F900F900F9070E073
-:1040100085E0DF91CF911F910F91FF90EF90DF909E
-:10402000CF90BF90AF900C945921DF91CF911F9109
-:104030000F91FF90EF90DF90CF90BF90AF900895D9
-:10404000FC018CE39FE09383828384E0818381E0A1
-:1040500084870895CF93DF93EC018C819D81892B18
-:1040600021F18C858F7139F584E10E943E21BC01DC
-:10407000990F880B990B0E94142526EE3FE34EEC16
-:1040800050E40E94A0250E94E3249B017B836A8365
-:10409000672BA9F084E08983FE01349680E041918A
-:1040A00051912417350720F48983DF91CF9108952A
-:1040B0008F5F8430A1F78C858F5F8C87F6CF8FEF71
-:1040C0008983F9CF1F920F920FB60F9211242F936D
-:1040D0003F938F939F93AF93BF938091700790917D
-:1040E0007107A0917207B091730730916F0723E0B9
-:1040F000230F2D3758F50196A11DB11D20936F0791
-:104100008093700790937107A0937207B093730721
-:104110008091740790917507A0917607B091770709
-:104120000196A11DB11D8093740790937507A0930C
-:104130007607B0937707BF91AF919F918F913F9191
-:104140002F910F900FBE0F901F90189526E8230F08
-:104150000296A11DB11DD2CF2FB7F89460917007C0
-:104160007091710780917207909173072FBF089526
-:104170003FB7F8948091740790917507A0917607E6
-:10418000B091770726B5A89B05C02F3F19F001967F
-:10419000A11DB11D3FBFBA2FA92F982F8827BC01A1
-:1041A000CD01620F711D811D911D42E0660F771FC9
-:1041B000881F991F4A95D1F70895CF92DF92EF9209
-:1041C000FF92CF93DF936B017C010E94B820EB013B
-:1041D000C114D104E104F10439F4DF91CF91FF90CF
-:1041E000EF90DF90CF9008950E94B8206C1B7D0B5C
-:1041F000683E734068F381E0C81AD108E108F1080D
-:10420000C851DC4FE5CF789484B5826084BD84B515
-:10421000816084BD85B5826085BD85B5816085BDC1
-:10422000EEE6F0E0808181608083E1E8F0E01082DA
-:10423000808182608083808181608083E0E8F0E01B
-:10424000808181608083E1EBF0E080818460808305
-:10425000E0EBF0E0808181608083EAE7F0E080813C
-:10426000846080838081826080838081816080839C
-:104270008081806880831092C10008958E3008F09C
-:104280008E502091050190E4299F900111248770A0
-:10429000822B80937C0080917A00806480937A00E6
-:1042A00080917A0086FDFCCF809178009091790012
-:1042B00008951F93CF93DF93182FEB0161E00E94C5
-:1042C000DF21209739F460E0812FDF91CF911F919A
-:1042D0000C941B22CF3FD10511F461E0F5CFE12F03
-:1042E000F0E0EA55F94FE491E33031F140F4E13088
-:1042F000B1F0E230E1F0C038D1057CF7E4CFE63030
-:1043000029F1E73059F1E430B1F780918000806203
-:1043100080938000D0938B00C0938A0004C084B542
-:10432000806884BDC7BDDF91CF911F91089584B58A
-:10433000806284BDC8BDF7CF809180008068809383
-:104340008000D0938900C0938800EDCF8091B000A9
-:1043500080688093B000C093B300E5CF8091B00037
-:1043600080628093B000C093B400DDCF833081F0D1
-:1043700028F4813099F08230A9F008958630A9F0B0
-:104380008730C9F08430B1F4809180008F7D03C004
-:10439000809180008F7780938000089584B58F7717
-:1043A00084BD089584B58F7DFBCF8091B0008F7759
-:1043B0008093B00008958091B0008F7DF9CFCF93A6
-:1043C000DF9390E0FC01E654F94F24918253994F1A
-:1043D000FC0184918823C9F090E0880F991FFC01AB
-:1043E000EA50F94FA591B491FC01E451F94FC59100
-:1043F000D49161110DC09FB7F8948C9120958223C0
-:104400008C938881282328839FBFDF91CF910895C3
-:10441000623051F49FB7F8943C91822F80958323AA
-:104420008C93E8812E2BEFCF8FB7F894EC912E2B45
-:104430002C938FBFEACF1F93CF93DF93162F282F94
-:1044400030E0F901EA55F94F8491F901E654F94F4A
-:10445000D491F901E253F94FC491CC23A1F0811119
-:104460000E94B621EC2FF0E0EE0FFF1FE451F94F50
-:10447000A591B4918FB7F894EC91111108C0D09523
-:10448000DE23DC938FBFDF91CF911F910895DE2B48
-:10449000F8CFCF93DF93282F30E0F901EA55F94F99
-:1044A0008491F901E654F94FD491F901E253F94F9F
-:1044B000C491CC23A1F081110E94B621EC2FF0E031
-:1044C000EE0FFF1FEE51F94FA591B491EC91ED2342
-:1044D00081E090E009F480E0DF91CF91089580E0E1
-:1044E00090E0FACFCF92DF92EF92FF920F931F935B
-:1044F000CF93DF936C01EB017B01E40EF51E10E01E
-:1045000000E0CE15DF0561F06991D601ED91FC91D7
-:104510000190F081E02DC6010995080F191FF1CF18
-:10452000C801DF91CF911F910F91FF90EF90DF9025
-:10453000CF900895FB0101900020E9F73197AF017A
-:10454000461B570BDC01ED91FC910280F381E02DBD
-:104550000994EF92FF920F931F93CF93DF937C0107
-:104560008B01D0E0C0E0F80164910F5F1F4F66231C
-:1045700059F0D701ED91FC910190F081E02DC70138
-:104580000995C80FD91FEFCFCE01DF91CF911F91B1
-:104590000F91FF90EF9008956115710511F00C9443
-:1045A0009A2290E080E00895DC01ED91FC91019069
-:1045B000F081E02D09940F931F93CF93DF93EC01CB
-:1045C0006DE00E94D4228C016AE0CE010E94D422C8
-:1045D000800F911FDF91CF911F910F9108950F933D
-:1045E0001F93CF93DF93EC010E94A9228C01CE018F
-:1045F0000E94DB22800F911FDF91CF911F910F91BD
-:1046000008958F929F92AF92BF92CF92DF92EF92D6
-:10461000FF920F931F93CF93DF93CDB7DEB7A19790
-:104620000FB6F894DEBF0FBECDBF6C01142FE52F7F
-:10463000CB01022F19A2223008F40AE07E0121E208
-:10464000E20EF11C802E912CB12CA12C612F7E2F1B
-:10465000A50194010E947624029F101911241A309A
-:104660003CF5105DF70112937F01122FE32FCA0171
-:10467000232B242B252B51F790E080E0E114F1044B
-:1046800021F0B701C6010E949A22A1960FB6F894B4
-:10469000DEBF0FBECDBFDF91CF911F910F91FF9075
-:1046A000EF90DF90CF90BF90AF909F908F90089544
-:1046B000195CD8CFCF92DF92EF92FF920F931F93A6
-:1046C000CF93DF93EC016A017B012115310579F469
-:1046D000E881F9810190F081E02D642FDF91CF9185
-:1046E0001F910F91FF90EF90DF90CF9009942A30A7
-:1046F0003105E9F42AE0F7FE1AC06DE20E94D422E7
-:104700008C0144275527BA014C195D096E097F09B0
-:104710002AE0CE010E940123800F911FDF91CF91EB
-:104720001F910F91FF90EF90DF90CF900895B70108
-:10473000A601CE01DF91CF911F910F91FF90EF90D5
-:10474000DF90CF900C9401239A01AB01770F660B99
-:10475000770B0C945A232115310541F4DC01ED91BE
-:10476000FC910190F081E02D642F09940C940123B9
-:104770009A01AB0170E060E00C94AB234F925F9222
-:104780006F927F92AF92BF92CF92DF92EF92FF92A1
-:104790000F931F93CF93DF93CDB7DEB729013A0173
-:1047A0009B01AC01241935094609570989899A8961
-:1047B000AB89BC89BC01CD016A197B098C099D09B3
-:1047C0000E943224A8019701241935094609570986
-:1047D0000E949824CA01B9016A0D7B1D8C1D9D1D84
-:1047E000DF91CF911F910F91FF90EF90DF90CF90CD
-:1047F000BF90AF907F906F905F904F90089561E071
-:104800008AE00E941B2261E08AE00E94DF218CB5D1
-:1048100080618CBD8CB580648CBD61E08DE00E94B0
-:10482000DF2161E08BE00C94DF21811104C08CB5A5
-:1048300080628CBD08958CB58F7DFBCF9CB5937F36
-:10484000892B8CBD08959CB59C7F282F2370922BBB
-:104850009CBD9DB582FB222720F9892F8E7F822B5C
-:104860008DBD0895DB018F939F930E94B724BF9164
-:10487000AF91A29F800D911DA39F900DB29F900DAF
-:1048800011240895991B79E004C0991F961708F028
-:10489000961B881F7A95C9F780950895AA1BBB1BA4
-:1048A00051E107C0AA1FBB1FA617B70710F0A61B30
-:1048B000B70B881F991F5A95A9F780959095BC0151
-:1048C000CD01089597FB072E16F4009407D077FDCD
-:1048D00009D00E944E2407FC05D03EF490958195A6
-:1048E0009F4F0895709561957F4F0895A1E21A2E0C
-:1048F000AA1BBB1BFD010DC0AA1FBB1FEE1FFF1F84
-:10490000A217B307E407F50720F0A21BB30BE40BD3
-:10491000F50B661F771F881F991F1A9469F760951A
-:104920007095809590959B01AC01BD01CF010895D4
-:10493000052E97FB1EF400940E94AF2457FD07D06C
-:104940000E94762407FC03D04EF40C94AF245095BB
-:104950004095309521953F4F4F4F5F4F089590956B
-:104960008095709561957F4F8F4F9F4F08950E945E
-:10497000D424A59F900DB49F900DA49F800D911DF0
-:10498000112408950024A7FD00942A0F301D401D16
-:10499000501D601D701D801D901D0895EE0FFF1F9E
-:1049A0000590F491E02D0994A29FB001B39FC0013E
-:1049B000A39F700D811D1124911DB29F700D811D4B
-:1049C0001124911D08950E947F2588F09F5798F02B
-:1049D000B92F9927B751B0F0E1F0660F771F881F04
-:1049E000991F1AF0BA95C9F714C0B13091F00E941E
-:1049F0009925B1E008950C949925672F782F882781
-:104A0000B85F39F0B93FCCF3869577956795B39544
-:104A1000D9F73EF490958095709561957F4F8F4FB3
-:104A20009F4F0895E89409C097FB3EF490958095B8
-:104A3000709561957F4F8F4F9F4F9923A9F0F92F64
-:104A400096E9BB279395F695879577956795B795E2
-:104A5000F111F8CFFAF4BB0F11F460FF1BC06F5FC8
-:104A60007F4F8F4F9F4F16C0882311F096E911C0DA
-:104A7000772321F09EE8872F762F05C0662371F0FB
-:104A800096E8862F70E060E02AF09A95660F771F0F
-:104A9000881FDAF7880F9695879597F9089597F903
-:104AA0009F6780E870E060E008959FEF80EC0895D4
-:104AB00000240A94161617061806090608950024FD
-:104AC0000A9412161306140605060895092E039477
-:104AD000000C11F4882352F0BB0F40F4BF2B11F4EB
-:104AE00060FF04C06F5F7F4F8F4F9F4F089557FD4A
-:104AF0009058440F551F59F05F3F71F04795880F4C
-:104B000097FB991F61F09F3F79F0879508951216E2
-:104B100013061406551FF2CF4695F1DF08C016168E
-:104B200017061806991FF1CF86957105610508943F
-:104B30000895E894BB2766277727CB0197F9089556
-:104B40000E94B3250C9466250E94582538F00E94D7
-:104B50005F2520F0952311F00C944F250C945525DA
-:104B600011240C949A250E94772570F3959FC1F328
-:104B7000950F50E0551F629FF001729FBB27F00D0B
-:104B8000B11D639FAA27F00DB11DAA1F649F662760
-:104B9000B00DA11D661F829F2227B00DA11D621FAF
-:104BA000739FB00DA11D621F839FA00D611D221F69
-:104BB000749F3327A00D611D231F849F600D211D4D
-:104BC000822F762F6A2F11249F5750409AF0F1F0D0
-:104BD00088234AF0EE0FFF1FBB1F661F771F881F39
-:104BE00091505040A9F79E3F510580F00C944F25FD
-:104BF0000C949A255F3FE4F3983ED4F3869577951D
-:104C00006795B795F795E7959F5FC1F7FE2B880FDE
-:104C1000911D9695879597F908958F929F92AF92DF
-:104C2000BF92CF92DF92EF92FF92CF93DF93EC018E
-:104C3000688179818A819B81611571058105910562
-:104C400021F464E279ED8BE597E02DE133EF41E06B
-:104C500050E00E94982449015A019B01AC01A7EA47
-:104C6000B1E40E94B7246B017C01ACEEB4EFA50166
-:104C700094010E942129DC01CB018C0D9D1DAE1DEC
-:104C8000BF1DB7FF03C00197A109B048888399836E
-:104C9000AA83BB839F77DF91CF91FF90EF90DF9046
-:104CA000CF90BF90AF909F908F9008950E940D2657
-:104CB000089580E091E00E940D260895B0E0A0E004
-:104CC0008093000190930101A0930201B09303012E
-:104CD0000895DC0101C06D9341505040E0F7089504
-:104CE000AEE0B0E0E6E7F6E20C9434290D891E89C7
-:104CF0008F89988D26E02C831A83098397FF02C041
-:104D000080E090E801979E838D83AE01455E5F4F02
-:104D1000698D7A8DCE0101960E94A0264D815E811B
-:104D200057FD0AC02F813885421753070CF49A01AA
-:104D3000020F131FF80110822E96E4E00C94502904
-:104D4000ABE0B0E0E6EAF6E20C9426297C013B01F8
-:104D50008A01FC0117821682838181FFC8C1CE01BE
-:104D600001965C01F7019381F30193FD859193FF17
-:104D700081913F01882309F453C1853239F493FDB1
-:104D8000859193FF81913F01853229F4B70190E02D
-:104D90000E949028E7CF912C212C312CFFE1F315B4
-:104DA00038F08B3211F190F4803209F1833229F11D
-:104DB00037FC3CC020ED280F2A3050F536FE20C0CD
-:104DC0008AE0989E200D1124922E06C08D3291F01B
-:104DD000803371F7689430F8F30193FD859193FF68
-:104DE00081913F018111DACF21C0689431F8689434
-:104DF00032F8F2CF689433F8EFCF689434F8ECCF00
-:104E0000EAE02E9E200D1124222E689435F8E4CF7E
-:104E10008E3229F436FC04C1689436F8DDCF8C3626
-:104E200019F4689437F8D8CF8836B1F2982F9F7D5F
-:104E300095549330E0F08336A1F18337C1F1833587
-:104E400009F063C02801F2E04F0E511CF801C08048
-:104E5000D180692D70E036FC02C06FEF7FEFC60194
-:104E60000E947A284C01689437F882010AC00C5FCE
-:104E70001F4FFFE3F98388248394912C6501E89404
-:104E800037F833FE2DC0522C8114910471F5552052
-:104E900009F468CFB70180E290E00E9490285A940C
-:104EA000F6CFF801808189830E5F1F4FE4CF280180
-:104EB000F2E04F0E511CF801C080D180692D70E0E6
-:104EC00036FC02C06FEF7FEFC6010E9485284C01BF
-:104ED0008201D5CFB70180E290E00E9490282A9409
-:104EE0002814190409F0B0F7CECFF60137FC8591EC
-:104EF00037FE81916F01B70190E00E949028511018
-:104F00005A94F1E08F1A9108BFCF843619F0893690
-:104F100009F077C0F80137FE6BC060817181828132
-:104F200093810C5F1F4FF32DFF763F2E97FF09C033
-:104F300090958095709561957F4F8F4F9F4F6894A6
-:104F400037F82AE030E0A5010E94C028C82ECA1810
-:104F50008C2C432C36FE0CC0E89440F8C91440F465
-:104F600034FE05C032FC03C0F32DFE7E4F2E892C8B
-:104F700044FE95C0FE01EC0DF11D8081803309F0E7
-:104F800087C0242D297E422E842D8870582E43FC04
-:104F900095C040FE8FC09C2C821418F42C0C922CCF
-:104FA000981844FE91C0B70180E390E00E949028D9
-:104FB00042FE09C088E790E041FE02C088E590E02B
-:104FC000B7010E949028C91408F48AC0CA94D12C51
-:104FD0009FEFC91AD90ACA0CDB1CF60182916F0136
-:104FE000B70190E00E949028AC14BD04B1F74FCFF8
-:104FF00060817181072E000C880B990B0E5F1F4F8B
-:1050000092CFD32CE894D4F82AE030E0853739F1F8
-:10501000232D297FD22E8F3601F148F48835A9F04F
-:10502000F701868197812B96E2E10C944229803723
-:1050300049F08837A9F7D4FE02C06894D2F820E17D
-:1050400030E00DC06894D4F8F6CF34FE03C0822F50
-:105050008660D82E20E132E002C028E030E0F8017E
-:10506000D7FE0FC060817181828193810C5F1F4FD9
-:10507000A5010E94C028C82ECA183D2CE89437F814
-:1050800067CF6081718190E080E00E5F1F4FF0CFAD
-:1050900042FC02C0839478CF8394839475CF842D8F
-:1050A000867809F471CFF6CFB70180E290E00E94D4
-:1050B000902883948214C0F3512C73CF522C58182B
-:1050C000821408F46ECFF8CF842D867809F47BCF54
-:1050D0008BE241FE80E247FC8DE2B70190E071CFA8
-:1050E000B70180E390E00E9490289A946CCF8FEFF4
-:1050F0009FEF99CFFC010590615070400110D8F7E7
-:10510000809590958E0F9F1F0895FC01615070400F
-:1051100001900110D8F7809590958E0F9F1F0895EC
-:105120000F931F93CF93DF93182F092FEB018B81E0
-:1051300081FD09C01FEF0FEF812F902FDF91CF91DD
-:105140001F910F91089582FF14C02E813F818C81A1
-:105150009D81281739073CF4E881F981CF01019638
-:105160009983888310838E819F8101969F838E838C
-:10517000E3CFE885F985812F0995892BA1F3DACF53
-:10518000FA01AA27283051F1203181F1E8946F9378
-:105190006E7F6E5F7F4F8F4F9F4FAF4FB1E03ED01E
-:1051A000B4E03CD0670F781F891F9A1FA11D680FBC
-:1051B000791F8A1F911DA11D6A0F711D811D911DEF
-:1051C000A11D20D009F468943F912AE0269F112464
-:1051D0003019305D3193DEF6CF010895462F4770C8
-:1051E000405D4193B3E00FD0C9F7F6CF462F4F7023
-:1051F000405D4A3318F0495D31FD4052419302D081
-:10520000A9F7EACFB4E0A695979587957795679526
-:10521000BA95C9F700976105710508959B01AC0126
-:105220000A2E06945795479537952795BA95C9F74D
-:10523000620F731F841F951FA01D0895B7FF0C9464
-:10524000B7240E94B724821B930B08952F923F929C
-:105250004F925F926F927F928F929F92AF92BF9286
-:10526000CF92DF92EF92FF920F931F93CF93DF9332
-:10527000CDB7DEB7CA1BDB0B0FB6F894DEBF0FBE8F
-:10528000CDBF09942A88398848885F846E847D84DC
-:105290008C849B84AA84B984C884DF80EE80FD80DE
-:1052A0000C811B81AA81B981CE0FD11D0FB6F89454
-:1052B000DEBF0FBECDBFED01089513E0C2E8D3E01D
-:1052C00004C0FE010E94CE242196C338D107C9F73D
-:0452D000F894FFCF80
-:1052D40001000000010148503D257500573D25643B
-:1052E40000473D256400463D256400FA000000FDAA
-:1052F40000030004000400422E4241525200415473
-:105304005441434B00432E504541532E0027012E58
-:1053140001350101000000000019006400C800000C
-:0E532400000000451772224C4F4144455200D4
-:040000030000075A98
+:1000900004506F70756C2E206C696D697400556E1C
+:1000A00069742063726561746564004275696C648B
+:1000B000696E67206372656174656400496E73756B
+:1000C00066662E207265736F75726365730018180B
+:1000D0001F80007E0000F80000F00000F80000F82B
+:1000E0000004F80004F80004FAE004FA8004FA803E
+:1000F00004FA8004FA8004FA8004FAE004F8600C40
+:10010000F80010FC0000FF0000FFF180FFF180FF0D
+:10011000F1807FF1801F8180181803FFC00C003030
+:1001200037FFEC780016AFFFF5A80015A8FF15A85B
+:100130008115A8FFD5AB8155AAA5D5AB8155AAA538
+:1001400055AB81D5A89915A8FF15A6006591C3895F
+:100150008C423183C3C140420230420C0C42300316
+:10016000C3C018180000000000FEFE00FEFE003EA6
+:100170003E00FEFE00FEFE001E1E001E1E001E1E95
+:10018000001E1E001E1E001E1E001E1E001E1E0043
+:100190001E1E001E1E001E1E001E1E00FEFE00FE75
+:1001A000FE003E3E00FEFE00FEFE00FE1818E700C8
+:1001B000E7BD00BDE7FFE7BD00BD81FF81E700E7C8
+:1001C000A500A5BDFFBDA500A5A500A5A500A5A5E9
+:1001D00000A5A500A5A500A5A500A5A500A5E7006B
+:1001E000E7BD00BDE7FFE7BD00BD81FF818118814C
+:1001F000812481FFFFFF0808E0BCC299BDFF5D4775
+:1002000008083C4299BDFE5840400808003C42990D
+:10021000A5661800080860BCC299A5671D024402C3
+:1002200033022B02260251756974004F7074696F96
+:100230006E73004D756C7469706C617965722067BE
+:10024000616D650053696E676C6520706C617965DE
+:10025000722067616D650003030705070504050546
+:1002600004050306030207020201020203020E094B
+:100270000E0E0D0E0E0F0E070507050307050F05E1
+:100280000705070607010205020007020207000230
+:10029000070200020702000706030607070202051D
+:1002A000050201020204020005020205000607051C
+:1002B000050705020302020602000000000B00030E
+:1002C00000030705070407010502050707040003EB
+:1002D00000000705050700050005020702000C00E5
+:1002E00002020200040004020107050705070401D9
+:1002F00007040507020302070407010706060101B8
+:1003000007070707030307000500000D00020500AB
+:100310000505050005020107030F0903060306078B
+:10032000070202050507070207070507030107057E
+:10033000060702070507050404030702050704046E
+:100340000703070701060705070703030705030758
+:100350000306040701010701070407030403070656
+:100360000705020501060101070400070501020453
+:10037000050700020102080808000300060306073B
+:100380000702020505070502070705070301070520
+:10039000060702070507050404030702050704040E
+:1003A00007030707010607050707030307050307F8
+:1003B00003060407010107010704070304030706F6
+:1003C00007050205010601010704020705000700F1
+:1003D00005070206020307050703053F213F120830
+:1003E000120A100A0E1C0E0C1E0C141A14161F16DC
+:1003F0001E131E1E1B1E1E1F1E3F213F3A2F3A17A3
+:100400003D173F213F181F02040A041F0E04040E6B
+:100410001F0A1F0A0E0E1F04110E2E252E2F2A2E24
+:10042000262929021F02081F08150E04040E150EA6
+:1004300015151B151B040604040C0400000000170E
+:10044000000300031F0A1F16371A1904130A153A6E
+:10045000000300000E11110E000A040A040E04002D
+:1004600030000404040010001804031F111F121FA1
+:10047000101D151711151F07041F17151D1F151D1A
+:1004800001011F1F151F17151F000A00003200046D
+:100490000A110A0A0A110A040115020E11171E0593
+:1004A0001E1F150A0E110A1F110E1F15111F05011F
+:1004B0000E111D1F041F111F1108100F1F041B1FF9
+:1004C00010101F061F1E040F0E110E1F09060E111D
+:1004D0002E1F051A121509011F011F101F0F180FDB
+:1004E0001F0C1F1B041B031C03191513001F1103F2
+:1004F0000418111F000201022020200001020C122A
+:100500001E1F120C0C12120C121F0C1A14041E05C2
+:10051000242A1E1F021C141D1020201D1F08141148
+:100520001F101E041E1E021C0C120C3E0A040C128C
+:100530003E1E040214160A020F120E101E0E100E9A
+:100540001E081E120C1226281E322A26041E210006
+:100550001F00211E040102013F213F0A4E6F20535C
+:10056000442063617264206F720A6E6F204C4F41A9
+:100570004445522E4845580A0A153A457869740090
+:100580001D20466C617368696E670A20206C6F617C
+:100590006465722E2E2E0A0A444F4E27542054555D
+:1005A000524E204F464621000A0A153A49676E6F9F
+:1005B0007265006D560A0A504C454153452054550A
+:1005C000524E204F464620004C4F57204241545433
+:1005D0004552592120001753440016137800161372
+:1005E00014001510200015201000540A03E1818624
+:1005F0007F3E186D830F0F0E0183866033186DC325
+:10060000198F1803C38E6033186DE330CF1803C3FE
+:100610009E603630CDE360CF3006C79E7E3E30CD43
+:10062000B360CF300CC6F6603330D9B660CF33CF6D
+:10063000CCF66061B0DB1E60CF30D86CE6C061B034
+:10064000DB1E618F19986CC6C063B19B0E330F0F10
+:10065000B078C6FF7E1F1B061E0F050089300802FA
+:100660003802497868140000F6E8DBCFC3B8AEA4BE
+:100670009B928A827B746E68625C57524E494541F8
+:100680003E3A3734312E2C29272523211F1D1C1AD1
+:100690001917161514131211100F0E0D0C0B0A0951
+:1006A00008070645006801000005006801380100E0
+:1006B000000500380168010000C106BD060101FF08
+:1006C000030101F70300000007000201000003041A
+:1006D0000600000000000000000102040810204095
+:1006E0008001020408102001020408102004040400
+:1006F00004040404040202020202020303030303CB
+:10070000030000000023002600290000000000254F
+:100710000028002B0000000000240027002A000011
+:10072000CE031E04220411241FBECFEFD8E0DEBF8B
+:10073000CDBF11E0A0E0B1E0ECEFF3E502C0059021
+:100740000D92A63AB107D9F727E0A6EAB1E001C0B9
+:100750001D92A53FB207E1F713E0C2E9D3E004C060
+:100760002197FE010E946225C039D107C9F70E9476
+:10077000BD030C94F1290C9400000E9497210E9463
+:10078000A50486EA91E00E942E1D68E670E086EAE4
+:1007900091E00E94B11C0E946010F7CF1092F70107
+:1007A0001092F6018AE991E09093F5018093F401AB
+:1007B000089586E392E00E94C20781E080933602AA
+:1007C00087E890E0909335028093340282E0809332
+:1007D0003302109231021092320286E280932D028F
+:1007E00084E180932E020E94010586E090E00E9441
+:1007F0001506882349F042E067E770E086EA91E059
+:100800000E94EC198111089586E392E00E941D0C6C
+:100810000E94490681110E9426040E94090588232E
+:10082000E1F30E94130586E392E00E94590B8DE2EA
+:1008300092E00E9423050E944204D7CF86E392E013
+:100840000C94590686E392E00C945A0680915F0559
+:10085000811117C081E080935F0530916005209180
+:1008600061058091620580916305809164058091A6
+:1008700065058091660580916705832F922F0C9402
+:10088000F22608952091600530916105409162053E
+:1008900050916305609164057091650580916605CE
+:1008A00090916705A1E00E94562520936005309342
+:1008B00061054093620550936305609364057093EE
+:1008C0006505809366059093670508958F929F92C2
+:1008D000AF92BF92CF92DF92EF92FF924B015C01F9
+:1008E00069017A010E94ED26BC01990F880B990BD2
+:1008F000C818D908EA08FB08A70196012F5F3F4FE7
+:100900004F4F5F4F0E940A25680D791D8A1D9B1D60
+:10091000FF90EF90DF90CF90BF90AF909F908F901F
+:100920000895EDEFF4E0138612861186108610828A
+:1009300011821282138214821582168217823C96CB
+:1009400085E0ED35F80779F708951092600510926B
+:100950006105109262051092630510926405109271
+:100960006505109266051092670510925E050E945B
+:10097000910410925D050895FC01DB016081718195
+:100980004D915C91119714962C911497240F352F4B
+:10099000311D62177307E8F48481860F972F911D2C
+:1009A00048175907B0F46281738112964D915C919A
+:1009B000139715968C91840F952F911D68177907C1
+:1009C00040F42581260F372F311D81E04217530750
+:1009D00008F080E08170089550E0480F511D87FDB8
+:1009E0005A9557FD0CC0843554F430E0260F311D64
+:1009F00067FD3A9537FD03C081E060330CF080E07D
+:100A000008951092FA0169ED73E084EF91E00C947F
+:100A1000571686EA91E00E94341991E0811101C0D5
+:100A200090E0892F089560E084EF91E00E945911D1
+:100A300084EF91E00C944811FC0123814281618193
+:100A400080810C94EC04EF920F931F93CF93DF936C
+:100A5000EC01009701F10E941C058823E1F0109140
+:100A6000140240E06E8184EF91E00E94AA112F8170
+:100A70003885ED800C814981688184EF91E00E9486
+:100A80007015612F84EF91E0DF91CF911F910F914D
+:100A9000EF900C94A611DF91CF911F910F91EF90E1
+:100AA0000895FC01849108950196FC0184910895B4
+:100AB0004CE3BC0186EA91E00C940C180F931F9351
+:100AC000CF93DF938C01C0911202D0911302229731
+:100AD0004093FD012093FE0184EF91E00E945716A0
+:100AE00040E061E084EF91E00E94AA11B80184EF38
+:100AF00091E00E946023209749F0BE0184EF91E0CD
+:100B0000DF91CF911F910F910C945716DF91CF91E8
+:100B10001F910F910895FF920F931F93CF93DF932F
+:100B2000D82F162FC42FF22E242F0E94EC048823D6
+:100B3000C1F0009114026F2D84EF91E00E94A61184
+:100B40002C2F412F6D2F84EF91E00E943712602FE0
+:100B500084EF91E0DF91CF911F910F91FF900C9462
+:100B6000A611DF91CF911F910F91FF900895EF9201
+:100B7000FF920F931F93CF93DF93C82FD62F142F7D
+:100B8000F22E0E94EC048823D1F0E0901402602F32
+:100B900084EF91E00E94A6110F2D212F4D2F6C2F75
+:100BA00084EF91E00E94E6116E2D84EF91E0DF91D9
+:100BB000CF911F910F91FF90EF900C94A611DF91B0
+:100BC000CF911F910F91FF90EF900895EF92FF92B8
+:100BD0000F931F93CF93DF93C82FD62F142FF22E8E
+:100BE0000E94EC048823D1F0E0901402602F84EF7F
+:100BF00091E00E94A6110F2D212F4D2F6C2F84EF15
+:100C000091E00E940E126E2D84EF91E0DF91CF9162
+:100C10001F910F91FF90EF900C94A611DF91CF914F
+:100C20001F910F91FF90EF900895682F80EB91E056
+:100C30000E94B61091E0811101C090E0892F0895C3
+:100C4000CF93C62F682F80EB91E00E94D51091E0E2
+:100C5000C81708F090E0892FCF91089560E00C94B8
+:100C6000200681E090E00E942E06811110C083E0F2
+:100C700090E00E942E0681110AC090E080E00E9460
+:100C80002E06811104C082E090E00C942E0681E0D3
+:100C900008950E94310681110AC084E090E00E940C
+:100CA0002E06811104C085E090E00C942E0681E0B0
+:100CB0000895089508950F931F93CF93DF93CDB7B1
+:100CC000DEB728970FB6F894DEBF0FBECDBF162F44
+:100CD00000E028E044E56BE280E00E94E6051F9218
+:100CE0001F9386E091E09F938F931F9288E08F93EC
+:100CF0008E010F5F1F4F1F930F930E9404272CE25A
+:100D000044E067E572E0C8010E945E050FB6F89402
+:100D1000DEBF0FBECDBF28960FB6F894DEBF0FBE64
+:100D2000CDBFDF91CF911F910F910895DF92EF9288
+:100D3000FF920F931F93CF93DF93CDB7DEB76097EA
+:100D40000FB6F894DEBF0FBECDBF7C0163E084EF29
+:100D500091E00E94A61108E024E540E060E084EF05
+:100D600091E00E940E12F70182898F9381898F93FF
+:100D70008CE091E09F938F931F9280E1D82EDF92B9
+:100D80008E010F5F1F4F1F930F930E94042721E0D6
+:100D900042E067E572E0C8010E945E05F7018489C0
+:100DA0008F9383898F9381E191E09F938F931F921B
+:100DB000DF921F930F930E94042725E042E067E52E
+:100DC00072E0C8010E945E05F70186898F938589CC
+:100DD0008F9386E191E09F938F931F92DF921F93F1
+:100DE0000F930E94042721E04AE267E572E0C80100
+:100DF0000E945E051F9280E28F93F701E954FD4F38
+:100E000080811F928F938BE191E09F938F931F922C
+:100E1000DF921F930F930E9404270FB6F894DEBF52
+:100E20000FBECDBF25E04AE267E572E0C8010E942F
+:100E30005E0560960FB6F894DEBF0FBECDBFDF91A2
+:100E4000CF911F910F91FF90EF90DF9008956F92D7
+:100E50007F928F929F92AF92BF92CF92DF92EF924A
+:100E6000FF920F931F93CF93DF93CDB7DEB72C97ED
+:100E70000FB6F894DEBF0FBECDBF7C016B010F83B0
+:100E8000188729873A87CB010E94FA0E29833A8373
+:100E90004B835C836D837E836D807E80F7018589C3
+:100EA00096898615970570F089809A808189928944
+:100EB0008815990538F0AB80BC80838994898A15A0
+:100EC0009B05C0F48CEB90E02C960FB6F894DEBF37
+:100ED0000FBECDBFDF91CF911F910F91FF90EF908B
+:100EE000DF90CF90BF90AF909F908F907F906F904A
+:100EF0000C945805E954FD4F8081803208F03FC0C2
+:100F000091E0980F90838701F5E18F9F000D111DEF
+:100F10001124F801D1A2C0A28F819885908F878B70
+:100F200089859A85928F818FC6010E94F50EF801FE
+:100F3000878F81E087A3F3E0CF16D1040CF480E023
+:100F4000F80185A3F7018189928988199909928B03
+:100F5000818B838994898A199B09948B838B8589DA
+:100F6000968986199709968B858B8BEA90E0F3E03A
+:100F7000CF16D1040CF0A8CF8EE990E0A5CF81E97F
+:100F800090E0A2CFEF92FF920F931F93CF93DF9346
+:100F900000D000D000D0CDB7DEB77C018C01095461
+:100FA0001D4FD8011C92FC01EF53FD4F8FEF808342
+:100FB000C70188549D4F0E943F0C0E94280DF701E5
+:100FC000779685E1DF01982F1D929A95E9F775963E
+:100FD000E017F107B9F788EE93E0D70152969C939A
+:100FE0008E93519754969C938E93539756969C93B9
+:100FF0008E93559728E130E040E050E060E070E0EB
+:10100000CB010E9466047A83698328E130E040E0E6
+:1010100050E060E070E0CB010E946604262F7C83E4
+:101020006B8309811A813C814D815E8165E070E0AE
+:10103000C7010E94270728E330E040E050E060E36A
+:1010400070E080E090E00E9466047A83698328E380
+:1010500030E040E050E060E370E080E090E00E942B
+:1010600066047C836B8390E080E00E94BC0D8D83DE
+:1010700090E080E00E94C80DF701EC53FD4F108214
+:1010800031961082329710823397108209811A812B
+:101090002B813C814D81582F70E060E0C7010E9498
+:1010A000270726960FB6F894DEBF0FBECDBFDF919F
+:1010B000CF911F910F91FF90EF900895CF93DF9301
+:1010C00000D000D000D0CDB7DEB7FC01E654FD4F14
+:1010D0002081318144E150E0421B530B88549D4FE5
+:1010E000FC018081918126E230E0281B390B3A8394
+:1010F00029835C834B833A815C8168E078E080E0FF
+:1011000090E026960FB6F894DEBF0FBECDBFDF91FC
+:10111000CF9108953F924F925F926F927F928F92FC
+:101120009F92AF92BF92CF92DF92EF92FF920F9376
+:101130001F93CF93DF9300D000D000D0CDB7DEB7A0
+:101140005C018C01912C88248A9444244A94542C68
+:101150003201F80187A1882309F446C080A58111D6
+:1011600043C0C5010E945E0829833A834B835C8398
+:101170006D837E83F801C788D08CE18CF28C80A1CE
+:1011800091A10E94BC0D382EF80180A191A10E946E
+:10119000C80D29813A81C21AD30A232D30E0359532
+:1011A0002795C20ED31E2B813C81E21AF30A90E0F0
+:1011B00095958795E80EF91ECC9CC001CD9C900DAD
+:1011C000900D1124EE9C9001EF9C300D300D1124F8
+:1011D000820F931FB0E0A0E084159505A605B70522
+:1011E00018F4892C2C013D010B5E1F4F9394F0E203
+:1011F0009F12AFCFF501EF53FD4F808226960FB6B9
+:10120000F894DEBF0FBECDBFDF91CF911F910F913C
+:10121000FF90EF90DF90CF90BF90AF909F908F9016
+:101220007F906F905F904F903F900895FC01E05445
+:10123000FD4F2081222351F033962081211106C0D9
+:1012400031968081853010F48F5F808308958F926E
+:101250009F92BF92CF92DF92EF92FF920F931F93D4
+:10126000CF93DF9300D000D000D0CDB7DEB77C01A4
+:101270004B016A01FB01818592850E94BC0D182FEC
+:10128000F401818592850E94C80DB82EF401008179
+:10129000812F90E09C0135952795280F391F032E4B
+:1012A000000C440B550B612F70E090E080E00E9431
+:1012B0006604060FF40112818B2D90E09C01359598
+:1012C0002795280F391F032E000C440B550B6B2D4F
+:1012D00070E090E080E00E9466041E821D82802FF4
+:1012E00090E09A838983160F612F70E0212F7C8311
+:1012F0006B831A813C8140E05E81B601C7010E9488
+:10130000270726960FB6F894DEBF0FBECDBFDF913C
+:10131000CF911F910F91FF90EF90DF90CF90BF90F2
+:101320009F908F900895CF92DF92EF92FF920F934C
+:101330001F93CF93DF9300D000D000D0CDB7DEB79E
+:101340007C016A010E945E0889019A01AB01B60125
+:10135000C7010E94270726960FB6F894DEBF0FBE7E
+:10136000CDBFDF91CF911F910F91FF90EF90DF9054
+:10137000CF9008950F931F93CF93DF93EC01CC533D
+:10138000DD4F28818C010D531D4F253018F5FC01D0
+:10139000EF53FD4F20812F3F81F0FC0135E1230207
+:1013A000E00DF11D112421E020A7FC01E054FD4FC8
+:1013B00020838B539D4FFC011082188281E098811D
+:1013C000953008F480E0F8018083DF91CF911F9180
+:1013D0000F910895F8012081222381F3FC0130E070
+:1013E00020E040A5442349F145E1429FB001439FDD
+:1013F000700D1124695E7F4F680F791FFC01EA535D
+:10140000FD4F108231972081223079F038F443E08B
+:1014100050E02111D3CF0E949309D0CF233051F057
+:1014200045E050E02430B9F3C9CF50E040E00E94DD
+:101430002709C4CF41E050E0FACF2F5F3F4F7596A8
+:101440002032310571F6BACFCF93DF93EC01C0544F
+:10145000DD4F28812223D9F0DC01AE53BD4F2C9102
+:101460002530C0F0FC019C0120563D4F40A54111A4
+:1014700010A67596E217F307C9F71C921882FC01B3
+:10148000ED53FD4F10828C539D4FFC011082DF9174
+:10149000CF9108952F5F2C93FACFCF92DF92EF92E6
+:1014A000FF920F931F93CF93DF9300D000D000D013
+:1014B000CDB7DEB78C01FC01E054FD4F808188235D
+:1014C00009F1C8010E945E0829833A834B835C833B
+:1014D0006D837E837801680180E6C81A8DEFD80A93
+:1014E000F70180A5882341F04B815C8169817A8175
+:1014F000C70147960E94210FF5E1EF0EF11CEC1495
+:10150000FD0471F7F801EE53FD4F108226960FB6D9
+:10151000F894DEBF0FBECDBFDF91CF911F910F9129
+:10152000FF90EF90DF90CF900895EF92FF920F938E
+:101530001F93CF93DF93FC01ED53FD4F20812223B6
+:1015400051F1EC018C0100561D4F7C018BE3E81A30
+:101550008DEFF80A88A58823D1F0CE0147960E9426
+:101560004410F70140819FEF940F282F30E0491776
+:1015700071F0993008F097E0B901092E02C0759515
+:1015800067950A94E2F760FF0DC0F70190836596B6
+:10159000C017D107F9F6DF91CF911F910F91FF90FE
+:1015A000EF9008959150E3CFEF92FF920F931F9326
+:1015B000CF93DF93FC01ED53FD4F2081222351F1A6
+:1015C000EC018C0100561D4F7C018BE3E81A8DEF76
+:1015D000F80A88A58823D1F0CE0147960E944410CE
+:1015E000F701408191E0940F282F30E0491771F006
+:1015F000983008F090E0B901092E02C07595679502
+:101600000A94E2F760FF0DC0F70190836596C0175A
+:10161000D107F9F6DF91CF911F910F91FF90EF90D5
+:1016200008959F5FE3CF0F931F93CF93DF93EC0158
+:10163000FC01ED53FD4F80818823B1F1FE0130E0C4
+:1016400020E080A5882351F145E1429FC001439FDE
+:10165000900D112447968C0F9D1F0E94441090E01E
+:101660008E010B531D4FF801208102C0959587957F
+:101670002A95E2F780FD03C0CE010E94D40AF8014A
+:10168000808190E00E944C102CE248E267E572E015
+:10169000DF91CF911F910F910C945E052F5F3F4F0B
+:1016A00075962032310569F6DF91CF911F910F9128
+:1016B00008958F929F92AF92BF92CF92DF92EF9256
+:1016C000FF920F931F93CF93DF93EC018C01095E80
+:1016D0001F4FF12CE12C912C6C018FE3C81A8DEF78
+:1016E000D80A5E01E8E4AE1AEDEFBE0AF80180897F
+:1016F0008823D9F0F60180818F3F39F0082E000C45
+:10170000990B41E08E159F0509F040E0B501C80135
+:101710000E94D40DF8018188882039F0911005C00D
+:101720006085CE010E945B06982CFFEFEF1AFF0A3E
+:101730000B5E1F4F80E2E816F104C1F68881882312
+:1017400039F1992099F001E023E04AE06CE284E469
+:101750000E94B705FE01EC53FD4F4081442331F058
+:10176000440F23E06CE284E40E94E605CE010E946F
+:10177000130BCE01DF91CF911F910F91FF90EF904E
+:10178000DF90CF90BF90AF909F908F900C94960673
+:10179000DF91CF911F910F91FF90EF90DF90CF904D
+:1017A000BF90AF909F908F900895CF93DF93EC01FF
+:1017B00084E090E00E942E06882329F0CE01DF917C
+:1017C000CF910C94160984E090E00E9415068823BE
+:1017D00029F0CE01DF91CF910C94BA0985E090E019
+:1017E0000E942E06882329F0CE01DF91CF910C9420
+:1017F000240A85E090E00E941506882329F0CE0196
+:10180000DF91CF910C944D0A90E080E00E94150684
+:10181000882329F0CE01DF91CF910C94950A82E0C4
+:1018200090E00E941506882329F0CE01DF91CF9128
+:101830000C94D40ADF91CF9108950F931F93CF9307
+:10184000DF93EC018C0108541D4FFC01ED53FD4F5B
+:101850006081C8010E94250DC8010E94870CCE013D
+:101860000E948A0860E270E0CE0147960E94290F2C
+:10187000CE01DF91CF911F910F910C94D50BFC01FC
+:1018800011821082138212821482158283E0868371
+:1018900017820895CF93DF93CDB7DEB72C970FB69D
+:1018A000F894DEBF0FBECDBF1C861B86FC012281D3
+:1018B0003381420F531F80819181680F791F788790
+:1018C0006F835A87498786E0FE013796DE011196BD
+:1018D00001900D928A95E1F729813A814B815C81D3
+:1018E0006D817E8180E090E02C960FB6F894DEBF8B
+:1018F0000FBECDBFDF91CF910895FC019081490FBC
+:10190000DB014C938281280F11962C930895CF937D
+:10191000DF93EC018F81882319F01C821D821BC08C
+:101920008E818330D8F48F5F8E832C81888199815A
+:10193000820F911D27FD9A9597FF80C09983888318
+:101940002D818A819B81820F911D27FD9A9597FF9A
+:1019500079C09B838A83DF91CF9108951E820E9474
+:101960003106882369F190E080E00E942E068823EA
+:1019700029F08C8187FF47C08E5F8C8381E090E0E7
+:101980000E942E06882329F08D8187FF41C08E5F3B
+:101990008D8383E090E00E942E06882331F08D81B4
+:1019A00018160CF03AC082508D8382E090E00E94BD
+:1019B0002E06882329F08C8118169CF582508C8382
+:1019C00090E080E00E942E0681110BC082E090E042
+:1019D0000E942E06811105C08C81181634F58150A5
+:1019E0008C8381E090E00E942E0681119ECF83E0DF
+:1019F00090E00E942E06811198CF8D811816CCF4AC
+:101A000081508D8392CF85300CF0B8CF8F5FB5CFEA
+:101A100085300CF0BECF8F5FBBCF8C3F34F281504E
+:101A2000C3CF8C3F6CF28150CACF8823D1F28F5F35
+:101A3000D7CF882309F479CF8F5FE3CF198218823B
+:101A40001C827ECF1B821A8269CFFC0167830895B6
+:101A5000FF920F931F93CF93DF9307EA15E08AE07D
+:101A600092E0F801908787830E945105F8018283F4
+:101A70008AE092E00E945405F80183831582148263
+:101A8000FF24F394F68280E092E0918B808B0E9499
+:101A90005105F801838780E092E00E945405F80127
+:101AA000848716861586F786C8E6D5E084E192E03D
+:101AB00098878F830E9451058A8384E192E00E9477
+:101AC00054058B831D821C82FE8286EF91E0998BE8
+:101AD000888B0E9451058B8786EF91E00E94540508
+:101AE0008C871E861D86FF868CEA91E0F80193A301
+:101AF00082A30E945105F801858F8CEA91E00E9433
+:101B00005405F801868F10A2178EF1A288E191E0AA
+:101B100095AB84AB0E945105F80187A788E191E05D
+:101B20000E945405F80180AB12AA11AAF3AA82E61A
+:101B300091E09BA38AA30E9451058D8F82E691E0DC
+:101B40000E9454058E8F18A21F8E13E019A38EECED
+:101B500090E09DAB8CAB0E9451058FA78EEC90E07E
+:101B60000E94540588AB1AAA19AA1BABDF91CF912A
+:101B70001F910F91FF90089529E0289FF001299F60
+:101B8000F00D1124E955FA4F878190850C94510589
+:101B900029E0289FF001299FF00D1124E955FA4F03
+:101BA000878190850C9454057F928F929F92AF927B
+:101BB000BF92CF92DF92EF92FF920F931F93CF933A
+:101BC000DF9300D000D000D0CDB7DEB77C015B0141
+:101BD000742EDC0150968C915097882309F47CC0B8
+:101BE00019960D911C916801DD24B9E00B9F8001CD
+:101BF0001124F70186858111B3C08785882309F4F4
+:101C00007FC008591A4FD80114961C921497159644
+:101C10001C92882339F0F70184898F5F853008F0A2
+:101C200072C0848BF701838594858130910509F416
+:101C30008CC008F484C08230910509F46AC003970F
+:101C400009F475C0F7012281338140815181B801C7
+:101C5000C5010E947D0CC8010E942305711005C0BA
+:101C6000D70151968C918823B9F1F70142815381B4
+:101C700060817181C5010E944A0C29833A834B839C
+:101C80005C83A980BA808B809C80D70151968C910F
+:101C900001E0811101C003E0C6010E94BC0D182FB4
+:101CA000C6010E94C80DF7019685992309F47CC0EE
+:101CB000282F26952695280F412F46954695410FAA
+:101CC000869586958695682D681B169516951695AA
+:101CD0008A2D811B0E94B70526960FB6F894DEBFA9
+:101CE0000FBECDBFDF91CF911F910F91FF90EF906D
+:101CF000DF90CF90BF90AF909F908F907F9008958E
+:101D000009551A4F80CF148A858591E089278587E8
+:101D100089CF82E0D80115968C931597F7018585B8
+:101D2000882309F48FCF83E015968C938BCF85851C
+:101D3000882309F487CF81E0F801858383CF81E090
+:101D4000D80114968C931497E6CF81E0D8011496AD
+:101D50008C9314978585882309F474CF82E0E4CFAF
+:101D6000C80188599A4F4C01F601EE0FFF1FE55E3E
+:101D7000FE4F8181D70112962D913C911397280F28
+:101D8000311D87FD3A9580814D915C91480F511D21
+:101D900087FD5A95B401C5010E947D0CC4010E94C3
+:101DA000230509551A4F4ECF682F6695680D792D7A
+:101DB000711D812F8695202F412F8A0D9B2D911DFE
+:101DC00026960FB6F894DEBF0FBECDBFDF91CF9140
+:101DD0001F910F91FF90EF90DF90CF90BF90AF9049
+:101DE0009F908F907F900C948B0581579E4FFC01A4
+:101DF00080810895CF93DF9300D000D000D0CDB77D
+:101E0000DEB726E0289FF001299FF00D1124EB5941
+:101E1000FE4F86E0DE01119601900D928A95E1F762
+:101E200029813A814B815C816D817E8180E090E0E7
+:101E300026960FB6F894DEBF0FBECDBFDF91CF91CF
+:101E40000895FC01758364835783468381E0878707
+:101E500008952F923F924F925F926F927F928F924E
+:101E60009F92AF92BF92CF92DF92EF92FF920F9329
+:101E70001F93CF93DF93CDB7DEB72F970FB6F894AC
+:101E8000DEBF0FBECDBF482E9D874B01082F192FF7
+:101E9000D12CC12CC814D904C9F42F960FB6F894CC
+:101EA000DEBF0FBECDBFDF91CF911F910F91FF908D
+:101EB000EF90DF90CF90BF90AF909F908F907F90EA
+:101EC0006F905F904F903F902F900895D80150965B
+:101ED0008C915097882309F4CAC01F965C901F9775
+:101EE000552009F4C4C02D913C9111971996ED919C
+:101EF000FC911A97E25AFE4F7080872D90E014965D
+:101F00004D915C911597B901681B790B46175707DE
+:101F1000B8F51C961C921E921B97672C6194712C2D
+:101F2000E42CFD84B12CA12C262C062C000C3308AB
+:101F3000272D072C000C330B3F872E87D801A814C0
+:101F4000B90409F050C01F965C921F97552009F400
+:101F50008EC08D919C911197860D911D67FC9A956D
+:101F600011969C938E9312968D919C911397870D49
+:101F7000911D77FC9A9513969C938E93129777C038
+:101F8000280F391F2417350738F421E030E0F80115
+:101F900034872387672CC3CF12964D915C9113979A
+:101FA00016962D913C911797BA01681B790B26174D
+:101FB000370748F4E2E0F0E01C96FC93EE931B97A1
+:101FC0007194612CADCF840F951F8217930738F45D
+:101FD000E3E0F0E01C96FC93EE931B97F2CF712C9C
+:101FE000612C512C9DCF8D919C911197820D931D49
+:101FF00098878F8312968D919C911397EE85FF851C
+:102000008E0F9F1F9A87898719968D919C910E94A8
+:10201000BC0D8B87D80119968D919C910E94C80D9B
+:102020008C87F7018089882341F1CA14DB0429F1E8
+:10203000808191819A838983828193819C838B8320
+:10204000818592850E94BC0D8D83D70119968D9153
+:102050009C910E94C80D8E83BE016F5F7F4FCE01A1
+:1020600007960E94BC04882341F0F8011786BFEF51
+:10207000CB1ADB0A0B5E1F4F0DCFFFEFAF1ABF0A63
+:1020800025E1E20EF11C5ACFDC011996ED91FC918D
+:10209000E95DFE4F80810895880F991FFC01EC5A7D
+:1020A000FE4F808191810895BC016F5F7F4F80E179
+:1020B000FB0111928A95E9F786EA91E00C94891D5B
+:1020C00043E06EE172E086EA91E00E94EC19811132
+:1020D00006C086E392E00E9454100C94D903089540
+:1020E000FC0188E0808389E0818387E0828386E049
+:1020F000838384E0848382E0858381E186830895FD
+:10210000FF920F931F93CF93DF93EC018C01095F34
+:102110001F4FFF24FA9462E088810E947322888115
+:102120000E94DD222F81892B81F42F5F2F8360E0B5
+:1021300088810E9473222196C017D10761F7DF9131
+:10214000CF911F910F91FF9008952223A1F32F3F6C
+:1021500011F41F82ECCFFF82EACFFC01E60FF11DE4
+:1021600081E09781913009F080E00895FC01E60F4D
+:10217000F11D81E097819F3F09F080E00895860F6F
+:10218000911DFC018781423038F49FEF980F81E068
+:102190009E3F50F080E008C08F3FE1F3642F0E9423
+:1021A000D62481E09130B1F70895860F911DFC018E
+:1021B00087818F3F09F480E008958EBD0DB407FE3E
+:1021C000FDCF8EB50895DC01643508F042C0403380
+:1021D00008F03FC090968C919097E62F062E000C49
+:1021E000FF0B242F25952595259594E52902E00DD3
+:1021F000F11D1124EA51FA4F2081342F37708230BB
+:10220000A1F4822F90E0032E02C0959587950A9441
+:10221000E2F780958170882399F081E090E001C019
+:10222000880F3A95EAF7822B13C08330A1F71C96EA
+:102230008C916427062E000C770B682760FDEDCF8C
+:1022400081E090E001C0880F3A95EAF780958223FB
+:10225000808308951F93CF93DF93EC01162FF8949A
+:1022600060E08F850E94AF22888918161CF460E018
+:102270000E94AF22812F0E94DD10888918161CF45D
+:1022800061E00E94AF227894DF91CF911F91089571
+:10229000E6EEF5E028EF31E0DF01A9011D924150A3
+:1022A0005040E1F7DC0119961C9219971A961C927E
+:1022B000089548EF51E06FEF7FEF86EE95E00C94C4
+:1022C000FD26CF92DF92EF92FF920F931F93CF9351
+:1022D000DF93EC018C858F5F8C8786EEE82E85E09E
+:1022E000F82E10E0612F6064CE010E942A1160E890
+:1022F000CE010E942A1161E08F850E94AF22888959
+:1023000018161CF460E00E94AF22670104E5F60194
+:1023100081916F010E94DD100150C9F7888918165C
+:102320001CF461E00E94AF221F5FF4E5EF0EF11C88
+:102330001630C1F660E4CE01DF91CF911F910F916D
+:10234000FF90EF90DF90CF900C942A11FC0160A3D6
+:1023500061A30895FC0160A341A30895EF92FF9249
+:102360000F931F93CF93DF938C01D62FF42EE22E81
+:10237000C0E0CE1544F44F2D4C0F6D2FC8010E94C4
+:10238000E310CF5FF6CFDF91CF911F910F91FF90B8
+:10239000EF900895EF92FF920F931F93CF93DF93E7
+:1023A0008C01F62ED42FE22EC0E0CE1544F46F2D12
+:1023B0006C0F4D2FC8010E94E310CF5FF6CFDF9165
+:1023C000CF911F910F91FF90EF900895EF92FF92A0
+:1023D0000F931F93CF93DF937C01162FD42FC22F1F
+:1023E0000E94CA114FEF400F4D0F2C2F612FC701D4
+:1023F0000E94CA11202F4D2F612FC7010E94AE11DC
+:102400006FEF6C0F610F202F4D2FC701DF91CF9120
+:102410001F910F91FF90EF900C94AE11DF92EF920D
+:10242000FF920F931F93CF93DF937C01D62FD22E71
+:10243000C42F002E000C110B040F111D47FD1A951F
+:102440008C2F0C2E000C990B8017910744F42D2D26
+:102450004C2F6D2FC7010E94CA11CF5FF1CFDF91C2
+:10246000CF911F910F91FF90EF90DF9008959F9271
+:10247000AF92BF92CF92DF92EF92FF920F931F9392
+:10248000CF93DF938C01E62EF42EC22F81E0D82E5D
+:10249000D21AC22EC194CC0C422F4F0DC8010E94FB
+:1024A000E3104F2D4C1B6E2DC8010E94E3106C2FC2
+:1024B0006E0D4F2DC8010E94E3106E2D6C1B4F2D29
+:1024C000C8010E94E310D0E0DC170CF044C0D7FC38
+:1024D00004C0C150C394C394DC0CDF5F8D2F880F00
+:1024E0008F5FD80E9E2C9D0EBF2CBC0E4B2D692DE0
+:1024F000C8010E94E310AE2CAD1A4B2D6A2DC80105
+:102500000E94E310BF2CBC1A4B2D692DC8010E94FC
+:10251000E3104B2D6A2DC8010E94E310BF2CBD0EA5
+:102520004B2DAE2CAC0E6A2DC8010E94E3104B2D32
+:10253000BE2CBC1A6B2DC8010E94E3109F2C9D1A63
+:10254000492D6A2DC8010E94E310492D6B2DC80149
+:102550000E94E310B9CFDF91CF911F910F91FF90AF
+:10256000EF90DF90CF90BF90AF909F9008958F92A3
+:102570009F92AF92BF92CF92DF92EF92FF920F9312
+:102580001F93CF93DF937C01162FD42EC22F81E0AF
+:10259000C82EC21AB22EB194BB0CD0E0802F84702A
+:1025A000A82E802F8270982E802F8870882E017020
+:1025B000DC170CF04DC0C7FC04C0C150B394B394F9
+:1025C000CB0CDF5F8D2F880F8F5FC80EAA2071F0B4
+:1025D0004D2D4C0F612F6D0FC7010E94E3104D2D43
+:1025E0004D0F6C2F610FC7010E94E310992071F00D
+:1025F0004D2D4C1B612F6D0FC7010E94E3104D2D17
+:102600004D1B6C2F610FC7010E94E310882071F0F1
+:102610004D2D4D0F612F6C1BC7010E94E3104D2DF6
+:102620004C0F612F6D1BC7010E94E310002309F4BA
+:10263000BFCF4D2D4D1B612F6C1BC7010E94E310B6
+:102640004D2D4C1B612F6D1BC7010E94E310B0CFB5
+:10265000DF91CF911F910F91FF90EF90DF90CF907E
+:10266000BF90AF909F908F9008957F928F929F928E
+:10267000AF92BF92CF92DF92EF92FF920F931F9390
+:10268000CF93DF935C01C62E942EC22F11E0121B54
+:10269000D22ED194DD0C83E0F82ED0E0802F817013
+:1026A000782E882483948E0C0270DC17ACF517FD0D
+:1026B00004C0C150D394D3941D0DDF5F1F0D77204C
+:1026C00099F02C2F220F280D492D4C1B6C2D6D0FCE
+:1026D000C5010E94AE112E2D2F0D492D4D1B6C2FC3
+:1026E0006C0DC5010E94AE11002399F02C2F220F12
+:1026F000280D492D4C1B6C2D6D1BC5010E94AE1180
+:102700002E2D2F0D492D4D1B6C2D6C1BC5010E94CC
+:10271000AE11F394F394C9CFDF91CF911F910F9134
+:10272000FF90EF90DF90CF90BF90AF909F908F90F1
+:102730007F9008959F92AF92BF92CF92DF92EF92D7
+:10274000FF920F931F93CF93DF93EC01B62E142FBC
+:10275000D22EAE2CAA0C922E9A18CE2CC60E292D53
+:102760006C2D0E94CA11FF24FA94F00EF10E292D4F
+:102770004F2D6C2DCE010E94CA110A191E0D202F5B
+:10278000412F6B2DCE010E94AE11DB0C6FEF6D0D52
+:10279000202F412FCE010E94AE1101E02E2D412F9E
+:1027A0006C2DCE010E94B7128E2D8095D80E02E0BE
+:1027B0002E2D412F6D2DCE010E94B712FE1804E080
+:1027C0002E2D4F2D6D2DCE010E94B71208E02E2D1B
+:1027D0004F2D6C2DCE010E94B712DF91CF911F912A
+:1027E0000F91FF90EF90DF90CF90BF90AF909F90B0
+:1027F0000895AF92BF92CF92DF92EF92FF920F9324
+:102800001F93CF93DF936C01C62FF42EA22ED02FEF
+:102810001E2DEE0CB12EB60E2E196B2D0E940E122F
+:10282000D150DE19F10E6FEF6C0F6A0D611BED2EAA
+:1028300001E0212F4F2DC6010E94351302E0212F08
+:102840004F2D6B2DC6010E943513DF91CF911F9143
+:102850000F91FF90EF90DF90CF90BF90AF900895D1
+:102860002F923F925F926F927F928F929F92AF9240
+:10287000BF92CF92DF92EF92FF920F931F93CF936D
+:10288000DF93EC01F901E4903196849164350CF00A
+:1028900015C10E2C000CFF08062F062E000C110B84
+:1028A000F701E00FF11F1E161F060CF007C14033A1
+:1028B0000CF004C1A82FC42E042E000CDD08560114
+:1028C000A80EB11C87FDBA941A141B040CF0F6C0B4
+:1028D0002E5F3F4F570197E0A90EB11CB7FE04C011
+:1028E0005701BEE0AB0EB11CB3E0B594A794BA9506
+:1028F000E1F747FF0AC0A42FA80FAC9CC001AD9C14
+:10290000900D1124281B390B40E08A2F0A2E000C51
+:10291000990B840F911D47FD9A95C19714F0A0E380
+:10292000A41BF8A067FD60E0E535F10514F0E4E5CF
+:10293000F0E09E2FCC85C427C62E062E000CDD08A5
+:10294000F601E01BF10B8F014F01F7E08F22992474
+:10295000E0E8F0E002C0F595E7958A94E2F77E2F73
+:1029600017FF02C0095F1F4FF3E015950795FA9511
+:10297000E1F7200F311F542F577081E001C0880FFD
+:102980005A95EAF7459545954595F601B4E54B020C
+:10299000E00DF11D1124AF014A515A4FD0E02A2E0B
+:1029A000AA0F3308EE24E394BB24D21513040CF0D1
+:1029B00085C0F9015490F1E0FF121AC06901962E0A
+:1029C0008A01E72F991608F057C08E2E852021F036
+:1029D000D8018C90882A8C92E69531F4BFEFCB1AFF
+:1029E000DB0AF6015490E0E893940F5F1F4FEACFA3
+:1029F000F1101CC0782E70946901962E8A01E72F81
+:102A0000991608F039C08E2E852021F0D8018C90BF
+:102A100087208C92E69531F4BFEFCB1ADB0AF601E2
+:102A20005490E0E893940F5F1F4FEACFF3E0FF125A
+:102A30002CC0782E70946901862E8A01972E8916F3
+:102A4000D0F4E92DE52141F0D801EC916C2E6824F9
+:102A500060FE0FC0E82BEC93969439F4BFEFCB1ACD
+:102A6000DB0AF6015490E0E89E2E83940F5F1F4F1F
+:102A7000E6CFE721F0CFCE25880F19F44C5A5F4FEF
+:102A800081E0DF5F2A0D3B1D90CF6901962E8A0100
+:102A9000E72F991688F78E2E852021F0D8018C908B
+:102AA00088268C92E69531F4BFEFCB1ADB0AF6014B
+:102AB0005490E0E893940F5F1F4FEBCFDF91CF91DD
+:102AC0001F910F91FF90EF90DF90CF90BF90AF904C
+:102AD0009F908F907F906F905F903F902F90089580
+:102AE0002F923F924F925F926F927F928F929F921E
+:102AF000AF92BF92CF92DF92EF92FF920F931F930C
+:102B0000CF93DF9300D000D000D01F92CDB7DEB7B7
+:102B10004C01462E342E69018E2D01111DC0E1108D
+:102B20001BC0C40127960FB6F894DEBF0FBECDBF01
+:102B3000DF91CF911F910F91FF90EF90DF90CF9099
+:102B4000BF90AF909F908F907F906F905F904F90CD
+:102B50003F902F900C943014F60154903196E490ED
+:102B6000A52CB12C9501295F3F4FA90133E0559564
+:102B700047953A95E1F75B834A830370F12CEE2D7C
+:102B8000F0E0FD83EC835A941FEF1E0D2F2D0F2CC8
+:102B9000000C330B2A153B050CF070C0F982F7FED0
+:102BA00003C0F7E0FF0DF98329812595259525952B
+:102BB00029839F2D977897FF03C09150986F9F5F4F
+:102BC00020E8622E712C02C0759467949A95E2F702
+:102BD000212C4981042E000C550B4E5F5F4F5F8303
+:102BE0004E83222D022C000C330BEC81FD812E171D
+:102BF0003F070CF041C04A815B81429FF001439F37
+:102C0000F00D529FF00D11242E813F81E20FF31F32
+:102C1000EC0DFD1DE491F0E0E621F721EF2B41F1F1
+:102C2000023069F0612F62194F2D033061F0452D9C
+:102C30004F19622D013039F0422D6F2D04C0652DE2
+:102C40006F19412F42198823A9F0382F3370398327
+:102C500080FF03C0552D561B652F81FF03C08E2DAD
+:102C6000841B482F640D430DC4010E94E310898129
+:102C70002394B7CF1982F6CFF39488CF27960FB657
+:102C8000F894DEBF0FBECDBFDF91CF911F910F91A2
+:102C9000FF90EF90DF90CF90BF90AF909F908F907C
+:102CA0007F906F905F904F903F902F900895DC0140
+:102CB000FB0184918F5F14968C9314973196E49165
+:102CC000EF5F1596EC9315976E5F7F4F5F967C9341
+:102CD0006E935E970895EF920F93CF93DF93EC017D
+:102CE0004E876D872F87E98A088B81E0888788A3C4
+:102CF00019A28F8369ED73E0CE010E9457160E94DE
+:102D0000932481E00E94A92485E00E94B7248CE0EE
+:102D10000E94B22461E08E850E94732261E08D855D
+:102D20000E94732261E08F850E94732289891816A0
+:102D30001CF461E00E947322888918161CF461E07B
+:102D40000E947322898918166CF460E00E94AF22F9
+:102D50006AE070E080E090E00E94712161E0898982
+:102D60000E94AF228D85082E000C990BFC01E351C7
+:102D7000F94FE491F0E0EE0FFF1FE55FF84F25916A
+:102D800034913D8B2C8BFC01E752F94FE491EB8F92
+:102D90008E85082E000C990BFC01E351F94FE4914C
+:102DA000F0E0EE0FFF1FE55FF84F259134913B8B6C
+:102DB0002A8BFC01E752F94FE491EA8F8889082EAB
+:102DC000000C990BFC01E351F94FE491F0E0EE0F98
+:102DD000FF1FE55FF84F259134913F8B2E8BFC014F
+:102DE000E752F94FE491EC8F8F85082E000C990B78
+:102DF000FC01E351F94FE491F0E0EE0FFF1FE55FB6
+:102E0000F84F25913491398F288FFC01E752F94F03
+:102E1000E491ED8F61E2CE010E942A1164E1CE01BE
+:102E20000E942A118B8587FF02C08FE78B876B85F5
+:102E30006068CE010E942A1160E2CE010E942A1130
+:102E40006CE0CE010E942A11CE01DF91CF910F914B
+:102E5000EF900C9461114F925F926F927F928F92DC
+:102E60009F92AF92BF92CF92DF92EF92FF920F9319
+:102E70001F93CF93DF93EC01862EF42E102F83E562
+:102E800086170CF485C08FE284170CF481C04C8146
+:102E90004150550B049FC001059F900D1124860FD2
+:102EA000911D67FD9A95181619060CF071C03D81A9
+:102EB0008F2D0F2C000C990B039F800D911D112459
+:102EC000181619060CF064C078A0E62E912CC22EBC
+:102ED000D12C292D092C000C330B8C8190E0281764
+:102EE00039070CF054C00197E0E02817390771F05A
+:102EF000C89EF001C99EF00DD89EF00D11242E0F32
+:102F00003F1FEE8DFF8DE20FF31FE4915F2C612CCC
+:102F1000492C480C2D81862D062C000C990B281766
+:102F2000190691F18CF1AE2EB12CE0FF16C01130D4
+:102F300061F4462D4F0D642DCE010E94E310F50182
+:102F4000F595E7956394510EE5CF012F212F452D7F
+:102F50006E2DCE010E940E12F2CF89A198A1891781
+:102F600071F388A3113041F4462D4F0D642DCE012D
+:102F70000E94E31078A2E3CF012F212F452D6E2D63
+:102F8000CE010E940E12F6CF9394E10EA2CF78A24A
+:102F9000DF91CF911F910F91FF90EF90DF90CF9035
+:102FA000BF90AF909F908F907F906F905F904F9069
+:102FB00008950F93CF93DF93EC01262F6A3049F4E5
+:102FC00028859D818A85299F800D11248A871986ED
+:102FD0001DC06D30D9F008854A8569850E942B1780
+:102FE00028853C818985239F800D112489879F81B5
+:102FF000992361F0082E000C990B44E550E0239FC3
+:1030000040195109112448175907DCF281E090E07A
+:10301000DF91CF910F910895FC01EC57FF4F718321
+:1030200060838A579F4F445FFC01408308956F92ED
+:103030007F928F929F92AF92BF92CF92DF92EF9248
+:103040000F93CF93DF934C015C0186E8A80EB11C6F
+:10305000D5018C91882309F44AC0CCE0C81B8C3080
+:1030600008F0C0E0F401EA5AFF4F81E08083640178
+:10307000BEE4CB0ED11C60E0C6010E94A611340153
+:10308000E3E56E0E711CD3018C9103E0080FDDE2C5
+:103090004D2F481B4C0F83E0E82E24E560E0C6016D
+:1030A0000E94F91361E0C6010E94A611F30180811C
+:1030B00003E0080F4D2F481B4C0F24E560E0C601CC
+:1030C0000E949A13F401E95AFF4F84E080833196FD
+:1030D000D3018C91C81BC15DC083BC966081718196
+:1030E000C6010E943D23F501808181508083DF91DC
+:1030F000CF910F91EF90DF90CF90BF90AF909F90C6
+:103100008F907F906F900895CF92DF92FF920F93F0
+:103110001F93CF93DF93EC018C8D9D8D892B01F153
+:103120008E01025B1F4F40E061E0C8010E94AA11BE
+:10313000FE01E95AFF4FDE01AE5ABF4F9C9185E573
+:10314000891B808331961082698D613009F46DC0CE
+:1031500078F0888D653008F082C06B5F811175C092
+:10316000DF91CF911F910F91FF90DF90CF90089545
+:10317000CE0185960E94DE1F81E0FE01EA5AFF4FD4
+:10318000808369ED73E0C8010E9457161D8E1C8E66
+:10319000FE01EC5AFF4F108288EAF82E6E018AE099
+:1031A000C80ED11CCE010E9434198823D9F368ECD3
+:1031B00075E0C8010E943D236A8D7B8D4AE050E096
+:1031C000C8010E944C2463EB75E0C8010E943D23B6
+:1031D0006F2D62956F7070E04AE050E0C8010E9468
+:1031E000382468EA75E0C8010E943D2364E0C60106
+:1031F0000E94AD108111B4CFFA94F110D3CF60E0EA
+:10320000CE010E94512083B7817F846083BF83B742
+:10321000816083BF83B7816083BF889583B78E7FCA
+:1032200083BF83B78E7F83BFBDCFCF58DF4F8881E9
+:103230009981AA81BB818F709927AA27BB2767E054
+:103240000897A105B10508F068E7C801DF91CF91A3
+:103250001F910F91FF90DF90CF900C9468238823EB
+:1032600009F47ECF6FE2F1CF8F929F92AF92BF921F
+:10327000CF92DF92EF92FF920F931F93CF93DF9342
+:10328000EC017C0180E8E80EF11CF7018080918060
+:10329000A280B3800E944021861A970AA80AB90A20
+:1032A0006E01FFE7CF0ED11CF601808190E0B0E007
+:1032B000A0E08E0105581F4F88159905AA05BB058A
+:1032C00008F04AC0F80180819181A281B381892BE5
+:1032D0008A2B8B2B09F440C00E944021F6012081EB
+:1032E000620F711D811D911DF701608371838283BF
+:1032F00093833F9780819181A281B3810196A11D23
+:10330000B11D80839183A283B383F801108211825F
+:10331000128213820E944C21FE01E958FF4F608304
+:10332000718382839383CE010E945520CE010A9639
+:103330000E948010CE0148960E94BE2081E0DF915D
+:10334000CF911F910F91FF90EF90DF90CF90BF90A2
+:10335000AF909F908F900895F80180819181A28114
+:10336000B381892B8A2B8B2BA9F57E01F5E2EF0E19
+:10337000F11CC7010E94991EC7010E940C1FC701C2
+:103380000E94D01FCE010E941718CE010E948418FF
+:103390007E018EE4E80EF11CC7010E946111FE015E
+:1033A000EC5AFF4F8081811103C0C7010E94481170
+:1033B0000E944C21F8016083718382839383FE0114
+:1033C000EB58FF4FC958DF4F28813981621B730BBF
+:1033D0007183608380E0B3CF2F923F924F925F92D0
+:1033E0006F927F928F929F92AF92BF92CF92DF9215
+:1033F000EF92FF920F931F93CF93DF93CDB7DEB77A
+:1034000065970FB6F894DEBF0FBECDBF6C016A8B17
+:103410007B8B4B83FC01EC5AFF4F10822FEF2D83E7
+:103420001C821D8A10E31C8A3C013AE0630E711C69
+:10343000842F90E09F838E832601E3E54E0E511C7E
+:103440004601F5E28F0E911C9601295A3F4F3987AC
+:103450002887C601885A9F4F9B878A87F601EA5AB8
+:10346000FF4FFF87EE8722503109398B288B0A974F
+:103470001C01C6010E9434198823D9F364E0C301FA
+:103480000E94AD10012F110F110B882399F0F2014A
+:10349000F081F1952B81F29F202D112422502D8B4C
+:1034A00064E0C3010E94AD10811193C0C4010E9469
+:1034B000392094C065E0C3010E94AD108111E7CFAF
+:1034C00066E0C3010E94AD108111E1CF8C818111B2
+:1034D00085C044E063E0C3010E94BF10882331F03F
+:1034E0009C899F5F9C8BC4010E943D2044E061E069
+:1034F000C3010E94BF10882331F0EC89E150EC8BAE
+:10350000C4010E943D20FC898F2F0F2E000C990BC7
+:103510002E813F818217930709F46BC0F7FF03C028
+:103520003B8131503C8BF2018081F4E0F80F2C8913
+:10353000829FF0191124FD8B9D89090F111D97FDA4
+:103540001A9517FF02C00F5F1F4FF801F595E79519
+:10355000FA83E9830981102FE885F9851082EA85CD
+:10356000FB85008321E0EE85FF852083E889F989CA
+:103570001082EA88FB88B12CA12C2C89022E000C29
+:10358000330B3D872C878E819F818A159B0599F18E
+:10359000EC85FD85EA15FB0579F423E0E885F985DE
+:1035A0002083F2018081F02F2C89289FF00D1124B7
+:1035B0008F2FEA85FB858083F70165917491C101A6
+:1035C0000E948323FFEFAF1ABF0A22E0E20EF11C34
+:1035D000DACFC4010E9435203C893D83C8013D8972
+:1035E000831B910937FD9395029764F181E08C83E9
+:1035F000A3CF1C8A98CF60E0C1010E94A611F201FE
+:1036000080814981FC89F89F400D1124415024E5B7
+:1036100060E0C1010E94CA1161E0C1010E94A611CF
+:10362000F201808103E0080F4981FC898F9F400DE2
+:103630001124425083E0E82E24E560E0C1010E949D
+:103640009A1317CF8D8165960FB6F894DEBF0FBE23
+:10365000CDBFDF91CF911F910F91FF90EF90DF9041
+:10366000CF90BF90AF909F908F907F906F905F9022
+:103670004F903F902F9008950F931F93CF93DF9318
+:10368000EC018C01025B1F4FC8010E94481160E8E9
+:1036900075E0C8010E943D23C8010E94611183E0CA
+:1036A0000E94B7248EE991E0EEEFFFE30995FE0159
+:1036B000EC5AFF4F10826BE575E0C8010E9483232E
+:1036C000C8010E9461112A96CE010E94801064E018
+:1036D000CE010E94AD10811107C062E370E080E06E
+:1036E00090E00E947121F0CFDF91CF911F910F9157
+:1036F00008952F923F924F925F926F927F928F9296
+:103700009F92AF92BF92CF92DF92EF92FF920F9370
+:103710001F93CF93DF93CDB7DEB729970FB6F894F9
+:10372000DEBF0FBECDBF998788877B836A832A015E
+:103730003C0180E7680E711CF3018081882309F445
+:10374000F7C081E0E885F985EA5AFF4F8083E88574
+:10375000F985EB5AFF4F1082E885F985EC5AFF4F47
+:103760001082E885F985108E8F01025B1F4F61E0A2
+:10377000C8010E94A611888599858D5A9F4F9F8305
+:103780008E83A884B98497E5A90EB11CE884F984D6
+:10379000E8E5EE0EF11C88849984F2E58F0E911C09
+:1037A000888599858F589F4F9D838C832884398481
+:1037B0009AE0290E311CC884D984E5E2CE0ED11CD2
+:1037C000888599850E9434198823D1F3EA81FB8189
+:1037D000F491F983FF2321F0EE81FF81F081F983D9
+:1037E0002AEE35E040E060E0C8010E943014411448
+:1037F000510439F04981445F920160E0C8010E94A0
+:103800003014F50110828CE0F70180836A817B819E
+:10381000C8010E943D23F4018081982F990F990FD0
+:10382000891B8D5AF5018083EE81FF818081982F5D
+:10383000990F990F891B835DF7018083EC81FD81CE
+:10384000808166EE75E084FD02C062EE75E0C8011D
+:103850000E948323F4018081982F990F990F891B6F
+:103860008D5AF5018083F70180818F5F8083E88521
+:10387000F98582A56EED75E0811102C06AED75E0F3
+:10388000C8010E948323F4018081982F990F990F1A
+:10389000891B8D5AF5018083F70180818F5F8083BA
+:1038A00066ED75E0C8010E94832365E0C1010E94B6
+:1038B000AD10882351F0E885F98562A56F5FC601D8
+:1038C0000E944120C6010E943D2064E0C1010E9487
+:1038D000AD1081111FC0F3012081422F50E070E034
+:1038E00060E0EC81FD8180819181A281B3818417A8
+:1038F0009507A607B70710F02F3F61F466E0C101F6
+:103900000E94AD10882309F45BCF888599850E94B9
+:103910003C1B56CF8FEFF301808360E0C6010E940D
+:10392000D31FC6010E94352081E0E885F985808F8C
+:1039300029960FB6F894DEBF0FBECDBFDF91CF91B1
+:103940001F910F91FF90EF90DF90CF90BF90AF90BD
+:103950009F908F907F906F905F904F903F902F90AF
+:10396000089550E040E00C94791BE0E8F7E72591DA
+:10397000349181E02130304C09F080E00895CF93FC
+:10398000DF93EC010E94B51C9E01275A3F4FDE01D8
+:10399000A059BF4F882309F440C0E6E9F7E78491B6
+:1039A000F9018083E7E9F7E7E491EC83E8E9F7E7D9
+:1039B000E491ED83E9E9F7E7859194919F838E8304
+:1039C000EBE9F7E78591949199878887EDE9F7E727
+:1039D000E491EBA7EEE9F7E7E491EAA7EFE9F7E76F
+:1039E000E491EC93E0EAF7E7859194919D8F8C8FB9
+:1039F000E2EAF7E7859194919F8F8E8FE4EAF7E7EB
+:103A00008591949199A388A3E6EAF7E7859194912B
+:103A10009BA38AA3DF91CF9108958CE3F901808362
+:103A20001C828FEF8D8320E233E03F832E8324EDD1
+:103A300033E03987288791E09BA79AA78C938CEA7B
+:103A40009DE09D8F8C8F8EED9DE09F8F8E8F84E704
+:103A50009EE099A388A38CE39FE0DACFCF92DF9218
+:103A6000EF920F93CF93DF93EC01FC01E158FF4FEE
+:103A700082E38083349781E090E0A0E0B0E080832F
+:103A80009183A283B3833B978FEF8083CE010E9403
+:103A9000BF1CCE010E944D206FEFCE010E9451202D
+:103AA0006E018AE0C80ED11CC6010E947010C601CA
+:103AB0000E948010CE0148960E94B4208EE0E82E2D
+:103AC0000FE020E14BE06DE0CE01825B9F4F0E9452
+:103AD0006B16A596CE010E94D21D65E0C6010E941C
+:103AE000AD10882351F060E0CE01DF91CF910F91AE
+:103AF000EF90DF90CF900C94412040E06AE576E0B3
+:103B0000CE01DF91CF910F91EF90DF90CF900C9489
+:103B1000661ECF93DF93D62FC72F0E94B51C882334
+:103B200059F0AD2FBC2FEBE8F7E784918D933196D8
+:103B3000E53987E7F807C9F7DF91CF910895CF936B
+:103B4000DF93DC0170E0660F771F1F96ED91FC910B
+:103B50005097E60FF71F2591349190963C932E9342
+:103B60005F97F9014591549114968C911497849F15
+:103B7000402D112491964C939197F901C591D491C0
+:103B80006D2F70E04617170629F020F0F9012591F6
+:103B90003491432F849F402D112492964C93DF91B2
+:103BA000CF91089521E0FC01248324E020A729EB94
+:103BB00036E0308B278760E00E949F1D61E070E057
+:103BC00083E00E94ED21E1EBF0E08081887F81605D
+:103BD0008083F89410928000E1E8F0E01082109267
+:103BE00085001092840088E191E090938900809391
+:103BF0008800808188608083808181608083EFE697
+:103C0000F0E0808182608083789408950F93FC01B6
+:103C1000011107C06230D9F030F4662379F06130C9
+:103C200091F00F9108956330C9F06430D1F7648149
+:103C3000649F402D1124458F268FF3CF4B3008F021
+:103C40004AE0468BEECF642F0F910C949F1D648148
+:103C5000649F402D1124418F228FE3CF6481649FA4
+:103C6000402D1124438F248FDCCF8091EA078823D5
+:103C700029F08091E7078093B400089580E0FBCF9E
+:103C8000FC01178A158A14A213A2108E1092E7075E
+:103C90001092E8071092EA070C94351E0F931F93B9
+:103CA000CF93DF93EC018B010E94401E1E870D878E
+:103CB0001B8A1A8A81E0898389E08E8B198E1B8E7C
+:103CC0001D8EDF91CF911F910F910895411102C078
+:103CD0000C944E1E0895CF93DF93EC01611115C033
+:103CE0008881882391F0898181110FC0E9858E2F09
+:103CF00090E0880F991FEF81F885E80FF91F8591F3
+:103D000094918F3F980721F41882DF91CF91089505
+:103D10009C879927880F991FEA85FB85E80FF91F73
+:103D200065917491CE010E944E1E89858F5F8987AF
+:103D3000ECCF60E00C946B1E0F93CF93DF93EC01FC
+:103D4000611166C08981882309F462C08D8981115F
+:103D50005FC08D859E85EA89FB89EE0FFF1FE80F06
+:103D6000F91F459154914115510541F4298921309C
+:103D700021F51B8A1A8AFC0145915491BA01769566
+:103D8000679576956795862F40FF2EC0252F26953F
+:103D900026952695205186E0569547958A95E1F718
+:103DA0004F716F7000E0CE010E94061EEA89FB8908
+:103DB0003196FB8BEA8BCF010AC019828881882358
+:103DC00069F060E0CE010E946B1E8A899B89880F92
+:103DD000991FED85FE85E80FF91FCECFCE01DF914B
+:103DE000CF910F910C94401E8F738C8B8C81859F8B
+:103DF000802D11248D8B1DA21CA21BA281E08F8B14
+:103E00008093EA07188E8A899B8901969B8B8A8BFF
+:103E1000DF91CF910F91089560E00C949C1ECF9399
+:103E2000DF93EC016111B3C08F89882309F4AFC01F
+:103E30008D89811105C0CE01DF91CF910C94401E78
+:103E400081508D8B8DA1811134C02BA13CA12F5F9E
+:103E50003F4FC901880F991FEF8DF8A1E80FF91F97
+:103E600085919491482F47704EA3492F46954695CA
+:103E70004FA3AC0164E0569547956A95E1F74F73FF
+:103E80009C81499F402D11244DA383FB882780F9F5
+:103E90008093E6073CA32BA389A190E0281739075C
+:103EA00040F02AA1222309F475C0821B91099CA32A
+:103EB0008BA38DA181508DA3888D31E0380F388F71
+:103EC0004C892FA1240F8C85280F2A836B8D6623A4
+:103ED00061F070E0832F032E000C990B0E94F624F2
+:103EE0008C8D869F200D11242A838A8190E0CB96A9
+:103EF0006BE370E00E94F6248A832E892B83698D00
+:103F0000662371F0062E000C770B832F032E000C16
+:103F1000990B0E94F6248A8D869F200D11242B83F5
+:103F20006D8D662389F0832F330F990B70E00E940B
+:103F3000F624CB0162E070E00E94F6242E8D9B8176
+:103F4000289F900D11249B834F3341F18B818A3040
+:103F50000CF089E087FD80E08B83F894EA81F0E043
+:103F6000E859F94FE491E093E9078D8198A5899F7D
+:103F7000802D11249B81899F802D11249EA1899FD2
+:103F8000802D11248093E8078093E7077894DF91D0
+:103F9000CF910895CE010E94401E8BCF1B82DDCFB2
+:103FA00060E00C940F1FCF93DF93EC01611103C00D
+:103FB0000E94401E1982DF91CF910895CF93DF9325
+:103FC000EC010E94401E1982DF91CF91089560910B
+:103FD000E807662329F18091EB078F5F8093EB0759
+:103FE0009091E9078917E0F081E09091EA0791113B
+:103FF00080E08093EA071092EB078091E607882320
+:1040000069F08091040193E4899F802D1124895BDC
+:10401000809304010E94D6249093E7070C94351EE8
+:1040200008951F920F920FB60F9211242F933F9372
+:104030004F935F936F937F938F939F93AF93BF93B0
+:10404000EF93FF930E94E71FFF91EF91BF91AF9114
+:104050009F918F917F916F915F914F913F912F91A0
+:104060000F900FBE0F901F90189561EB76E00C94A7
+:104070004E1E69EA76E00C944E1E63EA76E00C94DC
+:104080004E1EFC01862F660F990B668170E06F5FF4
+:104090007F4F0E94F6248583089521E0FC01208350
+:1040A000089570E085E00C94ED21AF92BF92CF921D
+:1040B000DF92EF92FF920F931F93CF93DF93EC0168
+:1040C00089819A812FE0289F8001299F100D11245A
+:1040D00085E10E94D221800F911F24E0969587955B
+:1040E0002A95E1F79A8389832881222391F1EC8133
+:1040F000AD80B12CD12CC12CA885B9857D0110E0F3
+:1041000000E06E817F819B0150E040E086179707B9
+:1041100028F0BC01A817B90708F4BD0190E080E0C1
+:104120001F921F921F92EF930E9452246B830F9055
+:104130000F900F900F9070E085E0DF91CF911F916D
+:104140000F91FF90EF90DF90CF90BF90AF900C94C5
+:10415000ED21DF91CF911F910F91FF90EF90DF90B4
+:10416000CF90BF90AF900895FC018CE39FE09383C4
+:10417000828384E0818381E084870895CF93DF93F5
+:10418000EC018C819D81892B21F18C858F7139F512
+:1041900084E10E94D221BC01990F880B990B0E94E7
+:1041A000A82526EE3FE34EEC50E40E9434260E9400
+:1041B00077259B017B836A83672BA9F084E0898341
+:1041C000FE01349680E0419151912417350720F487
+:1041D0008983DF91CF9108958F5F8430A1F78C851B
+:1041E0008F5F8C87F6CF8FEF8983F9CF1F920F9265
+:1041F0000FB60F9211242F933F938F939F93AF93FA
+:10420000BF938091ED079091EE07A091EF07B091D9
+:10421000F0073091EC0723E0230F2D3758F5019676
+:10422000A11DB11D2093EC078093ED079093EE073D
+:10423000A093EF07B093F0078091F1079091F207F8
+:10424000A091F307B091F4070196A11DB11D8093D1
+:10425000F1079093F207A093F307B093F407BF918F
+:10426000AF919F918F913F912F910F900FBE0F9023
+:104270001F90189526E8230F0296A11DB11DD2CFDD
+:104280002FB7F8946091ED077091EE078091EF07DA
+:104290009091F0072FBF08953FB7F8948091F107F0
+:1042A0009091F207A091F307B091F40726B5A89B6F
+:1042B00005C02F3F19F00196A11DB11D3FBFBA2FB8
+:1042C000A92F982F8827BC01CD01620F711D811D78
+:1042D000911D42E0660F771F881F991F4A95D1F7FD
+:1042E0000895CF92DF92EF92FF92CF93DF936B010D
+:1042F0007C010E944C21EB01C114D104E104F104C2
+:1043000039F4DF91CF91FF90EF90DF90CF90089537
+:104310000E944C216C1B7D0B683E734068F381E06A
+:10432000C81AD108E108F108C851DC4FE5CF7894EC
+:1043300084B5826084BD84B5816084BD85B58260AA
+:1043400085BD85B5816085BDEEE6F0E08081816048
+:104350008083E1E8F0E01082808182608083808148
+:1043600081608083E0E8F0E0808181608083E1EB20
+:10437000F0E0808184608083E0EBF0E08081816008
+:104380008083EAE7F0E080818460808380818260BE
+:1043900080838081816080838081806880831092A7
+:1043A000C10008958E3008F08E502091050190E4F0
+:1043B000299F900111248770822B80937C0080912B
+:1043C0007A00806480937A0080917A0086FDFCCF29
+:1043D000809178009091790008951F93CF93DF9397
+:1043E000182FEB0161E00E947322209739F460E0FE
+:1043F000812FDF91CF911F910C94AF22CF3FD10538
+:1044000011F461E0F5CFE12FF0E0EB53F94FE491C7
+:10441000E33031F140F4E130B1F0E230E1F0C038A6
+:10442000D1057CF7E4CFE63029F1E73059F1E430EB
+:10443000B1F780918000806280938000D0938B00E0
+:10444000C0938A0004C084B5806884BDC7BDDF9175
+:10445000CF911F91089584B5806284BDC8BDF7CF08
+:1044600080918000806880938000D0938900C09301
+:104470008800EDCF8091B00080688093B000C09339
+:10448000B300E5CF8091B00080628093B000C0930C
+:10449000B400DDCF833081F028F4813099F0823090
+:1044A000A9F008958630A9F08730C9F08430B1F4BE
+:1044B000809180008F7D03C0809180008F778093F2
+:1044C0008000089584B58F7784BD089584B58F7D6D
+:1044D000FBCF8091B0008F778093B00008958091DA
+:1044E000B0008F7DF9CFCF93DF9390E0FC01E752CE
+:1044F000F94F24918351994FFC0184918823C9F08D
+:1045000090E0880F991FFC01EB5EF84FA591B491E4
+:10451000FC01E55FF84FC591D49161110DC09FB7C3
+:10452000F8948C91209582238C938881282328836A
+:104530009FBFDF91CF910895623051F49FB7F894F7
+:104540003C91822F809583238C93E8812E2BEFCF93
+:104550008FB7F894EC912E2B2C938FBFEACF1F933B
+:10456000CF93DF93162F282F30E0F901EB53F94F4B
+:104570008491F901E752F94FD491F901E351F94FD0
+:10458000C491CC23A1F081110E944A22EC2FF0E0CB
+:10459000EE0FFF1FE55FF84FA591B4918FB7F89428
+:1045A000EC91111108C0D095DE23DC938FBFDF9111
+:1045B000CF911F910895DE2BF8CFCF93DF93282F53
+:1045C00030E0F901EB53F94F8491F901E752F94FCB
+:1045D000D491F901E351F94FC491CC23A1F0811199
+:1045E0000E944A22EC2FF0E0EE0FFF1FEF5FF84F22
+:1045F000A591B491EC91ED2381E090E009F480E085
+:10460000DF91CF91089580E090E0FACFCF92DF92D2
+:10461000EF92FF920F931F93CF93DF936C01EB0107
+:104620007B01E40EF51E10E000E0CE15DF0561F021
+:104630006991D601ED91FC910190F081E02DC601C8
+:104640000995080F191FF1CFC801DF91CF911F9174
+:104650000F91FF90EF90DF90CF900895FB010190B4
+:104660000020E9F73197AF01461B570BDC01ED91B4
+:10467000FC910280F381E02D0994EF92FF920F9359
+:104680001F93CF93DF937C018B01D0E0C0E0F80152
+:1046900064910F5F1F4F662359F0D701ED91FC9194
+:1046A0000190F081E02DC7010995C80FD91FEFCF08
+:1046B000CE01DF91CF911F910F91FF90EF90089560
+:1046C0006115710511F00C942E2390E080E008959F
+:1046D000DC01ED91FC910190F081E02D09940F93A4
+:1046E0001F93CF93DF93EC016DE00E9468238C0150
+:1046F0006AE0CE010E946823800F911FDF91CF9165
+:104700001F910F9108950F931F93CF93DF93EC01A7
+:104710000E943D238C01CE010E946F23800F911FC8
+:10472000DF91CF911F910F9108958F929F92AF9239
+:10473000BF92CF92DF92EF92FF920F931F93CF938E
+:10474000DF93CDB7DEB7A1970FB6F894DEBF0FBEEB
+:10475000CDBF6C01142FE52FCB01022F19A22230FF
+:1047600008F40AE07E0121E2E20EF11C802E912C79
+:10477000B12CA12C612F7E2FA50194010E940A2546
+:10478000029F101911241A303CF5105DF7011293A5
+:104790007F01122FE32FCA01232B242B252B51F746
+:1047A00090E080E0E114F10421F0B701C6010E941D
+:1047B0002E23A1960FB6F894DEBF0FBECDBFDF91BA
+:1047C000CF911F910F91FF90EF90DF90CF90BF900E
+:1047D000AF909F908F900895195CD8CFCF92DF92C1
+:1047E000EF92FF920F931F93CF93DF93EC016A0137
+:1047F0007B012115310579F4E881F9810190F0817F
+:10480000E02D642FDF91CF911F910F91FF90EF90DA
+:10481000DF90CF9009942A303105E9F42AE0F7FEC1
+:104820001AC06DE20E9468238C0144275527BA0103
+:104830004C195D096E097F092AE0CE010E9495237B
+:10484000800F911FDF91CF911F910F91FF90EF90FB
+:10485000DF90CF900895B701A601CE01DF91CF91EF
+:104860001F910F91FF90EF90DF90CF900C949523C4
+:104870009A01AB01770F660B770B0C94EE23211591
+:10488000310541F4DC01ED91FC910190F081E02DC6
+:10489000642F09940C9495239A01AB0170E060E0B9
+:1048A0000C943F244F925F926F927F92AF92BF928F
+:1048B000CF92DF92EF92FF920F931F93CF93DF93EC
+:1048C000CDB7DEB729013A019B01AC0124193509A6
+:1048D0004609570989899A89AB89BC89BC01CD01F0
+:1048E0006A197B098C099D090E94C624A8019701B9
+:1048F00024193509460957090E942C25CA01B90116
+:104900006A0D7B1D8C1D9D1DDF91CF911F910F9115
+:10491000FF90EF90DF90CF90BF90AF907F906F901F
+:104920005F904F90089561E08AE00E94AF2261E0BD
+:104930008AE00E9473228CB580618CBD8CB5806446
+:104940008CBD61E08DE00E94732261E08BE00C94ED
+:104950007322811104C08CB580628CBD08958CB522
+:104960008F7DFBCF9CB5937F892B8CBD08959CB523
+:104970009C7F282F2370922B9CBD9DB582FB222704
+:1049800020F9892F8E7F822B8DBD0895DB018F93B7
+:104990009F930E944B25BF91AF91A29F800D911DC7
+:1049A000A39F900DB29F900D11240895991B79E05B
+:1049B00004C0991F961708F0961B881F7A95C9F7AF
+:1049C00080950895AA1BBB1B51E107C0AA1FBB1FFE
+:1049D000A617B70710F0A61BB70B881F991F5A958B
+:1049E000A9F780959095BC01CD01089597FB072EFE
+:1049F00016F4009407D077FD09D00E94E22407FC4A
+:104A000005D03EF4909581959F4F089570956195DE
+:104A10007F4F0895A1E21A2EAA1BBB1BFD010DC0FA
+:104A2000AA1FBB1FEE1FFF1FA217B307E407F5075E
+:104A300020F0A21BB30BE40BF50B661F771F881F3A
+:104A4000991F1A9469F760957095809590959B01D0
+:104A5000AC01BD01CF010895052E97FB1EF4009413
+:104A60000E94432557FD07D00E940A2507FC03D06A
+:104A70004EF40C94432550954095309521953F4F29
+:104A80004F4F5F4F089590958095709561957F4F3A
+:104A90008F4F9F4F08950E946825A59F900DB49F4A
+:104AA000900DA49F800D911D112408950024A7FD51
+:104AB00000942A0F301D401D501D601D701D801D6B
+:104AC000901D0895EE0FFF1F0590F491E02D0994BD
+:104AD000A29FB001B39FC001A39F700D811D11243F
+:104AE000911DB29F700D811D1124911D08950E948A
+:104AF000132688F09F5798F0B92F9927B751B0F037
+:104B0000E1F0660F771F881F991F1AF0BA95C9F751
+:104B100014C0B13091F00E942D26B1E008950C949C
+:104B20002D26672F782F8827B85F39F0B93FCCF34F
+:104B3000869577956795B395D9F73EF490958095CE
+:104B4000709561957F4F8F4F9F4F0895E89409C0EE
+:104B500097FB3EF490958095709561957F4F8F4FB0
+:104B60009F4F9923A9F0F92F96E9BB279395F695C6
+:104B7000879577956795B795F111F8CFFAF4BB0F44
+:104B800011F460FF1BC06F5F7F4F8F4F9F4F16C0A8
+:104B9000882311F096E911C0772321F09EE8872F32
+:104BA000762F05C0662371F096E8862F70E060E0EE
+:104BB0002AF09A95660F771F881FDAF7880F969567
+:104BC000879597F9089597F99F6780E870E060E00E
+:104BD00008959FEF80EC089500240A941616170696
+:104BE00018060906089500240A94121613061406DE
+:104BF00005060895092E0394000C11F4882352F041
+:104C0000BB0F40F4BF2B11F460FF04C06F5F7F4FF8
+:104C10008F4F9F4F089557FD9058440F551F59F0DF
+:104C20005F3F71F04795880F97FB991F61F09F3F99
+:104C300079F087950895121613061406551FF2CFC2
+:104C40004695F1DF08C0161617061806991FF1CF12
+:104C500086957105610508940895E894BB27662739
+:104C60007727CB0197F908950E9447260C94FA25DF
+:104C70000E94EC2538F00E94F32520F0952311F0D6
+:104C80000C94E3250C94E92511240C942E260E9403
+:104C90000B2670F3959FC1F3950F50E0551F629F4F
+:104CA000F001729FBB27F00DB11D639FAA27F00D85
+:104CB000B11DAA1F649F6627B00DA11D661F829FAC
+:104CC0002227B00DA11D621F739FB00DA11D621F91
+:104CD000839FA00D611D221F749F3327A00D611DAE
+:104CE000231F849F600D211D822F762F6A2F112490
+:104CF0009F5750409AF0F1F088234AF0EE0FFF1FC3
+:104D0000BB1F661F771F881F91505040A9F79E3F19
+:104D1000510580F00C94E3250C942E265F3FE4F3BC
+:104D2000983ED4F3869577956795B795F795E7956F
+:104D30009F5FC1F7FE2B880F911D9695879597F978
+:104D400008958F929F92AF92BF92CF92DF92EF928F
+:104D5000FF92CF93DF93EC01688179818A819B81F7
+:104D6000611571058105910521F464E279ED8BE50A
+:104D700097E02DE133EF41E050E00E942C254901FE
+:104D80005A019B01AC01A7EAB1E40E944B256B01DB
+:104D90007C01ACEEB4EFA50194010E94B529DC01C1
+:104DA000CB018C0D9D1DAE1DBF1DB7FF03C001972C
+:104DB000A109B04888839983AA83BB839F77DF9139
+:104DC000CF91FF90EF90DF90CF90BF90AF909F90EA
+:104DD0008F9008950E94A126089580E091E00E949E
+:104DE000A1260895B0E0A0E0809300019093010116
+:104DF000A0930201B09303010895DC0101C06D93FB
+:104E000041505040E0F70895AEE0B0E0EAE0F7E24C
+:104E10000C94C8290D891E898F89988D26E02C83D2
+:104E20001A83098397FF02C080E090E801979E8370
+:104E30008D83AE01455E5F4F698D7A8DCE010196FF
+:104E40000E9434274D815E8157FD0AC02F8138852D
+:104E5000421753070CF49A01020F131FF801108236
+:104E60002E96E4E00C94E429ABE0B0E0EAE3F7E24C
+:104E70000C94BA297C013B018A01FC01178216823D
+:104E8000838181FFC8C1CE0101965C01F701938146
+:104E9000F30193FD859193FF81913F01882309F4EC
+:104EA00053C1853239F493FD859193FF81913F0180
+:104EB000853229F4B70190E00E942429E7CF912C94
+:104EC000212C312CFFE1F31538F08B3211F190F4E5
+:104ED000803209F1833229F137FC3CC020ED280FE4
+:104EE0002A3050F536FE20C08AE0989E200D11240D
+:104EF000922E06C08D3291F0803371F7689430F8AD
+:104F0000F30193FD859193FF81913F018111DACFE8
+:104F100021C0689431F8689432F8F2CF689433F87D
+:104F2000EFCF689434F8ECCFEAE02E9E200D1124E8
+:104F3000222E689435F8E4CF8E3229F436FC04C171
+:104F4000689436F8DDCF8C3619F4689437F8D8CFEA
+:104F50008836B1F2982F9F7D95549330E0F08336D8
+:104F6000A1F18337C1F1833509F063C02801F2E074
+:104F70004F0E511CF801C080D180692D70E036FCC5
+:104F800002C06FEF7FEFC6010E940E294C016894AA
+:104F900037F882010AC00C5F1F4FFFE3F9838824B2
+:104FA0008394912C6501E89437F833FE2DC0522C80
+:104FB0008114910471F5552009F468CFB70180E29E
+:104FC00090E00E9424295A94F6CFF80180818983C9
+:104FD0000E5F1F4FE4CF2801F2E04F0E511CF80185
+:104FE000C080D180692D70E036FC02C06FEF7FEF8A
+:104FF000C6010E9419294C018201D5CFB70180E278
+:1050000090E00E9424292A942814190409F0B0F78A
+:10501000CECFF60137FC859137FE81916F01B70144
+:1050200090E00E94242951105A94F1E08F1A9108BF
+:10503000BFCF843619F0893609F077C0F80137FE02
+:105040006BC060817181828193810C5F1F4FF32D52
+:10505000FF763F2E97FF09C09095809570956195DA
+:105060007F4F8F4F9F4F689437F82AE030E0A501BB
+:105070000E945429C82ECA188C2C432C36FE0CC012
+:10508000E89440F8C91440F434FE05C032FC03C073
+:10509000F32DFE7E4F2E892C44FE95C0FE01EC0DB3
+:1050A000F11D8081803309F087C0242D297E422E96
+:1050B000842D8870582E43FC95C040FE8FC09C2CD8
+:1050C000821418F42C0C922C981844FE91C0B7014D
+:1050D00080E390E00E94242942FE09C088E790E026
+:1050E00041FE02C088E590E0B7010E942429C9145E
+:1050F00008F48AC0CA94D12C9FEFC91AD90ACA0CE5
+:10510000DB1CF60182916F01B70190E00E94242917
+:10511000AC14BD04B1F74FCF60817181072E000C34
+:10512000880B990B0E5F1F4F92CFD32CE894D4F8C5
+:105130002AE030E0853739F1232D297FD22E8F36B2
+:1051400001F148F48835A9F0F701868197812B9603
+:10515000E2E10C94D629803749F08837A9F7D4FECC
+:1051600002C06894D2F820E130E00DC06894D4F811
+:10517000F6CF34FE03C0822F8660D82E20E132E0C5
+:1051800002C028E030E0F801D7FE0FC060817181D5
+:10519000828193810C5F1F4FA5010E945429C82E64
+:1051A000CA183D2CE89437F867CF6081718190E090
+:1051B00080E00E5F1F4FF0CF42FC02C0839478CF97
+:1051C0008394839475CF842D867809F471CFF6CFBC
+:1051D000B70180E290E00E94242983948214C0F3F6
+:1051E000512C73CF522C5818821408F46ECFF8CF7C
+:1051F000842D867809F47BCF8BE241FE80E247FC68
+:105200008DE2B70190E071CFB70180E390E00E949A
+:1052100024299A946CCF8FEF9FEF99CFFC010590D2
+:10522000615070400110D8F7809590958E0F9F1FA8
+:105230000895FC016150704001900110D8F78095ED
+:1052400090958E0F9F1F08950F931F93CF93DF9319
+:10525000182F092FEB018B8181FD09C01FEF0FEF84
+:10526000812F902FDF91CF911F910F91089582FF91
+:1052700014C02E813F818C819D81281739073CF411
+:10528000E881F981CF0101969983888310838E810B
+:105290009F8101969F838E83E3CFE885F985812FD7
+:1052A0000995892BA1F3DACFFA01AA27283051F109
+:1052B000203181F1E8946F936E7F6E5F7F4F8F4F47
+:1052C0009F4FAF4FB1E03ED0B4E03CD0670F781FA6
+:1052D000891F9A1FA11D680F791F8A1F911DA11D8B
+:1052E0006A0F711D811D911DA11D20D009F46894C4
+:1052F0003F912AE0269F11243019305D3193DEF66C
+:10530000CF010895462F4770405D4193B3E00FD021
+:10531000C9F7F6CF462F4F70405D4A3318F0495D0C
+:1053200031FD4052419302D0A9F7EACFB4E0A695EF
+:105330009795879577956795BA95C9F70097610511
+:10534000710508959B01AC010A2E06945795479567
+:1053500037952795BA95C9F7620F731F841F951F5C
+:10536000A01D0895B7FF0C944B250E944B25821B6E
+:10537000930B08952F923F924F925F926F927F927C
+:105380008F929F92AF92BF92CF92DF92EF92FF9255
+:105390000F931F93CF93DF93CDB7DEB7CA1BDB0B01
+:1053A0000FB6F894DEBF0FBECDBF09942A883988A6
+:1053B00048885F846E847D848C849B84AA84B984AD
+:1053C000C884DF80EE80FD800C811B81AA81B981B9
+:1053D000CE0FD11D0FB6F894DEBF0FBECDBFED01CD
+:1053E000089513E0C2E9D3E004C0FE010E946225E3
+:0C53F0002196C339D107C9F7F894FFCF0C
+:1053FC0001000000010148503D257500573D256412
+:10540C0000473D256400463D25640025642F256436
+:10541C0000FA000000FD0013020008000400422EF8
+:10542C00424152520041545441434B00432E50458B
+:10543C0041532E00432E534C44522E00432E5457AE
+:10544C004E432E002E0135013C0144014C0101015B
+:10545C00000000000000000000320019000A0032B9
+:10546C0000000000000000640000000000000000CC
+:10547C00000000C80000000000000000000000193F
+:10548C0050006400C80000000000D91706234C4FE0
+:06549C00414445520000EE
+:040000030000077A78
:00000001FF
diff --git a/Exe/POCKET.MAP b/Exe/POCKET.MAP
index 38ad2e5..bca3bf5 100644
--- a/Exe/POCKET.MAP
+++ b/Exe/POCKET.MAP
@@ -238,6 +238,8 @@ Discarded input sections
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
@@ -247,7 +249,7 @@ Discarded input sections
.data 0x0000000000000000 0x0 Obj/Player.o
.bss 0x0000000000000000 0x0 Obj/Player.o
.text._ZN6Player24checkNewBuildingPositionEP16t_CollisionBlock
- 0x0000000000000000 0x106 Obj/Player.o
+ 0x0000000000000000 0xee Obj/Player.o
.text._ZN6Player19ButtonRightReleasedEv
0x0000000000000000 0x4 Obj/Player.o
.bss._ZZN6Player24checkNewBuildingPositionEP16t_CollisionBlockE9max_tries
@@ -1292,7 +1294,7 @@ END GROUP
.rela.plt
*(.rela.plt)
-.text 0x0000000000000000 0x52d4
+.text 0x0000000000000000 0x53fc
*(.vectors)
.vectors 0x0000000000000000 0x68 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/crtatmega328p.o
0x0000000000000000 __vectors
@@ -1318,757 +1320,771 @@ END GROUP
0x0000000000000080 0x7 Obj/Gameplay.o
.progmem.data._ZL12MouseSprData
0x0000000000000087 0xa Obj/Gameplay.o
- .progmem.data._ZZN6Player4InitEvE3__c_0
- 0x0000000000000091 0x17 Obj/Player.o
- .progmem.data._ZZN6Player4InitEvE3__c
- 0x00000000000000a8 0x1b Obj/Player.o
+ .progmem.data._ZZN6Player10createUnitE8t_unitid16t_CollisionBlockE3__c_2
+ 0x0000000000000091 0xd Obj/Player.o
+ .progmem.data._ZZN6Player10createUnitE8t_unitid16t_CollisionBlockE3__c_1
+ 0x000000000000009e 0xd Obj/Player.o
+ .progmem.data._ZZN6Player10createUnitE8t_unitid16t_CollisionBlockE3__c_0
+ 0x00000000000000ab 0x11 Obj/Player.o
+ .progmem.data._ZZN6Player10createUnitE8t_unitid16t_CollisionBlockE3__c
+ 0x00000000000000bc 0x12 Obj/Player.o
.progmem.data.TownCentreShadowSprData
- 0x00000000000000c3 0x4a Obj/Unit.o
- 0x00000000000000c3 TownCentreShadowSprData
+ 0x00000000000000ce 0x4a Obj/Unit.o
+ 0x00000000000000ce TownCentreShadowSprData
.progmem.data.TownCentreSprData
- 0x000000000000010d 0x4a Obj/Unit.o
- 0x000000000000010d TownCentreSprData
+ 0x0000000000000118 0x4a Obj/Unit.o
+ 0x0000000000000118 TownCentreSprData
.progmem.data.BarracksShadowSpr_Data
- 0x0000000000000157 0x4a Obj/Unit.o
- 0x0000000000000157 BarracksShadowSpr_Data
+ 0x0000000000000162 0x4a Obj/Unit.o
+ 0x0000000000000162 BarracksShadowSpr_Data
.progmem.data.BarracksSpr_Data
- 0x00000000000001a1 0x4a Obj/Unit.o
- 0x00000000000001a1 BarracksSpr_Data
+ 0x00000000000001ac 0x4a Obj/Unit.o
+ 0x00000000000001ac BarracksSpr_Data
+ .progmem.data.SoldierSprData_Walking
+ 0x00000000000001f6 0xa Obj/Unit.o
+ 0x00000000000001f6 SoldierSprData_Walking
+ .progmem.data.SoldierSprData
+ 0x0000000000000200 0xa Obj/Unit.o
+ 0x0000000000000200 SoldierSprData
.progmem.data.Peasant_SprData
- 0x00000000000001eb 0xa Obj/Unit.o
- 0x00000000000001eb Peasant_SprData
+ 0x000000000000020a 0xa Obj/Unit.o
+ 0x000000000000020a Peasant_SprData
.progmem.data.Peasant_Walking_SprData
- 0x00000000000001f5 0xa Obj/Unit.o
- 0x00000000000001f5 Peasant_Walking_SprData
+ 0x0000000000000214 0xa Obj/Unit.o
+ 0x0000000000000214 Peasant_Walking_SprData
.progmem.data._ZL15MainMenuOptions
- 0x00000000000001ff 0x8 Obj/Menu.o
+ 0x000000000000021e 0x8 Obj/Menu.o
.progmem.data._ZL16MainMenuOption_3
- 0x0000000000000207 0x5 Obj/Menu.o
+ 0x0000000000000226 0x5 Obj/Menu.o
.progmem.data._ZL16MainMenuOption_2
- 0x000000000000020c 0x8 Obj/Menu.o
+ 0x000000000000022b 0x8 Obj/Menu.o
.progmem.data._ZL16MainMenuOption_1
- 0x0000000000000214 0x11 Obj/Menu.o
+ 0x0000000000000233 0x11 Obj/Menu.o
.progmem.data._ZL16MainMenuOption_0
- 0x0000000000000225 0x13 Obj/Menu.o
+ 0x0000000000000244 0x13 Obj/Menu.o
.progmem.data.font3x3
- 0x0000000000000238 0x182 ../lib/libgamebuino.a(font3x3.o)
- 0x0000000000000238 font3x3
+ 0x0000000000000257 0x182 ../lib/libgamebuino.a(font3x3.o)
+ 0x0000000000000257 font3x3
.progmem.data.font3x5
- 0x00000000000003ba 0x182 ../lib/libgamebuino.a(font3x5.o)
- 0x00000000000003ba font3x5
+ 0x00000000000003d9 0x182 ../lib/libgamebuino.a(font3x5.o)
+ 0x00000000000003d9 font3x5
.progmem.data._ZZN9Gamebuino10changeGameEvE3__c_0
- 0x000000000000053c 0x25 ../lib/libgamebuino.a(Gamebuino.o)
+ 0x000000000000055b 0x25 ../lib/libgamebuino.a(Gamebuino.o)
.progmem.data._ZZN9Gamebuino10changeGameEvE3__c
- 0x0000000000000561 0x28 ../lib/libgamebuino.a(Gamebuino.o)
+ 0x0000000000000580 0x28 ../lib/libgamebuino.a(Gamebuino.o)
.progmem.data._ZZN9Gamebuino14displayBatteryEvE3__c_1
- 0x0000000000000589 0xb ../lib/libgamebuino.a(Gamebuino.o)
+ 0x00000000000005a8 0xb ../lib/libgamebuino.a(Gamebuino.o)
.progmem.data._ZZN9Gamebuino14displayBatteryEvE3__c_0
- 0x0000000000000594 0x15 ../lib/libgamebuino.a(Gamebuino.o)
+ 0x00000000000005b3 0x15 ../lib/libgamebuino.a(Gamebuino.o)
.progmem.data._ZZN9Gamebuino14displayBatteryEvE3__c
- 0x00000000000005a9 0xe ../lib/libgamebuino.a(Gamebuino.o)
+ 0x00000000000005c8 0xe ../lib/libgamebuino.a(Gamebuino.o)
.progmem.data._ZZN9Gamebuino11titleScreenEPK19__FlashStringHelperPKhE3__c_3
- 0x00000000000005b7 0x4 ../lib/libgamebuino.a(Gamebuino.o)
+ 0x00000000000005d6 0x4 ../lib/libgamebuino.a(Gamebuino.o)
.progmem.data._ZZN9Gamebuino11titleScreenEPK19__FlashStringHelperPKhE3__c_2
- 0x00000000000005bb 0x4 ../lib/libgamebuino.a(Gamebuino.o)
+ 0x00000000000005da 0x4 ../lib/libgamebuino.a(Gamebuino.o)
.progmem.data._ZZN9Gamebuino11titleScreenEPK19__FlashStringHelperPKhE3__c_1
- 0x00000000000005bf 0x4 ../lib/libgamebuino.a(Gamebuino.o)
+ 0x00000000000005de 0x4 ../lib/libgamebuino.a(Gamebuino.o)
.progmem.data._ZZN9Gamebuino11titleScreenEPK19__FlashStringHelperPKhE3__c_0
- 0x00000000000005c3 0x4 ../lib/libgamebuino.a(Gamebuino.o)
+ 0x00000000000005e2 0x4 ../lib/libgamebuino.a(Gamebuino.o)
.progmem.data._ZZN9Gamebuino11titleScreenEPK19__FlashStringHelperPKhE3__c
- 0x00000000000005c7 0x4 ../lib/libgamebuino.a(Gamebuino.o)
+ 0x00000000000005e6 0x4 ../lib/libgamebuino.a(Gamebuino.o)
.progmem.data._ZL13gamebuinoLogo
- 0x00000000000005cb 0x70 ../lib/libgamebuino.a(Gamebuino.o)
+ 0x00000000000005ea 0x70 ../lib/libgamebuino.a(Gamebuino.o)
.progmem.data._ZL12startupSound
- 0x000000000000063b 0xe ../lib/libgamebuino.a(Gamebuino.o)
+ 0x000000000000065a 0xe ../lib/libgamebuino.a(Gamebuino.o)
.progmem.data._ZL12_halfPeriods
- 0x0000000000000649 0x3b ../lib/libgamebuino.a(Sound.o)
+ 0x0000000000000668 0x3b ../lib/libgamebuino.a(Sound.o)
.progmem.data._ZL9playTickP
- 0x0000000000000684 0x6 ../lib/libgamebuino.a(Sound.o)
+ 0x00000000000006a3 0x6 ../lib/libgamebuino.a(Sound.o)
.progmem.data._ZL17playCancelPattern
- 0x000000000000068a 0x8 ../lib/libgamebuino.a(Sound.o)
+ 0x00000000000006a9 0x8 ../lib/libgamebuino.a(Sound.o)
.progmem.data._ZL13playOKPattern
- 0x0000000000000692 0x8 ../lib/libgamebuino.a(Sound.o)
+ 0x00000000000006b1 0x8 ../lib/libgamebuino.a(Sound.o)
.progmem.data._ZL18defaultInstruments
- 0x000000000000069a 0x4 ../lib/libgamebuino.a(Sound.o)
+ 0x00000000000006b9 0x4 ../lib/libgamebuino.a(Sound.o)
.progmem.data._ZL15noiseInstrument
- 0x000000000000069e 0x4 ../lib/libgamebuino.a(Sound.o)
+ 0x00000000000006bd 0x4 ../lib/libgamebuino.a(Sound.o)
.progmem.data._ZL20squareWaveInstrument
- 0x00000000000006a2 0x4 ../lib/libgamebuino.a(Sound.o)
+ 0x00000000000006c1 0x4 ../lib/libgamebuino.a(Sound.o)
.progmem.data.digital_pin_to_timer_PGM
- 0x00000000000006a6 0x14 ../lib/libarduino.a(wiring_digital.o)
- 0x00000000000006a6 digital_pin_to_timer_PGM
+ 0x00000000000006c5 0x14 ../lib/libarduino.a(wiring_digital.o)
+ 0x00000000000006c5 digital_pin_to_timer_PGM
.progmem.data.digital_pin_to_bit_mask_PGM
- 0x00000000000006ba 0x14 ../lib/libarduino.a(wiring_digital.o)
- 0x00000000000006ba digital_pin_to_bit_mask_PGM
+ 0x00000000000006d9 0x14 ../lib/libarduino.a(wiring_digital.o)
+ 0x00000000000006d9 digital_pin_to_bit_mask_PGM
.progmem.data.digital_pin_to_port_PGM
- 0x00000000000006ce 0x14 ../lib/libarduino.a(wiring_digital.o)
- 0x00000000000006ce digital_pin_to_port_PGM
+ 0x00000000000006ed 0x14 ../lib/libarduino.a(wiring_digital.o)
+ 0x00000000000006ed digital_pin_to_port_PGM
.progmem.data.port_to_input_PGM
- 0x00000000000006e2 0xa ../lib/libarduino.a(wiring_digital.o)
- 0x00000000000006e2 port_to_input_PGM
+ 0x0000000000000701 0xa ../lib/libarduino.a(wiring_digital.o)
+ 0x0000000000000701 port_to_input_PGM
.progmem.data.port_to_output_PGM
- 0x00000000000006ec 0xa ../lib/libarduino.a(wiring_digital.o)
- 0x00000000000006ec port_to_output_PGM
+ 0x000000000000070b 0xa ../lib/libarduino.a(wiring_digital.o)
+ 0x000000000000070b port_to_output_PGM
.progmem.data.port_to_mode_PGM
- 0x00000000000006f6 0xa ../lib/libarduino.a(wiring_digital.o)
- 0x00000000000006f6 port_to_mode_PGM
- 0x0000000000000700 . = ALIGN (0x2)
+ 0x0000000000000715 0xa ../lib/libarduino.a(wiring_digital.o)
+ 0x0000000000000715 port_to_mode_PGM
+ 0x0000000000000720 . = ALIGN (0x2)
+ *fill* 0x000000000000071f 0x1
*(.lowtext)
*(.lowtext*)
- 0x0000000000000700 __ctors_start = .
+ 0x0000000000000720 __ctors_start = .
*(.ctors)
- .ctors 0x0000000000000700 0x2 Obj/main.o
- .ctors 0x0000000000000702 0x2 Obj/Gameplay.o
- 0x0000000000000704 __ctors_end = .
- 0x0000000000000704 __dtors_start = .
+ .ctors 0x0000000000000720 0x2 Obj/main.o
+ .ctors 0x0000000000000722 0x2 Obj/Gameplay.o
+ 0x0000000000000724 __ctors_end = .
+ 0x0000000000000724 __dtors_start = .
*(.dtors)
- .dtors 0x0000000000000704 0x2 Obj/Gameplay.o
- 0x0000000000000706 __dtors_end = .
+ .dtors 0x0000000000000724 0x2 Obj/Gameplay.o
+ 0x0000000000000726 __dtors_end = .
SORT(*)(.ctors)
SORT(*)(.dtors)
*(.init0)
- .init0 0x0000000000000706 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/crtatmega328p.o
- 0x0000000000000706 __init
+ .init0 0x0000000000000726 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/crtatmega328p.o
+ 0x0000000000000726 __init
*(.init0)
*(.init1)
*(.init1)
*(.init2)
- .init2 0x0000000000000706 0xc /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/crtatmega328p.o
+ .init2 0x0000000000000726 0xc /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/crtatmega328p.o
*(.init2)
*(.init3)
*(.init3)
*(.init4)
- .init4 0x0000000000000712 0x16 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_copy_data.o)
- 0x0000000000000712 __do_copy_data
- .init4 0x0000000000000728 0x10 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_clear_bss.o)
- 0x0000000000000728 __do_clear_bss
+ .init4 0x0000000000000732 0x16 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_copy_data.o)
+ 0x0000000000000732 __do_copy_data
+ .init4 0x0000000000000748 0x10 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_clear_bss.o)
+ 0x0000000000000748 __do_clear_bss
*(.init4)
*(.init5)
*(.init5)
*(.init6)
- .init6 0x0000000000000738 0x16 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_ctors.o)
- 0x0000000000000738 __do_global_ctors
+ .init6 0x0000000000000758 0x16 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_ctors.o)
+ 0x0000000000000758 __do_global_ctors
*(.init6)
*(.init7)
*(.init7)
*(.init8)
*(.init8)
*(.init9)
- .init9 0x000000000000074e 0x8 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/crtatmega328p.o
+ .init9 0x000000000000076e 0x8 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/crtatmega328p.o
*(.init9)
*(.text)
- .text 0x0000000000000756 0x4 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/crtatmega328p.o
- 0x0000000000000756 __vector_22
- 0x0000000000000756 __vector_1
- 0x0000000000000756 __vector_24
- 0x0000000000000756 __vector_12
- 0x0000000000000756 __bad_interrupt
- 0x0000000000000756 __vector_6
- 0x0000000000000756 __vector_3
- 0x0000000000000756 __vector_23
- 0x0000000000000756 __vector_25
- 0x0000000000000756 __vector_13
- 0x0000000000000756 __vector_17
- 0x0000000000000756 __vector_19
- 0x0000000000000756 __vector_7
- 0x0000000000000756 __vector_5
- 0x0000000000000756 __vector_4
- 0x0000000000000756 __vector_9
- 0x0000000000000756 __vector_2
- 0x0000000000000756 __vector_21
- 0x0000000000000756 __vector_15
- 0x0000000000000756 __vector_8
- 0x0000000000000756 __vector_14
- 0x0000000000000756 __vector_10
- 0x0000000000000756 __vector_18
- 0x0000000000000756 __vector_20
- 0x000000000000075a . = ALIGN (0x2)
+ .text 0x0000000000000776 0x4 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/crtatmega328p.o
+ 0x0000000000000776 __vector_22
+ 0x0000000000000776 __vector_1
+ 0x0000000000000776 __vector_24
+ 0x0000000000000776 __vector_12
+ 0x0000000000000776 __bad_interrupt
+ 0x0000000000000776 __vector_6
+ 0x0000000000000776 __vector_3
+ 0x0000000000000776 __vector_23
+ 0x0000000000000776 __vector_25
+ 0x0000000000000776 __vector_13
+ 0x0000000000000776 __vector_17
+ 0x0000000000000776 __vector_19
+ 0x0000000000000776 __vector_7
+ 0x0000000000000776 __vector_5
+ 0x0000000000000776 __vector_4
+ 0x0000000000000776 __vector_9
+ 0x0000000000000776 __vector_2
+ 0x0000000000000776 __vector_21
+ 0x0000000000000776 __vector_15
+ 0x0000000000000776 __vector_8
+ 0x0000000000000776 __vector_14
+ 0x0000000000000776 __vector_10
+ 0x0000000000000776 __vector_18
+ 0x0000000000000776 __vector_20
+ 0x000000000000077a . = ALIGN (0x2)
*(.text.*)
.text.startup.main
- 0x000000000000075a 0x22 Obj/main.o
- 0x000000000000075a main
+ 0x000000000000077a 0x22 Obj/main.o
+ 0x000000000000077a main
.text.startup._GLOBAL__sub_I_gb
- 0x000000000000077c 0x16 Obj/main.o
+ 0x000000000000079c 0x16 Obj/main.o
.text._Z8GameInitv
- 0x0000000000000792 0x8a Obj/Gameplay.o
- 0x0000000000000792 _Z8GameInitv
+ 0x00000000000007b2 0x8a Obj/Gameplay.o
+ 0x00000000000007b2 _Z8GameInitv
.text.startup._GLOBAL__sub_I_GamePlayers
- 0x000000000000081c 0x8 Obj/Gameplay.o
+ 0x000000000000083c 0x8 Obj/Gameplay.o
.text.exit._GLOBAL__sub_D_GamePlayers
- 0x0000000000000824 0x8 Obj/Gameplay.o
+ 0x0000000000000844 0x8 Obj/Gameplay.o
.text.SystemSetRandSeed
- 0x000000000000082c 0x38 Obj/System.o
- 0x000000000000082c SystemSetRandSeed
+ 0x000000000000084c 0x38 Obj/System.o
+ 0x000000000000084c SystemSetRandSeed
.text.SystemIncreaseGlobalTimer
- 0x0000000000000864 0x48 Obj/System.o
- 0x0000000000000864 SystemIncreaseGlobalTimer
+ 0x0000000000000884 0x48 Obj/System.o
+ 0x0000000000000884 SystemIncreaseGlobalTimer
.text.SystemRand
- 0x00000000000008ac 0x56 Obj/System.o
- 0x00000000000008ac SystemRand
+ 0x00000000000008cc 0x56 Obj/System.o
+ 0x00000000000008cc SystemRand
.text.SystemResetTimers
- 0x0000000000000902 0x28 Obj/System.o
- 0x0000000000000902 SystemResetTimers
+ 0x0000000000000922 0x28 Obj/System.o
+ 0x0000000000000922 SystemResetTimers
.text.SystemInit
- 0x000000000000092a 0x2e Obj/System.o
- 0x000000000000092a SystemInit
+ 0x000000000000094a 0x2e Obj/System.o
+ 0x000000000000094a SystemInit
.text.SystemCollisionCheck
- 0x0000000000000958 0x94 Obj/System.o
- 0x0000000000000958 SystemCollisionCheck
+ 0x0000000000000978 0x60 Obj/System.o
+ 0x0000000000000978 SystemCollisionCheck
.text._ZL21GfxIsInsideScreenAreaaahh
- 0x00000000000009ec 0x2a Obj/Gfx.o
- .text.GfxInit 0x0000000000000a16 0x10 Obj/Gfx.o
- 0x0000000000000a16 GfxInit
+ 0x00000000000009d8 0x2a Obj/Gfx.o
+ .text.GfxInit 0x0000000000000a02 0x10 Obj/Gfx.o
+ 0x0000000000000a02 GfxInit
.text.GfxRefreshNeeded
- 0x0000000000000a26 0x14 Obj/Gfx.o
- 0x0000000000000a26 GfxRefreshNeeded
+ 0x0000000000000a12 0x14 Obj/Gfx.o
+ 0x0000000000000a12 GfxRefreshNeeded
.text.GfxClearScreen
- 0x0000000000000a3a 0x12 Obj/Gfx.o
- 0x0000000000000a3a GfxClearScreen
+ 0x0000000000000a26 0x12 Obj/Gfx.o
+ 0x0000000000000a26 GfxClearScreen
.text.GfxIsSpriteInsideScreenArea
- 0x0000000000000a4c 0xe Obj/Gfx.o
- 0x0000000000000a4c GfxIsSpriteInsideScreenArea
+ 0x0000000000000a38 0xe Obj/Gfx.o
+ 0x0000000000000a38 GfxIsSpriteInsideScreenArea
.text.GfxDrawSprite
- 0x0000000000000a5a 0x5c Obj/Gfx.o
- 0x0000000000000a5a GfxDrawSprite
+ 0x0000000000000a46 0x5c Obj/Gfx.o
+ 0x0000000000000a46 GfxDrawSprite
.text.GfxGetWidthFromSpriteData
- 0x0000000000000ab6 0x6 Obj/Gfx.o
- 0x0000000000000ab6 GfxGetWidthFromSpriteData
+ 0x0000000000000aa2 0x6 Obj/Gfx.o
+ 0x0000000000000aa2 GfxGetWidthFromSpriteData
.text.GfxGetHeightFromSpriteData
- 0x0000000000000abc 0x8 Obj/Gfx.o
- 0x0000000000000abc GfxGetHeightFromSpriteData
+ 0x0000000000000aa8 0x8 Obj/Gfx.o
+ 0x0000000000000aa8 GfxGetHeightFromSpriteData
.text.GfxPrintText_Flash
- 0x0000000000000ac4 0xc Obj/Gfx.o
- 0x0000000000000ac4 GfxPrintText_Flash
+ 0x0000000000000ab0 0xc Obj/Gfx.o
+ 0x0000000000000ab0 GfxPrintText_Flash
.text.GfxPrintTextFont
- 0x0000000000000ad0 0x5a Obj/Gfx.o
- 0x0000000000000ad0 GfxPrintTextFont
+ 0x0000000000000abc 0x5a Obj/Gfx.o
+ 0x0000000000000abc GfxPrintTextFont
.text.GfxDrawCircle
- 0x0000000000000b2a 0x58 Obj/Gfx.o
- 0x0000000000000b2a GfxDrawCircle
+ 0x0000000000000b16 0x58 Obj/Gfx.o
+ 0x0000000000000b16 GfxDrawCircle
.text.GfxDrawRectangle
- 0x0000000000000b82 0x5e Obj/Gfx.o
- 0x0000000000000b82 GfxDrawRectangle
+ 0x0000000000000b6e 0x5e Obj/Gfx.o
+ 0x0000000000000b6e GfxDrawRectangle
.text.GfxFillRectangle
- 0x0000000000000be0 0x5e Obj/Gfx.o
- 0x0000000000000be0 GfxFillRectangle
+ 0x0000000000000bcc 0x5e Obj/Gfx.o
+ 0x0000000000000bcc GfxFillRectangle
.text.PadButtonReleased
- 0x0000000000000c3e 0x16 Obj/Pad.o
- 0x0000000000000c3e PadButtonReleased
+ 0x0000000000000c2a 0x16 Obj/Pad.o
+ 0x0000000000000c2a PadButtonReleased
.text.PadButtonPressedFrames
- 0x0000000000000c54 0x1c Obj/Pad.o
- 0x0000000000000c54 PadButtonPressedFrames
+ 0x0000000000000c40 0x1c Obj/Pad.o
+ 0x0000000000000c40 PadButtonPressedFrames
.text.PadButtonPressed
- 0x0000000000000c70 0x6 Obj/Pad.o
- 0x0000000000000c70 PadButtonPressed
+ 0x0000000000000c5c 0x6 Obj/Pad.o
+ 0x0000000000000c5c PadButtonPressed
.text.PadDirectionKeyPressed
- 0x0000000000000c76 0x30 Obj/Pad.o
- 0x0000000000000c76 PadDirectionKeyPressed
+ 0x0000000000000c62 0x30 Obj/Pad.o
+ 0x0000000000000c62 PadDirectionKeyPressed
.text.PadAnyKeyPressed
- 0x0000000000000ca6 0x20 Obj/Pad.o
- 0x0000000000000ca6 PadAnyKeyPressed
+ 0x0000000000000c92 0x20 Obj/Pad.o
+ 0x0000000000000c92 PadAnyKeyPressed
.text._ZN6PlayerC2Ev
- 0x0000000000000cc6 0x2 Obj/Player.o
- 0x0000000000000cc6 _ZN6PlayerC2Ev
- 0x0000000000000cc6 _ZN6PlayerC1Ev
+ 0x0000000000000cb2 0x2 Obj/Player.o
+ 0x0000000000000cb2 _ZN6PlayerC2Ev
+ 0x0000000000000cb2 _ZN6PlayerC1Ev
.text._ZN6PlayerD2Ev
- 0x0000000000000cc8 0x2 Obj/Player.o
- 0x0000000000000cc8 _ZN6PlayerD2Ev
- 0x0000000000000cc8 _ZN6PlayerD1Ev
+ 0x0000000000000cb4 0x2 Obj/Player.o
+ 0x0000000000000cb4 _ZN6PlayerD2Ev
+ 0x0000000000000cb4 _ZN6PlayerD1Ev
.text._ZN6Player10showHealthEh
- 0x0000000000000cca 0x76 Obj/Player.o
- 0x0000000000000cca _ZN6Player10showHealthEh
+ 0x0000000000000cb6 0x76 Obj/Player.o
+ 0x0000000000000cb6 _ZN6Player10showHealthEh
.text._ZN6Player13ShowResourcesEv
- 0x0000000000000d40 0xe8 Obj/Player.o
- 0x0000000000000d40 _ZN6Player13ShowResourcesEv
+ 0x0000000000000d2c 0x122 Obj/Player.o
+ 0x0000000000000d2c _ZN6Player13ShowResourcesEv
.text._ZN6Player10createUnitE8t_unitid16t_CollisionBlock
- 0x0000000000000e28 0xba Obj/Player.o
- 0x0000000000000e28 _ZN6Player10createUnitE8t_unitid16t_CollisionBlock
+ 0x0000000000000e4e 0x136 Obj/Player.o
+ 0x0000000000000e4e _ZN6Player10createUnitE8t_unitid16t_CollisionBlock
.text._ZN6Player4InitEv
- 0x0000000000000ee2 0x15e Obj/Player.o
- 0x0000000000000ee2 _ZN6Player4InitEv
+ 0x0000000000000f84 0x138 Obj/Player.o
+ 0x0000000000000f84 _ZN6Player4InitEv
.text._ZN6Player12GetCursorPosEv
- 0x0000000000001040 0x58 Obj/Player.o
- 0x0000000000001040 _ZN6Player12GetCursorPosEv
+ 0x00000000000010bc 0x58 Obj/Player.o
+ 0x00000000000010bc _ZN6Player12GetCursorPosEv
.text._ZN6Player21UnitBuildingSelectionEv
- 0x0000000000001098 0x114 Obj/Player.o
- 0x0000000000001098 _ZN6Player21UnitBuildingSelectionEv
+ 0x0000000000001114 0x118 Obj/Player.o
+ 0x0000000000001114 _ZN6Player21UnitBuildingSelectionEv
.text._ZN6Player14ButtonAPressedEv
- 0x00000000000011ac 0x22 Obj/Player.o
- 0x00000000000011ac _ZN6Player14ButtonAPressedEv
+ 0x000000000000122c 0x22 Obj/Player.o
+ 0x000000000000122c _ZN6Player14ButtonAPressedEv
.text._ZN6Player16ActionCreateUnitEP6t_Unit8t_unitid
- 0x00000000000011ce 0xd4 Obj/Player.o
- 0x00000000000011ce _ZN6Player16ActionCreateUnitEP6t_Unit8t_unitid
+ 0x000000000000124e 0xd8 Obj/Player.o
+ 0x000000000000124e _ZN6Player16ActionCreateUnitEP6t_Unit8t_unitid
.text._ZN6Player20ActionCreateBuildingEP6t_Unit8t_unitid
- 0x00000000000012a2 0x4e Obj/Player.o
- 0x00000000000012a2 _ZN6Player20ActionCreateBuildingEP6t_Unit8t_unitid
+ 0x0000000000001326 0x4e Obj/Player.o
+ 0x0000000000001326 _ZN6Player20ActionCreateBuildingEP6t_Unit8t_unitid
.text._ZN6Player15ButtonAReleasedEv
- 0x00000000000012f0 0xba Obj/Player.o
- 0x00000000000012f0 _ZN6Player15ButtonAReleasedEv
+ 0x0000000000001374 0xd4 Obj/Player.o
+ 0x0000000000001374 _ZN6Player15ButtonAReleasedEv
.text._ZN6Player14ButtonBPressedEv
- 0x00000000000013aa 0x52 Obj/Player.o
- 0x00000000000013aa _ZN6Player14ButtonBPressedEv
+ 0x0000000000001448 0x52 Obj/Player.o
+ 0x0000000000001448 _ZN6Player14ButtonBPressedEv
.text._ZN6Player15ButtonBReleasedEv
- 0x00000000000013fc 0x90 Obj/Player.o
- 0x00000000000013fc _ZN6Player15ButtonBReleasedEv
+ 0x000000000000149a 0x90 Obj/Player.o
+ 0x000000000000149a _ZN6Player15ButtonBReleasedEv
.text._ZN6Player18ButtonLeftReleasedEv
- 0x000000000000148c 0x7c Obj/Player.o
- 0x000000000000148c _ZN6Player18ButtonLeftReleasedEv
+ 0x000000000000152a 0x7e Obj/Player.o
+ 0x000000000000152a _ZN6Player18ButtonLeftReleasedEv
.text._ZN6Player28IncreaseShowActionsMenuIndexEv
- 0x0000000000001508 0x7c Obj/Player.o
- 0x0000000000001508 _ZN6Player28IncreaseShowActionsMenuIndexEv
+ 0x00000000000015a8 0x7e Obj/Player.o
+ 0x00000000000015a8 _ZN6Player28IncreaseShowActionsMenuIndexEv
.text._ZN6Player11ActionsMenuEv
- 0x0000000000001584 0x8a Obj/Player.o
- 0x0000000000001584 _ZN6Player11ActionsMenuEv
+ 0x0000000000001626 0x8c Obj/Player.o
+ 0x0000000000001626 _ZN6Player11ActionsMenuEv
.text._ZN6Player11DrawHandlerEv
- 0x000000000000160e 0xf8 Obj/Player.o
- 0x000000000000160e _ZN6Player11DrawHandlerEv
+ 0x00000000000016b2 0xf8 Obj/Player.o
+ 0x00000000000016b2 _ZN6Player11DrawHandlerEv
.text._ZN6Player13ButtonHandlerEv
- 0x0000000000001706 0x90 Obj/Player.o
- 0x0000000000001706 _ZN6Player13ButtonHandlerEv
+ 0x00000000000017aa 0x90 Obj/Player.o
+ 0x00000000000017aa _ZN6Player13ButtonHandlerEv
.text._ZN6Player7HandlerEv
- 0x0000000000001796 0x44 Obj/Player.o
- 0x0000000000001796 _ZN6Player7HandlerEv
+ 0x000000000000183a 0x44 Obj/Player.o
+ 0x000000000000183a _ZN6Player7HandlerEv
.text.CameraInit
- 0x00000000000017da 0x16 Obj/Camera.o
- 0x00000000000017da CameraInit
+ 0x000000000000187e 0x16 Obj/Camera.o
+ 0x000000000000187e CameraInit
.text.CameraApplyCoordinatesToCoordinates
- 0x00000000000017f0 0x66 Obj/Camera.o
- 0x00000000000017f0 CameraApplyCoordinatesToCoordinates
+ 0x0000000000001894 0x66 Obj/Camera.o
+ 0x0000000000001894 CameraApplyCoordinatesToCoordinates
.text.CameraApplyCoordinatesToSprite
- 0x0000000000001856 0x14 Obj/Camera.o
- 0x0000000000001856 CameraApplyCoordinatesToSprite
+ 0x00000000000018fa 0x14 Obj/Camera.o
+ 0x00000000000018fa CameraApplyCoordinatesToSprite
.text.CameraHandler
- 0x000000000000186a 0x13c Obj/Camera.o
- 0x000000000000186a CameraHandler
+ 0x000000000000190e 0x13c Obj/Camera.o
+ 0x000000000000190e CameraHandler
.text.CameraSetLock
- 0x00000000000019a6 0x6 Obj/Camera.o
- 0x00000000000019a6 CameraSetLock
+ 0x0000000000001a4a 0x6 Obj/Camera.o
+ 0x0000000000001a4a CameraSetLock
.text.UnitInit
- 0x00000000000019ac 0xe8 Obj/Unit.o
- 0x00000000000019ac UnitInit
+ 0x0000000000001a50 0x128 Obj/Unit.o
+ 0x0000000000001a50 UnitInit
.text.UnitGetWidthFromID
- 0x0000000000001a94 0x14 Obj/Unit.o
- 0x0000000000001a94 UnitGetWidthFromID
+ 0x0000000000001b78 0x18 Obj/Unit.o
+ 0x0000000000001b78 UnitGetWidthFromID
.text.UnitGetHeightFromID
- 0x0000000000001aa8 0x14 Obj/Unit.o
- 0x0000000000001aa8 UnitGetHeightFromID
+ 0x0000000000001b90 0x18 Obj/Unit.o
+ 0x0000000000001b90 UnitGetHeightFromID
.text.UnitDraw
- 0x0000000000001abc 0x23c Obj/Unit.o
- 0x0000000000001abc UnitDraw
+ 0x0000000000001ba8 0x242 Obj/Unit.o
+ 0x0000000000001ba8 UnitDraw
.text.UnitGetHpFromID
- 0x0000000000001cf8 0xc Obj/Unit.o
- 0x0000000000001cf8 UnitGetHpFromID
+ 0x0000000000001dea 0xa Obj/Unit.o
+ 0x0000000000001dea UnitGetHpFromID
+ .text.UnitNeededResourcesFromID
+ 0x0000000000001df4 0x4e Obj/Unit.o
+ 0x0000000000001df4 UnitNeededResourcesFromID
.text.UnitMoveTo
- 0x0000000000001d04 0x10 Obj/Unit.o
- 0x0000000000001d04 UnitMoveTo
+ 0x0000000000001e42 0x10 Obj/Unit.o
+ 0x0000000000001e42 UnitMoveTo
.text.UnitHandler
- 0x0000000000001d14 0x24c Obj/Unit.o
- 0x0000000000001d14 UnitHandler
+ 0x0000000000001e52 0x236 Obj/Unit.o
+ 0x0000000000001e52 UnitHandler
.text.UnitGetAvailableActions
- 0x0000000000001f60 0x10 Obj/Unit.o
- 0x0000000000001f60 UnitGetAvailableActions
+ 0x0000000000002088 0x10 Obj/Unit.o
+ 0x0000000000002088 UnitGetAvailableActions
.text.UnitGetActionString
- 0x0000000000001f70 0x10 Obj/Unit.o
- 0x0000000000001f70 UnitGetActionString
+ 0x0000000000002098 0x10 Obj/Unit.o
+ 0x0000000000002098 UnitGetActionString
.text._Z17MenuGetPlayerNameP6Player
- 0x0000000000001f80 0x18 Obj/Menu.o
- 0x0000000000001f80 _Z17MenuGetPlayerNameP6Player
+ 0x00000000000020a8 0x18 Obj/Menu.o
+ 0x00000000000020a8 _Z17MenuGetPlayerNameP6Player
.text._Z8MainMenuv
- 0x0000000000001f98 0x20 Obj/Menu.o
- 0x0000000000001f98 _Z8MainMenuv
+ 0x00000000000020c0 0x20 Obj/Menu.o
+ 0x00000000000020c0 _Z8MainMenuv
.text._ZN7Buttons5beginEv
- 0x0000000000001fb8 0x20 ../lib/libgamebuino.a(Buttons.o)
- 0x0000000000001fb8 _ZN7Buttons5beginEv
+ 0x00000000000020e0 0x20 ../lib/libgamebuino.a(Buttons.o)
+ 0x00000000000020e0 _ZN7Buttons5beginEv
.text._ZN7Buttons6updateEv
- 0x0000000000001fd8 0x5a ../lib/libgamebuino.a(Buttons.o)
- 0x0000000000001fd8 _ZN7Buttons6updateEv
+ 0x0000000000002100 0x5a ../lib/libgamebuino.a(Buttons.o)
+ 0x0000000000002100 _ZN7Buttons6updateEv
.text._ZN7Buttons7pressedEh
- 0x0000000000002032 0x12 ../lib/libgamebuino.a(Buttons.o)
- 0x0000000000002032 _ZN7Buttons7pressedEh
+ 0x000000000000215a 0x12 ../lib/libgamebuino.a(Buttons.o)
+ 0x000000000000215a _ZN7Buttons7pressedEh
.text._ZN7Buttons8releasedEh
- 0x0000000000002044 0x12 ../lib/libgamebuino.a(Buttons.o)
- 0x0000000000002044 _ZN7Buttons8releasedEh
+ 0x000000000000216c 0x12 ../lib/libgamebuino.a(Buttons.o)
+ 0x000000000000216c _ZN7Buttons8releasedEh
.text._ZN7Buttons6repeatEhh
- 0x0000000000002056 0x2c ../lib/libgamebuino.a(Buttons.o)
- 0x0000000000002056 _ZN7Buttons6repeatEhh
+ 0x000000000000217e 0x2c ../lib/libgamebuino.a(Buttons.o)
+ 0x000000000000217e _ZN7Buttons6repeatEhh
.text._ZN7Buttons8timeHeldEh
- 0x0000000000002082 0x10 ../lib/libgamebuino.a(Buttons.o)
- 0x0000000000002082 _ZN7Buttons8timeHeldEh
+ 0x00000000000021aa 0x10 ../lib/libgamebuino.a(Buttons.o)
+ 0x00000000000021aa _ZN7Buttons8timeHeldEh
.text._ZN8SPIClass8transferEh
- 0x0000000000002092 0xc ../lib/libgamebuino.a(Display.o)
- 0x0000000000002092 _ZN8SPIClass8transferEh
+ 0x00000000000021ba 0xc ../lib/libgamebuino.a(Display.o)
+ 0x00000000000021ba _ZN8SPIClass8transferEh
.text._ZN7Display9drawPixelEaa
- 0x000000000000209e 0x8e ../lib/libgamebuino.a(Display.o)
- 0x000000000000209e _ZN7Display9drawPixelEaa
+ 0x00000000000021c6 0x8e ../lib/libgamebuino.a(Display.o)
+ 0x00000000000021c6 _ZN7Display9drawPixelEaa
.text._ZN7Display7commandEh
- 0x000000000000212c 0x3c ../lib/libgamebuino.a(Display.o)
- 0x000000000000212c _ZN7Display7commandEh
+ 0x0000000000002254 0x3c ../lib/libgamebuino.a(Display.o)
+ 0x0000000000002254 _ZN7Display7commandEh
.text._ZN7Display5clearEv
- 0x0000000000002168 0x22 ../lib/libgamebuino.a(Display.o)
- 0x0000000000002168 _ZN7Display5clearEv
+ 0x0000000000002290 0x22 ../lib/libgamebuino.a(Display.o)
+ 0x0000000000002290 _ZN7Display5clearEv
.text._ZN7Display10fillScreenEh
- 0x000000000000218a 0x10 ../lib/libgamebuino.a(Display.o)
- 0x000000000000218a _ZN7Display10fillScreenEh
+ 0x00000000000022b2 0x10 ../lib/libgamebuino.a(Display.o)
+ 0x00000000000022b2 _ZN7Display10fillScreenEh
.text._ZN7Display6updateEv
- 0x000000000000219a 0x8a ../lib/libgamebuino.a(Display.o)
- 0x000000000000219a _ZN7Display6updateEv
+ 0x00000000000022c2 0x8a ../lib/libgamebuino.a(Display.o)
+ 0x00000000000022c2 _ZN7Display6updateEv
.text._ZN7Display8setColorEa
- 0x0000000000002224 0x8 ../lib/libgamebuino.a(Display.o)
- 0x0000000000002224 _ZN7Display8setColorEa
+ 0x000000000000234c 0x8 ../lib/libgamebuino.a(Display.o)
+ 0x000000000000234c _ZN7Display8setColorEa
.text._ZN7Display8setColorEaa
- 0x000000000000222c 0x8 ../lib/libgamebuino.a(Display.o)
- 0x000000000000222c _ZN7Display8setColorEaa
+ 0x0000000000002354 0x8 ../lib/libgamebuino.a(Display.o)
+ 0x0000000000002354 _ZN7Display8setColorEaa
.text._ZN7Display13drawFastVLineEaaa
- 0x0000000000002234 0x38 ../lib/libgamebuino.a(Display.o)
- 0x0000000000002234 _ZN7Display13drawFastVLineEaaa
+ 0x000000000000235c 0x38 ../lib/libgamebuino.a(Display.o)
+ 0x000000000000235c _ZN7Display13drawFastVLineEaaa
.text._ZN7Display13drawFastHLineEaaa
- 0x000000000000226c 0x38 ../lib/libgamebuino.a(Display.o)
- 0x000000000000226c _ZN7Display13drawFastHLineEaaa
+ 0x0000000000002394 0x38 ../lib/libgamebuino.a(Display.o)
+ 0x0000000000002394 _ZN7Display13drawFastHLineEaaa
.text._ZN7Display8drawRectEaaaa
- 0x00000000000022a4 0x50 ../lib/libgamebuino.a(Display.o)
- 0x00000000000022a4 _ZN7Display8drawRectEaaaa
+ 0x00000000000023cc 0x50 ../lib/libgamebuino.a(Display.o)
+ 0x00000000000023cc _ZN7Display8drawRectEaaaa
.text._ZN7Display8fillRectEaaaa
- 0x00000000000022f4 0x52 ../lib/libgamebuino.a(Display.o)
- 0x00000000000022f4 _ZN7Display8fillRectEaaaa
+ 0x000000000000241c 0x52 ../lib/libgamebuino.a(Display.o)
+ 0x000000000000241c _ZN7Display8fillRectEaaaa
.text._ZN7Display10drawCircleEaaa
- 0x0000000000002346 0x100 ../lib/libgamebuino.a(Display.o)
- 0x0000000000002346 _ZN7Display10drawCircleEaaa
+ 0x000000000000246e 0x100 ../lib/libgamebuino.a(Display.o)
+ 0x000000000000246e _ZN7Display10drawCircleEaaa
.text._ZN7Display16drawCircleHelperEaaah
- 0x0000000000002446 0xfc ../lib/libgamebuino.a(Display.o)
- 0x0000000000002446 _ZN7Display16drawCircleHelperEaaah
+ 0x000000000000256e 0xfc ../lib/libgamebuino.a(Display.o)
+ 0x000000000000256e _ZN7Display16drawCircleHelperEaaah
.text._ZN7Display16fillCircleHelperEaaaha
- 0x0000000000002542 0xca ../lib/libgamebuino.a(Display.o)
- 0x0000000000002542 _ZN7Display16fillCircleHelperEaaaha
+ 0x000000000000266a 0xca ../lib/libgamebuino.a(Display.o)
+ 0x000000000000266a _ZN7Display16fillCircleHelperEaaaha
.text._ZN7Display13drawRoundRectEaaaaa
- 0x000000000000260c 0xbe ../lib/libgamebuino.a(Display.o)
- 0x000000000000260c _ZN7Display13drawRoundRectEaaaaa
+ 0x0000000000002734 0xbe ../lib/libgamebuino.a(Display.o)
+ 0x0000000000002734 _ZN7Display13drawRoundRectEaaaaa
.text._ZN7Display13fillRoundRectEaaaaa
- 0x00000000000026ca 0x6e ../lib/libgamebuino.a(Display.o)
- 0x00000000000026ca _ZN7Display13fillRoundRectEaaaaa
+ 0x00000000000027f2 0x6e ../lib/libgamebuino.a(Display.o)
+ 0x00000000000027f2 _ZN7Display13fillRoundRectEaaaaa
.text._ZN7Display10drawBitmapEaaPKh
- 0x0000000000002738 0x280 ../lib/libgamebuino.a(Display.o)
- 0x0000000000002738 _ZN7Display10drawBitmapEaaPKh
+ 0x0000000000002860 0x280 ../lib/libgamebuino.a(Display.o)
+ 0x0000000000002860 _ZN7Display10drawBitmapEaaPKh
.text._ZN7Display10drawBitmapEaaPKhhh
- 0x00000000000029b8 0x1ce ../lib/libgamebuino.a(Display.o)
- 0x00000000000029b8 _ZN7Display10drawBitmapEaaPKhhh
+ 0x0000000000002ae0 0x1ce ../lib/libgamebuino.a(Display.o)
+ 0x0000000000002ae0 _ZN7Display10drawBitmapEaaPKhhh
.text._ZN7Display7setFontEPKh
- 0x0000000000002b86 0x28 ../lib/libgamebuino.a(Display.o)
- 0x0000000000002b86 _ZN7Display7setFontEPKh
+ 0x0000000000002cae 0x28 ../lib/libgamebuino.a(Display.o)
+ 0x0000000000002cae _ZN7Display7setFontEPKh
.text._ZN7Display5beginEaaaaa
- 0x0000000000002bae 0x180 ../lib/libgamebuino.a(Display.o)
- 0x0000000000002bae _ZN7Display5beginEaaaaa
+ 0x0000000000002cd6 0x180 ../lib/libgamebuino.a(Display.o)
+ 0x0000000000002cd6 _ZN7Display5beginEaaaaa
.text._ZN7Display8drawCharEaahh
- 0x0000000000002d2e 0x15c ../lib/libgamebuino.a(Display.o)
- 0x0000000000002d2e _ZN7Display8drawCharEaahh
+ 0x0000000000002e56 0x15c ../lib/libgamebuino.a(Display.o)
+ 0x0000000000002e56 _ZN7Display8drawCharEaahh
.text._ZN7Display5writeEh
- 0x0000000000002e8a 0x66 ../lib/libgamebuino.a(Display.o)
- 0x0000000000002e8a _ZN7Display5writeEh
+ 0x0000000000002fb2 0x66 ../lib/libgamebuino.a(Display.o)
+ 0x0000000000002fb2 _ZN7Display5writeEh
.text._ZN9Gamebuino5popupEPK19__FlashStringHelperh
- 0x0000000000002ef0 0x16 ../lib/libgamebuino.a(Gamebuino.o)
- 0x0000000000002ef0 _ZN9Gamebuino5popupEPK19__FlashStringHelperh
+ 0x0000000000003018 0x16 ../lib/libgamebuino.a(Gamebuino.o)
+ 0x0000000000003018 _ZN9Gamebuino5popupEPK19__FlashStringHelperh
.text._ZN9Gamebuino11updatePopupEv
- 0x0000000000002f06 0xda ../lib/libgamebuino.a(Gamebuino.o)
- 0x0000000000002f06 _ZN9Gamebuino11updatePopupEv
+ 0x000000000000302e 0xda ../lib/libgamebuino.a(Gamebuino.o)
+ 0x000000000000302e _ZN9Gamebuino11updatePopupEv
.text._ZN9Gamebuino14displayBatteryEv
- 0x0000000000002fe0 0x160 ../lib/libgamebuino.a(Gamebuino.o)
- 0x0000000000002fe0 _ZN9Gamebuino14displayBatteryEv
+ 0x0000000000003108 0x160 ../lib/libgamebuino.a(Gamebuino.o)
+ 0x0000000000003108 _ZN9Gamebuino14displayBatteryEv
.text._ZN9Gamebuino6updateEv
- 0x0000000000003140 0x170 ../lib/libgamebuino.a(Gamebuino.o)
- 0x0000000000003140 _ZN9Gamebuino6updateEv
+ 0x0000000000003268 0x170 ../lib/libgamebuino.a(Gamebuino.o)
+ 0x0000000000003268 _ZN9Gamebuino6updateEv
.text._ZN9Gamebuino4menuEPKPKch
- 0x00000000000032b0 0x2a0 ../lib/libgamebuino.a(Gamebuino.o)
- 0x00000000000032b0 _ZN9Gamebuino4menuEPKPKch
+ 0x00000000000033d8 0x2a0 ../lib/libgamebuino.a(Gamebuino.o)
+ 0x00000000000033d8 _ZN9Gamebuino4menuEPKPKch
.text._ZN9Gamebuino10changeGameEv
- 0x0000000000003550 0x7a ../lib/libgamebuino.a(Gamebuino.o)
- 0x0000000000003550 _ZN9Gamebuino10changeGameEv
+ 0x0000000000003678 0x7a ../lib/libgamebuino.a(Gamebuino.o)
+ 0x0000000000003678 _ZN9Gamebuino10changeGameEv
.text._ZN9Gamebuino11titleScreenEPK19__FlashStringHelperPKh
- 0x00000000000035ca 0x270 ../lib/libgamebuino.a(Gamebuino.o)
- 0x00000000000035ca _ZN9Gamebuino11titleScreenEPK19__FlashStringHelperPKh
+ 0x00000000000036f2 0x270 ../lib/libgamebuino.a(Gamebuino.o)
+ 0x00000000000036f2 _ZN9Gamebuino11titleScreenEPK19__FlashStringHelperPKh
.text._ZN9Gamebuino11titleScreenEPK19__FlashStringHelper
- 0x000000000000383a 0x8 ../lib/libgamebuino.a(Gamebuino.o)
- 0x000000000000383a _ZN9Gamebuino11titleScreenEPK19__FlashStringHelper
+ 0x0000000000003962 0x8 ../lib/libgamebuino.a(Gamebuino.o)
+ 0x0000000000003962 _ZN9Gamebuino11titleScreenEPK19__FlashStringHelper
.text._ZN9Gamebuino17settingsAvailableEv
- 0x0000000000003842 0x14 ../lib/libgamebuino.a(Gamebuino.o)
- 0x0000000000003842 _ZN9Gamebuino17settingsAvailableEv
+ 0x000000000000396a 0x14 ../lib/libgamebuino.a(Gamebuino.o)
+ 0x000000000000396a _ZN9Gamebuino17settingsAvailableEv
.text._ZN9Gamebuino12readSettingsEv
- 0x0000000000003856 0xde ../lib/libgamebuino.a(Gamebuino.o)
- 0x0000000000003856 _ZN9Gamebuino12readSettingsEv
+ 0x000000000000397e 0xde ../lib/libgamebuino.a(Gamebuino.o)
+ 0x000000000000397e _ZN9Gamebuino12readSettingsEv
.text._ZN9Gamebuino5beginEv
- 0x0000000000003934 0xb6 ../lib/libgamebuino.a(Gamebuino.o)
- 0x0000000000003934 _ZN9Gamebuino5beginEv
+ 0x0000000000003a5c 0xb6 ../lib/libgamebuino.a(Gamebuino.o)
+ 0x0000000000003a5c _ZN9Gamebuino5beginEv
.text._ZN9Gamebuino14getDefaultNameEPc
- 0x00000000000039ea 0x2c ../lib/libgamebuino.a(Gamebuino.o)
- 0x00000000000039ea _ZN9Gamebuino14getDefaultNameEPc
+ 0x0000000000003b12 0x2c ../lib/libgamebuino.a(Gamebuino.o)
+ 0x0000000000003b12 _ZN9Gamebuino14getDefaultNameEPc
.text._ZN5Sound7commandEhhah.part.0
- 0x0000000000003a16 0x66 ../lib/libgamebuino.a(Sound.o)
+ 0x0000000000003b3e 0x66 ../lib/libgamebuino.a(Sound.o)
.text._ZN5Sound5beginEv
- 0x0000000000003a7c 0x68 ../lib/libgamebuino.a(Sound.o)
- 0x0000000000003a7c _ZN5Sound5beginEv
+ 0x0000000000003ba4 0x68 ../lib/libgamebuino.a(Sound.o)
+ 0x0000000000003ba4 _ZN5Sound5beginEv
.text._ZN5Sound7commandEhhah
- 0x0000000000003ae4 0x5e ../lib/libgamebuino.a(Sound.o)
- 0x0000000000003ae4 _ZN5Sound7commandEhhah
+ 0x0000000000003c0c 0x5e ../lib/libgamebuino.a(Sound.o)
+ 0x0000000000003c0c _ZN5Sound7commandEhhah
.text._ZN5Sound12updateOutputEv
- 0x0000000000003b42 0x16 ../lib/libgamebuino.a(Sound.o)
- 0x0000000000003b42 _ZN5Sound12updateOutputEv
+ 0x0000000000003c6a 0x16 ../lib/libgamebuino.a(Sound.o)
+ 0x0000000000003c6a _ZN5Sound12updateOutputEv
.text._ZN5Sound8stopNoteEh.part.2
- 0x0000000000003b58 0x1c ../lib/libgamebuino.a(Sound.o)
+ 0x0000000000003c80 0x1c ../lib/libgamebuino.a(Sound.o)
.text._ZN5Sound11playPatternEPKjh.part.5
- 0x0000000000003b74 0x30 ../lib/libgamebuino.a(Sound.o)
+ 0x0000000000003c9c 0x30 ../lib/libgamebuino.a(Sound.o)
.text._ZN5Sound11playPatternEPKjh
- 0x0000000000003ba4 0xa ../lib/libgamebuino.a(Sound.o)
- 0x0000000000003ba4 _ZN5Sound11playPatternEPKjh
+ 0x0000000000003ccc 0xa ../lib/libgamebuino.a(Sound.o)
+ 0x0000000000003ccc _ZN5Sound11playPatternEPKjh
.text._ZN5Sound11updateTrackEh
- 0x0000000000003bae 0x5c ../lib/libgamebuino.a(Sound.o)
- 0x0000000000003bae _ZN5Sound11updateTrackEh
+ 0x0000000000003cd6 0x5c ../lib/libgamebuino.a(Sound.o)
+ 0x0000000000003cd6 _ZN5Sound11updateTrackEh
.text._ZN5Sound11updateTrackEv
- 0x0000000000003c0a 0x6 ../lib/libgamebuino.a(Sound.o)
- 0x0000000000003c0a _ZN5Sound11updateTrackEv
+ 0x0000000000003d32 0x6 ../lib/libgamebuino.a(Sound.o)
+ 0x0000000000003d32 _ZN5Sound11updateTrackEv
.text._ZN5Sound13updatePatternEh
- 0x0000000000003c10 0xe0 ../lib/libgamebuino.a(Sound.o)
- 0x0000000000003c10 _ZN5Sound13updatePatternEh
+ 0x0000000000003d38 0xe0 ../lib/libgamebuino.a(Sound.o)
+ 0x0000000000003d38 _ZN5Sound13updatePatternEh
.text._ZN5Sound13updatePatternEv
- 0x0000000000003cf0 0x6 ../lib/libgamebuino.a(Sound.o)
- 0x0000000000003cf0 _ZN5Sound13updatePatternEv
+ 0x0000000000003e18 0x6 ../lib/libgamebuino.a(Sound.o)
+ 0x0000000000003e18 _ZN5Sound13updatePatternEv
.text._ZN5Sound10updateNoteEh
- 0x0000000000003cf6 0x182 ../lib/libgamebuino.a(Sound.o)
- 0x0000000000003cf6 _ZN5Sound10updateNoteEh
+ 0x0000000000003e1e 0x182 ../lib/libgamebuino.a(Sound.o)
+ 0x0000000000003e1e _ZN5Sound10updateNoteEh
.text._ZN5Sound10updateNoteEv
- 0x0000000000003e78 0x6 ../lib/libgamebuino.a(Sound.o)
- 0x0000000000003e78 _ZN5Sound10updateNoteEv
+ 0x0000000000003fa0 0x6 ../lib/libgamebuino.a(Sound.o)
+ 0x0000000000003fa0 _ZN5Sound10updateNoteEv
.text._ZN5Sound11stopPatternEh
- 0x0000000000003e7e 0x16 ../lib/libgamebuino.a(Sound.o)
- 0x0000000000003e7e _ZN5Sound11stopPatternEh
+ 0x0000000000003fa6 0x16 ../lib/libgamebuino.a(Sound.o)
+ 0x0000000000003fa6 _ZN5Sound11stopPatternEh
.text._ZN5Sound11stopPatternEv
- 0x0000000000003e94 0x12 ../lib/libgamebuino.a(Sound.o)
- 0x0000000000003e94 _ZN5Sound11stopPatternEv
+ 0x0000000000003fbc 0x12 ../lib/libgamebuino.a(Sound.o)
+ 0x0000000000003fbc _ZN5Sound11stopPatternEv
.text._ZN5Sound14generateOutputEv
- 0x0000000000003ea6 0x54 ../lib/libgamebuino.a(Sound.o)
- 0x0000000000003ea6 _ZN5Sound14generateOutputEv
+ 0x0000000000003fce 0x54 ../lib/libgamebuino.a(Sound.o)
+ 0x0000000000003fce _ZN5Sound14generateOutputEv
.text.__vector_11
- 0x0000000000003efa 0x48 ../lib/libgamebuino.a(Sound.o)
- 0x0000000000003efa __vector_11
+ 0x0000000000004022 0x48 ../lib/libgamebuino.a(Sound.o)
+ 0x0000000000004022 __vector_11
.text._ZN5Sound6playOKEv
- 0x0000000000003f42 0x8 ../lib/libgamebuino.a(Sound.o)
- 0x0000000000003f42 _ZN5Sound6playOKEv
+ 0x000000000000406a 0x8 ../lib/libgamebuino.a(Sound.o)
+ 0x000000000000406a _ZN5Sound6playOKEv
.text._ZN5Sound10playCancelEv
- 0x0000000000003f4a 0x8 ../lib/libgamebuino.a(Sound.o)
- 0x0000000000003f4a _ZN5Sound10playCancelEv
+ 0x0000000000004072 0x8 ../lib/libgamebuino.a(Sound.o)
+ 0x0000000000004072 _ZN5Sound10playCancelEv
.text._ZN5Sound8playTickEv
- 0x0000000000003f52 0x8 ../lib/libgamebuino.a(Sound.o)
- 0x0000000000003f52 _ZN5Sound8playTickEv
+ 0x000000000000407a 0x8 ../lib/libgamebuino.a(Sound.o)
+ 0x000000000000407a _ZN5Sound8playTickEv
.text._ZN5Sound9setVolumeEa
- 0x0000000000003f5a 0x18 ../lib/libgamebuino.a(Sound.o)
- 0x0000000000003f5a _ZN5Sound9setVolumeEa
+ 0x0000000000004082 0x18 ../lib/libgamebuino.a(Sound.o)
+ 0x0000000000004082 _ZN5Sound9setVolumeEa
.text._ZN9Backlight5beginEv
- 0x0000000000003f72 0x8 ../lib/libgamebuino.a(Backlight.o)
- 0x0000000000003f72 _ZN9Backlight5beginEv
+ 0x000000000000409a 0x8 ../lib/libgamebuino.a(Backlight.o)
+ 0x000000000000409a _ZN9Backlight5beginEv
.text._ZN9Backlight3setEh
- 0x0000000000003f7a 0x8 ../lib/libgamebuino.a(Backlight.o)
- 0x0000000000003f7a _ZN9Backlight3setEh
+ 0x00000000000040a2 0x8 ../lib/libgamebuino.a(Backlight.o)
+ 0x00000000000040a2 _ZN9Backlight3setEh
.text._ZN9Backlight6updateEv
- 0x0000000000003f82 0xbe ../lib/libgamebuino.a(Backlight.o)
- 0x0000000000003f82 _ZN9Backlight6updateEv
+ 0x00000000000040aa 0xbe ../lib/libgamebuino.a(Backlight.o)
+ 0x00000000000040aa _ZN9Backlight6updateEv
.text._ZN7Battery5beginEv
- 0x0000000000004040 0x14 ../lib/libgamebuino.a(Battery.o)
- 0x0000000000004040 _ZN7Battery5beginEv
+ 0x0000000000004168 0x14 ../lib/libgamebuino.a(Battery.o)
+ 0x0000000000004168 _ZN7Battery5beginEv
.text._ZN7Battery6updateEv
- 0x0000000000004054 0x70 ../lib/libgamebuino.a(Battery.o)
- 0x0000000000004054 _ZN7Battery6updateEv
+ 0x000000000000417c 0x70 ../lib/libgamebuino.a(Battery.o)
+ 0x000000000000417c _ZN7Battery6updateEv
.text.__vector_16
- 0x00000000000040c4 0x94 ../lib/libarduino.a(wiring.o)
- 0x00000000000040c4 __vector_16
- .text.millis 0x0000000000004158 0x18 ../lib/libarduino.a(wiring.o)
- 0x0000000000004158 millis
- .text.micros 0x0000000000004170 0x4a ../lib/libarduino.a(wiring.o)
- 0x0000000000004170 micros
- .text.delay 0x00000000000041ba 0x4c ../lib/libarduino.a(wiring.o)
- 0x00000000000041ba delay
- .text.init 0x0000000000004206 0x76 ../lib/libarduino.a(wiring.o)
- 0x0000000000004206 init
+ 0x00000000000041ec 0x94 ../lib/libarduino.a(wiring.o)
+ 0x00000000000041ec __vector_16
+ .text.millis 0x0000000000004280 0x18 ../lib/libarduino.a(wiring.o)
+ 0x0000000000004280 millis
+ .text.micros 0x0000000000004298 0x4a ../lib/libarduino.a(wiring.o)
+ 0x0000000000004298 micros
+ .text.delay 0x00000000000042e2 0x4c ../lib/libarduino.a(wiring.o)
+ 0x00000000000042e2 delay
+ .text.init 0x000000000000432e 0x76 ../lib/libarduino.a(wiring.o)
+ 0x000000000000432e init
.text.analogRead
- 0x000000000000427c 0x36 ../lib/libarduino.a(wiring_analog.o)
- 0x000000000000427c analogRead
+ 0x00000000000043a4 0x36 ../lib/libarduino.a(wiring_analog.o)
+ 0x00000000000043a4 analogRead
.text.analogWrite
- 0x00000000000042b2 0xba ../lib/libarduino.a(wiring_analog.o)
- 0x00000000000042b2 analogWrite
+ 0x00000000000043da 0xba ../lib/libarduino.a(wiring_analog.o)
+ 0x00000000000043da analogWrite
.text.turnOffPWM
- 0x000000000000436c 0x52 ../lib/libarduino.a(wiring_digital.o)
- .text.pinMode 0x00000000000043be 0x78 ../lib/libarduino.a(wiring_digital.o)
- 0x00000000000043be pinMode
+ 0x0000000000004494 0x52 ../lib/libarduino.a(wiring_digital.o)
+ .text.pinMode 0x00000000000044e6 0x78 ../lib/libarduino.a(wiring_digital.o)
+ 0x00000000000044e6 pinMode
.text.digitalWrite
- 0x0000000000004436 0x5c ../lib/libarduino.a(wiring_digital.o)
- 0x0000000000004436 digitalWrite
+ 0x000000000000455e 0x5c ../lib/libarduino.a(wiring_digital.o)
+ 0x000000000000455e digitalWrite
.text.digitalRead
- 0x0000000000004492 0x52 ../lib/libarduino.a(wiring_digital.o)
- 0x0000000000004492 digitalRead
+ 0x00000000000045ba 0x52 ../lib/libarduino.a(wiring_digital.o)
+ 0x00000000000045ba digitalRead
.text._ZN5Print5writeEPKhj
- 0x00000000000044e4 0x50 ../lib/libarduino.a(Print.o)
- 0x00000000000044e4 _ZN5Print5writeEPKhj
+ 0x000000000000460c 0x50 ../lib/libarduino.a(Print.o)
+ 0x000000000000460c _ZN5Print5writeEPKhj
.text._ZN5Print5writeEPKc.part.1
- 0x0000000000004534 0x1e ../lib/libarduino.a(Print.o)
+ 0x000000000000465c 0x1e ../lib/libarduino.a(Print.o)
.text._ZN5Print5printEPK19__FlashStringHelper
- 0x0000000000004552 0x46 ../lib/libarduino.a(Print.o)
- 0x0000000000004552 _ZN5Print5printEPK19__FlashStringHelper
+ 0x000000000000467a 0x46 ../lib/libarduino.a(Print.o)
+ 0x000000000000467a _ZN5Print5printEPK19__FlashStringHelper
.text._ZN5Print5printEPKc
- 0x0000000000004598 0x10 ../lib/libarduino.a(Print.o)
- 0x0000000000004598 _ZN5Print5printEPKc
+ 0x00000000000046c0 0x10 ../lib/libarduino.a(Print.o)
+ 0x00000000000046c0 _ZN5Print5printEPKc
.text._ZN5Print5printEc
- 0x00000000000045a8 0xe ../lib/libarduino.a(Print.o)
- 0x00000000000045a8 _ZN5Print5printEc
+ 0x00000000000046d0 0xe ../lib/libarduino.a(Print.o)
+ 0x00000000000046d0 _ZN5Print5printEc
.text._ZN5Print7printlnEv
- 0x00000000000045b6 0x28 ../lib/libarduino.a(Print.o)
- 0x00000000000045b6 _ZN5Print7printlnEv
+ 0x00000000000046de 0x28 ../lib/libarduino.a(Print.o)
+ 0x00000000000046de _ZN5Print7printlnEv
.text._ZN5Print7printlnEPK19__FlashStringHelper
- 0x00000000000045de 0x24 ../lib/libarduino.a(Print.o)
- 0x00000000000045de _ZN5Print7printlnEPK19__FlashStringHelper
+ 0x0000000000004706 0x24 ../lib/libarduino.a(Print.o)
+ 0x0000000000004706 _ZN5Print7printlnEPK19__FlashStringHelper
.text._ZN5Print11printNumberEmh
- 0x0000000000004602 0xb2 ../lib/libarduino.a(Print.o)
- 0x0000000000004602 _ZN5Print11printNumberEmh
+ 0x000000000000472a 0xb2 ../lib/libarduino.a(Print.o)
+ 0x000000000000472a _ZN5Print11printNumberEmh
.text._ZN5Print5printEli
- 0x00000000000046b4 0x94 ../lib/libarduino.a(Print.o)
- 0x00000000000046b4 _ZN5Print5printEli
+ 0x00000000000047dc 0x94 ../lib/libarduino.a(Print.o)
+ 0x00000000000047dc _ZN5Print5printEli
.text._ZN5Print5printEii
- 0x0000000000004748 0xe ../lib/libarduino.a(Print.o)
- 0x0000000000004748 _ZN5Print5printEii
+ 0x0000000000004870 0xe ../lib/libarduino.a(Print.o)
+ 0x0000000000004870 _ZN5Print5printEii
.text._ZN5Print5printEmi
- 0x0000000000004756 0x1a ../lib/libarduino.a(Print.o)
- 0x0000000000004756 _ZN5Print5printEmi
+ 0x000000000000487e 0x1a ../lib/libarduino.a(Print.o)
+ 0x000000000000487e _ZN5Print5printEmi
.text._ZN5Print5printEji
- 0x0000000000004770 0xc ../lib/libarduino.a(Print.o)
- 0x0000000000004770 _ZN5Print5printEji
+ 0x0000000000004898 0xc ../lib/libarduino.a(Print.o)
+ 0x0000000000004898 _ZN5Print5printEji
.text._Z3maplllll
- 0x000000000000477c 0x82 ../lib/libarduino.a(WMath.o)
- 0x000000000000477c _Z3maplllll
+ 0x00000000000048a4 0x82 ../lib/libarduino.a(WMath.o)
+ 0x00000000000048a4 _Z3maplllll
.text._ZN8SPIClass5beginEv
- 0x00000000000047fe 0x2c ../lib/libarduino.a(SPI.o)
- 0x00000000000047fe _ZN8SPIClass5beginEv
+ 0x0000000000004926 0x2c ../lib/libarduino.a(SPI.o)
+ 0x0000000000004926 _ZN8SPIClass5beginEv
.text._ZN8SPIClass11setBitOrderEh
- 0x000000000000482a 0x12 ../lib/libarduino.a(SPI.o)
- 0x000000000000482a _ZN8SPIClass11setBitOrderEh
+ 0x0000000000004952 0x12 ../lib/libarduino.a(SPI.o)
+ 0x0000000000004952 _ZN8SPIClass11setBitOrderEh
.text._ZN8SPIClass11setDataModeEh
- 0x000000000000483c 0xa ../lib/libarduino.a(SPI.o)
- 0x000000000000483c _ZN8SPIClass11setDataModeEh
+ 0x0000000000004964 0xa ../lib/libarduino.a(SPI.o)
+ 0x0000000000004964 _ZN8SPIClass11setDataModeEh
.text._ZN8SPIClass15setClockDividerEh
- 0x0000000000004846 0x1e ../lib/libarduino.a(SPI.o)
- 0x0000000000004846 _ZN8SPIClass15setClockDividerEh
+ 0x000000000000496e 0x1e ../lib/libarduino.a(SPI.o)
+ 0x000000000000496e _ZN8SPIClass15setClockDividerEh
.text.libgcc.mul
- 0x0000000000004864 0x20 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_mulsi3.o)
- 0x0000000000004864 __mulsi3
+ 0x000000000000498c 0x20 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_mulsi3.o)
+ 0x000000000000498c __mulsi3
.text.libgcc.div
- 0x0000000000004884 0x18 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_udivmodqi4.o)
- 0x0000000000004884 __udivmodqi4
+ 0x00000000000049ac 0x18 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_udivmodqi4.o)
+ 0x00000000000049ac __udivmodqi4
.text.libgcc.div
- 0x000000000000489c 0x28 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_udivmodhi4.o)
- 0x000000000000489c __udivmodhi4
+ 0x00000000000049c4 0x28 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_udivmodhi4.o)
+ 0x00000000000049c4 __udivmodhi4
.text.libgcc.div
- 0x00000000000048c4 0x28 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_divmodhi4.o)
- 0x00000000000048c4 __divmodhi4
- 0x00000000000048c4 _div
+ 0x00000000000049ec 0x28 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_divmodhi4.o)
+ 0x00000000000049ec __divmodhi4
+ 0x00000000000049ec _div
.text.libgcc.div
- 0x00000000000048ec 0x44 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_udivmodsi4.o)
- 0x00000000000048ec __udivmodsi4
+ 0x0000000000004a14 0x44 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_udivmodsi4.o)
+ 0x0000000000004a14 __udivmodsi4
.text.libgcc.div
- 0x0000000000004930 0x2e /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_divmodsi4.o)
- 0x0000000000004930 __divmodsi4
+ 0x0000000000004a58 0x2e /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_divmodsi4.o)
+ 0x0000000000004a58 __divmodsi4
.text.libgcc.div
- 0x000000000000495e 0x10 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_negsi2.o)
- 0x000000000000495e __negsi2
+ 0x0000000000004a86 0x10 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_negsi2.o)
+ 0x0000000000004a86 __negsi2
.text.libgcc.mul
- 0x000000000000496e 0x16 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_muluhisi3.o)
- 0x000000000000496e __muluhisi3
- .text.libgcc 0x0000000000004984 0x18 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_adddi3_s8.o)
- 0x0000000000004984 __adddi3_s8
- .text.libgcc 0x000000000000499c 0xc /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_tablejump2.o)
- 0x000000000000499c __tablejump2__
+ 0x0000000000004a96 0x16 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_muluhisi3.o)
+ 0x0000000000004a96 __muluhisi3
+ .text.libgcc 0x0000000000004aac 0x18 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_adddi3_s8.o)
+ 0x0000000000004aac __adddi3_s8
+ .text.libgcc 0x0000000000004ac4 0xc /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_tablejump2.o)
+ 0x0000000000004ac4 __tablejump2__
.text.libgcc.mul
- 0x00000000000049a8 0x1e /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_umulhisi3.o)
- 0x00000000000049a8 __umulhisi3
+ 0x0000000000004ad0 0x1e /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_umulhisi3.o)
+ 0x0000000000004ad0 __umulhisi3
.text.avr-libc.fplib
- 0x00000000000049c6 0x5e /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(fixunssfsi.o)
- 0x00000000000049c6 __fixunssfsi
+ 0x0000000000004aee 0x5e /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(fixunssfsi.o)
+ 0x0000000000004aee __fixunssfsi
.text.avr-libc.fplib
- 0x0000000000004a24 0x7a /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(floatsisf.o)
- 0x0000000000004a24 __floatunsisf
- 0x0000000000004a28 __floatsisf
+ 0x0000000000004b4c 0x7a /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(floatsisf.o)
+ 0x0000000000004b4c __floatunsisf
+ 0x0000000000004b50 __floatsisf
.text.avr-libc.fplib
- 0x0000000000004a9e 0xc /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(fp_inf.o)
- 0x0000000000004a9e __fp_inf
+ 0x0000000000004bc6 0xc /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(fp_inf.o)
+ 0x0000000000004bc6 __fp_inf
.text.avr-libc.fplib
- 0x0000000000004aaa 0x6 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(fp_nan.o)
- 0x0000000000004aaa __fp_nan
+ 0x0000000000004bd2 0x6 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(fp_nan.o)
+ 0x0000000000004bd2 __fp_nan
.text.avr-libc.fplib
- 0x0000000000004ab0 0xe /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(fp_pscA.o)
- 0x0000000000004ab0 __fp_pscA
+ 0x0000000000004bd8 0xe /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(fp_pscA.o)
+ 0x0000000000004bd8 __fp_pscA
.text.avr-libc.fplib
- 0x0000000000004abe 0xe /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(fp_pscB.o)
- 0x0000000000004abe __fp_pscB
+ 0x0000000000004be6 0xe /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(fp_pscB.o)
+ 0x0000000000004be6 __fp_pscB
.text.avr-libc.fplib
- 0x0000000000004acc 0x22 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(fp_round.o)
- 0x0000000000004acc __fp_round
+ 0x0000000000004bf4 0x22 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(fp_round.o)
+ 0x0000000000004bf4 __fp_round
.text.avr-libc.fplib
- 0x0000000000004aee 0x44 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(fp_split3.o)
- 0x0000000000004aee __fp_split3
- 0x0000000000004afe __fp_splitA
+ 0x0000000000004c16 0x44 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(fp_split3.o)
+ 0x0000000000004c16 __fp_split3
+ 0x0000000000004c26 __fp_splitA
.text.avr-libc.fplib
- 0x0000000000004b32 0xe /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(fp_zero.o)
- 0x0000000000004b32 __fp_zero
- 0x0000000000004b34 __fp_szero
+ 0x0000000000004c5a 0xe /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(fp_zero.o)
+ 0x0000000000004c5a __fp_zero
+ 0x0000000000004c5c __fp_szero
.text.avr-libc.fplib
- 0x0000000000004b40 0x8 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(mulsf3.o)
- 0x0000000000004b40 __mulsf3
+ 0x0000000000004c68 0x8 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(mulsf3.o)
+ 0x0000000000004c68 __mulsf3
.text.avr-libc.fplib
- 0x0000000000004b48 0xd2 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(mulsf3x.o)
- 0x0000000000004b66 __mulsf3x
- 0x0000000000004b6c __mulsf3_pse
+ 0x0000000000004c70 0xd2 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libm.a(mulsf3x.o)
+ 0x0000000000004c8e __mulsf3x
+ 0x0000000000004c94 __mulsf3_pse
.text.avr-libc
- 0x0000000000004c1a 0xb8 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(rand.o)
- 0x0000000000004cac rand_r
- 0x0000000000004cb2 rand
- 0x0000000000004cbc srand
+ 0x0000000000004d42 0xb8 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(rand.o)
+ 0x0000000000004dd4 rand_r
+ 0x0000000000004dda rand
+ 0x0000000000004de4 srand
.text.avr-libc
- 0x0000000000004cd2 0xe /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(memset.o)
- 0x0000000000004cd2 memset
+ 0x0000000000004dfa 0xe /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(memset.o)
+ 0x0000000000004dfa memset
.text.avr-libc
- 0x0000000000004ce0 0x60 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(snprintf.o)
- 0x0000000000004ce0 snprintf
+ 0x0000000000004e08 0x60 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(snprintf.o)
+ 0x0000000000004e08 snprintf
.text.avr-libc
- 0x0000000000004d40 0x3b4 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(vfprintf_std.o)
- 0x0000000000004d40 vfprintf
+ 0x0000000000004e68 0x3b4 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(vfprintf_std.o)
+ 0x0000000000004e68 vfprintf
.text.avr-libc
- 0x00000000000050f4 0x16 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(strnlen_P.o)
- 0x00000000000050f4 strnlen_P
+ 0x000000000000521c 0x16 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(strnlen_P.o)
+ 0x000000000000521c strnlen_P
.text.avr-libc
- 0x000000000000510a 0x16 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(strnlen.o)
- 0x000000000000510a strnlen
+ 0x0000000000005232 0x16 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(strnlen.o)
+ 0x0000000000005232 strnlen
.text.avr-libc
- 0x0000000000005120 0x60 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(fputc.o)
- 0x0000000000005120 fputc
+ 0x0000000000005248 0x60 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(fputc.o)
+ 0x0000000000005248 fputc
.text.avr-libc
- 0x0000000000005180 0xbc /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(ultoa_invert.o)
- 0x0000000000005180 __ultoa_invert
+ 0x00000000000052a8 0xbc /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(ultoa_invert.o)
+ 0x00000000000052a8 __ultoa_invert
.text.libgcc.mul
- 0x000000000000523c 0x10 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_mulshisi3.o)
- 0x000000000000523c __mulshisi3
- 0x0000000000005242 __mulohisi3
+ 0x0000000000005364 0x10 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_mulshisi3.o)
+ 0x0000000000005364 __mulshisi3
+ 0x000000000000536a __mulohisi3
.text.libgcc.prologue
- 0x000000000000524c 0x38 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_prologue.o)
- 0x000000000000524c __prologue_saves__
+ 0x0000000000005374 0x38 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_prologue.o)
+ 0x0000000000005374 __prologue_saves__
.text.libgcc.prologue
- 0x0000000000005284 0x36 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_epilogue.o)
- 0x0000000000005284 __epilogue_restores__
- 0x00000000000052ba . = ALIGN (0x2)
+ 0x00000000000053ac 0x36 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_epilogue.o)
+ 0x00000000000053ac __epilogue_restores__
+ 0x00000000000053e2 . = ALIGN (0x2)
*(.fini9)
- .fini9 0x00000000000052ba 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_exit.o)
- 0x00000000000052ba exit
- 0x00000000000052ba _exit
+ .fini9 0x00000000000053e2 0x0 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_exit.o)
+ 0x00000000000053e2 exit
+ 0x00000000000053e2 _exit
*(.fini9)
*(.fini8)
*(.fini8)
*(.fini7)
*(.fini7)
*(.fini6)
- .fini6 0x00000000000052ba 0x16 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_dtors.o)
- 0x00000000000052ba __do_global_dtors
+ .fini6 0x00000000000053e2 0x16 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_dtors.o)
+ 0x00000000000053e2 __do_global_dtors
*(.fini6)
*(.fini5)
*(.fini5)
@@ -2081,16 +2097,16 @@ END GROUP
*(.fini1)
*(.fini1)
*(.fini0)
- .fini0 0x00000000000052d0 0x4 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_exit.o)
+ .fini0 0x00000000000053f8 0x4 /usr/local/avr/lib/gcc/avr/7.2.0/avr5/libgcc.a(_exit.o)
*(.fini0)
*(.hightext)
*(.hightext*)
- 0x00000000000052d4 . = ALIGN (0x2)
+ 0x00000000000053fc . = ALIGN (0x2)
*(.jumptables)
*(.jumptables*)
- 0x00000000000052d4 _etext = .
+ 0x00000000000053fc _etext = .
-.data 0x0000000000800100 0x5e load address 0x00000000000052d4
+.data 0x0000000000800100 0xa6 load address 0x00000000000053fc
0x0000000000800100 PROVIDE (__data_start, .)
*(.data)
.data 0x0000000000800100 0x4 /usr/local/avr/lib/gcc/avr/7.2.0/../../../../avr/lib/avr5/libc.a(rand.o)
@@ -2106,94 +2122,97 @@ END GROUP
.rodata._ZN6Player10showHealthEh.str1.1
0x0000000000800106 0x6 Obj/Player.o
.rodata._ZN6Player13ShowResourcesEv.str1.1
- 0x000000000080010c 0xf Obj/Player.o
+ 0x000000000080010c 0x15 Obj/Player.o
.rodata.UnitShadowOffsetTable
- 0x000000000080011b 0x6 Obj/Unit.o
- .rodata.UnitActionsTable
0x0000000000800121 0x6 Obj/Unit.o
+ .rodata.UnitActionsTable
+ 0x0000000000800127 0x7 Obj/Unit.o
.rodata.str1.1
- 0x0000000000800127 0x16 Obj/Unit.o
+ 0x000000000080012e 0x26 Obj/Unit.o
.rodata.UnitActionsTable_Level
- 0x000000000080013d 0x6 Obj/Unit.o
+ 0x0000000000800154 0xa Obj/Unit.o
.rodata.UnitSpeedTable
- 0x0000000000800143 0x6 Obj/Unit.o
+ 0x000000000080015e 0x7 Obj/Unit.o
+ .rodata.UnitResourcesTable
+ 0x0000000000800165 0x2a Obj/Unit.o
.rodata.UnitHPTable
- 0x0000000000800149 0x6 Obj/Unit.o
+ 0x000000000080018f 0x7 Obj/Unit.o
.rodata._ZTV7Display
- 0x000000000080014f 0x8 ../lib/libgamebuino.a(Display.o)
- 0x000000000080014f _ZTV7Display
+ 0x0000000000800196 0x8 ../lib/libgamebuino.a(Display.o)
+ 0x0000000000800196 _ZTV7Display
.rodata._ZN9Gamebuino10changeGameEv.str1.1
- 0x0000000000800157 0x7 ../lib/libgamebuino.a(Gamebuino.o)
+ 0x000000000080019e 0x7 ../lib/libgamebuino.a(Gamebuino.o)
*(.gnu.linkonce.r*)
- 0x000000000080015e . = ALIGN (0x2)
- 0x000000000080015e _edata = .
- 0x000000000080015e PROVIDE (__data_end, .)
+ 0x00000000008001a6 . = ALIGN (0x2)
+ *fill* 0x00000000008001a5 0x1
+ 0x00000000008001a6 _edata = .
+ 0x00000000008001a6 PROVIDE (__data_end, .)
-.bss 0x000000000080015e 0x61a
- 0x000000000080015e PROVIDE (__bss_start, .)
+.bss 0x00000000008001a6 0x64f
+ 0x00000000008001a6 PROVIDE (__bss_start, .)
*(.bss)
*(.bss*)
- .bss.gb 0x000000000080015e 0x87 Obj/main.o
- 0x000000000080015e gb
+ .bss.gb 0x00000000008001a6 0x87 Obj/main.o
+ 0x00000000008001a6 gb
.bss._ZL8MouseSpr
- 0x00000000008001e5 0x9 Obj/Gameplay.o
+ 0x000000000080022d 0x9 Obj/Gameplay.o
.bss.GamePlayers
- 0x00000000008001ee 0x2a4 Obj/Gameplay.o
- 0x00000000008001ee GamePlayers
+ 0x0000000000800236 0x2c7 Obj/Gameplay.o
+ 0x0000000000800236 GamePlayers
.bss.timer_array
- 0x0000000000800492 0x60 Obj/System.o
+ 0x00000000008004fd 0x60 Obj/System.o
.bss.system_busy
- 0x00000000008004f2 0x1 Obj/System.o
+ 0x000000000080055d 0x1 Obj/System.o
.bss.one_second_timer
- 0x00000000008004f3 0x1 Obj/System.o
+ 0x000000000080055e 0x1 Obj/System.o
.bss.rand_seed
- 0x00000000008004f4 0x1 Obj/System.o
+ 0x000000000080055f 0x1 Obj/System.o
.bss.global_timer
- 0x00000000008004f5 0x8 Obj/System.o
+ 0x0000000000800560 0x8 Obj/System.o
.bss.UnitWalkingShadowSprTable
- 0x00000000008004fd 0x36 Obj/Unit.o
+ 0x0000000000800568 0x3f Obj/Unit.o
.bss.UnitSprTable
- 0x0000000000800533 0x36 Obj/Unit.o
+ 0x00000000008005a7 0x3f Obj/Unit.o
.bss._displayBuffer
- 0x0000000000800569 0x200 ../lib/libgamebuino.a(Display.o)
- 0x0000000000800569 _displayBuffer
+ 0x00000000008005e6 0x200 ../lib/libgamebuino.a(Display.o)
+ 0x00000000008005e6 _displayBuffer
.bss._chanNoise
- 0x0000000000800769 0x1 ../lib/libgamebuino.a(Sound.o)
- 0x0000000000800769 _chanNoise
+ 0x00000000008007e6 0x1 ../lib/libgamebuino.a(Sound.o)
+ 0x00000000008007e6 _chanNoise
.bss._chanOutput
- 0x000000000080076a 0x1 ../lib/libgamebuino.a(Sound.o)
- 0x000000000080076a _chanOutput
+ 0x00000000008007e7 0x1 ../lib/libgamebuino.a(Sound.o)
+ 0x00000000008007e7 _chanOutput
.bss._chanOutputVolume
- 0x000000000080076b 0x1 ../lib/libgamebuino.a(Sound.o)
- 0x000000000080076b _chanOutputVolume
+ 0x00000000008007e8 0x1 ../lib/libgamebuino.a(Sound.o)
+ 0x00000000008007e8 _chanOutputVolume
.bss._chanHalfPeriod
- 0x000000000080076c 0x1 ../lib/libgamebuino.a(Sound.o)
- 0x000000000080076c _chanHalfPeriod
+ 0x00000000008007e9 0x1 ../lib/libgamebuino.a(Sound.o)
+ 0x00000000008007e9 _chanHalfPeriod
.bss._chanState
- 0x000000000080076d 0x1 ../lib/libgamebuino.a(Sound.o)
- 0x000000000080076d _chanState
+ 0x00000000008007ea 0x1 ../lib/libgamebuino.a(Sound.o)
+ 0x00000000008007ea _chanState
.bss._chanCount
- 0x000000000080076e 0x1 ../lib/libgamebuino.a(Sound.o)
- 0x000000000080076e _chanCount
+ 0x00000000008007eb 0x1 ../lib/libgamebuino.a(Sound.o)
+ 0x00000000008007eb _chanCount
.bss.timer0_fract
- 0x000000000080076f 0x1 ../lib/libarduino.a(wiring.o)
+ 0x00000000008007ec 0x1 ../lib/libarduino.a(wiring.o)
.bss.timer0_millis
- 0x0000000000800770 0x4 ../lib/libarduino.a(wiring.o)
- 0x0000000000800770 timer0_millis
+ 0x00000000008007ed 0x4 ../lib/libarduino.a(wiring.o)
+ 0x00000000008007ed timer0_millis
.bss.timer0_overflow_count
- 0x0000000000800774 0x4 ../lib/libarduino.a(wiring.o)
- 0x0000000000800774 timer0_overflow_count
+ 0x00000000008007f1 0x4 ../lib/libarduino.a(wiring.o)
+ 0x00000000008007f1 timer0_overflow_count
*(COMMON)
- 0x0000000000800778 PROVIDE (__bss_end, .)
- 0x00000000000052d4 __data_load_start = LOADADDR (.data)
- 0x0000000000005332 __data_load_end = (__data_load_start + SIZEOF (.data))
+ 0x00000000008007f5 PROVIDE (__bss_end, .)
+ 0x00000000000053fc __data_load_start = LOADADDR (.data)
+ 0x00000000000054a2 __data_load_end = (__data_load_start + SIZEOF (.data))
-.noinit 0x0000000000800778 0x0
+.noinit 0x00000000008007f5 0x0
[!provide] PROVIDE (__noinit_start, .)
*(.noinit*)
[!provide] PROVIDE (__noinit_end, .)
- 0x0000000000800778 _end = .
- 0x0000000000800778 PROVIDE (__heap_start, .)
+ 0x00000000008007f5 _end = .
+ 0x00000000008007f5 PROVIDE (__heap_start, .)
.eeprom 0x0000000000810000 0x0
*(.eeprom*)
diff --git a/Gfx.cpp b/Gfx.cpp
index 45ad6a4..cbb7d16 100644
--- a/Gfx.cpp
+++ b/Gfx.cpp
@@ -146,6 +146,17 @@ void GfxDrawCircle(uint16_t x, uint16_t y, uint8_t radius, int8_t color)
}
}
+void GfxDrawFillCircle(uint16_t x, uint16_t y, uint8_t radius, int8_t color)
+{
+ if (GfxIsInsideScreenArea(x, y, radius, radius) == true)
+ {
+ int8_t orig_color = gb.display.getColor();
+ 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) == true)
diff --git a/Gfx.h b/Gfx.h
index e42e25b..055b0b8 100644
--- a/Gfx.h
+++ b/Gfx.h
@@ -61,6 +61,7 @@ typedef struct t_Camera TYPE_CAMERA;
void GfxDrawSprite(TYPE_SPRITE* ptrSprite);
void GfxDrawCircle(uint16_t x, uint16_t y, uint8_t radius, int8_t color);
+void GfxDrawFillCircle(uint16_t x, uint16_t y, uint8_t radius, int8_t color);
void GfxDrawRectangle(uint8_t x, uint8_t y, uint8_t w, uint8_t h, int8_t color);
void GfxFillRectangle(uint8_t x, uint8_t y, uint8_t w, uint8_t h, int8_t color);
void GfxDrawLine(uint8_t x0, uint8_t x1, uint8_t y0, uint8_t y1, uint8_t color);
diff --git a/MouseSpr.i b/MouseSpr.i
index 4f5999a..a4c7e8b 100644
--- a/MouseSpr.i
+++ b/MouseSpr.i
@@ -1,3 +1,6 @@
+#ifndef MOUSE_SPR_I__
+#define MOUSE_SPR_I__
+
const uint8_t PROGMEM MouseSprData[] =
{
8,8, //width and height
@@ -11,3 +14,5 @@ const uint8_t PROGMEM MouseSprData[] =
B00000100,
};
+
+#endif // MOUSE_SPR_I__
diff --git a/PeasantSpr.i b/PeasantSpr.i
index 7e78764..22399d5 100644
--- a/PeasantSpr.i
+++ b/PeasantSpr.i
@@ -1,3 +1,6 @@
+#ifndef PEASANT_SPR_I__
+#define PEASANT_SPR_I__
+
// Default direction: Down
@@ -28,3 +31,5 @@ const uint8_t PROGMEM Peasant_SprData[] =
0x00,
};
+
+#endif // PEASANT_SPR_I__
diff --git a/Player.cpp b/Player.cpp
index 4295da1..4ffe683 100644
--- a/Player.cpp
+++ b/Player.cpp
@@ -30,6 +30,13 @@ Player::~Player(void)
void Player::Init(void)
{
+ enum
+ {
+ DEFAULT_WOOD = 1000,
+ DEFAULT_GOLD = 1000,
+ DEFAULT_FOOD = 1000
+ };
+
uint8_t i;
unit_i = 0;
@@ -46,17 +53,14 @@ void Player::Init(void)
TYPE_COLLISION_BLOCK cb;
- Resources.Wood = 25;
- Resources.Gold = 50;
- Resources.Food = 75;
+ Resources.Wood = DEFAULT_WOOD;
+ Resources.Gold = DEFAULT_GOLD;
+ Resources.Food = DEFAULT_FOOD;
- cb.x = SystemRand(0, 20);
- cb.y = SystemRand(0, 20);
+ cb.x = SystemRand(0, 24);
+ cb.y = SystemRand(0, 24);
- if (createUnit(TOWN_CENTER, cb) == false)
- {
- GfxPrintText_Flash(F("Failed to create building!"));
- }
+ createUnit(TOWN_CENTER, cb);
cb.x = SystemRand(48, 56);
cb.y = SystemRand(48, 56);
@@ -68,10 +72,7 @@ void Player::Init(void)
showActionsMenu = false;
anyUnitSelected = false;
- if (createUnit(PEASANT, cb) == false)
- {
- GfxPrintText_Flash(F("Failed to create unit!"));
- }
+ createUnit(PEASANT, cb);
}
void Player::showHealth(uint8_t hp)
@@ -152,8 +153,8 @@ void Player::ShowResources(void)
{
char str[16];
- gb.display.setColor(GFX_WHITE);
- gb.display.fillRect(0, 0, X_SCREEN_RESOLUTION, 5);
+ gb.display.setColor(GFX_GRAY);
+ gb.display.fillRect(0, 0, X_SCREEN_RESOLUTION, 8);
snprintf(str, sizeof(str), "W=%d", Resources.Wood);
@@ -161,11 +162,15 @@ void Player::ShowResources(void)
snprintf(str, sizeof(str), "G=%d", Resources.Gold);
- GfxPrintTextFont(str, font3x3, 22, 1);
+ GfxPrintTextFont(str, font3x3, 2, 5);
snprintf(str, sizeof(str), "F=%d", Resources.Food);
GfxPrintTextFont(str, font3x3, 42, 1);
+
+ snprintf(str, sizeof(str), "%d/%d", unit_i, PLAYER_MAX_UNITS_BUILDINGS);
+
+ GfxPrintTextFont(str, font3x3, 42, 5);
}
@@ -191,7 +196,7 @@ bool Player::checkNewBuildingPosition(TYPE_COLLISION_BLOCK * cb)
bldgCB.w = UnitGetWidthFromID(ptrUnit->id);
bldgCB.h = UnitGetHeightFromID(ptrUnit->id);
- if (SystemCollisionCheck(*cb, bldgCB) == true)
+ if (SystemCollisionCheck(cb, &bldgCB) == true)
{
success = false;
}
@@ -227,29 +232,48 @@ bool Player::checkNewBuildingPosition(TYPE_COLLISION_BLOCK * cb)
return true;
}
-bool Player::createUnit(TYPE_UNIT_ID id, TYPE_COLLISION_BLOCK cb)
+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 (unit_i < PLAYER_MAX_UNITS_BUILDINGS)
{
- TYPE_UNIT* ptrNewUnit = &units[unit_i];
+ 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);
- unit_i++;
+ /* Substract resources from player */
+ Resources.Wood -= res.Wood;
+ Resources.Gold -= res.Gold;
+ Resources.Food -= res.Food;
- return true;
+ if (ptrNewUnit->building == true)
+ {
+ GfxPrintText_Flash(F("Building created"));
+ }
+ else
+ {
+ GfxPrintText_Flash(F("Unit created"));
+ }
}
else
{
- return false;
+ GfxPrintText_Flash(F("Popul. limit"));
}
-
- return false;
}
TYPE_COLLISION_BLOCK Player::GetCursorPos(void)
@@ -422,10 +446,18 @@ void Player::ButtonAReleased(void)
ActionCreateUnit(ptrUnit, PEASANT);
break;
+ case ACTION_CREATE_SOLDIER:
+ ActionCreateUnit(ptrUnit, SOLDIER);
+ break;
+
case ACTION_BUILD_BARRACKS:
ActionCreateBuilding(ptrUnit, BARRACKS);
break;
+ case ACTION_BUILD_TOWER_CENTER:
+ ActionCreateBuilding(ptrUnit, TOWN_CENTER);
+ break;
+
default:
break;
}
diff --git a/Player.h b/Player.h
index 07101ed..e7c15fc 100644
--- a/Player.h
+++ b/Player.h
@@ -13,7 +13,7 @@
* Defines *
* **************************************/
-#define PLAYER_NAME_LENGTH 16
+#define PLAYER_NAME_LENGTH 16
#define PLAYER_MAX_UNITS_BUILDINGS 32
/* **************************************
@@ -22,9 +22,9 @@
typedef struct t_Resource
{
- uint8_t Wood;
- uint8_t Gold;
- uint8_t Food;
+ uint16_t Wood;
+ uint16_t Gold;
+ uint16_t Food;
}TYPE_RESOURCES;
/* **************************************
@@ -44,7 +44,7 @@ class Player
char* getName(void) {return name;}
void setHuman(bool value) { human = value; }
bool isHuman(void) {return human;}
- bool createUnit(TYPE_UNIT_ID id, TYPE_COLLISION_BLOCK cb);
+ void createUnit(TYPE_UNIT_ID id, TYPE_COLLISION_BLOCK cb);
uint8_t getPopulation(void) {return (unit_i + 1);}
void ShowResources(void);
diff --git a/SoldierSpr.i b/SoldierSpr.i
new file mode 100644
index 0000000..aacf4ee
--- /dev/null
+++ b/SoldierSpr.i
@@ -0,0 +1,26 @@
+#ifndef UNIT_SPR_I__
+#define UNIT_SPR_I__
+
+const uint8_t SoldierSprData[] PROGMEM = {8,8,
+0x3C,
+0x42,
+0x99,
+0xBD,
+0xFE,
+0x58,
+0x40,
+0x40,
+};
+
+const uint8_t SoldierSprData_Walking[] PROGMEM = {8,8,
+0xE0,
+0xBC,
+0xC2,
+0x99,
+0xBD,
+0xFF,
+0x5D,
+0x47,
+};
+
+#endif // UNIT_SPR_I__
diff --git a/Sprites/SoldierSpr.bmp b/Sprites/SoldierSpr.bmp
new file mode 100644
index 0000000..09437af
--- /dev/null
+++ b/Sprites/SoldierSpr.bmp
Binary files differ
diff --git a/Sprites/SoldierSpr_Walking.bmp b/Sprites/SoldierSpr_Walking.bmp
new file mode 100644
index 0000000..c2c5d54
--- /dev/null
+++ b/Sprites/SoldierSpr_Walking.bmp
Binary files differ
diff --git a/Sprites/TownCentreShadow.bmp b/Sprites/TownCentreShadow.bmp
index cb7dc6c..a614021 100644
--- a/Sprites/TownCentreShadow.bmp
+++ b/Sprites/TownCentreShadow.bmp
Binary files differ
diff --git a/System.c b/System.c
index 8535eb9..43f2c91 100644
--- a/System.c
+++ b/System.c
@@ -271,8 +271,8 @@ bool SystemArrayCompare(unsigned short * arr1, unsigned short * arr2, size_t sz)
return true;
}
-bool SystemCollisionCheck(TYPE_COLLISION_BLOCK c1, TYPE_COLLISION_BLOCK c2)
+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 );
+ return (bool)check_bb_collision( c1->x, c1->y, c1->w, c1->h,
+ c2->x, c2->y, c2->w, c2->h );
}
diff --git a/System.h b/System.h
index 421183a..4670f2e 100644
--- a/System.h
+++ b/System.h
@@ -84,7 +84,7 @@ 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);
+bool SystemCollisionCheck(TYPE_COLLISION_BLOCK* c1, TYPE_COLLISION_BLOCK* c2);
/* **************************************
* Global Variables *
diff --git a/TownCentre.i b/TownCentre.i
index 6d78342..89c5c0b 100644
--- a/TownCentre.i
+++ b/TownCentre.i
@@ -1,3 +1,6 @@
+#ifndef TOWN_CENTRE_I__
+#define TOWN_CENTRE_I__
+
const uint8_t TownCentreSprData[] PROGMEM = {24,24,
0x3,0xFF,0xC0,
0xC,0x0,0x30,
@@ -30,24 +33,26 @@ const uint8_t TownCentreShadowSprData[] PROGMEM = {24,24,
0x7E,0x0,0x0,
0xF8,0x0,0x0,
0xF0,0x0,0x0,
-0xE0,0x0,0x0,
-0xE0,0x0,0x4,
-0xE0,0x0,0x4,
-0xE0,0x0,0x4,
-0xE2,0xE0,0x4,
-0xE2,0x80,0x4,
-0xE2,0x80,0x4,
-0xE2,0x80,0x4,
-0xE2,0x80,0x4,
-0xE2,0x80,0x4,
-0xE2,0xE0,0x4,
-0xE0,0x60,0xC,
-0xE0,0x0,0x10,
-0xE0,0x0,0x0,
-0xE0,0x0,0x0,
-0xE0,0x1,0x80,
-0xF0,0x1,0x80,
-0xF8,0x1,0x80,
-0x7E,0x1,0x80,
+0xF8,0x0,0x0,
+0xF8,0x0,0x4,
+0xF8,0x0,0x4,
+0xF8,0x0,0x4,
+0xFA,0xE0,0x4,
+0xFA,0x80,0x4,
+0xFA,0x80,0x4,
+0xFA,0x80,0x4,
+0xFA,0x80,0x4,
+0xFA,0x80,0x4,
+0xFA,0xE0,0x4,
+0xF8,0x60,0xC,
+0xF8,0x0,0x10,
+0xFC,0x0,0x0,
+0xFF,0x0,0x0,
+0xFF,0xF1,0x80,
+0xFF,0xF1,0x80,
+0xFF,0xF1,0x80,
+0x7F,0xF1,0x80,
0x1F,0x81,0x80,
};
+
+#endif // TOWN_CENTRE_I__
diff --git a/Unit.c b/Unit.c
index 26beae0..9147306 100644
--- a/Unit.c
+++ b/Unit.c
@@ -3,7 +3,12 @@
* **************************************/
#include "Unit.h"
+
+/* Units sprite data */
#include "PeasantSpr.i"
+#include "SoldierSpr.i"
+
+/* Buildings sprite data */
#include "BarracksSpr.i"
#include "TownCentre.i"
@@ -30,21 +35,31 @@ struct t_coordinates
* **************************************/
/* Tables */
-static uint8_t const UnitHPTable[MAX_UNITS_BUILDINGS] = { [PEASANT] = 25 ,
- [BARRACKS] = 100,
- [TOWN_CENTER] = 200 };
+static uint8_t const UnitHPTable[MAX_UNITS_BUILDINGS] = { [PEASANT] = 25,
+ [SOLDIER] = 80,
+ [BARRACKS] = 100,
+ [TOWN_CENTER] = 200 };
+
+static TYPE_RESOURCES const UnitResourcesTable[MAX_UNITS_BUILDINGS] = { [PEASANT] = {.Wood = 0, .Gold = 0, .Food = 50},
+ [SOLDIER] = {.Wood = 25, .Gold = 10, .Food = 50},
+ [BARRACKS] = {.Wood = 100, .Gold = 0, .Food = 0},
+ [TOWN_CENTER] = {.Wood = 200, .Gold = 0, .Food = 0} };
static uint8_t const UnitSpeedTable[MAX_UNITS_BUILDINGS] = { [PEASANT] = 1,
- [BARRACKS] = 0,
- [TOWN_CENTER] = 0 };
+ [SOLDIER] = 1,
+ [BARRACKS] = 0,
+ [TOWN_CENTER] = 0 };
-static const char* const UnitActionsTable_Level[MAX_ACTIONS] = { [ACTION_BUILD_BARRACKS] = "B.BARR",
- [ACTION_ATTACK] = "ATTACK",
- [ACTION_CREATE_PEASANT] = "C.PEAS."};
+static const char* const UnitActionsTable_Level[MAX_ACTIONS] = { [ACTION_BUILD_BARRACKS] = "B.BARR",
+ [ACTION_ATTACK] = "ATTACK",
+ [ACTION_CREATE_PEASANT] = "C.PEAS.",
+ [ACTION_CREATE_SOLDIER] = "C.SLDR.",
+ [ACTION_BUILD_TOWER_CENTER] = "C.TWNC."};
-static uint8_t const UnitActionsTable[MAX_UNITS_BUILDINGS] = { [PEASANT] = ((1 << ACTION_BUILD_BARRACKS) | (1 << ACTION_ATTACK)),
- [BARRACKS] = (1 << ACTION_CREATE_PEASANT),
- [TOWN_CENTER] = (1 << ACTION_CREATE_PEASANT) };
+static uint8_t const UnitActionsTable[MAX_UNITS_BUILDINGS] = { [PEASANT] = ((1 << ACTION_BUILD_BARRACKS) | (1 << ACTION_BUILD_TOWER_CENTER) | (1 << ACTION_ATTACK)),
+ [SOLDIER] = (1 << ACTION_ATTACK),
+ [BARRACKS] = (1 << ACTION_CREATE_SOLDIER),
+ [TOWN_CENTER] = (1 << ACTION_CREATE_PEASANT) };
// **************
// Sprite tables
@@ -56,6 +71,10 @@ static const struct t_coordinates UnitShadowOffsetTable[MAX_BUILDING_ID - FIRST_
void UnitInit(void)
{
+ /* ***********************************
+ * Unit sprite data init
+ * ***********************************/
+
UnitSprTable[PEASANT].Data = Peasant_SprData;
UnitSprTable[PEASANT].w = GfxGetWidthFromSpriteData(Peasant_SprData);
UnitSprTable[PEASANT].h = GfxGetHeightFromSpriteData(Peasant_SprData);
@@ -63,6 +82,13 @@ void UnitInit(void)
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);
@@ -70,6 +96,17 @@ void UnitInit(void)
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;
+
+ /* ***********************************
+ * Buildings sprite data init
+ * ***********************************/
+
UnitSprTable[BARRACKS].Data = BarracksSpr_Data;
UnitSprTable[BARRACKS].w = GfxGetWidthFromSpriteData(BarracksSpr_Data);
UnitSprTable[BARRACKS].h = GfxGetHeightFromSpriteData(BarracksSpr_Data);
@@ -213,21 +250,26 @@ void UnitDraw(TYPE_UNIT* ptrUnit, TYPE_CAMERA* ptrCamera, bool bHighlighted)
}
}
-uint8_t UnitGetWidthFromID(uint8_t id)
+uint8_t UnitGetWidthFromID(TYPE_UNIT_ID id)
{
return GfxGetWidthFromSpriteData(UnitSprTable[id].Data);
}
-uint8_t UnitGetHeightFromID(uint8_t id)
+uint8_t UnitGetHeightFromID(TYPE_UNIT_ID id)
{
return GfxGetHeightFromSpriteData(UnitSprTable[id].Data);
}
-uint8_t UnitGetHpFromID(uint8_t id)
+uint8_t UnitGetHpFromID(TYPE_UNIT_ID id)
{
return UnitHPTable[id];
}
+TYPE_RESOURCES UnitNeededResourcesFromID(TYPE_UNIT_ID id)
+{
+ return UnitResourcesTable[id];
+}
+
void UnitMoveTo(TYPE_UNIT* ptrUnit, uint16_t x, uint16_t y)
{
ptrUnit->target_x = x;
@@ -264,37 +306,28 @@ void UnitHandler(TYPE_UNIT* unitArray, size_t sz)
if ( (ptrUnit->x - UnitSpeedTable[ptrUnit->id]) > ptrUnit->target_x)
{
ptrUnit->dir = DIRECTION_LEFT;
- x_d = -UnitSpeedTable[ptrUnit->id];
- //~ ptrUnit->x -= UnitSpeedTable[ptrUnit->id];
+ x_d = (int8_t)-UnitSpeedTable[ptrUnit->id];
}
else if ( (ptrUnit->x + UnitSpeedTable[ptrUnit->id]) < ptrUnit->target_x)
{
ptrUnit->dir = DIRECTION_RIGHT;
- x_d = UnitSpeedTable[ptrUnit->id];
- //~ ptrUnit->x += UnitSpeedTable[ptrUnit->id];
+ x_d = (int8_t)UnitSpeedTable[ptrUnit->id];
}
-
- if ( (ptrUnit->y - UnitSpeedTable[ptrUnit->id]) > ptrUnit->target_y)
+ else if ( (ptrUnit->y - UnitSpeedTable[ptrUnit->id]) > ptrUnit->target_y)
{
ptrUnit->dir = DIRECTION_UP;
- y_d = -UnitSpeedTable[ptrUnit->id];
- //~ ptrUnit->y -= UnitSpeedTable[ptrUnit->id];
+ y_d = (int8_t)-UnitSpeedTable[ptrUnit->id];
}
else if ( (ptrUnit->y + UnitSpeedTable[ptrUnit->id]) < ptrUnit->target_y)
{
ptrUnit->dir = DIRECTION_DOWN;
- y_d = UnitSpeedTable[ptrUnit->id];
- //~ ptrUnit->y += UnitSpeedTable[ptrUnit->id];
+ y_d = (int8_t)UnitSpeedTable[ptrUnit->id];
}
else
{
- x_d = ptrUnit->x - ptrUnit->target_x;
- y_d = ptrUnit->y - ptrUnit->target_y;
bMoving = false;
}
- ptrUnit->walking = bMoving;
-
if (ptrUnit->walking == true)
{
// If player is still walking, check collisions
@@ -324,18 +357,20 @@ void UnitHandler(TYPE_UNIT* unitArray, size_t sz)
ou.x = ptrOtherUnit->x;
- ou.y = ptrOtherUnit->x;
+ ou.y = ptrOtherUnit->y;
ou.w = UnitGetWidthFromID(ptrOtherUnit->id);
ou.h = UnitGetHeightFromID(ptrOtherUnit->id);
- if (SystemCollisionCheck(cu, ou) == true)
+ if (SystemCollisionCheck(&cu, &ou) == true)
{
- ptrUnit->walking = false;
+ bMoving = false;
break;
}
}
}
+ ptrUnit->walking = bMoving;
+
if (ptrUnit->walking == true)
{
// If no collision is detected, keep moving to the new position
diff --git a/Unit.h b/Unit.h
index 86bd6f7..0f554c7 100644
--- a/Unit.h
+++ b/Unit.h
@@ -7,6 +7,7 @@
#include "Global_Inc.h"
#include "Camera.h"
+#include "Player.h"
#ifdef __cplusplus
extern "C"
@@ -29,29 +30,11 @@ typedef enum t_unitdirection
DIRECTION_DOWN
}UNIT_DIRECTION;
-typedef struct t_Unit
-{
- uint16_t x;
- uint16_t y;
- uint16_t target_x;
- uint16_t target_y;
- uint8_t hp;
- uint8_t 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 enum t_unitid
{
// Walking units
- PEASANT = 0,
+ PEASANT,
+ SOLDIER,
MAX_UNIT_ID,
@@ -68,6 +51,25 @@ typedef enum t_unitid
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;
@@ -79,32 +81,36 @@ typedef enum t_availableactions
ACTION_BUILD_BARRACKS,
ACTION_ATTACK,
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);
+void UnitInit(void);
+void UnitHandler(TYPE_UNIT* unitArray, size_t sz);
// Unit information
-uint8_t UnitGetHpFromID(uint8_t id);
-uint8_t UnitGetWidthFromID(uint8_t id);
-uint8_t UnitGetHeightFromID(uint8_t id);
-uint8_t UnitGetAvailableActions(TYPE_UNIT* ptrUnit);
+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 UnitDraw(TYPE_UNIT* ptrUnit, TYPE_CAMERA* ptrCamera, bool bHighlighted);
-void UnitMoveTo(TYPE_UNIT* ptrUnit, uint16_t x, uint16_t y);
+void UnitMoveTo(TYPE_UNIT* ptrUnit, uint16_t x, uint16_t y);
// Selection index
-const char* UnitGetActionString(UNIT_ACTION action);
+const char* UnitGetActionString(UNIT_ACTION action);
#ifdef __cplusplus
}