Subversion Repositories FlightCtrl

Compare Revisions

Ignore whitespace Rev 517 → Rev 518

/branches/Flight-Ctrl_V0_67g_3_GPS_work_Jochen/Flight-Ctrl_MEGA644_V0_67g.hex
0,0 → 1,2652
:100000000C941D020C943A020C943A020C943A029D
:100010000C943A020C943A020C943A020C943A0270
:100020000C943A020C94960D0C943A020C943A02F9
:100030000C94BD160C943A020C943A020C943A02B9
:100040000C943A020C943A020C94CF0C0C943A02A1
:100050000C944B050C943A020C9482040C943A02D2
:100060000C94920E0C943A020C94F2150C943A02F1
:100070000A0A0D004E65757472616C004865616412
:10008000696E67486F6C64000A0D5374657565721C
:10009000756E673A20004F4B0A0D000A0D416267EA
:1000A0006C65696368204C756674647275636B7304
:1000B000656E736F722E2E000A0D42656E75747A2E
:1000C0006520506172616D657465727361747A2028
:1000D0002564000A0D414343206E69636874206102
:1000E000626765676C696368656E21000A0D496E19
:1000F00069742E20454550524F4D3A2047656E6534
:1001000072696572652044656661756C742D506115
:1001100072616D657465722E2E2E000A0D3D3D3D97
:100120003D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3DFF
:100130003D3D3D3D3D3D3D3D3D3D3D000A0D466C57
:1001400069676874436F6E74726F6C0A0D486172F0
:1001500064776172653A25642E25640A0D536F66D3
:1001600074776172653A5625642E256425632000F4
:100170002E0052616E67653A2533692D253369007B
:100180005374656C6C756E673A202533690053654E
:1001900074706F696E742020253369005365727620
:1001A0006F202000506F343A2025336920506F387B
:1001B0003A2025336900506F333A202533692050A7
:1001C0006F373A2025336900506F323A2025336962
:1001D00020506F363A2025336900506F313A202580
:1001E000336920506F353A202533690053746172AA
:1001F000743A2020202020253569004D65737377DF
:100200006572743A202025356900526963687475F7
:100210006E673A2020253569004B6F6D70617373EE
:100220002020202020202000456D70662E5065671C
:10023000656C3A253569005370616E6E756E673A6C
:10024000202025356900486F6368202534692028FF
:100250002533692900526F6C6C20253469202825CC
:10026000336929004E69636B2025346920282533C2
:10027000692900414343202D2053656E736F72003E
:100280004769657220253469202825336929005281
:100290006F6C6C20253469202825336929004E694C
:1002A000636B202534692028253369290047696557
:1002B000722025346920282533692900526F6C6C1F
:1002C00020253469202825336929004E69636B2075
:1002D000253469202825336929004779726F202D3C
:1002E0002053656E736F720050333A2534692020B5
:1002F00050343A253469200050313A2534692020A1
:1003000050323A253469200047733A253469202059
:1003100047693A25346920004E693A25346920201E
:10032000526F3A25346920004B373A253469202032
:100330004B383A25346920004B353A253469202062
:100340004B363A25346920004B333A253469202056
:100350004B343A25346920004B313A25346920204A
:100360004B323A25346920004B6F6D706173733ADC
:1003700020202025356900526F6C6C3A2020202007
:100380002020253569004E69636B3A20202020200B
:100390002025356900616B742E204C61676500482B
:1003A000F668656E726567656C756E67004B6569AA
:1003B0006E6520004F66662020202020203A2025F0
:1003C0003569004C756674647275636B3A20253527
:1003D0006900536F6C6C486F6568653A2025356914
:1003E00000486F6568653A20202020202535690087
:1003F00028632920486F6C6765722042757373000B
:1004000053657474696E673A202564200048573A32
:100410005625642E25642053573A25642E256425DD
:1004200063002B2B204D696B726F4B6F707465727C
:10043000202B2B005B25695D000011241FBECFEF30
:10044000D0E1DEBFCDBF1AE0A0E0B1E0E4E5FCE919
:1004500002C005900D92A434B107D9F71FE0A4E4BF
:10046000BAE001C01D92AF36B107E1F70E947902F0
:100470000C94294E0C94000022E030E0D9010E9437
:10048000154E802D863028F082E0D901082E0E947A
:100490001D4E99270895FB01282F863008F025E08E
:1004A000842F9927429FD0011124AC59BF4F019747
:1004B00024F001900E941D4EFACFA2E0B0E0022E7F
:1004C0000E941D4E0895CF93DF93FB01C42FDD27BB
:1004D000863008F085E0489FD0011124AC59BF4F09
:1004E000219724F00E94154E0192FACFDF91CF910F
:1004F00008951F93CF93DF9314B815B8189B02C0CB
:100500008BE001C08AE08093000181E887B98FEF1A
:1005100088B98BE184B981E085B98EE38AB9579AAD
:1005200087EF8BB984B7877F84BF80916000886133
:10053000809360001092600080ED97E09093670ACE
:100540008093660A10920A0B1092090B10927B0E90
:1005500010927A0E1092080B1092070B1092060B55
:100560001092050B809100018A3011F4289801C087
:10057000289A0E943D0E0E942E080E94A8160E94F2
:100580008C0E0E94D815789410921A0D83E48093F3
:100590001B0D87E080931C0D2091000187E690E001
:1005A0009F938F9383E490E09F938F931F921F926A
:1005B000822F6AE00E946E4D892F99279F938F9317
:1005C000822F0E946E4D99279F938F938CE391E029
:1005D0009F938F931F920E942D0A8BE191E09F932E
:1005E0008F931F920E942D0A299AA1E0B0E00E94E9
:1005F000154E802D2DB73EB7205F3F4F0FB6F894B4
:100600003EBF0FBE2DBF843409F43FC08CEE90E096
:100610009F938F931F920E942D0A0E943E2610E006
:100620000F900F900F90123049F40E94AC2547E4D0
:1006300062EB7EE082E00E944B0202C0133051F474
:100640000E941B2547E462EB7EE083E00E944B02A0
:1006500014E002C0143010F00E94AC2547E462EBB5
:100660007EE0812F0E944B021F5F1630E0F283E094
:1006700022E030E0D901082E0E941D4E84E4215072
:100680003040D901082E0E941D4EC4E0D0E0DE01AA
:100690000E94154E802D853050F083ED90E09F93A1
:1006A0008F931F920E942D0A0F900F900F90229708
:1006B000DE010E94154E802D863028F082E0DE019A
:1006C000082E0E941D4E47E462EB7EE00E9463020A
:1006D000DE010E94154E802D863028F082E0DE017A
:1006E000082E0E941D4E99279F938F9388EB90E0D0
:1006F0009F938F931F920E942D0A8091BA0E0F90A4
:100700000F900F900F900F9080FD03C0C8EED3E0C4
:1007100020C08BE990E09F938F931F920E942D0A37
:1007200088EE93E00E94810DEC010E942E110F9043
:100730000F900F90CE010E948A0D8823D9F386E98D
:1007400090E09F938F931F920E942D0A0F900F901D
:100750000F900E94A723809100018A3011F42898FD
:1007600001C0289A80ED97E09093670A8093660A0B
:1007700088EE93E09093150D8093140D85E580939A
:100780000F0D88E890E09F938F931F920E942D0A8F
:100790008091BA0E0F900F900F9082FF03C08CE7EC
:1007A00090E002C084E790E09F938F931F920E9495
:1007B0002D0A0F900F900F9080E790E09F938F93FA
:1007C0001F920E942D0A0E94721188E893E1909373
:1007D0008603809385030F900F900F908091630A9A
:1007E000882309F462C01092630A0E94CF260E94F7
:1007F0007C23209100012A3011F4289801C0289A06
:1008000080910301882321F081508093030110C05F
:100810001092540A1092550A1092250B1092240B34
:100820001092270B1092260B1092290B1092280B76
:100830008091040B882329F08091040B81508093D0
:10084000040B8091850390918603892B01F585E047
:1008500090E090938603809385030E948216809196
:100860000403909105038F5F9F4FF9F480910B0B68
:100870008823D9F080E197E29093670A8093660A13
:1008800080E890E090930503809304030EC080916C
:100890008503909186030197909386038093850347
:1008A0002A3011F4289801C0289A0E944B080E940F
:1008B000DB08CE010E948A0D882309F48FCF209196
:1008C0000803309109038091CA0E99272817390728
:1008D0009CF480910403909105038F5F9F4F61F416
:1008E00080E797E19093670A8093660A80E093E03F
:1008F000909305038093040384E690E00E94810DA9
:10090000EC016CCF1F920F920FB60F9211248F93B0
:100910009F93EF93FF93809101018823E1F48091ED
:100920005E0A90915F0A019690935F0A80935E0A37
:10093000FC01E153F44FE081ED3019F08639910567
:1009400039F410925F0A10925E0A81E080930101EF
:10095000E093C60004C010925F0A10925E0AFF91F5
:10096000EF919F918F910F900FBE0F901F90189550
:1009700090910E0D913041F48091020D8093320ED2
:100980009093310E10920E0D2091CE0D2130D9F59D
:100990008091C40D9091C50DA091C60DB091C70D69
:1009A0008093150E9093160EA093170EB093180E09
:1009B0008091C00D9091C10DA091C20DB091C30D59
:1009C0008093190E90931A0EA0931B0EB0931C0ED9
:1009D0008091C80D9091C90DA091CA0DB091CB0D19
:1009E00080931D0E90931E0EA0931F0EB093200EA9
:1009F0001092CE0D2093570A809100018A3011F495
:100A0000289A01C0289880915A0E813009F042C07E
:100A100080913A0E90913B0EA0913C0EB0913D0E0C
:100A20008093210E9093220EA093230EB093240E58
:100A300080913E0E90913F0EA091400EB091410EDC
:100A40008093250E9093260EA093270EB093280E28
:100A50008091420E9091430EA091440EB091450EAC
:100A60008093290E90932A0EA0932B0EB0932C0EF8
:100A700080914A0E90914B0EA0914C0EB0914D0E6C
:100A800080932D0E90932E0EA0932F0EB093300EC8
:100A900010925A0E08951F920F920FB60F921124C2
:100AA0002F933F934F935F936F937F938F939F9376
:100AB000AF93BF93CF93DF93EF93FF938091C600E3
:100AC0008093480A8091C0004091480A887109F0DB
:100AD00000C18091600A843009F488C0853050F4E8
:100AE0008130D1F0813098F0823001F1833009F00B
:100AF000F0C021C0863009F4A9C0863008F48AC04D
:100B0000873009F4D4C0883009F0E3C0D6C0453B33
:100B100009F0E1C081E003C0423621F482E0809315
:100B2000600AD9C0453B09F4D6C0D3C0413009F0B2
:100B3000D0C083E0F4CF4093340E4F5F4093CE0B90
:100B40008091CE0B8F5F8093FD0C84E08093600AD0
:100B50008091340E8830C1F0823151F18330F1F54B
:100B60008EEF9CE09093250D8093240D2FE13EE0C5
:100B70003093CC0B2093CB0B40969093D00D809369
:100B8000CF0D80910E0D27C08CEB9DE09093250D2D
:100B90008093240D25E23FE03093CC0B2093CB0BC8
:100BA00042969093D00D8093CF0D8091CE0D13C0BF
:100BB00086E39EE09093250D8093240D2FE833E18A
:100BC0003093CC0B2093CB0B84969093D00D8093D5
:100BD000CF0D80915A0E8093350E7DC081E08093B9
:100BE000350E1092D00D1092CF0D75C0842F99271D
:100BF0009093D20D8093D10D8091CE0B840F809372
:100C0000CE0B8091FD0C9091CE0B890F8093FD0C43
:100C100085E085CF2091D10D3091D20D842F992779
:100C2000982F8827280F391F3093D20D2093D10D8C
:100C30008091CE0B840F8093CE0B8091FD0C909110
:100C4000CE0B890F8093FD0C86E069CF8091CE0B8F
:100C5000840F8093CE0B8091FD0C9091CE0B890F69
:100C60008093FD0C8091350E882381F4E091240D52
:100C7000F091250D8091CB0B9091CC0BE817F907E3
:100C800028F44193F093250DE093240D8091D10D2C
:100C90009091D20D01979093D20D8093D10D8091B8
:100CA000D10D9091D20D892BB1F487E038CF80918E
:100CB000CE0B481771F488E032CF8091FD0C4817B5
:100CC00041F4E091CF0DF091D00D309711F081E01B
:100CD00080831092600A0E94B8044091590A4639F4
:100CE00010F01092580A8091480A8D3009F05CC0CB
:100CF0008091580A823009F057C01092580AA42FE8
:100D0000BB27FD01EC5DF24F3081ED01CB5DD24F91
:100D1000288180915C0A90915D0A831B9109821B56
:100D200091099F7090935D0A80935C0A9C0196E004
:100D3000369527959A95E1F7235C20935B0A982FC7
:100D40009F73935C90935A0A8081281729F48881B5
:100D5000981711F491E006C080914B0A8F5F809341
:100D60004B0A90E08091490A882309F064C09923D6
:100D700009F461C081E08093490A40934C0AAA5D5E
:100D8000B24F8DE08C938091280D823509F053C0CD
:100D900088E190E02CE00FB6F894A895809360006D
:100DA0000FBE2093600047C08091580A8130D9F06F
:100DB000813018F08230E9F530C08091480A8332E2
:100DC00039F48091490A882319F481E08093580A04
:100DD0008091480A8093260D81E08093590A809182
:100DE000480A992715C082E08093580AE42FFF270C
:100DF0008091480AEA5DF24F80834F5F4093590A21
:100E00002091480A80915C0A90915D0A820F911DA1
:100E100090935D0A80935C0A0EC0E42FFF278091B7
:100E2000480AEA5DF24F8083463938F31092580A37
:100E3000E7CF1092580AFF91EF91DF91CF91BF91C8
:100E4000AF919F918F917F916F915F914F913F9162
:100E50002F910F900FBE0F901F901895DC0120E08E
:100E600030E040E050E0EFECFBE005C08191280F5E
:100E7000311D4F5F5F4F4A175B07C1F73F70C901D4
:100E800066E0969587956A95E1F7835CFD01E153ED
:100E9000F44F808311962F73235CFD01E153F44FCF
:100EA0002083A053B44F8DE08C9310920101809168
:100EB000CF0B8093C6000895EF92FF920F931F937C
:100EC000CF93DF937A01722F93E29093CF0B6093CD
:100ED000D00B8093D10B03E010E060E0A2EDBBE00B
:100EE00046C0F701E60FF11D90816F5F715019F454
:100EF000E0E040E00FC0F701E60FF11D40816F5FB9
:100F0000715011F4E0E006C0F701E60FF11DE08139
:100F10006F5F7150892F86958695835C8C935527DA
:100F2000892F99278370907024E0880F991F2A9544
:100F3000E1F79A0194E0369527959A95E1F7822B8F
:100F4000835CED0189834F705070440F551F440F2F
:100F5000551F8E2F8295869586958370842B835C92
:100F60008A83EF73E35CEB830C5F1F4F1496772348
:100F700009F0B7CFC8010E942E07DF91CF911F91D2
:100F80000F91FF90EF9008951F93CF93DF93EC01A3
:100F900070E0A22FBB27129748C0E42FFF27EA5D1D
:100FA000F24F30814F5FE42FFF27EA5DF24F50810F
:100FB0004F5FE42FFF27EA5DF24F10814F5FE42F70
:100FC000FF27EA5DF24F20814F5F842F9927A817F2
:100FD000B90774F15D53FE01E70FF11D3D53330F67
:100FE000330F852F82958F70382B3083613001F15C
:100FF000912F9D537F5FFE01E70FF11D71505295B8
:10100000507F892F86958695582B508363506F3F6C
:1010100079F07E5FFE01E70FF11D9295990F990F10
:10102000907C2D53922B90837F5F662309F0B5CF80
:10103000DF91CF911F9108951F93182F8A3019F4D3
:101040008DE00E941C088091C00085FFFCCF1093AA
:10105000C60080E090E01F9108950895E1ECF0E073
:1010600088E18083A0ECB0E08C9182608C938081D9
:10107000806880838081806480838AE28093C4005A
:1010800088EC90E00E94810D9093FC0C8093FB0C07
:101090001092600A089580910101882309F48AC0A2
:1010A0008091440A882371F080910101882351F0D6
:1010B0002BE04FE05DE06091CD0B87E40E945C0780
:1010C0001092440A8091FB0C9091FC0C0E948A0DB6
:1010D000882321F48091460A8823B1F08091010190
:1010E000882391F022E443ED5DE06091CD0B84E430
:1010F0000E945C071092460A84EF91E00E94810DE5
:101100009093FC0C8093FB0C609102016F3F89F07F
:10111000462F552734E0440F551F3A95E1F74C5FB1
:101120005E4F605D20E181E40E945C078FEF809359
:1011300002018091450A882359F180910101882399
:1011400039F10E947B111092450A30914E0A932F7B
:101150009F5F90934E0A943021F080914F0A88232C
:1011600059F02EE146E75EE060E084E30E945C0710
:101170008FEF80934E0A0CC044E1949FA00111248C
:10118000465E5C4F24E160E0832F8F5C0E945C0729
:101190008091470A882371F080910101882351F0E2
:1011A0002AE04AE15DE06091CD0B86E50E945C0794
:1011B0001092470A08951F93CF93DF93CDB7DEB700
:1011C00022970FB6F894DEBF0FBECDBF8091490ABB
:1011D000882309F4DFC08FEF809303018091280DED
:1011E0008B3609F45EC08C3678F4833629F1843668
:1011F00020F4813609F0CCC013C0873609F45EC0F4
:10120000883609F0C5C02BC0813709F45BC081372F
:1012100008F480C08437F1F1863709F0B9C04AC0BC
:1012200020914C0A43E062E0CE0101960E94C4077F
:10123000898180930201ACC020914C0A43E06BE0AD
:101240008FE09DE00E94C40780918E0A9091110D5D
:10125000892B80938E0A81E08093460A99C0209161
:101260004C0A43E062E0CE0101960E94C4078091DF
:101270008E0A9981892B80938E0A8A818F3F21F46F
:1012800081E080934F0A02C010924F0A81E0809360
:10129000450A7EC020914C0A43E064E080E59AE074
:1012A00006C020914C0A43E063E084E59AE00E9486
:1012B000C4076EC081E08093470A6AC081E08093D2
:1012C000440A66C020914C0A43E062E0CE010196D8
:1012D0000E94C40789818F3F89F0863010F085E035
:1012E000898347E462EB7EE089810E946302898101
:1012F00027E442EB5EE06091CD0B08C01091CD0B6E
:101300000E943C0227E442EB5EE0612F855B0E9475
:101310005C073EC020914C0A43E067E482EB9EE00C
:101320000E94C4078091280D47E462EB7EE08B5653
:101330000E944B028091280D8B56A2E0B0E0082E4F
:101340000E941D4E6091DD0E77278827992724EC97
:1013500039E040E050E00E944F4D60938703709366
:1013600088038093890390938A036091DE0E772728
:10137000882799270E944F4D60938B0370938C03AD
:1013800080938D0390938E030E943C020E94062559
:101390001092490A22960FB6F894DEBF0FBECDBF59
:1013A000DF91CF911F910895982F80915B0E81302E
:1013B00069F480918D0AE82FFF27E65EFC4F908349
:1013C0008F5F80938D0A21E030E005C0892F0E9455
:1013D0001C08282F3327C90108951F93182F04C014
:1013E00080E30E94D40911501116D4F31F9108957F
:1013F0001F93182F04C080E20E94D40911501116C7
:10140000D4F31F9108950F931F93CF93DF938C0113
:10141000EB0108C0F8010F5F1F4FE4918E2F0E946F
:10142000D40921972097B1F7DF91CF911F910F91A8
:1014300008950F931F93CF93DF938C01EB0106C0A8
:10144000F80181918F010E94D40921972097C1F75B
:10145000DF91CF911F910F9108952F923F924F925C
:101460005F926F927F928F929F92AF92BF92CF9234
:10147000DF92EF92FF920F931F93CF93DF93CDB73D
:10148000DEB7E3970FB6F894DEBF0FBECDBF299647
:101490008FAD299780935B0ECE01855B9F4F9D8317
:1014A0008C832B968EAD9FAD2B979FA78EA7222462
:1014B0003324210102C0130124010EA51FA502C07F
:1014C0000F5F1F4FF801F490FF2019F0F5E2FF16AF
:1014D000B9F7B8018EA59FA5681B790B11F00E9482
:1014E000030AFF2009F442C20F5F1F4F1FA70EA778
:1014F0001982AC81BD811BAA1AAA9FEF99ABEEA5F8
:10150000FFA5CF0101969FA78EA7B49095E7B916C6
:1015100021F08B2D8062883789F4EBA9E0FF07C0AA
:101520002D903D904D905C901397149607C08D912F
:101530009C9111971C01442455241296F0E2BF1689
:1015400021F489818823D9F685C083E2B81609F48D
:1015500083C09AE2B91621F0EDE2BE1669F408C024
:10156000FD011296E081EAABE7FFC9CFE195EAAB56
:10157000FBA9F061FF7D72C08BE2B81609F46AC066
:101580009EE2B916B1F52EA53FA52F5F3F4FEEA500
:10159000FFA584918A3221F0B82E20E030E01BC0F4
:1015A000FD0112964081518157FF02C04FEF5FEF5E
:1015B00049AB3FA72EA7A3CFC90103E0880F991F0E
:1015C0000A95E1F7220F331F280F391F2B0D311D0C
:1015D00020533040B49031968B2D80538A3060F385
:1015E000FFA7EEA7A90137FF02C04FEF5FEF49AB9E
:1015F0008DCFF0E3BF1631F48BA984FD80CF8062DC
:101600008BAB7DCF8B2D81538930E8F420E030E027
:10161000C901F3E0880F991FFA95E1F7220F331FF4
:10162000280F391F2B0D311D20533040EEA5FFA58B
:10163000CF0101969FA78EA7B4908B2D80538A303F
:1016400038F32AAB63CF98E6B91651F4EBA9E460FE
:10165000EBAB55CFB98253CFFBA9F860FBAB4FCFB3
:101660008CE6B81621F49BA991609BAB48CFBD8353
:10167000AC83E3E6BE1639F41296BD83AC831297B1
:101680008C918E8318C1F4E4BF1639F084E6B81645
:1016900039F099E6B91659F503C0EBA9E160EBAB57
:1016A000FBA9F0FF08C01496BD83AC835E904E90FA
:1016B0003E902E900AC01296BD83AC839E918E916F
:1016C0001C01442437FC4094542C57FC03C08AE08E
:1016D00088AB92C05094409430942094211C311CCB
:1016E000411C511C8DE289839AE098AB85C0EFE4E0
:1016F000BE1629F0FFE6BF1639F488E061C09BA949
:1017000091609BABE8E056C0F0E7BF1671F412960B
:10171000BD83AC839E918E911C01442455248BA9DA
:1017200080648BAB78E7B72E5EC0E3E7BE16D9F5D1
:101730001296BD83AC83DE90CE90C114D10489F49F
:1017400088E28E838EE68F8385E788878CE689879B
:101750008A8789E28B871C8666E0C62ED12CCC0E48
:10176000DD1EF9A9F7FD13C04F2F552747FD5095F2
:1017700060E070E0C6010E94DA4B009711F419A9ED
:101780000DC08C1919A981174CF4182F07C0F60148
:1017900001900020E9F731971E2F1C191982420190
:1017A000310140E094C085E5B81631F095E7B916EF
:1017B00049F4EAE0E8AB1FC0FBA9F160FBAB8AE0AB
:1017C00088AB19C098E5B91621F0E8E7BE1609F014
:1017D0006EC0FBA9F3FD02C080E1F2CF21143104F9
:1017E0004104510419F490E198AB05C0EBA9E06401
:1017F000EBABF0E1F8AB198289A987FD03C09BA987
:101800009F7D9BAB211431044104510461F4E9A98B
:10181000EE2349F46624772443015EE2C52ED12CE1
:10182000CC0EDD1E3EC04EE2C42ED12CCC0EDD1EF1
:10183000F8A9EF2EFF2400271127C201B101A8014A
:1018400097010E94A14D6A3020F430E3A32EA60E2A
:1018500008C027E5A22EA60E88E5B81611F49FED64
:10186000A922F601A2926F01C201B101A80197015C
:101870000E94A14D39014A012E143F044006510631
:1018800018F019012A01D9CFF8A9F83051F48BA921
:1018900083FF07C090E3A91621F080E3F60182934D
:1018A0006F01CE018C19182F125D49A910C0BB2001
:1018B00009F45CC0BE8219824201310100E096E069
:1018C000C92ED12CCC0EDD1E11E021E005C0212F48
:1018D000042F011B07FD00E08981882319F0812F67
:1018E0008F5F07C09BA996FD02C0812F02C0822F87
:1018F0008E5FA82EA00EEBA9EE2EFF2480E3482ECB
:10190000512C4E205F204114510421F48AA98A19D8
:101910000E94F8098981882329F061E070E0CE01F6
:10192000019609C0E6FE09C080E38A83BB8262E0BB
:1019300070E0CE0102960E94190AF0E24F1651049F
:1019400021F48AA98A190E94ED09802F0E94ED09CD
:10195000612F772767FD7095C6010E94190AE4FE82
:10196000AACD8AA98A190E94F809A5CDE3960FB6D7
:10197000F894DEBF0FBECDBFDF91CF911F910F91C5
:10198000FF90EF90DF90CF90BF90AF909F908F909F
:101990007F906F905F904F903F902F9008951F928F
:1019A0000F920FB60F9211242F933F935F936F9373
:1019B0007F938F939F93AF93BF9380916A0A8150D7
:1019C00080936A0A8F3FB9F489E080936A0A809114
:1019D00007038F5F817080930703882319F481E0E8
:1019E0008093630A8091610A9091620A01969093B4
:1019F000620A8093610A8091660A9091670A029751
:101A0000B8F08091660A9091670A01979093670AEF
:101A10008093660A8091660A9091670A2091040378
:101A20003091050382239323892B09F056C006C009
:101A30008FEF9FEF90930503809304038091000143
:101A40008A3039F404C05A9A05C0479A03C05A989C
:101A500001C047988091BA0E992783FD02C085FF87
:101A600042C0349B0AC08091640A9091650A019635
:101A70009093650A8093640A36C08091640A9091BD
:101A8000650A892B79F08091640A9091650A805AE1
:101A90009F4040F48091640A9091650A9093E80A0F
:101AA0008093E70A8091E70A9091E80A2091E90A79
:101AB0003091EA0A821B930B845E9D4F68E671E0C9
:101AC0000E948E4D845B90409093EC0A8093EB0AC9
:101AD0001092650A1092640A06C0809100018A3053
:101AE00009F0B3CFB0CFBF91AF919F918F917F910C
:101AF0006F915F913F912F910F900FBE0F901F90AC
:101B000018952091610A3091620A2F5F3F4F820F32
:101B1000931F08952091610A3091620A821B930BF2
:101B2000892F992786958074992708951F920F927F
:101B30000FB60F921124EF92FF920F931F932F93E2
:101B40003F934F935F936F937F938F939F93AF9345
:101B5000BF93CF93DF93EF93FF9380910603815060
:101B6000809306038F3F09F06DC083E88093B00037
:101B700080919C03C82FDD27D093690AC093680A1F
:101B80008091E70EE090D40E80FF1EC06091AB0AFA
:101B90007091AC0A8091AD0A9091AE0AFF240027A3
:101BA000112720E830E040E050E00E94C34DC8011A
:101BB000B7010E944F4D20E032E040E050E00E942B
:101BC000C34DC20FD31F1DC06091AB0A7091AC0A08
:101BD0008091AD0A9091AE0AFF240027112720E8DA
:101BE00030E040E050E00E94C34DC801B7010E94C0
:101BF0004F4D20E032E040E050E00E94C34DC21B58
:101C0000D30BD093690AC093680A2091680A309177
:101C1000690A8091D50E99272817390734F08091E9
:101C2000D60E99278217930724F49093690A80931C
:101C3000680A8091680A8093B3008091D70E8093E0
:101C4000060304C083E08093B0005F98FF91EF919A
:101C5000DF91CF91BF91AF919F918F917F916F91C4
:101C60005F914F913F912F911F910F91FF90EF90B6
:101C70000F900FBE0F901F9018958091610A909160
:101C8000620A0B9690936C0A80936B0A82E085BD82
:101C900083EA84BD17BC88E788BD96E096BD83ECD7
:101CA0008093B0009093B100E0E7F0E08081826023
:101CB0008083EEE6F0E08081816080838AE080931B
:101CC000B3001092B20008952091610A3091620A27
:101CD0002F5F3F4F280F391F4FEE02C040937A000D
:101CE0008091610A9091620AB901681B790B77FFB4
:101CF000F5CF08952091610A3091620A2F5F3F4F1E
:101D0000280F391F8091610A9091620AA901481B2E
:101D1000590B57FFF7CF089510927C008FEE8093F8
:101D20007A0008951F920F920FB60F921124DF923E
:101D3000EF92FF920F931F932F933F934F935F93D5
:101D40006F937F938F939F93AF93BF93CF93DF93C3
:101D5000EF93FF9310927A008091890AD82ED39442
:101D6000D092890A853009F484C0863090F482309C
:101D700009F440C0833030F48823F1F0813009F059
:101D80004FC22FC0833009F43FC0843009F048C2ED
:101D900058C0883009F4C0C0893038F4863009F45E
:101DA00081C0873009F03CC29AC0893009F4D1C0A3
:101DB0008A3009F035C2B1C18091780090917900E4
:101DC0009093880A8093870A81E080938A0A8091A1
:101DD000810A9091820A01969093820A8093810AE7
:101DE00015C280917800909179009093860A809333
:101DF000850A90C080917800909179009093840A30
:101E00008093830A84E086C14091080350910903BE
:101E100080917800909179009A01220F331F240F4E
:101E2000351F63E070E00E947A4D260F371F36950C
:101E3000279536952795309309032093080386E06C
:101E400069C18091A30A9091A40A209178003091F1
:101E50007900821B930B90935D0E80935C0E8091B2
:101E60005C0E90915D0E9093740A8093730A87E0E4
:101E700051C180917800909179002091A10A309110
:101E8000A20A821B930B9093680E8093670E809139
:101E9000670E9091680E9093760A8093750A10925F
:101EA0008A0AB4C1809100012091870A3091880A82
:101EB0008A3049F48091780090917900820F931FC5
:101EC0009695879506C08091780090917900820F51
:101ED000931F9093720A8093710A81E01BC18091D5
:101EE00000012091850A3091860A8A3049F4809158
:101EF000780090917900820F931F9695879506C080
:101F00008091780090917900820F931F9093700ACE
:101F100080936F0A82E0FEC0809100012091830AC5
:101F20003091840A8A3049F4809178009091790048
:101F3000820F931F9695879506C0809178009091A7
:101F40007900820F931F90936E0A80936D0A85E04B
:101F5000E1C06091780070917900E090A50AF0905E
:101F6000A60A0091A70A1091A80A882777FD8095F4
:101F7000982F0E948D4CA80197010E94E74B0E9468
:101F8000704C7093780A6093770A2091770A3091A9
:101F9000780AE0915C0EF0915D0E8091670E909151
:101FA000680E97FF03C0909581959F4F64E070E0A5
:101FB0000E948E4DEB01CF01F7FF03C090958195F4
:101FC0009F4F64E070E00E948E4D260F371F2C0F4C
:101FD0003D1F3093780A2093770A8091770A909179
:101FE000780A029704F16091A50A7091A60A80917F
:101FF000A70A9091A80A20E030E048E454E40E9447
:10200000974C88230CF03CC06091A50A7091A60AF9
:102010008091A70A9091A80A2AE037ED43EA5CE391
:102020000E94E84B25C08091770A9091780A8F5FD3
:102030009F4F34F56091A50A7091A60A8091A70A76
:102040009091A80A20E030E046E154E40E949A4CC6
:102050001816B4F46091A50A7091A60A8091A70A97
:102060009091A80A2AE037ED43EA5CE30E94E74B2F
:102070006093A50A7093A60A8093A70A9093A80A72
:1020800081E080937E0A809178009091790090930E
:102090005F0E80935E0E2091E30A3091E40A409136
:1020A000E50A5091E60A8091770A9091780AAA276A
:1020B00097FDA095BA2F280F391F4A1F5B1F209349
:1020C000E30A3093E40A4093E50A5093E60AE0906D
:1020D000E30AF090E40A0091E50A1091E60A6091A3
:1020E000E30A7091E40A8091E50A9091E60A20E003
:1020F00034E040E050E00E94C34DE21AF30A040BC2
:10210000150BE092E30AF092E40A0093E50A1093BB
:10211000E60A83E080938A0A79C080916C0E9091E0
:102120006D0E2091780030917900820F931F90936B
:102130006D0E80936C0E8091640E8F5F8093640EA1
:102140008091640E853008F46BC080917800909186
:10215000790090930F0380930E031092640E809188
:10216000600E9091610E20916C0E30916D0E821B6D
:10217000930B20910C0B30910D0B821B930B9093C2
:10218000800A80937F0A60916C0E70916D0EE090D2
:102190000A03F0900B0300910C0310910D038827A4
:1021A00077FD8095982FA8019701220F331F441FB8
:1021B000551F2E0D3F1D401F511F620F731F841F9F
:1021C000951F24E030E040E050E00E94C34D209392
:1021D0000A0330930B0340930C0350930D0320919B
:1021E000600E3091610E80910A0390910B03A091D3
:1021F0000C03B0910D03281B390B30930D0B20936A
:102200000C0B10926D0E10926C0E0AC080918A0A0F
:1022100080937C00DD2051F08FEE80937A0006C021
:1022200010928A0A1092890A10927C00FF91EF9115
:10223000DF91CF91BF91AF919F918F917F916F91DE
:102240005F914F913F912F911F910F91FF90EF90D0
:10225000DF900F900FBE0F901F901895CF93DF93D4
:10226000A3E0B0E00E94154E802DC82FDD27C531B8
:10227000D10508F02A97C7BD84E690E00E94640E5D
:1022800080910E0390910F0382559340D0F4C0E0EB
:10229000D0E017C0C7BD82E390E00E94640E80E7E3
:1022A00091E09F938F931F920E942D0A80910E03BD
:1022B00090910F030F900F900F908458934020F04F
:1022C0002196CA3FD10530F3A3E0B0E00C2E0E9466
:1022D0001D4EC093690E8CE291E00E94640EDF9166
:1022E000CF910895EAE1F3E080E2819393E0EA364A
:1022F000F907D9F70895FF920F931F9380918E0AE3
:10230000282F3327C90181709070682F8823A9F086
:1023100080918F0A882311F0815002C080916A0356
:1023200080938F0AEAE1F3E080E2819393E0EA365A
:10233000F907D9F78FEF80934E0AA90142705070C8
:1023400021FF10C080918F0A8F5F80938F0AEAE18E
:10235000F3E080E2819393E0EA36F907D9F78FEF53
:1023600080934E0A662321F0452B11F010928F0ABC
:1023700081E180938D0A80918F0A99279F938F9393
:1023800084E394E09F938F9311E0F12EFF920E94DB
:102390002D0A00918F0A0F900F900F900F900F90C1
:1023A000053009F4F4C1063090F4023009F4CCC0D1
:1023B000033030F40023F1F0013009F0EEC361C0C6
:1023C000033009F416C1043009F0E7C365C10830D1
:1023D00009F40EC3093038F4063009F491C207300D
:1023E00009F0DBC3E2C2093009F43FC30A3009F047
:1023F000D4C396C310928D0A82E294E09F938F9388
:10240000FF920E942D0A84E180938D0A20910001A1
:1024100087E690E09F938F9383E490E09F938F9360
:102420001F921F92822F6AE00E946E4D892F99277A
:102430009F938F93822F0E946E4D99279F938F9326
:102440008DE094E09F938F93FF920E942D0A88E283
:1024500080938D0A0E943C0299279F938F9380E07E
:1024600094E09F938F93FF920E942D0A8CE38093B8
:102470008D0A80EF93E09F938F93FF920E942D0A25
:1024800090C28091BA0E80FF47C010928D0A809151
:102490000C0B90910D0B9F938F9381EE93E09F9384
:1024A0008F930F930E942D0A84E180938D0A80916F
:1024B0000E0B90910F0B9F938F9382ED93E09F9360
:1024C0008F930F930E942D0A88E280938D0A80914A
:1024D0000E0390910F039F938F9383EC93E09F9350
:1024E0008F930F930E942D0A8CE380938D0A809125
:1024F000690E99279F938F9384EB93E09F938F931B
:102500000F930E942D0A8DB79EB744960FB6F8948C
:102510009EBF0FBE8DBF46C384E180938D0A8DEAB6
:1025200093E09F938F930F930E942D0A88E28093EC
:102530008D0A8FE993E09F938F930F930E942D0A4A
:102540008DB79EB70696E2CF10928D0A85E993E08B
:102550009F938F93FF920E942D0A84E180938D0AAE
:102560006091AB0A7091AC0A8091AD0A9091AE0A6D
:1025700020E034E040E050E00E94C34D5F934F9371
:102580003F932F9386E893E09F938F93FF920E944F
:102590002D0A88E280938D0A6091B30A7091B40A83
:1025A0008091B50A9091B60A20E034E040E050E016
:1025B0000E94C34D5F934F933F932F9387E793E020
:1025C0009F938F93FF920E942D0A8CE380938D0A34
:1025D0008091E70A9091E80A9F938F9388E693E0B1
:1025E0009F938F93FF920E942D0A8DB79EB74696B8
:1025F0008DCF10928D0A80917A0E90917B0E209152
:10260000780E3091790E9F938F933F932F9388E5A7
:1026100093E09F938F93FF920E942D0A84E1809311
:102620008D0A80917E0E90917F0E20917C0E3091CC
:102630007D0E9F938F933F932F9388E493E09F9316
:102640008F93FF920E942D0A88E280938D0A8091D9
:10265000820E9091830E2091800E3091810E9F9377
:102660008F933F932F9388E393E09F938F93FF92F1
:102670000E942D0A8CE380938D0A8091860E9091A2
:10268000870E2091840E3091850E9F938F933F93F8
:102690002F9388E293E03BC210928D0AE091B30E33
:1026A000FF27EE0FFF1FEA58F14F20813181E091A3
:1026B000B20EFF27EE0FFF1FEA58F14F8081918184
:1026C0003F932F939F938F9388E193E09F938F93F2
:1026D000FF920E942D0A84E180938D0AE091B50E4D
:1026E000FF27EE0FFF1FEA58F14F20813181E09163
:1026F000B40EFF27EE0FFF1FEA58F14F8081918142
:102700003F932F939F938F9388E093E09F938F93B2
:10271000FF920E942D0A88E280938D0AE091B70E05
:10272000FF27EE0FFF1FEA58F14F20813181E09122
:10273000B60EFF27EE0FFF1FEA58F14F80819181FF
:102740003F932F939F938F9388EF92E09F938F9364
:10275000FF920E942D0A8CE380938D0AE091B90EBE
:10276000FF27EE0FFF1FEA58F14F20813181E091E2
:10277000B80EFF27EE0FFF1FEA58F14F80819181BD
:102780003F932F939F938F9388EE92E0C0C1109256
:102790008D0A8AED92E09F938F93FF920E942D0AFB
:1027A0000F900F900F90809100018A3009F04AC07D
:1027B00084E180938D0A4091970A5091980A809104
:1027C0006D0A90916E0A2091970A3091980A5F9352
:1027D0004F93821B930B9F938F938BEC92E09F936D
:1027E0008F93FF920E942D0A88E280938D0A409178
:1027F000990A50919A0A80916F0A9091700A2091DB
:10280000990A30919A0A5F934F93821B930B9F937F
:102810008F938CEB92E09F938F93FF920E942D0AEF
:102820008CE380938D0A80919B0A90919C0A209161
:10283000210F3091220F9F938F933F932F938DEA17
:1028400092E055C084E180938D0A8091970A90911F
:10285000980A20916D0A30916E0AE091970AF091E2
:10286000980A62E070E00E948E4D7F936F932E1B5A
:102870003F0B3F932F938EE992E09F938F93FF92AC
:102880000E942D0A88E280938D0A8091990A909186
:102890009A0A20916F0A3091700AE091990AF0919A
:1028A0009A0A62E070E00E948E4D7F936F932E1B18
:1028B0003F0B3F932F938FE892E09F938F93FF926C
:1028C0000E942D0A8CE380938D0A80919B0A90913F
:1028D0009C0A2091210F3091220F62E070E00E944B
:1028E0008E4D7F936F933F932F9380E892E09F9359
:1028F0008F93FF920E942D0A8DB79EB7459606CE04
:1029000010928D0A83E792E09F938F93FF920E942B
:102910002D0A84E180938D0A8091A10A9091A20AE8
:102920002091750A3091760A9F938F933F932F934E
:1029300084E692E09F938F93FF920E942D0A88E293
:1029400080938D0A8091A30A9091A40A2091730A22
:102950003091740A9F938F933F932F9385E592E074
:102960009F938F93FF920E942D0A8CE380938D0A90
:102970006091A50A7091A60A8091A70A9091A80A71
:102980000091090F10910A0F0E94704C7F936F9372
:102990001F930F9386E492E09F938F93FF920E9480
:1029A0002D0A8DB79EB74896B1CD84E180938D0AEC
:1029B00080910803909109039F938F9387E392E09E
:1029C0009F938F93FF920E942D0A88E280938D0A35
:1029D0008091040B99279F938F9388E292E09F93B5
:1029E0008F93FF920E942D0A8DB79EB70A968ECDC7
:1029F00010928D0A89E192E09F938F93FF920E943B
:102A00002D0A84E180938D0A8091EB0A9091EC0A63
:102A10009F938F938AE092E09F938F93FF920E94FF
:102A20002D0A88E280938D0A8091E70A9091E80A46
:102A30009F938F938BEF91E09F938F93FF920E94D0
:102A40002D0A8CE380938D0A8091E90A9091EA0A1D
:102A50009F938F938CEE91E09F938F93FF920E94B0
:102A60002D0A8DB79EB7429651CD10928D0A809156
:102A7000FC0A9091FD0A9F938F938091F40A9091A4
:102A8000F50A9F938F938AED91E09F938F93FF9226
:102A90000E942D0A84E180938D0A8091FE0A909114
:102AA000FF0A9F938F938091F60A9091F70A9F9364
:102AB0008F9388EC91E09F938F93FF920E942D0A51
:102AC00088E280938D0A8091000B9091010B9F9377
:102AD0008F938091F80A9091F90A9F938F9386EBD8
:102AE00091E09F938F93FF920E942D0A8CE3809335
:102AF0008D0A8091020B9091030B9F938F9380918D
:102B0000FA0A9091FB0A9F938F9384EA91E09F9336
:102B10008F93FF920E942D0A8DB79EB74C96F6CCEC
:102B200010928D0A8CE991E09F938F93FF920E94FF
:102B30002D0A84E180938D0A80919C0399279F93AD
:102B40008F938EE891E09F938F93FF920E942D0ABE
:102B500088E280938D0A8091680A9091690A9F9318
:102B60008F9380E891E09F938F93FF920E942D0AAC
:102B70008CE380938D0A8091D60E99279F938F9333
:102B80008091D50E99279F938F9382E791E09F9331
:102B90008F93FF920E942D0AB6CC015000936A03D6
:102BA00010928F0A10928E0A1F910F91FF90089534
:102BB0001092B9008AE28093B800089585EA809364
:102BC000BC0080E090E0089584E98093BC00089503
:102BD0001092B9008093BB0085E88093BC0080E030
:102BE00090E008951F920F920FB60F9211248F93C9
:102BF0009F93EF93FF938091900A8F5F8093900A49
:102C000081508330A9F1843028F4813091F08230F2
:102C100008F50AC0853089F18530B8F18630A9F110
:102C2000873009F061C045C08091910A880F8E5AA3
:102C300009C08091910A8F5F8093910A815027C0CB
:102C40008091FC0E1092B9008093BB0085E88093C0
:102C5000BC004AC084E98093BC008091910A843012
:102C600018F41092900A02C01092910A85EAEFCFF0
:102C70008091920A880F8D5AE5CF8091BB00E09138
:102C8000920AFF27E259F14F80838091920A8130A6
:102C900039F08130A8F2823031F0833029F506C056
:102CA0008091010FCFCF8091190FCCCF80911B0F56
:102CB000C9CF8091920A9091BB00E82FFF27E2597B
:102CC000F14F94838F5F8093920A843010F01092BA
:102CD000920A84E98093BC008AE090E09093860396
:102CE000809385031092900A8091BC008068809345
:102CF000BC00FF91EF919F918F910F900FBE0F90AD
:102D00001F9018954CEB50E084E9DA018C931092F7
:102D1000900A2BEB30E0F90180811092910A80E853
:102D20008C931092BD001092BA001082E9EBF0E093
:102D30001082A8EBB0E01C9210828AE28C9385EAA4
:102D4000DA018C931082F901108285E88C93089542
:102D500083EC80938100EFE6F0E0808180628083E5
:102D600010929C0A10929B0A10929A0A1092990A49
:102D70001092980A1092970A08951F920F920FB618
:102D80000F9211240F931F932F933F934F935F93B1
:102D90006F937F938F939F93AF93BF93CF93DF9363
:102DA000EF93FF9320918600309187008091950AE0
:102DB0009091960A281B390B80918600909187008C
:102DC0009093960A8093950AC9018D5D954083562C
:102DD000994148F481E090E09093940A8093930A9B
:102DE00010926B0367C0C091930AD091940ACE30C1
:102DF000D1050CF05FC0C9018B5F9040845B9140AE
:102E000008F040C0A901425D5140FE01EE0FFF1FD6
:102E1000EA58F14F80819181FA01E81BF90BCF014B
:102E2000F7FF03C0909581959F4F06974CF48091D2
:102E3000040B883C28F48091040B865F8093040B7C
:102E4000FE01EE0FFF1F8F010A58114FD8012D917F
:102E50003C91C901880F991F820F931F840F951F02
:102E600064E070E00E948E4DD8018D919C91119785
:102E70009B01281B390BEC56F14F318320831196AF
:102E80007C936E93FE013196F093940AE093930A3B
:102E9000E530F10519F45D9A5C980BC05D98E63059
:102EA000F10511F45C9A05C05C98379711F45B9AB0
:102EB00001C05B98FF91EF91DF91CF91BF91AF91EE
:102EC0009F918F917F916F915F914F913F912F9142
:102ED0001F910F910F900FBE0F901F9018952F927A
:102EE0003F924F925F926F927F928F929F92AF929A
:102EF000BF92CF92DF92EF92FF920F931F93CF93E7
:102F0000DF93CDB7DEB722970FB6F894DEBF0FBEC2
:102F1000CDBF80919B0A90919C0A2091710A3091BB
:102F2000720A821B930B9093220F8093210F809142
:102F30006F0A9091700A2091990A30919A0A821B27
:102F4000930B9093FB0E8093FA0E80916D0A9091F3
:102F50006E0A2091970A3091980A821B930B9093E6
:102F6000030F8093020FE0901E0FF0901F0F6091EF
:102F7000750A7091760A0027F7FC0095102F8827B4
:102F800077FD8095982F2CE030E040E050E00E94E3
:102F90004F4DE60EF71E081F191FC801B70122E0AA
:102FA00030E040E050E00E94C34D30931F0F20936B
:102FB0001E0FE090280FF090290F6091730A709116
:102FC000740A0027F7FC0095102F882777FD80955D
:102FD000982F2CE030E040E050E00E944F4DE60E8C
:102FE000F71E081F191FC801B70122E030E040E0BA
:102FF00050E00E94C34D3093290F2093280F609119
:10300000090F70910A0F2091770A3091780A88276A
:1030100077FD8095982F442737FD4095542F620FF8
:10302000731F841F951F22E030E040E050E00E94B3
:10303000C34D30930A0F2093090F2091BB0A3091A2
:10304000BC0A4091BD0A5091BE0A6091750A709108
:10305000760ACB01880F991F860F971F880F991F3B
:10306000880F991FAA2797FDA095BA2F280F391FFF
:103070004A1F5B1F2093BB0A3093BC0A4093BD0AD2
:103080005093BE0A2091BF0A3091C00A4091C10AF4
:103090005091C20A6091730A7091740ACB01880F33
:1030A000991F860F971F880F991F880F991FAA27AE
:1030B00097FDA095BA2F280F391F4A1F5B1F209339
:1030C000BF0A3093C00A4093C10A5093C20A60916C
:1030D000C30A7091C40A8091C50A9091C60AE09013
:1030E0005E0EF0905F0EA090A50AB090A60AC09068
:1030F000A70AD090A80A0E948D4C3B014C010027E2
:10310000F7FC0095102FC801B7010E948D4CA60155
:1031100095010E94E74B9B01AC01C401B3010E94E1
:10312000E84B0E94704C6093C30A7093C40A80936A
:10313000C50A9093C60A2091DB0A3091DC0A4091BF
:10314000DD0A5091DE0A8091210F9091220FAA276B
:1031500097FDA095BA2F280F391F4A1F5B1F209398
:10316000DB0A3093DC0A4093DD0A5093DE0A20919B
:10317000DF0A3091E00A4091E10A5091E20A809121
:10318000210F9091220FAA2797FDA095BA2F280F03
:10319000391F4A1F5B1F2093DF0A3093E00A4093D8
:1031A000E10A5093E20A2091140B2A83222309F0AA
:1031B0006BC08091150B882309F066C08091BA0E10
:1031C00086FF62C06091CB0A7091CC0A8091CD0AD3
:1031D0009091CE0AE090210FF090220FA090220B48
:1031E000BB24CC24DD2420E030E140E050E00E940C
:1031F000C34D0027F7FC0095102FCA01B901A801A3
:1032000097010E944F4DA60195010E944F4D20E06D
:1032100038E040E050E00E94C34D20936D0B3093A6
:103220006E0B40936F0B5093700B6091D30A7091AB
:10323000D40A8091D50A9091D60AE090210FF0909F
:10324000220F20E030E140E050E00E94C34D002713
:10325000F7FC0095102FCA01B901A80197010E943F
:103260004F4DA60195010E944F4D20E038E040E00F
:1032700050E00E94C34D2093690B30936A0B40933A
:103280006B0B50936C0B10C01092690B10926A0B71
:1032900010926B0B10926C0B10926D0B10926E0BC8
:1032A00010926F0B1092700B8091FA0E9091FB0EA2
:1032B00020906D0B30906E0B40906F0B5090700B08
:1032C000820D931D9093FB0E8093FA0E0091FA0EDF
:1032D0001091FB0EA090690BB0906A0BC0906B0B25
:1032E000D0906C0B8091230B682E7724882499242E
:1032F000C601B501A40193010E944F4D20E032E0C8
:1033000040E050E00E94C34D020F131F1093FB0ECC
:103310000093FA0E2091D70A3091D80A4091D90A29
:103320005091DA0A8091FA0E9091FB0EAA2797FD30
:10333000A095BA2F280F391F4A1F5B1F2093D70A69
:103340003093D80A4093D90A5093DA0A2091D30ACD
:103350003091D40A4091D50A5091D60A8091FA0E44
:103360009091FB0E6091100B7091110B861B970BC7
:10337000AA2797FDA095BA2F280F391F4A1F5B1F58
:103380002093D30A3093D40A4093D50A5093D60A97
:103390008091D30A9091D40AA091D50AB091D60A0F
:1033A000E0908B03F0908C0300918D0310918E03BD
:1033B000E816F9060A071B0704F580E197E2A0E08A
:1033C000B0E08E199F09A00BB10B8093D30A9093A4
:1033D000D40AA093D50AB093D60A8091D30A9091CB
:1033E000D40AA091D50AB091D60A8093D70A9093B7
:1033F000D80AA093D90AB093DA0A2091D30A30915F
:10340000D40A4091D50A5091D60A88279927DC0121
:103410008E199F09A00BB10B281739074A075B07C4
:1034200004F580EF98EDAFEFBFEFE80EF91E0A1F2D
:103430001B1FE092D30AF092D40A0093D50A10938E
:10344000D60A8091D30A9091D40AA091D50AB0915E
:10345000D60A8093D70A9093D80AA093D90AB0933A
:10346000DA0A80916F0A9091700A0F9734F488E11C
:103470009CEF9093FB0E8093FA0E80916F0A9091CF
:10348000700A079734F480E398EF9093FB0E8093D3
:10349000FA0E9091000199839A30A9F480916F0AF5
:1034A0009091700A835F934034F088EE93E090939C
:1034B000FB0E8093FA0E80916F0A9091700A8A5FDA
:1034C0009340DCF014C080916F0A9091700A855E81
:1034D000974034F088EE93E09093FB0E8093FA0EC1
:1034E00080916F0A9091700A835F974034F080ED6D
:1034F00097E09093FB0E8093FA0E8091020F9091CB
:10350000030F8A199B099093030F8093020F009178
:10351000020F1091030FC201B101A40193010E9497
:103520004F4D20E032E040E050E00E94C34D021BCE
:10353000130B1093030F0093020F2091CF0A3091C9
:10354000D00A4091D10A5091D20A8091020F9091F5
:10355000030FAA2797FDA095BA2F280F391F4A1FDE
:103560005B1F2093CF0A3093D00A4093D10A509327
:10357000D20A2091CB0A3091CC0A4091CD0A5091C9
:10358000CE0A8091020F9091030F6091120B7091FF
:10359000130B861B970BAA2797FDA095BA2F280F10
:1035A000391F4A1F5B1F2093CB0A3093CC0A4093EC
:1035B000CD0A5093CE0A8091CB0A9091CC0AA0916B
:1035C000CD0AB091CE0AE0908703F0908803009175
:1035D000890310918A03E816F9060A071B0704F508
:1035E00080E197E2A0E0B0E08E199F09A00BB10B3B
:1035F0008093CB0A9093CC0AA093CD0AB093CE0AC5
:103600008091CB0A9091CC0AA091CD0AB091CE0ABC
:103610008093CF0A9093D00AA093D10AB093D20A94
:103620002091CB0A3091CC0A4091CD0A5091CE0A1C
:1036300088279927DC018E199F09A00BB10B281749
:1036400039074A075B0704F580EF98EDAFEFBFEF4E
:10365000E80EF91E0A1F1B1FE092CB0AF092CC0A5B
:103660000093CD0A1093CE0A8091CB0A9091CC0A98
:10367000A091CD0AB091CE0A8093CF0A9093D00A40
:10368000A093D10AB093D20A80916D0A90916E0AEC
:103690000F9734F488E19CEF9093030F8093020F0F
:1036A00080916D0A90916E0A079734F480E398EF49
:1036B0009093030F8093020F99819A30A9F480911F
:1036C0006D0A90916E0A835F934034F088EE93E028
:1036D0009093030F8093020F80916D0A90916E0A70
:1036E0008A5F9340DCF014C080916D0A90916E0A5D
:1036F000855E974034F088EE93E09093030F8093BB
:10370000020F80916D0A90916E0A835F974034F0AA
:1037100080ED97E09093030F8093020F8FEE8093DC
:103720007A008091DB0A9091DC0AA091DD0AB091C9
:10373000DE0A8093C70A9093C80AA093C90AB0937F
:10374000CA0A8091CB0A9091CC0AA091CD0AB0917F
:10375000CE0A8093AB0A9093AC0AA093AD0AB093C3
:10376000AE0A8091D30A9091D40AA091D50AB09163
:10377000D60A8093B30A9093B40AA093B50AB09383
:10378000B60A8091CF0A9091D00AA091D10AB09147
:10379000D20A8093AF0A9093B00AA093B10AB09373
:1037A000B20A8091D70A9091D80AA091D90AB09113
:1037B000DA0A8093B70A9093B80AA093B90AB09333
:1037C000BA0A9091BA0E97FF6DC02A81222309F0A0
:1037D00069C08091150B882309F064C092FD62C016
:1037E0008091020F9091030F893C91057CF020910C
:1037F000020F3091030F8091020F9091030F880FF9
:10380000991F880F991F2052334015C08091020FD5
:103810009091030F88539F4FA4F42091020F309191
:10382000030F8091020F9091030F880F991F880F4B
:10383000991F205E3C4F820F931F9093030F80933C
:10384000020F8091FA0E9091FB0E893C91057CF05D
:103850002091FA0E3091FB0E8091FA0E9091FB0EA2
:10386000880F991F880F991F2052334015C08091EF
:10387000FA0E9091FB0E88539F4FA4F42091FA0EFC
:103880003091FB0E8091FA0E9091FB0E880F991FDC
:10389000880F991F205E3C4F820F931F9093FB0E61
:1038A0008093FA0E2091F40A3091F50A8091B60EB9
:1038B000E82FFF27EE0FFF1FEA58F14F808191811B
:1038C00082599F4F281739071CF42F5F3F4F0CC0B8
:1038D0008081918182599F4F821793074CF4211563
:1038E000310531F0215030403093F50A2093F40A2D
:1038F0002091F60A3091F70A8091B70EE82FFF2742
:10390000EE0FFF1FEA58F14F8081918182599F4F3E
:10391000281739071CF42F5F3F4F0CC0808191811D
:1039200082599F4F821793074CF42115310531F0CE
:10393000215030403093F70A2093F60A2091F80A7C
:103940003091F90A8091B80EE82FFF27EE0FFF1F84
:10395000EA58F14F8081918182599F4F281739078A
:103960001CF42F5F3F4F0CC08081918182599F4F83
:10397000821793074CF42115310531F02150304066
:103980003093F90A2093F80A2091FA0A3091FB0A41
:103990008091B90EE82FFF27EE0FFF1FEA58F14F75
:1039A0008081918182599F4F281739071CF42F5F1E
:1039B0003F4F0CC08081918182599F4F821793079E
:1039C0004CF42115310531F0215030403093FB0A81
:1039D0002093FA0A2091FC0A3091FD0A8091880E0A
:1039E0009091890E82599F4F281739071CF42F5F39
:1039F0003F4F0EC08091880E9091890E82599F4F43
:103A0000821793074CF42115310531F021503040D5
:103A10003093FD0A2093FC0A2091FE0A3091FF0AA0
:103A200080918A0E90918B0E82599F4F28173907EB
:103A30001CF42F5F3F4F0EC080918A0E90918B0E29
:103A400082599F4F821793074CF42115310531F0AD
:103A5000215030403093FF0A2093FE0A2091000B42
:103A60003091010B80918C0E90918D0E82599F4F59
:103A7000281739071CF42F5F3F4F0EC080918C0E22
:103A800090918D0E82599F4F821793074CF4211508
:103A9000310531F0215030403093010B2093000B61
:103AA0002091020B3091030B80918E0E90918F0E1E
:103AB00082599F4F281739071CF42F5F3F4F0EC0C4
:103AC00080918E0E90918F0E82599F4F821793078F
:103AD0004CF42115310531F0215030403093030B67
:103AE0002093020B8091F40A9091F50A97FF05C08C
:103AF0001092F50A1092F40A0AC08F3F910539F02E
:103B000034F08FEF90E09093F50A8093F40A80915F
:103B1000F60A9091F70A97FF05C01092F70A1092E3
:103B2000F60A0AC08F3F910539F034F08FEF90E02C
:103B30009093F70A8093F60A8091F80A9091F90A17
:103B400097FF05C01092F90A1092F80A0AC08F3F39
:103B5000910539F034F08FEF90E09093F90A80935B
:103B6000F80A8091FA0A9091FB0A97FF05C010921B
:103B7000FB0A1092FA0A0AC08F3F910539F034F01F
:103B80008FEF90E09093FB0A8093FA0A8091FC0AF1
:103B90009091FD0A97FF05C01092FD0A1092FC0A51
:103BA0000AC08F3F910539F034F08FEF90E0909389
:103BB000FD0A8093FC0A8091FE0A9091FF0A97FF0C
:103BC00005C01092FF0A1092FE0A0AC08F3F9105AD
:103BD00039F034F08FEF90E09093FF0A8093FE0A63
:103BE0008091000B9091010B97FF05C01092010B83
:103BF0001092000B0AC08F3F910539F034F08FEF1F
:103C000090E09093010B8093000B8091020B9091B8
:103C1000030B97FF05C01092030B1092020B0AC012
:103C20008F3F910539F034F08FEF90E09093030BC4
:103C30008093020B22960FB6F894DEBF0FBECDBF65
:103C4000DF91CF911F910F91FF90EF90DF90CF9078
:103C5000BF90AF909F908F907F906F905F904F90AC
:103C60003F902F90089510927A0080916D0A909164
:103C70006E0A9093030F8093020F80916F0A9091C8
:103C8000700A9093FB0E8093FA0E8091710A9091C6
:103C9000720A9093220F8093210F6091750A7091A0
:103CA000760A882777FD8095982F2CE030E040E059
:103CB00050E00E944F4D70931F0F60931E0F609154
:103CC000730A7091740A882777FD8095982F0E9457
:103CD0004F4D7093290F6093280F8091770A909130
:103CE000780A90930A0F8093090F8FEE80937A00E1
:103CF0002091F40A3091F50A8091B60EE82FFF2743
:103D0000EE0FFF1FEA58F14F8081918182599F4F3A
:103D1000281739071CF42F5F3F4F0CC08081918119
:103D200082599F4F821793074CF42115310531F0CA
:103D3000215030403093F50A2093F40A2091F60A7E
:103D40003091F70A8091B70EE82FFF27EE0FFF1F83
:103D5000EA58F14F8081918182599F4F2817390786
:103D60001CF42F5F3F4F0CC08081918182599F4F7F
:103D7000821793074CF42115310531F02150304062
:103D80003093F70A2093F60A2091F80A3091F90A45
:103D90008091B80EE82FFF27EE0FFF1FEA58F14F72
:103DA0008081918182599F4F281739071CF42F5F1A
:103DB0003F4F0CC08081918182599F4F821793079A
:103DC0004CF42115310531F0215030403093F90A7F
:103DD0002093F80A2091FA0A3091FB0A8091B90EDB
:103DE000E82FFF27EE0FFF1FEA58F14F80819181E6
:103DF00082599F4F281739071CF42F5F3F4F0CC083
:103E00008081918182599F4F821793074CF421152D
:103E1000310531F0215030403093FB0A2093FA0AEB
:103E20002091FC0A3091FD0A8091880E9091890EB4
:103E300082599F4F281739071CF42F5F3F4F0EC040
:103E40008091880E9091890E82599F4F8217930717
:103E50004CF42115310531F0215030403093FD0AEA
:103E60002093FC0A2091FE0A3091FF0A80918A0E6D
:103E700090918B0E82599F4F281739071CF42F5FA2
:103E80003F4F0EC080918A0E90918B0E82599F4FAA
:103E9000821793074CF42115310531F02150304041
:103EA0003093FF0A2093FE0A2091000B3091010B02
:103EB00080918C0E90918D0E82599F4F2817390753
:103EC0001CF42F5F3F4F0EC080918C0E90918D0E91
:103ED00082599F4F821793074CF42115310531F019
:103EE000215030403093010B2093000B2091020BA6
:103EF0003091030B80918E0E90918F0E82599F4FBF
:103F0000281739071CF42F5F3F4F0EC080918E0E8B
:103F100090918F0E82599F4F821793074CF4211571
:103F2000310531F0215030403093030B2093020BC8
:103F30008091F40A9091F50A97FF05C01092F50A56
:103F40001092F40A0AC08F3F910539F034F08FEFD8
:103F500090E09093F50A8093F40A8091F60A90918C
:103F6000F70A97FF05C01092F70A1092F60A0AC0E6
:103F70008F3F910539F034F08FEF90E09093F70A7E
:103F80008093F60A8091F80A9091F90A97FF05C08C
:103F90001092F90A1092F80A0AC08F3F910539F081
:103FA00034F08FEF90E09093F90A8093F80A8091B3
:103FB000FA0A9091FB0A97FF05C01092FB0A109233
:103FC000FA0A0AC08F3F910539F034F08FEF90E084
:103FD0009093FB0A8093FA0A8091FC0A9091FD0A63
:103FE00097FF05C01092FD0A1092FC0A0AC08F3F8D
:103FF000910539F034F08FEF90E09093FD0A8093B3
:10400000FC0A8091FE0A9091FF0A97FF05C010926A
:10401000FF0A1092FE0A0AC08F3F910539F034F072
:104020008FEF90E09093FF0A8093FE0A8091000B3F
:104030009091010B97FF05C01092010B1092000B9D
:104040000AC08F3F910539F034F08FEF90E09093E4
:10405000010B8093000B8091020B9091030B97FF53
:1040600005C01092030B1092020B0AC08F3F9105FE
:1040700039F034F08FEF90E09093030B8093020BB4
:104080006091DD0E77278827992724EC39E040E0FE
:1040900050E00E944F4D6093870370938803809394
:1040A000890390938A0360938B0370938C038093AE
:1040B0008D0390938E0308951F938091BD0E8B3FC7
:1040C00098F08B3F19F48091F40A0EC08C3F19F4DC
:1040D0008091F60A09C08D3F19F48091F80A04C056
:1040E0008E3F21F48091FA0A809394038091940387
:1040F000882319F41092940304C08F3F11F4809325
:1041000094038091BC0E8B3F98F08B3F19F4809103
:10411000F40A0EC08C3F19F48091F60A09C08D3F55
:1041200019F48091F80A04C08E3F21F48091FA0AB4
:104130008093930380919303882319F4109293033F
:1041400005C0843618F084E6809393038091BE0EF8
:104150008B3F98F08B3F19F48091F40A0EC08C3F8E
:1041600019F48091F60A09C08D3F19F48091F80A7C
:1041700004C08E3F21F48091FA0A809395038091C8
:104180009503882319F41092950305C0843618F01E
:1041900084E6809395038091C00E8B3F98F08B3F0F
:1041A00019F48091F40A0EC08C3F19F48091F60A3C
:1041B00009C08D3F19F48091F80A04C08E3F21F4A4
:1041C0008091FA0A8093960380919603882319F4CC
:1041D0001092960304C08F3F11F480939603809150
:1041E000C70E8B3F98F08B3F19F48091F40A0EC0F4
:1041F0008C3F19F48091F60A09C08D3F19F4809123
:10420000F80A04C08E3F21F48091FA0A8093970344
:1042100080919703882319F41092970304C08F3F6D
:1042200011F4809397038091C80E8B3F98F08B3FD9
:1042300019F48091F40A0EC08C3F19F48091F60AAB
:1042400009C08D3F19F48091F80A04C08E3F21F413
:104250008091FA0A80939803809198038B3010F430
:104260008AE002C08F3F11F4809398038091C90EB9
:104270008B3F98F08B3F19F48091F40A0EC08C3F6D
:1042800019F48091F60A09C08D3F19F48091F80A5B
:1042900004C08E3F21F48091FA0A809399038091A3
:1042A0009903882319F41092990304C08F3F11F4E5
:1042B000809399038091CE0E8B3F98F08B3F19F439
:1042C0008091F40A0EC08C3F19F48091F60A09C05F
:1042D0008D3F19F48091F80A04C08E3F21F480913B
:1042E000FA0A80939B0380919B03882319F4109210
:1042F0009B0304C08F3F11F480939B038091CF0EEA
:104300008B3F98F08B3F19F48091F40A0EC08C3FDC
:1043100019F48091F60A09C08D3F19F48091F80ACA
:1043200004C08E3F21F48091FA0A80931A0B809189
:104330001A0B882319F410921A0B04C08F3F11F442
:1043400080931A0B8091D00E8B3F98F08B3F19F41D
:104350008091F40A0EC08C3F19F48091F60A09C0CE
:104360008D3F19F48091F80A04C08E3F21F48091AA
:10437000FA0A80931B0B80911B0B882319F410926F
:104380001B0B04C08F3F11F480931B0B8091D10E47
:104390008B3F98F08B3F19F48091F40A0EC08C3F4C
:1043A00019F48091F60A09C08D3F19F48091F80A3A
:1043B00004C08E3F21F48091FA0A80931C0B8091F7
:1043C0001C0B882319F410921C0B04C08F3F11F4AE
:1043D00080931C0B8091D20E8B3F98F08B3F19F489
:1043E0008091F40A0EC08C3F19F48091F60A09C03E
:1043F0008D3F19F48091F80A04C08E3F21F480911A
:10440000FA0A80931D0B80911D0B882319F41092DA
:104410001D0B04C08F3F11F480931D0B8091E20EA1
:104420008B3F98F08B3F19F48091F40A0EC08C3FBB
:1044300019F48091F60A09C08D3F19F48091F80AA9
:1044400004C08E3F21F48091FA0A80931E0B809164
:104450001E0B882319F410921E0B04C08F3F11F419
:1044600080931E0B8091E30E8B3F98F08B3F19F4E5
:104470008091F40A0EC08C3F19F48091F60A09C0AD
:104480008D3F19F48091F80A04C08E3F21F4809189
:10449000FA0A80931F0B80911F0B882319F4109246
:1044A0001F0B04C08F3F11F480931F0B8091E40E0B
:1044B0008B3F98F08B3F19F48091F40A0EC08C3F2B
:1044C00019F48091F60A09C08D3F19F48091F80A19
:1044D00004C08E3F21F48091FA0A8093200B8091D2
:1044E000200B882319F41092200B04C08F3F11F485
:1044F0008093200B8091E50E8B3F98F08B3F19F451
:104500008091F40A0EC08C3F19F48091F60A09C01C
:104510008D3F19F48091F80A04C08E3F21F48091F8
:10452000FA0A8093210B8091210B882319F41092B1
:10453000210B04C08F3F11F48093210B8091D30E87
:104540008B3F98F08B3F19F48091F40A0EC08C3F9A
:1045500019F48091F60A09C08D3F19F48091F80A88
:1045600004C08E3F21F48091FA0A80939C038091CD
:104570009C03882319F410929C0304C08F3F11F40C
:1045800080939C038091D80E8B3F98F08B3F19F459
:104590008091F40A0EC08C3F19F48091F60A09C08C
:1045A0008D3F19F48091F80A04C08E3F21F4809168
:1045B000FA0A80939D0380919D03882319F4109239
:1045C0009D0304C08F3F11F480939D038091DB0E07
:1045D0008B3F98F08B3F19F48091F40A0EC08C3F0A
:1045E00019F48091F60A09C08D3F19F48091F80AF8
:1045F00004C08E3F21F48091FA0A8093220B8091AF
:10460000220B882319F41092220B04C08F3F11F45F
:104610008093220B8091DC0E8B3F98F08B3F19F436
:104620008091F40A0EC08C3F19F48091F60A09C0FB
:104630008D3F19F48091F80A04C08E3F21F48091D7
:10464000FA0A8093230B8091230B882319F410928C
:10465000230B04C08F3F11F48093230B8091E10E54
:104660008B3F98F08B3F19F48091F40A0EC08C3F79
:1046700019F48091F60A09C08D3F19F48091F80A67
:1046800004C08E3F21F48091FA0A80939E038091AA
:104690009E03882319F410929E0304C08F3F11F4E7
:1046A00080939E0310919B03612F772767FD709580
:1046B000872F972F0E948D4C17FF06C020E030E017
:1046C00040E853E40E94E84B27E137EB41ED58E323
:1046D0000E94074D60938F03709390038093910322
:1046E000909392038091C50E8093200F8091C40E09
:1046F0008093040F1F91089580910B0B882301F57F
:104700001092010F1092FC0E1092190F10921B0FB5
:104710008091500A882311F08093FC0E8091510AF9
:10472000882311F08093010F8091520A882311F0A1
:1047300080931B0F8091530A882311F08093190FE7
:104740001092900A1092910A0E94DE15089510921C
:10475000A20A1092A10A1092A40A1092A30A80E061
:1047600090E0A0E0B0E08093A50A9093A60AA09301
:10477000A70AB093A80A1092980A1092970A10926A
:104780009A0A1092990A10929C0A10929B0A10920F
:10479000220B1092230B0E94331E84E690E00E94AD
:1047A000640E0E94331E8091BA0E80FF10C080916B
:1047B0000E0390910F03875B934038F480910E03B2
:1047C00090910F038E5E924010F40E942E11809102
:1047D0006D0A90916E0A9093980A8093970A80913F
:1047E0006F0A9091700A90939A0A8093990A809127
:1047F000710A9091720A90939C0A80939B0A80910F
:10480000990A90919A0A90939E0A80939D0A8091AA
:10481000970A9091980A9093A00A80939F0A44E087
:1048200050E0DA010E94154E802D853038F18091DC
:10483000280F9091290F97FF03C0909581959F4F66
:104840006CE070E00E948E4D7093A40A6093A30AFE
:1048500080911E0F90911F0F97FF03C09095819537
:104860009F4F6CE070E00E948E4D7093A20A60939F
:10487000A10A60915E0E70915F0E39C0DA010E944C
:10488000154E802D4F5F5F4FDA010E94154E202D8F
:104890009927982F8827820F911D9093A20A8093C1
:1048A000A10A4F5F5F4FDA010E94154E802D4F5FC6
:1048B0005F4FDA010E94154E202D9927982F8827E7
:1048C000820F911D9093A40A8093A30A4F5F5F4FBC
:1048D000DA010E94154E602D4F5F5F4FDA010E9492
:1048E000154E202D7727762F6627620F711D88279A
:1048F00077FD8095982F0E948D4C6093A50A709348
:10490000A60A8093A70A9093A80A1092CB0A109245
:10491000CC0A1092CD0A1092CE0A1092CF0A1092B1
:10492000D00A1092D10A1092D20A1092D30A109291
:10493000D40A1092D50A1092D60A1092D70A109271
:10494000D80A1092D90A1092DA0A1092DB0A109251
:10495000DC0A1092DD0A1092DE0A1092030F109208
:10496000020F1092FB0E1092FA0E1092220F10926C
:10497000210F80910A0390910B03A0910C03B09139
:104980000D039093610E8093600E1092800A109236
:104990007F0A1092E30A1092E40A1092E50A10923C
:1049A000E60A8091E70A9091E80A9093EA0A8093D8
:1049B000E90A82E390E09093670A8093660A609127
:1049C000DD0E77278827992724EC39E040E050E076
:1049D0000E944F4D609387037093880380938903EF
:1049E00090938A036091DE0E7727882799270E948B
:1049F0004F4D60938B0370938C0380938D03909342
:104A00008E031092A00310929F0308951F93182FF6
:104A10000EC080910B0B882361F484E690E09093A4
:104A2000670A8093660A8AEF90E00E947A0E11501E
:104A300080F71F91089581E08093B20E52E0509369
:104A4000B30E43E04093B40E74E07093B50E65E08E
:104A50006093B60E86E08093B70E87E08093B80E21
:104A600098E09093B90E80EC8093BA0E8EE180931B
:104A7000BB0E8BEF8093BD0E3AE03093BE0E22E367
:104A80002093BC0E2093C00E5093BF0E4093C10ED6
:104A90001092C20E9093C30E8FE08093C40E8AEFE3
:104AA0008093C50E8AE18093C60E80E88093C70E7E
:104AB00088EC8093C80E8FEA8093C90E8EE58093B0
:104AC000CA0E83E28093CB0E84E18093CC0E1092C9
:104AD000CD0E3093CE0E80E58093CF0E1092D00E87
:104AE0001092D10E1092D20E1092E20E1092E30E9E
:104AF0001092E40E1092E50E94E69093D30E88E2A5
:104B00008093D40E1092E70E2093D50E86E9809301
:104B1000D60E6093D70E2093D80E8AE58093D90ED7
:104B20002093DA0E1092E60E9093DB0E3093DC0E9B
:104B30009093DD0E9093DE0E9093DF0E7093E00E57
:104B40002093E10EACEEBEE0ECE6F3E08CE00190E9
:104B50000D928150E1F7089581E08093B20E92E0CA
:104B60009093B30E83E08093B40E44E04093B50E6F
:104B700055E05093B60E86E08093B70E87E08093A1
:104B8000B80E88E08093B90E80E48093BA0E8EE16F
:104B90008093BB0E8BEF8093BD0E3AE03093BE0E38
:104BA00022E32093BC0E2093C00E9093BF0E40933F
:104BB000C10E1092C20E3093C30E8FE08093C40ECC
:104BC0008AEF8093C50E8AE18093C60E80E88093B9
:104BD000C70E8FEA8093C80E8093C90E8EE580932E
:104BE000CA0E83E28093CB0E84E18093CC0E1092A8
:104BF000CD0E80E28093CE0E80E58093CF0E109292
:104C0000D00E1092D10E1092D20E1092E20E10928F
:104C1000E30E1092E40E1092E50E94E69093D30EFC
:104C200088E28093D40E1092E70E2093D50E86E989
:104C30008093D60E5093D70E2093D80E8AE580939A
:104C4000D90E2093DA0E1092E60E9093DB0E30937D
:104C5000DC0E9093DD0E9093DE0E9093DF0E40936A
:104C6000E00E8BE48093E10EACEEBEE0E6E7F3E00D
:104C70008CE001900D928150E1F7089581E08093DE
:104C8000B20E82E08093B30E83E08093B40E34E0E2
:104C90003093B50E65E06093B60E86E08093B70E54
:104CA00087E08093B80E98E09093B90E80E48093EB
:104CB000BA0E8EE18093BB0E8BEF8093BD0E5AE04F
:104CC0005093BE0E22E32093BC0E2093C00E30936F
:104CD000BF0E3093C10E9093C20E8EE08093C30E30
:104CE0008FE08093C40E8AEF8093C50E8AE1809393
:104CF000C60E90E89093C70E88E78093C80E46E9E9
:104D00004093C90E8EE58093CA0E83E28093CB0E4A
:104D100084E18093CC0E1092CD0E80E28093CE0E73
:104D20009093CF0E1092D00E1092D10E1092D20E00
:104D30001092E20E1092E30E1092E40E1092E50E25
:104D400094E69093D30E88E28093D40E1092E70EEF
:104D50002093D50E4093D60E6093D70E2093D80E95
:104D60008AE58093D90E2093DA0E1092E60E909386
:104D7000DB0E5093DC0E9093DD0E9093DE0E2093AD
:104D8000DF0E3093E00E9093E10EACEEBEE0EEE766
:104D9000F3E08CE001900D928150E1F708952F929D
:104DA0003F924F925F926F927F928F929F92AF92BB
:104DB000BF92CF92DF92EF92FF920F931F93CF9308
:104DC000DF93CDB7DEB766970FB6F894DEBF0FBEA0
:104DD000CDBF0E946F17299AE091B40EFF27EE0F06
:104DE000FF1FEA58F14F0190F081E02DE858FF4F86
:104DF0008091200F99274497E817F9070CF4CF0109
:104E00009C838B8397FF02C01C821B828091040BC2
:104E1000843608F05DC080910301882399F4809165
:104E20000403909105038F5F9F4F61F488E99AE333
:104E30009093670A8093660A80E09CE09093050354
:104E40008093040380914B0B90914C0B009731F0B1
:104E5000019790934C0B80934B0B04C010920B0B5B
:104E60001092ED0A809100018A3011F4289A01C055
:104E700028988091460B9091470B815D974028F1CF
:104E80008091CB0E482F55275C834B8381E0809324
:104E9000ED0AE091B20EFF27EE0FFF1FEA58F14F27
:104EA00011821082E091B30EFF27EE0FFF1FEA5828
:104EB000F14F11821082E091B50EFF27EE0FFF1F18
:104EC000EA58F14F1182108258C210920B0B55C252
:104ED0008091040B8D3808F450C21092ED0A809135
:104EE000CC0E22E3829FC001112490934C0B80933F
:104EF0004B0B6B817C8169327105ACF08091460B64
:104F00009091470B7FEF8F3F970729F00196909381
:104F1000470B8093460B8091460B9091470B9093E3
:104F2000F30A8093F20A8091460B9091470B883CDC
:104F3000910520F08B819C81889704F51092650B78
:104F40001092660B1092670B1092680B1092610B17
:104F50001092620B1092630B1092640B1092DB0A9A
:104F60001092DC0A1092DD0A1092DE0A1092DF0A1B
:104F70001092E00A1092E10A1092E20AAB81BC8121
:104F8000A93CB1050CF459C180910B0B882309F0A1
:104F9000F4C18091B50EE82FFF27EE0FFF1FEA58EE
:104FA000F14F808191818C3491050CF4BCC08091CB
:104FB0004A0B8F5F80934A0B893C08F4DEC1299825
:104FC00010920B0B10924A0B1092470B1092460B4B
:104FD0008091B20E282F3327F901EE0FFF1FEA58F8
:104FE000F14F80819181873491059CF4E091B30E5B
:104FF000FF27EE0FFF1FEA58F14F0190F081E02DDF
:10500000F7FF03C0F095E195FF4FE734F1050CF48D
:105010006CC08091B30E682F7727DB01AA0FBB1FEE
:10502000AA58B14F8D919C911197873491053CF00E
:10503000F901EE0FFF1FEA58F14F808191818D91A8
:105040009C918734910564F0F901EE0FFF1FEA5837
:10505000F14F808191818734910514F042E001C0C5
:1050600041E0FB01EE0FFF1FEA58F14F8081918173
:10507000863491055CF4F901EE0FFF1FEA58F14FF9
:1050800080819181873491050CF043E0FB01EE0FA4
:10509000FF1FEA58F14F808191818A5B9F4F5CF43A
:1050A000F901EE0FFF1FEA58F14F8081918187349B
:1050B00091050CF044E0660F771F6A58714FFB01B1
:1050C000808191818A5B9F4F5CF4220F331F2A58A5
:1050D000314FD9018D919C91863491050CF445E0B6
:1050E000A2E0B0E0042E0E941D4E8091BA0E80FF17
:1050F00010C080910E0390910F03875B934038F4AA
:1051000080910E0390910F038E5E924010F40E94E6
:105110002E110E943C0247E462EB7EE00E94630293
:105120000E94A72382C080819181855B9F4F0CF0F4
:1051300081C080914A0B8F5F80934A0B893C08F4B1
:105140001CC129988FEF04E010E0D801082E0E94BE
:105150001D4E10920B0B10924A0B1092470B10929F
:10516000460B0E94A7238091A10A9091A20A60E0B9
:1051700071E00E948E4DD801062E0E941D4E809136
:10518000A10A9091A20A60E071E00E948E4D0F5F2B
:105190001F4FD801082E0E941D4E8091A30A9091A6
:1051A000A40A60E071E00E948E4D0F5F1F4FD8018E
:1051B000062E0E941D4E8091A30A9091A40A60E0E1
:1051C00071E00E948E4D0F5F1F4FD801082E0E9484
:1051D0001D4E6091A50A7091A60A8091A70A909130
:1051E000A80A0E94704CDC01CB0160E071E00E94D3
:1051F0008E4D0F5F1F4FD801062E0E941D4E6091ED
:10520000A50A7091A60A8091A70A9091A80A0E9407
:10521000704CDC01CB0160E071E00E948E4D0F5FAD
:105220001F4FD801082E0E941D4E0E943C020E9472
:105230000625A3C010924A0BA0C0EB81FC81B39756
:105240000CF09BC08091B50E482F5527FA01EE0F48
:10525000FF1FEA58F14F80819181855B9F4F0CF0D1
:105260006DC08091490B8F5F8093490B893C08F496
:1052700067C088EC8093490B81E090E09093470BE6
:105280008093460B81E080930B0B10925D0B109284
:105290005E0B10925F0B1092600B1092DB0A109263
:1052A000DC0A1092DD0A1092DE0A1092DF0A1092D8
:1052B000E00A1092E10A1092E20A1092CB0A1092D0
:1052C000CC0A1092CD0A1092CE0A1092D30A1092F4
:1052D000D40A1092D50A1092D60A8091AB0A909106
:1052E000AC0AA091AD0AB091AE0A8093CF0A909318
:1052F000D00AA093D10AB093D20A8091B30A9091B8
:10530000B40AA091B50AB091B60A8093D70A9093D7
:10531000D80AA093D90AB093DA0A1092650B1092BA
:10532000660B1092670B1092680B1092610B109233
:10533000620B1092630B1092640B02C01092490B27
:10534000440F551F4A58514FDA018D919C918C346E
:1053500091058CF08091480B8F5F8093480B893CBE
:1053600060F010920B0B88EC8093480B1092470B67
:105370001092460B02C01092480B80916B03815033
:1053800080936B0380916B038F3F29F08091ED0A2E
:10539000882309F475C30E945C208091B20E882E88
:1053A0009924D401AA0FBB1FFD01EA58F14F0190C7
:1053B000F081E02DFC8BEB8B8091C10EC82EDD249B
:1053C000AC56B14FED90FC908091C20E682E7724C0
:1053D0008091B30EA82EBB24C501880F991FDC0154
:1053E000AA58B14F0D90BC91A02DBA8BA98B8C56A9
:1053F000914FFC0180819181988B8F87E091B50E50
:10540000AE2FBB27AA0FBB1FAA58B14F0D90BC915E
:10541000A02DBE87AD8710919803612F772767FD78
:105420007095872F972F0E948D4C17FF06C020E0A4
:1054300030E040E853E40E94E84B20E030E040E2F6
:1054400051E40E94E84B20E030E040E85BE30E943A
:10545000074D1B012C016093230F7093240F809341
:10546000250F9093260F10919903612F772767FDE1
:105470007095872F972F0E948D4C17FF06C020E054
:1054800030E040E853E40E94E84B20E030EE4BE28D
:1054900057E40E942A4C6093150F7093160F809367
:1054A000170F9093180F2091550A222311F40C9492
:1054B000D2398AE090E09093670A8093660AE22FDF
:1054C000FF27E2FF09C080911A0B482F5527440F90
:1054D000551F440F551F10C0E3FD03C040E050E0CE
:1054E0000BC080911A0B9927880F991F880F991F5D
:1054F00044275527481B590B2091240B3091250B2D
:10550000C901F3E0880F991FFA95E1F7821B930B0D
:10551000840F951F68E070E00E948E4D8B017093A0
:10552000250B6093240BE4FF09C080911A0B482FD0
:105530005527440F551F440F551F0FC0E5FD02C0EE
:105540000C94E73980911A0B9927880F991F880FBF
:10555000991F44275527481B590B2091260B309142
:10556000270BC90163E0880F991F6A95E1F7821B39
:10557000930B840F951F68E070E00E948E4D7E8B28
:105580006D8B7093270B6093260B8091540A282F04
:10559000332723FF03C082E390E004C022FF07C04B
:1055A0008EEC9FEF9093290B8093280B04C01092F0
:1055B000290B1092280B21FF09C080919F03909125
:1055C000A00301969093A00380939F0324FF09C03A
:1055D00080919F039091A00301979093A0038093E3
:1055E0009F034B895C894C9D90014D9D300D5C9DC6
:1055F000300D1124E69CC001E79C900DF69C900DA7
:105600001124280F391FC80168E070E00E948E4DF8
:10561000260F371F3C8B2B8B3093060B2093050BEB
:1056200069897A896C9D70016D9DF00C7C9DF00CF0
:105630001124AF85B889A69DC001A79D900DB69D88
:10564000900D1124E80EF91E8D899E8968E070E0A6
:105650000E948E4DE60EF71EF092080BE092070BAB
:105660008091280B9091290BED85FE858E1B9F0B59
:1056700090930A0B8093090B8091BA0E082F112783
:1056800094E0692E712C6022712202FF0CC080E030
:1056900090E0A0E0B0E08093150F9093160FA093D8
:1056A000170FB093180F20E030E040E050E0C20147
:1056B000B1010E94974C882364F480E090E0A0E060
:1056C000B0E08093230F9093240FA093250FB09305
:1056D000260F20E030E040E050E06091150F70911F
:1056E000160F8091170F9091180F0E94974C8823E6
:1056F00064F480E090E0A0E0B0E08093150F909318
:10570000160FA093170FB093180F8091E60E682F15
:10571000772784E0482E512C4622572262FDCAC0CA
:1057200063FDC8C005FDC6C0672809F0C3C08091ED
:10573000AB0A9091AC0AA091AD0AB091AE0A815625
:105740009A4EA040B0404CF1C60113E0880F991F5B
:105750001A95E1F7EB89FC89E81BF90BF093060B2E
:10576000E093050B8091AB0A9091AC0AA091AD0A31
:10577000B091AE0A81589843A140B0400CF441C0AA
:10578000C601B4E0880F991FBA95E1F7E81BF90B41
:10579000F093060BE093050B34C08091AB0A909117
:1057A000AC0AA091AD0AB091AE0A805A9541AF4FB4
:1057B000BF4F3CF59601A3E0220F331FAA95E1F7F6
:1057C0004B895C89240F351F3093060B2093050B02
:1057D0008091AB0A9091AC0AA091AD0AB091AE0A4B
:1057E00081589843A140B04064F0C601F4E0880FAE
:1057F000991FFA95E1F7281B390B3093060B20937C
:10580000050B8091B30A9091B40AA091B50AB091AA
:10581000B60A81569A4EA040B040DCF0C601E3E0E3
:10582000880F991FEA95E1F79701281B390B3093F0
:10583000080B2093070B8091B30A9091B40AA091B2
:10584000B50AB091B60A81589843A140B04094F18E
:1058500026C08091B30A9091B40AA091B50AB09184
:10586000B60A805A9541AF4FBF4F24F5960173E0B9
:10587000220F331F7A95E1F72E0D3F1D3093080B51
:105880002093070B8091B30A9091B40AA091B50AB6
:10589000B091B60A81589843A140B0405CF054E002
:1058A000CC0CDD1C5A95E1F72C193D093093080BFF
:1058B0002093070B9091200B9093F00A4091210BBD
:1058C0004093F10A4298983C10F0429A14C02091FB
:1058D000EF0A291790F0992381F080910B0B81300A
:1058E00061F4429A3327A42FA90FB12DB11D2A17B5
:1058F0003B071CF042981092EF0A8091EF0A8F5FED
:105900008093EF0AF501EE0FFF1FEA58F14F208157
:1059100031818091D90E482F55274217530734F40F
:10592000452821F081E08093160B11C0F501EE0FA0
:10593000FF1FEA58F14F208131818091DA0EFA0180
:10594000E81BF1092E173F0714F41092160BF5010E
:10595000EE0FFF1FEA58F14F80819181AA27BB27E4
:10596000A41BB50B8A179B0734F463FF04C081E0C6
:105970008093170B17C08091170B882399F0AA0CFE
:10598000BB1C26E73EE0A20EB31EF501208131814B
:105990008091DA0E9927841B950B8217930714F4D4
:1059A0001092170BF401EE0FFF1FEA58F14F8081A0
:1059B00091814817590734F460FF04C081E0809357
:1059C000190B15C08091190B882389F0F401EE0F93
:1059D000FF1FEA58F14F208131818091DA0EFA01E0
:1059E000E81BF1092E173F0714F41092190BF4016C
:1059F000EE0FFF1FEA58F14F808191818A179B07B4
:105A000034F461FF04C081E08093180B17C08091CB
:105A1000180B882399F0880C991C26E73EE0820E2B
:105A2000931ED4012D913C918091DA0E9927841B0D
:105A3000950B8217930714F41092180B8091160B94
:105A4000882321F48091170B882321F081E0809333
:105A5000150B02C01092150B8091190B882321F4AD
:105A60008091180B882351F081E08093140B1092E1
:105A7000150B1092160B1092170B0EC01092140BF0
:105A80008091150B882311F40C94EB3984E690E097
:105A90009093670A8093660A8091D80E9927EB81CC
:105AA000FC818E179F0714F49C838B838091ED0AF1
:105AB000882341F110920A0B1092090B1092060BE9
:105AC0001092050B1092080B1092070B8DEC9CECBA
:105AD000ACECBDE38093230F9093240FA093250F8C
:105AE000B093260F8AE097EDA3EABBE38093150FEE
:105AF0009093160FA093170FB093180F1092150BD9
:105B00001092140B80910D0F90910E0FA0910F0F1A
:105B1000B091100F2091AB0A3091AC0A4091AD0AC0
:105B20005091AE0A820F931FA41FB51F80930D0FD3
:105B300090930E0FA0930F0FB093100F8091110F41
:105B40009091120FA091130FB091140F2091B30AEE
:105B50003091B40A4091B50A5091B60A820F931F52
:105B6000A41FB51F8093110F9093120FA093130FD2
:105B7000B093140F8091050F9091060FA091070F1D
:105B8000B091080F2091AF0A3091B00A4091B10A4C
:105B90005091B20A820F931FA41FB51F8093050F67
:105BA0009093060FA093070FB093080F8091FD0EFE
:105BB0009091FE0EA091FF0EB091000F2091B70AB8
:105BC0003091B80A4091B90A5091BA0A820F931FD6
:105BD000A41FB51F8093FD0E9093FE0EA093FF0EA1
:105BE000B093000F5090140B552011F00C944B3AC9
:105BF0008091150B882311F00C944B3A0C94F339D7
:105C0000F0EE6F16FFEF7F06FFEF8F06FFEF9F06A8
:105C100044F470EE672E7FEF772E7FEF872E7FEFB5
:105C2000972E213231054105510534F060E2E62E10
:105C3000F12C012D112D0DC0205E3F4F4F4F5F4FB6
:105C400044F450EEE52E5FEFF52E5FEF052F5FEF8A
:105C5000152F8091CB0A9091CC0AA091CD0AB091DA
:105C6000CE0A86199709A809B9098093CB0A90939F
:105C7000CC0AA093CD0AB093CE0A8091D30A90911A
:105C8000D40AA091D50AB091D60A8E199F09A00B0B
:105C9000B10B8093D30A9093D40AA093D50AB09302
:105CA000D60A8091810A9091820A8F3F910509F06E
:105CB00008F437C4552009F0B8C38091150B882328
:105CC00009F0B3C360910D0F70910E0F80910F0F0B
:105CD0009091100F20E031E040E050E00E94C34D71
:105CE00020930D0F30930E0F40930F0F5093100F12
:105CF0006091110F7091120F8091130F9091140FFA
:105D000020E031E040E050E00E94C34D2093110FAD
:105D10003093120F4093130F5093140FE090C60E60
:105D2000FF24002711272091BB0A3091BC0A409123
:105D3000BD0A5091BE0AC801B7010E944F4D20E034
:105D400031E040E050E00E94C34D2093BB0A309305
:105D5000BC0A4093BD0A5093BE0A2091BF0A3091FD
:105D6000C00A4091C10A5091C20AC801B7010E94FD
:105D70004F4D20E031E040E050E00E94C34D2093C1
:105D8000BF0A3093C00A4093C10A5093C20A60917F
:105D9000C30A7091C40A8091C50A9091C60A20E096
:105DA00031E040E050E00E94C34D2093C30A30939D
:105DB000C40A4093C50A5093C60A60910D0F7091B2
:105DC0000E0F80910F0F9091100F2091BB0A309110
:105DD000BC0A4091BD0A5091BE0AE090DF0EFF243C
:105DE00000271127621B730B840B950BA8019701E9
:105DF0000E94C34D20933E0B30933F0B4093400BCA
:105E00005093410BCA01B90120E031E040E050E07D
:105E10000E94C34D39013093130B2093120B6091F4
:105E2000110F7091120F8091130F9091140F209108
:105E3000BF0A3091C00A4091C10A5091C20A621B48
:105E4000730B840B950BA80197010E94C34DCA01E7
:105E5000B90120E031E040E050E00E94C34D49012B
:105E60003093110B2093100B6091050F7091060F6A
:105E70008091070F9091080F20E031E040E050E062
:105E80000E94C34D2093050F3093060F4093070FD8
:105E90005093080F6091FD0E7091FE0E8091FF0EE1
:105EA0009091000F20E031E040E050E00E94C34DAF
:105EB0002093FD0E3093FE0E4093FF0E5093000F83
:105EC000E090AF0AF090B00A0091B10A1091B20AC6
:105ED0008091AB0A9091AC0AA091AD0AB091AE0A44
:105EE000E81AF90A0A0B1B0BE092590BF0925A0BB5
:105EF00000935B0B10935C0BA090B70AB090B80AAC
:105F0000C090B90AD090BA0A8091B30A9091B40AAD
:105F1000A091B50AB091B60AA81AB90ACA0ADB0A52
:105F2000A092550BB092560BC092570BD092580BC3
:105F3000E092510BF092520B0093530B1093540BC1
:105F4000A0924D0BB0924E0BC0924F0BD092500BC3
:105F50008091CF0A9091D00AA091D10AB091D20A33
:105F60008E199F09A00BB10B8093CF0A9093D00A92
:105F7000A093D10AB093D20A8091D70A9091D80AFF
:105F8000A091D90AB091DA0A8A199B09AC09BD0916
:105F90008093D70A9093D80AA093D90AB093DA0ACB
:105FA00081E090E09093390B8093380B80910D0F36
:105FB00090910E0FA0910F0FB091100F2091300B08
:105FC0003091310B4091320B5091330B281B390B20
:105FD0004A0B5B0B57FF07C05095409530952195B4
:105FE0003F4F4F4F5F4F20523E44404050400CF0D7
:105FF000B9C081E0E81680E1F80680E0080780E09B
:1060000018070CF44EC08091370B882309F445C063
:10601000D801C7014CE0B595A795979587954A9506
:10602000D1F701969093390B8093380BD801C701B3
:1060300033E0B595A795979587953A95D1F78093D5
:106040003E0B90933F0BA093400BB093410B8958AC
:106050009341A040B04064F088E893E1A0E0B0E054
:1060600080933E0B90933F0BA093400BB093410B5A
:1060700060913E0B70913F0B8091400B9091410BD2
:1060800020E031E040E050E00E94C34D620E731EFC
:106090007092130B6092120B62C081E08093370BF9
:1060A0005EC01092370BF0E0EF16F0EFFF06FFEF47
:1060B0000F07FFEF1F070CF052C08091360B8823AB
:1060C00009F449C088279927DC018E199F09A00B84
:1060D000B10B2CE0B595A795979587952A95D1F7A3
:1060E00001969093390B8093380BC801B70128E0D3
:1060F00030E040E050E00E94C34D20933E0B3093CF
:106100003F0B4093400B5093410B28573C4E4F4F51
:106110005F4F64F488E79CEEAFEFBFEF80933E0BD8
:1061200090933F0BA093400BB093410B60913E0BBB
:1061300070913F0B8091400B9091410B20E031E03A
:1061400040E050E00E94C34D620E731E7092130B2C
:106150006092120B0BC081E08093360B07C0109247
:10616000360B04C01092390B1092380B8091E00E60
:10617000682E77248091380B9091390B6816790638
:1061800024F47092390B6092380B71E0E71674E0DA
:10619000F70670E0070770E017075CF08091970A38
:1061A0009091980A2091380B3091390B820F931FF0
:1061B00013C080E0E8168CEFF8068FEF08078FEF2A
:1061C000180774F48091970A9091980A2091380BDF
:1061D0003091390B821B930B9093980A8093970A06
:1061E00081E090E09093390B8093380B10923A0B3A
:1061F00010923B0B10923C0B10923D0B8091110FB3
:106200009091120FA091130FB091140F20912C0BAD
:1062100030912D0B40912E0B50912F0B281B390BD9
:106220004A0B5B0B57FF07C0509540953095219561
:106230003F4F4F4F5F4F20523E44404050400CF084
:10624000B9C0A1E0AA16A0E1BA06A0E0CA06A0E083
:10625000DA060CF44EC08091350B882309F445C052
:10626000D601C501FCE0B595A79597958795FA9558
:10627000D1F701969093390B8093380BD601C50165
:10628000E3E0B595A79597958795EA95D1F7809323
:106290003A0B90933B0BA0933C0BB0933D0B89586A
:1062A0009341A040B04064F088E893E1A0E0B0E002
:1062B00080933A0B90933B0BA0933C0BB0933D0B18
:1062C00060913A0B70913B0B80913C0B90913D0B90
:1062D00020E031E040E050E00E94C34D820E931E6A
:1062E0009092110B8092100B62C081E08093350B6D
:1062F0005EC01092350BF0E0AF16F0EFBF06FFEF77
:10630000CF06FFEFDF060CF052C08091340B8823DC
:1063100009F449C088279927DC018A199B09AC092F
:10632000BD097CE0B595A795979587957A95D1F7A6
:1063300001969093390B8093380BC601B50128E084
:1063400030E040E050E00E94C34D20933A0B309380
:106350003B0B40933C0B50933D0B28573C4E4F4F0B
:106360005F4F64F488E79CEEAFEFBFEF80933A0B8A
:1063700090933B0BA0933C0BB0933D0B60913A0B79
:1063800070913B0B80913C0B90913D0B20E031E0F4
:1063900040E050E00E94C34D820E931E9092110B7C
:1063A0008092100B0BC081E08093340B07C01092D9
:1063B000340B04C01092390B1092380B8091380BBB
:1063C0009091390B6816790624F47092390B60921B
:1063D000380B71E0A71674E0B70670E0C70670E0EE
:1063E000D7065CF08091990A90919A0A2091380B17
:1063F0003091390B820F931F13C080E0A8168CEFE9
:10640000B8068FEFC8068FEFD806BCF48091990AC2
:1064100090919A0A2091380B3091390B821B930B83
:1064200090939A0A8093990A08C01092110B1092C7
:10643000100B1092130B1092120B20E030E040E092
:1064400050E06091150F7091160F8091170F909189
:10645000180F0E94974C882341F41092110B109250
:10646000100B1092130B1092120B80910D0F909144
:106470000E0FA0910F0FB091100F8093300B9093DF
:10648000310BA093320BB093330B8091110F90918D
:10649000120FA091130FB091140F80932C0B9093B7
:1064A0002D0BA0932E0BB0932F0B1092BB0A1092C2
:1064B000BC0A1092BD0A1092BE0A1092BF0A109236
:1064C000C00A1092C10A1092C20A1092C30A109216
:1064D000C40A1092C50A1092C60A10920D0F1092AB
:1064E0000E0F10920F0F1092100F1092110F1092AA
:1064F000120F1092130F1092140F1092050F10929A
:10650000060F1092070F1092080F1092FD0E1092B6
:10651000FE0E1092FF0E1092000F1092820A10923F
:10652000810A8090090B90900A0B940197FE04C099
:106530002227332728193909253131053CF080916C
:10654000BA0E84FD03C081E08093420BE090C30E3D
:106550005901CC24B7FCC094DC2CB401882777FD0A
:106560008095982F2E2D3327442755270E944F4D75
:106570009B01AC01C601B5010E944F4D20E032E005
:1065800040E050E00E94C34D89019A01FF24E89C3D
:10659000C001E99C900DF89C900D112464E070E01E
:1065A0000E948E4D600F711F882777FD8095982F70
:1065B00060935D0B70935E0B80935F0B9093600B09
:1065C0002091DB0A3091DC0A4091DD0A5091DE0A0D
:1065D000261B370B480B590B2093DB0A3093DC0A40
:1065E0004093DD0A5093DE0A8091DB0A9091DC0A29
:1065F000A091DD0AB091DE0A8155934CA040B040D5
:1066000064F080E593ECA0E0B0E08093DB0A909327
:10661000DC0AA093DD0AB093DE0A8091DB0A909138
:10662000DC0AA091DD0AB091DE0A805B9C43AF4F8B
:10663000BF4F64F480EB9CE3AFEFBFEF8093DB0AC6
:106640009093DC0AA093DD0AB093DE0A8091E70AFA
:106650009091E80A892B09F492C08091BA0E83FFC9
:106660008EC06091AB0A7091AC0A8091AD0A909196
:10667000AE0A20E032E040E050E00E94C34D8901C4
:1066800037FF03C0109501951F4F6091B30A7091B9
:10669000B40A8091B50A9091B60A20E032E040E059
:1066A00050E00E94C34DB90137FF03C0709561955A
:1066B0007F4F601771070CF4B80169317105A4F4BC
:1066C0008091420B882381F080912A0B90912B0BB3
:1066D000892B51F48091E70A9091E80A9093EA0A95
:1066E0008093E90A1092420B209197033327629F0F
:1066F000C001639F900D729F900D112460E470E0C3
:106700000E948E4DA901461B570B141615068CF5D9
:1067100080912A0B90912B0B009749F50091DB0A91
:106720001091DC0A2091DD0A3091DE0A8091EB0A9B
:106730009091EC0ABC01649FC001659F900D749F0D
:10674000900D112460E270E00E948E4D882777FD45
:106750008095982F060F171F281F391F0093DB0AFB
:106760001093DC0A2093DD0A3093DE0A08C00197FB
:1067700002C084EF91E090932B0B80932A0B8091C1
:10678000BA0E85FF11C080911E0B99279093CA0BFA
:106790008093C90B80911F0B99279093C80B80930E
:1067A000C70B0E94C43A08C010929E0B10929D0B1A
:1067B0001092A00B10929F0B8091430B81508093FD
:1067C000430B8F3F09F028C188E18093430B609110
:1067D000AB0A7091AC0A8091AD0A9091AE0AE0903C
:1067E000C60EFF2400271127A80197010E94C34D60
:1067F0003093D60D2093D50D6091B30A7091B40AF1
:106800008091B50A9091B60AA80197010E94C34DE4
:106810003093D80D2093D70D80911E0F90911F0FAC
:106820009093DA0D8093D90D8091280F9091290FC4
:106830009093DC0D8093DB0D80911A0B9927909338
:10684000DE0D8093DD0D80911B0B99279093E00D59
:106850008093DF0D8091710B9091720B9093E20DFC
:106860008093E10D8091750B9091760B9093E40DE0
:106870008093E30D8091E70A9091E80A9093E60DEA
:106880008093E50D80910803909109039093E80DA2
:106890008093E70D8091040B99279093EA0D8093E4
:1068A000E90D8091320E99279093EC0D8093EB0DBA
:1068B00020916E0E80916F0E280F312D311D809129
:1068C000710E4091700E840F912D911D280F391F6C
:1068D0003093EE0D2093ED0D80912D0E90912E0EA4
:1068E0009093F00D8093EF0D8091150E9091160E00
:1068F0009093F20D8093F10D8091190E90911A0EE4
:106900009093F40D8093F30D8091F80A9091F90A19
:106910009093F60D8093F50D80911D0E90911E0EB3
:106920009093F80D8093F70D8091A20B9091A30B9B
:106930009093FA0D8093F90D8091A60B9091A70B7F
:106940009093FC0D8093FB0D8091790B90917A0BC5
:106950009093FE0D8093FD0D80917D0B90917E0BA9
:106960009093000E8093FF0D8091890B90918A0B7C
:106970009093020E8093010E8091910B9091920B57
:106980009093040E8093030E80918D0B90918E0B4B
:106990009093060E8093050E8091950B9091960B27
:1069A0009093080E8093070E8091AD0B9091AE0BE3
:1069B000A091AF0BB091B00B90930A0E8093090E8B
:1069C0008091B10B9091B20BA091B30BB091B40B2D
:1069D00090930C0E80930B0E80919D0B90919E0BCB
:1069E00090930E0E80930D0E80919F0B9091A00BB3
:1069F0009093100E80930F0E8091050B9091060BD3
:106A00009093120E8093110E8091070B9091080BBA
:106A10009093140E8093130E8091140B8823A9F089
:106A20006091020F7091030F882777FD8095982F52
:106A30000E948D4C2091230F3091240F4091250FFF
:106A40005091260F0E94074D32C06091AB0A7091A1
:106A5000AC0A8091AD0A9091AE0AE090020FF090DE
:106A6000030F0E948D4C2091150F3091160F40910D
:106A7000170F5091180F0E94074D5B016C01002702
:106A8000F7FC0095102FC801B7010E948D4C209192
:106A9000230F3091240F4091250F5091260F0E9413
:106AA000074D9B01AC01C601B5010E94E84B0E9455
:106AB000704C7093030F6093020F8091150B882325
:106AC000A9F06091FA0E7091FB0E882777FD8095F2
:106AD000982F0E948D4C2091230F3091240F4091CC
:106AE000250F5091260F0E94074D32C06091B30AC6
:106AF0007091B40A8091B50A9091B60AE090FA0EAE
:106B0000F090FB0E0E948D4C2091150F3091160FC6
:106B10004091170F5091180F0E94074D5B016C01B7
:106B20000027F7FC0095102FC801B7010E948D4C7B
:106B30002091230F3091240F4091250F5091260F63
:106B40000E94074D9B01AC01C601B5010E94E84BB4
:106B50000E94704C7093FB0E6093FA0E6091210FAF
:106B60007091220FE090C70AF090C80A0091C90AFC
:106B70001091CA0A2090150F3090160F4090170FF1
:106B80005090180F882777FD8095982F0E948D4C84
:106B90002091230F3091240F4091250F5091260F03
:106BA0000E94074D5B016C01C801B7010E948D4C2A
:106BB000A20191010E94074D20E030E040E05FE338
:106BC0000E94074D9B01AC01C601B5010E94E84B34
:106BD0000E94704C7093220F6093210F8091020FDE
:106BE0009091030F8150984034F080E098E09093AA
:106BF000030F8093020F8091020F9091030F80503A
:106C0000984F34F480E098EF9093030F8093020F35
:106C10008091FA0E9091FB0E8150984034F080E004
:106C200098E09093FB0E8093FA0E8091FA0E90916B
:106C3000FB0E8050984F34F480E098EF9093FB0E59
:106C40008093FA0E8091210F9091220F81509840ED
:106C500034F080E098E09093220F8093210F809190
:106C6000210F9091220F8050984F34F480E098EFDC
:106C70009093220F8093210F8091BA0E992780FF65
:106C8000D9C04091940381FF0EC0423310F580912A
:106C90000C0B90910D0B449790930F0B80930E0B60
:106CA0001092EE0A19C020919F033091A003240F87
:106CB000311D8091BF0E9927AC01249FC001259FF3
:106CC000900D349F900D1124449790930F0B809357
:106CD0000E0B81E08093EE0A8091ED0A882321F06B
:106CE00010920F0B10920E0B20910C0B30910D0B8C
:106CF00040910E0B50910F0B421753070CF09AC0A6
:106D00008091EE0A882309F495C0241B350B8091ED
:106D100095039927BC01269FC001279F900D369FA0
:106D2000900D112460E170E00E948E4D0B811C815A
:106D3000061B170B20917F0A3091800A80919303E4
:106D40009927DC012A9FC0012B9F900D3A9F900D3F
:106D5000112468E070E00E948E4D061B170B6091B5
:106D6000E30A7091E40A8091E50A9091E60A20E036
:106D700032E040E050E00E94C34DCA01B9012091C9
:106D800096033327442755270E944F4D20E230E0D9
:106D900040E050E00E94C34DBFEF2E3C3B0714F48F
:106DA0002EEC3FEF8091440B9091450BAC0164E0D9
:106DB000440F551F6A95E1F7481B590B23333105E2
:106DC00014F022E330E0021B130BCA01800F911F65
:106DD00060E170E00E948E4D7093450B6093440B10
:106DE0008091BB0E9927681779078CF4EB81FC81A1
:106DF000E817F9072CF09093450B8093440B07C0DC
:106E00002B813C813093450B2093440B0DC0809126
:106E1000440B9091450B4B815C814817590724F432
:106E20005093450B4093440B6091440B7091450B7C
:106E30007C836B83E090210FF090220F00915D0B1B
:106E400010915E0B20915F0B3091600B8091200FB1
:106E5000682E77248B819C8144971CF41E821D82AE
:106E600029C08B819C8162E070E00E948E4D970169
:106E7000201B310BCB01261737070CF4C901709585
:106E800061957F4F681779070CF4BC01C301AB8192
:106E9000BC818A1B9B0B681779070CF4CB01EB8133
:106EA000FC81E619F709FE83ED83E817F90714F46E
:106EB0009E838D832091020F3091030F8090050BEC
:106EC0009090060B80919D0B90919E0B881A990AC9
:106ED0002819390930930C0F20930B0F20E030E074
:106EE00040E050E0C201B1010E94974C8823E1F1DB
:106EF000E090AB0AF090AC0A0091AD0A1091AE0A96
:106F00006091650B7091660B8091670B9091680B97
:106F10000E948D4C5B016C01C801B7010E948D4C31
:106F2000A20191010E94074D7B018C01B4018827C9
:106F300077FD8095982F0E948D4C9B01AC01C80174
:106F4000B7010E94E74B9B01AC01C601B5010E944D
:106F5000E84B0E94704C6093650B7093660B8093B6
:106F6000670B9093680B1CC020910B0F30910C0F96
:106F7000442737FD4095542F8091650B9091660B07
:106F8000A091670BB091680B820F931FA41FB51FD0
:106F90008093650B9093660BA093670BB093680B7F
:106FA0008091650B9091660BA091670BB091680B77
:106FB000181619061A061B0624F40297A109B1092E
:106FC00003C00296A11DB11D8093650B9093660BC3
:106FD000A093670BB093680B8091650B9091660B43
:106FE000A091670BB091680B8138FEE39F07F0E03A
:106FF000AF07F0E0BF072CF080E89EE3A0E0B0E030
:1070000009C08058914CAF4FBF4F64F480E891ECB9
:10701000AFEFBFEF8093650B9093660BA093670B68
:10702000B093680B60910B0F70910C0F80918F03E0
:1070300090919003A0919103B091920389879A87D0
:10704000AB87BC87882777FD8095982F0E948D4C51
:107050007B018C016091650B7091660B8091670BD1
:107060009091680B0E948D4C9B01AC0169857A85DB
:107070008B859C850E94074D9B01AC01C801B7011F
:107080000E94E84B0E94704C5B016C014B018091A7
:107090009E03E82EFF24002711278D819E8197FFF4
:1070A00003C0909581959F4F62E070E00E948E4DE5
:1070B0009B01AB81BC812A0F3B1F442737FD4095C4
:1070C000542FC801B7010E944F4D20E430E040E04A
:1070D00050E00E94C34D3A832983821693060CF434
:1070E000950149815A81509541955F4F58874F834B
:1070F000421753070CF4A9018B819C816D817E811D
:10710000860F971F840F951F97FF03C020E030E084
:1071100005C09301861597050CF49C018091040F1E
:10712000882E9924C401821693060CF4C901809319
:10713000FC0E8B819C81841B950BAD81BE818A0FD7
:107140009B1F97FF03C020E030E005C09301861528
:1071500097050CF49C01C401821693060CF4C90136
:107160008093010F2091FA0E3091FB0EE091070BF6
:10717000F091080B80919F0B9091A00BE81BF90BED
:10718000FC8BEB8B2E1B3F0B3093F90E2093F80EEC
:1071900020E030E040E050E0C201B1010E94974C95
:1071A0008823F1F1E090B30AF090B40A0091B50A97
:1071B0001091B60A6091610B7091620B8091630B24
:1071C0009091640B0E948D4C5B016C01C801B7016A
:1071D0000E948D4CA20191010E94074D7B018C0100
:1071E0002B893C89B901882777FD8095982F0E94CB
:1071F0008D4C9B01AC01C801B7010E94E74B9B017C
:10720000AC01C601B5010E94E84B0E94704C60932E
:10721000610B7093620B8093630B9093640B1CC0A3
:107220002091F80E3091F90E442737FD4095542FE8
:107230008091610B9091620BA091630BB091640BF4
:10724000820F931FA41FB51F8093610B9093620B55
:10725000A093630BB093640B8091610B9091620BD0
:10726000A091630BB091640B181619061A061B0641
:1072700024F40297A109B10903C00296A11DB11D12
:107280008093610B9093620BA093630BB093640B9C
:107290008091610B9091620BA091630BB091640B94
:1072A00081383EE3930730E0A30730E0B3072CF0CA
:1072B00080E89EE3A0E0B0E009C08058914CAF4F59
:1072C000BF4F64F480E891ECAFEFBFEF8093610BA8
:1072D0009093620BA093630BB093640B6091F80ED4
:1072E0007091F90E882777FD8095982F0E948D4C1C
:1072F0007B018C016091610B7091620B8091630B3B
:107300009091640B0E948D4C9B01AC0169857A853C
:107310008B859C850E94074D9B01AC01C801B7017C
:107320000E94E84B0E94704C29813A8162177307D2
:107330000CF49B018F819885821793070CF4C90187
:107340004B815C81480F591F6D817E81461B570B15
:1073500057FF03C060E070E005C0B3014615570554
:107360000CF4BA01A401861697060CF4AB01409305
:107370001B0F2B813C81281B390B8D819E81281B83
:10738000390B37FF03C040E050E005C0A3012615CC
:1073900037050CF4A901C401841695060CF0D9C078
:1073A000CA01D7C02091240B3091250BC90113E0ED
:1073B000880F991F1A95E1F7821B930B68E070E024
:1073C0000E948E4D8B017093250B6093240B40E03F
:1073D00050E00C94AD2A8091140B882311F40C9486
:1073E000562D0C944C2D6091AB0A7091AC0A809193
:1073F000AD0A9091AE0AA090C60EBB24CC24DD2429
:10740000E0901E0FF0901F0FA60195010E94C34D42
:107410000027F7FC0095102F2E193F09400B510B48
:10742000CA01B90120E130E040E050E00E94C34DC4
:1074300039014A016091B30A7091B40A8091B50A8A
:107440009091B60AE090280FF090290FA6019501BF
:107450000E94C34D0027F7FC0095102F2E193F09FD
:10746000400B510BCA01B90120E130E040E050E08F
:107470000E94C34D79018A0191E269167104810469
:10748000910414F40C94002EB0E26B2E712C812C1C
:10749000912C0C94112E1092BB0A1092BC0A1092DF
:1074A000BD0A1092BE0A1092BF0A1092C00A109232
:1074B000C10A1092C20A10920D0F10920E0F109274
:1074C0000F0F1092100F1092110F1092120F1092B6
:1074D000130F1092140F1092050F1092060F1092B6
:1074E000070F1092080F1092FD0E1092FE0E1092D0
:1074F000FF0E1092000F8091CB0A9091CC0AA091C0
:10750000CD0AB091CE0A8093CF0A9093D00AA0936F
:10751000D10AB093D20A8091D30A9091D40AA09153
:10752000D50AB091D60A8093D70A9093D80AA0932F
:10753000D90AB093DA0A1092820A1092810A109244
:10754000130B1092120B1092110B1092100B0C9443
:10755000512E8093190F66960FB6F894DEBF0FBEBA
:10756000CDBFDF91CF911F910F91FF90EF90DF90F2
:10757000CF90BF90AF909F908F907F906F905F90D3
:107580004F903F902F9008952F923F924F925F928D
:107590006F927F928F929F92AF92BF92CF92DF9223
:1075A000EF92FF920F931F93CF93DF93CDB7DEB788
:1075B0006F970FB6F894DEBF0FBECDBF2091320E8D
:1075C0002D87233009F059C2E091AC0BFF27EE0F55
:1075D000FF1FEE0FFF1FE15DF04F8091150E9091A0
:1075E000160EA091170EB091180E80839183A2837E
:1075F000B383E091AC0BFF27EE0FFF1FEE0FFF1FD1
:10760000E15BF04F8091190E90911A0EA0911B0E24
:10761000B0911C0E80839183A283B3838091AC0BC5
:107620008F5F8093AC0B8091AC0B883011F410927B
:10763000AC0B8091C50B9091C60B08974CF48091D0
:10764000C50B9091C60B01969093C60B8093C50B0A
:107650001092B50B1092B60B1092B70B1092B80B9C
:107660001092B90B1092BA0B1092BB0B1092BC0B7C
:107670001092BD0B1092BE0B1092BF0B1092C00B5C
:107680001092C10B1092C20B1092C30B1092C40B3C
:107690001C821B824FE25FE05A8349838FE49FE0A4
:1076A0002FC12090B50B3090B60B4090B70B509087
:1076B000B80B6090B90B7090BA0B8090BB0B909098
:1076C000BC0BA981BA812D913D914D915C91DA015C
:1076D000C901BB0F880B982FDC012E873F87488B91
:1076E000598B8A8B8B8B8C8B8D8BAE84A20C81E01B
:1076F000A21408F080E0BF84B30C21E0B31408F0BA
:1077000020E08B0D91E08B1508F090E0292BB82E2E
:10771000C888C40C31E0C41408F030E0822F8C0D0E
:1077200091E08C1508F090E0392BC82ED988D50C43
:1077300021E0D51408F020E0832F8D0D91E08D1508
:1077400008F090E0292BD82EEA88E60C31E0E61408
:1077500008F030E0822F8E0D91E08E1508F090E059
:10776000392BE82EFB88F70C21E0F71408F020E015
:10777000832F8F0D91E08F1508F090E0292BF82EC4
:107780000C89080D91E0081508F090E0822F800F19
:10779000E1E0801708F0E0E0AE2FA92B1D89190D5C
:1077A000A10FA092B50BB092B60BC092B70BD092BE
:1077B000B80BE092B90BF092BA0B8093BB0BA0937D
:1077C000BC0B2090BD0B3090BE0B4090BF0B509077
:1077D000C00B6090C10B7090C20B8090C30B909057
:1077E000C40BEE8DFF8D2081318142815381DA01FE
:1077F000C901BB0F880B982FDC012E8B3F8B488F64
:10780000598F8A8F8B8F8C8F8D8FAE88A20C81E0E1
:10781000A21408F080E0BF88B30C21E0B31408F094
:1078200020E08B0D91E08B1508F090E0292BB82E0D
:10783000C88CC40C31E0C41408F030E0822F8C0DE9
:1078400091E08C1508F090E0392BC82ED98CD50C1E
:1078500021E0D51408F020E0832F8D0D91E08D15E7
:1078600008F090E0292BD82EEA8CE60C31E0E614E3
:1078700008F030E0822F8E0D91E08E1508F090E038
:10788000392BE82EFB8CF70C21E0F71408F020E0F0
:10789000832F8F0D91E08F1508F090E0292BF82EA3
:1078A0000C8D080D91E0081508F090E0822F800FF4
:1078B000E1E0801708F0E0E0AE2FA92B1D8D190D37
:1078C000A10FA092BD0BB092BE0BC092BF0BD09285
:1078D000C00BE092C10BF092C20B8093C30BA0933C
:1078E000C40B2B813C812F5F3F4F3C832B8349810D
:1078F0005A814C5F5F4F5A8349838E8D9F8D0496CA
:107900009F8F8E8F8091C50B9091C60BAB81BC81F0
:10791000A817B9070CF4C5CE2090B50B3090B60B64
:107920004090B70B5090B80B6090B90B7090BA0BA9
:107930008090BB0B9090BC0BA091C50BB091C60B77
:10794000FD01FF0FEE0BFE2F9D01AA2EB32ECE2EB2
:10795000DE2EEE2EFE2E0E2F1E2F222D332D442D29
:10796000552D662D772D882D992D0E9462412093EB
:10797000B50B3093B60B4093B70B5093B80B609395
:10798000B90B7093BA0B8093BB0B9093BC0B2090F8
:10799000BD0B3090BE0B4090BF0B5090C00B609061
:1079A000C10B7090C20B8090C30B9090C40BA09140
:1079B000C50BB091C60BFD01FF0FEE0BFE2F9D0115
:1079C000AA2EB32ECE2EDE2EEE2EFE2E0E2F1E2F24
:1079D000222D332D442D552D662D772D882D992D53
:1079E0000E9462412093BD0B3093BE0B4093BF0BAE
:1079F0005093C00B6093C10B7093C20B8093C30B69
:107A00009093C40B2091B50B3091B60B4091B70BFE
:107A10005091B80B6091B90B7091BA0B8091BB0B70
:107A20009091BC0B2093AD0B3093AE0B4093AF0BFA
:107A30005093B00B2091BD0B3091BE0B4091BF0B0A
:107A40005091C00B6091C10B7091C20B8091C30B20
:107A50009091C40B2093B10B3093B20B4093B30BB6
:107A60005093B40B81E08093AB0B1092570A209196
:107A70000B0B213009F073C01CC0BD85B33008F07A
:107A80006EC08091F80A9091F90A873491050CF440
:107A900066C010929E0B10929D0B1092A00B10923C
:107AA0009F0B439882E390E09093670A8093660A65
:107AB00056C08091A10B882309F06BC08091F20A17
:107AC0009091F30A805D974008F063C08091AD0B00
:107AD0009091AE0BA091AF0BB091B00B8093A20B25
:107AE0009093A30BA093A40BB093A50B8091B10B23
:107AF0009091B20BA091B30BB091B40B8093A60BF5
:107B00009093A70BA093A80BB093A90B8091AD0BFA
:107B10009091AE0BA091AF0BB091B00B8093710B15
:107B20009093720BA093730BB093740B8091B10B75
:107B30009091B20BA091B30BB091B40B8093750BE5
:107B40009093760BA093770BB093780B82E390E041
:107B50009093670A8093660A2093A10B1AC08091C4
:107B60000B0B8823B1F41092A20B1092A30B10926E
:107B7000A40B1092A50B1092A60B1092A70B1092BB
:107B8000A80B1092A90B1092A10B1092F30A10925D
:107B9000F20A2091F80A3091F90A3F8F2E8F26348D
:107BA000310564F58091AD0B9091AE0BA091AF0BB8
:107BB000B091B00B8093710B9093720BA093730BE9
:107BC000B093740B8091B10B9091B20BA091B30B59
:107BD000B091B40B8093750B9093760BA093770BB9
:107BE000B093780B10929E0B10929D0B1092A00BED
:107BF00010929F0B43981092320E4BC33D85333049
:107C000009F047C34E8D5F8D473451050CF441C3D5
:107C1000463951050CF053C02091050B3091060BED
:107C20008091410990914209821793078CF0442773
:107C30005527481B590B2417350754F02091070B83
:107C40003091080B821793071CF024173507BCF5F9
:107C500010929E0B10929D0B1092A00B10929F0BF6
:107C60008091AD0B9091AE0BA091AF0BB091B00B8A
:107C70008093710B9093720BA093730BB093740B62
:107C80008091B10B9091B20BA091B30BB091B40B5A
:107C90008093750B9093760BA093770BB093780B32
:107CA0008091AA0B883C30F088B198E0892788B988
:107CB0001092AA0B8091AA0B8F5F8093AA0B8091E0
:107CC000AB0B813009F0E5C2E090710BF090720BC4
:107CD0000091730B1091740BE114F104010511056F
:107CE00009F4D7C2A090750BB090760BC090770BBB
:107CF000D090780BA114B104C104D10409F4C9C215
:107D00002091050B3091060B809141099091420919
:107D1000821793070CF4BDC244275527481B590B03
:107D2000241735070CF4B5C22091070B3091080BCE
:107D3000821793070CF4ADC2241735070CF4A9C2BF
:107D40008E8D9F8D863991050CF094C28091AD0B7C
:107D50009091AE0BA091AF0BB091B00BE81AF90A5D
:107D60000A0B1B0BE092790BF0927A0B00937B0BC2
:107D700010937C0B8091B10B9091B20BA091B30B3F
:107D8000B091B40BA81AB90ACA0ADB0AA0927D0BFB
:107D9000B0927E0BC0927F0BD092800B56C0E090C9
:107DA000A60BF090A70B0091A80B1091A90BE11462
:107DB000F1040105110509F485C08091AD0B909186
:107DC000AE0BA091AF0BB091B00B281B390B4A0B37
:107DD0005B0B2093790B30937A0B40937B0B509382
:107DE0007C0B8091B10B9091B20BA091B30BB09131
:107DF000B40BE81AF90A0A0B1B0BE0927D0BF09208
:107E00007E0B00937F0B1093800B8091AD0B9091B4
:107E1000AE0BA091AF0BB091B00B8093710B909310
:107E2000720BA093730BB093740B8091B10B909174
:107E3000B20BA091B30BB091B40B8093750B9093E0
:107E4000760BA093770BB093780B439A3BC080914D
:107E5000A60B9091A70BA091A80BB091A90B00972E
:107E6000A105B10579F58091AD0B9091AE0BA09174
:107E7000AF0BB091B00BE81AF90A0A0B1B0BE0929A
:107E8000790BF0927A0B00937B0B10937C0B809113
:107E9000B10B9091B20BA091B30BB091B40BA81A97
:107EA000B90ACA0ADB0AA0927D0BB0927E0BC0927F
:107EB0007F0BD092800B439A82E390E09093670A05
:107EC0008093660AE090210EF090220E0091230E1E
:107ED0001091240EE092810BF092820B0093830BA1
:107EE0001093840BA090250EB090260EC090270E04
:107EF000D090280EA092850BB092860BC092870B73
:107F0000D092880B6091C90B7091CA0B6090790B6D
:107F100070907A0B80907B0B90907C0B882777FD7C
:107F20008095982FA40193010E944F4D20E038E0E6
:107F300040E050E00E94C34D29873A874B875C8719
:107F40002093890B30938A0B40938B0B50938C0BAF
:107F50006091C70B7091C80B882777FD8095982F8B
:107F6000A80197010E944F4D20E031E040E050E031
:107F70000E94C34D19012A0120938D0B30938E0B63
:107F800040938F0B5093900B6091C90B7091CA0B6B
:107F9000E0907D0BF0907E0B00917F0B1091800B99
:107FA000882777FD8095982FA80197010E944F4D53
:107FB00020E038E040E050E00E94C34D2D833E8336
:107FC0004F8358872093910B3093920B4093930BE0
:107FD0005093940B6091C70B7091C80B882777FD65
:107FE0008095982FA60195010E944F4D20E031E029
:107FF00040E050E00E94C34D2093950B3093960BC8
:108000004093970B5093980BAE8DBF8DA639B10559
:108010000CF482C08091A20B9091A30BA091A40BB1
:10802000B091A50B0097A105B10509F475C0809129
:10803000A60B9091A70BA091A80BB091A90B00974C
:10804000A105B10509F468C0C30177FE03C090958E
:1080500081959F4F855F914054F4C701F7FE03C09F
:10806000909581959F4F855F91400CF455C0FFE13D
:108070002F1631044104510464F08EE190E0A0E039
:10808000B0E080938D0B90938E0BA0938F0BB093E9
:10809000900B2F3131054105510564F08EE190E0E0
:1080A000A0E0B0E08093950B9093960BA093970B74
:1080B000B093980B80918D0B90918E0BA0918F0BAC
:1080C000B091900B825E9F4FAF4FBF4F64F482EE32
:1080D0009FEFAFEFBFEF80938D0B90938E0BA0932C
:1080E0008F0BB093900B8091950B9091960BA09174
:1080F000970BB091980B825E9F4FAF4FBF4F64F4C8
:1081000082EE9FEFAFEFBFEF8093950B9093960BAE
:10811000A093970BB093980BE0908D0BF0908E0B83
:1081200049855A85E41AF50AF0929A0BE092990B68
:108130008091950B9091960BCD80DE80C81AD90A5C
:10814000D0929C0BC0929B0BE091E70AF091E80A59
:108150002091E70A3091E80AEE0FFF1FEF58F94F20
:1081600080819181DC01EA9EC001EB9E900DFA9E18
:10817000900D112460E074E00E948E4D8B01220F5F
:10818000331F2F553C4FF901808191819C01C29E84
:10819000C001C39E900DD29E900D112460E074E04A
:1081A0000E948E4D061B170B10939E0B00939D0B88
:1081B000E091E70AF091E80A2091E70A3091E80A95
:1081C000EE0FFF1FEF58F94F80819181AC01C49EE3
:1081D000C001C59E900DD49E900D112460E074E006
:1081E0000E948E4DFB01220F331F2F553C4FD901AA
:1081F0008D919C919C01E29EC001E39E900DF29EA8
:10820000900D112460E074E00E948E4DE60FF71F80
:10821000F093A00BE0939F0B0432110534F083E23E
:1082200090E090939E0B80939D0BB49734F083E283
:1082300090E09093A00B80939F0B80919D0B909169
:108240009E0B8D5D9F4F34F48DED9FEF90939E0BB1
:1082500080939D0B80919F0B9091A00B8D5D9F4F04
:1082600034F48DED9FEF9093A00B80939F0B1092B1
:10827000AB0B0FC02091A20B3091A30B4091A40B2C
:108280005091A50B211531054105510509F087CD08
:10829000DECD6F960FB6F894DEBF0FBECDBFDF9177
:1082A000CF911F910F91FF90EF90DF90CF90BF90F3
:1082B000AF909F908F907F906F905F904F903F9086
:1082C0002F900895A9E9B0E0E8E6F1E40C94DE4DC2
:1082D000222E332E442E552E662E772E882E992E42
:1082E0002A2DA8E0FE01B196AA2E1192AA94E9F7D0
:1082F00029A23AA24BA25CA26DA27EA28FA298A64E
:10830000FE0131961192AA95E9F72983BA82CB82B0
:10831000DC82ED82FE820F8318878DA19EA1AFA122
:10832000B8A5B7FDEDC4CF57DF4F1882C158D04074
:108330008D819E81AF81B885B7FD14C4A980BA80B4
:10834000CB80DC80ED80FE800F81188529A13AA1C9
:108350004BA15CA16DA17EA18FA198A5A8E0FE0113
:108360003996BA2F1192BA95E9F729873A874B8740
:108370005C876D877E878F87988BFE01719611923F
:10838000AA95E9F7A98ABA8ACB8ADC8AED8AFE8A9D
:108390000F8B188F29883A884B885C88ED88FE8877
:1083A0000F89188D69847A848B849C8429966CAE9D
:1083B0007DAE8EAE9FAE29978D849E84AF84B888A3
:1083C0002D968CAE9DAEAEAEBFAE2D97E114F104EE
:1083D0000105110509F02BC182149304A404B5040E
:1083E00008F422C2211431044104510409F467C580
:1083F00000E0201600E0300601E0400600E05006F4
:1084000008F04CC51FEF211631044104510419F046
:1084100010F00C94494B20E030E040E050E080E068
:1084200090E04201310104C0969487947794679458
:108430008A95D2F7D401C3018D5B964FDC018C91F4
:10844000280F311D411D511DDA01C90120E230E024
:1084500040E050E039014A01681A790A8A0A9B0A09
:1084600009F090C72D96ACACBDACCEACDFAC2D976F
:10847000A218B308C408D508720100271127A196D5
:10848000ECAEFDAE0EAF1FAFA1979201810120703F
:108490003070A5960CAF1DAF2EAF3FAFA59721E072
:1084A00030E040E050E065962CAF3DAF4EAF5FAF9F
:1084B0006597C601B501A1962CAD3DAD4EAD5FAD42
:1084C000A1970E94A14DE1962CAF3DAF4EAF5FAF9B
:1084D000E197A5966CAD7DAD8EAD9FADA5970E9441
:1084E0004F4D3B014C01C601B501A1962CAD3DADF0
:1084F0004EAD5FADA1970E94A14DCB0177276627B6
:108500002996ACACBDACCEACDFAC29979601442724
:1085100055277B018C01E22AF32A042B152BE61444
:10852000F7040805190500F5E1962CAD3DAD4EADFB
:108530005FADE1972150304040405040E1962CAF74
:108540003DAF4EAF5FAFE197E20CF31C041D151D6C
:10855000E214F3040405150538F0E614F7040805E1
:10856000190510F40C94BD4BE618F7080809190911
:10857000C801B701A1962CAD3DAD4EAD5FADA19741
:108580000E94A14D59016A01A5966CAD7DAD8EADDD
:108590009FADA5970E944F4D3B014C01C801B7010B
:1085A000A1962CAD3DAD4EAD5FADA1970E94A14D02
:1085B000CB017727662729962CAD3DAD4EAD5FAD3B
:1085C000299740705070262B372B482B592B261596
:1085D000370548055905A8F40894A108B108C10851
:1085E000D108220D331D441D551D221533054405A8
:1085F000550538F0261537054805590510F40C9433
:10860000A14BE1966CAC7DAC8EAC9FACE197D301F5
:108610009927882715012601282A392A4A2A5B2A00
:1086200065962CAD3DAD4EAD5FAD659713C02D96F3
:108630008CAC9DACAEACBFAC2D978E149F04A00645
:10864000B10608F032C222243324210120E030E0B8
:1086500040E050E088E0FE01799611928A95E9F7B2
:10866000298E3A8E4B8E5C8E2D8F3E8F4F8F58A366
:10867000298C3A8C4B8C5C8C6D8C7E8C8F8C98A06A
:10868000CF57DF4FB880C158D040BB2011F40C94B5
:10869000CD4BCE56DF4F1882C259D040CD56DF4F5A
:1086A0001882C359D040CC56DF4F1882C459D040ED
:1086B000CB56DF4F1882C559D040CA56DF4F1882BB
:1086C000C659D040C956DF4F1882C759D040C85646
:1086D000DF4F1882C859D040C756DF4F1882C9599A
:1086E000D04000E0021981E0CC24C01608F080E000
:1086F000CD56DF4F1881C359D040131991E0CD56A4
:10870000DF4FD880C359D040D11608F090E0E12E59
:10871000E81A8E2DE1E01E1508F0E0E09E2B182FE0
:10872000CC56DF4F2881C459D0402419E1E0CC5603
:10873000DF4FF880C459D040F21608F0E0E0822FF5
:10874000891B91E0281708F090E0E92B282FCB56E1
:10875000DF4F3881C559D040351991E0CB56DF4FF6
:108760008881C559D040831708F090E0832F8E1B75
:10877000E1E0381708F0E0E09E2B382FCA56DF4FB3
:108780004881C659D0404619E1E0CA56DF4FA8815A
:10879000C659D040A41708F0E0E0842F891B91E06F
:1087A000481708F090E0E92B482FC956DF4F588151
:1087B000C759D0405719F1E0C956DF4FB881C759A2
:1087C000D040B51708F0F0E0852F8E1B91E05817C8
:1087D00008F090E0F92B582FC856DF4F6881C85930
:1087E000D040681991E0C856DF4FE881C859D040A1
:1087F000E61708F090E0862F8F1BE1E0681708F07D
:10880000E0E09E2B682FC756DF4F7881C959D040D2
:108810007919872F891B202E312E422E532E642E3C
:10882000752E862E982EB9C700E0201600E030067F
:1088300001E0400600E0500608F04EC31FEF21168D
:1088400031044104510411F008F01CC720E030E06D
:1088500040E050E080E090E04201310104C0969495
:108860008794779467948A95D2F7D401C3018D5B7E
:10887000964FDC018C91280F311D411D511D80E266
:1088800090E0A0E0B0E03C014D01621A730A840A56
:10889000950A09F445C0C301062C04C0220C331C00
:1088A000441C551C0A94D2F72D96ECACFDAC0EADD1
:1088B0001FAD2D97062C04C0EE0CFF1C001F111FCE
:1088C0000A94D2F720E230E02619370929966CACD9
:1088D0007DAC8EAC9FAC299704C096948794779416
:1088E00067942A95D2F7E628F728082919292D96A2
:1088F000ECAEFDAE0EAF1FAF2D9729968CAC9DACA4
:10890000AEACBFAC299704C0880C991CAA1CBB1C38
:108910008A95D2F729968CAE9DAEAEAEBFAE2997A2
:108920003201882499249201810120703070699667
:108930000CAF1DAF2EAF3FAF69972D966CAD7DADDF
:108940008EAD9FAD2D97A40193010E94A14D6D9610
:108950002CAF3DAF4EAF5FAF6D9769966CAD7DADFF
:108960008EAD9FAD69970E944F4D5B016C012D96B6
:108970006CAD7DAD8EAD9FAD2D97A40193010E948E
:10898000A14DCB01772766272996ECACFDAC0EAD47
:108990001FAD29979801442755277B018C01E22AB6
:1089A000F32A042B152BEA14FB040C051D05F8F41F
:1089B0006D962CAD3DAD4EAD5FAD6D972150304005
:1089C000404050406D962CAF3DAF4EAF5FAF6D97BE
:1089D000E20CF31C041D151DE214F3040405150537
:1089E00030F0EA14FB040C051D0508F4B7C6EA18BC
:1089F000FB080C091D09C801B701A40193010E94DD
:108A0000A14D59016A0169966CAD7DAD8EAD9FADEA
:108A100069970E944F4D69AF7AAF8BAF9CAFC80189
:108A2000B701A40193010E94A14DCB0177276627CE
:108A300029962CAD3DAD4EAD5FAD2997407050707D
:108A4000262B372B482B592B89AD9AADABADBCAD3E
:108A5000281739074A075B07A0F40894A108B10852
:108A6000C108D108220D331D441D551D22153305A3
:108A70004405550530F0281739074A075B0708F405
:108A800067C66D966CAC7DAC8EAC9FAC6D97D30118
:108A90009927882715012601282A392A4A2A5B2A7C
:108AA00020E030E040E050E0D5CD20E0E21620E0CC
:108AB000F20621E0020720E0120708F41EC240E09F
:108AC000E41640E0F40640E0040741E0140708F033
:108AD000E8C520E130E040E050E080E190E037017F
:108AE000480104C096948794779467948A95D2F746
:108AF000D401C3018D5B964FDC018C91280F311D91
:108B0000411D511DDA01C90120E2A22EB12CC12C58
:108B1000D12CA6019501281B390B4A0B5B0B09F0E0
:108B200079C22D966CAC7DAC8EAC9FAC2D97E614C3
:108B3000F7040805190560F029968CAC9DACAEAC25
:108B4000BFAC299782149304A404B50408F47BCD28
:108B500081E0282E312C412C512C20E030E040E0E7
:108B600050E078CDCF57DF4FE881C158D040E09535
:108B7000CF57DF4FE883C158D04088249924AA24D6
:108B8000BB24CC24DD24EE24FF24F981C657DF4F1B
:108B9000F883CA58D0406A80C557DF4F6882CB58E7
:108BA000D0407B80C457DF4F7882CC58D0400C81B6
:108BB000C357DF4F0883CD58D0401D81C257DF4FC8
:108BC0001883CE58D0402E81C157DF4F2883CF580D
:108BD000D0403F81C057DF4F3883C059D0404885CF
:108BE000CF56DF4F4883C159D040082D0F1B81E07D
:108BF000801608F0E5C1192DC557DF4F9881CB5875
:108C0000D040191B91E0911608F0D1C1A12FA81BEB
:108C10008A2FE1E01A1708F0C8C19E2B182F2A2DC1
:108C2000C457DF4FB881CC58D0402B1BE1E0A216CF
:108C300008F0B3C1822F891B91E0281708F0ABC15F
:108C4000E92B282F3B2DC357DF4FF881CD58D0405B
:108C50003F1B91E0B31608F096C1832F8E1BE1E015
:108C6000381708F08EC19E2B382F4C2DC257DF4F7E
:108C70006880CE58D0404619E1E0C41608F079C1AA
:108C8000842F891B91E0481708F071C1E92B482F08
:108C90005D2DC157DF4F7880CF58D0405719F1E094
:108CA000D51608F05CC1852F8E1B91E0581708F08F
:108CB00054C1F92B582F6E2DC057DF4F8881C059F2
:108CC000D040681B91E0E61608F03FC1862F8F1B4D
:108CD000E1E0681708F037C19E2B682F7F2DCF5633
:108CE000DF4FA881C159D0407A1B872F891B098388
:108CF0001A832B833C834D835E836F8388871ECBCF
:108D000088249924AA24BB24CC24DD24EE24FF2427
:108D100009A1CE57DF4F0883C258D0401AA1CD57C2
:108D2000DF4F1883C358D0402BA1CC57DF4F288387
:108D3000C458D0403CA1CB57DF4F3883C558D040F2
:108D40004DA1CA57DF4F4883C658D0405EA1C957CE
:108D5000DF4F5883C758D0408FA1C857DF4F888353
:108D6000C858D04098A5C757DF4F9883C958D040FE
:108D7000082DCE57DF4FA881C258D0400A1B81E092
:108D8000801608F0DEC0192DCD57DF4FB881C358CB
:108D9000D0401B1B91E0911608F0CAC0E12FE81BE0
:108DA0008E2FE1E0181708F0C1C09E2B182F2A2D36
:108DB000CC57DF4FF881C458D0402F1BE1E0A216FA
:108DC00008F020C1822F891B91E0281708F018C1F4
:108DD000E92B282F3B2DCB57DF4F6880C558D0405B
:108DE000361991E0B31608F003C1832F8E1BE1E022
:108DF000381708F0FBC09E2B382F4C2DCA57DF4F79
:108E00007880C658D0404719E1E0C41608F0E6C0A3
:108E1000842F891B91E0481708F0DEC0E92B482F0A
:108E20005D2DC957DF4F8881C758D040581BF1E0EE
:108E3000D51608F0C9C0852F8E1B91E0581708F091
:108E4000C1C0F92B582F6E2DC857DF4F9881C858D5
:108E5000D040691B91E0E61608F060C0862F8F1B9A
:108E6000E1E0681708F058C09E2B682F7F2DC75788
:108E7000DF4FA881C958D0407A1B872F891B09A3CF
:108E80001AA32BA33CA34DA35EA36FA388A7BFEF98
:108E9000CF57DF4FB883C158D0404ACA20E02216CE
:108EA00020E0320620E0420621E0520608F007C426
:108EB00020E130E040E050E080E190E0B2CA61E0C3
:108EC00070E080E090E020E030E040E050E00E9480
:108ED000A14D19012A018CCA20E0221620E0320699
:108EE00020E0420621E0520608F0E2C320E130E033
:108EF00040E050E080E190E0AFCC3FEFE316F104BA
:108F00000105110511F008F0B6C320E030E040E0A3
:108F100050E080E090E0E3CDE0E0A6CF90E0862F47
:108F20008F1BE1E0681708F49FCFF6CFE0E03DCF5C
:108F300090E0E12FE81B8E2FE1E0181708F435CF01
:108F4000F5CF80E020CFE0E0C7CE90E0862F8F1BEA
:108F5000E1E0681708F4C0CEF6CF90E0AACEF0E0CA
:108F6000852F8E1B91E0581708F4A3CEF6CF90E022
:108F70008DCEE0E0842F891B91E0481708F486CE5F
:108F8000F6CFE0E070CE90E0832F8E1BE1E0381743
:108F900008F469CEF6CF90E053CEE0E0822F891B33
:108FA00091E0281708F44CCEF6CFE0E036CE90E002
:108FB000A12FA81B8A2FE1E01A1708F42ECEF5CFB7
:108FC00080E019CE90E03DCFF0E0852F8E1B91E040
:108FD000581708F436CFF6CF90E020CFE0E0842F8A
:108FE000891B91E0481708F419CFF6CFE0E003CFD2
:108FF00090E0832F8E1BE1E0381708F4FCCEF6CF0B
:1090000090E0E6CEE0E0822F891B91E0281708F47B
:10901000DFCEF6CF21963FAF2EAF2197A21AB30A2B
:10902000C40AD50AA60195010FAC04C0EE0CFF1CC2
:10903000001F111F0A94D2F7D201C10104C0B695D6
:10904000A79597958795AA94D2F7E82AF92A0A2B2B
:109050001B2B2596ECAEFDAE0EAF1FAF25970FACC8
:1090600004C0220C331C441C551C0A94D2F729A6B8
:109070003AA64BA65CA62D96ACACBDACCEACDFAC94
:109080002D97022E04C0D694C794B794A7940A943F
:10909000D2F72D96ECACFDAC0EAD1FAD2D970FACFD
:1090A00004C0EE0CFF1C001F111F0A94D2F7299672
:1090B0008CAD9DADAEADBFAD299704C0B695A7955B
:1090C000979587952A95D2F7E82AF92A0A2B1B2B20
:1090D000EDAAFEAA0FAB18AF25960CAD1DAD2EADB7
:1090E0003FAD2597790100271127E596ECAEFDAE3F
:1090F0000EAF1FAFE59725962CAD3DAD4EAD5FADE4
:10910000259740705070E9962CAF3DAF4EAF5FAFE2
:10911000E997C601B501A80197010E94A14DED96FE
:109120002CAF3DAF4EAF5FAFED97E9966CAD7DAD27
:109130008EAD9FADE9970E944F4D3B014C01C6019A
:10914000B501A80197010E94A14DCB0177276627A1
:10915000ADA8BEA8CFA8D8AC9601442755277B015F
:109160008C01E22AF32A042B152BE614F7040805D8
:10917000190500F5ED962CAD3DAD4EAD5FADED970B
:109180002150304040405040ED962CAF3DAF4EAFA7
:109190005FAFED9725968CAD9DADAEADBFAD25977C
:1091A000E80EF91E0A1F1B1FE816F9060A071B071F
:1091B00008F0B2C2E618F70808091909C801B70192
:1091C000E5962CAD3DAD4EAD5FADE5970E94A14D4E
:1091D00019012A01E9966CAD7DAD8EAD9FADE99781
:1091E0000E944F4D3B014C01C801B701E5962CADE3
:1091F0003DAD4EAD5FADE5970E94A14DCB01772708
:1092000066272DA93EA94FA958AD407050705B014B
:109210006C01A22AB32AC42AD52AA614B704C8040A
:10922000D904A8F40894210831084108510825966A
:10923000ECACFDAC0EAD1FAD2597AE0CBF1CC01E37
:10924000D11EAE14BF04C006D10608F055C2A61840
:10925000B708C808D908A9AABAAACBAADCAAED9669
:109260000CAD1DAD2EAD3FADED97D80199278827E8
:10927000282A392A4A2A5B2A61962CAE3DAE4EAE88
:109280005FAE6197820171012FEF3FEF40E050E048
:10929000E222F32204231523120144245524A9A415
:1092A000BAA4CBA4DCA4A222B322C422D52229A52D
:1092B0003AA54BA55CA53A0188249924C801B701B9
:1092C000A60195010E944F4DC358DF4F68837983F3
:1092D0008A839B83CD57D040C801B701A401930175
:1092E0000E944F4D7B018C01C201B101A601950185
:1092F0000E944F4D5B016C01C201B101A4019301B9
:109300000E944F4D9B01AC01EA0CFB1C0C1D1D1D66
:10931000C358DF4F688079808A809B80CD57D040CA
:10932000C401AA27BB27E80EF91E0A1F1B1FEA1457
:10933000FB040C051D0520F4205030404F4F5F4FBB
:10934000C801AA27BB27280F391F4A1F5B1F89A8FE
:109350009AA8ABA8BCA882169306A406B50608F482
:1093600079C182169306A406B50609F446C1619632
:109370002CAC3DAC4EAC5FAC619720E030E040E0FF
:1093800050E068C97EAE6DAE0DAC04C0220C331C3B
:10939000441C551C0A94D2F7261937094809590963
:1093A000DA01C9012D96ECACFDAC0EAD1FAD2D97C9
:1093B00004C016950795F794E7942A95D2F72D9651
:1093C0002CAD3DAD4EAD5FAD2D970DAC04C0220F61
:1093D000331F441F551F0A94D2F729966CAC7DACFD
:1093E0008EAC9FAC299704C0969487947794679429
:1093F0008A95D2F726293729482959292DA73EA72A
:109400004FA758AB4201AA24BB24A1968CAE9DAEB7
:10941000AEAEBFAEA197A201910140705070A5966B
:109420002CAF3DAF4EAF5FAFA597C801B701A50107
:1094300094010E94A14DA9962CAF3DAF4EAF5FAFF6
:10944000A997A5966CAD7DAD8EAD9FADA5970E94F9
:109450004F4D5B016C01C801B701A1962CAD3DAD2C
:109460004EAD5FADA1970E94A14DCB017727662736
:109470006DA47EA48FA498A89401442755277B014E
:109480008C01E22AF32A042B152BEA14FB040C05A9
:109490001D05D0F4A9962CAD3DAD4EAD5FADA9979D
:1094A0002150304040405040A9962CAF3DAF4EAFC8
:1094B0005FAFA997E20CF31C041D151DE214F30421
:1094C0000405150508F003C1EA18FB080C091D097D
:1094D000C801B701A1962CAD3DAD4EAD5FADA197D2
:1094E0000E94A14DAD962CAF3DAF4EAF5FAFAD9793
:1094F000A5966CAD7DAD8EAD9FADA5970E944F4DED
:109500003B014C01C801B701A1962CAD3DAD4EAD5C
:109510005FADA1970E94A14DCB01772766272DA5AE
:109520003EA54FA558A9407050705B016C01A22A5E
:10953000B32AC42AD52AA614B704C804D90450F5FE
:10954000AD968CAD9DADAEADBFADAD970197A10908
:10955000B109AD968CAF9DAFAEAFBFAFAD97A20CCA
:10956000B31CC41CD51CA214B304C404D50490F0CD
:10957000A614B704C804D90468F40197A109B10975
:10958000AD968CAF9DAFAEAFBFAFAD97A20CB31C85
:10959000C41CD51C2996ECACFDAC0EAD1FAD2997B3
:1095A0000DAC04C0EE0CFF1C001F111F0A94D2F773
:1095B0002996ECAEFDAE0EAF1FAF2997A618B708DF
:1095C000C808D908A9960CAD1DAD2EAD3FADA99721
:1095D000D80199278827AD962CAD3DAD4EAD5FAD36
:1095E000AD97282B392B4A2B5B2B65962CAF3DAFC3
:1095F0004EAF5FAF65970C94594229968CAD9DADE7
:10960000AEADBFAD29970FAC04C0880F991FAA1F3C
:10961000BB1F0A94D2F7A70133272227C358DF4F75
:10962000E880F9800A811B81CD57D0406FEFA62ECC
:109630006FEFB62EC12CD12CEA20FB200C211D216E
:109640002E0D3F1D401F511F82179307A407B5071A
:1096500008F08DCE61962CAC3DAC4EAC5FAC619702
:109660000894210831084108510820E030E040E02A
:1096700050E00C942A4328E030E040E050E088E0DD
:1096800090E02DCA28E030E040E050E088E090E033
:10969000E3C828E030E040E050E088E090E00C943F
:1096A000114228E130E040E050E088E190E017CA44
:1096B00028E130E040E050E088E190E0CDC828E1CA
:1096C00030E040E050E088E190E00C941142EA1470
:1096D000FB040C051D0508F0F7CE2150304040403A
:1096E0005040A9962CAF3DAF4EAF5FAFA997E20CAB
:1096F000F31C041D151DE8CEA614B704C804D90434
:1097000008F0A5CD08942108310841085108AE0C95
:10971000BF1CC01ED11E9BCDE614F7040805190519
:1097200008F048CD2150304040405040ED962CAFDD
:109730003DAF4EAF5FAFED97E80EF91E0A1F1B1F3E
:1097400039CD0894A108B108C108D1080C9401438F
:109750000894A108B108C108D10893C9215030402C
:10976000404050406D962CAF3DAF4EAF5FAF6D9710
:10977000E20CF31C041D151D3AC921503040404035
:109780005040E1962CAF3DAF4EAF5FAFE197E20C9A
:10979000F31C041D151D0C94B442222D332D442DB1
:1097A000552D662D772D882D992DE2E1C756DF4F77
:1097B0000C94FA4DFC014150504030F001900616D7
:1097C000D1F73197CF0108958827992708955058E8
:1097D000192EEFD001D0D2C0BA17620773078407E1
:1097E0009507B1F188F40EF410940B2EBA2FA02D2A
:1097F000062E622F202D072E732F302D082E842F3A
:10980000402D092E952F502DFF275523B9F0591BB8
:1098100049F0573E98F0469537952795A795F04023
:109820005395C9F776F0BA0F621F731F841F30F487
:10983000879577956795B795F040939517FA0F2E12
:109840000895BF1BBB27BA0B620B730B840BF6CFBB
:10985000DEF6DBC0AED001D091C0552359F099237C
:1098600069F09F575F57951B33F442F4903811F419
:10987000915805C09BC091589F3F09F4C6C0BB27B3
:10988000112462177307840730F4660F771F881F4F
:10989000BB1F915098F311D00F920FD00F920DD0A3
:1098A000A0E82617370748071B0609F0A048BA2F7B
:1098B000602D7F918F9100240895A0E80024621705
:1098C00073078407B10528F0621B730B840BB10981
:1098D0000A2A660F771F881FBB1FA69581F7089578
:1098E00097FB73D09F3738F0FEE9F91B982F872F2D
:1098F000762F6B2F05C086C09695879577956795CF
:10990000F150D0F73EF490958095709561957F4F1A
:109910008F4F9F4F0895E89403C097FB0EF4F3DF39
:10992000B62F672F782F892F9EE9002427C00ED0ED
:109930005EF004C00BD026F001C008D019F020F46E
:109940008FEF089580E0089581E0089597FB092E38
:10995000052600F8689430D0E89407FC07C0621729
:1099600073078407950721F008F4009407949894EE
:1099700008959A95BB0F661F771F881F112499239E
:10998000A1F08823B2F79F3F59F0BB0F48F421F4B0
:10999000002011F460FF04C06F5F7F4F8F4F9F4F17
:1099A000881F9795879597F908952CC09FEF80ECB5
:1099B0000895052E092607FA440F551F5F3F79F0D9
:1099C000AA27A51708F051E04795880F991F9F3FD8
:1099D00031F0BB27B91708F091E0879508959F9162
:1099E0009F911124E3CF97FB880F991F9F3F31F080
:1099F000BB27B91708F091E0879508959F919F9133
:109A00001124D4CF66277727882799270895D1DF97
:109A100001D0B4CF992339F0552329F09F575F57D0
:109A2000950F13F49AF1F1CF91589F3FE1F3629FA4
:109A3000A12D0F92BB27639FA00DB11DEE27729F32
:109A4000A00DB11DEE1FAF93AA27649FB00DE11DBD
:109A5000739FB00DE11DAA1F6627829FB00DE11D07
:109A6000A61F5527749FE00DA11D551F839FE00D74
:109A7000A11D561F849FA00D511D852F7A2F6E2F7B
:109A80001F900F9088231AF4939539F48FCF000C10
:109A9000111CBB1F661F771F881F01280895629F36
:109AA000D001739FF001829FE00DF11D649FE00DD6
:109AB000F11D929FF00D839FF00D749FF00D659F37
:109AC000F00D9927729FB00DE11DF91F639FB00D36
:109AD000E11DF91FBD01CF0111240895991B79E003
:109AE00004C0991F961708F0961B881F7A95C9F72E
:109AF00080950895AA1BBB1B51E107C0AA1FBB1F7D
:109B0000A617B70710F0A61BB70B881F991F5A9509
:109B1000A9F780959095BC01CD01089597FB092E7A
:109B200007260AD077FD04D0E5DF06D000201AF41E
:109B3000709561957F4F0895F6F7909581959F4FA9
:109B40000895A1E21A2EAA1BBB1BFD010DC0AA1F7E
:109B5000BB1FEE1FFF1FA217B307E407F50720F096
:109B6000A21BB30BE40BF50B661F771F881F991F11
:109B70001A9469F760957095809590959B01AC015A
:109B8000BD01CF01089597FB092E05260ED057FD84
:109B900004D0D7DF0AD0001C38F45095409530959A
:109BA00021953F4F4F4F5F4F0895F6F79095809561
:109BB000709561957F4F8F4F9F4F08952F923F92E1
:109BC0004F925F926F927F928F929F92AF92BF92CD
:109BD000CF92DF92EF92FF920F931F93CF93DF9379
:109BE000CDB7DEB7CA1BDB0B0FB6F894DEBF0FBED6
:109BF000CDBF09942A88398848885F846E847D8423
:109C00008C849B84AA84B984C884DF80EE80FD8024
:109C10000C811B81AA81B981CE0FD11D0FB6F8949A
:109C2000DEBF0FBECDBFED010895F999FECFB2BDE5
:109C3000A1BDF89A119600B40895F999FECFB2BD6E
:109C4000A1BD00BC11960FB6F894FA9AF99A0FBE0E
:049C50000895FFCFA5
:109C54000A01FF64496E74656772616C4E69636BD7
:109C64005F5F5F5F496E74656772616C526F6C6CA5
:109C74005F5F5F5F4163634E69636B5F5F5F5F5FFD
:109C84005F5F5F5F416363526F6C6C5F5F5F5F5FD9
:109C94005F5F5F5F55736572506172616D315F5FC5
:109CA4005F5F5F5F55736572506172616D325F5FB4
:109CB4005F5F5F5F536F6C6C5F506F735F4E6F726B
:109CC40074685F5F536F6C6C5F506F735F45617353
:109CD400745F5F5F4B6F6D7061737356616C756514
:109CE4005F5F5F5F554261745F5F5F5F5F5F5F5F90
:109CF4005F5F5F5F53656E6465724F6B61795F5F31
:109D04005F5F5F5F4750534669785F5F5F5F5F5F88
:109D14005F5F5F5F476573616D747374726F6D5FCE
:109D24005F5F5F5F476573636877696E6469676BDC
:109D34006569745F506F732E6E6F7274685F5F5FD6
:109D44005F5F5F5F506F732E656173745F5F5F5F0A
:109D54005F5F5F5F506F7469335F5F5F5F5F5F5F1B
:109D64005F5F5F5F48F668655F4750535F5F5F5FA3
:109D74005F5F5F5F486F6D655F4E6F7274685F5FB2
:109D84005F5F5F5F486F6D655F456173745F5F5FC1
:109D94005F5F5F5F506F736162775F4E6F7274686D
:109DA4005F5F5F5F506F736162775F456173745F7C
:109DB4005F5F5F5F505F45696E666C7573735F4E7E
:109DC4006F727468505F45696E666C7573735F4536
:109DD4006173745F445F45696E666C7573735F4E3F
:109DE4006F727468445F45696E666C7573735F4522
:109DF4006173745F4E4F5254485F4D495454454CFF
:109E04005F5F5F5F454153545F4D495454454C5F18
:109E14005F5F5F5F4750535F4E69636B5F5F5F5F78
:109E24005F5F5F5F4750535F526F6C6C5F5F5F5F54
:109E34005F5F5F5F537469636B4E69636B5F5F5F02
:109E44005F5F5F5F537469636B526F6C6C5F5F5FDE
:109E54005F5F5F5FFFFF0A016400007D0000FF0396
:109E64000102030405060708090A48616C6C6F20A7
:109E740057656C7400000000000000000000000042
:109E840000000000000000000000000000000000CE
:109E940000000000000000000000000000000000BE
:109EA40000000000000000000000000000000000AE
:109EB400000000000000000000000A01426567691C
:109EC4006E6E657200004E6F726D616C00005370AF
:109ED4006F72740000640090D0030090D0030017E8
:109EE400B7D13830FB103A409696020A644664ECC7
:109EF400FF0000120024003600470059006B007D6B
:109F0400008F00A000B200C300D500E600F80009ED
:109F1400011A012B013C014D015E016F018001908A
:109F240001A001B101C101D101E101F00100020F61
:109F3400021F022E023D024B025A0268027602847C
:109F4400029202A002AD02BA02C702D402E102EDFB
:109F540002F902050310031C03270332033C0347E1
:109F64000351035B0364036E037703800388039048
:109F7400039803A003A703AF03B503BC03C203C83C
:109F840003CE03D303D803DD03E203E603EA03EDC0
:109F940003F003F303F603F803FA03FC03FE03FFE1
:109FA40003FF03000400040004FF03FF03FE03FC9B
:109FB40003FA03F803F603F303F003ED03EA03E6FD
:109FC40003E203DD03D803D303CE03C803C203BCF7
:109FD40003B503AF03A703A003980390038803808A
:109FE4000377036E0364035B03510347033C0332AB
:109FF4000327031C0310030503F902ED02E102D455
:10A0040002C702BA02AD02A002920284027602687A
:10A01400025A024B023D022E021F020F020002F0FE
:10A0240001E101D101C101B101A001900180016FE1
:10A03400015E014D013C012B011A010901F800E602
:10A0440000D500C300B200A0008F007D006B005952
:10A054000047003600240012000000EEFFDCFFCAB7
:10A06400FFB9FFA7FF95FF83FF71FF60FF4EFF3D20
:10A07400FF2BFF1AFF08FFF7FEE6FED5FEC4FEB372
:10A08400FEA2FE91FE80FE70FE60FE4FFE3FFE2F9C
:10A09400FE1FFE10FE00FEF1FDE1FDD2FDC3FDB585
:10A0A400FDA6FD98FD8AFD7CFD6EFD60FD53FD4619
:10A0B400FD39FD2CFD1FFD13FD07FDFBFCF0FCE449
:10A0C400FCD9FCCEFCC4FCB9FCAFFCA5FC9CFC9206
:10A0D400FC89FC80FC78FC70FC68FC60FC59FC5139
:10A0E400FC4BFC44FC3EFC38FC32FC2DFC28FC23DD
:10A0F400FC1EFC1AFC16FC13FC10FC0DFC0AFC08EC
:10A10400FC06FC04FC02FC01FC01FC00FC00FC005D
:10A11400FC01FC01FC02FC04FC06FC08FC0AFC0D2E
:10A12400FC10FC13FC16FC1AFC1EFC23FC28FC2D62
:10A13400FC32FC38FC3EFC44FC4BFC51FC59FC60FA
:10A14400FC68FC70FC78FC80FC89FC92FC9CFCA5FF
:10A15400FCAFFCB9FCC4FCCEFCD9FCE4FCF0FCFB79
:10A16400FC07FD13FD1FFD2CFD39FD46FD53FD606D
:10A17400FD6EFD7CFD8AFD98FDA6FDB5FDC3FDD2F7
:10A18400FDE1FDF1FD00FE10FE1FFE2FFE3FFE4F20
:10A19400FE60FE70FE80FE91FEA2FEB3FEC4FED5FC
:10A1A400FEE6FEF7FE08FF1AFF2BFF3DFF4EFF60A1
:10A1B400FF71FF83FF95FFA7FFB9FFCAFFDCFFEE26
:10A1C400FF00040004FF03FF03FE03FC03FA03F88B
:10A1D40003F603F303F003ED03EA03E603E203DD0E
:10A1E40003D803D303CE03C803C203BC03B503AF30
:10A1F40003A703A003980390038803800377036EE7
:10A204000364035B03510347033C03320327031C2A
:10A214000310030503F902ED02E102D402C702BAF6
:10A2240002AD02A00292028402760268025A024B34
:10A23400023D022E021F020F020002F001E101D1D1
:10A2440001C101B101A001900180016F015E014DC6
:10A25400013C012B011A010901F800E600D500C3F5
:10A2640000B200A0008F007D006B0059004700364B
:10A2740000240012000000EEFFDCFFCAFFB9FFA7B4
:10A28400FF95FF83FF71FF60FF4EFF3DFF2BFF1A19
:10A29400FF08FFF7FEE6FED5FEC4FEB3FEA2FE9164
:10A2A400FE80FE70FE60FE4FFE3FFE2FFE1FFE107E
:10A2B400FE00FEF1FDE1FDD2FDC3FDB5FDA6FD9856
:10A2C400FD8AFD7CFD6EFD60FD53FD46FD39FD2CD0
:10A2D400FD1FFD13FD07FDFBFCF0FCE4FCD9FCCEE7
:10A2E400FCC4FCB9FCAFFCA5FC9CFC92FC89FC8082
:10A2F400FC78FC70FC68FC60FC59FC51FC4BFC4491
:10A30400FC3EFC38FC32FC2DFC28FC23FC1EFC1A11
:10A31400FC16FC13FC10FC0DFC0AFC08FC06FC04F7
:10A32400FC02FC01FC01FC00FC00FC00FC01FC0143
:10A33400FC02FC04FC06FC08FC0AFC0DFC10FC13EB
:10A34400FC16FC1AFC1EFC23FC28FC2DFC32FC38F9
:10A35400FC3EFC44FC4BFC51FC59FC60FC68FC706A
:10A36400FC78FC80FC89FC92FC9CFCA5FCAFFCB94D
:10A37400FCC4FCCEFCD9FCE4FCF0FCFBFC07FD13A4
:10A38400FD1FFD2CFD39FD46FD53FD60FD6EFD7C7A
:10A39400FD8AFD98FDA6FDB5FDC3FDD2FDE1FDF1ED
:10A3A400FD00FE10FE1FFE2FFE3FFE4FFE60FE70FE
:10A3B400FE80FE91FEA2FEB3FEC4FED5FEE6FEF7CD
:10A3C400FE08FF1AFF2BFF3DFF4EFF60FF71FF8366
:10A3D400FF95FFA7FFB9FFCAFFDCFFEEFF000012E5
:10A3E4000024003600470059006B007D008F00A058
:10A3F40000B200C300D500E600F80009011A012BE1
:10A40400013C014D015E016F0180019001A001B189
:10A4140001C101D101E101F00100020F021F022E6E
:10A42400023D024B025A026802760284029202A0A2
:10A4340002AD02BA02C702D402E102ED02F902053A
:10A444000310031C03270332033C03470351035B3C
:10A454000364036E0377038003880390039803A0C7
:10A4640003A703AF03B503BC03C203C803CE03D3DE
:10A4740003D803DD03E203E603EA03ED03F003F389
:10A4840003F603F803FA03FC03FE03FF03FF0300D0
:10A49400040F000001020203030303040404040480
:10A4A400040404050505050505050505050505055B
:10A4B400050505060606060606060606060606063B
:10A4C4000606060606060606060606060606060628
:10A4D400060606070707070707070707070707070B
:10A4E40007070707070707070707070707070707F8
:10A4F40007070707070707070707070707070707E8
:10A5040007070707070707070707070707070707D7
:10A5140007070708080808080808080808080808BA
:10A5240008080808080808080808080808080808A7
:10A534000808080808080808080808080808080897
:10A544000808080808080808080808080808080887
:10A554000808080808080808080808080808080877
:10A564000808080808080808080808080808080867
:10A574000808080808080808080808080808080857
:10A584000808080808080808080808080808080847
:04A5940008080800AB
:00000001FF
/branches/Flight-Ctrl_V0_67g_3_GPS_work_Jochen/GPS.c
1,30 → 1,310
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Copyright (c) 04.2007 Holger Buss
// + only for non-profit use
// + www.MikroKopter.com
// + see the File "License.txt" for further Informations
// + Copyright (c) 10.2007 by Jochen Kromayer
// + es handelt sich um eine Beta-Software, die zu nichtkommerziellen Zwecken frei veröffentlich und weitergegeben werden darf. Für evtl.
// + Personen- und/der Sachschäden ist jegliche Haftung ausgeschlossen
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#include "main.h"
 
//Sinusfunktion von 0° bis 359°. Ergebnis wurde mit 1024 multipliziert, damit als Definition platzsparend int
//verwendet werden kann. D.h., es muss also in der späteren Berechnung noch durch 1024 dividiert werden //(051207Kr)
const int c_sin[] = {0,18,36,54,71,89,107,125,143,160,178,195,213,230,248,265,282,299,316,333,350,367,384,400,
416,433,449,465,481,496,512,527,543,558,573,587,602,616,630,644,658,672,685,698,711,724,737,749,
761,773,784,796,807,818,828,839,849,859,868,878,887,896,904,912,920,928,935,943,949,956,962,968,
974,979,984,989,994,998,1002,1005,1008,1011,1014,1016,1018,1020,1022,1023,1023,1024,1024,1024,1023,1023,1022,1020,
1018,1016,1014,1011,1008,1005,1002,998,994,989,984,979,974,968,962,956,949,943,935,928,920,912,904,896,
887,878,868,859,849,839,828,818,807,796,784,773,761,749,737,724,711,698,685,672,658,644,630,616,
602,587,573,558,543,527,512,496,481,465,449,433,416,400,384,367,350,333,316,299,282,265,248,230,
213,195,178,160,143,125,107,89,71,54,36,18,0,-18,-36,-54,-71,-89,-107,-125,-143,-160,-178,-195,
-213,-230,-248,-265,-282,-299,-316,-333,-350,-367,-384,-400,-416,-433,-449,-465,-481,-496,-512,-527,-543,-558,-573,-587,
-602,-616,-630,-644,-658,-672,-685,-698,-711,-724,-737,-749,-761,-773,-784,-796,-807,-818,-828,-839,-849,-859,-868,-878,
-887,-896,-904,-912,-920,-928,-935,-943,-949,-956,-962,-968,-974,-979,-984,-989,-994,-998,-1002,-1005,-1008,-1011,-1014,-1016,
-1018,-1020,-1022,-1023,-1023,-1024,-1024,-1024,-1023,-1023,-1022,-1020,-1018,-1016,-1014,-1011,-1008,-1005,-1002,-998,-994,-989,-984,-979,
-974,-968,-962,-956,-949,-943,-935,-928,-920,-912,-904,-896,-887,-878,-868,-859,-849,-839,-828,-818,-807,-796,-784,-773,
-761,-749,-737,-724,-711,-698,-685,-672,-658,-644,-630,-616,-602,-587,-573,-558,-543,-527,-512,-496,-481,-465,-449,-433,
-416,-400,-384,-367,-350,-333,-316,-299,-282,-265,-248,-230,-213,-195,-178,-160,-143,-125,-107,-89,-71,-54,-36,-18};
 
//Cosinusfunktion von 0° bis 359°. Ergebnis wurde mit 1024 multipliziert, damit als Definition platzsparend int
//verwendet werden kann. D.h., es muss also in der späteren Berechnung noch durch 1024 dividiert werden //(051207Kr)
const int c_cos[] = {1024,1024,1023,1023,1022,1020,1018,1016,1014,1011,1008,1005,1002,998,994,989,984,979,974,968,962,956,949,943,
935,928,920,912,904,896,887,878,868,859,849,839,828,818,807,796,784,773,761,749,737,724,711,698,
685,672,658,644,630,616,602,587,573,558,543,527,512,496,481,465,449,433,416,400,384,367,350,333,
316,299,282,265,248,230,213,195,178,160,143,125,107,89,71,54,36,18,0,-18,-36,-54,-71,-89,
-107,-125,-143,-160,-178,-195,-213,-230,-248,-265,-282,-299,-316,-333,-350,-367,-384,-400,-416,-433,-449,-465,-481,-496,
-512,-527,-543,-558,-573,-587,-602,-616,-630,-644,-658,-672,-685,-698,-711,-724,-737,-749,-761,-773,-784,-796,-807,-818,
-828,-839,-849,-859,-868,-878,-887,-896,-904,-912,-920,-928,-935,-943,-949,-956,-962,-968,-974,-979,-984,-989,-994,-998,
-1002,-1005,-1008,-1011,-1014,-1016,-1018,-1020,-1022,-1023,-1023,-1024,-1024,-1024,-1023,-1023,-1022,-1020,-1018,-1016,-1014,-1011,-1008,-1005,
-1002,-998,-994,-989,-984,-979,-974,-968,-962,-956,-949,-943,-935,-928,-920,-912,-904,-896,-887,-878,-868,-859,-849,-839,
-828,-818,-807,-796,-784,-773,-761,-749,-737,-724,-711,-698,-685,-672,-658,-644,-630,-616,-602,-587,-573,-558,-543,-527,
-512,-496,-481,-465,-449,-433,-416,-400,-384,-367,-350,-333,-316,-299,-282,-265,-248,-230,-213,-195,-178,-160,-143,-125,
-107,-89,-71,-54,-36,-18,0,18,36,54,71,89,107,125,143,160,178,195,213,230,248,265,282,299,
316,333,350,367,384,400,416,433,449,465,481,496,512,527,543,558,573,587,602,616,630,644,658,672,
685,698,711,724,737,749,761,773,784,796,807,818,828,839,849,859,868,878,887,896,904,912,920,928,
935,943,949,956,962,968,974,979,984,989,994,998,1002,1005,1008,1011,1014,1016,1018,1020,1022,1023,1023,1024};
 
 
 
long Soll_Position_North = 0;
long Soll_Position_East = 0;
 
long GPS_Positionsabweichung_North = 0;
long GPS_Positionsabweichung_East = 0;
long GPS_Geschwindigkeit_North = 0;
long GPS_Geschwindigkeit_East = 0;
signed int GPS_StickSense = 15;
long P_Einfluss_North = 0;
long D_Einfluss_North = 0;
long P_Einfluss_East = 0;
long D_Einfluss_East = 0;
 
signed int GPS_North = 0;
signed int GPS_East = 0;
signed int GPS_Nick = 0;
signed int GPS_Roll = 0;
long GpsAktuell_X = 0;
long GpsAktuell_Y = 0;
long GpsZiel_X = 0;
long GpsZiel_Y = 0;
void GPS_Neutral(void)
{
GpsZiel_X = GpsAktuell_X;
GpsZiel_Y = GpsAktuell_Y;
}
 
void GPS_BerechneZielrichtung(void)
volatile char gethome = 0; //Flag ob GPS_Home_Position gelernt ist //(280807Kr)
long GPS_Home_North = 0;
long GPS_Home_East = 0;
 
unsigned char blinkcount_LED2 = 0; //Hilfszähler für die blinkende LED (010907Kr)
 
#define GPS_Limit 35 //(031207Kr)
#define Limit_D_Anteil 30 //(031207Kr)
 
 
 
//**************************** MIRCOS DEFINITIONSANFANG FÜR DIE FILTERUNG
// Filterung der GPS Messwerte vom Ublox-Empfänger. Es wird der gleitende Durchschnitt aus n Messwerten gebildet
 
#define MITTELWERTZAHL 8 // Anzahl der Messwerte fuer gleitenden Mittelwert
volatile char NeuerMittelwert = 0; //Flag ob ein neuer Mittelwert vorliegt, der mit GPS Frequenz berechnet wird, da nur dann neue Messwerte vom GPS vorliegen
volatile unsigned char FilterPos = 0;
volatile long NORTH_MITTEL = 0;
volatile long EAST_MITTEL = 0;
volatile long long NORTH_LONG_LONG = 0;
volatile long long EAST_LONG_LONG = 0;
volatile int filterfilled = 0;
 
typedef struct {
 
long NORTH[MITTELWERTZAHL];
 
} FILTER_NORTH; // Filterdefinition für die Positions-Nordwerte aus dem GPS-Empfänger
 
typedef struct {
long EAST[MITTELWERTZAHL];
 
} FILTER_EAST; // Filterdefinition für die Positions-Ostwerte aus dem GPS-Empfänger
 
FILTER_NORTH filter_north;
FILTER_EAST filter_east;
 
//**************************** MIRCOS DEFINITIONSENDE FÜR DIE FILTERUNG
 
 
void gps_main(void)
{
GPS_Nick = 0;
GPS_Roll = 0;
}
 
//**************************** MIRCOS FILTERUNG ANFANG
//bilde neuen Positionsmittelwert, wenn 3D-Fix und neue GPS-Daten vorliegen
// if(actualPos.GPSFix == 3 && newData_navPosUtm == 1)
if(actualPos.GPSFix == 3) // hier umkommentieren, wenn dauernd (also nicht nur mit der GPS-Updaterate) die GPS-Berechnung durchgeführt werden soll
 
{
 
filter_north.NORTH[FilterPos] = actualPos.northing;
filter_east.EAST[FilterPos] = actualPos.easting;
FilterPos++;
if (FilterPos==MITTELWERTZAHL) FilterPos=0;
 
if (filterfilled<MITTELWERTZAHL) filterfilled++;
 
NORTH_LONG_LONG = 0;
EAST_LONG_LONG = 0;
for (int i=0; i<filterfilled; i++)
{
NORTH_LONG_LONG += filter_north.NORTH[i];
EAST_LONG_LONG += filter_east.EAST[i];
}
NORTH_LONG_LONG /= filterfilled;
EAST_LONG_LONG /= filterfilled;
NORTH_MITTEL = NORTH_LONG_LONG;
EAST_MITTEL = EAST_LONG_LONG;
NeuerMittelwert = 1;
newData_navPosUtm = 0;
}
//******************************* MIRCOS FILTERUNG ENDE
 
 
 
 
//wenn kein 3D-Fix vorhanden, über das Poti jedoch irgendeine GPS Funktion aktiv ist, werden die GPS-Steuerbefehle
//auf Null gesetzt, um unkontrolliertes Wegfliegen durch das GPS zu verhindern. Dadurch wird abgesichert
//(auch im laufenden Flug), dass bei einem Verlust der GPS-Verbindung GPS deaktivert wird
if (actualPos.GPSFix < 3 && Poti3 > 70)
{
GPS_Nick = 0;
GPS_Roll = 0;
LED2_OFF;
beeptime = 50;
}
 
 
 
// speichert die GPS_Home_Position beim 3D-Fix, MotorEINschalten und wenn noch nicht zu weit weggeflogen wurde
// (modell_fliegt_gps < 2000) einmalig ab. Die Flugzeitabfrage sichert ab, dass bei einem Losfliegen ohne 3D-Fix die Home_Positinen
// irgendwann später dort gelernt werden, wo dann zu ersten mal ein 3D-Fix vorhanden ist
if (actualPos.GPSFix == 3 && MotorenEin == 1 && gethome == 0 && modell_fliegt_gps < 2000)
{
GPS_Home_North = NORTH_MITTEL;
GPS_Home_East = EAST_MITTEL;
// Muss hier auch eingelernt werden, damit falls das Poti3 beim Motorenstarten in
// Mittelstellung sein sollte, trotzdem schon eine Sollposition vorliegt. Andernfalls würde
// GPS_Nick und _Roll maximal werden bis zum ersten Mal Stick_Nick und _Roll gesteuert würde
Soll_Position_North = NORTH_MITTEL;
Soll_Position_East = EAST_MITTEL;
beeptime = 50;
gethome = 1;
}
 
 
 
 
//löscht die GPS_Home_Position beim MotorAUSschalten wieder und resetet das Flag gethome //(280807Kr)
if (MotorenEin == 0)
{
GPS_Home_North = 0;
GPS_Home_East = 0;
gethome = 0;
modell_fliegt_gps = 0;
}
 
 
 
 
// wenn Schalter ausgeschaltet, dann wird die LED2 ausgeschaltet und das GPS Steuerkommando gelöscht
if(Poti3 < 70)
{
// Sollpositionen müssen auch hier beschrieben werden, damit ausgeschlossen ist, dass falls gelandet wird und die GPS-Funktion
// über Poti3 deaktivert und anschließend wieder aktiviert wird keine Soll-Positionen vorliegen.
Soll_Position_North = NORTH_MITTEL;
Soll_Position_East = EAST_MITTEL;
GPS_Nick = 0;
GPS_Roll = 0;
LED2_OFF;
//hierdurch soll verhindert werden, dass wenn nach schonmal aktiver GPS Funktion (und damit 3D-fix) der GPS-Empfänger
//abgezogen werden sollte weiterhin ein 3D-fix angezeigt wird. Grund ist, dass in diesem Fall in der UART.c nach einem
//Abziehen der Status nicht mehr auf Null zurückgesetzt wird. Dies geschied nun beim Ausschalten der GPS-Funktion.
//Sie ist dann ohne erneuten 3D-Fix nicht mehr aktivierbar. (111107Kr)
actualPos.GPSFix = 0;
}
// wenn 3D-Fix, Schalter im mittleren Bereich und vom Pilot gesteuert wird, wird ständig neue GPS-Sollposition eingelernt
if(actualPos.GPSFix == 3 && Poti3 > 70 && Poti3 < 150 && (StickNick > GPS_StickSense || StickNick < -GPS_StickSense || StickRoll > GPS_StickSense || StickRoll < -GPS_StickSense))
{
GPS_Nick = 0; //wird genullt, damit das letzte GPS Kommando nicht ständig gegen den Piloten ansteuert
GPS_Roll = 0; //wird genullt, damit das letzte GPS Kommando nicht ständig gegen den Piloten ansteuert
Soll_Position_North = NORTH_MITTEL; // Soll-Position wird geschrieben
Soll_Position_East = EAST_MITTEL; // Soll-Position wird geschrieben
//++++++++++++++++++++++++++++++++++++
//Sorgt lediglich dafür, dass die LED2 langsam blinkt. Dauer ist durch die "> x" Abfrage festgelegt
//++++++++++++++++++++++++++++++++++++
if(blinkcount_LED2 >= 200) // maximal erlaubt 255 wegen unsigned char
{
LED2_FLASH;
blinkcount_LED2 = 0;
}
blinkcount_LED2++;
//++++++++++++++++++++++++++++++++++++
}
 
// wenn 3D-Fix, Schalter im mittleren Bereich (oder höher), neuer Mittelwert vorhanden, wenigstens einmal Sollposition gelernt und der Pilot nicht selbst steuert wird eine GPS-Funktion aktiviert
if (actualPos.GPSFix == 3 && Poti3 > 70 && NeuerMittelwert == 1 && Soll_Position_North != 0 && Soll_Position_East != 0 && StickNick <= GPS_StickSense && StickNick >= -GPS_StickSense && StickRoll <= GPS_StickSense && StickRoll >= -GPS_StickSense)
{
//Berechnung der GPS-Positionsabweichung je nach aktivierter GPS-Funktion (GPS_HOLD oder HOMING)
//DYNAMISCHES GPS-HOLD, wenn Schalter noch in Mittelstellung ist wird die zuletzt gelernte Soll_Position angeflogen
if(Poti3 < 150)
{
GPS_Positionsabweichung_North = (Soll_Position_North - NORTH_MITTEL);
GPS_Positionsabweichung_East = (Soll_Position_East - EAST_MITTEL);
LED2_ON;
}
//andernfalls, wenn Schalter in max. Stellung und zusätzlich die GPS_Home_Positionen beim Motorenstarten gelernt
//werden konnten, wird zur GPS_Home_Position geflogen
if (Poti3 >= 150 && GPS_Home_North != 0 && GPS_Home_East != 0)
{
GPS_Positionsabweichung_North = (GPS_Home_North - NORTH_MITTEL);
GPS_Positionsabweichung_East = (GPS_Home_East - EAST_MITTEL);
// durch das ständige Neulernen der Soll_Positionen während HOMING wird erreicht, dass der MK nach dem Umschalten
// von HOMING zurück zu GPS-HOLD nicht wieder an die alte Soll_Position zurück fliegt
Soll_Position_North = NORTH_MITTEL;
Soll_Position_East = EAST_MITTEL;
LED2_ON;
}
//verhindert, dass beim Umschalten von Mittelstellung (GPS_HOLD) auf Maximalstellung (HOMING) OHNE gelernte Homeposition
//die GPS Funktion unkontrolliert steuert. Daher wird GPS_HOLD aktiv gehalten, die Sollpositon wird bei Stickbefehlen
//jedoch nicht wie beim dynamischen GPS_HOLD überschrieben. Zusätzlich wird der Summer eingeschaltet.
if (Poti3 >= 150 && GPS_Home_North == 0 && GPS_Home_East == 0)
{
GPS_Positionsabweichung_North = (Soll_Position_North - NORTH_MITTEL);
GPS_Positionsabweichung_East = (Soll_Position_East - EAST_MITTEL);
LED2_ON;
beeptime = 50;
}
//GPS-Geschwindigkeiten
GPS_Geschwindigkeit_North = actualPos.velNorth; //actualPos.velNorth ist die Geschwindigkeiten aus dem GPS Empfänger entlang der Nord-Süd Richtung
GPS_Geschwindigkeit_East = actualPos.velEast; //actualPos.velEast ist die Geschwindigkeiten aus dem GPS Empfänger entlang der Ost-West Richtung
//Berechnung der Einzelkomponenten des PD-Reglers
P_Einfluss_North = (P_GPS_Verstaerkung * GPS_Positionsabweichung_North) / 2048;
D_Einfluss_North = (D_GPS_Verstaerkung * GPS_Geschwindigkeit_North) / 256;
P_Einfluss_East = (P_GPS_Verstaerkung * GPS_Positionsabweichung_East) / 2048;
D_Einfluss_East = (D_GPS_Verstaerkung * GPS_Geschwindigkeit_East) / 256;
// Begrenzung des maximalen D-Anteils für pos. und neg. Werte. Grenze muss so geählt werden,
// dass das Limit im normalen Position-Hold nicht erreicht wird und somit keinen Einfluss hat.
// Grund: Beim Zufliegen auf weiter entfernte Ziele bremst der D-Anteil kurz vor dem Ziel den Mikrokopter sehr stark ab.
// Dieses Limit wirkt nur, wenn sich der MK im HOMING Modus befindet und sich noch weit (>5m) von der Home-Position weg befindet.
if (Poti3 >= 150 && GPS_Home_North != 0 && GPS_Home_East != 0 && (abs(GPS_Positionsabweichung_North) > 500 || abs(GPS_Positionsabweichung_East) > 500))
{
if (D_Einfluss_North > Limit_D_Anteil) D_Einfluss_North = Limit_D_Anteil;
if (D_Einfluss_East > Limit_D_Anteil) D_Einfluss_East = Limit_D_Anteil;
if (D_Einfluss_North < -1 * Limit_D_Anteil) D_Einfluss_North = -1 * Limit_D_Anteil;
if (D_Einfluss_East < -1 * Limit_D_Anteil) D_Einfluss_East = -1 * Limit_D_Anteil;
}
// PD-Regler
GPS_North = (-P_Einfluss_North + D_Einfluss_North);
GPS_East = (P_Einfluss_East - D_Einfluss_East);
//Umrechnen vom globalen North- bzw. East- in das körperfeste X- bzw. Y- Koordinatensystem
GPS_Nick = ((c_cos[KompassValue]*GPS_North)/1024 - (c_sin[KompassValue]*GPS_East)/1024);
GPS_Roll = ((c_cos[KompassValue]*GPS_East)/1024 + (c_sin[KompassValue]*GPS_North)/1024);
// Begrenzung des maximalen GPS Einflusses für positive und negative Werte
if (GPS_Nick > GPS_Limit) GPS_Nick = GPS_Limit;
if (GPS_Roll > GPS_Limit) GPS_Roll = GPS_Limit;
if (GPS_Nick < -1 * GPS_Limit) GPS_Nick = -1 * GPS_Limit;
if (GPS_Roll < -1 * GPS_Limit) GPS_Roll = -1 * GPS_Limit;
//Funktion wird dadurch nur alle 250 ms aufgerufen, wenn neue Mittelwerte aus den GPS-Daten vorliegen.
//FUNKTIONIERT MOMENTAN NOCH NICHT, DA STÄNDIG OHNE UNTERBRECHUNG NEUE MITTELWERTE BERECHNET WERDEN.
//GRUND: DIE ABFRAGE NACH NEUE GPS-DATEN ERFOLGT NOCH NICHT
NeuerMittelwert = 0;
}
}
 
/branches/Flight-Ctrl_V0_67g_3_GPS_work_Jochen/_Parameter.txt
0,0 → 1,34
**********************************
GPS-Parameter
**********************************
 
P-Faktor (Userparam_5): ~76
 
info: muss zum Einstellen auf ein Poti gelegt werden!
verhindert ein langsames, stetiges Wegdriften des MK. Der P-Faktor sollte zu Beginn gleich Null sein und ERST NACHDEM DER D-Faktor EINGESTELLT IST (siehe unten) langsam erhöht werden. Idealerweise in kleinen Schritten, bis der MK wieder langsam gegen den Wind zur Sollposition zurückfliegt.
 
 
---------------------
D-Faktor (Userparam_6): ~68
 
info: muss zum Einstellen auf ein Poti gelegt werden!
Auch beim D-Faktor zuerst so vorgehen, dass er zu Beginn gleich Null ist. Dann die GPS Funktion von Sender aus einschalten und die Steuerknüppel loslassen. Anschließend wird der MK unmittelbar wegdriften. Dies kann nur durch ein Erhöhen des D-Faktors verhindert werden. Der D-Faktor gleich hauptsächlich stärkere Windböen aus und verlangsamt das plötzliche Wegfliegen erstmal, führt alleine jedoch nicht zu einem stabilen Positionshalten. Diesen Parameter solange behutsam erhöhen, bis der MK anfängt mehr oder weniger stark auf der Stelle zu zucken, dann natürlich wieder leicht reduzieren!
Den Rest macht denn der P-Faktor (siehe oben).
 
 
 
**********************************
LED-Parameter
**********************************
 
LED1_TOTALTIME (UserParam_7): ~60 //darf nicht größer als 255 gewählt werden
 
info:
wenn = 0, bleit LED1 dauerhaft AUS
wenn >= 200, ist die LED1 dauerhaft AN
dazwischen blinkt die LED1 unterschiedlich lange
 
 
---------------------
LED1_ONTIME (UserParam_8): ~20 //darf nicht größer als 255 gewählt werden
 
/branches/Flight-Ctrl_V0_67g_3_GPS_work_Jochen/_Setting_2_0_67ef_3.mkp
0,0 → 1,64
[Setup]
Name=Normal+GPS
GlobalConfig=43
[Channels]
Gas=1
Gier=2
Nick=3
Roll=4
Poti_1=5
Poti_2=6
Poti_3=7
Poti_4=8
[Stick]
Nick_Roll-P=4
Nick_Roll-D=0
Gier-P=10
[Altitude]
Setpoint=254
MinGas=30
P=10
Barometric-D=50
Z-ACC-Effect=50
Gain=2
[Gyro]
P=128
I=160
DynamicStability=75
ACC_Gyro-Factor=26
ACC_Gyro-Compensation=128
DriftCompensation=4
Main-I=8
[Others]
MinGas=5
MaxGas=250
Compass-Effect=64
UnderVoltage=94
NotGas=66
NotGasTime=20
[User]
Parameter_1=80
Parameter_2=0
Parameter_3=0
Parameter_4=0
Parameter_5=251
Parameter_6=252
Parameter_7=60
Parameter_8=20
[Camera]
ServoNickControl=100
ServoNickCompensation=40
ServoNickInvert=0
ServoNickMin=50
ServoNickMax=150
ServoNickRefreshRate=5
[Loop]
Config=0
GasLimit=50
StickThreshold=90
LoopHysteresis=50
TurnOverNick=100
TurnOverRoll=100
[Coupling]
YawPosFeedback=100
YawNegFeedback=10
/branches/Flight-Ctrl_V0_67g_3_GPS_work_Jochen/fc.c
79,10 → 79,16
unsigned char HoehenReglerAktiv = 0;
long Umschlag180Nick = 250000L, Umschlag180Roll = 250000L;
 
unsigned char blinkcount_LED1 = 0;//Hilfszähler für die blinkende LED (310807Kr)
unsigned char LED1_TOTALTIME = 0;//Parameter für Blinkverhalten von LED1 (091207Kr)
unsigned char LED1_ONTIME = 0;//Parameter für Blinkverhalten von LED1 (091207Kr)
unsigned int modell_fliegt_gps = 0;//(030907Kr)
 
 
float GyroFaktor;
float IntegralFaktor;
volatile int DiffNick,DiffRoll;
int Poti1 = 0, Poti2 = 0, Poti3 = 0, Poti4 = 0;
int Poti1 = 0, Poti2 = 0, Poti3 = 0, Poti4 = 0, Poti5 = 0, Poti6 = 0, Poti7 = 0, Poti8 = 0; //PPM24-Erweiterung (121007Kr)
volatile unsigned char Motor_Vorne,Motor_Hinten,Motor_Rechts,Motor_Links, Count;
unsigned char MotorWert[5];
volatile unsigned char SenderOkay = 0;
181,7 → 187,6
HoeheD = 0;
Mess_Integral_Hoch = 0;
KompassStartwert = KompassValue;
GPS_Neutral();
beeptime = 50;
Umschlag180Nick = (long) EE_Parameter.WinkelUmschlagNick * 2500L;
Umschlag180Roll = (long) EE_Parameter.WinkelUmschlagRoll * 2500L;
286,21 → 291,36
IntegralNick2 = Mess_IntegralNick2;
IntegralRoll2 = Mess_IntegralRoll2;
 
if(EE_Parameter.GlobalConfig & CFG_DREHRATEN_BEGRENZER && !Looping_Nick && !Looping_Roll)
//------------------------------------------------------------------------------
if(EE_Parameter.GlobalConfig & CFG_DREHRATEN_BEGRENZER && !Looping_Nick && !Looping_Roll && !(EE_Parameter.GlobalConfig & CFG_HEADING_HOLD)) //um Heading_Hold erweitert //(071107Kr)
{
if(MesswertNick > 200) MesswertNick += 4 * (MesswertNick - 200);
else if(MesswertNick < -200) MesswertNick += 4 * (MesswertNick + 200);
if(MesswertRoll > 200) MesswertRoll += 4 * (MesswertRoll - 200);
else if(MesswertRoll < -200) MesswertRoll += 4 * (MesswertRoll + 200);
}
}
//------------------------------------------------------------------------------
if(Poti1 < PPM_in[EE_Parameter.Kanalbelegung[K_POTI1]] + 110) Poti1++; else if(Poti1 > PPM_in[EE_Parameter.Kanalbelegung[K_POTI1]] + 110 && Poti1) Poti1--;
if(Poti2 < PPM_in[EE_Parameter.Kanalbelegung[K_POTI2]] + 110) Poti2++; else if(Poti2 > PPM_in[EE_Parameter.Kanalbelegung[K_POTI2]] + 110 && Poti2) Poti2--;
if(Poti3 < PPM_in[EE_Parameter.Kanalbelegung[K_POTI3]] + 110) Poti3++; else if(Poti3 > PPM_in[EE_Parameter.Kanalbelegung[K_POTI3]] + 110 && Poti3) Poti3--;
if(Poti4 < PPM_in[EE_Parameter.Kanalbelegung[K_POTI4]] + 110) Poti4++; else if(Poti4 > PPM_in[EE_Parameter.Kanalbelegung[K_POTI4]] + 110 && Poti4) Poti4--;
if(Poti1 < 0) Poti1 = 0; else if(Poti1 > 255) Poti1 = 255;
//PPM24-Erweiterung (121007Kr)
if(Poti5 < PPM_in[9] + 110) Poti5++; else if(Poti5 > PPM_in[9] + 110 && Poti5) Poti5--;
if(Poti6 < PPM_in[10] + 110) Poti6++; else if(Poti6 > PPM_in[10] + 110 && Poti6) Poti6--;
if(Poti7 < PPM_in[11] + 110) Poti7++; else if(Poti7 > PPM_in[11] + 110 && Poti7) Poti7--;
if(Poti8 < PPM_in[12] + 110) Poti8++; else if(Poti8 > PPM_in[12] + 110 && Poti8) Poti8--;
if(Poti1 < 0) Poti1 = 0; else if(Poti1 > 255) Poti1 = 255;
if(Poti2 < 0) Poti2 = 0; else if(Poti2 > 255) Poti2 = 255;
if(Poti3 < 0) Poti3 = 0; else if(Poti3 > 255) Poti3 = 255;
if(Poti4 < 0) Poti4 = 0; else if(Poti4 > 255) Poti4 = 255;
//PPM24-Erweiterung (121007Kr)
if(Poti5 < 0) Poti5 = 0; else if(Poti5 > 255) Poti5 = 255;
if(Poti6 < 0) Poti6 = 0; else if(Poti6 > 255) Poti6 = 255;
if(Poti7 < 0) Poti7 = 0; else if(Poti7 > 255) Poti7 = 255;
if(Poti8 < 0) Poti8 = 0; else if(Poti8 > 255) Poti8 = 255;
}
 
//############################################################################
322,10 → 342,24
if(Poti2 < PPM_in[EE_Parameter.Kanalbelegung[K_POTI2]] + 110) Poti2++; else if(Poti2 > PPM_in[EE_Parameter.Kanalbelegung[K_POTI2]] + 110 && Poti2) Poti2--;
if(Poti3 < PPM_in[EE_Parameter.Kanalbelegung[K_POTI3]] + 110) Poti3++; else if(Poti3 > PPM_in[EE_Parameter.Kanalbelegung[K_POTI3]] + 110 && Poti3) Poti3--;
if(Poti4 < PPM_in[EE_Parameter.Kanalbelegung[K_POTI4]] + 110) Poti4++; else if(Poti4 > PPM_in[EE_Parameter.Kanalbelegung[K_POTI4]] + 110 && Poti4) Poti4--;
//PPM24-Erweiterung (121007Kr)
if(Poti5 < PPM_in[9] + 110) Poti5++; else if(Poti5 > PPM_in[9] + 110 && Poti5) Poti5--;
if(Poti6 < PPM_in[10] + 110) Poti6++; else if(Poti6 > PPM_in[10] + 110 && Poti6) Poti6--;
if(Poti7 < PPM_in[11] + 110) Poti7++; else if(Poti7 > PPM_in[11] + 110 && Poti7) Poti7--;
if(Poti8 < PPM_in[12] + 110) Poti8++; else if(Poti8 > PPM_in[12] + 110 && Poti8) Poti8--;
if(Poti1 < 0) Poti1 = 0; else if(Poti1 > 255) Poti1 = 255;
if(Poti2 < 0) Poti2 = 0; else if(Poti2 > 255) Poti2 = 255;
if(Poti3 < 0) Poti3 = 0; else if(Poti3 > 255) Poti3 = 255;
if(Poti4 < 0) Poti4 = 0; else if(Poti4 > 255) Poti4 = 255;
//PPM24-Erweiterung (121007Kr)
if(Poti5 < 0) Poti5 = 0; else if(Poti5 > 255) Poti5 = 255;
if(Poti6 < 0) Poti6 = 0; else if(Poti6 > 255) Poti6 = 255;
if(Poti7 < 0) Poti7 = 0; else if(Poti7 > 255) Poti7 = 255;
if(Poti8 < 0) Poti8 = 0; else if(Poti8 > 255) Poti8 = 255;
 
Umschlag180Nick = (long) EE_Parameter.WinkelUmschlagNick * 2500L;
Umschlag180Roll = (long) EE_Parameter.WinkelUmschlagNick * 2500L;
348,10 → 382,10
if(MotorTest[3]) Motor_Rechts = MotorTest[3];
}
 
DebugOut.Analog[12] = Motor_Vorne;
DebugOut.Analog[13] = Motor_Hinten;
DebugOut.Analog[14] = Motor_Links;
DebugOut.Analog[15] = Motor_Rechts;
// DebugOut.Analog[12] = Motor_Vorne;
// DebugOut.Analog[13] = Motor_Hinten;
// DebugOut.Analog[14] = Motor_Links;
// DebugOut.Analog[15] = Motor_Rechts;
 
//Start I2C Interrupt Mode
twi_state = 0;
466,6 → 500,7
if(GasMischanteil > 40)
{
if(modell_fliegt < 0xffff) modell_fliegt++;
modell_fliegt_gps = modell_fliegt;// (030907Kr)
}
if((modell_fliegt < 200) || (GasMischanteil < 40))
{
610,7 → 645,8
if(GyroFaktor < 0) GyroFaktor = 0;
if(IntegralFaktor < 0) IntegralFaktor = 0;
// greift in den Stick ein, um ungewolltes überschlagen zu verhindern
if(!(EE_Parameter.LoopConfig & CFG_LOOP_LINKS) && !(EE_Parameter.LoopConfig & CFG_LOOP_RECHTS))
//bei aktiviertem GPS dürfen die Stickwerte nicht beeinflusst werden, da ansonsten ein Neulernen der Sollposition stattfinden könnte //(051107Kr)
if(!(EE_Parameter.LoopConfig & CFG_LOOP_LINKS) && !(EE_Parameter.LoopConfig & CFG_LOOP_RECHTS) && !(EE_Parameter.GlobalConfig & CFG_GPS_AKTIV) && !(EE_Parameter.GlobalConfig & CFG_HEADING_HOLD)) //(051107Kr)
{
if(IntegralNick > 60000)
{
635,7 → 671,39
if(IntegralRoll > 80000) StickRoll -= 16 * EE_Parameter.Stick_P;
}
}
 
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// LED Stuff
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 
LED1_TOTALTIME = Parameter_UserParam7;
LED1_ONTIME = Parameter_UserParam8;
LED1_OFF;
if(LED1_TOTALTIME >= 200)
{
LED1_ON;
blinkcount_LED1 = 0;
}
else if(blinkcount_LED1 >= LED1_TOTALTIME && LED1_TOTALTIME > 0 && MotorenEin == 1)
{
LED1_ON;
if(blinkcount_LED1 >= LED1_ONTIME + LED1_TOTALTIME)
{
LED1_OFF;
blinkcount_LED1 = 0;
}
}
blinkcount_LED1++;
 
//if(PPM_in[EE_Parameter.Kanalbelegung[K_POTI2]] > 75) LED1_ON; else LED1_OFF; //Erweiterung von Smartie aus dem MK-Forum vom 14.06.07. Dadurch können die Transistorausgänge J16 und J17 geschaltet werden. // (160607Kr)
//if(PPM_in[EE_Parameter.Kanalbelegung[K_POTI3]] > 75) LED2_ON; else LED2_OFF; //Erweiterung von Smartie aus dem MK-Forum vom 14.06.07. Dadurch können die Transistorausgänge J16 und J17 geschaltet werden. // (160607Kr)
 
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Looping?
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
if((PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]] > EE_Parameter.LoopThreshold) && EE_Parameter.LoopConfig & CFG_LOOP_LINKS) Looping_Links = 1;
785,15 → 853,15
// IntegralFehlerRoll = (IntegralFehlerRoll * 1 + tmp_long2) / 2;
 
 
DebugOut.Analog[17] = IntegralAccNick / 26;
DebugOut.Analog[18] = IntegralAccRoll / 26;
DebugOut.Analog[19] = IntegralFehlerNick;// / 26;
DebugOut.Analog[20] = IntegralFehlerRoll;// / 26;
DebugOut.Analog[21] = MittelIntegralNick / 26;
DebugOut.Analog[22] = MittelIntegralRoll / 26;
//DebugOut.Analog[17] = IntegralAccNick / 26;
//DebugOut.Analog[18] = IntegralAccRoll / 26;
//DebugOut.Analog[19] = IntegralFehlerNick;// / 26;
//DebugOut.Analog[20] = IntegralFehlerRoll;// / 26;
//DebugOut.Analog[21] = MittelIntegralNick / 26;
//DebugOut.Analog[22] = MittelIntegralRoll / 26;
//DebugOut.Analog[28] = ausgleichNick;
DebugOut.Analog[29] = ausgleichRoll;
DebugOut.Analog[30] = LageKorrekturRoll * 10;
//DebugOut.Analog[29] = ausgleichRoll;
//DebugOut.Analog[30] = LageKorrekturRoll * 10;
 
#define FEHLER_LIMIT (ABGLEICH_ANZAHL * 4)
#define FEHLER_LIMIT2 (ABGLEICH_ANZAHL * 16)
861,13 → 929,13
{
cnt = 0;
}
DebugOut.Analog[27] = ausgleichRoll;
//DebugOut.Analog[27] = ausgleichRoll;
if(cnt > EE_Parameter.Driftkomp) cnt = EE_Parameter.Driftkomp;
//if(cnt > 1) beeptime = 50;
if(IntegralFehlerRoll > FEHLER_LIMIT) AdNeutralRoll += cnt;
if(IntegralFehlerRoll < -FEHLER_LIMIT) AdNeutralRoll -= cnt;
DebugOut.Analog[23] = AdNeutralNick;//10*(AdNeutralNick - StartNeutralNick);
DebugOut.Analog[24] = 10*(AdNeutralRoll - StartNeutralRoll);
//DebugOut.Analog[23] = AdNeutralNick;//10*(AdNeutralNick - StartNeutralNick);
//DebugOut.Analog[24] = 10*(AdNeutralRoll - StartNeutralRoll);
}
else
{
929,7 → 997,22
else SignalSchlecht = 500; // so lange das Signal taub stellen --> ca. 1 sek
}
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// GPS
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
if(EE_Parameter.GlobalConfig & CFG_GPS_AKTIV)
{
P_GPS_Verstaerkung = Parameter_UserParam5;
D_GPS_Verstaerkung = Parameter_UserParam6;
gps_main();
}
else
{
GPS_Nick = 0;
GPS_Roll = 0;
}
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Debugwerte zuordnen
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
936,40 → 1019,52
if(!TimerWerteausgabe--)
{
TimerWerteausgabe = 24;
 
DebugOut.Analog[0] = IntegralNick / EE_Parameter.GyroAccFaktor;
DebugOut.Analog[1] = IntegralRoll / EE_Parameter.GyroAccFaktor;
DebugOut.Analog[2] = Mittelwert_AccNick;
DebugOut.Analog[3] = Mittelwert_AccRoll;
DebugOut.Analog[4] = MesswertGier;
DebugOut.Analog[5] = HoehenWert;
DebugOut.Analog[6] =(Mess_Integral_Hoch / 512);
DebugOut.Analog[8] = KompassValue;
DebugOut.Analog[9] = UBat;
DebugOut.Analog[10] = SenderOkay;
DebugOut.Analog[16] = Mittelwert_AccHoch;
DebugOut.Analog[4] = Parameter_UserParam1;
DebugOut.Analog[5] = Parameter_UserParam2;
DebugOut.Analog[6] = Soll_Position_North;
DebugOut.Analog[7] = Soll_Position_East;
DebugOut.Analog[8] = KompassValue;
DebugOut.Analog[9] = UBat;
DebugOut.Analog[10] = SenderOkay;
DebugOut.Analog[11] = actualPos.GPSFix;
DebugOut.Analog[12] = (motor_rx[0]+motor_rx[1]+motor_rx[2]+motor_rx[3]); //Gesamtstrom
DebugOut.Analog[13] = actualPos.GSpeed; //Geschwindigkeit über Grund
DebugOut.Analog[14] = actualPos.northing;
DebugOut.Analog[15] = actualPos.easting;
DebugOut.Analog[16] = Poti3;
DebugOut.Analog[17] = actualPos.altitude;
DebugOut.Analog[18] = GPS_Home_North;
DebugOut.Analog[19] = GPS_Home_East;
DebugOut.Analog[20] = GPS_Positionsabweichung_North;
DebugOut.Analog[21] = GPS_Positionsabweichung_East;
DebugOut.Analog[22] = P_Einfluss_North;
DebugOut.Analog[23] = P_Einfluss_East;
DebugOut.Analog[24] = D_Einfluss_North;
DebugOut.Analog[25] = D_Einfluss_East;
DebugOut.Analog[26] = NORTH_MITTEL;
DebugOut.Analog[27] = EAST_MITTEL;
DebugOut.Analog[28] = GPS_Nick;
DebugOut.Analog[29] = GPS_Roll;
DebugOut.Analog[30] = StickNick;
DebugOut.Analog[31] = StickRoll;
//DebugOut.Analog[xx] = motor_rx[0]; //Motorstrom vorne
//DebugOut.Analog[xx] = motor_rx[1]; //Motorstrom hinten
//DebugOut.Analog[xx] = motor_rx[2]; //Motorstrom links
//DebugOut.Analog[xx] = motor_rx[3]; //Motorstrom rechts
//DebugOut.Analog[xx] = actualPos.velNorth;
//DebugOut.Analog[xx] = actualPos.velEast;
//DebugOut.Analog[xx] = Parameter_UserParam3;
//DebugOut.Analog[xx] = Parameter_UserParam4;
//DebugOut.Analog[xx] = StickGier;
//DebugOut.Analog[xx] = GPS_North;
//DebugOut.Analog[xx] = GPS_East;
 
/* DebugOut.Analog[16] = motor_rx[0];
DebugOut.Analog[17] = motor_rx[1];
DebugOut.Analog[18] = motor_rx[2];
DebugOut.Analog[19] = motor_rx[3];
DebugOut.Analog[20] = motor_rx[0] + motor_rx[1] + motor_rx[2] + motor_rx[3];
DebugOut.Analog[20] /= 14;
DebugOut.Analog[21] = motor_rx[4];
DebugOut.Analog[22] = motor_rx[5];
DebugOut.Analog[23] = motor_rx[6];
DebugOut.Analog[24] = motor_rx[7];
DebugOut.Analog[25] = motor_rx[4] + motor_rx[5] + motor_rx[6] + motor_rx[7];
*/
// DebugOut.Analog[9] = MesswertNick;
// DebugOut.Analog[9] = SollHoehe;
// DebugOut.Analog[10] = Mess_Integral_Gier / 128;
// DebugOut.Analog[11] = KompassStartwert;
// DebugOut.Analog[10] = Parameter_Gyro_I;
// DebugOut.Analog[10] = EE_Parameter.Gyro_I;
// DebugOut.Analog[9] = KompassRichtung;
// DebugOut.Analog[10] = GasMischanteil;
// DebugOut.Analog[3] = HoeheD * 32;
// DebugOut.Analog[4] = hoehenregler;
}
 
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
982,9 → 1077,9
// MesswertGier = MesswertGier * (GyroFaktor/2) + Integral_Gier * IntegralFaktor;
MesswertGier = MesswertGier * (GyroFaktor) + Integral_Gier * IntegralFaktor/2;
 
DebugOut.Analog[28] = MesswertRoll;
DebugOut.Analog[25] = IntegralRoll * IntegralFaktor;
DebugOut.Analog[31] = StickRoll;// / (26*IntegralFaktor);
//DebugOut.Analog[28] = MesswertRoll;
//DebugOut.Analog[25] = IntegralRoll * IntegralFaktor;
//DebugOut.Analog[31] = StickRoll;// / (26*IntegralFaktor);
 
// Maximalwerte abfangen
#define MAX_SENSOR 2048
1043,7 → 1138,7
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Mischer und PI-Regler
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
DebugOut.Analog[7] = GasMischanteil;
// DebugOut.Analog[7] = GasMischanteil;
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Gier-Anteil
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
/branches/Flight-Ctrl_V0_67g_3_GPS_work_Jochen/fc.h
27,6 → 27,9
extern signed int ExternStickNick,ExternStickRoll,ExternStickGier;
extern unsigned char Parameter_UserParam1,Parameter_UserParam2,Parameter_UserParam3,Parameter_UserParam4,Parameter_UserParam5,Parameter_UserParam6,Parameter_UserParam7,Parameter_UserParam8;
 
extern unsigned int modell_fliegt_gps;//(030907Kr)
 
 
void MotorRegler(void);
void SendMotorData(void);
void CalibrierMittelwert(void);
47,7 → 50,7
extern volatile long Mess_IntegralRoll,Mess_IntegralRoll2;
extern volatile long Mess_Integral_Gier;
extern volatile int DiffNick,DiffRoll;
extern int Poti1, Poti2, Poti3, Poti4;
extern int Poti1, Poti2, Poti3, Poti4, Poti5, Poti6, Poti7, Poti8; //PPM24-Erweiterung (121007Kr)
extern volatile unsigned char Motor_Vorne,Motor_Hinten,Motor_Rechts,Motor_Links, Count;
extern unsigned char MotorWert[5];
extern volatile unsigned char SenderOkay;
/branches/Flight-Ctrl_V0_67g_3_GPS_work_Jochen/gps.h
1,14 → 1,28
extern long P_Einfluss_North;
extern long D_Einfluss_North;
 
extern long P_Einfluss_East;
extern long D_Einfluss_East;
 
extern long GPS_Positionsabweichung_North;
extern long GPS_Positionsabweichung_East;
extern long GPS_Geschwindigkeit_North;
extern long GPS_Geschwindigkeit_East;
 
extern long GPS_Home_North;
extern long GPS_Home_East;
 
extern long Soll_Position_North;
extern long Soll_Position_East;
 
extern volatile long EAST_MITTEL;
extern volatile long NORTH_MITTEL;
 
extern signed int GPS_North;
extern signed int GPS_East;
 
extern signed int GPS_Nick;
extern signed int GPS_Nick;
extern signed int GPS_Nick;
extern signed int GPS_Nick;
extern signed int GPS_Nick;
extern signed int GPS_Nick;
extern signed int GPS_Nick;
extern signed int GPS_Nick;
extern signed int GPS_Nick;
extern signed int GPS_Nick;
extern signed int GPS_Roll;
 
void GPS_Neutral(void);
void GPS_BerechneZielrichtung(void);
extern void gps_main(void);
 
/branches/Flight-Ctrl_V0_67g_3_GPS_work_Jochen/main.h
18,6 → 18,12
#define GRN_OFF PORTB &=~0x02
#define GRN_ON PORTB |= 0x02
#define GRN_FLASH PORTB ^= 0x02
#define LED1_OFF PORTC &=~0x04 //Erweiterung von Smartie aus dem MK-Forum vom 14.06.07. Dadurch können die Transistorausgänge J16 und J17 geschaltet werden. // (160607Kr)
#define LED1_ON PORTC |= 0x04 //Erweiterung von Smartie aus dem MK-Forum vom 14.06.07. Dadurch können die Transistorausgänge J16 und J17 geschaltet werden. // (160607Kr)
#define LED1_FLASH PORTC ^= 0x04 //Erweiterung by 4ndreas aus mikrosvn branches // (280807Kr)
#define LED2_OFF PORTC &=~0x08 //Erweiterung von Smartie aus dem MK-Forum vom 14.06.07. Dadurch können die Transistorausgänge J16 und J17 geschaltet werden. // (160607Kr)
#define LED2_ON PORTC |= 0x08 //Erweiterung von Smartie aus dem MK-Forum vom 14.06.07. Dadurch können die Transistorausgänge J16 und J17 geschaltet werden. // (160607Kr)
#define LED2_FLASH PORTC ^= 0x08 //Erweiterung by 4ndreas aus mikrosvn branches // (280807Kr)
 
#define F_CPU SYSCLK
//#ifndef F_CPU
61,6 → 67,9
extern unsigned char GetActiveParamSetNumber(void);
extern unsigned char EEPromArray[];
 
volatile int P_GPS_Verstaerkung; //P-Anteil (80-120)
volatile int D_GPS_Verstaerkung; //D-Anteil (90)
 
#include <stdlib.h>
#include <string.h>
#include <avr/io.h>
/branches/Flight-Ctrl_V0_67g_3_GPS_work_Jochen/menu.c
108,10 → 108,10
LCD_printfxy(0,3,"Start: %5i",KompassStartwert);
break;
case 9:
LCD_printfxy(0,0,"Poti1: %3i",Poti1);
LCD_printfxy(0,1,"Poti2: %3i",Poti2);
LCD_printfxy(0,2,"Poti3: %3i",Poti3);
LCD_printfxy(0,3,"Poti4: %3i",Poti4);
LCD_printfxy(0,0,"Po1: %3i Po5: %3i" ,Poti1,Poti5); //PPM24-Erweiterung (121007Kr)
LCD_printfxy(0,1,"Po2: %3i Po6: %3i" ,Poti2,Poti6); //PPM24-Erweiterung (121007Kr)
LCD_printfxy(0,2,"Po3: %3i Po7: %3i" ,Poti3,Poti7); //PPM24-Erweiterung (121007Kr)
LCD_printfxy(0,3,"Po4: %3i Po8: %3i" ,Poti4,Poti8); //PPM24-Erweiterung (121007Kr)
break;
case 10:
LCD_printfxy(0,0,"Servo " );
/branches/Flight-Ctrl_V0_67g_3_GPS_work_Jochen/rc.c
11,8 → 11,8
#include "rc.h"
#include "main.h"
 
volatile int PPM_in[11];
volatile int PPM_diff[11]; // das diffenzierte Stick-Signal
volatile int PPM_in[15]; //PPM24-Erweiterung (121007Kr)
volatile int PPM_diff[15]; // das diffenzierte Stick-Signal //PPM24-Erweiterung (121007Kr)
volatile unsigned char NewPpmData = 1;
 
//############################################################################
50,14 → 50,14
//Syncronisationspause?
// if((signal > (int) Parameter_UserParam2 * 10) && (signal < 8000))
if((signal > 1100) && (signal < 8000))
if ((signal > 1500) && (signal < 8000))
{
if(index >= 4) NewPpmData = 0; // Null bedeutet: Neue Daten
index = 1;
NewPpmData = 0; // Null bedeutet: Neue Daten
}
else
{
if(index < 10)
if(index < 14) //PPM24-Erweiterung (121007Kr)
{
if((signal > 250) && (signal < 687))
{
65,9 → 65,16
// Stabiles Signal
if(abs(signal - PPM_in[index]) < 6) { if(SenderOkay < 200) SenderOkay += 10;}
tmp = (3 * (PPM_in[index]) + signal) / 4;
// if(tmp > signal+1) tmp--; else
// if(tmp < signal-1) tmp++;
PPM_diff[index] = tmp - PPM_in[index];
//############################################################
// Verhindert einen Restwert der RC-Kanäl bei neutralen Knüppelstellungen, führt
// unter Umständen jedoch zu +/-1 Sprüngen der einzelnen Kanäle. Siehe auch:
// http://forum.mikrokopter.de/topic-2191.html(121107Kr)
//if(tmp > signal+1) tmp--; else
//if(tmp < signal-1) tmp++;
//############################################################
PPM_diff[index] = tmp - PPM_in[index];
PPM_in[index] = tmp;
}
index++;
/branches/Flight-Ctrl_V0_67g_3_GPS_work_Jochen/rc.h
22,8 → 22,8
 
extern void rc_sum_init (void);
 
extern volatile int PPM_in[11];
extern volatile int PPM_diff[11]; // das diffenzierte Stick-Signal
extern volatile int PPM_in[15]; //PPM24-Erweiterung (121007Kr)
extern volatile int PPM_diff[15]; // das diffenzierte Stick-Signal //PPM24-Erweiterung (121007Kr)
extern volatile unsigned char NewPpmData;
 
#endif //_RC_H
/branches/Flight-Ctrl_V0_67g_3_GPS_work_Jochen/spi.c
26,13 → 26,13
SLAVE_SELECT_PORT &= ~(1 << SPI_SLAVE_SELECT); // SelectSlave
UpdateSPI_Buffer(); // update buffer
SPI_BufferIndex = 1;
DebugOut.Analog[16]++;
//DebugOut.Analog[16]++;
// -- Debug-Output ---
cli();
DebugOut.Analog[20] = FromNaviCtrl.Comp;
DebugOut.Analog[21] = FromNaviCtrl.GPS_Nick;
DebugOut.Analog[22] = FromNaviCtrl.GPS_Roll;
DebugOut.Analog[23] = FromNaviCtrl.CompassValue;
// DebugOut.Analog[20] = FromNaviCtrl.Comp;
//DebugOut.Analog[21] = FromNaviCtrl.GPS_Nick;
//DebugOut.Analog[22] = FromNaviCtrl.GPS_Roll;
//DebugOut.Analog[23] = FromNaviCtrl.CompassValue;
sei();
/branches/Flight-Ctrl_V0_67g_3_GPS_work_Jochen/timer0.c
62,7 → 62,7
else PORTC &= ~(1<<7);
}
if(EE_Parameter.GlobalConfig & CFG_KOMPASS_AKTIV)
if(EE_Parameter.GlobalConfig & CFG_KOMPASS_AKTIV || EE_Parameter.GlobalConfig & CFG_GPS_AKTIV) //Abfrage um GPS_AKTIV erweitert, damit auch bei nur eingeschaltetem GPS OHNE Kompass der benötigte Kompassvalue berechnet wird (200907Kr)
{
if(PINC & 0x10)
{
/branches/Flight-Ctrl_V0_67g_3_GPS_work_Jochen/uart.c
3,6 → 3,10
// + only for non-profit use
// + www.MikroKopter.com
// + see the File "License.txt" for further Informations
// +
// + GPS read out:
// + modified Version of the Pitschu Brushless Ufo - (c) Peter Schulten, Mülheim, Germany
// + only for non-profit use
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 
#include "main.h"
34,42 → 38,136
const unsigned char ANALOG_TEXT[32][16] =
{
//1234567890123456
"IntegralNick ", //0
"IntegralRoll ",
"AccNick ",
"AccRoll ",
"GyroGier ",
"HoehenWert ", //5
"AccZ ",
"Gas ",
"KompassValue ",
"Spannung ",
"Empfang ", //10
"Analog11 ",
"Motor_Vorne ",
"Motor_Hinten ",
"Motor_Links ",
"Motor_Rechts ", //15
"Acc_Z ",
"MittelAccNick ",
"MittelAccRoll ",
"IntegralErrNick ",
"IntegralErrRoll ", //20
"MittelIntNick ",
"MittelIntRoll ",
"NeutralNick ",
"RollOffset ",
"IntRoll*Faktor ", //25
"Analog26 ",
"DirektAusglRoll ",
"MesswertRoll ",
"AusgleichRoll ",
"I-LageRoll ", //30
"StickRoll "
"IntegralNick____", //00
"IntegralRoll____", //01
"AccNick_________", //02
"AccRoll_________", //03
"UserParam1______", //04
"UserParam2______", //05
"Soll_Pos_North__", //06
"Soll_Pos_East___", //07
"KompassValue____", //08
"UBat____________", //09
"SenderOkay______", //10
"GPSFix__________", //11
"Gesamtstrom_____", //12
"Geschwindigkeit_", //13
"Pos.north_______", //14
"Pos.east________", //15
"Poti3___________", //16
"Höhe_GPS________", //17
"Home_North______", //18
"Home_East_______", //19
"Posabw_North____", //20
"Posabw_East_____", //21
"P_Einfluss_North", //22
"P_Einfluss_East_", //23
"D_Einfluss_North", //24
"D_Einfluss_East_", //25
"NORTH_MITTEL____", //26
"EAST_MITTEL_____", //27
"GPS_Nick________", //28
"GPS_Roll________", //29
"StickNick_______", //30
"StickRoll_______" //31
};
 
 
char newData_navPosUtm = 0; // Flag, wenn neue PosUtm-Daten vorliegen (211007Kr)
 
static uint8_t gpsState;
#define GPS_EMPTY 0
#define GPS_SYNC1 1
#define GPS_SYNC2 2
#define GPS_CLASS 3
#define GPS_LEN1 4
#define GPS_LEN2 5
#define GPS_FILLING 6
#define GPS_CKA 7
#define GPS_CKB 8
 
gpsInfo_t actualPos; // measured position (last gps record)
 
#define SYNC_CHAR1 0xb5
#define SYNC_CHAR2 0x62
 
#define CLASS_NAV 0x01
#define MSGID_STATUS 0x03
//#define MSGID_POSLLH 0x02 //(231107Kr)
#define MSGID_POSUTM 0x08
#define MSGID_VELNED 0x12
 
 
 
typedef struct {
unsigned long ITOW; // time of week
uint8_t GPSfix; // GPSfix Type, range 0..6
uint8_t Flags; // Navigation Status Flags
uint8_t DiffS; // Differential Status
uint8_t res; // reserved
unsigned long TTFF; // Time to first fix (millisecond time tag)
unsigned long MSSS; // Milliseconds since Startup / Reset
uint8_t packetStatus;
} NAV_STATUS_t;
 
/*
typedef struct { //(231107Kr)
unsigned long ITOW; // time of week
long LON; // longitude in 1e-07 deg
long LAT; // lattitude
long HEIGHT; // height in mm
long HMSL; // height above mean sea level im mm
unsigned long Hacc; // horizontal accuracy in mm
unsigned long Vacc; // vertical accuracy in mm
uint8_t packetStatus;
} NAV_POSLLH_t;
*/
 
typedef struct {
unsigned long ITOW; // time of week
long EAST; // cm UTM Easting
long NORTH; // cm UTM Nording
long ALT; // cm altitude
uint8_t ZONE; // UTM zone number
uint8_t HEM; // Hemisphere Indicator (0=North, 1=South)
uint8_t packetStatus;
} NAV_POSUTM_t;
 
 
typedef struct {
unsigned long ITOW; // ms GPS Millisecond Time of Week
long VEL_N; // cm/s NED north velocity
long VEL_E; // cm/s NED east velocity
long VEL_D; // cm/s NED down velocity
unsigned long Speed; // cm/s Speed (3-D)
unsigned long GSpeed; // cm/s Ground Speed (2-D)
long Heading; // deg (1e-05) Heading 2-D
unsigned long SAcc; // cm/s Speed Accuracy Estimate
unsigned long CAcc; // deg Course / Heading Accuracy Estimate
uint8_t packetStatus;
} NAV_VELNED_t;
 
 
 
NAV_STATUS_t navStatus;
//NAV_POSLLH_t navPosLlh; //(231107Kr)
NAV_POSUTM_t navPosUtm;
NAV_VELNED_t navVelNed;
 
volatile char *ubxP, *ubxEp, *ubxSp; // pointers to packet currently transfered
volatile uint8_t CK_A, CK_B; // UBX checksum bytes
volatile unsigned short msgLen;
volatile uint8_t msgID;
volatile uint8_t ignorePacket; // true when previous packet was not processed
 
 
#ifdef GPS_DEBUG // if set then the GPS data is transfered to display
extern volatile uint8_t v24state;
char buf[200];
char *bp;
char *ep;
#endif
 
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//++ Sende-Part der Datenübertragung
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
91,6 → 189,51
else ptr = 0;
}
 
void GPSscanData (void)
{
 
 
 
if (navStatus.packetStatus == 1) // valid packet
{
actualPos.GPSFix = navStatus.GPSfix;
actualPos.newData = navStatus.packetStatus;
navStatus.packetStatus = 0;
}
/*
if (navPosLlh.packetStatus == 1) // valid packet
{
actualPos.longi = navPosLlh.LON; //(231107Kr)
actualPos.lati = navPosLlh.LAT; //(231107Kr)
actualPos.height = navPosLlh.HEIGHT; //(231107Kr)
navPosLlh.packetStatus = 0;
}
*/
 
if (navPosUtm.packetStatus == 1) // valid packet
{
actualPos.northing = navPosUtm.NORTH;
actualPos.easting = navPosUtm.EAST;
actualPos.altitude = navPosUtm.ALT;
navPosUtm.packetStatus = 0;
newData_navPosUtm = 1; // (211007Kr)
ROT_ON; // Rot blinkt in der Frequenz mit der neue UTM-Daten des GPS Empfänger ankommen und brauchbar sind //(211107Kr)
}
 
 
if (navVelNed.packetStatus == 1) // valid packet
{
actualPos.velNorth = navVelNed.VEL_N;
actualPos.velEast = navVelNed.VEL_E;
actualPos.velDown = navVelNed.VEL_D;
actualPos.GSpeed = navVelNed.GSpeed; //Geschwindigkeit [cm/s] über Grund (151007Kr)
navVelNed.packetStatus = 0;
}
 
}
 
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//++ Empfangs-Part der Datenübertragung, incl. CRC-Auswertung
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
102,6 → 245,137
unsigned char CrcOkay = 0;
 
SioTmp = UDR;
uint8_t c;
uint8_t re;
 
re = (UCSR0A & (_B1(FE0) | _B1(DOR0))); // any error occured ?
c = SioTmp;
#ifdef GPS_DEBUG
*bp++ = c;
if (bp >= (buf+200)) bp = buf;
if (v24state == 0)
{
v24state = 1;
UDR0 = *ep++;
if (ep >= buf+200)
ep = buf;
UCSR0B |= _B1(UDRIE0); //enable further irqs
}
#endif
 
if (re == 0)
{
switch (gpsState)
{
case GPS_EMPTY:
if (c == SYNC_CHAR1)
gpsState = GPS_SYNC1;
break;
case GPS_SYNC1:
if (c == SYNC_CHAR2)
gpsState = GPS_SYNC2;
else if (c != SYNC_CHAR1)
gpsState = GPS_EMPTY;
break;
case GPS_SYNC2:
if (c == CLASS_NAV)
gpsState = GPS_CLASS;
else
gpsState = GPS_EMPTY;
break;
case GPS_CLASS: // msg ID seen: init packed receive
msgID = c;
CK_A = CLASS_NAV + c;
CK_B = CLASS_NAV + CK_A;
gpsState = GPS_LEN1;
 
switch (msgID)
{
case MSGID_STATUS:
ubxP = (char*)&navStatus;
ubxEp = (char*)(&navStatus + sizeof(NAV_STATUS_t));
ubxSp = (char*)&navStatus.packetStatus;
ignorePacket = navStatus.packetStatus;
break;
/*
case MSGID_POSLLH: //(231107Kr)
ubxP = (char*)&navPosLlh;
ubxEp = (char*)(&navPosLlh + sizeof(NAV_POSLLH_t));
ubxSp = (char*)&navPosLlh.packetStatus;
ignorePacket = navPosLlh.packetStatus;
break;
*/
case MSGID_POSUTM:
ubxP = (char*)&navPosUtm;
ubxEp = (char*)(&navPosUtm + sizeof(NAV_POSUTM_t));
ubxSp = (char*)&navPosUtm.packetStatus;
ignorePacket = navPosUtm.packetStatus;
break;
case MSGID_VELNED:
ubxP = (char*)&navVelNed;
ubxEp = (char*)(&navVelNed + sizeof(NAV_VELNED_t));
ubxSp = (char*)&navVelNed.packetStatus;
ignorePacket = navVelNed.packetStatus;
break;
default:
ignorePacket = 1;
ubxSp = (char*)0;
}
break;
case GPS_LEN1: // first len byte
msgLen = c;
CK_A += c;
CK_B += CK_A;
gpsState = GPS_LEN2;
break;
case GPS_LEN2: // second len byte
msgLen = msgLen + (c * 256);
CK_A += c;
CK_B += CK_A;
gpsState = GPS_FILLING; // next data will be stored in packet struct
break;
case GPS_FILLING:
CK_A += c;
CK_B += CK_A;
 
if ( !ignorePacket && ubxP < ubxEp)
*ubxP++ = c;
 
if (--msgLen == 0)
gpsState = GPS_CKA;
break;
case GPS_CKA:
if (c == CK_A)
gpsState = GPS_CKB;
else
gpsState = GPS_EMPTY;
break;
case GPS_CKB:
if (c == CK_B && ubxSp) // No error -> packet received successfully
*ubxSp = 1; // set packetStatus in struct
gpsState = GPS_EMPTY; // ready for next packet
break;
default:
gpsState = GPS_EMPTY; // ready for next packet
}
}
else // discard any data if error occured
{
gpsState = GPS_EMPTY;
}
GPSscanData ();
 
 
if(buf_ptr >= MAX_EMPFANGS_BUFF) UartState = 0;
if(SioTmp == '\r' && UartState == 2)
{
165,7 → 439,6
}
 
 
 
// --------------------------------------------------------------------------
void SendOutData(unsigned char cmd,unsigned char modul, unsigned char *snd, unsigned char len)
{
342,6 → 615,8
//fdevopen (uart_putchar, 0);
//sbi(PORTD,4);
Debug_Timer = SetDelay(200);
gpsState = GPS_EMPTY;
}
 
//---------------------------------------------------------------------------------------------
/branches/Flight-Ctrl_V0_67g_3_GPS_work_Jochen/uart.h
9,6 → 9,8
#define DUB_KEY_LEFT 16
#define DUB_KEY_FIRE 64
 
extern char newData_navPosUtm; // (211007Kr)
 
void BearbeiteRxDaten(void);
 
extern unsigned char DebugGetAnforderung;
37,6 → 39,30
 
extern struct str_DebugOut DebugOut;
 
#define _B1(bit) (1 << (bit))
#define _B0(bit) (0 << (bit))
 
typedef struct
{
long northing; // in cm (+ = north)
long easting; // in cm (+ = east)
long altitude; // in cm
long velNorth;
long velEast;
long velDown;
long GSpeed; //(151007Kr)
uint8_t newData; // status of data: 0 = invlid; 1 = valid
uint8_t GPSFix;
uint8_t noSV; // number of sats
} gpsInfo_t;
 
 
extern gpsInfo_t lockedPos; // stored position to fly to
extern gpsInfo_t actualPos; // measured position (last gps record)
 
extern void GPSscanData (void);
 
 
struct str_Debug
{
unsigned char Digital[2];
/branches/Flight-Ctrl_V0_67g_3_GPS_work_Jochen/version.txt
104,4 → 104,24
- Giersteuerwert im Mischer auf Gas/2 begrenzt
- Die Analogwerte des ACC-Sensors können dauerhaft im EEPROM gespeichert werden
- Das Integral des Hauptreglers wird jetzt linear entladen und nicht mehr proportional
 
MODDS:
- LED1 und LED2 Ansteuerung, blinkende LED_1 für Positionsleuchten (einstellbar über Userparam 7 und 8)
- GPS wird deaktiviert und Summer eingeschaltet, wenn kein 3D-Fix (mehr) vorhanden
- GPS-Statusanzeige auf eine LED reduziert (aus, blinkend, an)
- Homing-Fkt. eingebaut
- Diverse Absicherungen gegen Fehlbedienungen (z.B. nicht gelernte Home-Position, ...)
- Rotationsmatrix mit Kompass, damit die GPS-Fkt. nicht nur nach Norden ausgerichtet funktioniert
- dyn. Position Hold -> normaler Rundflug möglich
- Limit_D_Anteil um im Homingmodus die Sollposition gleichmäßiger anzufliegen (->> Radius 500cm)
- Die Berechnung von Kompassvalue wird jetzt auch über den GPS Haken im Koptertool aktiviert
- 12 Kanal Erweiterung (rc.c; rc.h; fc.c; fc.h; menu.c)
- Beeinflussung der Stickwerte um ungewollte Überschläge zu verhindern auch bei aktiviertem GPS ausgeschaltet.
- Die Begrenzung der Messwerte ist wieder aktiv, wird jedoch im Falle von Loopings nicht durchlaufen
- die Geschwindigkeit über Grund vom GPS liegt nun auf den Debug.Analog Werten
- mögliche Fehlbedienung durch Trennen des GPS Empfängers unterdrückt