Author Topic: ADB to USB keyboard converter  (Read 494838 times)

0 Members and 1 Guest are viewing this topic.

Offline hasu

  • Thread Starter
  • Posts: 3291
  • Location: Tokyo, Japan
  • @tmk
    • tmk keyboard firmware project
Re: ADB to USB keyboard converter
« Reply #700 on: Thu, 16 March 2017, 17:49:28 »
Those events look decent for TMK locking key support but which you don't want in your keymap. What you have to do will be just to find proper keycode.

You will find how to find the keycode in keymap document. You can find keymap document in README, btw.

Offline sneaux

  • Posts: 3
Re: ADB to USB keyboard converter
« Reply #701 on: Thu, 16 March 2017, 22:52:52 »
Perfect. Thank you. I had changed the instances of LCAP to CAP, but should have changed them to CAPS   :D

Offline mrrm14

  • Posts: 3
Re: ADB to USB keyboard converter
« Reply #702 on: Thu, 06 April 2017, 12:12:27 »
Hi All,

I'm following this handy little guide to convert the Apple Extended Keyboard II to USB:
http://ifixit.org/blog/4468/hack-it-better-apple-extended-keyboard-ii/

I followed all of the instructions to the letter but I have a problem. The Teensy 2 powers on when plugged as does the Keyboard Num Lock, Caps Lock and Scroll Lock LEDs. The Teensy' LED is on constantly but flashes every 10 seconds. When it flashes the mouse pointer on the screen moves about an inch to the right.

I'm still a bit new to micro controllers and Hex Code so I can't debug the issue myself, to my eyes it seems all good. I've included the code used and my wiring.

Any advice is much appreciated!

Thanks!

http://imgur.com/a/omVjP

Code: [Select]
:100000000C9499050C94DD050C94DD050C94DD052C
:100010000C94DD050C94DD050C94DD050C94DD05D8
:100020000C94DD050C94DD050C94920F0C94641077
:100030000C940D1F0C94DD050C94DD050C94DD056E
:100040000C94DD050C94DD050C94DD050C94DD05A8
:100050000C94DD050C94801F0C94DD050C94DD05DB
:100060000C94DD050C94DD050C94DD050C94DD0588
:100070000C94DD050C94DD050C94DD050C94DD0578
:100080000C94DD050C94DD050C94DD050C94DD0568
:100090000C94DD050C94DD050C94DD050C94DD0558
:1000A0000C94DD050C94DD050C94DD05C910EB10F6
:1000B000D611EB10D6112D115011D611A511B81172
:1000C000B715B715E515E51541167D16801880188A
:1000D000951680188C178C175A18801880186E186F
:1000E00035A131A1041607090B0A1D1B0619640569
:1000F000141A08151C171E1F202123222E26242D1A
:1001000025273012182F0C13280F0D340E33C1364B
:10011000381110372B2CC02A5829E0E3E182E25035
:100120004F5152006C6365556D570053A9AAA854EE
:100130005800566D6E2E62595A5B5C5D5E5F6F6053
:10014000618987853E3F403C4142914490466B47E0
:10015000004365450048494A4B4C3D4D3B4E3AE50E
:10016000E6E40000AAA9A8090B0A1D1B06196405EC
:10017000141A08151C173A3B3C3D3F3E454240448B
:100180004143494718524648284B0D4F4A50C14DEC
:100190005111104E2B2CC04C5835E0E3E182E24A5D
:1001A0004D4E4B006CF565F66DF90053A9AAA8F504
:1001B000F600FA6D6EF4F4FBF1FCF2F1F3FA6FF075
:1001C000F98987853E3F403C4142914490466B47C8
:1001D000004365450048494A4B4C3D4D3B4E3AE58E
:1001E000E6E400006164625F686F73745F6B626471
:1001F0005F726563763A204552524F522825642932
:100200000A000A0025303458006164625F686F7329
:10021000745F6B62645F726563763A200045525288
:100220004F523A206D65646961206B6579300A0030
:100230004552524F523A206D65646961206B657971
:10024000310A005D0A0025640020002564007C005E
:100250002530325800200025303258006164625F3A
:100260006D6F757365207261773A205B000A002517
:1002700030313662006164625F686F73745F6D6F06
:100280007573655F726563763A20006465627567B1
:1002900020656E61626C65642E0A005363616E3A7C
:1002A00020616464723A25642C20726567333A25B4
:1002B0003034580A00416674657220696E69743A78
:1002C0000A00466F756E643A206D65646961206B43
:1002D0006579730A005363616E3A20616464723A0F
:1002E00025642C20726567333A253034580A004261
:1002F00065666F726520696E69743A0A004B6579AC
:10030000626F6172642073746172742E0A005553B7
:100310004220636F6E666967757265642E0A000D10
:100320000A696E69740A005B445D005B435D002EE0
:100330000341004400420020006B00650079006228
:10034000006F00610072006400200063006F006EA7
:100350000076006500720074006500720000000EF7
:100360000374002E006D002E006B002E00000004B0
:1003700003090409027400040100A032090400000A
:1003800001030101000921110100012240000705BC
:10039000810308000A090401000103010200092188
:1003A00011010001224D000705820308000A09041B
:1003B00002000103000000092111010001223600A2
:1003C0000705830308000A09040300020300000074
:1003D00009211101000122220007058403200001E8
:1003E000070504032000011201100100000008EDC0
:1003F000FEDB0A0101010200010631FF0974A101BF
:100400000975150026FF00952075088102097615EB
:100410000026FF00952075089102C005010980A102
:1004200001850216810026B7001A81002AB70075DF
:100430001095018100C0050C0901A1018503160179
:1004400000269C021A01002A9C0275109501810069
:10045000C005010902A1010901A10005091901292D
:10046000051500250195057501810295017503812A
:10047000010501093009311581257F950275088133
:100480000609381581257F950175088106050C0A36
:1004900038021581257F950175088106C0C00501C8
:1004A0000906A101050719E029E7150025019508AE
:1004B0007501810295017508810105081901290559
:1004C00095057501910295017503910105071900C4
:1004D00029FF150026FF00950675088100C0636F8F
:1004E0006E73756D65723A20253034580A00737941
:1004F0007374656D3A20253034580A000A0025309F
:10050000325820006B6579626F6172643A20004C4A
:1005100045443A20253032580A00253032583A20D6
:100520002530386225730A00722F63203031323350
:10053000343536370A00290A002575002F00257545
:10054000005D28002564002000256400200025644B
:100550000020002564007C0025303258006D6F7546
:1005600073656B6579205B62746E7C782079207688
:1005700020685D287265702F61636C293A205B00EA
:100580006D6B5F776865656C5F74696D655F746FCF
:100590005F6D6178203D2025640A006D6B5F776890
:1005A00065656C5F6D61785F7370656564203D2083
:1005B00025640A006D6B5F74696D655F746F5F6DB4
:1005C0006178203D2025640A006D6B5F6D61785F66
:1005D0007370656564203D2025640A006D6B5F695A
:1005E0006E74657276616C203D2025640A006D6B27
:1005F0005F64656C6179203D2025640A006D6B5F46
:10060000776865656C5F74696D655F746F5F6D6158
:1006100078203D2025640A006D6B5F776865656C06
:100620005F6D61785F7370656564203D2025640AA5
:10063000006D6B5F74696D655F746F5F6D617820CD
:100640003D2025640A006D6B5F6D61785F73706596
:100650006564203D2025640A006D6B5F696E7465DA
:100660007276616C203D2025640A006D6B5F6465C5
:100670006C6179203D2025640A000A00257500364A
:100680003A20776865656C5F74696D655F746F5F4C
:100690006D61783A20000A00257500353A207768A8
:1006A00065656C5F6D61785F73706565643A2000A5
:1006B0000A00257500343A2074696D655F746F5FB8
:1006C0006D61783A20000A00257500333A206D618B
:1006D000785F73706565643A20000A002575003202
:1006E0003A20696E74657276616C286D73293A20C0
:1006F000000A00257500313A2064656C6179282A6A
:1007000031306D73293A20000A092D2056616C752D
:100710006573202D0A004D3E004D25643E20003FAC
:10072000007365742064656661756C740A00433EED
:10073000200077686572652064656C74613A206397
:100740007572736F723D25642C20776865656C3D0A
:1007500025640A53656520687474703A2F2F656E9E
:100760002E77696B6970656469612E6F72672F7788
:10077000696B692F4D6F7573655F6B6579730A00DF
:100780000A092D204D6F7573656B6579202D0A451B
:1007900053432F713A09717569740A313A096465D6
:1007A0006C6179282A31306D73290A323A09696EF1
:1007B00074657276616C286D73290A333A096D612C
:1007C000785F73706565640A343A0974696D655FB2
:1007D000746F5F6D61780A353A09776865656C5F9B
:1007E0006D61785F73706565640A363A097768658C
:1007F000656C5F74696D655F746F5F6D61780A0A1F
:10080000703A097072696E742076616C7565730A4E
:10081000643A097365742064656661756C74730A63
:1008200075703A092B310A646F776E3A092D310AD7
:10083000706775703A092B31300A7067646F776E94
:100840003A092D31300A0A7370656564203D2064D1
:10085000656C7461202A206D61785F7370656564D2
:10086000202A2028726570656174202F2074696DBC
:10087000655F746F5F6D6178290A003F004D3E200F
:1008800000433E20004C25640A000A092D20436FD6
:100890006E736F6C65202D0A4553432F713A0971B1
:1008A0007569740A6D3A096D6F7573656B65790AC0
:1008B000000A092D204D61676963202D0A643A09F9
:1008C00064656275670A783A096465627567206DC8
:1008D00061747269780A6B3A096465627567206BA6
:1008E0006579626F6172640A6D3A09646562756761
:1008F000206D6F7573650A763A0976657273696F54
:100900006E0A733A097374617475730A633A096302
:100910006F6E736F6C65206D6F64650A302D343AAD
:10092000096C61796572302D34284631302D46349A
:10093000290A506175733A09626F6F746C6F616454
:1009400065720A003F0074696D65725F726561646B
:10095000333228293A202530346C580A006B6579E7
:10096000626F6172645F69646C653A2025580A00A1
:100970006B6579626F6172645F70726F746F636FC1
:100980006C3A2025580A00686F73745F6B65796252
:100990006F6172645F6C65647328293A2025580A78
:1009A000000A092D20537461747573202D0A0047C5
:1009B00043433A20342E382E31204156522D4C4993
:1009C00042433A20312E382E3073766E20415652F3
:1009D0005F415243483A20617672350A004F5054C5
:1009E000494F4E533A204C554641204D4F555345A3
:1009F0004B45592045585452414B455920434F4E81
:100A0000534F4C4520434F4D4D414E4420343039D7
:100A1000360A004255494C443A20346265666338D0
:100A200037202830303A30353A3233204170722046
:100A300020362032303137290A005649443A2030D6
:100A4000784645454428742E6D2E6B2E292050493A
:100A5000443A2030783041444228414442206B657A
:100A600079626F61726420636F6E7665727465720D
:100A700029205645523A203078303130310A00442E
:100A80004553433A20636F6E766572742041444249
:100A9000206B6579626F61726420746F20555342D8
:100AA0000A000A092D2056657273696F6E202D0A9F
:100AB000000A6D6F7573653A206F66660A000A6DED
:100AC0006F7573653A206F6E0A000A6B6579626F05
:100AD0006172643A206F66660A000A6B6579626F1C
:100AE0006172643A206F6E0A000A6D6174726978EF
:100AF0003A206F66660A000A6D61747269783A205E
:100B00006F6E0A000A64656275673A206F6E0A00AC
:100B10000A64656275673A206F66660A000A0A62AF
:100B20006F6F746C6F616465722E2E2E2000433ED1
:100B3000200011241FBECFEFDAE0DEBFCDBF04B628
:100B400003FE24C08091DC019091DD01A091DE01C3
:100B5000B091DF018730904BA740B04BB9F41092B1
:100B6000DC011092DD011092DE011092DF0114BE53
:100B700084B7877F84BF88E10FB6F89480936000C4
:100B8000109260000FBEE0E0F8E3099511E0A0E0EC
:100B9000B1E0E2EAF0E502C005900D92A433B1079E
:100BA000D9F721E0A4E3B1E001C01D92AC3DB2074A
:100BB000E1F70E94C50C0C944F280C940000FF93A1
:100BC000EF93E0913401F0913501309709F00995E8
:100BD000EF91FF910895FC018591803011F0EFDFD6
:100BE000FBCF0895FF27E0E230E247FF0CC04195BC
:100BF00097FF09C0EDE26095709580959095611D15
:100C0000711D811D911D27FF02C0219530E350E227
:100C1000AA27660F771F881F991FAA1FA41710F015
:100C2000A41B63955A95A9F7AA3008F0A95FA05DA7
:100C3000AF93F395611571058105910541F7ED328B
:100C400011F4EF93F395F21718F43F93F395FBCF5C
:100C50008F91B5DFFA95E1F70895E991F9918591C2
:100C6000803021F0853219F0AADFF9CF089520E015
:100C7000E89455915532C1F3503311F4689455916D
:100C80005A3348F4505390F3220F022E220F220FB2
:100C9000200D250FF4CF0EF42195899199915336AB
:100CA00019F3533729F1533559F1BC018827992796
:100CB000E8945C3621F48991999168945591543661
:100CC00039F446EF7EF077FF0DC08FEF9FEF0AC03B
:100CD00055374AE039F0583540E121F0523642E0CC
:100CE00009F00895FF93EF937DDFEF91FF91B7CF68
:100CF000FF93EF93FC0181918030B9F360DFFBCF6C
:100D0000FF93EF9368DFF1CFDF93CF93CDB7DEB7DB
:100D10002596A3DFCF91DF910895282F2770E82F24
:100D2000E695E695E695EF70F0E0E95CFE4F87FF0B
:100D30000CC081E090E0022E01C0880F0A94EAF70F
:100D40008095908189238083089581E090E0022E30
:100D500001C0880F0A94EAF79081982B9083089538
:100D60000F931F93CF93DF93569A5E9A0E949E092A
:100D70002FEF87EA91E6215080409040E1F700C0D4
:100D800000008FEE92E09F938F930E9484060F9055
:100D90000F90C1E0D0E005ED12E063E08C2F0E94DF
:100DA000A209009771F09F938F93DF93CF931F93C6
:100DB0000F930E9484060F900F900F900F900F904A
:100DC0000F909FEF29EF80E0915020408040E1F7A5
:100DD00000C000002196C031D105F9F663E082E041
:100DE0000E94A20999278131910511F174F487308D
:100DF0009105F1F024F404970297F0F419C08930BA
:100E00009105B1F00D97C1F413C08D31910581F0BA
:100E100034F48431910561F0499771F409C0843C40
:100E2000910531F0873C910519F0813C910521F441
:100E300081E080934C0102C010924C0163E087E096
:100E40000E94A20991E0823009F090E090934D0158
:100E5000992341F082EC92E09F938F930E94840645
:100E60000F900F9023E042E063E082E00E94270AA7
:100E700085EB92E09F938F930E9484060F900F90D2
:100E8000C1E0D0E00BE912E063E08C2F0E94A209E0
:100E9000009771F09F938F93DF93CF931F930F93DE
:100EA0000E9484060F900F900F900F900F900F905C
:100EB0008FEF99EF20E0815090402040E1F700C093
:100EC00000002196C031D105F9F6E7E3F1E0119277
:100ED00081E0E734F807D9F70E94F3110E94440932
:100EE0008091BE0181608093BE018BE892E00E94F8
:100EF000EB05569A5E98DF91CF911F910F9108955F
:100F0000CF93DF938FE79BEB0197F1F700C00000D1
:100F10000E94230AEC01009711F481E0C4C097FD00
:100F200005C080914701816080934701D7FF05C0CC
:100F3000809147018E7F809347018D2F99278F7372
:100F40009927AE014F735527C6FF02C0405451097F
:100F5000D6FF02C08054910960913601772767FD62
:100F60007095469F9001479F300D569F300D11247C
:100F700021384FEF340714F421E83FEF31952195E4
:100F8000310921384FEF340714F421E83FEF219560
:100F900020934801869F9001879F300D969F300DCA
:100FA000112421388FEF380714F421E83FEF882708
:100FB0009927821B930B81382FEF920714F481E855
:100FC0009FEF8195809349018091BE0183FF60C0AE
:100FD00085E792E00E94EB05DF93CF938FE692E0E6
:100FE0009F938F930E9484068DE692E00E94EB050A
:100FF0008CE592E00E94EB0520913601822F992723
:1010000087FD90959F932F9387E592E09F938F9311
:101010000E94840685E592E00E94EB0580914701DD
:101020001F928F9380E592E09F938F930E94840696
:101030008EE492E00E94EB0520914801822F9927CF
:1010400087FD90959F932F938BE492E09F938F93CE
:101050000E94840689E492E00E94EB0520914901F8
:10106000822F992787FD90959F932F9386E492E096
:101070009F938F930E94840683E492E00E94EB0585
:101080008DB79EB744960FB6F8949EBF0FBE8DBF26
:1010900087E491E00E9444128091360191E088300B
:1010A0000CF090E0890F80933601DF91CF91089585
:1010B0001F93CF93DF93C0910001D09101018FEF77
:1010C0009FEF9093010180930001CF3F8FEFD807EE
:1010D00009F06AC08FE79BEB0197F1F700C00000B1
:1010E00082E00E94200AEC01009709F05DC0809127
:1010F0004D01882309F458C087E00E94200A009718
:1011000009F452C09C012F77332722303105A1F01A
:1011100048F42115310569F02130310599F48078C2
:101120008A641AC02330310551F02F373105A1F000
:1011300009C08078826410C0807889640DC080788E
:1011400088640AC080E392E09F938F930E94840694
:101150000F900F9081E18EC0292F33272F773327EF
:101160002130310579F050F02230310579F023300B
:10117000310581F4EC01D078D86416C0EC01D07848
:10118000D26412C0EC01D078DA640EC0EC01D078E1
:10119000D9640AC08DE192E09F938F930E948406E8
:1011A0000F900F9080E166C08091BE0181FF18C052
:1011B000209709F45CC089E092E00E94EB05DF9380
:1011C000CF9384E092E09F938F930E94840682E005
:1011D00092E00E94EB050F900F900F900F9003C0CC
:1011E000209709F444C0CF379FE7D90711F48FE760
:1011F00005C0CF3F8FEFD80721F48FEF0E948D06F7
:1012000038C02D2F3327822F1C2F2F3F81F4DF93DF
:10121000CF9384EE91E09F938F930E9484060E9467
:10122000B0060F900F900F900F908C2F23C09091CD
:101230004C01992381F0A9014F775527423351057D
:1012400021F4822F80788A6006C04A30510519F453
:10125000822F807882630E948D061F3F51F0DC2F21
:10126000CC27CF6FD0930101C093000102C080E072
:1012700001C081E0DF91CF911F910895E82FF0E048
:10128000E95CFE4F80810895682F609582E00C94A0
:10129000620A509A83E091E00197F1F700C00000E4
:1012A00050989AEB9A95F1F700C00895509A8AEBFE
:1012B0008A95F1F700C0509883E091E00197F1F72B
:1012C00000C000000895EF92FF920F931F93CF93F9
:1012D000DF93C0E0D0E000E810E0E82EF12C9801A8
:1012E0000C2E02C0359527950A94E2F72E213F2156
:1012F000232B19F00E94560902C00E944909219629
:10130000C830D10561F7DF91CF911F910F91FF9008
:10131000EF900895489B07C023E02A95F1F700005D
:1013200001970097B9F70895489907C023E02A95D7
:10133000F1F7000001970097B9F708955898509871
:1013400008950895CF92DF92EF92FF920F931F932B
:10135000CF93DF931F92CDB7DEB7182FF894509A32
:1013600083EF9BE00197F1F700C0000069830E94C2
:10137000560969816C60E0E11E9FC0011124862B33
:101380000E9463090E94490984EF91E00E94940938
:10139000892B21F4789482EE9FEF48C084EF91E08E
:1013A0000E948A09892B21F4789480E090E03EC065
:1013B00021E1F22EC12CD12C32E8E32E82E890E01C
:1013C0000E9494098C01882359F199270E948A0967
:1013D000882331F1CC0CDD1C9E2D901B081B90172F
:1013E00018F46894C0F807C0F1E1FF1204C07894C3
:1013F0008CEE9FEF1BC0FA9409F78FE591E00E94F5
:101400009409892B21F478948BEE9FEF0FC08BE524
:1014100090E00E948A09892BB1F77894C60106C032
:1014200078948F2D90E09195819591090F90DF919F
:10143000CF911F910F91FF90EF90DF90CF90089583
:1014400060E00C94A20960E083E00C94A2091F9371
:10145000CF93DF9300D01F92CDB7DEB7182FF8944B
:10146000509A83EF9BE00197F1F700C000002B83B7
:101470004A8369830E9456096981862F886090E1BA
:10148000199FF00111248E2B0E9463090E944909C3
:10149000EFE1F3E03197F1F700C000000E94560938
:1014A0004A81842F0E9463092B81822F0E94630945
:1014B0000E94490978940F900F900F90DF91CF917F
:1014C0001F910895262F277040E062E00C94270AB0
:1014D00080915A0108959FB7F894109251019FBFCF
:1014E0009091D301943009F058C09091E9009F7019
:1014F0002091EC0020FF02C020E801C020E0292B51
:1015000094E09093E9009091EB0090FF43C090919C
:10151000EE0097FF3FC090914E01992321F09091EA
:10152000E80095FF37C010924E0196E03091E80038
:1015300035FD15C03091D301343061F53091EB00A9
:1015400035FD28C0915021F481E080934E0122C0E6
:10155000EFE9FFE03197F1F700C00000E7CF80939B
:10156000F1008091E80085FD0AC08091E80080FFCD
:10157000FCCF8091E8008E778093E80006C08FB79B
:10158000F89491E0909351018FBF2F702093E90060
:1015900080E008952F702093E9008FEF0895CF9396
:1015A000DF9300D01F92CDB7DEB72091D301243056
:1015B00019F523E029839B838A832093E9008FEF29
:1015C0009091E800815095FD06C095ED9A95F1F750
:1015D00000008111F5CF8091E80085FF0DC040E04B
:1015E00050E063E070E0CE0101960E94850D80918D
:1015F000E8008E778093E8000F900F900F90DF91B6
:10160000CF910895CF93DF9300D01F92CDB7DEB76F
:101610002091D301243021F522E029839B838A8302
:1016200083E08093E9008FEF9091E800815095FD71
:1016300006C095ED9A95F1F700008111F5CF8091E4
:10164000E80085FF0DC040E050E063E070E0CE01AF
:1016500001960E94850D8091E8008E778093E800C6
:101660000F900F900F90DF91CF9108952091D301AB
:101670002430F1F422E02093E9002FEF3091E800CC
:10168000215035FD06C035ED3A95F1F700002111E6
:10169000F5CF2091E80025FF0BC040E050E065E069
:1016A00070E00E94850D8091E8008E778093E800BD
:1016B0000895CF93DF93EC018091D301843039F505
:1016C00081E08093E9008FEF9091E800815095FDD3
:1016D00006C095ED9A95F1F700008111F5CF809144
:1016E000E80085FF14C040E050E068E070E0CE0103
:1016F0000E94850D8091E8008E778093E80088E055
:10170000FE01A2E5B1E001900D928A95E1F7DF912B
:10171000CF9108958BE293E00E94EB058091D20176
:10172000811109C00E94170F0E94740F8091E2007E
:1017300084608093E200089587E293E00E94EB05C5
:101740001092D2010895089580914F018F5F809388
:101750004F0162E30E941528911135C010924F018C
:1017600080915101882379F18091D301843049F52A
:101770008091E9008F709091EC0090FF02C090E89A
:1017800001C090E0982B84E08093E9008091EB0009
:1017900080FF14C08091EE0087FF10C08091E800A8
:1017A00085FF03C01092F100F9CF8091E80080FF1F
:1017B00005C08091E8008E778093E8009F70909339
:1017C000E90010925101089542E061EC81E00E942D
:1017D000910E42E061EC82E00E94910E42E061ECE9
:1017E00083E00E94910E42E261EC84E00C94910E41
:1017F0008091D501833009F453C030F4813071F009
:10180000823009F48CC008958A3009F478C08B3096
:1018100009F45EC0893009F09AC020C08091D401DB
:10182000813A09F094C08091E800877F8093E800B6
:101830008091D8019091D901892B21F060E080E05E
:1018400090E003C068E082E591E070E00E94CE0D78
:101850008091E8008B778093E80008958091D4010F
:10186000813209F074C08091D8019091D901892BFF
:1018700009F06DC08091E800877F8093E800809137
:10188000E80082FD05C08091D3018111F8CF5FC0CF
:101890008091F10080935A018091E8008B7753C0CA
:1018A0008091D401813A09F052C08091D801909181
:1018B000D901892B09F04BC08091E800877F809384
:1018C000E8008091E80080FFFCCF80910C0136C0D9
:1018D0008091D4018132D9F58091D8019091D901BC
:1018E000892BA9F58091E800877F8093E8000E940A
:1018F000C60E8091D60180930C010C94A1188091A2
:10190000D401813221F58091E800877F8093E8003F
:101910000E94C60E8091D70180935B01089580914B
:10192000D401813AA1F48091E800877F8093E80098
:101930008091E80080FFFCCF80915B018093F100F3
:101940008091E8008E778093E8000C94C60E08958D
:101950000895089580915A018093500110925A0180
:1019600080E00E9444090E9474130C94A1180C9406
:10197000AA0C0E94CE1E8091D101882329F00E94DA
:10198000F41E81110C946F0D089584B7877F84BF76
:1019900088E10FB6F89480936000109260000FBE4B
:1019A00090E080E80FB6F894809361009093610016
:1019B0000FBE8BE69AE00E94A31E8FE193E00E9487
:1019C000EB050E94A80C0E94AB120E94170F0E9408
:1019D000740F8091E20084608093E200789480919B
:1019E000D3018430E1F78EE093E00E94EB050E9482
:1019F000AD1282E091E00E94EE118DEF92E00E9424
:101A0000EB050E94A90C8091D301853019F40E9446
:101A1000B90CF9CF0E94B312F6CF0E94091F809132
:101A2000500180935A0108950C940D0D292F3327EE
:101A300023303105A9F06CF42130310509F442C09E
:101A40002230310509F043C084E790E023E733E01A
:101A500042C021323105C9F02232310519F137C0B7
:101A600099278130910541F08230910541F0892B11
:101A700071F5EFE6F3E005C0EFE5F3E002C0EFE259
:101A8000F3E0849190E09F0126C0643000F5E62FDA
:101A9000F0E0EE0FFF1FEF5DFE4F2081318189E006
:101AA00090E019C0643098F4E62FF0E0DF01AA0F4F
:101AB000BB1FA75EBE4F2D913C91EB5EFE4F808118
:101AC00090E009C082E190E027EE33E004C080E0BE
:101AD00090E020E030E0FA0131832083089580E136
:101AE00089BD82E189BD09B400FEFDCF8091D80097
:101AF0008F7D8093D8008091E00082608093E00029
:101B00008091E00081FDFCCF0895CF92DF92EF92AB
:101B1000FF920F931F93CF93DF937C018B01EA0118
:101B20000E94E70E811131C0209731F088819981A0
:101B3000081B190BE80EF91EC12CD12C011511053B
:101B400019F18091E80085FD14C08091E8008E773E
:101B50008093E800209741F0888199818C0D9D1D2C
:101B60009983888385E011C00E94E70E882331F3B2
:101B70000CC0F70181917F018093F10001501109A0
:101B8000FFEFCF1ADF0ADACF80E0DF91CF911F910C
:101B90000F91FF90EF90DF90CF9008952091DA01A0
:101BA0003091DB012617370748F06115710539F4CC
:101BB0002091E8002E772093E80001C0B901FC01D4
:101BC00020E061157105B9F18091D301882309F4F2
:101BD00040C0853009F43FC08091E80083FD3DC0DE
:101BE0008091E80082FF06C08091E80082FF26C055
:101BF00080E008958091E80080FFE3CF2091F3001A
:101C00008091F20090E0922B6115710551F08830BF
:101C1000910538F421912093F100615071090196EA
:101C2000F3CF21E0089709F020E08091E8008E775B
:101C30008093E800C6CF2111C7CFD6CF8091D301C2
:101C4000882339F0853039F08091E80083FFCCCFCC
:101C500004C082E0089583E0089581E00895209112
:101C6000DA013091DB012617370748F0611571055D
:101C700039F42091E8002E772093E80001C0B901E3
:101C8000FC0120E061157105C1F18091D301882329
:101C900009F441C0853009F440C08091E80083FD1B
:101CA0003EC08091E80082FF06C08091E80082FF7C
:101CB00027C080E008958091E80080FFE3CF209165
:101CC000F3008091F20090E0922B6115710559F0BC
:101CD0008830910540F424912093F10031966150B1
:101CE00071090196F2CF21E0089709F020E0809178
:101CF000E8008E778093E800C5CF2111C6CFD5CFFD
:101D00008091D301882339F0853039F08091E80043
:101D100083FFCBCF04C082E0089583E0089581E083
:101D20000895982F973058F59093E900981739F057
:101D30007091EC002091ED005091F00003C0242F31
:101D4000762F50E021FF19C03091EB003E7F309399
:101D5000EB003091ED003D7F3093ED003091EB00D2
:101D600031603093EB007093EC002093ED005093C2
:101D7000F0002091EE0027FF07C09F5FD3CF8F7048
:101D80008093E90081E0089580E008958091D40176
:101D900087FD05C08091E80080FF0EC012C08091D1
:101DA000E80082FD05C08091D3018111F8CF08952C
:101DB0008091E8008B7708C08091D3018111EACF30
:101DC00008958091E8008E778093E80008958091CF
:101DD000E4009091E50045E62091EC0020FF21C051
:101DE0002091E80020FD21C02091D301222389F019
:101DF000253089F02091EB0025FD0FC02091E400F3
:101E00003091E5002817390739F3415041F0C901F5
:101E1000E3CF82E0089583E0089581E0089584E0AF
:101E200008952091E80022FFDFCF80E008950E940E
:101E3000850F0E948D0FE0EEF0E08081816080834D
:101E4000E8EDF0E080818F77808319BCA7EDB0E0EA
:101E50008C918E7F8C9380818F7E80831092D201B3
:101E600008950F931F93CF93DF930E94850F0E94D5
:101E70008D0FC8EDD0E088818F7788838881806856
:101E8000888388818F7D888319BC1092D30110923A
:101E9000CF011092D1011092D00100EE10E0F801B4
:101EA00080818B7F808388818160888342E060E0CD
:101EB00080E00E94910EE1EEF0E080818E7F8083D1
:101EC000E2EEF0E0808181608083808188608083A1
:101ED000F80180818E7F8083888180618883DF9193
:101EE000CF911F910F910895E8EDF0E080818F7EF2
:101EF0008083E7EDF0E080818160808384E082BFB1
:101F000081E08093D2010C94310FE8EDF0E0808104
:101F10008E7F80831092E20008951092DA00109272
:101F2000E10008951F920F920FB60F9211242F9384
:101F30003F934F935F936F937F938F939F93AF9351
:101F4000BF93EF93FF938091E10082FF0BC08091DC
:101F5000E20082FF07C08091E1008B7F8093E10067
:101F60000E94A40B8091DA0080FF1FC08091D800EE
:101F700080FF1BC08091DA008E7F8093DA00809111
:101F8000D90080FF0DC080E189BD82E189BD09B41F
:101F900000FEFDCF81E08093D3010E948A0B05C033
:101FA00019BC1092D3010E949C0B8091E10080FF2C
:101FB00019C08091E20080FF15C08091E2008E7F01
:101FC0008093E2008091E20080618093E200809142
:101FD000D80080628093D80019BC85E08093D3013B
:101FE0000E94B70C8091E10084FF30C08091E20034
:101FF00084FF2CC080E189BD82E189BD09B400FE67
:10200000FDCF8091D8008F7D8093D8008091E10032
:102010008F7E8093E1008091E2008F7E8093E200CA
:102020008091E20081608093E2008091CF0188235B
:1020300011F084E007C08091E30087FF02C083E0D5
:1020400001C081E08093D3010E94140D8091E100D2
:1020500083FF29C08091E20083FF25C08091E100C9
:10206000877F8093E10082E08093D3011092CF01BB
:102070008091E1008E7F8093E1008091E2008E7F6D
:102080008093E2008091E20080618093E20042E070
:1020900060E080E00E94910E8091F0008860809363
:1020A000F0000E94A30BFF91EF91BF91AF919F9120
:1020B0008F917F916F915F914F913F912F910F90F1
:1020C0000FBE0F901F9018951F920F920FB60F9290
:1020D00011242F933F934F935F936F937F938F932D
:1020E0009F93AF93BF93CF93EF93FF93C091E9007A
:1020F000CF708091EC001092E9008091F000877F12
:102100008093F00078940E94A0101092E9008091D2
:10211000F00088608093F000C093E900FF91EF9198
:10212000CF91BF91AF919F918F917F916F915F916F
:102130004F913F912F910F900FBE0F901F901895C8
:102140001F93CF93DF93CDB7DEB7AA970FB6F8945E
:10215000DEBF0FBECDBFE4EDF1E08091F1008193D1
:1021600021E0EC3DF207C9F70E94F80B8091E800EE
:1021700083FF1CC12091D4013091D501832F90E0C1
:102180008A30910508F012C1FC01EA5AFF4F0C9405
:102190003528203881F0223809F008C18091D80113
:1021A0008F708093E9008091EB0085FB882780F990
:1021B0001092E90006C08091D0019091D101911157
:1021C00082609091E800977F9093E8008093F100FF
:1021D0001092F100C5C0822F8D7F09F0E7C0222345
:1021E00019F0223061F0E2C08091D601813009F00F
:1021F000DDC0333009F080E08093D10128C08091A8
:10220000D601811124C02091D8012F7009F4CEC0CD
:102210002093E9008091EB0080FF19C08091EB00D2
:10222000333011F4806211C080618093EB0081E053
:1022300090E0022E01C0880F0A94EAF78093EA002A
:102240001092EA008091EB0088608093EB0010927E
:10225000E9008091E800877F86C02111A7C0109116
:10226000D6011F778091E3008078812B8093E30073
:102270008091E800877F8093E8000E94C60E8091DD
:10228000E80080FFFCCF8091E30080688093E3004A
:10229000112311F083E001C082E08093D30186C056
:1022A0002058223008F082C08091D6019091D70149
:1022B0008C3D23E0920779F583E08A838AE2898363
:1022C0004FB7F894DE01139620E03EE051E2E32F91
:1022D000F0E050935700E49120FF03C0E295EF70C7
:1022E0003F5FEF708E2F90E0EA3010F0C79601C08C
:1022F000C0968D939D932F5F243149F74FBF8091F6
:10230000E800877F8093E8006AE270E0CE010196E2
:102310000E94CE0D14C0AE014F5F5F4F6091D80197
:102320000E94160D009709F441C02091E800277F14
:102330002093E800BC0189819A810E942F0E809130
:10234000E8008B778093E80031C0203879F58091E0
:10235000E800877F8093E8008091CF018093F100AF
:102360008091E8008E778093E8000E94C60E1EC020
:1023700021111CC09091D6019230C0F48091E800E8
:10238000877F8093E8009093CF010E94C60E8091D2
:10239000CF01811104C08091E30087FF02C084E077
:1023A00001C081E08093D3010E94E40B8091E8009A
:1023B00083FF0AC08091E800877F8093E8008091C6
:1023C000EB0080628093EB00AA960FB6F894DEBF14
:1023D0000FBECDBFDF91CF911F9108959093610102
:1023E000809360010895E0916001F0916101309760
:1023F00021F00190F081E02D099480E00895FF9292
:102400000F931F93CF93DF938C01E0916001F091C4
:102410006101309799F10280F381E02D0995809157
:10242000BE0182FF2BC080FF04C084E095E00E94C3
:10243000EB05E80188E0F82E0EEF14E08091BE0174
:1024400080FF0BC088811F928F931F930F930E9470
:1024500084060F900F900F900F90FA942196F11030
:10246000EDCF8091BE0180FF09C08CEF94E0DF9139
:10247000CF911F910F91FF900C94EB05DF91CF91BD
:102480001F910F91FF900895E0916001F09161011B
:10249000309721F00480F581E02D09940895CF93C1
:1024A000DF93EC0180915E0190915F01C817D9071D
:1024B00009F1D0935F01C0935E01E0916001F0915A
:1024C00061013097B9F00680F781E02DCE010995C2
:1024D0008091BE0182FF0EC080FF0CC0DF93CF93BE
:1024E0008EEE94E09F938F930E9484060F900F903E
:1024F0000F900F90DF91CF910895CF93DF93EC0170
:1025000080915C0190915D01C817D90709F1D093C2
:102510005D01C0935C01E0916001F0916101309731
:10252000B9F00084F185E02DCE0109958091BE01BE
:1025300082FF0EC080FF0CC0DF93CF938EED94E03E
:102540009F938F930E9484060F900F900F900F908F
:10255000DF91CF9108950C9475130E94361F0E944D
:10256000B0060C94A109CF92DF92EF92FF920F93E5
:102570001F93CF93DF9300D000D000D0CDB7DEB74C
:102580000E94580833E6E32E31E0F32E00E010E01D
:10259000C02E802F0E943E09F701D1907F01D826DE
:1025A000B1F40F5F1F4F0031110591F78FEF898351
:1025B0008A831B820E943F1F8160782F9D838C83BA
:1025C00049815A816B818D810E94C81348C09091C6
:1025D000BE0191FF04C08E830E9492138E8120E081
:1025E00030E04D2D50E0922FBA01022E02C07595B9
:1025F00067950A94E2F760FF2CC02983CA82EE2413
:10260000E394F12C02C0EE0CFF1C9A95E2F790E0E7
:102610008E219F2121E0892B09F420E02B830E9449
:102620003F1F8160782F9D838C8349815A816B8104
:102630008D810E94C81349815A816B817C818D8173
:102640000E94BB1EF801ED59FE4F80818E258083CC
:1026500006C02F5F3F4F2830310529F6A2CF0E94D8
:10266000BA1E0E9482220E948007109162010E947D
:10267000F311181741F10E94F311809362019091B8
:10268000BE0192FF0EC090FF0CC01F928F938FE08F
:1026900095E09F938F930E9484060F900F900F9068
:1026A0000F908091620126960FB6F894DEBF0FBEA0
:1026B000CDBFDF91CF911F910F91FF90EF90DF90F1
:1026C000CF900C94CC1E26960FB6F894DEBF0FBEAA
:1026D000CDBFDF91CF911F910F91FF90EF90DF90D1
:1026E000CF9008950C94440908950895CF93DF93F3
:1026F0001F92CDB7DEB769830E943E09282F30E0D4
:1027000081E090E0698102C0880F991F6A95E2F725
:102710002823392381E0232B09F480E00F90DF91F7
:10272000CF910895EF92FF920F931F93CF93DF9372
:1027300088E295E00E94EB05C0E0D0E089E2E82E57
:1027400081E0F82E0AE115E08C2F0E943E090E94DC
:10275000A81EFF92EF921F928F93DF93CF931F9348
:102760000F930E94840621968DB79EB708960FB6E8
:10277000F8949EBF0FBE8DBFC031D10529F7DF9100
:10278000CF911F910F91FF90EF90089508950895B4
:10279000CF93DF93CDB7DEB72B970FB6F894DEBF9C
:1027A0000FBECDBF4F83588769877A878B878A850D
:1027B0009B85892B31F05F3F11F080E003C04F3FD4
:1027C000E1F781E0811107C04F81588569857A85DD
:1027D0008B850E94BB1EDE01119686E0FD011192E1
:1027E0008A95E9F785E0FE01379601900D928A956A
:1027F000E1F749815A816B817C818D819E810E94A4
:102800007F1B2B960FB6F894DEBF0FBECDBFDF91B6
:10281000CF910895CF93C82F882309F4E7C0823859
:10282000A1F40E94F31181FDE1C089E30E94FC1D27
:102830000E947D1E2FEF81EE94E021508040904059
:10284000E1F700C0000089E315C08338C1F40E949D
:10285000F31180FDCBC083E50E94FC1D0E947D1E0C
:102860002FEF81EE94E0215080409040E1F700C0CE
:10287000000083E50E941D1ECF910C947D1E8438BC
:10288000A1F40E94F31182FDB1C087E40E94FC1DF7
:102890000E947D1E2FEF81EE94E0215080409040F9
:1028A000E1F700C0000087E4E5CF8CEF8C0F813AA0
:1028B00048F48C2F0E94A325811198C08C2F0E9470
:1028C000FC1DDACF80E28C0F883048F4C77081E0BD
:1028D00001C0880FCA95EAF70E94411ECDCF8BE553
:1028E0008C0F833078F4C53A29F0C63A31F482E887
:1028F00090E005C081E890E002C083E890E0CF91CD
:102900000C944F1288E58C0F853108F06FC0C83ADF
:1029100061F1C93A69F1CA3A71F1CB3A79F1CC3A2D
:1029200081F1CD3A89F1CE3A91F1CF3A99F1C13B9B
:10293000A1F1C03BA9F1C23BB1F1C33BB9F1C43B2A
:10294000C1F1C53BC9F1C63BD1F1C73BD9F1C83B89
:10295000E1F1C93BE9F1CA3BF1F1CB3BF9F1CC3BE9
:1029600009F03FC08AE292E03EC082EE90E03BC0B8
:1029700089EE90E038C08AEE90E035C085EB90E0BB
:1029800032C086EB90E02FC083EB90E02CC084EB4C
:1029900090E029C087EB90E026C08CEC90E023C04B
:1029A0008DEC90E020C083E891E01DC08AE891E0C2
:1029B0001AC082E991E017C084E991E014C081E275
:1029C00092E011C083E292E00EC084E292E00BC07C
:1029D00085E292E008C086E292E005C087E292E0DC
:1029E00002C080E090E0CF910C947D12CF910895C9
:1029F000882309F466C08238A1F40E94F31181FF94
:102A000060C089E30E94FC1D0E947D1E2FEF81EEB5
:102A100094E0215080409040E1F700C0000089E33D
:102A200015C08338B9F40E94F31180FF4AC083E5D2
:102A30000E94FC1D0E947D1E2FEF81EE94E021502C
:102A400080409040E1F700C0000083E50E941D1E19
:102A50000C947D1E8438A1F40E94F31182FF31C0D2
:102A600087E40E94FC1D0E947D1E2FEF81EE94E002
:102A7000215080409040E1F700C0000087E4E6CF9D
:102A80009CEF980F913A10F390E2980F983050F421
:102A9000877091E001C0990F8A95EAF7892F0E940B
:102AA000471ED6CF9BE5980F933020F480E090E04E
:102AB0000C944F12885A853120F480E090E00C94F9
:102AC0007D120895882321F00E94411E0C947D1EE2
:102AD0000895882321F00E94471E0C947D1E0895BE
:102AE000CF92DF92EF92FF920F931F93CF93DF93DA
:102AF000CDB7DEB728970FB6F894DEBF0FBECDBFB7
:102B00008C0185E0F801DE01119601900D928A9505
:102B1000E1F7F80140813181F280258122952F7003
:102B200083819481892B31F03F3F31F481E04F3F25
:102B300019F403C081E001C080E080FDE1C2498357
:102B40003A8389819A812F830E94BA1D9E83888748
:102B50000E94B91D0E94E11C4E81E42FE295EF70A6
:102B6000F0E0E05AFF4F2F8168850C943528842FC0
:102B7000807F142F1F70882311F01295107FFF2083
:102B800059F0112309F471C2812F68870E94541EE5
:102B90000E947D1E688569C2862F0E94F814112349
:102BA00009F4AEC2812F0E945A1E28960FB6F894DF
:102BB000DEBF0FBECDBFDF91CF911F910F91FF9070
:102BC000EF90DF90CF900C947D1E842F807F942F08
:102BD0009F70E92E803219F0E29480EFE82266239C
:102BE00019F0613001F129C0FF20A9F08E2D2223B8
:102BF00049F1213039F528960FB6F894DEBF0FBEA3
:102C0000CDBFDF91CF911F910F91FF90EF90DF909B
:102C1000CF900C94641E222319F0213009F470C265
:102C20000E94671E2CC0FF20E9F0263008F068C221
:102C30000E943E1E8E2129F022C0FF20F1F02111BA
:102C400015C08E2D28960FB6F894DEBF0FBECDBFEF
:102C5000DF91CF911F910F91FF90EF90DF90CF9078
:102C60000C946215253008F04BC209C0F80185812B
:102C700080FFFBC18F708583E4CF21110AC28E2DA6
:102C800078C1242F26952695237030E02115310533
:102C900021F021303105C9F033C2FF2021F0862F09
:102CA000942F937002C080E090E028960FB6F894BD
:102CB000DEBF0FBECDBFDF91CF911F910F91FF906F
:102CC000EF90DF90CF900C944F12FF2021F0862FD1
:102CD000942F937002C080E090E028960FB6F8948D
:102CE000DEBF0FBECDBFDF91CF911F910F91FF903F
:102CF000EF90DF90CF900C947D12862FFF2019F07B
:102D00000E94082102C00E94702128960FB6F894F4
:102D1000DEBF0FBECDBFDF91CF911F910F91FF900E
:102D2000EF90DF90CF900C94F521842F837009F001
:102D300076C0F110E5C1262F229526952770220F27
:102D4000220F862F8F70C82ED12CE12CF12C022E51
:102D500004C0CC0CDD1CEE1CFF1C0A94D2F764FFEF
:102D600010C06FE070E080E090E004C0660F771F55
:102D7000881F991F2A95D2F7609570958095909538
:102D800003C060E070E0CB01242F269526952370C8
:102D9000422F50E042305105D1F04330510559F1F6
:102DA0006C297D298E299F294130510541F12896B2
:102DB0000FB6F894DEBF0FBECDBFDF91CF911F914C
:102DC0000F91FF90EF90DF90CF900C94F61C6C2940
:102DD0007D298E299F2928960FB6F894DEBF0FBE55
:102DE000CDBFDF91CF911F910F91FF90EF90DF90BA
:102DF000CF900C94081D0E94F61CC701B6012896BE
:102E00000FB6F894DEBF0FBECDBFDF91CF911F91FB
:102E10000F91FF90EF90DF90CF900C94E41CFF2077
:102E200019F0842F817001C08695882309F468C148
:102E3000262F229526952770220F220F862F8F701E
:102E4000C82ED12CE12CF12C022E04C0CC0CDD1CA0
:102E5000EE1CFF1C0A94D2F764FF10C06FE070E014
:102E600080E090E004C0660F771F881F991F2A95A5
:102E7000D2F7609570958095909503C060E070E002
:102E8000CB01242F269526952370422F50E0423007
:102E90005105D1F04330510559F16C297D298E2916
:102EA0009F294130510541F128960FB6F894DEBFB5
:102EB0000FBECDBFDF91CF911F910F91FF90EF908B
:102EC000DF90CF900C94951D6C297D298E299F2928
:102ED00028960FB6F894DEBF0FBECDBFDF91CF911D
:102EE0001F910F91FF90EF90DF90CF900C94A71D52
:102EF0000E94951DC701B60128960FB6F894DEBF53
:102F00000FBECDBFDF91CF911F910F91FF90EF903A
:102F1000DF90CF900C94831D603FD9F128F480E4BA
:102F2000860F803250F09CC0623F09F461C008F403
:102F30004BC0633F09F470C093C0162F1071842FEB
:102F40008F716887FF2059F00E942E1D6885862F9B
:102F5000112319F08295807F75CE8F7073CE0E94F9
:102F6000491D6885862F112319F08295807F01C045
:102F70008F7028960FB6F894DEBF0FBECDBFDF91DD
:102F8000CF911F910F91FF90EF90DF90CF900C9415
:102F90006915FF20A9F0253008F0B2C0842F8F7189
:102FA00028960FB6F894DEBF0FBECDBFDF91CF914C
:102FB0001F910F91FF90EF90DF90CF900C94681DC0
:102FC000263008F09DC0EACFFF20A1F0842F8F713A
:102FD00028960FB6F894DEBF0FBECDBFDF91CF911C
:102FE0001F910F91FF90EF90DF90CF900C942E1DCA
:102FF000FF2061F3842F8F7128960FB6F894DEBFFF
:103000000FBECDBFDF91CF911F910F91FF90EF9039
:10301000DF90CF900C94491DFF2091F0842F8F7189
:1030200028960FB6F894DEBF0FBECDBFDF91CF91CB
:103030001F910F91FF90EF90DF90CF900C941F1D88
:1030400028960FB6F894DEBF0FBECDBFDF91CF91AB
:103050001F910F91FF90EF90DF90CF900C941A1D6D
:10306000FF20A1F0222309F4B1CF862F28960FB6B6
:10307000F894DEBF0FBECDBFDF91CF911F910F91AE
:10308000FF90EF90DF90CF900C940A14222309F464
:10309000B1CF862F28960FB6F894DEBF0FBECDBFF6
:1030A000DF91CF911F910F91FF90EF90DF90CF9024
:1030B0000C94F8144F70C8010E94C81F28960FB6D0
:1030C000F894DEBF0FBECDBFDF91CF911F910F915E
:1030D000FF90EF90DF90CF900C942C1C4F70C801A4
:1030E00028960FB6F894DEBF0FBECDBFDF91CF910B
:1030F0001F910F91FF90EF90DF90CF900C94CB1F1A
:1031000028960FB6F894DEBF0FBECDBFDF91CF91EA
:103110001F910F91FF90EF90DF90CF9008950E9444
:10312000611E0E94301E0E947D1E0E9423230E9469
:10313000F52180E090E00E944F1280E090E00C9436
:103140007D120E94511E0C948F180E94BA1D292FC7
:1031500022952F7030E02C3031054CF42A303105A7
:10316000C4F4225031092230310540F021C02C3006
:103170003105D1F02F303105B9F01AC0853A28F465
:103180008430C0F4823028F415C090E2980F983053
:1031900088F0883E30F4803E68F48450813A40F4F0
:1031A00009C0803F29F406C093FB882780F9089561
:1031B00080E0089581E00895CF93DF9300D000D0A0
:1031C0001F92CDB7DEB70F900F900F900F900F901A
:1031D000DF91CF910895CF93DF9300D000D000D03E
:1031E000CDB7DEB726960FB6F894DEBF0FBECDBFC3
:1031F000DF91CF9108951F93CF93DF93C091730117
:1032000016E080917401C81799F0D0E01C9FF0017E
:103210001D9FF00D1124EB58FE4F408151816281BA
:103220007381848195810E94EB182196C770E9CF44
:10323000DF91CF911F9108954091A5015091A60172
:103240006091A7017091A8018091A9019091AA01B4
:103250000C94EB18CF938091AA0182958F7009F09E
:103260005FC08091A701882309F45AC0209173019F
:10327000A09174016091A5017091A6018091A801AF
:103280009091A90131E06F3F09F030E0B32FC6E023
:103290002A1709F445C0009721F07F3F21F44B2FF6
:1032A00003C041E001C040E030E040FD35C0C29FB6
:1032B000F001C39FF00D1124EB58FE4F41817413B0
:1032C0002BC04081641328C04281411125C0438135
:1032D00054814817590710F441505109481B590BA4
:1032E000483C5105C8F48091AA018F708061809399
:1032F000AA0186E0829FF001839FF00D1124E65819
:10330000FE4F80818F708061808385EA91E00E940A
:103310007015CF910C94FB182F5F3F4F2770B8CFDB
:10332000CF910895CF92DF92EF92FF920F931F9368
:10333000CF93DF93CDB7DEB762970FB6F894DEBFB9
:103340000FBECDBF8C0185E0F801DE011D96019016
:103350000D928A95E1F7D8014C9111965C911197E5
:1033600012966C9112971396ED90FC9014977091B1
:10337000A501E091A6012091A8013091A901211594
:10338000310531F0EF3F31F481E07F3F19F403C0A4
:1033900081E001C080E0B82FB170CB2E80FD6CC100
:1033A000D090A701DD2009F4F5C0F091AA01E21642
:1033B000F30638F0C701821B930B883C910548F057
:1033C0009BC0209530952E0D3F1D283C310508F0FF
:1033D00093C08F2F807F09F052C0E51314C074137F
:1033E00012C0D62E61110FC0FF70F061F093AA01D8
:1033F0000E941C1985EA91E00E9470158091AA0133
:10340000F80185836CC1EF2831F05F3F31F481E032
:103410004F3F19F403C081E001C080E080FD03C08C
:1034200081E0862701C080E0F82FF170FF2E80FF39
:103430001CC0809173012091740136E0821709F459
:1034400028C190E0389FF001399FF00D1124EB580E
:10345000FE4F7181571306C07081471303C07281FC
:10346000671303C001968770E9CFD62E662309F44F
:1034700036C18091AA0181608093AA0153C0E513EF
:1034800008C0741306C0611104C0D8011596FC93DE
:10349000AEC04D875E878D859E856A8B0E94A5187C
:1034A0006A89882329F1D62E662311F12091AA0179
:1034B000822F82958F7090E002970CF460C080910B
:1034C000A5019091A60198878F831986FB86EA86CD
:1034D0002C87CE01079651C0E51731F14D875E87E5
:1034E0008D859E856A8B0E94A5186A8981112EC0E0
:1034F000C8010E947015A4C08F2F807F69F77E2DB0
:10350000F98AE88A89890E94DC1885EA91E00E949C
:103510007015E5EAF1E086E0DF011D928A95E9F792
:103520000E941C19D12CDBC07413D8CF6111D6CFE7
:10353000D8011596FC93C8010E947015E5EAF1E0E8
:1035400086E0DF011D928A95E9F7C9C0D62E662371
:1035500079F22091AA01822F82958F7090E00297D4
:1035600074F08091A5019091A6019A8389831B82B2
:10357000FD82EC822E83CE0101960E94701586E0BA
:10358000F801A5EAB1E001900D928A95E1F70E9459
:103590002A196FC0E216F30628F0C701821B930BAD
:1035A0009C0104C0209530952E0D3F1D283C31050F
:1035B00008F052C0D62E662309F49ACFE5132CC02A
:1035C00074132AC08091AA0180FD1DC0982F929586
:1035D0009F70C9F0D80115968C9315979F3039F0DC
:1035E0009F5F9295907F8F70892B15968C93C80161
:1035F0000E94701586E0F801A5EAB1E001900D92F5
:103600008A95E1F736C086E0F801A5EAB1E00190BD
:103610000D928A95E1F763C04D875E878D859E8503
:103620000E94A518882379F086E0F801A5EAB1E0A8
:1036300001900D928A95E1F70E942A190E941C19A7
:10364000DD24D3944CC08091AA0181608093AA01AB
:10365000C8010E94701543C07E2DF98AE88A8989C5
:103660000E94DC18E5EAF1E086E0DF011D928A9510
:10367000E9F70E941C1933C0662309F439CF4D873E
:103680005E878D859E850E94A518882309F430CF1A
:10369000CBCF4D875E878D859E850E94BA1D292FD1
:1036A00022952F7030E0223031052CF49F7041F0CC
:1036B000811106C00CC0243031052CF49F7049F4F0
:1036C000805E883020F0C8010E947015CF2CDC2C61
:1036D00006C0D80115969C91907F91F7F8CF8D2D5B
:1036E00062960FB6F894DEBF0FBECDBFDF91CF91CB
:1036F0001F910F91FF90EF90DF90CF9008951F934F
:10370000CF93DF93CDB7DEB72C970FB6F894DEBF1B
:103710000FBECDBF4F83588769877A878B879C8779
:10372000CE0107960E9492198823C1F02F81388517
:103730008A859B85892B31F03F3F11F080E003C0E3
:103740002F3FE1F781E0811147C04F81588569859E
:103750007A858B859C850E94EB183EC086E0FE0131
:103760003796DE01119601900D928A95E1F7FF815F
:10377000E8854A855B854115510531F0EF3F31F40D
:1037800081E0FF3F19F403C081E001C080E080FDCB
:1037900023C02091740130E0C901019687709927F8
:1037A0006091730170E086179707F1F1F983EA835E
:1037B0005D834C8396E0929FD001939FB00D1124BE
:1037C000AB58BE4FFE01319601900D929A95E1F7EC
:1037D000809374010E94FB1816E080917301909110
:1037E0007401891779F1189FC00111248B589E4FDD
:1037F0000E949219882331F1E09173011E9FF0011C
:103800001124EB58FE4F4081518162817381848184
:1038100095810E94EB188091730190E0019687706A
:10382000992780937301D9CF0E94A1181092740137
:1038300010927301E5EAF1E086E0DF011D928A95BE
:10384000E9F7CACF2C960FB6F894DEBF0FBECDBFF6
:10385000DF91CF911F910895DF92EF92FF920F9326
:103860001F93CF93DF93FC01009709F48AC0E12CEA
:10387000F12CDD24D394EF0121968491853709F44E
:1038800061C058F4843708F04EC0843008F06AC034
:103890008130D1F0823071F174C0883709F45DC095
:1038A00050F4863709F455C0873709F06AC08E2D69
:1038B0000E944E1E54C09CE7980F903708F061C0DC
:1038C0008F770E94F81450C08F010E5F1F4FFE01CA
:1038D000849190E2980F983050F48770FD2D01C0CC
:1038E000FF0F8A95EAF78F2F0E94541E15C00E9481
:1038F0000A1414C08F010E5F1F4FFE01849190E2E5
:10390000980F983068F48770FD2D01C0FF0F8A95DD
:10391000EAF78F2F0E945A1E0E947D1EE80124C0E4
:103920000E94F814FBCF9F012E5F3F4FFE01C49110
:10393000CC2369F08FE99FE00197F1F700C0000008
:10394000C150F6CF9F012E5F3F4FFE01F490E90179
:103950000BC00E943E1EE82E07C00E94511E0E940E
:103960007D1E02C00E940A149F2D992341F0EFE9A9
:10397000FFE03197F1F700C000009150F6CFFE0153
:103980007ACFDF91CF911F910F91FF90EF90DF9051
:1039900008956093AF017093B0018093B10190934B
:1039A000B2010E94CA1E0C948F186093AB017093F1
:1039B000AC018093AD019093AE010E94CB1E0C949C
:1039C0008F1808950C94C91C0F931F930091AF0199
:1039D0001091B0012091B1013091B201602B712B97
:1039E000822B932B1F910F910C94C91C0F931F9343
:1039F0000091AF011091B0012091B1013091B2015D
:103A000060237123822393231F910F910C94C91C6F
:103A10000F931F930091AF011091B0012091B1015C
:103A20003091B20160277127822793271F910F9150
:103A30000C94C91C60E070E0CB010C94D51C41E0F3
:103A400050E060E070E004C0440F551F661F771F10
:103A50008A95D2F7CB01BA010C94D51C41E050E015
:103A600060E070E004C0440F551F661F771F8A9501
:103A7000D2F78091AB019091AC01A091AD01B091D2
:103A8000AE01482B592B6A2B7B2BCB01BA010C942E
:103A9000D51C41E050E060E070E004C0440F551FC9
:103AA000661F771F8A95D2F740955095609570955F
:103AB0008091AB019091AC01A091AD01B091AE01AC
:103AC000482359236A237B23CB01BA010C94D51CCC
:103AD00041E050E060E070E004C0440F551F661FF5
:103AE000771F8A95D2F78091AB019091AC01A0919C
:103AF000AD01B091AE01482759276A277B27CB013A
:103B0000BA010C94D51C0F931F930091AB01109137
:103B1000AC012091AD013091AE01602B712B822B55
:103B2000932B1F910F910C94D51C0F931F93009111
:103B3000AB011091AC012091AD013091AE01602339
:103B40007123822393231F910F910C94D51C0F9303
:103B50001F930091AB011091AC012091AD01309108
:103B6000AE0160277127822793271F910F910C9434
:103B7000D51C0895CF92DF92EF92FF920F931F937F
:103B8000CF93DF93EC01C090AF01D090B001E090F3
:103B9000B101F090B2018091AB019091AC01A09184
:103BA000AD01B091AE01C82AD92AEA2AFB2A0FE159
:103BB00010E0B701A601002E04C0769567955795D1
:103BC00047950A94D2F740FF07C0BE01802F0E949C
:103BD000E71F8130910539F40150110950F7BE01FA
:103BE00080E00E94E71FDF91CF911F910F91FF901E
:103BF000EF90DF90CF90089540910D0150910E010C
:103C000020E030E09FEFFA01E20FF31F62816817B6
:103C100099F09F3F19F4611101C0922F2F5F3F4F20
:103C20002630310581F79F3F39F0FA01E90FF11D88
:103C300097FDFA9582830895089540910D01509162
:103C40000E0120E030E0FA01E20FF31F9281981399
:103C500001C012822F5F3F4F26303105A1F7089532
:103C600081E090E0E0910D01F0910E01E80FF91F65
:103C70001082019688309105A9F708958091BD01C1
:103C800008959091BD01982B9093BD010895809562
:103C90009091BD0198239093BD0108958093BD013B
:103CA00008951092BD0108959091BC01982B9093B6
:103CB000BC01089580959091BC0198239093BC011C
:103CC00008951092BC0108958093B3010895109255
:103CD000B301089540910D0150910E0120E030E0B4
:103CE00080E0FA01E20FF31F918191118F5F2F5F46
:103CF0003F4F27303105A9F70895E0910D01F0916C
:103D00000E018091BD018083E0910D01F0910E01C3
:103D100080819091BC01892B80839091B30199237C
:103D200061F0E0910D01F0910E018081892B80837B
:103D30000E946A1E81111092B30180910D01909131
:103D40000E010C94FF119093350180933401089576
:103D50008295982F9C7C96959695837344E0849FDA
:103D600090011124922B892F8A7A86959575990F47
:103D7000892B08950895CF93DF9300D000D01F9230
:103D8000CDB7DEB70F900F900F900F900F90DF918F
:103D9000CF910895089508950C9472138091D301E2
:103DA000843009F11092BF0120E488E190E00FB661
:103DB000F894A895809360000FBE2093600083B7AD
:103DC000817F846083BF83B7816083BF7894889547
:103DD00083B78E7F83BF88E10FB6F894809360002D
:103DE000109260000FBE0895CF930E94C6130E94E8
:103DF00058080E94C713C0E08C2F0E943E09811111
:103E000005C0CF5FC031C1F780E001C081E0CF9134
:103E100008950E9474130C94A1181F920F920FB66C
:103E20000F9211248F939F93AF93BF938091BF0103
:103E3000811113C08091C0019091C101A091C20174
:103E4000B091C3014196A11DB11D8093C001909313
:103E5000C101A093C201B093C301BF91AF919F91E3
:103E60008F910F900FBE0F901F90189582E084BD28
:103E700093E095BD9AEF97BD80936E0008952FB79C
:103E8000F8948091C0019091C101A091C201B091BC
:103E9000C3012FBF08952FB7F8946091C0017091AE
:103EA000C1018091C2019091C3012FBF0895CF92AB
:103EB000DF92EF92FF920F931F932FB7F8944091E8
:103EC000C0015091C1016091C2017091C3012FBF27
:103ED0006A017B01EE24FF248C0120E030E0C01653
:103EE000D106E206F30610F441505109481B590B64
:103EF000CA011F910F91FF90EF90DF90CF9008952E
:103F00001F920F920FB60F9211248F939F93AF932E
:103F1000BF938091C0019091C101A091C201B09165
:103F2000C3010196A11DB11D8093C0019093C101F1
:103F3000A093C201B093C301BF91AF919F918F91A4
:103F40000F900FBE0F901F9018950E94170FF894B6
:103F50002FEF87EA91E6215080409040E1F700C0C2
:103F6000000087E090EBDC018093DC019093DD01A1
:103F7000A093DE01B093DF012CE088E190E00FB662
:103F8000F894A895809360000FBE20936000FFCF47
:103F900080E090E008950895E72FF0E090E1899F98
:103FA000E00DF11D112483E0EE0FFF1F8A95E1F76C
:103FB000E60FF11DEC51FF4F84910895E82FF0E0DA
:103FC000EE0FFF1FE05AF0408591949108950E94F2
:103FD000CC1F90E4980F903218F40E94DE1F0895D1
:103FE0008D3B60F4883AA0F5853A38F5843010F5B9
:103FF000813009F088C021E030E087C0883E98F425
:10400000803EC0F48F3B09F07EC00E94A1182FEFC4
:1040100080E792E0215080409040E1F700C000002E
:104020000E94A51F70C0803F08F46DC0282F30E0AB
:1040300030656BC0282F30E068C0853A21F0863AA1
:1040400021F492E803C091E801C093E880E458C0ED
:10405000883A51F1893A51F18A3A51F18B3A51F14A
:104060008C3A51F18D3A51F18E3A51F18F3A51F12A
:10407000813B51F1803B51F1823B51F1833B51F146
:10408000843B51F1853B51F1863B59F1873B59F116
:10409000883B59F1893B59F18A3B59F18B3B59F1E6
:1040A0008C3B61F59AE228C092EE29C099EE27C0B8
:1040B0009AEE25C095EB23C096EB21C093EB1FC071
:1040C00094EB1DC097EB1BC09CEC19C09DEC17C076
:1040D00093E805C09AE803C092E901C094E985E439
:1040E0000FC091E209C093E207C094E205C095E2D7
:1040F00003C096E201C097E286E402C090E084E447
:10410000292F382F02C020E030E0C90108958091A6
:10411000C60180FF0BC06091120185E0689FB0016D
:10412000112475956795759567952AC081FF09C01B
:104130006091120185E0689FB00111247595679523
:104140001FC082FF07C06091120185E0689FB00127
:10415000112416C04091C7014423C9F06091110198
:10416000461788F72091120185E0289F90011124BD
:10417000429FC001439F900D112470E00E942128AE
:104180006038710540F46115710539F002C065E0D1
:1041900070E0862F08958FE7089581E0089580915B
:1041A000C60180FF08C06091100170E075956795A9
:1041B0007595679521C081FF06C06091100170E080
:1041C0007595679519C082FF04C06091100170E079
:1041D00010C08091C7018823C1F060910F0186173C
:1041E000A0F790911001989FC001112470E00E94E7
:1041F00021286038710528F46115710521F0862F9A
:1042000008958FE7089581E0089561E070E0F4CFAC
:10421000803F21F40E948720819504C0813F29F4CA
:104220000E9487208093CA010895823F21F40E9452
:104230008720819504C0833F29F40E9487208093C2
:10424000C9010895893F19F40E94CF2005C08A3F13
:1042500031F40E94CF2081958093CB0108958B3F4C
:1042600021F40E94CF20819504C08C3F29F40E9444
:10427000CF208093CC010895843F21F48091C80120
:10428000816017C0853F21F48091C801826011C010
:10429000863F21F48091C80184600BC0873F21F4E0
:1042A0008091C801886005C0883F31F48091C801C1
:1042B00080618093C80108958D3F21F48091C601EB
:1042C00081600BC08E3F21F48091C601826005C0E1
:1042D0008F3F29F48091C60184608093C6010895C0
:1042E000803F39F48091CA0187FF6CC01092CA01E7
:1042F00069C0813F29F48091CA011816BCF362C0DD
:104300009091C901823F29F497FF5CC01092C901C6
:1043100059C0833F19F41916CCF354C0893F41F4B6
:104320008091CB0118160CF04DC01092CB014AC001
:104330008A3F29F48091CB0187FF44C0F6CF8B3FA1
:1043400039F48091CC0187FF3DC01092CC013AC076
:104350008C3F29F48091CC011816BCF333C0843F04
:1043600021F48091C8018E7F17C0853F21F4809190
:10437000C8018D7F11C0863F21F48091C8018B7FD9
:104380000BC0873F21F48091C801877F05C0883F1B
:1043900031F48091C8018F7E8093C80113C08D3F96
:1043A00021F48091C6018E7F0BC08E3F21F4809155
:1043B000C6018D7F05C08F3F29F48091C6018B7F98
:1043C0008093C6018091C90181110EC08091CA01FC
:1043D00081110AC08091CB01811106C08091CC016E
:1043E000811102C01092C70108958091BE0183FF20
:1043F0007EC08DE595E00E94EB058091C8011F927B
:104400008F9388E595E09F938F930E94840686E5BD
:1044100095E00E94EB052091C901822F992787FD25
:1044200090959F932F9383E595E09F938F930E94A0
:10443000840681E595E00E94EB052091CA01822F58
:10444000992787FD90959F932F938EE495E09F93F6
:104450008F930E9484068CE495E00E94EB052091E6
:10446000CB01822F992787FD90959F932F9389E405
:1044700095E09F938F930E94840687E495E00E94C5
:10448000EB052091CC01822F992787FD90959F9372
:104490002F9384E495E09F938F930E94840681E498
:1044A00095E00E94EB058091C7011F928F938EE3E8
:1044B00095E09F938F930E9484068CE395E00E9481
:1044C000EB058091C6011F928F9389E395E09F933E
:1044D0008F930E94840686E395E00E94EB058DB7DA
:1044E0009EB74C960FB6F8949EBF0FBE8DBF88EC5A
:1044F00091E00E9444120E943F1F9093C501809357
:10450000C40108951F93CF93DF938091C4019091CC
:10451000C5010E94571F4091C701442321F02091FB
:10452000130130E006C0209114015AE0259F90014C
:1045300011248217930708F482C08091C901109159
:10454000CA01D091CB01C091CC01811107C01111DA
:1045500005C0D11103C0CC2309F471C04F3F19F03D
:104560004F5F4093C701181624F40E948720809360
:10457000C9018091C90187FF05C00E9487208195EC
:104580008093C901111624F40E9487208093CA01E8
:104590008091CA0187FF05C00E9487208195809382
:1045A000CA016091C901662339F11091CA01112332
:1045B00019F1772767FD7095872F972F0E9426277F
:1045C00023E333E343E35FE30E948A270E94F32659
:1045D0006093C901612F772767FD7095872F972F0B
:1045E0000E94262723E333E343E35FE30E948A2705
:1045F0000E94F3266093CA011D1624F40E94CF2066
:104600008093CB018091CB0187FF05C00E94CF2012
:1046100081958093CB011C1624F40E94CF208093B7
:10462000CC018091CC0187FF05C00E94CF208195ED
:104630008093CC01DF91CF911F910C94F521DF91F4
:10464000CF911F910895E8ECF1E085E0DF011D9224
:104650008A95E9F71092C7011092C601089580E883
:1046600097E00E94EB051F9281E08F931F9285E0F7
:104670008F9382E397E09F938F930E9484060F901D
:104680000F900F900F900F900F9008958330E9F1E5
:1046900028F4813061F0823009F10895853009F401
:1046A00062C008F449C0863009F474C008952091AE
:1046B0001401862F90E0820F911D8F3F910520F409
:1046C000620F6093140103C08FEF809314018091F7
:1046D00014011F928F938BE696E072C02091130114
:1046E000862F90E0820F911D8F3F910520F4620F7D
:1046F0006093130103C08FEF809313018091130126
:104700001F928F9389E596E05BC020911201862F5E
:1047100090E0820F911D8F3F910520F4620F60930E
:10472000120103C08FEF80931201809112011F923A
:104730008F9386E496E044C020911101862F90E08B
:10474000820F911D8F3F910520F4620F609311013C
:1047500003C08FEF80931101809111011F928F93FD
:1047600081E396E02DC020911001862F90E0820F0A
:10477000911D8F3F910520F4620F6093100103C0DB
:104780008FEF80931001809110011F928F9388E129
:1047900096E016C020910F01862F90E0820F911DA8
:1047A0008F3F910520F4620F60930F0103C08FEFDC
:1047B00080930F0180910F011F928F938DEF95E0F1
:1047C0009F938F930E9484060F900F900F900F90ED
:1047D0000895833081F128F4813059F08230D1F08E
:1047E0000895853009F449C0B8F1863009F456C0FF
:1047F000089580911401681720F4861B809314019A
:1048000002C010921401809114011F928F938EEEBA
:1048100095E054C080911301681720F4861B8093A3
:10482000130102C010921301809113011F928F9304
:104830008CED95E043C080911201681720F4861B2F
:104840008093120102C010921201809112011F92F6
:104850008F9389EC95E032C080911101681720F4A4
:10486000861B8093110102C01092110180911101E9
:104870001F928F9384EB95E021C0809110016817FF
:1048800020F4861B8093100102C0109210018091C9
:1048900010011F928F938BE995E010C080910F015A
:1048A000681720F4861B80930F0102C010920F013D
:1048B00080910F011F928F9380E895E09F938F93D3
:1048C0000E9484060F900F900F900F900895CF9341
:1048D000C82F1F928F9325E838E03F932F930E94B3
:1048E000840661E070E080E090E004C0660F771F0E
:1048F000881F991FCA95D2F70E94E21C0F900F9053
:104900000F900F90CF910C94A118CF93873288F518
:104910008E3108F008C18E3009F486C0D8F4873093
:1049200009F460C08B3009F44FC0863009F0FFC035
:104930008091BE01817F8E7F8093BE018AE898E0DE
:104940000E94EB058EE29BE00E94EB0581E08093E4
:10495000CE0146C0863109F4ADC020F4803109F49F
:1049600078C0E5C0893109F48EC08B3109F449C0A3
:10497000DEC0883349F150F4893209F4D2C085335E
:1049800009F4CFC0873209F0D2C0CBC0833409F418
:10499000C8C028F48A3308F4CAC08953C5C0883413
:1049A00009F0C5C00E94A1188DE19BE00E94EB05B3
:1049B0002FEF83ED90E3215080409040E1F700C05D
:1049C00000000E94A51F0CC081EB98E03FC084E06E
:1049D0009BE00E94EB058091BE0181608093BE0147
:1049E000C1E0AAC08091BE01C82FC17080FFEFCF87
:1049F00080E19BE00E94EB058091BE01817F8E7F6C
:104A00003CC08091BE0181FBCC27C0F991E0C92751
:104A1000C0FB81F98093BE01CC2319F087EF9AE0A7
:104A200027C089EE9AE012C08091BE0182FBCC279C
:104A3000C0F991E0C927C0FB82F98093BE01CC2365
:104A400019F08AED9AE014C08AEC9AE00E94EB0516
:104A5000C7CF8091BE0183FBCC27C0F991E0C92765
:104A6000C0FB83F98093BE01CC2351F08EEB9AE01A
:104A70000E94EB058091BE0181608093BE015CC005
:104A800081EB9AE0E3CF82EA9AE00E94EB058FE7A0
:104A90009AE00E94EB058AE39AE00E94EB0583E12D
:104AA0009AE00E94EB058DED99E00E94EB058FEAFC
:104AB00099E0CCCF81EA99E00E94EB050E94F311C6
:104AC0001F928F9387E899E09F938F930E948406AB
:104AD00080910C011F928F9380E799E09F938F93B1
:104AE0000E94840680915B011F928F938DE599E06F
:104AF0009F938F930E9484060E944B1F9F938F93D6
:104B00007F936F9386E499E09F938F930E9484062E
:104B10008DB79EB742960FB6F8949EBF0FBE8DBF5D
:104B20005FCF80E001C08D510E94672459CF84E49B
:104B300099E00E94EB05C0E08C2FCF91089580E0B2
:104B4000089580E00895CF93C82F8091CE018130E1
:104B500069F020F0823009F446C03DC167E08FE083
:104B60000E947613882309F43CC106C067E08FE0F9
:104B70000E947613882349F08C2F0E949F25811173
:104B80002FC08C2F0E9485242CC08C2F0E94A12521
:104B9000811126C0C431E1F070F4CB3081F0C03116
:104BA000D1F40E942F238DE798E00E94EB0582E06C
:104BB0008093CE0115C0C93259F0C83361F48AE838
:104BC00098E00E94EB0581E898E00E94EB0508C0A0
:104BD0001092CE0104C18BE798E00E94EB05FFC064
:104BE00081E08170FEC0C43228F5CE3108F0C1C02A
:104BF000CB30A1F1D0F4C73009F0D3C08EE180935F
:104C0000140182E3809313018AE08093120184E10E
:104C10008093110188E08093100188E280930F0156
:104C200081E297E00E94EB05BFC0C33149F1C43176
:104C3000C1F0B7C0CB3409F4A9C028F4C93289F057
:104C4000C83361F0AEC0C13509F49EC0C23509F465
:104C500099C0CE3409F0A5C06AE09EC00E942F23FF
:104C6000A3C08091CD01882319F01092CD019CC082
:104C70008EE297E00E94EB0581E08093CE01B1C007
:104C800088E097E00E94EB0586EF96E00E94EB0536
:104C9000809114011F928F9383EF96E09F938F93DF
:104CA0000E94840681EF96E00E94EB058FED96E06E
:104CB0000E94EB05809113011F928F938CED96E07B
:104CC0009F938F930E9484068AED96E00E94EB05E5
:104CD0008BEC96E00E94EB05809112011F928F935E
:104CE00088EC96E09F938F930E94840686EC96E072
:104CF0000E94EB0585EB96E00E94EB058091110187
:104D00001F928F9382EB96E09F938F930E9484066D
:104D100080EB96E00E94EB058BE996E00E94EB05A4
:104D2000809110011F928F9388E996E09F938F9353
:104D30000E94840686E996E00E94EB058FE796E0E4
:104D40000E94EB0580910F011F928F938CE796E0F4
:104D50009F938F930E9484068AE796E00E94EB055A
:104D60008DB79EB748960FB6F8949EBF0FBE8DBF05
:104D70001BC0CE51EC2FF0E0E65DFE4F80818093AA
:104D8000CD0112C061E003C061E006C06AE080911D
:104D9000CD010E94462308C08091CD010E94E923E5
:104DA00003C08FE197E013C08091CD01882369F0A3
:104DB0001F928F9389E197E09F938F930E948406BF
:104DC0000F900F900F900F9004C086E197E00E9423
:104DD000EB0581E006C01092CE0180E002C080E0C9
:104DE00000CFCF91089504D06894B1118DC008957B
:104DF00070D088F09F5790F0B92F9927B751A0F045
:104E0000D1F0660F771F881F991F1AF0BA95C9F75E
:104E100012C0B13081F077D0B1E0089574C0672F2F
:104E2000782F8827B85F39F0B93FCCF3869577950E
:104E30006795B395D9F73EF49095809570956195F7
:104E40007F4F8F4F9F4F0895E89409C097FB3EF422
:104E500090958095709561957F4F8F4F9F4F9923C7
:104E6000A9F0F92F96E9BB279395F6958795779545
:104E70006795B795F111F8CFFAF4BB0F11F460FF05
:104E80001BC06F5F7F4F8F4F9F4F16C0882311F05D
:104E900096E911C0772321F09EE8872F762F05C071
:104EA000662371F096E8862F70E060E02AF09A950C
:104EB000660F771F881FDAF7880F9695879597F901
:104EC000089557FD9058440F551F59F05F3F71F0FA
:104ED0004795880F97FB991F61F09F3F79F0879561
:104EE0000895121613061406551FF2CF4695F1DFEA
:104EF00008C0161617061806991FF1CF869571057A
:104F0000610508940895E894BB2766277727CB01AD
:104F100097F908950BD078C069D028F06ED018F0BA
:104F2000952309F05AC05FC01124EECFCADFA0F369
:104F3000959FD1F3950F50E0551F629FF001729F2E
:104F4000BB27F00DB11D639FAA27F00DB11DAA1F4D
:104F5000649F6627B00DA11D661F829F2227B00D9A
:104F6000A11D621F739FB00DA11D621F839FA00D25
:104F7000611D221F749F3327A00D611D231F849F75
:104F8000600D211D822F762F6A2F11249F575040CC
:104F90008AF0E1F088234AF0EE0FFF1FBB1F661F67
:104FA000771F881F91505040A9F79E3F510570F020
:104FB00014C0AACF5F3FECF3983EDCF3869577955B
:104FC0006795B795F795E7959F5FC1F7FE2B880F1B
:104FD000911D9695879597F9089597F99F6780E8B1
:104FE00070E060E008959FEF80EC089500240A943B
:104FF0001616170618060906089500240A941216B4
:105000001306140605060895092E0394000C11F4E6
:10501000882352F0BB0F40F4BF2B11F460FF04C093
:105020006F5F7F4F8F4F9F4F0895991B79E004C0AA
:10503000991F961708F0961B881F7A95C9F78095D7
:10504000089597FB072E16F4009407D077FD09D03A
:105050000E943B2807FC05D03EF4909581959F4F18
:105060000895709561957F4F0895EE0FFF1F05908D
:10507000F491E02D0994AA1BBB1B51E107C0AA1FA4
:10508000BB1FA617B70710F0A61BB70B881F991FE9
:105090005A95A9F780959095BC01CD010895F89493
:0250A000FFCF40
:1050A200FFFF680A590B360B020BCF0A01B4012825
:1050B20008140A321E404D36229E0451041B04F984
:1050C2000385039E03B703D0030001020304050610
:0450D20007080900C2
:00000001FF

Offline Tactile

  • Posts: 1371
  • Location: Portland, OR
Re: ADB to USB keyboard converter
« Reply #703 on: Thu, 06 April 2017, 13:10:17 »
Hi All,

I'm following this handy little guide to convert the Apple Extended Keyboard II to USB:
http://ifixit.org/blog/4468/hack-it-better-apple-extended-keyboard-ii/

I followed all of the instructions to the letter but I have a problem. The Teensy 2 powers on when plugged as does the Keyboard Num Lock, Caps Lock and Scroll Lock LEDs. The Teensy' LED is on constantly but flashes every 10 seconds. When it flashes the mouse pointer on the screen moves about an inch to the right.

I'm still a bit new to micro controllers and Hex Code so I can't debug the issue myself, to my eyes it seems all good. I've included the code used and my wiring.

Any advice is much appreciated!

Thanks!

http://imgur.com/a/omVjP

Code: [Select]
:100000000C9499050C94DD050C94DD050C94DD052C
:100010000C94DD050C94DD050C94DD050C94DD05D8
:100020000C94DD050C94DD050C94920F0C94641077
:100030000C940D1F0C94DD050C94DD050C94DD056E
:100040000C94DD050C94DD050C94DD050C94DD05A8
:100050000C94DD050C94801F0C94DD050C94DD05DB
:100060000C94DD050C94DD050C94DD050C94DD0588
:100070000C94DD050C94DD050C94DD050C94DD0578
:100080000C94DD050C94DD050C94DD050C94DD0568
:100090000C94DD050C94DD050C94DD050C94DD0558
:1000A0000C94DD050C94DD050C94DD05C910EB10F6
:1000B000D611EB10D6112D115011D611A511B81172
:1000C000B715B715E515E51541167D16801880188A
:1000D000951680188C178C175A18801880186E186F
:1000E00035A131A1041607090B0A1D1B0619640569
:1000F000141A08151C171E1F202123222E26242D1A
:1001000025273012182F0C13280F0D340E33C1364B
:10011000381110372B2CC02A5829E0E3E182E25035
:100120004F5152006C6365556D570053A9AAA854EE
:100130005800566D6E2E62595A5B5C5D5E5F6F6053
:10014000618987853E3F403C4142914490466B47E0
:10015000004365450048494A4B4C3D4D3B4E3AE50E
:10016000E6E40000AAA9A8090B0A1D1B06196405EC
:10017000141A08151C173A3B3C3D3F3E454240448B
:100180004143494718524648284B0D4F4A50C14DEC
:100190005111104E2B2CC04C5835E0E3E182E24A5D
:1001A0004D4E4B006CF565F66DF90053A9AAA8F504
:1001B000F600FA6D6EF4F4FBF1FCF2F1F3FA6FF075
:1001C000F98987853E3F403C4142914490466B47C8
:1001D000004365450048494A4B4C3D4D3B4E3AE58E
:1001E000E6E400006164625F686F73745F6B626471
:1001F0005F726563763A204552524F522825642932
:100200000A000A0025303458006164625F686F7329
:10021000745F6B62645F726563763A200045525288
:100220004F523A206D65646961206B6579300A0030
:100230004552524F523A206D65646961206B657971
:10024000310A005D0A0025640020002564007C005E
:100250002530325800200025303258006164625F3A
:100260006D6F757365207261773A205B000A002517
:1002700030313662006164625F686F73745F6D6F06
:100280007573655F726563763A20006465627567B1
:1002900020656E61626C65642E0A005363616E3A7C
:1002A00020616464723A25642C20726567333A25B4
:1002B0003034580A00416674657220696E69743A78
:1002C0000A00466F756E643A206D65646961206B43
:1002D0006579730A005363616E3A20616464723A0F
:1002E00025642C20726567333A253034580A004261
:1002F00065666F726520696E69743A0A004B6579AC
:10030000626F6172642073746172742E0A005553B7
:100310004220636F6E666967757265642E0A000D10
:100320000A696E69740A005B445D005B435D002EE0
:100330000341004400420020006B00650079006228
:10034000006F00610072006400200063006F006EA7
:100350000076006500720074006500720000000EF7
:100360000374002E006D002E006B002E00000004B0
:1003700003090409027400040100A032090400000A
:1003800001030101000921110100012240000705BC
:10039000810308000A090401000103010200092188
:1003A00011010001224D000705820308000A09041B
:1003B00002000103000000092111010001223600A2
:1003C0000705830308000A09040300020300000074
:1003D00009211101000122220007058403200001E8
:1003E000070504032000011201100100000008EDC0
:1003F000FEDB0A0101010200010631FF0974A101BF
:100400000975150026FF00952075088102097615EB
:100410000026FF00952075089102C005010980A102
:1004200001850216810026B7001A81002AB70075DF
:100430001095018100C0050C0901A1018503160179
:1004400000269C021A01002A9C0275109501810069
:10045000C005010902A1010901A10005091901292D
:10046000051500250195057501810295017503812A
:10047000010501093009311581257F950275088133
:100480000609381581257F950175088106050C0A36
:1004900038021581257F950175088106C0C00501C8
:1004A0000906A101050719E029E7150025019508AE
:1004B0007501810295017508810105081901290559
:1004C00095057501910295017503910105071900C4
:1004D00029FF150026FF00950675088100C0636F8F
:1004E0006E73756D65723A20253034580A00737941
:1004F0007374656D3A20253034580A000A0025309F
:10050000325820006B6579626F6172643A20004C4A
:1005100045443A20253032580A00253032583A20D6
:100520002530386225730A00722F63203031323350
:10053000343536370A00290A002575002F00257545
:10054000005D28002564002000256400200025644B
:100550000020002564007C0025303258006D6F7546
:1005600073656B6579205B62746E7C782079207688
:1005700020685D287265702F61636C293A205B00EA
:100580006D6B5F776865656C5F74696D655F746FCF
:100590005F6D6178203D2025640A006D6B5F776890
:1005A00065656C5F6D61785F7370656564203D2083
:1005B00025640A006D6B5F74696D655F746F5F6DB4
:1005C0006178203D2025640A006D6B5F6D61785F66
:1005D0007370656564203D2025640A006D6B5F695A
:1005E0006E74657276616C203D2025640A006D6B27
:1005F0005F64656C6179203D2025640A006D6B5F46
:10060000776865656C5F74696D655F746F5F6D6158
:1006100078203D2025640A006D6B5F776865656C06
:100620005F6D61785F7370656564203D2025640AA5
:10063000006D6B5F74696D655F746F5F6D617820CD
:100640003D2025640A006D6B5F6D61785F73706596
:100650006564203D2025640A006D6B5F696E7465DA
:100660007276616C203D2025640A006D6B5F6465C5
:100670006C6179203D2025640A000A00257500364A
:100680003A20776865656C5F74696D655F746F5F4C
:100690006D61783A20000A00257500353A207768A8
:1006A00065656C5F6D61785F73706565643A2000A5
:1006B0000A00257500343A2074696D655F746F5FB8
:1006C0006D61783A20000A00257500333A206D618B
:1006D000785F73706565643A20000A002575003202
:1006E0003A20696E74657276616C286D73293A20C0
:1006F000000A00257500313A2064656C6179282A6A
:1007000031306D73293A20000A092D2056616C752D
:100710006573202D0A004D3E004D25643E20003FAC
:10072000007365742064656661756C740A00433EED
:10073000200077686572652064656C74613A206397
:100740007572736F723D25642C20776865656C3D0A
:1007500025640A53656520687474703A2F2F656E9E
:100760002E77696B6970656469612E6F72672F7788
:10077000696B692F4D6F7573655F6B6579730A00DF
:100780000A092D204D6F7573656B6579202D0A451B
:1007900053432F713A09717569740A313A096465D6
:1007A0006C6179282A31306D73290A323A09696EF1
:1007B00074657276616C286D73290A333A096D612C
:1007C000785F73706565640A343A0974696D655FB2
:1007D000746F5F6D61780A353A09776865656C5F9B
:1007E0006D61785F73706565640A363A097768658C
:1007F000656C5F74696D655F746F5F6D61780A0A1F
:10080000703A097072696E742076616C7565730A4E
:10081000643A097365742064656661756C74730A63
:1008200075703A092B310A646F776E3A092D310AD7
:10083000706775703A092B31300A7067646F776E94
:100840003A092D31300A0A7370656564203D2064D1
:10085000656C7461202A206D61785F7370656564D2
:10086000202A2028726570656174202F2074696DBC
:10087000655F746F5F6D6178290A003F004D3E200F
:1008800000433E20004C25640A000A092D20436FD6
:100890006E736F6C65202D0A4553432F713A0971B1
:1008A0007569740A6D3A096D6F7573656B65790AC0
:1008B000000A092D204D61676963202D0A643A09F9
:1008C00064656275670A783A096465627567206DC8
:1008D00061747269780A6B3A096465627567206BA6
:1008E0006579626F6172640A6D3A09646562756761
:1008F000206D6F7573650A763A0976657273696F54
:100900006E0A733A097374617475730A633A096302
:100910006F6E736F6C65206D6F64650A302D343AAD
:10092000096C61796572302D34284631302D46349A
:10093000290A506175733A09626F6F746C6F616454
:1009400065720A003F0074696D65725F726561646B
:10095000333228293A202530346C580A006B6579E7
:10096000626F6172645F69646C653A2025580A00A1
:100970006B6579626F6172645F70726F746F636FC1
:100980006C3A2025580A00686F73745F6B65796252
:100990006F6172645F6C65647328293A2025580A78
:1009A000000A092D20537461747573202D0A0047C5
:1009B00043433A20342E382E31204156522D4C4993
:1009C00042433A20312E382E3073766E20415652F3
:1009D0005F415243483A20617672350A004F5054C5
:1009E000494F4E533A204C554641204D4F555345A3
:1009F0004B45592045585452414B455920434F4E81
:100A0000534F4C4520434F4D4D414E4420343039D7
:100A1000360A004255494C443A20346265666338D0
:100A200037202830303A30353A3233204170722046
:100A300020362032303137290A005649443A2030D6
:100A4000784645454428742E6D2E6B2E292050493A
:100A5000443A2030783041444228414442206B657A
:100A600079626F61726420636F6E7665727465720D
:100A700029205645523A203078303130310A00442E
:100A80004553433A20636F6E766572742041444249
:100A9000206B6579626F61726420746F20555342D8
:100AA0000A000A092D2056657273696F6E202D0A9F
:100AB000000A6D6F7573653A206F66660A000A6DED
:100AC0006F7573653A206F6E0A000A6B6579626F05
:100AD0006172643A206F66660A000A6B6579626F1C
:100AE0006172643A206F6E0A000A6D6174726978EF
:100AF0003A206F66660A000A6D61747269783A205E
:100B00006F6E0A000A64656275673A206F6E0A00AC
:100B10000A64656275673A206F66660A000A0A62AF
:100B20006F6F746C6F616465722E2E2E2000433ED1
:100B3000200011241FBECFEFDAE0DEBFCDBF04B628
:100B400003FE24C08091DC019091DD01A091DE01C3
:100B5000B091DF018730904BA740B04BB9F41092B1
:100B6000DC011092DD011092DE011092DF0114BE53
:100B700084B7877F84BF88E10FB6F89480936000C4
:100B8000109260000FBEE0E0F8E3099511E0A0E0EC
:100B9000B1E0E2EAF0E502C005900D92A433B1079E
:100BA000D9F721E0A4E3B1E001C01D92AC3DB2074A
:100BB000E1F70E94C50C0C944F280C940000FF93A1
:100BC000EF93E0913401F0913501309709F00995E8
:100BD000EF91FF910895FC018591803011F0EFDFD6
:100BE000FBCF0895FF27E0E230E247FF0CC04195BC
:100BF00097FF09C0EDE26095709580959095611D15
:100C0000711D811D911D27FF02C0219530E350E227
:100C1000AA27660F771F881F991FAA1FA41710F015
:100C2000A41B63955A95A9F7AA3008F0A95FA05DA7
:100C3000AF93F395611571058105910541F7ED328B
:100C400011F4EF93F395F21718F43F93F395FBCF5C
:100C50008F91B5DFFA95E1F70895E991F9918591C2
:100C6000803021F0853219F0AADFF9CF089520E015
:100C7000E89455915532C1F3503311F4689455916D
:100C80005A3348F4505390F3220F022E220F220FB2
:100C9000200D250FF4CF0EF42195899199915336AB
:100CA00019F3533729F1533559F1BC018827992796
:100CB000E8945C3621F48991999168945591543661
:100CC00039F446EF7EF077FF0DC08FEF9FEF0AC03B
:100CD00055374AE039F0583540E121F0523642E0CC
:100CE00009F00895FF93EF937DDFEF91FF91B7CF68
:100CF000FF93EF93FC0181918030B9F360DFFBCF6C
:100D0000FF93EF9368DFF1CFDF93CF93CDB7DEB7DB
:100D10002596A3DFCF91DF910895282F2770E82F24
:100D2000E695E695E695EF70F0E0E95CFE4F87FF0B
:100D30000CC081E090E0022E01C0880F0A94EAF70F
:100D40008095908189238083089581E090E0022E30
:100D500001C0880F0A94EAF79081982B9083089538
:100D60000F931F93CF93DF93569A5E9A0E949E092A
:100D70002FEF87EA91E6215080409040E1F700C0D4
:100D800000008FEE92E09F938F930E9484060F9055
:100D90000F90C1E0D0E005ED12E063E08C2F0E94DF
:100DA000A209009771F09F938F93DF93CF931F93C6
:100DB0000F930E9484060F900F900F900F900F904A
:100DC0000F909FEF29EF80E0915020408040E1F7A5
:100DD00000C000002196C031D105F9F663E082E041
:100DE0000E94A20999278131910511F174F487308D
:100DF0009105F1F024F404970297F0F419C08930BA
:100E00009105B1F00D97C1F413C08D31910581F0BA
:100E100034F48431910561F0499771F409C0843C40
:100E2000910531F0873C910519F0813C910521F441
:100E300081E080934C0102C010924C0163E087E096
:100E40000E94A20991E0823009F090E090934D0158
:100E5000992341F082EC92E09F938F930E94840645
:100E60000F900F9023E042E063E082E00E94270AA7
:100E700085EB92E09F938F930E9484060F900F90D2
:100E8000C1E0D0E00BE912E063E08C2F0E94A209E0
:100E9000009771F09F938F93DF93CF931F930F93DE
:100EA0000E9484060F900F900F900F900F900F905C
:100EB0008FEF99EF20E0815090402040E1F700C093
:100EC00000002196C031D105F9F6E7E3F1E0119277
:100ED00081E0E734F807D9F70E94F3110E94440932
:100EE0008091BE0181608093BE018BE892E00E94F8
:100EF000EB05569A5E98DF91CF911F910F9108955F
:100F0000CF93DF938FE79BEB0197F1F700C00000D1
:100F10000E94230AEC01009711F481E0C4C097FD00
:100F200005C080914701816080934701D7FF05C0CC
:100F3000809147018E7F809347018D2F99278F7372
:100F40009927AE014F735527C6FF02C0405451097F
:100F5000D6FF02C08054910960913601772767FD62
:100F60007095469F9001479F300D569F300D11247C
:100F700021384FEF340714F421E83FEF31952195E4
:100F8000310921384FEF340714F421E83FEF219560
:100F900020934801869F9001879F300D969F300DCA
:100FA000112421388FEF380714F421E83FEF882708
:100FB0009927821B930B81382FEF920714F481E855
:100FC0009FEF8195809349018091BE0183FF60C0AE
:100FD00085E792E00E94EB05DF93CF938FE692E0E6
:100FE0009F938F930E9484068DE692E00E94EB050A
:100FF0008CE592E00E94EB0520913601822F992723
:1010000087FD90959F932F9387E592E09F938F9311
:101010000E94840685E592E00E94EB0580914701DD
:101020001F928F9380E592E09F938F930E94840696
:101030008EE492E00E94EB0520914801822F9927CF
:1010400087FD90959F932F938BE492E09F938F93CE
:101050000E94840689E492E00E94EB0520914901F8
:10106000822F992787FD90959F932F9386E492E096
:101070009F938F930E94840683E492E00E94EB0585
:101080008DB79EB744960FB6F8949EBF0FBE8DBF26
:1010900087E491E00E9444128091360191E088300B
:1010A0000CF090E0890F80933601DF91CF91089585
:1010B0001F93CF93DF93C0910001D09101018FEF77
:1010C0009FEF9093010180930001CF3F8FEFD807EE
:1010D00009F06AC08FE79BEB0197F1F700C00000B1
:1010E00082E00E94200AEC01009709F05DC0809127
:1010F0004D01882309F458C087E00E94200A009718
:1011000009F452C09C012F77332722303105A1F01A
:1011100048F42115310569F02130310599F48078C2
:101120008A641AC02330310551F02F373105A1F000
:1011300009C08078826410C0807889640DC080788E
:1011400088640AC080E392E09F938F930E94840694
:101150000F900F9081E18EC0292F33272F773327EF
:101160002130310579F050F02230310579F023300B
:10117000310581F4EC01D078D86416C0EC01D07848
:10118000D26412C0EC01D078DA640EC0EC01D078E1
:10119000D9640AC08DE192E09F938F930E948406E8
:1011A0000F900F9080E166C08091BE0181FF18C052
:1011B000209709F45CC089E092E00E94EB05DF9380
:1011C000CF9384E092E09F938F930E94840682E005
:1011D00092E00E94EB050F900F900F900F9003C0CC
:1011E000209709F444C0CF379FE7D90711F48FE760
:1011F00005C0CF3F8FEFD80721F48FEF0E948D06F7
:1012000038C02D2F3327822F1C2F2F3F81F4DF93DF
:10121000CF9384EE91E09F938F930E9484060E9467
:10122000B0060F900F900F900F908C2F23C09091CD
:101230004C01992381F0A9014F775527423351057D
:1012400021F4822F80788A6006C04A30510519F453
:10125000822F807882630E948D061F3F51F0DC2F21
:10126000CC27CF6FD0930101C093000102C080E072
:1012700001C081E0DF91CF911F910895E82FF0E048
:10128000E95CFE4F80810895682F609582E00C94A0
:10129000620A509A83E091E00197F1F700C00000E4
:1012A00050989AEB9A95F1F700C00895509A8AEBFE
:1012B0008A95F1F700C0509883E091E00197F1F72B
:1012C00000C000000895EF92FF920F931F93CF93F9
:1012D000DF93C0E0D0E000E810E0E82EF12C9801A8
:1012E0000C2E02C0359527950A94E2F72E213F2156
:1012F000232B19F00E94560902C00E944909219629
:10130000C830D10561F7DF91CF911F910F91FF9008
:10131000EF900895489B07C023E02A95F1F700005D
:1013200001970097B9F70895489907C023E02A95D7
:10133000F1F7000001970097B9F708955898509871
:1013400008950895CF92DF92EF92FF920F931F932B
:10135000CF93DF931F92CDB7DEB7182FF894509A32
:1013600083EF9BE00197F1F700C0000069830E94C2
:10137000560969816C60E0E11E9FC0011124862B33
:101380000E9463090E94490984EF91E00E94940938
:10139000892B21F4789482EE9FEF48C084EF91E08E
:1013A0000E948A09892B21F4789480E090E03EC065
:1013B00021E1F22EC12CD12C32E8E32E82E890E01C
:1013C0000E9494098C01882359F199270E948A0967
:1013D000882331F1CC0CDD1C9E2D901B081B90172F
:1013E00018F46894C0F807C0F1E1FF1204C07894C3
:1013F0008CEE9FEF1BC0FA9409F78FE591E00E94F5
:101400009409892B21F478948BEE9FEF0FC08BE524
:1014100090E00E948A09892BB1F77894C60106C032
:1014200078948F2D90E09195819591090F90DF919F
:10143000CF911F910F91FF90EF90DF90CF90089583
:1014400060E00C94A20960E083E00C94A2091F9371
:10145000CF93DF9300D01F92CDB7DEB7182FF8944B
:10146000509A83EF9BE00197F1F700C000002B83B7
:101470004A8369830E9456096981862F886090E1BA
:10148000199FF00111248E2B0E9463090E944909C3
:10149000EFE1F3E03197F1F700C000000E94560938
:1014A0004A81842F0E9463092B81822F0E94630945
:1014B0000E94490978940F900F900F90DF91CF917F
:1014C0001F910895262F277040E062E00C94270AB0
:1014D00080915A0108959FB7F894109251019FBFCF
:1014E0009091D301943009F058C09091E9009F7019
:1014F0002091EC0020FF02C020E801C020E0292B51
:1015000094E09093E9009091EB0090FF43C090919C
:10151000EE0097FF3FC090914E01992321F09091EA
:10152000E80095FF37C010924E0196E03091E80038
:1015300035FD15C03091D301343061F53091EB00A9
:1015400035FD28C0915021F481E080934E0122C0E6
:10155000EFE9FFE03197F1F700C00000E7CF80939B
:10156000F1008091E80085FD0AC08091E80080FFCD
:10157000FCCF8091E8008E778093E80006C08FB79B
:10158000F89491E0909351018FBF2F702093E90060
:1015900080E008952F702093E9008FEF0895CF9396
:1015A000DF9300D01F92CDB7DEB72091D301243056
:1015B00019F523E029839B838A832093E9008FEF29
:1015C0009091E800815095FD06C095ED9A95F1F750
:1015D00000008111F5CF8091E80085FF0DC040E04B
:1015E00050E063E070E0CE0101960E94850D80918D
:1015F000E8008E778093E8000F900F900F90DF91B6
:10160000CF910895CF93DF9300D01F92CDB7DEB76F
:101610002091D301243021F522E029839B838A8302
:1016200083E08093E9008FEF9091E800815095FD71
:1016300006C095ED9A95F1F700008111F5CF8091E4
:10164000E80085FF0DC040E050E063E070E0CE01AF
:1016500001960E94850D8091E8008E778093E800C6
:101660000F900F900F90DF91CF9108952091D301AB
:101670002430F1F422E02093E9002FEF3091E800CC
:10168000215035FD06C035ED3A95F1F700002111E6
:10169000F5CF2091E80025FF0BC040E050E065E069
:1016A00070E00E94850D8091E8008E778093E800BD
:1016B0000895CF93DF93EC018091D301843039F505
:1016C00081E08093E9008FEF9091E800815095FDD3
:1016D00006C095ED9A95F1F700008111F5CF809144
:1016E000E80085FF14C040E050E068E070E0CE0103
:1016F0000E94850D8091E8008E778093E80088E055
:10170000FE01A2E5B1E001900D928A95E1F7DF912B
:10171000CF9108958BE293E00E94EB058091D20176
:10172000811109C00E94170F0E94740F8091E2007E
:1017300084608093E200089587E293E00E94EB05C5
:101740001092D2010895089580914F018F5F809388
:101750004F0162E30E941528911135C010924F018C
:1017600080915101882379F18091D301843049F52A
:101770008091E9008F709091EC0090FF02C090E89A
:1017800001C090E0982B84E08093E9008091EB0009
:1017900080FF14C08091EE0087FF10C08091E800A8
:1017A00085FF03C01092F100F9CF8091E80080FF1F
:1017B00005C08091E8008E778093E8009F70909339
:1017C000E90010925101089542E061EC81E00E942D
:1017D000910E42E061EC82E00E94910E42E061ECE9
:1017E00083E00E94910E42E261EC84E00C94910E41
:1017F0008091D501833009F453C030F4813071F009
:10180000823009F48CC008958A3009F478C08B3096
:1018100009F45EC0893009F09AC020C08091D401DB
:10182000813A09F094C08091E800877F8093E800B6
:101830008091D8019091D901892B21F060E080E05E
:1018400090E003C068E082E591E070E00E94CE0D78
:101850008091E8008B778093E80008958091D4010F
:10186000813209F074C08091D8019091D901892BFF
:1018700009F06DC08091E800877F8093E800809137
:10188000E80082FD05C08091D3018111F8CF5FC0CF
:101890008091F10080935A018091E8008B7753C0CA
:1018A0008091D401813A09F052C08091D801909181
:1018B000D901892B09F04BC08091E800877F809384
:1018C000E8008091E80080FFFCCF80910C0136C0D9
:1018D0008091D4018132D9F58091D8019091D901BC
:1018E000892BA9F58091E800877F8093E8000E940A
:1018F000C60E8091D60180930C010C94A1188091A2
:10190000D401813221F58091E800877F8093E8003F
:101910000E94C60E8091D70180935B01089580914B
:10192000D401813AA1F48091E800877F8093E80098
:101930008091E80080FFFCCF80915B018093F100F3
:101940008091E8008E778093E8000C94C60E08958D
:101950000895089580915A018093500110925A0180
:1019600080E00E9444090E9474130C94A1180C9406
:10197000AA0C0E94CE1E8091D101882329F00E94DA
:10198000F41E81110C946F0D089584B7877F84BF76
:1019900088E10FB6F89480936000109260000FBE4B
:1019A00090E080E80FB6F894809361009093610016
:1019B0000FBE8BE69AE00E94A31E8FE193E00E9487
:1019C000EB050E94A80C0E94AB120E94170F0E9408
:1019D000740F8091E20084608093E200789480919B
:1019E000D3018430E1F78EE093E00E94EB050E9482
:1019F000AD1282E091E00E94EE118DEF92E00E9424
:101A0000EB050E94A90C8091D301853019F40E9446
:101A1000B90CF9CF0E94B312F6CF0E94091F809132
:101A2000500180935A0108950C940D0D292F3327EE
:101A300023303105A9F06CF42130310509F442C09E
:101A40002230310509F043C084E790E023E733E01A
:101A500042C021323105C9F02232310519F137C0B7
:101A600099278130910541F08230910541F0892B11
:101A700071F5EFE6F3E005C0EFE5F3E002C0EFE259
:101A8000F3E0849190E09F0126C0643000F5E62FDA
:101A9000F0E0EE0FFF1FEF5DFE4F2081318189E006
:101AA00090E019C0643098F4E62FF0E0DF01AA0F4F
:101AB000BB1FA75EBE4F2D913C91EB5EFE4F808118
:101AC00090E009C082E190E027EE33E004C080E0BE
:101AD00090E020E030E0FA0131832083089580E136
:101AE00089BD82E189BD09B400FEFDCF8091D80097
:101AF0008F7D8093D8008091E00082608093E00029
:101B00008091E00081FDFCCF0895CF92DF92EF92AB
:101B1000FF920F931F93CF93DF937C018B01EA0118
:101B20000E94E70E811131C0209731F088819981A0
:101B3000081B190BE80EF91EC12CD12C011511053B
:101B400019F18091E80085FD14C08091E8008E773E
:101B50008093E800209741F0888199818C0D9D1D2C
:101B60009983888385E011C00E94E70E882331F3B2
:101B70000CC0F70181917F018093F10001501109A0
:101B8000FFEFCF1ADF0ADACF80E0DF91CF911F910C
:101B90000F91FF90EF90DF90CF9008952091DA01A0
:101BA0003091DB012617370748F06115710539F4CC
:101BB0002091E8002E772093E80001C0B901FC01D4
:101BC00020E061157105B9F18091D301882309F4F2
:101BD00040C0853009F43FC08091E80083FD3DC0DE
:101BE0008091E80082FF06C08091E80082FF26C055
:101BF00080E008958091E80080FFE3CF2091F3001A
:101C00008091F20090E0922B6115710551F08830BF
:101C1000910538F421912093F100615071090196EA
:101C2000F3CF21E0089709F020E08091E8008E775B
:101C30008093E800C6CF2111C7CFD6CF8091D301C2
:101C4000882339F0853039F08091E80083FFCCCFCC
:101C500004C082E0089583E0089581E00895209112
:101C6000DA013091DB012617370748F0611571055D
:101C700039F42091E8002E772093E80001C0B901E3
:101C8000FC0120E061157105C1F18091D301882329
:101C900009F441C0853009F440C08091E80083FD1B
:101CA0003EC08091E80082FF06C08091E80082FF7C
:101CB00027C080E008958091E80080FFE3CF209165
:101CC000F3008091F20090E0922B6115710559F0BC
:101CD0008830910540F424912093F10031966150B1
:101CE00071090196F2CF21E0089709F020E0809178
:101CF000E8008E778093E800C5CF2111C6CFD5CFFD
:101D00008091D301882339F0853039F08091E80043
:101D100083FFCBCF04C082E0089583E0089581E083
:101D20000895982F973058F59093E900981739F057
:101D30007091EC002091ED005091F00003C0242F31
:101D4000762F50E021FF19C03091EB003E7F309399
:101D5000EB003091ED003D7F3093ED003091EB00D2
:101D600031603093EB007093EC002093ED005093C2
:101D7000F0002091EE0027FF07C09F5FD3CF8F7048
:101D80008093E90081E0089580E008958091D40176
:101D900087FD05C08091E80080FF0EC012C08091D1
:101DA000E80082FD05C08091D3018111F8CF08952C
:101DB0008091E8008B7708C08091D3018111EACF30
:101DC00008958091E8008E778093E80008958091CF
:101DD000E4009091E50045E62091EC0020FF21C051
:101DE0002091E80020FD21C02091D301222389F019
:101DF000253089F02091EB0025FD0FC02091E400F3
:101E00003091E5002817390739F3415041F0C901F5
:101E1000E3CF82E0089583E0089581E0089584E0AF
:101E200008952091E80022FFDFCF80E008950E940E
:101E3000850F0E948D0FE0EEF0E08081816080834D
:101E4000E8EDF0E080818F77808319BCA7EDB0E0EA
:101E50008C918E7F8C9380818F7E80831092D201B3
:101E600008950F931F93CF93DF930E94850F0E94D5
:101E70008D0FC8EDD0E088818F7788838881806856
:101E8000888388818F7D888319BC1092D30110923A
:101E9000CF011092D1011092D00100EE10E0F801B4
:101EA00080818B7F808388818160888342E060E0CD
:101EB00080E00E94910EE1EEF0E080818E7F8083D1
:101EC000E2EEF0E0808181608083808188608083A1
:101ED000F80180818E7F8083888180618883DF9193
:101EE000CF911F910F910895E8EDF0E080818F7EF2
:101EF0008083E7EDF0E080818160808384E082BFB1
:101F000081E08093D2010C94310FE8EDF0E0808104
:101F10008E7F80831092E20008951092DA00109272
:101F2000E10008951F920F920FB60F9211242F9384
:101F30003F934F935F936F937F938F939F93AF9351
:101F4000BF93EF93FF938091E10082FF0BC08091DC
:101F5000E20082FF07C08091E1008B7F8093E10067
:101F60000E94A40B8091DA0080FF1FC08091D800EE
:101F700080FF1BC08091DA008E7F8093DA00809111
:101F8000D90080FF0DC080E189BD82E189BD09B41F
:101F900000FEFDCF81E08093D3010E948A0B05C033
:101FA00019BC1092D3010E949C0B8091E10080FF2C
:101FB00019C08091E20080FF15C08091E2008E7F01
:101FC0008093E2008091E20080618093E200809142
:101FD000D80080628093D80019BC85E08093D3013B
:101FE0000E94B70C8091E10084FF30C08091E20034
:101FF00084FF2CC080E189BD82E189BD09B400FE67
:10200000FDCF8091D8008F7D8093D8008091E10032
:102010008F7E8093E1008091E2008F7E8093E200CA
:102020008091E20081608093E2008091CF0188235B
:1020300011F084E007C08091E30087FF02C083E0D5
:1020400001C081E08093D3010E94140D8091E100D2
:1020500083FF29C08091E20083FF25C08091E100C9
:10206000877F8093E10082E08093D3011092CF01BB
:102070008091E1008E7F8093E1008091E2008E7F6D
:102080008093E2008091E20080618093E20042E070
:1020900060E080E00E94910E8091F0008860809363
:1020A000F0000E94A30BFF91EF91BF91AF919F9120
:1020B0008F917F916F915F914F913F912F910F90F1
:1020C0000FBE0F901F9018951F920F920FB60F9290
:1020D00011242F933F934F935F936F937F938F932D
:1020E0009F93AF93BF93CF93EF93FF93C091E9007A
:1020F000CF708091EC001092E9008091F000877F12
:102100008093F00078940E94A0101092E9008091D2
:10211000F00088608093F000C093E900FF91EF9198
:10212000CF91BF91AF919F918F917F916F915F916F
:102130004F913F912F910F900FBE0F901F901895C8
:102140001F93CF93DF93CDB7DEB7AA970FB6F8945E
:10215000DEBF0FBECDBFE4EDF1E08091F1008193D1
:1021600021E0EC3DF207C9F70E94F80B8091E800EE
:1021700083FF1CC12091D4013091D501832F90E0C1
:102180008A30910508F012C1FC01EA5AFF4F0C9405
:102190003528203881F0223809F008C18091D80113
:1021A0008F708093E9008091EB0085FB882780F990
:1021B0001092E90006C08091D0019091D101911157
:1021C00082609091E800977F9093E8008093F100FF
:1021D0001092F100C5C0822F8D7F09F0E7C0222345
:1021E00019F0223061F0E2C08091D601813009F00F
:1021F000DDC0333009F080E08093D10128C08091A8
:10220000D601811124C02091D8012F7009F4CEC0CD
:102210002093E9008091EB0080FF19C08091EB00D2
:10222000333011F4806211C080618093EB0081E053
:1022300090E0022E01C0880F0A94EAF78093EA002A
:102240001092EA008091EB0088608093EB0010927E
:10225000E9008091E800877F86C02111A7C0109116
:10226000D6011F778091E3008078812B8093E30073
:102270008091E800877F8093E8000E94C60E8091DD
:10228000E80080FFFCCF8091E30080688093E3004A
:10229000112311F083E001C082E08093D30186C056
:1022A0002058223008F082C08091D6019091D70149
:1022B0008C3D23E0920779F583E08A838AE2898363
:1022C0004FB7F894DE01139620E03EE051E2E32F91
:1022D000F0E050935700E49120FF03C0E295EF70C7
:1022E0003F5FEF708E2F90E0EA3010F0C79601C08C
:1022F000C0968D939D932F5F243149F74FBF8091F6
:10230000E800877F8093E8006AE270E0CE010196E2
:102310000E94CE0D14C0AE014F5F5F4F6091D80197
:102320000E94160D009709F441C02091E800277F14
:102330002093E800BC0189819A810E942F0E809130
:10234000E8008B778093E80031C0203879F58091E0
:10235000E800877F8093E8008091CF018093F100AF
:102360008091E8008E778093E8000E94C60E1EC020
:1023700021111CC09091D6019230C0F48091E800E8
:10238000877F8093E8009093CF010E94C60E8091D2
:10239000CF01811104C08091E30087FF02C084E077
:1023A00001C081E08093D3010E94E40B8091E8009A
:1023B00083FF0AC08091E800877F8093E8008091C6
:1023C000EB0080628093EB00AA960FB6F894DEBF14
:1023D0000FBECDBFDF91CF911F9108959093610102
:1023E000809360010895E0916001F0916101309760
:1023F00021F00190F081E02D099480E00895FF9292
:102400000F931F93CF93DF938C01E0916001F091C4
:102410006101309799F10280F381E02D0995809157
:10242000BE0182FF2BC080FF04C084E095E00E94C3
:10243000EB05E80188E0F82E0EEF14E08091BE0174
:1024400080FF0BC088811F928F931F930F930E9470
:1024500084060F900F900F900F90FA942196F11030
:10246000EDCF8091BE0180FF09C08CEF94E0DF9139
:10247000CF911F910F91FF900C94EB05DF91CF91BD
:102480001F910F91FF900895E0916001F09161011B
:10249000309721F00480F581E02D09940895CF93C1
:1024A000DF93EC0180915E0190915F01C817D9071D
:1024B00009F1D0935F01C0935E01E0916001F0915A
:1024C00061013097B9F00680F781E02DCE010995C2
:1024D0008091BE0182FF0EC080FF0CC0DF93CF93BE
:1024E0008EEE94E09F938F930E9484060F900F903E
:1024F0000F900F90DF91CF910895CF93DF93EC0170
:1025000080915C0190915D01C817D90709F1D093C2
:102510005D01C0935C01E0916001F0916101309731
:10252000B9F00084F185E02DCE0109958091BE01BE
:1025300082FF0EC080FF0CC0DF93CF938EED94E03E
:102540009F938F930E9484060F900F900F900F908F
:10255000DF91CF9108950C9475130E94361F0E944D
:10256000B0060C94A109CF92DF92EF92FF920F93E5
:102570001F93CF93DF9300D000D000D0CDB7DEB74C
:102580000E94580833E6E32E31E0F32E00E010E01D
:10259000C02E802F0E943E09F701D1907F01D826DE
:1025A000B1F40F5F1F4F0031110591F78FEF898351
:1025B0008A831B820E943F1F8160782F9D838C83BA
:1025C00049815A816B818D810E94C81348C09091C6
:1025D000BE0191FF04C08E830E9492138E8120E081
:1025E00030E04D2D50E0922FBA01022E02C07595B9
:1025F00067950A94E2F760FF2CC02983CA82EE2413
:10260000E394F12C02C0EE0CFF1C9A95E2F790E0E7
:102610008E219F2121E0892B09F420E02B830E9449
:102620003F1F8160782F9D838C8349815A816B8104
:102630008D810E94C81349815A816B817C818D8173
:102640000E94BB1EF801ED59FE4F80818E258083CC
:1026500006C02F5F3F4F2830310529F6A2CF0E94D8
:10266000BA1E0E9482220E948007109162010E947D
:10267000F311181741F10E94F311809362019091B8
:10268000BE0192FF0EC090FF0CC01F928F938FE08F
:1026900095E09F938F930E9484060F900F900F9068
:1026A0000F908091620126960FB6F894DEBF0FBEA0
:1026B000CDBFDF91CF911F910F91FF90EF90DF90F1
:1026C000CF900C94CC1E26960FB6F894DEBF0FBEAA
:1026D000CDBFDF91CF911F910F91FF90EF90DF90D1
:1026E000CF9008950C94440908950895CF93DF93F3
:1026F0001F92CDB7DEB769830E943E09282F30E0D4
:1027000081E090E0698102C0880F991F6A95E2F725
:102710002823392381E0232B09F480E00F90DF91F7
:10272000CF910895EF92FF920F931F93CF93DF9372
:1027300088E295E00E94EB05C0E0D0E089E2E82E57
:1027400081E0F82E0AE115E08C2F0E943E090E94DC
:10275000A81EFF92EF921F928F93DF93CF931F9348
:102760000F930E94840621968DB79EB708960FB6E8
:10277000F8949EBF0FBE8DBFC031D10529F7DF9100
:10278000CF911F910F91FF90EF90089508950895B4
:10279000CF93DF93CDB7DEB72B970FB6F894DEBF9C
:1027A0000FBECDBF4F83588769877A878B878A850D
:1027B0009B85892B31F05F3F11F080E003C04F3FD4
:1027C000E1F781E0811107C04F81588569857A85DD
:1027D0008B850E94BB1EDE01119686E0FD011192E1
:1027E0008A95E9F785E0FE01379601900D928A956A
:1027F000E1F749815A816B817C818D819E810E94A4
:102800007F1B2B960FB6F894DEBF0FBECDBFDF91B6
:10281000CF910895CF93C82F882309F4E7C0823859
:10282000A1F40E94F31181FDE1C089E30E94FC1D27
:102830000E947D1E2FEF81EE94E021508040904059
:10284000E1F700C0000089E315C08338C1F40E949D
:10285000F31180FDCBC083E50E94FC1D0E947D1E0C
:102860002FEF81EE94E0215080409040E1F700C0CE
:10287000000083E50E941D1ECF910C947D1E8438BC
:10288000A1F40E94F31182FDB1C087E40E94FC1DF7
:102890000E947D1E2FEF81EE94E0215080409040F9
:1028A000E1F700C0000087E4E5CF8CEF8C0F813AA0
:1028B00048F48C2F0E94A325811198C08C2F0E9470
:1028C000FC1DDACF80E28C0F883048F4C77081E0BD
:1028D00001C0880FCA95EAF70E94411ECDCF8BE553
:1028E0008C0F833078F4C53A29F0C63A31F482E887
:1028F00090E005C081E890E002C083E890E0CF91CD
:102900000C944F1288E58C0F853108F06FC0C83ADF
:1029100061F1C93A69F1CA3A71F1CB3A79F1CC3A2D
:1029200081F1CD3A89F1CE3A91F1CF3A99F1C13B9B
:10293000A1F1C03BA9F1C23BB1F1C33BB9F1C43B2A
:10294000C1F1C53BC9F1C63BD1F1C73BD9F1C83B89
:10295000E1F1C93BE9F1CA3BF1F1CB3BF9F1CC3BE9
:1029600009F03FC08AE292E03EC082EE90E03BC0B8
:1029700089EE90E038C08AEE90E035C085EB90E0BB
:1029800032C086EB90E02FC083EB90E02CC084EB4C
:1029900090E029C087EB90E026C08CEC90E023C04B
:1029A0008DEC90E020C083E891E01DC08AE891E0C2
:1029B0001AC082E991E017C084E991E014C081E275
:1029C00092E011C083E292E00EC084E292E00BC07C
:1029D00085E292E008C086E292E005C087E292E0DC
:1029E00002C080E090E0CF910C947D12CF910895C9
:1029F000882309F466C08238A1F40E94F31181FF94
:102A000060C089E30E94FC1D0E947D1E2FEF81EEB5
:102A100094E0215080409040E1F700C0000089E33D
:102A200015C08338B9F40E94F31180FF4AC083E5D2
:102A30000E94FC1D0E947D1E2FEF81EE94E021502C
:102A400080409040E1F700C0000083E50E941D1E19
:102A50000C947D1E8438A1F40E94F31182FF31C0D2
:102A600087E40E94FC1D0E947D1E2FEF81EE94E002
:102A7000215080409040E1F700C0000087E4E6CF9D
:102A80009CEF980F913A10F390E2980F983050F421
:102A9000877091E001C0990F8A95EAF7892F0E940B
:102AA000471ED6CF9BE5980F933020F480E090E04E
:102AB0000C944F12885A853120F480E090E00C94F9
:102AC0007D120895882321F00E94411E0C947D1EE2
:102AD0000895882321F00E94471E0C947D1E0895BE
:102AE000CF92DF92EF92FF920F931F93CF93DF93DA
:102AF000CDB7DEB728970FB6F894DEBF0FBECDBFB7
:102B00008C0185E0F801DE01119601900D928A9505
:102B1000E1F7F80140813181F280258122952F7003
:102B200083819481892B31F03F3F31F481E04F3F25
:102B300019F403C081E001C080E080FDE1C2498357
:102B40003A8389819A812F830E94BA1D9E83888748
:102B50000E94B91D0E94E11C4E81E42FE295EF70A6
:102B6000F0E0E05AFF4F2F8168850C943528842FC0
:102B7000807F142F1F70882311F01295107FFF2083
:102B800059F0112309F471C2812F68870E94541EE5
:102B90000E947D1E688569C2862F0E94F814112349
:102BA00009F4AEC2812F0E945A1E28960FB6F894DF
:102BB000DEBF0FBECDBFDF91CF911F910F91FF9070
:102BC000EF90DF90CF900C947D1E842F807F942F08
:102BD0009F70E92E803219F0E29480EFE82266239C
:102BE00019F0613001F129C0FF20A9F08E2D2223B8
:102BF00049F1213039F528960FB6F894DEBF0FBEA3
:102C0000CDBFDF91CF911F910F91FF90EF90DF909B
:102C1000CF900C94641E222319F0213009F470C265
:102C20000E94671E2CC0FF20E9F0263008F068C221
:102C30000E943E1E8E2129F022C0FF20F1F02111BA
:102C400015C08E2D28960FB6F894DEBF0FBECDBFEF
:102C5000DF91CF911F910F91FF90EF90DF90CF9078
:102C60000C946215253008F04BC209C0F80185812B
:102C700080FFFBC18F708583E4CF21110AC28E2DA6
:102C800078C1242F26952695237030E02115310533
:102C900021F021303105C9F033C2FF2021F0862F09
:102CA000942F937002C080E090E028960FB6F894BD
:102CB000DEBF0FBECDBFDF91CF911F910F91FF906F
:102CC000EF90DF90CF900C944F12FF2021F0862FD1
:102CD000942F937002C080E090E028960FB6F8948D
:102CE000DEBF0FBECDBFDF91CF911F910F91FF903F
:102CF000EF90DF90CF900C947D12862FFF2019F07B
:102D00000E94082102C00E94702128960FB6F894F4
:102D1000DEBF0FBECDBFDF91CF911F910F91FF900E
:102D2000EF90DF90CF900C94F521842F837009F001
:102D300076C0F110E5C1262F229526952770220F27
:102D4000220F862F8F70C82ED12CE12CF12C022E51
:102D500004C0CC0CDD1CEE1CFF1C0A94D2F764FFEF
:102D600010C06FE070E080E090E004C0660F771F55
:102D7000881F991F2A95D2F7609570958095909538
:102D800003C060E070E0CB01242F269526952370C8
:102D9000422F50E042305105D1F04330510559F1F6
:102DA0006C297D298E299F294130510541F12896B2
:102DB0000FB6F894DEBF0FBECDBFDF91CF911F914C
:102DC0000F91FF90EF90DF90CF900C94F61C6C2940
:102DD0007D298E299F2928960FB6F894DEBF0FBE55
:102DE000CDBFDF91CF911F910F91FF90EF90DF90BA
:102DF000CF900C94081D0E94F61CC701B6012896BE
:102E00000FB6F894DEBF0FBECDBFDF91CF911F91FB
:102E10000F91FF90EF90DF90CF900C94E41CFF2077
:102E200019F0842F817001C08695882309F468C148
:102E3000262F229526952770220F220F862F8F701E
:102E4000C82ED12CE12CF12C022E04C0CC0CDD1CA0
:102E5000EE1CFF1C0A94D2F764FF10C06FE070E014
:102E600080E090E004C0660F771F881F991F2A95A5
:102E7000D2F7609570958095909503C060E070E002
:102E8000CB01242F269526952370422F50E0423007
:102E90005105D1F04330510559F16C297D298E2916
:102EA0009F294130510541F128960FB6F894DEBFB5
:102EB0000FBECDBFDF91CF911F910F91FF90EF908B
:102EC000DF90CF900C94951D6C297D298E299F2928
:102ED00028960FB6F894DEBF0FBECDBFDF91CF911D
:102EE0001F910F91FF90EF90DF90CF900C94A71D52
:102EF0000E94951DC701B60128960FB6F894DEBF53
:102F00000FBECDBFDF91CF911F910F91FF90EF903A
:102F1000DF90CF900C94831D603FD9F128F480E4BA
:102F2000860F803250F09CC0623F09F461C008F403
:102F30004BC0633F09F470C093C0162F1071842FEB
:102F40008F716887FF2059F00E942E1D6885862F9B
:102F5000112319F08295807F75CE8F7073CE0E94F9
:102F6000491D6885862F112319F08295807F01C045
:102F70008F7028960FB6F894DEBF0FBECDBFDF91DD
:102F8000CF911F910F91FF90EF90DF90CF900C9415
:102F90006915FF20A9F0253008F0B2C0842F8F7189
:102FA00028960FB6F894DEBF0FBECDBFDF91CF914C
:102FB0001F910F91FF90EF90DF90CF900C94681DC0
:102FC000263008F09DC0EACFFF20A1F0842F8F713A
:102FD00028960FB6F894DEBF0FBECDBFDF91CF911C
:102FE0001F910F91FF90EF90DF90CF900C942E1DCA
:102FF000FF2061F3842F8F7128960FB6F894DEBFFF
:103000000FBECDBFDF91CF911F910F91FF90EF9039
:10301000DF90CF900C94491DFF2091F0842F8F7189
:1030200028960FB6F894DEBF0FBECDBFDF91CF91CB
:103030001F910F91FF90EF90DF90CF900C941F1D88
:1030400028960FB6F894DEBF0FBECDBFDF91CF91AB
:103050001F910F91FF90EF90DF90CF900C941A1D6D
:10306000FF20A1F0222309F4B1CF862F28960FB6B6
:10307000F894DEBF0FBECDBFDF91CF911F910F91AE
:10308000FF90EF90DF90CF900C940A14222309F464
:10309000B1CF862F28960FB6F894DEBF0FBECDBFF6
:1030A000DF91CF911F910F91FF90EF90DF90CF9024
:1030B0000C94F8144F70C8010E94C81F28960FB6D0
:1030C000F894DEBF0FBECDBFDF91CF911F910F915E
:1030D000FF90EF90DF90CF900C942C1C4F70C801A4
:1030E00028960FB6F894DEBF0FBECDBFDF91CF910B
:1030F0001F910F91FF90EF90DF90CF900C94CB1F1A
:1031000028960FB6F894DEBF0FBECDBFDF91CF91EA
:103110001F910F91FF90EF90DF90CF9008950E9444
:10312000611E0E94301E0E947D1E0E9423230E9469
:10313000F52180E090E00E944F1280E090E00C9436
:103140007D120E94511E0C948F180E94BA1D292FC7
:1031500022952F7030E02C3031054CF42A303105A7
:10316000C4F4225031092230310540F021C02C3006
:103170003105D1F02F303105B9F01AC0853A28F465
:103180008430C0F4823028F415C090E2980F983053
:1031900088F0883E30F4803E68F48450813A40F4F0
:1031A00009C0803F29F406C093FB882780F9089561
:1031B00080E0089581E00895CF93DF9300D000D0A0
:1031C0001F92CDB7DEB70F900F900F900F900F901A
:1031D000DF91CF910895CF93DF9300D000D000D03E
:1031E000CDB7DEB726960FB6F894DEBF0FBECDBFC3
:1031F000DF91CF9108951F93CF93DF93C091730117
:1032000016E080917401C81799F0D0E01C9FF0017E
:103210001D9FF00D1124EB58FE4F408151816281BA
:103220007381848195810E94EB182196C770E9CF44
:10323000DF91CF911F9108954091A5015091A60172
:103240006091A7017091A8018091A9019091AA01B4
:103250000C94EB18CF938091AA0182958F7009F09E
:103260005FC08091A701882309F45AC0209173019F
:10327000A09174016091A5017091A6018091A801AF
:103280009091A90131E06F3F09F030E0B32FC6E023
:103290002A1709F445C0009721F07F3F21F44B2FF6
:1032A00003C041E001C040E030E040FD35C0C29FB6
:1032B000F001C39FF00D1124EB58FE4F41817413B0
:1032C0002BC04081641328C04281411125C0438135
:1032D00054814817590710F441505109481B590BA4
:1032E000483C5105C8F48091AA018F708061809399
:1032F000AA0186E0829FF001839FF00D1124E65819
:10330000FE4F80818F708061808385EA91E00E940A
:103310007015CF910C94FB182F5F3F4F2770B8CFDB
:10332000CF910895CF92DF92EF92FF920F931F9368
:10333000CF93DF93CDB7DEB762970FB6F894DEBFB9
:103340000FBECDBF8C0185E0F801DE011D96019016
:103350000D928A95E1F7D8014C9111965C911197E5
:1033600012966C9112971396ED90FC9014977091B1
:10337000A501E091A6012091A8013091A901211594
:10338000310531F0EF3F31F481E07F3F19F403C0A4
:1033900081E001C080E0B82FB170CB2E80FD6CC100
:1033A000D090A701DD2009F4F5C0F091AA01E21642
:1033B000F30638F0C701821B930B883C910548F057
:1033C0009BC0209530952E0D3F1D283C310508F0FF
:1033D00093C08F2F807F09F052C0E51314C074137F
:1033E00012C0D62E61110FC0FF70F061F093AA01D8
:1033F0000E941C1985EA91E00E9470158091AA0133
:10340000F80185836CC1EF2831F05F3F31F481E032
:103410004F3F19F403C081E001C080E080FD03C08C
:1034200081E0862701C080E0F82FF170FF2E80FF39
:103430001CC0809173012091740136E0821709F459
:1034400028C190E0389FF001399FF00D1124EB580E
:10345000FE4F7181571306C07081471303C07281FC
:10346000671303C001968770E9CFD62E662309F44F
:1034700036C18091AA0181608093AA0153C0E513EF
:1034800008C0741306C0611104C0D8011596FC93DE
:10349000AEC04D875E878D859E856A8B0E94A5187C
:1034A0006A89882329F1D62E662311F12091AA0179
:1034B000822F82958F7090E002970CF460C080910B
:1034C000A5019091A60198878F831986FB86EA86CD
:1034D0002C87CE01079651C0E51731F14D875E87E5
:1034E0008D859E856A8B0E94A5186A8981112EC0E0
:1034F000C8010E947015A4C08F2F807F69F77E2DB0
:10350000F98AE88A89890E94DC1885EA91E00E949C
:103510007015E5EAF1E086E0DF011D928A95E9F792
:103520000E941C19D12CDBC07413D8CF6111D6CFE7
:10353000D8011596FC93C8010E947015E5EAF1E0E8
:1035400086E0DF011D928A95E9F7C9C0D62E662371
:1035500079F22091AA01822F82958F7090E00297D4
:1035600074F08091A5019091A6019A8389831B82B2
:10357000FD82EC822E83CE0101960E94701586E0BA
:10358000F801A5EAB1E001900D928A95E1F70E9459
:103590002A196FC0E216F30628F0C701821B930BAD
:1035A0009C0104C0209530952E0D3F1D283C31050F
:1035B00008F052C0D62E662309F49ACFE5132CC02A
:1035C00074132AC08091AA0180FD1DC0982F929586
:1035D0009F70C9F0D80115968C9315979F3039F0DC
:1035E0009F5F9295907F8F70892B15968C93C80161
:1035F0000E94701586E0F801A5EAB1E001900D92F5
:103600008A95E1F736C086E0F801A5EAB1E00190BD
:103610000D928A95E1F763C04D875E878D859E8503
:103620000E94A518882379F086E0F801A5EAB1E0A8
:1036300001900D928A95E1F70E942A190E941C19A7
:10364000DD24D3944CC08091AA0181608093AA01AB
:10365000C8010E94701543C07E2DF98AE88A8989C5
:103660000E94DC18E5EAF1E086E0DF011D928A9510
:10367000E9F70E941C1933C0662309F439CF4D873E
:103680005E878D859E850E94A518882309F430CF1A
:10369000CBCF4D875E878D859E850E94BA1D292FD1
:1036A00022952F7030E0223031052CF49F7041F0CC
:1036B000811106C00CC0243031052CF49F7049F4F0
:1036C000805E883020F0C8010E947015CF2CDC2C61
:1036D00006C0D80115969C91907F91F7F8CF8D2D5B
:1036E00062960FB6F894DEBF0FBECDBFDF91CF91CB
:1036F0001F910F91FF90EF90DF90CF9008951F934F
:10370000CF93DF93CDB7DEB72C970FB6F894DEBF1B
:103710000FBECDBF4F83588769877A878B879C8779
:10372000CE0107960E9492198823C1F02F81388517
:103730008A859B85892B31F03F3F11F080E003C0E3
:103740002F3FE1F781E0811147C04F81588569859E
:103750007A858B859C850E94EB183EC086E0FE0131
:103760003796DE01119601900D928A95E1F7FF815F
:10377000E8854A855B854115510531F0EF3F31F40D
:1037800081E0FF3F19F403C081E001C080E080FDCB
:1037900023C02091740130E0C901019687709927F8
:1037A0006091730170E086179707F1F1F983EA835E
:1037B0005D834C8396E0929FD001939FB00D1124BE
:1037C000AB58BE4FFE01319601900D929A95E1F7EC
:1037D000809374010E94FB1816E080917301909110
:1037E0007401891779F1189FC00111248B589E4FDD
:1037F0000E949219882331F1E09173011E9FF0011C
:103800001124EB58FE4F4081518162817381848184
:1038100095810E94EB188091730190E0019687706A
:10382000992780937301D9CF0E94A1181092740137
:1038300010927301E5EAF1E086E0DF011D928A95BE
:10384000E9F7CACF2C960FB6F894DEBF0FBECDBFF6
:10385000DF91CF911F910895DF92EF92FF920F9326
:103860001F93CF93DF93FC01009709F48AC0E12CEA
:10387000F12CDD24D394EF0121968491853709F44E
:1038800061C058F4843708F04EC0843008F06AC034
:103890008130D1F0823071F174C0883709F45DC095
:1038A00050F4863709F455C0873709F06AC08E2D69
:1038B0000E944E1E54C09CE7980F903708F061C0DC
:1038C0008F770E94F81450C08F010E5F1F4FFE01CA
:1038D000849190E2980F983050F48770FD2D01C0CC
:1038E000FF0F8A95EAF78F2F0E94541E15C00E9481
:1038F0000A1414C08F010E5F1F4FFE01849190E2E5
:10390000980F983068F48770FD2D01C0FF0F8A95DD
:10391000EAF78F2F0E945A1E0E947D1EE80124C0E4
:103920000E94F814FBCF9F012E5F3F4FFE01C49110
:10393000CC2369F08FE99FE00197F1F700C0000008
:10394000C150F6CF9F012E5F3F4FFE01F490E90179
:103950000BC00E943E1EE82E07C00E94511E0E940E
:103960007D1E02C00E940A149F2D992341F0EFE9A9
:10397000FFE03197F1F700C000009150F6CFFE0153
:103980007ACFDF91CF911F910F91FF90EF90DF9051
:1039900008956093AF017093B0018093B10190934B
:1039A000B2010E94CA1E0C948F186093AB017093F1
:1039B000AC018093AD019093AE010E94CB1E0C949C
:1039C0008F1808950C94C91C0F931F930091AF0199
:1039D0001091B0012091B1013091B201602B712B97
:1039E000822B932B1F910F910C94C91C0F931F9343
:1039F0000091AF011091B0012091B1013091B2015D
:103A000060237123822393231F910F910C94C91C6F
:103A10000F931F930091AF011091B0012091B1015C
:103A20003091B20160277127822793271F910F9150
:103A30000C94C91C60E070E0CB010C94D51C41E0F3
:103A400050E060E070E004C0440F551F661F771F10
:103A50008A95D2F7CB01BA010C94D51C41E050E015
:103A600060E070E004C0440F551F661F771F8A9501
:103A7000D2F78091AB019091AC01A091AD01B091D2
:103A8000AE01482B592B6A2B7B2BCB01BA010C942E
:103A9000D51C41E050E060E070E004C0440F551FC9
:103AA000661F771F8A95D2F740955095609570955F
:103AB0008091AB019091AC01A091AD01B091AE01AC
:103AC000482359236A237B23CB01BA010C94D51CCC
:103AD00041E050E060E070E004C0440F551F661FF5
:103AE000771F8A95D2F78091AB019091AC01A0919C
:103AF000AD01B091AE01482759276A277B27CB013A
:103B0000BA010C94D51C0F931F930091AB01109137
:103B1000AC012091AD013091AE01602B712B822B55
:103B2000932B1F910F910C94D51C0F931F93009111
:103B3000AB011091AC012091AD013091AE01602339
:103B40007123822393231F910F910C94D51C0F9303
:103B50001F930091AB011091AC012091AD01309108
:103B6000AE0160277127822793271F910F910C9434
:103B7000D51C0895CF92DF92EF92FF920F931F937F
:103B8000CF93DF93EC01C090AF01D090B001E090F3
:103B9000B101F090B2018091AB019091AC01A09184
:103BA000AD01B091AE01C82AD92AEA2AFB2A0FE159
:103BB00010E0B701A601002E04C0769567955795D1
:103BC00047950A94D2F740FF07C0BE01802F0E949C
:103BD000E71F8130910539F40150110950F7BE01FA
:103BE00080E00E94E71FDF91CF911F910F91FF901E
:103BF000EF90DF90CF90089540910D0150910E010C
:103C000020E030E09FEFFA01E20FF31F62816817B6
:103C100099F09F3F19F4611101C0922F2F5F3F4F20
:103C20002630310581F79F3F39F0FA01E90FF11D88
:103C300097FDFA9582830895089540910D01509162
:103C40000E0120E030E0FA01E20FF31F9281981399
:103C500001C012822F5F3F4F26303105A1F7089532
:103C600081E090E0E0910D01F0910E01E80FF91F65
:103C70001082019688309105A9F708958091BD01C1
:103C800008959091BD01982B9093BD010895809562
:103C90009091BD0198239093BD0108958093BD013B
:103CA00008951092BD0108959091BC01982B9093B6
:103CB000BC01089580959091BC0198239093BC011C
:103CC00008951092BC0108958093B3010895109255
:103CD000B301089540910D0150910E0120E030E0B4
:103CE00080E0FA01E20FF31F918191118F5F2F5F46
:103CF0003F4F27303105A9F70895E0910D01F0916C
:103D00000E018091BD018083E0910D01F0910E01C3
:103D100080819091BC01892B80839091B30199237C
:103D200061F0E0910D01F0910E018081892B80837B
:103D30000E946A1E81111092B30180910D01909131
:103D40000E010C94FF119093350180933401089576
:103D50008295982F9C7C96959695837344E0849FDA
:103D600090011124922B892F8A7A86959575990F47
:103D7000892B08950895CF93DF9300D000D01F9230
:103D8000CDB7DEB70F900F900F900F900F90DF918F
:103D9000CF910895089508950C9472138091D301E2
:103DA000843009F11092BF0120E488E190E00FB661
:103DB000F894A895809360000FBE2093600083B7AD
:103DC000817F846083BF83B7816083BF7894889547
:103DD00083B78E7F83BF88E10FB6F894809360002D
:103DE000109260000FBE0895CF930E94C6130E94E8
:103DF00058080E94C713C0E08C2F0E943E09811111
:103E000005C0CF5FC031C1F780E001C081E0CF9134
:103E100008950E9474130C94A1181F920F920FB66C
:103E20000F9211248F939F93AF93BF938091BF0103
:103E3000811113C08091C0019091C101A091C20174
:103E4000B091C3014196A11DB11D8093C001909313
:103E5000C101A093C201B093C301BF91AF919F91E3
:103E60008F910F900FBE0F901F90189582E084BD28
:103E700093E095BD9AEF97BD80936E0008952FB79C
:103E8000F8948091C0019091C101A091C201B091BC
:103E9000C3012FBF08952FB7F8946091C0017091AE
:103EA000C1018091C2019091C3012FBF0895CF92AB
:103EB000DF92EF92FF920F931F932FB7F8944091E8
:103EC000C0015091C1016091C2017091C3012FBF27
:103ED0006A017B01EE24FF248C0120E030E0C01653
:103EE000D106E206F30610F441505109481B590B64
:103EF000CA011F910F91FF90EF90DF90CF9008952E
:103F00001F920F920FB60F9211248F939F93AF932E
:103F1000BF938091C0019091C101A091C201B09165
:103F2000C3010196A11DB11D8093C0019093C101F1
:103F3000A093C201B093C301BF91AF919F918F91A4
:103F40000F900FBE0F901F9018950E94170FF894B6
:103F50002FEF87EA91E6215080409040E1F700C0C2
:103F6000000087E090EBDC018093DC019093DD01A1
:103F7000A093DE01B093DF012CE088E190E00FB662
:103F8000F894A895809360000FBE20936000FFCF47
:103F900080E090E008950895E72FF0E090E1899F98
:103FA000E00DF11D112483E0EE0FFF1F8A95E1F76C
:103FB000E60FF11DEC51FF4F84910895E82FF0E0DA
:103FC000EE0FFF1FE05AF0408591949108950E94F2
:103FD000CC1F90E4980F903218F40E94DE1F0895D1
:103FE0008D3B60F4883AA0F5853A38F5843010F5B9
:103FF000813009F088C021E030E087C0883E98F425
:10400000803EC0F48F3B09F07EC00E94A1182FEFC4
:1040100080E792E0215080409040E1F700C000002E
:104020000E94A51F70C0803F08F46DC0282F30E0AB
:1040300030656BC0282F30E068C0853A21F0863AA1
:1040400021F492E803C091E801C093E880E458C0ED
:10405000883A51F1893A51F18A3A51F18B3A51F14A
:104060008C3A51F18D3A51F18E3A51F18F3A51F12A
:10407000813B51F1803B51F1823B51F1833B51F146
:10408000843B51F1853B51F1863B59F1873B59F116
:10409000883B59F1893B59F18A3B59F18B3B59F1E6
:1040A0008C3B61F59AE228C092EE29C099EE27C0B8
:1040B0009AEE25C095EB23C096EB21C093EB1FC071
:1040C00094EB1DC097EB1BC09CEC19C09DEC17C076
:1040D00093E805C09AE803C092E901C094E985E439
:1040E0000FC091E209C093E207C094E205C095E2D7
:1040F00003C096E201C097E286E402C090E084E447
:10410000292F382F02C020E030E0C90108958091A6
:10411000C60180FF0BC06091120185E0689FB0016D
:10412000112475956795759567952AC081FF09C01B
:104130006091120185E0689FB00111247595679523
:104140001FC082FF07C06091120185E0689FB00127
:10415000112416C04091C7014423C9F06091110198
:10416000461788F72091120185E0289F90011124BD
:10417000429FC001439F900D112470E00E942128AE
:104180006038710540F46115710539F002C065E0D1
:1041900070E0862F08958FE7089581E0089580915B
:1041A000C60180FF08C06091100170E075956795A9
:1041B0007595679521C081FF06C06091100170E080
:1041C0007595679519C082FF04C06091100170E079
:1041D00010C08091C7018823C1F060910F0186173C
:1041E000A0F790911001989FC001112470E00E94E7
:1041F00021286038710528F46115710521F0862F9A
:1042000008958FE7089581E0089561E070E0F4CFAC
:10421000803F21F40E948720819504C0813F29F4CA
:104220000E9487208093CA010895823F21F40E9452
:104230008720819504C0833F29F40E9487208093C2
:10424000C9010895893F19F40E94CF2005C08A3F13
:1042500031F40E94CF2081958093CB0108958B3F4C
:1042600021F40E94CF20819504C08C3F29F40E9444
:10427000CF208093CC010895843F21F48091C80120
:10428000816017C0853F21F48091C801826011C010
:10429000863F21F48091C80184600BC0873F21F4E0
:1042A0008091C801886005C0883F31F48091C801C1
:1042B00080618093C80108958D3F21F48091C601EB
:1042C00081600BC08E3F21F48091C601826005C0E1
:1042D0008F3F29F48091C60184608093C6010895C0
:1042E000803F39F48091CA0187FF6CC01092CA01E7
:1042F00069C0813F29F48091CA011816BCF362C0DD
:104300009091C901823F29F497FF5CC01092C901C6
:1043100059C0833F19F41916CCF354C0893F41F4B6
:104320008091CB0118160CF04DC01092CB014AC001
:104330008A3F29F48091CB0187FF44C0F6CF8B3FA1
:1043400039F48091CC0187FF3DC01092CC013AC076
:104350008C3F29F48091CC011816BCF333C0843F04
:1043600021F48091C8018E7F17C0853F21F4809190
:10437000C8018D7F11C0863F21F48091C8018B7FD9
:104380000BC0873F21F48091C801877F05C0883F1B
:1043900031F48091C8018F7E8093C80113C08D3F96
:1043A00021F48091C6018E7F0BC08E3F21F4809155
:1043B000C6018D7F05C08F3F29F48091C6018B7F98
:1043C0008093C6018091C90181110EC08091CA01FC
:1043D00081110AC08091CB01811106C08091CC016E
:1043E000811102C01092C70108958091BE0183FF20
:1043F0007EC08DE595E00E94EB058091C8011F927B
:104400008F9388E595E09F938F930E94840686E5BD
:1044100095E00E94EB052091C901822F992787FD25
:1044200090959F932F9383E595E09F938F930E94A0
:10443000840681E595E00E94EB052091CA01822F58
:10444000992787FD90959F932F938EE495E09F93F6
:104450008F930E9484068CE495E00E94EB052091E6
:10446000CB01822F992787FD90959F932F9389E405
:1044700095E09F938F930E94840687E495E00E94C5
:10448000EB052091CC01822F992787FD90959F9372
:104490002F9384E495E09F938F930E94840681E498
:1044A00095E00E94EB058091C7011F928F938EE3E8
:1044B00095E09F938F930E9484068CE395E00E9481
:1044C000EB058091C6011F928F9389E395E09F933E
:1044D0008F930E94840686E395E00E94EB058DB7DA
:1044E0009EB74C960FB6F8949EBF0FBE8DBF88EC5A
:1044F00091E00E9444120E943F1F9093C501809357
:10450000C40108951F93CF93DF938091C4019091CC
:10451000C5010E94571F4091C701442321F02091FB
:10452000130130E006C0209114015AE0259F90014C
:1045300011248217930708F482C08091C901109159
:10454000CA01D091CB01C091CC01811107C01111DA
:1045500005C0D11103C0CC2309F471C04F3F19F03D
:104560004F5F4093C701181624F40E948720809360
:10457000C9018091C90187FF05C00E9487208195EC
:104580008093C901111624F40E9487208093CA01E8
:104590008091CA0187FF05C00E9487208195809382
:1045A000CA016091C901662339F11091CA01112332
:1045B00019F1772767FD7095872F972F0E9426277F
:1045C00023E333E343E35FE30E948A270E94F32659
:1045D0006093C901612F772767FD7095872F972F0B
:1045E0000E94262723E333E343E35FE30E948A2705
:1045F0000E94F3266093CA011D1624F40E94CF2066
:104600008093CB018091CB0187FF05C00E94CF2012
:1046100081958093CB011C1624F40E94CF208093B7
:10462000CC018091CC0187FF05C00E94CF208195ED
:104630008093CC01DF91CF911F910C94F521DF91F4
:10464000CF911F910895E8ECF1E085E0DF011D9224
:104650008A95E9F71092C7011092C601089580E883
:1046600097E00E94EB051F9281E08F931F9285E0F7
:104670008F9382E397E09F938F930E9484060F901D
:104680000F900F900F900F900F9008958330E9F1E5
:1046900028F4813061F0823009F10895853009F401
:1046A00062C008F449C0863009F474C008952091AE
:1046B0001401862F90E0820F911D8F3F910520F409
:1046C000620F6093140103C08FEF809314018091F7
:1046D00014011F928F938BE696E072C02091130114
:1046E000862F90E0820F911D8F3F910520F4620F7D
:1046F0006093130103C08FEF809313018091130126
:104700001F928F9389E596E05BC020911201862F5E
:1047100090E0820F911D8F3F910520F4620F60930E
:10472000120103C08FEF80931201809112011F923A
:104730008F9386E496E044C020911101862F90E08B
:10474000820F911D8F3F910520F4620F609311013C
:1047500003C08FEF80931101809111011F928F93FD
:1047600081E396E02DC020911001862F90E0820F0A
:10477000911D8F3F910520F4620F6093100103C0DB
:104780008FEF80931001809110011F928F9388E129
:1047900096E016C020910F01862F90E0820F911DA8
:1047A0008F3F910520F4620F60930F0103C08FEFDC
:1047B00080930F0180910F011F928F938DEF95E0F1
:1047C0009F938F930E9484060F900F900F900F90ED
:1047D0000895833081F128F4813059F08230D1F08E
:1047E0000895853009F449C0B8F1863009F456C0FF
:1047F000089580911401681720F4861B809314019A
:1048000002C010921401809114011F928F938EEEBA
:1048100095E054C080911301681720F4861B8093A3
:10482000130102C010921301809113011F928F9304
:104830008CED95E043C080911201681720F4861B2F
:104840008093120102C010921201809112011F92F6
:104850008F9389EC95E032C080911101681720F4A4
:10486000861B8093110102C01092110180911101E9
:104870001F928F9384EB95E021C0809110016817FF
:1048800020F4861B8093100102C0109210018091C9
:1048900010011F928F938BE995E010C080910F015A
:1048A000681720F4861B80930F0102C010920F013D
:1048B00080910F011F928F9380E895E09F938F93D3
:1048C0000E9484060F900F900F900F900895CF9341
:1048D000C82F1F928F9325E838E03F932F930E94B3
:1048E000840661E070E080E090E004C0660F771F0E
:1048F000881F991FCA95D2F70E94E21C0F900F9053
:104900000F900F90CF910C94A118CF93873288F518
:104910008E3108F008C18E3009F486C0D8F4873093
:1049200009F460C08B3009F44FC0863009F0FFC035
:104930008091BE01817F8E7F8093BE018AE898E0DE
:104940000E94EB058EE29BE00E94EB0581E08093E4
:10495000CE0146C0863109F4ADC020F4803109F49F
:1049600078C0E5C0893109F48EC08B3109F449C0A3
:10497000DEC0883349F150F4893209F4D2C085335E
:1049800009F4CFC0873209F0D2C0CBC0833409F418
:10499000C8C028F48A3308F4CAC08953C5C0883413
:1049A00009F0C5C00E94A1188DE19BE00E94EB05B3
:1049B0002FEF83ED90E3215080409040E1F700C05D
:1049C00000000E94A51F0CC081EB98E03FC084E06E
:1049D0009BE00E94EB058091BE0181608093BE0147
:1049E000C1E0AAC08091BE01C82FC17080FFEFCF87
:1049F00080E19BE00E94EB058091BE01817F8E7F6C
:104A00003CC08091BE0181FBCC27C0F991E0C92751
:104A1000C0FB81F98093BE01CC2319F087EF9AE0A7
:104A200027C089EE9AE012C08091BE0182FBCC279C
:104A3000C0F991E0C927C0FB82F98093BE01CC2365
:104A400019F08AED9AE014C08AEC9AE00E94EB0516
:104A5000C7CF8091BE0183FBCC27C0F991E0C92765
:104A6000C0FB83F98093BE01CC2351F08EEB9AE01A
:104A70000E94EB058091BE0181608093BE015CC005
:104A800081EB9AE0E3CF82EA9AE00E94EB058FE7A0
:104A90009AE00E94EB058AE39AE00E94EB0583E12D
:104AA0009AE00E94EB058DED99E00E94EB058FEAFC
:104AB00099E0CCCF81EA99E00E94EB050E94F311C6
:104AC0001F928F9387E899E09F938F930E948406AB
:104AD00080910C011F928F9380E799E09F938F93B1
:104AE0000E94840680915B011F928F938DE599E06F
:104AF0009F938F930E9484060E944B1F9F938F93D6
:104B00007F936F9386E499E09F938F930E9484062E
:104B10008DB79EB742960FB6F8949EBF0FBE8DBF5D
:104B20005FCF80E001C08D510E94672459CF84E49B
:104B300099E00E94EB05C0E08C2FCF91089580E0B2
:104B4000089580E00895CF93C82F8091CE018130E1
:104B500069F020F0823009F446C03DC167E08FE083
:104B60000E947613882309F43CC106C067E08FE0F9
:104B70000E947613882349F08C2F0E949F25811173
:104B80002FC08C2F0E9485242CC08C2F0E94A12521
:104B9000811126C0C431E1F070F4CB3081F0C03116
:104BA000D1F40E942F238DE798E00E94EB0582E06C
:104BB0008093CE0115C0C93259F0C83361F48AE838
:104BC00098E00E94EB0581E898E00E94EB0508C0A0
:104BD0001092CE0104C18BE798E00E94EB05FFC064
:104BE00081E08170FEC0C43228F5CE3108F0C1C02A
:104BF000CB30A1F1D0F4C73009F0D3C08EE180935F
:104C0000140182E3809313018AE08093120184E10E
:104C10008093110188E08093100188E280930F0156
:104C200081E297E00E94EB05BFC0C33149F1C43176
:104C3000C1F0B7C0CB3409F4A9C028F4C93289F057
:104C4000C83361F0AEC0C13509F49EC0C23509F465
:104C500099C0CE3409F0A5C06AE09EC00E942F23FF
:104C6000A3C08091CD01882319F01092CD019CC082
:104C70008EE297E00E94EB0581E08093CE01B1C007
:104C800088E097E00E94EB0586EF96E00E94EB0536
:104C9000809114011F928F9383EF96E09F938F93DF
:104CA0000E94840681EF96E00E94EB058FED96E06E
:104CB0000E94EB05809113011F928F938CED96E07B
:104CC0009F938F930E9484068AED96E00E94EB05E5
:104CD0008BEC96E00E94EB05809112011F928F935E
:104CE00088EC96E09F938F930E94840686EC96E072
:104CF0000E94EB0585EB96E00E94EB058091110187
:104D00001F928F9382EB96E09F938F930E9484066D
:104D100080EB96E00E94EB058BE996E00E94EB05A4
:104D2000809110011F928F9388E996E09F938F9353
:104D30000E94840686E996E00E94EB058FE796E0E4
:104D40000E94EB0580910F011F928F938CE796E0F4
:104D50009F938F930E9484068AE796E00E94EB055A
:104D60008DB79EB748960FB6F8949EBF0FBE8DBF05
:104D70001BC0CE51EC2FF0E0E65DFE4F80818093AA
:104D8000CD0112C061E003C061E006C06AE080911D
:104D9000CD010E94462308C08091CD010E94E923E5
:104DA00003C08FE197E013C08091CD01882369F0A3
:104DB0001F928F9389E197E09F938F930E948406BF
:104DC0000F900F900F900F9004C086E197E00E9423
:104DD000EB0581E006C01092CE0180E002C080E0C9
:104DE00000CFCF91089504D06894B1118DC008957B
:104DF00070D088F09F5790F0B92F9927B751A0F045
:104E0000D1F0660F771F881F991F1AF0BA95C9F75E
:104E100012C0B13081F077D0B1E0089574C0672F2F
:104E2000782F8827B85F39F0B93FCCF3869577950E
:104E30006795B395D9F73EF49095809570956195F7
:104E40007F4F8F4F9F4F0895E89409C097FB3EF422
:104E500090958095709561957F4F8F4F9F4F9923C7
:104E6000A9F0F92F96E9BB279395F6958795779545
:104E70006795B795F111F8CFFAF4BB0F11F460FF05
:104E80001BC06F5F7F4F8F4F9F4F16C0882311F05D
:104E900096E911C0772321F09EE8872F762F05C071
:104EA000662371F096E8862F70E060E02AF09A950C
:104EB000660F771F881FDAF7880F9695879597F901
:104EC000089557FD9058440F551F59F05F3F71F0FA
:104ED0004795880F97FB991F61F09F3F79F0879561
:104EE0000895121613061406551FF2CF4695F1DFEA
:104EF00008C0161617061806991FF1CF869571057A
:104F0000610508940895E894BB2766277727CB01AD
:104F100097F908950BD078C069D028F06ED018F0BA
:104F2000952309F05AC05FC01124EECFCADFA0F369
:104F3000959FD1F3950F50E0551F629FF001729F2E
:104F4000BB27F00DB11D639FAA27F00DB11DAA1F4D
:104F5000649F6627B00DA11D661F829F2227B00D9A
:104F6000A11D621F739FB00DA11D621F839FA00D25
:104F7000611D221F749F3327A00D611D231F849F75
:104F8000600D211D822F762F6A2F11249F575040CC
:104F90008AF0E1F088234AF0EE0FFF1FBB1F661F67
:104FA000771F881F91505040A9F79E3F510570F020
:104FB00014C0AACF5F3FECF3983EDCF3869577955B
:104FC0006795B795F795E7959F5FC1F7FE2B880F1B
:104FD000911D9695879597F9089597F99F6780E8B1
:104FE00070E060E008959FEF80EC089500240A943B
:104FF0001616170618060906089500240A941216B4
:105000001306140605060895092E0394000C11F4E6
:10501000882352F0BB0F40F4BF2B11F460FF04C093
:105020006F5F7F4F8F4F9F4F0895991B79E004C0AA
:10503000991F961708F0961B881F7A95C9F78095D7
:10504000089597FB072E16F4009407D077FD09D03A
:105050000E943B2807FC05D03EF4909581959F4F18
:105060000895709561957F4F0895EE0FFF1F05908D
:10507000F491E02D0994AA1BBB1B51E107C0AA1FA4
:10508000BB1FA617B70710F0A61BB70B881F991FE9
:105090005A95A9F780959095BC01CD010895F89493
:0250A000FFCF40
:1050A200FFFF680A590B360B020BCF0A01B4012825
:1050B20008140A321E404D36229E0451041B04F984
:1050C2000385039E03B703D0030001020304050610
:0450D20007080900C2
:00000001FF

Post your Makefie here. I'm pretty sure that will need to be edited.

Offline mrrm14

  • Posts: 3
Re: ADB to USB keyboard converter
« Reply #704 on: Thu, 06 April 2017, 13:24:18 »
Hi All,

I'm following this handy little guide to convert the Apple Extended Keyboard II to USB:
http://ifixit.org/blog/4468/hack-it-better-apple-extended-keyboard-ii/

I followed all of the instructions to the letter but I have a problem. The Teensy 2 powers on when plugged as does the Keyboard Num Lock, Caps Lock and Scroll Lock LEDs. The Teensy' LED is on constantly but flashes every 10 seconds. When it flashes the mouse pointer on the screen moves about an inch to the right.

I'm still a bit new to micro controllers and Hex Code so I can't debug the issue myself, to my eyes it seems all good. I've included the code used and my wiring.

Any advice is much appreciated!

Thanks!

http://imgur.com/a/omVjP

Code: [Select]
:100000000C9499050C94DD050C94DD050C94DD052C
:100010000C94DD050C94DD050C94DD050C94DD05D8
:100020000C94DD050C94DD050C94920F0C94641077
:100030000C940D1F0C94DD050C94DD050C94DD056E
:100040000C94DD050C94DD050C94DD050C94DD05A8
:100050000C94DD050C94801F0C94DD050C94DD05DB
:100060000C94DD050C94DD050C94DD050C94DD0588
:100070000C94DD050C94DD050C94DD050C94DD0578
:100080000C94DD050C94DD050C94DD050C94DD0568
:100090000C94DD050C94DD050C94DD050C94DD0558
:1000A0000C94DD050C94DD050C94DD05C910EB10F6
:1000B000D611EB10D6112D115011D611A511B81172
:1000C000B715B715E515E51541167D16801880188A
:1000D000951680188C178C175A18801880186E186F
:1000E00035A131A1041607090B0A1D1B0619640569
:1000F000141A08151C171E1F202123222E26242D1A
:1001000025273012182F0C13280F0D340E33C1364B
:10011000381110372B2CC02A5829E0E3E182E25035
:100120004F5152006C6365556D570053A9AAA854EE
:100130005800566D6E2E62595A5B5C5D5E5F6F6053
:10014000618987853E3F403C4142914490466B47E0
:10015000004365450048494A4B4C3D4D3B4E3AE50E
:10016000E6E40000AAA9A8090B0A1D1B06196405EC
:10017000141A08151C173A3B3C3D3F3E454240448B
:100180004143494718524648284B0D4F4A50C14DEC
:100190005111104E2B2CC04C5835E0E3E182E24A5D
:1001A0004D4E4B006CF565F66DF90053A9AAA8F504
:1001B000F600FA6D6EF4F4FBF1FCF2F1F3FA6FF075
:1001C000F98987853E3F403C4142914490466B47C8
:1001D000004365450048494A4B4C3D4D3B4E3AE58E
:1001E000E6E400006164625F686F73745F6B626471
:1001F0005F726563763A204552524F522825642932
:100200000A000A0025303458006164625F686F7329
:10021000745F6B62645F726563763A200045525288
:100220004F523A206D65646961206B6579300A0030
:100230004552524F523A206D65646961206B657971
:10024000310A005D0A0025640020002564007C005E
:100250002530325800200025303258006164625F3A
:100260006D6F757365207261773A205B000A002517
:1002700030313662006164625F686F73745F6D6F06
:100280007573655F726563763A20006465627567B1
:1002900020656E61626C65642E0A005363616E3A7C
:1002A00020616464723A25642C20726567333A25B4
:1002B0003034580A00416674657220696E69743A78
:1002C0000A00466F756E643A206D65646961206B43
:1002D0006579730A005363616E3A20616464723A0F
:1002E00025642C20726567333A253034580A004261
:1002F00065666F726520696E69743A0A004B6579AC
:10030000626F6172642073746172742E0A005553B7
:100310004220636F6E666967757265642E0A000D10
:100320000A696E69740A005B445D005B435D002EE0
:100330000341004400420020006B00650079006228
:10034000006F00610072006400200063006F006EA7
:100350000076006500720074006500720000000EF7
:100360000374002E006D002E006B002E00000004B0
:1003700003090409027400040100A032090400000A
:1003800001030101000921110100012240000705BC
:10039000810308000A090401000103010200092188
:1003A00011010001224D000705820308000A09041B
:1003B00002000103000000092111010001223600A2
:1003C0000705830308000A09040300020300000074
:1003D00009211101000122220007058403200001E8
:1003E000070504032000011201100100000008EDC0
:1003F000FEDB0A0101010200010631FF0974A101BF
:100400000975150026FF00952075088102097615EB
:100410000026FF00952075089102C005010980A102
:1004200001850216810026B7001A81002AB70075DF
:100430001095018100C0050C0901A1018503160179
:1004400000269C021A01002A9C0275109501810069
:10045000C005010902A1010901A10005091901292D
:10046000051500250195057501810295017503812A
:10047000010501093009311581257F950275088133
:100480000609381581257F950175088106050C0A36
:1004900038021581257F950175088106C0C00501C8
:1004A0000906A101050719E029E7150025019508AE
:1004B0007501810295017508810105081901290559
:1004C00095057501910295017503910105071900C4
:1004D00029FF150026FF00950675088100C0636F8F
:1004E0006E73756D65723A20253034580A00737941
:1004F0007374656D3A20253034580A000A0025309F
:10050000325820006B6579626F6172643A20004C4A
:1005100045443A20253032580A00253032583A20D6
:100520002530386225730A00722F63203031323350
:10053000343536370A00290A002575002F00257545
:10054000005D28002564002000256400200025644B
:100550000020002564007C0025303258006D6F7546
:1005600073656B6579205B62746E7C782079207688
:1005700020685D287265702F61636C293A205B00EA
:100580006D6B5F776865656C5F74696D655F746FCF
:100590005F6D6178203D2025640A006D6B5F776890
:1005A00065656C5F6D61785F7370656564203D2083
:1005B00025640A006D6B5F74696D655F746F5F6DB4
:1005C0006178203D2025640A006D6B5F6D61785F66
:1005D0007370656564203D2025640A006D6B5F695A
:1005E0006E74657276616C203D2025640A006D6B27
:1005F0005F64656C6179203D2025640A006D6B5F46
:10060000776865656C5F74696D655F746F5F6D6158
:1006100078203D2025640A006D6B5F776865656C06
:100620005F6D61785F7370656564203D2025640AA5
:10063000006D6B5F74696D655F746F5F6D617820CD
:100640003D2025640A006D6B5F6D61785F73706596
:100650006564203D2025640A006D6B5F696E7465DA
:100660007276616C203D2025640A006D6B5F6465C5
:100670006C6179203D2025640A000A00257500364A
:100680003A20776865656C5F74696D655F746F5F4C
:100690006D61783A20000A00257500353A207768A8
:1006A00065656C5F6D61785F73706565643A2000A5
:1006B0000A00257500343A2074696D655F746F5FB8
:1006C0006D61783A20000A00257500333A206D618B
:1006D000785F73706565643A20000A002575003202
:1006E0003A20696E74657276616C286D73293A20C0
:1006F000000A00257500313A2064656C6179282A6A
:1007000031306D73293A20000A092D2056616C752D
:100710006573202D0A004D3E004D25643E20003FAC
:10072000007365742064656661756C740A00433EED
:10073000200077686572652064656C74613A206397
:100740007572736F723D25642C20776865656C3D0A
:1007500025640A53656520687474703A2F2F656E9E
:100760002E77696B6970656469612E6F72672F7788
:10077000696B692F4D6F7573655F6B6579730A00DF
:100780000A092D204D6F7573656B6579202D0A451B
:1007900053432F713A09717569740A313A096465D6
:1007A0006C6179282A31306D73290A323A09696EF1
:1007B00074657276616C286D73290A333A096D612C
:1007C000785F73706565640A343A0974696D655FB2
:1007D000746F5F6D61780A353A09776865656C5F9B
:1007E0006D61785F73706565640A363A097768658C
:1007F000656C5F74696D655F746F5F6D61780A0A1F
:10080000703A097072696E742076616C7565730A4E
:10081000643A097365742064656661756C74730A63
:1008200075703A092B310A646F776E3A092D310AD7
:10083000706775703A092B31300A7067646F776E94
:100840003A092D31300A0A7370656564203D2064D1
:10085000656C7461202A206D61785F7370656564D2
:10086000202A2028726570656174202F2074696DBC
:10087000655F746F5F6D6178290A003F004D3E200F
:1008800000433E20004C25640A000A092D20436FD6
:100890006E736F6C65202D0A4553432F713A0971B1
:1008A0007569740A6D3A096D6F7573656B65790AC0
:1008B000000A092D204D61676963202D0A643A09F9
:1008C00064656275670A783A096465627567206DC8
:1008D00061747269780A6B3A096465627567206BA6
:1008E0006579626F6172640A6D3A09646562756761
:1008F000206D6F7573650A763A0976657273696F54
:100900006E0A733A097374617475730A633A096302
:100910006F6E736F6C65206D6F64650A302D343AAD
:10092000096C61796572302D34284631302D46349A
:10093000290A506175733A09626F6F746C6F616454
:1009400065720A003F0074696D65725F726561646B
:10095000333228293A202530346C580A006B6579E7
:10096000626F6172645F69646C653A2025580A00A1
:100970006B6579626F6172645F70726F746F636FC1
:100980006C3A2025580A00686F73745F6B65796252
:100990006F6172645F6C65647328293A2025580A78
:1009A000000A092D20537461747573202D0A0047C5
:1009B00043433A20342E382E31204156522D4C4993
:1009C00042433A20312E382E3073766E20415652F3
:1009D0005F415243483A20617672350A004F5054C5
:1009E000494F4E533A204C554641204D4F555345A3
:1009F0004B45592045585452414B455920434F4E81
:100A0000534F4C4520434F4D4D414E4420343039D7
:100A1000360A004255494C443A20346265666338D0
:100A200037202830303A30353A3233204170722046
:100A300020362032303137290A005649443A2030D6
:100A4000784645454428742E6D2E6B2E292050493A
:100A5000443A2030783041444228414442206B657A
:100A600079626F61726420636F6E7665727465720D
:100A700029205645523A203078303130310A00442E
:100A80004553433A20636F6E766572742041444249
:100A9000206B6579626F61726420746F20555342D8
:100AA0000A000A092D2056657273696F6E202D0A9F
:100AB000000A6D6F7573653A206F66660A000A6DED
:100AC0006F7573653A206F6E0A000A6B6579626F05
:100AD0006172643A206F66660A000A6B6579626F1C
:100AE0006172643A206F6E0A000A6D6174726978EF
:100AF0003A206F66660A000A6D61747269783A205E
:100B00006F6E0A000A64656275673A206F6E0A00AC
:100B10000A64656275673A206F66660A000A0A62AF
:100B20006F6F746C6F616465722E2E2E2000433ED1
:100B3000200011241FBECFEFDAE0DEBFCDBF04B628
:100B400003FE24C08091DC019091DD01A091DE01C3
:100B5000B091DF018730904BA740B04BB9F41092B1
:100B6000DC011092DD011092DE011092DF0114BE53
:100B700084B7877F84BF88E10FB6F89480936000C4
:100B8000109260000FBEE0E0F8E3099511E0A0E0EC
:100B9000B1E0E2EAF0E502C005900D92A433B1079E
:100BA000D9F721E0A4E3B1E001C01D92AC3DB2074A
:100BB000E1F70E94C50C0C944F280C940000FF93A1
:100BC000EF93E0913401F0913501309709F00995E8
:100BD000EF91FF910895FC018591803011F0EFDFD6
:100BE000FBCF0895FF27E0E230E247FF0CC04195BC
:100BF00097FF09C0EDE26095709580959095611D15
:100C0000711D811D911D27FF02C0219530E350E227
:100C1000AA27660F771F881F991FAA1FA41710F015
:100C2000A41B63955A95A9F7AA3008F0A95FA05DA7
:100C3000AF93F395611571058105910541F7ED328B
:100C400011F4EF93F395F21718F43F93F395FBCF5C
:100C50008F91B5DFFA95E1F70895E991F9918591C2
:100C6000803021F0853219F0AADFF9CF089520E015
:100C7000E89455915532C1F3503311F4689455916D
:100C80005A3348F4505390F3220F022E220F220FB2
:100C9000200D250FF4CF0EF42195899199915336AB
:100CA00019F3533729F1533559F1BC018827992796
:100CB000E8945C3621F48991999168945591543661
:100CC00039F446EF7EF077FF0DC08FEF9FEF0AC03B
:100CD00055374AE039F0583540E121F0523642E0CC
:100CE00009F00895FF93EF937DDFEF91FF91B7CF68
:100CF000FF93EF93FC0181918030B9F360DFFBCF6C
:100D0000FF93EF9368DFF1CFDF93CF93CDB7DEB7DB
:100D10002596A3DFCF91DF910895282F2770E82F24
:100D2000E695E695E695EF70F0E0E95CFE4F87FF0B
:100D30000CC081E090E0022E01C0880F0A94EAF70F
:100D40008095908189238083089581E090E0022E30
:100D500001C0880F0A94EAF79081982B9083089538
:100D60000F931F93CF93DF93569A5E9A0E949E092A
:100D70002FEF87EA91E6215080409040E1F700C0D4
:100D800000008FEE92E09F938F930E9484060F9055
:100D90000F90C1E0D0E005ED12E063E08C2F0E94DF
:100DA000A209009771F09F938F93DF93CF931F93C6
:100DB0000F930E9484060F900F900F900F900F904A
:100DC0000F909FEF29EF80E0915020408040E1F7A5
:100DD00000C000002196C031D105F9F663E082E041
:100DE0000E94A20999278131910511F174F487308D
:100DF0009105F1F024F404970297F0F419C08930BA
:100E00009105B1F00D97C1F413C08D31910581F0BA
:100E100034F48431910561F0499771F409C0843C40
:100E2000910531F0873C910519F0813C910521F441
:100E300081E080934C0102C010924C0163E087E096
:100E40000E94A20991E0823009F090E090934D0158
:100E5000992341F082EC92E09F938F930E94840645
:100E60000F900F9023E042E063E082E00E94270AA7
:100E700085EB92E09F938F930E9484060F900F90D2
:100E8000C1E0D0E00BE912E063E08C2F0E94A209E0
:100E9000009771F09F938F93DF93CF931F930F93DE
:100EA0000E9484060F900F900F900F900F900F905C
:100EB0008FEF99EF20E0815090402040E1F700C093
:100EC00000002196C031D105F9F6E7E3F1E0119277
:100ED00081E0E734F807D9F70E94F3110E94440932
:100EE0008091BE0181608093BE018BE892E00E94F8
:100EF000EB05569A5E98DF91CF911F910F9108955F
:100F0000CF93DF938FE79BEB0197F1F700C00000D1
:100F10000E94230AEC01009711F481E0C4C097FD00
:100F200005C080914701816080934701D7FF05C0CC
:100F3000809147018E7F809347018D2F99278F7372
:100F40009927AE014F735527C6FF02C0405451097F
:100F5000D6FF02C08054910960913601772767FD62
:100F60007095469F9001479F300D569F300D11247C
:100F700021384FEF340714F421E83FEF31952195E4
:100F8000310921384FEF340714F421E83FEF219560
:100F900020934801869F9001879F300D969F300DCA
:100FA000112421388FEF380714F421E83FEF882708
:100FB0009927821B930B81382FEF920714F481E855
:100FC0009FEF8195809349018091BE0183FF60C0AE
:100FD00085E792E00E94EB05DF93CF938FE692E0E6
:100FE0009F938F930E9484068DE692E00E94EB050A
:100FF0008CE592E00E94EB0520913601822F992723
:1010000087FD90959F932F9387E592E09F938F9311
:101010000E94840685E592E00E94EB0580914701DD
:101020001F928F9380E592E09F938F930E94840696
:101030008EE492E00E94EB0520914801822F9927CF
:1010400087FD90959F932F938BE492E09F938F93CE
:101050000E94840689E492E00E94EB0520914901F8
:10106000822F992787FD90959F932F9386E492E096
:101070009F938F930E94840683E492E00E94EB0585
:101080008DB79EB744960FB6F8949EBF0FBE8DBF26
:1010900087E491E00E9444128091360191E088300B
:1010A0000CF090E0890F80933601DF91CF91089585
:1010B0001F93CF93DF93C0910001D09101018FEF77
:1010C0009FEF9093010180930001CF3F8FEFD807EE
:1010D00009F06AC08FE79BEB0197F1F700C00000B1
:1010E00082E00E94200AEC01009709F05DC0809127
:1010F0004D01882309F458C087E00E94200A009718
:1011000009F452C09C012F77332722303105A1F01A
:1011100048F42115310569F02130310599F48078C2
:101120008A641AC02330310551F02F373105A1F000
:1011300009C08078826410C0807889640DC080788E
:1011400088640AC080E392E09F938F930E94840694
:101150000F900F9081E18EC0292F33272F773327EF
:101160002130310579F050F02230310579F023300B
:10117000310581F4EC01D078D86416C0EC01D07848
:10118000D26412C0EC01D078DA640EC0EC01D078E1
:10119000D9640AC08DE192E09F938F930E948406E8
:1011A0000F900F9080E166C08091BE0181FF18C052
:1011B000209709F45CC089E092E00E94EB05DF9380
:1011C000CF9384E092E09F938F930E94840682E005
:1011D00092E00E94EB050F900F900F900F9003C0CC
:1011E000209709F444C0CF379FE7D90711F48FE760
:1011F00005C0CF3F8FEFD80721F48FEF0E948D06F7
:1012000038C02D2F3327822F1C2F2F3F81F4DF93DF
:10121000CF9384EE91E09F938F930E9484060E9467
:10122000B0060F900F900F900F908C2F23C09091CD
:101230004C01992381F0A9014F775527423351057D
:1012400021F4822F80788A6006C04A30510519F453
:10125000822F807882630E948D061F3F51F0DC2F21
:10126000CC27CF6FD0930101C093000102C080E072
:1012700001C081E0DF91CF911F910895E82FF0E048
:10128000E95CFE4F80810895682F609582E00C94A0
:10129000620A509A83E091E00197F1F700C00000E4
:1012A00050989AEB9A95F1F700C00895509A8AEBFE
:1012B0008A95F1F700C0509883E091E00197F1F72B
:1012C00000C000000895EF92FF920F931F93CF93F9
:1012D000DF93C0E0D0E000E810E0E82EF12C9801A8
:1012E0000C2E02C0359527950A94E2F72E213F2156
:1012F000232B19F00E94560902C00E944909219629
:10130000C830D10561F7DF91CF911F910F91FF9008
:10131000EF900895489B07C023E02A95F1F700005D
:1013200001970097B9F70895489907C023E02A95D7
:10133000F1F7000001970097B9F708955898509871
:1013400008950895CF92DF92EF92FF920F931F932B
:10135000CF93DF931F92CDB7DEB7182FF894509A32
:1013600083EF9BE00197F1F700C0000069830E94C2
:10137000560969816C60E0E11E9FC0011124862B33
:101380000E9463090E94490984EF91E00E94940938
:10139000892B21F4789482EE9FEF48C084EF91E08E
:1013A0000E948A09892B21F4789480E090E03EC065
:1013B00021E1F22EC12CD12C32E8E32E82E890E01C
:1013C0000E9494098C01882359F199270E948A0967
:1013D000882331F1CC0CDD1C9E2D901B081B90172F
:1013E00018F46894C0F807C0F1E1FF1204C07894C3
:1013F0008CEE9FEF1BC0FA9409F78FE591E00E94F5
:101400009409892B21F478948BEE9FEF0FC08BE524
:1014100090E00E948A09892BB1F77894C60106C032
:1014200078948F2D90E09195819591090F90DF919F
:10143000CF911F910F91FF90EF90DF90CF90089583
:1014400060E00C94A20960E083E00C94A2091F9371
:10145000CF93DF9300D01F92CDB7DEB7182FF8944B
:10146000509A83EF9BE00197F1F700C000002B83B7
:101470004A8369830E9456096981862F886090E1BA
:10148000199FF00111248E2B0E9463090E944909C3
:10149000EFE1F3E03197F1F700C000000E94560938
:1014A0004A81842F0E9463092B81822F0E94630945
:1014B0000E94490978940F900F900F90DF91CF917F
:1014C0001F910895262F277040E062E00C94270AB0
:1014D00080915A0108959FB7F894109251019FBFCF
:1014E0009091D301943009F058C09091E9009F7019
:1014F0002091EC0020FF02C020E801C020E0292B51
:1015000094E09093E9009091EB0090FF43C090919C
:10151000EE0097FF3FC090914E01992321F09091EA
:10152000E80095FF37C010924E0196E03091E80038
:1015300035FD15C03091D301343061F53091EB00A9
:1015400035FD28C0915021F481E080934E0122C0E6
:10155000EFE9FFE03197F1F700C00000E7CF80939B
:10156000F1008091E80085FD0AC08091E80080FFCD
:10157000FCCF8091E8008E778093E80006C08FB79B
:10158000F89491E0909351018FBF2F702093E90060
:1015900080E008952F702093E9008FEF0895CF9396
:1015A000DF9300D01F92CDB7DEB72091D301243056
:1015B00019F523E029839B838A832093E9008FEF29
:1015C0009091E800815095FD06C095ED9A95F1F750
:1015D00000008111F5CF8091E80085FF0DC040E04B
:1015E00050E063E070E0CE0101960E94850D80918D
:1015F000E8008E778093E8000F900F900F90DF91B6
:10160000CF910895CF93DF9300D01F92CDB7DEB76F
:101610002091D301243021F522E029839B838A8302
:1016200083E08093E9008FEF9091E800815095FD71
:1016300006C095ED9A95F1F700008111F5CF8091E4
:10164000E80085FF0DC040E050E063E070E0CE01AF
:1016500001960E94850D8091E8008E778093E800C6
:101660000F900F900F90DF91CF9108952091D301AB
:101670002430F1F422E02093E9002FEF3091E800CC
:10168000215035FD06C035ED3A95F1F700002111E6
:10169000F5CF2091E80025FF0BC040E050E065E069
:1016A00070E00E94850D8091E8008E778093E800BD
:1016B0000895CF93DF93EC018091D301843039F505
:1016C00081E08093E9008FEF9091E800815095FDD3
:1016D00006C095ED9A95F1F700008111F5CF809144
:1016E000E80085FF14C040E050E068E070E0CE0103
:1016F0000E94850D8091E8008E778093E80088E055
:10170000FE01A2E5B1E001900D928A95E1F7DF912B
:10171000CF9108958BE293E00E94EB058091D20176
:10172000811109C00E94170F0E94740F8091E2007E
:1017300084608093E200089587E293E00E94EB05C5
:101740001092D2010895089580914F018F5F809388
:101750004F0162E30E941528911135C010924F018C
:1017600080915101882379F18091D301843049F52A
:101770008091E9008F709091EC0090FF02C090E89A
:1017800001C090E0982B84E08093E9008091EB0009
:1017900080FF14C08091EE0087FF10C08091E800A8
:1017A00085FF03C01092F100F9CF8091E80080FF1F
:1017B00005C08091E8008E778093E8009F70909339
:1017C000E90010925101089542E061EC81E00E942D
:1017D000910E42E061EC82E00E94910E42E061ECE9
:1017E00083E00E94910E42E261EC84E00C94910E41
:1017F0008091D501833009F453C030F4813071F009
:10180000823009F48CC008958A3009F478C08B3096
:1018100009F45EC0893009F09AC020C08091D401DB
:10182000813A09F094C08091E800877F8093E800B6
:101830008091D8019091D901892B21F060E080E05E
:1018400090E003C068E082E591E070E00E94CE0D78
:101850008091E8008B778093E80008958091D4010F
:10186000813209F074C08091D8019091D901892BFF
:1018700009F06DC08091E800877F8093E800809137
:10188000E80082FD05C08091D3018111F8CF5FC0CF
:101890008091F10080935A018091E8008B7753C0CA
:1018A0008091D401813A09F052C08091D801909181
:1018B000D901892B09F04BC08091E800877F809384
:1018C000E8008091E80080FFFCCF80910C0136C0D9
:1018D0008091D4018132D9F58091D8019091D901BC
:1018E000892BA9F58091E800877F8093E8000E940A
:1018F000C60E8091D60180930C010C94A1188091A2
:10190000D401813221F58091E800877F8093E8003F
:101910000E94C60E8091D70180935B01089580914B
:10192000D401813AA1F48091E800877F8093E80098
:101930008091E80080FFFCCF80915B018093F100F3
:101940008091E8008E778093E8000C94C60E08958D
:101950000895089580915A018093500110925A0180
:1019600080E00E9444090E9474130C94A1180C9406
:10197000AA0C0E94CE1E8091D101882329F00E94DA
:10198000F41E81110C946F0D089584B7877F84BF76
:1019900088E10FB6F89480936000109260000FBE4B
:1019A00090E080E80FB6F894809361009093610016
:1019B0000FBE8BE69AE00E94A31E8FE193E00E9487
:1019C000EB050E94A80C0E94AB120E94170F0E9408
:1019D000740F8091E20084608093E200789480919B
:1019E000D3018430E1F78EE093E00E94EB050E9482
:1019F000AD1282E091E00E94EE118DEF92E00E9424
:101A0000EB050E94A90C8091D301853019F40E9446
:101A1000B90CF9CF0E94B312F6CF0E94091F809132
:101A2000500180935A0108950C940D0D292F3327EE
:101A300023303105A9F06CF42130310509F442C09E
:101A40002230310509F043C084E790E023E733E01A
:101A500042C021323105C9F02232310519F137C0B7
:101A600099278130910541F08230910541F0892B11
:101A700071F5EFE6F3E005C0EFE5F3E002C0EFE259
:101A8000F3E0849190E09F0126C0643000F5E62FDA
:101A9000F0E0EE0FFF1FEF5DFE4F2081318189E006
:101AA00090E019C0643098F4E62FF0E0DF01AA0F4F
:101AB000BB1FA75EBE4F2D913C91EB5EFE4F808118
:101AC00090E009C082E190E027EE33E004C080E0BE
:101AD00090E020E030E0FA0131832083089580E136
:101AE00089BD82E189BD09B400FEFDCF8091D80097
:101AF0008F7D8093D8008091E00082608093E00029
:101B00008091E00081FDFCCF0895CF92DF92EF92AB
:101B1000FF920F931F93CF93DF937C018B01EA0118
:101B20000E94E70E811131C0209731F088819981A0
:101B3000081B190BE80EF91EC12CD12C011511053B
:101B400019F18091E80085FD14C08091E8008E773E
:101B50008093E800209741F0888199818C0D9D1D2C
:101B60009983888385E011C00E94E70E882331F3B2
:101B70000CC0F70181917F018093F10001501109A0
:101B8000FFEFCF1ADF0ADACF80E0DF91CF911F910C
:101B90000F91FF90EF90DF90CF9008952091DA01A0
:101BA0003091DB012617370748F06115710539F4CC
:101BB0002091E8002E772093E80001C0B901FC01D4
:101BC00020E061157105B9F18091D301882309F4F2
:101BD00040C0853009F43FC08091E80083FD3DC0DE
:101BE0008091E80082FF06C08091E80082FF26C055
:101BF00080E008958091E80080FFE3CF2091F3001A
:101C00008091F20090E0922B6115710551F08830BF
:101C1000910538F421912093F100615071090196EA
:101C2000F3CF21E0089709F020E08091E8008E775B
:101C30008093E800C6CF2111C7CFD6CF8091D301C2
:101C4000882339F0853039F08091E80083FFCCCFCC
:101C500004C082E0089583E0089581E00895209112
:101C6000DA013091DB012617370748F0611571055D
:101C700039F42091E8002E772093E80001C0B901E3
:101C8000FC0120E061157105C1F18091D301882329
:101C900009F441C0853009F440C08091E80083FD1B
:101CA0003EC08091E80082FF06C08091E80082FF7C
:101CB00027C080E008958091E80080FFE3CF209165
:101CC000F3008091F20090E0922B6115710559F0BC
:101CD0008830910540F424912093F10031966150B1
:101CE00071090196F2CF21E0089709F020E0809178
:101CF000E8008E778093E800C5CF2111C6CFD5CFFD
:101D00008091D301882339F0853039F08091E80043
:101D100083FFCBCF04C082E0089583E0089581E083
:101D20000895982F973058F59093E900981739F057
:101D30007091EC002091ED005091F00003C0242F31
:101D4000762F50E021FF19C03091EB003E7F309399
:101D5000EB003091ED003D7F3093ED003091EB00D2
:101D600031603093EB007093EC002093ED005093C2
:101D7000F0002091EE0027FF07C09F5FD3CF8F7048
:101D80008093E90081E0089580E008958091D40176
:101D900087FD05C08091E80080FF0EC012C08091D1
:101DA000E80082FD05C08091D3018111F8CF08952C
:101DB0008091E8008B7708C08091D3018111EACF30
:101DC00008958091E8008E778093E80008958091CF
:101DD000E4009091E50045E62091EC0020FF21C051
:101DE0002091E80020FD21C02091D301222389F019
:101DF000253089F02091EB0025FD0FC02091E400F3
:101E00003091E5002817390739F3415041F0C901F5
:101E1000E3CF82E0089583E0089581E0089584E0AF
:101E200008952091E80022FFDFCF80E008950E940E
:101E3000850F0E948D0FE0EEF0E08081816080834D
:101E4000E8EDF0E080818F77808319BCA7EDB0E0EA
:101E50008C918E7F8C9380818F7E80831092D201B3
:101E600008950F931F93CF93DF930E94850F0E94D5
:101E70008D0FC8EDD0E088818F7788838881806856
:101E8000888388818F7D888319BC1092D30110923A
:101E9000CF011092D1011092D00100EE10E0F801B4
:101EA00080818B7F808388818160888342E060E0CD
:101EB00080E00E94910EE1EEF0E080818E7F8083D1
:101EC000E2EEF0E0808181608083808188608083A1
:101ED000F80180818E7F8083888180618883DF9193
:101EE000CF911F910F910895E8EDF0E080818F7EF2
:101EF0008083E7EDF0E080818160808384E082BFB1
:101F000081E08093D2010C94310FE8EDF0E0808104
:101F10008E7F80831092E20008951092DA00109272
:101F2000E10008951F920F920FB60F9211242F9384
:101F30003F934F935F936F937F938F939F93AF9351
:101F4000BF93EF93FF938091E10082FF0BC08091DC
:101F5000E20082FF07C08091E1008B7F8093E10067
:101F60000E94A40B8091DA0080FF1FC08091D800EE
:101F700080FF1BC08091DA008E7F8093DA00809111
:101F8000D90080FF0DC080E189BD82E189BD09B41F
:101F900000FEFDCF81E08093D3010E948A0B05C033
:101FA00019BC1092D3010E949C0B8091E10080FF2C
:101FB00019C08091E20080FF15C08091E2008E7F01
:101FC0008093E2008091E20080618093E200809142
:101FD000D80080628093D80019BC85E08093D3013B
:101FE0000E94B70C8091E10084FF30C08091E20034
:101FF00084FF2CC080E189BD82E189BD09B400FE67
:10200000FDCF8091D8008F7D8093D8008091E10032
:102010008F7E8093E1008091E2008F7E8093E200CA
:102020008091E20081608093E2008091CF0188235B
:1020300011F084E007C08091E30087FF02C083E0D5
:1020400001C081E08093D3010E94140D8091E100D2
:1020500083FF29C08091E20083FF25C08091E100C9
:10206000877F8093E10082E08093D3011092CF01BB
:102070008091E1008E7F8093E1008091E2008E7F6D
:102080008093E2008091E20080618093E20042E070
:1020900060E080E00E94910E8091F0008860809363
:1020A000F0000E94A30BFF91EF91BF91AF919F9120
:1020B0008F917F916F915F914F913F912F910F90F1
:1020C0000FBE0F901F9018951F920F920FB60F9290
:1020D00011242F933F934F935F936F937F938F932D
:1020E0009F93AF93BF93CF93EF93FF93C091E9007A
:1020F000CF708091EC001092E9008091F000877F12
:102100008093F00078940E94A0101092E9008091D2
:10211000F00088608093F000C093E900FF91EF9198
:10212000CF91BF91AF919F918F917F916F915F916F
:102130004F913F912F910F900FBE0F901F901895C8
:102140001F93CF93DF93CDB7DEB7AA970FB6F8945E
:10215000DEBF0FBECDBFE4EDF1E08091F1008193D1
:1021600021E0EC3DF207C9F70E94F80B8091E800EE
:1021700083FF1CC12091D4013091D501832F90E0C1
:102180008A30910508F012C1FC01EA5AFF4F0C9405
:102190003528203881F0223809F008C18091D80113
:1021A0008F708093E9008091EB0085FB882780F990
:1021B0001092E90006C08091D0019091D101911157
:1021C00082609091E800977F9093E8008093F100FF
:1021D0001092F100C5C0822F8D7F09F0E7C0222345
:1021E00019F0223061F0E2C08091D601813009F00F
:1021F000DDC0333009F080E08093D10128C08091A8
:10220000D601811124C02091D8012F7009F4CEC0CD
:102210002093E9008091EB0080FF19C08091EB00D2
:10222000333011F4806211C080618093EB0081E053
:1022300090E0022E01C0880F0A94EAF78093EA002A
:102240001092EA008091EB0088608093EB0010927E
:10225000E9008091E800877F86C02111A7C0109116
:10226000D6011F778091E3008078812B8093E30073
:102270008091E800877F8093E8000E94C60E8091DD
:10228000E80080FFFCCF8091E30080688093E3004A
:10229000112311F083E001C082E08093D30186C056
:1022A0002058223008F082C08091D6019091D70149
:1022B0008C3D23E0920779F583E08A838AE2898363
:1022C0004FB7F894DE01139620E03EE051E2E32F91
:1022D000F0E050935700E49120FF03C0E295EF70C7
:1022E0003F5FEF708E2F90E0EA3010F0C79601C08C
:1022F000C0968D939D932F5F243149F74FBF8091F6
:10230000E800877F8093E8006AE270E0CE010196E2
:102310000E94CE0D14C0AE014F5F5F4F6091D80197
:102320000E94160D009709F441C02091E800277F14
:102330002093E800BC0189819A810E942F0E809130
:10234000E8008B778093E80031C0203879F58091E0
:10235000E800877F8093E8008091CF018093F100AF
:102360008091E8008E778093E8000E94C60E1EC020
:1023700021111CC09091D6019230C0F48091E800E8
:10238000877F8093E8009093CF010E94C60E8091D2
:10239000CF01811104C08091E30087FF02C084E077
:1023A00001C081E08093D3010E94E40B8091E8009A
:1023B00083FF0AC08091E800877F8093E8008091C6
:1023C000EB0080628093EB00AA960FB6F894DEBF14
:1023D0000FBECDBFDF91CF911F9108959093610102
:1023E000809360010895E0916001F0916101309760
:1023F00021F00190F081E02D099480E00895FF9292
:102400000F931F93CF93DF938C01E0916001F091C4
:102410006101309799F10280F381E02D0995809157
:10242000BE0182FF2BC080FF04C084E095E00E94C3
:10243000EB05E80188E0F82E0EEF14E08091BE0174
:1024400080FF0BC088811F928F931F930F930E9470
:1024500084060F900F900F900F90FA942196F11030
:10246000EDCF8091BE0180FF09C08CEF94E0DF9139
:10247000CF911F910F91FF900C94EB05DF91CF91BD
:102480001F910F91FF900895E0916001F09161011B
:10249000309721F00480F581E02D09940895CF93C1
:1024A000DF93EC0180915E0190915F01C817D9071D
:1024B00009F1D0935F01C0935E01E0916001F0915A
:1024C00061013097B9F00680F781E02DCE010995C2
:1024D0008091BE0182FF0EC080FF0CC0DF93CF93BE
:1024E0008EEE94E09F938F930E9484060F900F903E
:1024F0000F900F90DF91CF910895CF93DF93EC0170
:1025000080915C0190915D01C817D90709F1D093C2
:102510005D01C0935C01E0916001F0916101309731
:10252000B9F00084F185E02DCE0109958091BE01BE
:1025300082FF0EC080FF0CC0DF93CF938EED94E03E
:102540009F938F930E9484060F900F900F900F908F
:10255000DF91CF9108950C9475130E94361F0E944D
:10256000B0060C94A109CF92DF92EF92FF920F93E5
:102570001F93CF93DF9300D000D000D0CDB7DEB74C
:102580000E94580833E6E32E31E0F32E00E010E01D
:10259000C02E802F0E943E09F701D1907F01D826DE
:1025A000B1F40F5F1F4F0031110591F78FEF898351
:1025B0008A831B820E943F1F8160782F9D838C83BA
:1025C00049815A816B818D810E94C81348C09091C6
:1025D000BE0191FF04C08E830E9492138E8120E081
:1025E00030E04D2D50E0922FBA01022E02C07595B9
:1025F00067950A94E2F760FF2CC02983CA82EE2413
:10260000E394F12C02C0EE0CFF1C9A95E2F790E0E7
:102610008E219F2121E0892B09F420E02B830E9449
:102620003F1F8160782F9D838C8349815A816B8104
:102630008D810E94C81349815A816B817C818D8173
:102640000E94BB1EF801ED59FE4F80818E258083CC
:1026500006C02F5F3F4F2830310529F6A2CF0E94D8
:10266000BA1E0E9482220E948007109162010E947D
:10267000F311181741F10E94F311809362019091B8
:10268000BE0192FF0EC090FF0CC01F928F938FE08F
:1026900095E09F938F930E9484060F900F900F9068
:1026A0000F908091620126960FB6F894DEBF0FBEA0
:1026B000CDBFDF91CF911F910F91FF90EF90DF90F1
:1026C000CF900C94CC1E26960FB6F894DEBF0FBEAA
:1026D000CDBFDF91CF911F910F91FF90EF90DF90D1
:1026E000CF9008950C94440908950895CF93DF93F3
:1026F0001F92CDB7DEB769830E943E09282F30E0D4
:1027000081E090E0698102C0880F991F6A95E2F725
:102710002823392381E0232B09F480E00F90DF91F7
:10272000CF910895EF92FF920F931F93CF93DF9372
:1027300088E295E00E94EB05C0E0D0E089E2E82E57
:1027400081E0F82E0AE115E08C2F0E943E090E94DC
:10275000A81EFF92EF921F928F93DF93CF931F9348
:102760000F930E94840621968DB79EB708960FB6E8
:10277000F8949EBF0FBE8DBFC031D10529F7DF9100
:10278000CF911F910F91FF90EF90089508950895B4
:10279000CF93DF93CDB7DEB72B970FB6F894DEBF9C
:1027A0000FBECDBF4F83588769877A878B878A850D
:1027B0009B85892B31F05F3F11F080E003C04F3FD4
:1027C000E1F781E0811107C04F81588569857A85DD
:1027D0008B850E94BB1EDE01119686E0FD011192E1
:1027E0008A95E9F785E0FE01379601900D928A956A
:1027F000E1F749815A816B817C818D819E810E94A4
:102800007F1B2B960FB6F894DEBF0FBECDBFDF91B6
:10281000CF910895CF93C82F882309F4E7C0823859
:10282000A1F40E94F31181FDE1C089E30E94FC1D27
:102830000E947D1E2FEF81EE94E021508040904059
:10284000E1F700C0000089E315C08338C1F40E949D
:10285000F31180FDCBC083E50E94FC1D0E947D1E0C
:102860002FEF81EE94E0215080409040E1F700C0CE
:10287000000083E50E941D1ECF910C947D1E8438BC
:10288000A1F40E94F31182FDB1C087E40E94FC1DF7
:102890000E947D1E2FEF81EE94E0215080409040F9
:1028A000E1F700C0000087E4E5CF8CEF8C0F813AA0
:1028B00048F48C2F0E94A325811198C08C2F0E9470
:1028C000FC1DDACF80E28C0F883048F4C77081E0BD
:1028D00001C0880FCA95EAF70E94411ECDCF8BE553
:1028E0008C0F833078F4C53A29F0C63A31F482E887
:1028F00090E005C081E890E002C083E890E0CF91CD
:102900000C944F1288E58C0F853108F06FC0C83ADF
:1029100061F1C93A69F1CA3A71F1CB3A79F1CC3A2D
:1029200081F1CD3A89F1CE3A91F1CF3A99F1C13B9B
:10293000A1F1C03BA9F1C23BB1F1C33BB9F1C43B2A
:10294000C1F1C53BC9F1C63BD1F1C73BD9F1C83B89
:10295000E1F1C93BE9F1CA3BF1F1CB3BF9F1CC3BE9
:1029600009F03FC08AE292E03EC082EE90E03BC0B8
:1029700089EE90E038C08AEE90E035C085EB90E0BB
:1029800032C086EB90E02FC083EB90E02CC084EB4C
:1029900090E029C087EB90E026C08CEC90E023C04B
:1029A0008DEC90E020C083E891E01DC08AE891E0C2
:1029B0001AC082E991E017C084E991E014C081E275
:1029C00092E011C083E292E00EC084E292E00BC07C
:1029D00085E292E008C086E292E005C087E292E0DC
:1029E00002C080E090E0CF910C947D12CF910895C9
:1029F000882309F466C08238A1F40E94F31181FF94
:102A000060C089E30E94FC1D0E947D1E2FEF81EEB5
:102A100094E0215080409040E1F700C0000089E33D
:102A200015C08338B9F40E94F31180FF4AC083E5D2
:102A30000E94FC1D0E947D1E2FEF81EE94E021502C
:102A400080409040E1F700C0000083E50E941D1E19
:102A50000C947D1E8438A1F40E94F31182FF31C0D2
:102A600087E40E94FC1D0E947D1E2FEF81EE94E002
:102A7000215080409040E1F700C0000087E4E6CF9D
:102A80009CEF980F913A10F390E2980F983050F421
:102A9000877091E001C0990F8A95EAF7892F0E940B
:102AA000471ED6CF9BE5980F933020F480E090E04E
:102AB0000C944F12885A853120F480E090E00C94F9
:102AC0007D120895882321F00E94411E0C947D1EE2
:102AD0000895882321F00E94471E0C947D1E0895BE
:102AE000CF92DF92EF92FF920F931F93CF93DF93DA
:102AF000CDB7DEB728970FB6F894DEBF0FBECDBFB7
:102B00008C0185E0F801DE01119601900D928A9505
:102B1000E1F7F80140813181F280258122952F7003
:102B200083819481892B31F03F3F31F481E04F3F25
:102B300019F403C081E001C080E080FDE1C2498357
:102B40003A8389819A812F830E94BA1D9E83888748
:102B50000E94B91D0E94E11C4E81E42FE295EF70A6
:102B6000F0E0E05AFF4F2F8168850C943528842FC0
:102B7000807F142F1F70882311F01295107FFF2083
:102B800059F0112309F471C2812F68870E94541EE5
:102B90000E947D1E688569C2862F0E94F814112349
:102BA00009F4AEC2812F0E945A1E28960FB6F894DF
:102BB000DEBF0FBECDBFDF91CF911F910F91FF9070
:102BC000EF90DF90CF900C947D1E842F807F942F08
:102BD0009F70E92E803219F0E29480EFE82266239C
:102BE00019F0613001F129C0FF20A9F08E2D2223B8
:102BF00049F1213039F528960FB6F894DEBF0FBEA3
:102C0000CDBFDF91CF911F910F91FF90EF90DF909B
:102C1000CF900C94641E222319F0213009F470C265
:102C20000E94671E2CC0FF20E9F0263008F068C221
:102C30000E943E1E8E2129F022C0FF20F1F02111BA
:102C400015C08E2D28960FB6F894DEBF0FBECDBFEF
:102C5000DF91CF911F910F91FF90EF90DF90CF9078
:102C60000C946215253008F04BC209C0F80185812B
:102C700080FFFBC18F708583E4CF21110AC28E2DA6
:102C800078C1242F26952695237030E02115310533
:102C900021F021303105C9F033C2FF2021F0862F09
:102CA000942F937002C080E090E028960FB6F894BD
:102CB000DEBF0FBECDBFDF91CF911F910F91FF906F
:102CC000EF90DF90CF900C944F12FF2021F0862FD1
:102CD000942F937002C080E090E028960FB6F8948D
:102CE000DEBF0FBECDBFDF91CF911F910F91FF903F
:102CF000EF90DF90CF900C947D12862FFF2019F07B
:102D00000E94082102C00E94702128960FB6F894F4
:102D1000DEBF0FBECDBFDF91CF911F910F91FF900E
:102D2000EF90DF90CF900C94F521842F837009F001
:102D300076C0F110E5C1262F229526952770220F27
:102D4000220F862F8F70C82ED12CE12CF12C022E51
:102D500004C0CC0CDD1CEE1CFF1C0A94D2F764FFEF
:102D600010C06FE070E080E090E004C0660F771F55
:102D7000881F991F2A95D2F7609570958095909538
:102D800003C060E070E0CB01242F269526952370C8
:102D9000422F50E042305105D1F04330510559F1F6
:102DA0006C297D298E299F294130510541F12896B2
:102DB0000FB6F894DEBF0FBECDBFDF91CF911F914C
:102DC0000F91FF90EF90DF90CF900C94F61C6C2940
:102DD0007D298E299F2928960FB6F894DEBF0FBE55
:102DE000CDBFDF91CF911F910F91FF90EF90DF90BA
:102DF000CF900C94081D0E94F61CC701B6012896BE
:102E00000FB6F894DEBF0FBECDBFDF91CF911F91FB
:102E10000F91FF90EF90DF90CF900C94E41CFF2077
:102E200019F0842F817001C08695882309F468C148
:102E3000262F229526952770220F220F862F8F701E
:102E4000C82ED12CE12CF12C022E04C0CC0CDD1CA0
:102E5000EE1CFF1C0A94D2F764FF10C06FE070E014
:102E600080E090E004C0660F771F881F991F2A95A5
:102E7000D2F7609570958095909503C060E070E002
:102E8000CB01242F269526952370422F50E0423007
:102E90005105D1F04330510559F16C297D298E2916
:102EA0009F294130510541F128960FB6F894DEBFB5
:102EB0000FBECDBFDF91CF911F910F91FF90EF908B
:102EC000DF90CF900C94951D6C297D298E299F2928
:102ED00028960FB6F894DEBF0FBECDBFDF91CF911D
:102EE0001F910F91FF90EF90DF90CF900C94A71D52
:102EF0000E94951DC701B60128960FB6F894DEBF53
:102F00000FBECDBFDF91CF911F910F91FF90EF903A
:102F1000DF90CF900C94831D603FD9F128F480E4BA
:102F2000860F803250F09CC0623F09F461C008F403
:102F30004BC0633F09F470C093C0162F1071842FEB
:102F40008F716887FF2059F00E942E1D6885862F9B
:102F5000112319F08295807F75CE8F7073CE0E94F9
:102F6000491D6885862F112319F08295807F01C045
:102F70008F7028960FB6F894DEBF0FBECDBFDF91DD
:102F8000CF911F910F91FF90EF90DF90CF900C9415
:102F90006915FF20A9F0253008F0B2C0842F8F7189
:102FA00028960FB6F894DEBF0FBECDBFDF91CF914C
:102FB0001F910F91FF90EF90DF90CF900C94681DC0
:102FC000263008F09DC0EACFFF20A1F0842F8F713A
:102FD00028960FB6F894DEBF0FBECDBFDF91CF911C
:102FE0001F910F91FF90EF90DF90CF900C942E1DCA
:102FF000FF2061F3842F8F7128960FB6F894DEBFFF
:103000000FBECDBFDF91CF911F910F91FF90EF9039
:10301000DF90CF900C94491DFF2091F0842F8F7189
:1030200028960FB6F894DEBF0FBECDBFDF91CF91CB
:103030001F910F91FF90EF90DF90CF900C941F1D88
:1030400028960FB6F894DEBF0FBECDBFDF91CF91AB
:103050001F910F91FF90EF90DF90CF900C941A1D6D
:10306000FF20A1F0222309F4B1CF862F28960FB6B6
:10307000F894DEBF0FBECDBFDF91CF911F910F91AE
:10308000FF90EF90DF90CF900C940A14222309F464
:10309000B1CF862F28960FB6F894DEBF0FBECDBFF6
:1030A000DF91CF911F910F91FF90EF90DF90CF9024
:1030B0000C94F8144F70C8010E94C81F28960FB6D0
:1030C000F894DEBF0FBECDBFDF91CF911F910F915E
:1030D000FF90EF90DF90CF900C942C1C4F70C801A4
:1030E00028960FB6F894DEBF0FBECDBFDF91CF910B
:1030F0001F910F91FF90EF90DF90CF900C94CB1F1A
:1031000028960FB6F894DEBF0FBECDBFDF91CF91EA
:103110001F910F91FF90EF90DF90CF9008950E9444
:10312000611E0E94301E0E947D1E0E9423230E9469
:10313000F52180E090E00E944F1280E090E00C9436
:103140007D120E94511E0C948F180E94BA1D292FC7
:1031500022952F7030E02C3031054CF42A303105A7
:10316000C4F4225031092230310540F021C02C3006
:103170003105D1F02F303105B9F01AC0853A28F465
:103180008430C0F4823028F415C090E2980F983053
:1031900088F0883E30F4803E68F48450813A40F4F0
:1031A00009C0803F29F406C093FB882780F9089561
:1031B00080E0089581E00895CF93DF9300D000D0A0
:1031C0001F92CDB7DEB70F900F900F900F900F901A
:1031D000DF91CF910895CF93DF9300D000D000D03E
:1031E000CDB7DEB726960FB6F894DEBF0FBECDBFC3
:1031F000DF91CF9108951F93CF93DF93C091730117
:1032000016E080917401C81799F0D0E01C9FF0017E
:103210001D9FF00D1124EB58FE4F408151816281BA
:103220007381848195810E94EB182196C770E9CF44
:10323000DF91CF911F9108954091A5015091A60172
:103240006091A7017091A8018091A9019091AA01B4
:103250000C94EB18CF938091AA0182958F7009F09E
:103260005FC08091A701882309F45AC0209173019F
:10327000A09174016091A5017091A6018091A801AF
:103280009091A90131E06F3F09F030E0B32FC6E023
:103290002A1709F445C0009721F07F3F21F44B2FF6
:1032A00003C041E001C040E030E040FD35C0C29FB6
:1032B000F001C39FF00D1124EB58FE4F41817413B0
:1032C0002BC04081641328C04281411125C0438135
:1032D00054814817590710F441505109481B590BA4
:1032E000483C5105C8F48091AA018F708061809399
:1032F000AA0186E0829FF001839FF00D1124E65819
:10330000FE4F80818F708061808385EA91E00E940A
:103310007015CF910C94FB182F5F3F4F2770B8CFDB
:10332000CF910895CF92DF92EF92FF920F931F9368
:10333000CF93DF93CDB7DEB762970FB6F894DEBFB9
:103340000FBECDBF8C0185E0F801DE011D96019016
:103350000D928A95E1F7D8014C9111965C911197E5
:1033600012966C9112971396ED90FC9014977091B1
:10337000A501E091A6012091A8013091A901211594
:10338000310531F0EF3F31F481E07F3F19F403C0A4
:1033900081E001C080E0B82FB170CB2E80FD6CC100
:1033A000D090A701DD2009F4F5C0F091AA01E21642
:1033B000F30638F0C701821B930B883C910548F057
:1033C0009BC0209530952E0D3F1D283C310508F0FF
:1033D00093C08F2F807F09F052C0E51314C074137F
:1033E00012C0D62E61110FC0FF70F061F093AA01D8
:1033F0000E941C1985EA91E00E9470158091AA0133
:10340000F80185836CC1EF2831F05F3F31F481E032
:103410004F3F19F403C081E001C080E080FD03C08C
:1034200081E0862701C080E0F82FF170FF2E80FF39
:103430001CC0809173012091740136E0821709F459
:1034400028C190E0389FF001399FF00D1124EB580E
:10345000FE4F7181571306C07081471303C07281FC
:10346000671303C001968770E9CFD62E662309F44F
:1034700036C18091AA0181608093AA0153C0E513EF
:1034800008C0741306C0611104C0D8011596FC93DE
:10349000AEC04D875E878D859E856A8B0E94A5187C
:1034A0006A89882329F1D62E662311F12091AA0179
:1034B000822F82958F7090E002970CF460C080910B
:1034C000A5019091A60198878F831986FB86EA86CD
:1034D0002C87CE01079651C0E51731F14D875E87E5
:1034E0008D859E856A8B0E94A5186A8981112EC0E0
:1034F000C8010E947015A4C08F2F807F69F77E2DB0
:10350000F98AE88A89890E94DC1885EA91E00E949C
:103510007015E5EAF1E086E0DF011D928A95E9F792
:103520000E941C19D12CDBC07413D8CF6111D6CFE7
:10353000D8011596FC93C8010E947015E5EAF1E0E8
:1035400086E0DF011D928A95E9F7C9C0D62E662371
:1035500079F22091AA01822F82958F7090E00297D4
:1035600074F08091A5019091A6019A8389831B82B2
:10357000FD82EC822E83CE0101960E94701586E0BA
:10358000F801A5EAB1E001900D928A95E1F70E9459
:103590002A196FC0E216F30628F0C701821B930BAD
:1035A0009C0104C0209530952E0D3F1D283C31050F
:1035B00008F052C0D62E662309F49ACFE5132CC02A
:1035C00074132AC08091AA0180FD1DC0982F929586
:1035D0009F70C9F0D80115968C9315979F3039F0DC
:1035E0009F5F9295907F8F70892B15968C93C80161
:1035F0000E94701586E0F801A5EAB1E001900D92F5
:103600008A95E1F736C086E0F801A5EAB1E00190BD
:103610000D928A95E1F763C04D875E878D859E8503
:103620000E94A518882379F086E0F801A5EAB1E0A8
:1036300001900D928A95E1F70E942A190E941C19A7
:10364000DD24D3944CC08091AA0181608093AA01AB
:10365000C8010E94701543C07E2DF98AE88A8989C5
:103660000E94DC18E5EAF1E086E0DF011D928A9510
:10367000E9F70E941C1933C0662309F439CF4D873E
:103680005E878D859E850E94A518882309F430CF1A
:10369000CBCF4D875E878D859E850E94BA1D292FD1
:1036A00022952F7030E0223031052CF49F7041F0CC
:1036B000811106C00CC0243031052CF49F7049F4F0
:1036C000805E883020F0C8010E947015CF2CDC2C61
:1036D00006C0D80115969C91907F91F7F8CF8D2D5B
:1036E00062960FB6F894DEBF0FBECDBFDF91CF91CB
:1036F0001F910F91FF90EF90DF90CF9008951F934F
:10370000CF93DF93CDB7DEB72C970FB6F894DEBF1B
:103710000FBECDBF4F83588769877A878B879C8779
:10372000CE0107960E9492198823C1F02F81388517
:103730008A859B85892B31F03F3F11F080E003C0E3
:103740002F3FE1F781E0811147C04F81588569859E
:103750007A858B859C850E94EB183EC086E0FE0131
:103760003796DE01119601900D928A95E1F7FF815F
:10377000E8854A855B854115510531F0EF3F31F40D
:1037800081E0FF3F19F403C081E001C080E080FDCB
:1037900023C02091740130E0C901019687709927F8
:1037A0006091730170E086179707F1F1F983EA835E
:1037B0005D834C8396E0929FD001939FB00D1124BE
:1037C000AB58BE4FFE01319601900D929A95E1F7EC
:1037D000809374010E94FB1816E080917301909110
:1037E0007401891779F1189FC00111248B589E4FDD
:1037F0000E949219882331F1E09173011E9FF0011C
:103800001124EB58FE4F4081518162817381848184
:1038100095810E94EB188091730190E0019687706A
:10382000992780937301D9CF0E94A1181092740137
:1038300010927301E5EAF1E086E0DF011D928A95BE
:10384000E9F7CACF2C960FB6F894DEBF0FBECDBFF6
:10385000DF91CF911F910895DF92EF92FF920F9326
:103860001F93CF93DF93FC01009709F48AC0E12CEA
:10387000F12CDD24D394EF0121968491853709F44E
:1038800061C058F4843708F04EC0843008F06AC034
:103890008130D1F0823071F174C0883709F45DC095
:1038A00050F4863709F455C0873709F06AC08E2D69
:1038B0000E944E1E54C09CE7980F903708F061C0DC
:1038C0008F770E94F81450C08F010E5F1F4FFE01CA
:1038D000849190E2980F983050F48770FD2D01C0CC
:1038E000FF0F8A95EAF78F2F0E94541E15C00E9481
:1038F0000A1414C08F010E5F1F4FFE01849190E2E5
:10390000980F983068F48770FD2D01C0FF0F8A95DD
:10391000EAF78F2F0E945A1E0E947D1EE80124C0E4
:103920000E94F814FBCF9F012E5F3F4FFE01C49110
:10393000CC2369F08FE99FE00197F1F700C0000008
:10394000C150F6CF9F012E5F3F4FFE01F490E90179
:103950000BC00E943E1EE82E07C00E94511E0E940E
:103960007D1E02C00E940A149F2D992341F0EFE9A9
:10397000FFE03197F1F700C000009150F6CFFE0153
:103980007ACFDF91CF911F910F91FF90EF90DF9051
:1039900008956093AF017093B0018093B10190934B
:1039A000B2010E94CA1E0C948F186093AB017093F1
:1039B000AC018093AD019093AE010E94CB1E0C949C
:1039C0008F1808950C94C91C0F931F930091AF0199
:1039D0001091B0012091B1013091B201602B712B97
:1039E000822B932B1F910F910C94C91C0F931F9343
:1039F0000091AF011091B0012091B1013091B2015D
:103A000060237123822393231F910F910C94C91C6F
:103A10000F931F930091AF011091B0012091B1015C
:103A20003091B20160277127822793271F910F9150
:103A30000C94C91C60E070E0CB010C94D51C41E0F3
:103A400050E060E070E004C0440F551F661F771F10
:103A50008A95D2F7CB01BA010C94D51C41E050E015
:103A600060E070E004C0440F551F661F771F8A9501
:103A7000D2F78091AB019091AC01A091AD01B091D2
:103A8000AE01482B592B6A2B7B2BCB01BA010C942E
:103A9000D51C41E050E060E070E004C0440F551FC9
:103AA000661F771F8A95D2F740955095609570955F
:103AB0008091AB019091AC01A091AD01B091AE01AC
:103AC000482359236A237B23CB01BA010C94D51CCC
:103AD00041E050E060E070E004C0440F551F661FF5
:103AE000771F8A95D2F78091AB019091AC01A0919C
:103AF000AD01B091AE01482759276A277B27CB013A
:103B0000BA010C94D51C0F931F930091AB01109137
:103B1000AC012091AD013091AE01602B712B822B55
:103B2000932B1F910F910C94D51C0F931F93009111
:103B3000AB011091AC012091AD013091AE01602339
:103B40007123822393231F910F910C94D51C0F9303
:103B50001F930091AB011091AC012091AD01309108
:103B6000AE0160277127822793271F910F910C9434
:103B7000D51C0895CF92DF92EF92FF920F931F937F
:103B8000CF93DF93EC01C090AF01D090B001E090F3
:103B9000B101F090B2018091AB019091AC01A09184
:103BA000AD01B091AE01C82AD92AEA2AFB2A0FE159
:103BB00010E0B701A601002E04C0769567955795D1
:103BC00047950A94D2F740FF07C0BE01802F0E949C
:103BD000E71F8130910539F40150110950F7BE01FA
:103BE00080E00E94E71FDF91CF911F910F91FF901E
:103BF000EF90DF90CF90089540910D0150910E010C
:103C000020E030E09FEFFA01E20FF31F62816817B6
:103C100099F09F3F19F4611101C0922F2F5F3F4F20
:103C20002630310581F79F3F39F0FA01E90FF11D88
:103C300097FDFA9582830895089540910D01509162
:103C40000E0120E030E0FA01E20FF31F9281981399
:103C500001C012822F5F3F4F26303105A1F7089532
:103C600081E090E0E0910D01F0910E01E80FF91F65
:103C70001082019688309105A9F708958091BD01C1
:103C800008959091BD01982B9093BD010895809562
:103C90009091BD0198239093BD0108958093BD013B
:103CA00008951092BD0108959091BC01982B9093B6
:103CB000BC01089580959091BC0198239093BC011C
:103CC00008951092BC0108958093B3010895109255
:103CD000B301089540910D0150910E0120E030E0B4
:103CE00080E0FA01E20FF31F918191118F5F2F5F46
:103CF0003F4F27303105A9F70895E0910D01F0916C
:103D00000E018091BD018083E0910D01F0910E01C3
:103D100080819091BC01892B80839091B30199237C
:103D200061F0E0910D01F0910E018081892B80837B
:103D30000E946A1E81111092B30180910D01909131
:103D40000E010C94FF119093350180933401089576
:103D50008295982F9C7C96959695837344E0849FDA
:103D600090011124922B892F8A7A86959575990F47
:103D7000892B08950895CF93DF9300D000D01F9230
:103D8000CDB7DEB70F900F900F900F900F90DF918F
:103D9000CF910895089508950C9472138091D301E2
:103DA000843009F11092BF0120E488E190E00FB661
:103DB000F894A895809360000FBE2093600083B7AD
:103DC000817F846083BF83B7816083BF7894889547
:103DD00083B78E7F83BF88E10FB6F894809360002D
:103DE000109260000FBE0895CF930E94C6130E94E8
:103DF00058080E94C713C0E08C2F0E943E09811111
:103E000005C0CF5FC031C1F780E001C081E0CF9134
:103E100008950E9474130C94A1181F920F920FB66C
:103E20000F9211248F939F93AF93BF938091BF0103
:103E3000811113C08091C0019091C101A091C20174
:103E4000B091C3014196A11DB11D8093C001909313
:103E5000C101A093C201B093C301BF91AF919F91E3
:103E60008F910F900FBE0F901F90189582E084BD28
:103E700093E095BD9AEF97BD80936E0008952FB79C
:103E8000F8948091C0019091C101A091C201B091BC
:103E9000C3012FBF08952FB7F8946091C0017091AE
:103EA000C1018091C2019091C3012FBF0895CF92AB
:103EB000DF92EF92FF920F931F932FB7F8944091E8
:103EC000C0015091C1016091C2017091C3012FBF27
:103ED0006A017B01EE24FF248C0120E030E0C01653
:103EE000D106E206F30610F441505109481B590B64
:103EF000CA011F910F91FF90EF90DF90CF9008952E
:103F00001F920F920FB60F9211248F939F93AF932E
:103F1000BF938091C0019091C101A091C201B09165
:103F2000C3010196A11DB11D8093C0019093C101F1
:103F3000A093C201B093C301BF91AF919F918F91A4
:103F40000F900FBE0F901F9018950E94170FF894B6
:103F50002FEF87EA91E6215080409040E1F700C0C2
:103F6000000087E090EBDC018093DC019093DD01A1
:103F7000A093DE01B093DF012CE088E190E00FB662
:103F8000F894A895809360000FBE20936000FFCF47
:103F900080E090E008950895E72FF0E090E1899F98
:103FA000E00DF11D112483E0EE0FFF1F8A95E1F76C
:103FB000E60FF11DEC51FF4F84910895E82FF0E0DA
:103FC000EE0FFF1FE05AF0408591949108950E94F2
:103FD000CC1F90E4980F903218F40E94DE1F0895D1
:103FE0008D3B60F4883AA0F5853A38F5843010F5B9
:103FF000813009F088C021E030E087C0883E98F425
:10400000803EC0F48F3B09F07EC00E94A1182FEFC4
:1040100080E792E0215080409040E1F700C000002E
:104020000E94A51F70C0803F08F46DC0282F30E0AB
:1040300030656BC0282F30E068C0853A21F0863AA1
:1040400021F492E803C091E801C093E880E458C0ED
:10405000883A51F1893A51F18A3A51F18B3A51F14A
:104060008C3A51F18D3A51F18E3A51F18F3A51F12A
:10407000813B51F1803B51F1823B51F1833B51F146
:10408000843B51F1853B51F1863B59F1873B59F116
:10409000883B59F1893B59F18A3B59F18B3B59F1E6
:1040A0008C3B61F59AE228C092EE29C099EE27C0B8
:1040B0009AEE25C095EB23C096EB21C093EB1FC071
:1040C00094EB1DC097EB1BC09CEC19C09DEC17C076
:1040D00093E805C09AE803C092E901C094E985E439
:1040E0000FC091E209C093E207C094E205C095E2D7
:1040F00003C096E201C097E286E402C090E084E447
:10410000292F382F02C020E030E0C90108958091A6
:10411000C60180FF0BC06091120185E0689FB0016D
:10412000112475956795759567952AC081FF09C01B
:104130006091120185E0689FB00111247595679523
:104140001FC082FF07C06091120185E0689FB00127
:10415000112416C04091C7014423C9F06091110198
:10416000461788F72091120185E0289F90011124BD
:10417000429FC001439F900D112470E00E942128AE
:104180006038710540F46115710539F002C065E0D1
:1041900070E0862F08958FE7089581E0089580915B
:1041A000C60180FF08C06091100170E075956795A9
:1041B0007595679521C081FF06C06091100170E080
:1041C0007595679519C082FF04C06091100170E079
:1041D00010C08091C7018823C1F060910F0186173C
:1041E000A0F790911001989FC001112470E00E94E7
:1041F00021286038710528F46115710521F0862F9A
:1042000008958FE7089581E0089561E070E0F4CFAC
:10421000803F21F40E948720819504C0813F29F4CA
:104220000E9487208093CA010895823F21F40E9452
:104230008720819504C0833F29F40E9487208093C2
:10424000C9010895893F19F40E94CF2005C08A3F13
:1042500031F40E94CF2081958093CB0108958B3F4C
:1042600021F40E94CF20819504C08C3F29F40E9444
:10427000CF208093CC010895843F21F48091C80120
:10428000816017C0853F21F48091C801826011C010
:10429000863F21F48091C80184600BC0873F21F4E0
:1042A0008091C801886005C0883F31F48091C801C1
:1042B00080618093C80108958D3F21F48091C601EB
:1042C00081600BC08E3F21F48091C601826005C0E1
:1042D0008F3F29F48091C60184608093C6010895C0
:1042E000803F39F48091CA0187FF6CC01092CA01E7
:1042F00069C0813F29F48091CA011816BCF362C0DD
:104300009091C901823F29F497FF5CC01092C901C6
:1043100059C0833F19F41916CCF354C0893F41F4B6
:104320008091CB0118160CF04DC01092CB014AC001
:104330008A3F29F48091CB0187FF44C0F6CF8B3FA1
:1043400039F48091CC0187FF3DC01092CC013AC076
:104350008C3F29F48091CC011816BCF333C0843F04
:1043600021F48091C8018E7F17C0853F21F4809190
:10437000C8018D7F11C0863F21F48091C8018B7FD9
:104380000BC0873F21F48091C801877F05C0883F1B
:1043900031F48091C8018F7E8093C80113C08D3F96
:1043A00021F48091C6018E7F0BC08E3F21F4809155
:1043B000C6018D7F05C08F3F29F48091C6018B7F98
:1043C0008093C6018091C90181110EC08091CA01FC
:1043D00081110AC08091CB01811106C08091CC016E
:1043E000811102C01092C70108958091BE0183FF20
:1043F0007EC08DE595E00E94EB058091C8011F927B
:104400008F9388E595E09F938F930E94840686E5BD
:1044100095E00E94EB052091C901822F992787FD25
:1044200090959F932F9383E595E09F938F930E94A0
:10443000840681E595E00E94EB052091CA01822F58
:10444000992787FD90959F932F938EE495E09F93F6
:104450008F930E9484068CE495E00E94EB052091E6
:10446000CB01822F992787FD90959F932F9389E405
:1044700095E09F938F930E94840687E495E00E94C5
:10448000EB052091CC01822F992787FD90959F9372
:104490002F9384E495E09F938F930E94840681E498
:1044A00095E00E94EB058091C7011F928F938EE3E8
:1044B00095E09F938F930E9484068CE395E00E9481
:1044C000EB058091C6011F928F9389E395E09F933E
:1044D0008F930E94840686E395E00E94EB058DB7DA
:1044E0009EB74C960FB6F8949EBF0FBE8DBF88EC5A
:1044F00091E00E9444120E943F1F9093C501809357
:10450000C40108951F93CF93DF938091C4019091CC
:10451000C5010E94571F4091C701442321F02091FB
:10452000130130E006C0209114015AE0259F90014C
:1045300011248217930708F482C08091C901109159
:10454000CA01D091CB01C091CC01811107C01111DA
:1045500005C0D11103C0CC2309F471C04F3F19F03D
:104560004F5F4093C701181624F40E948720809360
:10457000C9018091C90187FF05C00E9487208195EC
:104580008093C901111624F40E9487208093CA01E8
:104590008091CA0187FF05C00E9487208195809382
:1045A000CA016091C901662339F11091CA01112332
:1045B00019F1772767FD7095872F972F0E9426277F
:1045C00023E333E343E35FE30E948A270E94F32659
:1045D0006093C901612F772767FD7095872F972F0B
:1045E0000E94262723E333E343E35FE30E948A2705
:1045F0000E94F3266093CA011D1624F40E94CF2066
:104600008093CB018091CB0187FF05C00E94CF2012
:1046100081958093CB011C1624F40E94CF208093B7
:10462000CC018091CC0187FF05C00E94CF208195ED
:104630008093CC01DF91CF911F910C94F521DF91F4
:10464000CF911F910895E8ECF1E085E0DF011D9224
:104650008A95E9F71092C7011092C601089580E883
:1046600097E00E94EB051F9281E08F931F9285E0F7
:104670008F9382E397E09F938F930E9484060F901D
:104680000F900F900F900F900F9008958330E9F1E5
:1046900028F4813061F0823009F10895853009F401
:1046A00062C008F449C0863009F474C008952091AE
:1046B0001401862F90E0820F911D8F3F910520F409
:1046C000620F6093140103C08FEF809314018091F7
:1046D00014011F928F938BE696E072C02091130114
:1046E000862F90E0820F911D8F3F910520F4620F7D
:1046F0006093130103C08FEF809313018091130126
:104700001F928F9389E596E05BC020911201862F5E
:1047100090E0820F911D8F3F910520F4620F60930E
:10472000120103C08FEF80931201809112011F923A
:104730008F9386E496E044C020911101862F90E08B
:10474000820F911D8F3F910520F4620F609311013C
:1047500003C08FEF80931101809111011F928F93FD
:1047600081E396E02DC020911001862F90E0820F0A
:10477000911D8F3F910520F4620F6093100103C0DB
:104780008FEF80931001809110011F928F9388E129
:1047900096E016C020910F01862F90E0820F911DA8
:1047A0008F3F910520F4620F60930F0103C08FEFDC
:1047B00080930F0180910F011F928F938DEF95E0F1
:1047C0009F938F930E9484060F900F900F900F90ED
:1047D0000895833081F128F4813059F08230D1F08E
:1047E0000895853009F449C0B8F1863009F456C0FF
:1047F000089580911401681720F4861B809314019A
:1048000002C010921401809114011F928F938EEEBA
:1048100095E054C080911301681720F4861B8093A3
:10482000130102C010921301809113011F928F9304
:104830008CED95E043C080911201681720F4861B2F
:104840008093120102C010921201809112011F92F6
:104850008F9389EC95E032C080911101681720F4A4
:10486000861B8093110102C01092110180911101E9
:104870001F928F9384EB95E021C0809110016817FF
:1048800020F4861B8093100102C0109210018091C9
:1048900010011F928F938BE995E010C080910F015A
:1048A000681720F4861B80930F0102C010920F013D
:1048B00080910F011F928F9380E895E09F938F93D3
:1048C0000E9484060F900F900F900F900895CF9341
:1048D000C82F1F928F9325E838E03F932F930E94B3
:1048E000840661E070E080E090E004C0660F771F0E
:1048F000881F991FCA95D2F70E94E21C0F900F9053
:104900000F900F90CF910C94A118CF93873288F518
:104910008E3108F008C18E3009F486C0D8F4873093
:1049200009F460C08B3009F44FC0863009F0FFC035
:104930008091BE01817F8E7F8093BE018AE898E0DE
:104940000E94EB058EE29BE00E94EB0581E08093E4
:10495000CE0146C0863109F4ADC020F4803109F49F
:1049600078C0E5C0893109F48EC08B3109F449C0A3
:10497000DEC0883349F150F4893209F4D2C085335E
:1049800009F4CFC0873209F0D2C0CBC0833409F418
:10499000C8C028F48A3308F4CAC08953C5C0883413
:1049A00009F0C5C00E94A1188DE19BE00E94EB05B3
:1049B0002FEF83ED90E3215080409040E1F700C05D
:1049C00000000E94A51F0CC081EB98E03FC084E06E
:1049D0009BE00E94EB058091BE0181608093BE0147
:1049E000C1E0AAC08091BE01C82FC17080FFEFCF87
:1049F00080E19BE00E94EB058091BE01817F8E7F6C
:104A00003CC08091BE0181FBCC27C0F991E0C92751
:104A1000C0FB81F98093BE01CC2319F087EF9AE0A7
:104A200027C089EE9AE012C08091BE0182FBCC279C
:104A3000C0F991E0C927C0FB82F98093BE01CC2365
:104A400019F08AED9AE014C08AEC9AE00E94EB0516
:104A5000C7CF8091BE0183FBCC27C0F991E0C92765
:104A6000C0FB83F98093BE01CC2351F08EEB9AE01A
:104A70000E94EB058091BE0181608093BE015CC005
:104A800081EB9AE0E3CF82EA9AE00E94EB058FE7A0
:104A90009AE00E94EB058AE39AE00E94EB0583E12D
:104AA0009AE00E94EB058DED99E00E94EB058FEAFC
:104AB00099E0CCCF81EA99E00E94EB050E94F311C6
:104AC0001F928F9387E899E09F938F930E948406AB
:104AD00080910C011F928F9380E799E09F938F93B1
:104AE0000E94840680915B011F928F938DE599E06F
:104AF0009F938F930E9484060E944B1F9F938F93D6
:104B00007F936F9386E499E09F938F930E9484062E
:104B10008DB79EB742960FB6F8949EBF0FBE8DBF5D
:104B20005FCF80E001C08D510E94672459CF84E49B
:104B300099E00E94EB05C0E08C2FCF91089580E0B2
:104B4000089580E00895CF93C82F8091CE018130E1
:104B500069F020F0823009F446C03DC167E08FE083
:104B60000E947613882309F43CC106C067E08FE0F9
:104B70000E947613882349F08C2F0E949F25811173
:104B80002FC08C2F0E9485242CC08C2F0E94A12521
:104B9000811126C0C431E1F070F4CB3081F0C03116
:104BA000D1F40E942F238DE798E00E94EB0582E06C
:104BB0008093CE0115C0C93259F0C83361F48AE838
:104BC00098E00E94EB0581E898E00E94EB0508C0A0
:104BD0001092CE0104C18BE798E00E94EB05FFC064
:104BE00081E08170FEC0C43228F5CE3108F0C1C02A
:104BF000CB30A1F1D0F4C73009F0D3C08EE180935F
:104C0000140182E3809313018AE08093120184E10E
:104C10008093110188E08093100188E280930F0156
:104C200081E297E00E94EB05BFC0C33149F1C43176
:104C3000C1F0B7C0CB3409F4A9C028F4C93289F057
:104C4000C83361F0AEC0C13509F49EC0C23509F465
:104C500099C0CE3409F0A5C06AE09EC00E942F23FF
:104C6000A3C08091CD01882319F01092CD019CC082
:104C70008EE297E00E94EB0581E08093CE01B1C007
:104C800088E097E00E94EB0586EF96E00E94EB0536
:104C9000809114011F928F9383EF96E09F938F93DF
:104CA0000E94840681EF96E00E94EB058FED96E06E
:104CB0000E94EB05809113011F928F938CED96E07B
:104CC0009F938F930E9484068AED96E00E94EB05E5
:104CD0008BEC96E00E94EB05809112011F928F935E
:104CE00088EC96E09F938F930E94840686EC96E072
:104CF0000E94EB0585EB96E00E94EB058091110187
:104D00001F928F9382EB96E09F938F930E9484066D
:104D100080EB96E00E94EB058BE996E00E94EB05A4
:104D2000809110011F928F9388E996E09F938F9353
:104D30000E94840686E996E00E94EB058FE796E0E4
:104D40000E94EB0580910F011F928F938CE796E0F4
:104D50009F938F930E9484068AE796E00E94EB055A
:104D60008DB79EB748960FB6F8949EBF0FBE8DBF05
:104D70001BC0CE51EC2FF0E0E65DFE4F80818093AA
:104D8000CD0112C061E003C061E006C06AE080911D
:104D9000CD010E94462308C08091CD010E94E923E5
:104DA00003C08FE197E013C08091CD01882369F0A3
:104DB0001F928F9389E197E09F938F930E948406BF
:104DC0000F900F900F900F9004C086E197E00E9423
:104DD000EB0581E006C01092CE0180E002C080E0C9
:104DE00000CFCF91089504D06894B1118DC008957B
:104DF00070D088F09F5790F0B92F9927B751A0F045
:104E0000D1F0660F771F881F991F1AF0BA95C9F75E
:104E100012C0B13081F077D0B1E0089574C0672F2F
:104E2000782F8827B85F39F0B93FCCF3869577950E
:104E30006795B395D9F73EF49095809570956195F7
:104E40007F4F8F4F9F4F0895E89409C097FB3EF422
:104E500090958095709561957F4F8F4F9F4F9923C7
:104E6000A9F0F92F96E9BB279395F6958795779545
:104E70006795B795F111F8CFFAF4BB0F11F460FF05
:104E80001BC06F5F7F4F8F4F9F4F16C0882311F05D
:104E900096E911C0772321F09EE8872F762F05C071
:104EA000662371F096E8862F70E060E02AF09A950C
:104EB000660F771F881FDAF7880F9695879597F901
:104EC000089557FD9058440F551F59F05F3F71F0FA
:104ED0004795880F97FB991F61F09F3F79F0879561
:104EE0000895121613061406551FF2CF4695F1DFEA
:104EF00008C0161617061806991FF1CF869571057A
:104F0000610508940895E894BB2766277727CB01AD
:104F100097F908950BD078C069D028F06ED018F0BA
:104F2000952309F05AC05FC01124EECFCADFA0F369
:104F3000959FD1F3950F50E0551F629FF001729F2E
:104F4000BB27F00DB11D639FAA27F00DB11DAA1F4D
:104F5000649F6627B00DA11D661F829F2227B00D9A
:104F6000A11D621F739FB00DA11D621F839FA00D25
:104F7000611D221F749F3327A00D611D231F849F75
:104F8000600D211D822F762F6A2F11249F575040CC
:104F90008AF0E1F088234AF0EE0FFF1FBB1F661F67
:104FA000771F881F91505040A9F79E3F510570F020
:104FB00014C0AACF5F3FECF3983EDCF3869577955B
:104FC0006795B795F795E7959F5FC1F7FE2B880F1B
:104FD000911D9695879597F9089597F99F6780E8B1
:104FE00070E060E008959FEF80EC089500240A943B
:104FF0001616170618060906089500240A941216B4
:105000001306140605060895092E0394000C11F4E6
:10501000882352F0BB0F40F4BF2B11F460FF04C093
:105020006F5F7F4F8F4F9F4F0895991B79E004C0AA
:10503000991F961708F0961B881F7A95C9F78095D7
:10504000089597FB072E16F4009407D077FD09D03A
:105050000E943B2807FC05D03EF4909581959F4F18
:105060000895709561957F4F0895EE0FFF1F05908D
:10507000F491E02D0994AA1BBB1B51E107C0AA1FA4
:10508000BB1FA617B70710F0A61BB70B881F991FE9
:105090005A95A9F780959095BC01CD010895F89493
:0250A000FFCF40
:1050A200FFFF680A590B360B020BCF0A01B4012825
:1050B20008140A321E404D36229E0451041B04F984
:1050C2000385039E03B703D0030001020304050610
:0450D20007080900C2
:00000001FF

Post your Makefie here. I'm pretty sure that will need to be edited.

Makefile.teensy
Code: [Select]
TARGET = adb_usb_teensy
MCU = atmega32u4
include Makefile

Makefile
[code]# Target file name (without extension).
TARGET ?= adb_usb

# Directory common source filess exist
TMK_DIR ?= ../../tmk_core

# Directory keyboard dependent files exist
TARGET_DIR ?= .

# project specific files
SRC ?=   matrix.c \
   led.c \
   adb.c

CONFIG_H = config.h


# MCU name
# atmega32u4    Teensy2.0
# atemga32u4   TMK Converter rev.1
# atemga32u2   TMK Converter rev.2
MCU ?= atmega32u2

# Processor frequency.
#     This will define a symbol, F_CPU, in all source code files equal to the
#     processor frequency in Hz. You can then use this symbol in your source code to
#  &nbs

Offline Tactile

  • Posts: 1371
  • Location: Portland, OR
Re: ADB to USB keyboard converter
« Reply #705 on: Thu, 06 April 2017, 14:11:46 »
Rename Makefile (note no extension) to Makefie.orig - that way you can always get it back.

Save this as Makefile (note no extension) and try it again

Code: [Select]
# Target file name (without extension).
TARGET ?= adb_usb

# Directory common source filess exist
TMK_DIR ?= ../../tmk_core

# Directory keyboard dependent files exist
TARGET_DIR ?= .

# project specific files
SRC ?= matrix.c \
led.c \
adb.c

CONFIG_H = config.h


# MCU name
# atmega32u4 Teensy2.0
# atemga32u4 TMK Converter rev.1
# atemga32u2 TMK Converter rev.2
MCU ?= atmega32u4

# Processor frequency.
#     This will define a symbol, F_CPU, in all source code files equal to the
#     processor frequency in Hz. You can then use this symbol in your source code to
#     calculate timings. Do NOT tack on a 'UL' at the end, this will be done
#     automatically to create a 32-bit value in your source code.
#
#     This will be an integer division of F_USB below, as it is sourced by
#     F_USB after it has run through any CPU prescalers. Note that this value
#     does not *change* the processor frequency - it should merely be updated to
#     reflect the processor speed set externally so that the code can use accurate
#     software delays.
F_CPU ?= 16000000


#
# LUFA specific
#
# Target architecture (see library "Board Types" documentation).
ARCH ?= AVR8

# Input clock frequency.
#     This will define a symbol, F_USB, in all source code files equal to the
#     input clock frequency (before any prescaling is performed) in Hz. This value may
#     differ from F_CPU if prescaling is used on the latter, and is required as the
#     raw input clock is fed directly to the PLL sections of the AVR for high speed
#     clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL'
#     at the end, this will be done automatically to create a 32-bit value in your
#     source code.
#
#     If no clock division is performed on the input clock inside the AVR (via the
#     CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
F_USB ?= $(F_CPU)

# Interrupt driven control endpoint task(+60)
OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT


# Boot Section Size in *bytes*
#   Teensy halfKay   512
#   Teensy++ halfKay 1024
#   Atmel DFU loader 4096 for TMK Converter rev.1/rev.2
#   LUFA bootloader  4096
#   USBaspLoader     2048
OPT_DEFS += -DBOOTLOADER_SIZE=512


# Build Options
#   comment out to disable the options.
#
#BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
CONSOLE_ENABLE = yes # Console for debug(+400)
COMMAND_ENABLE = yes    # Commands for debug and configuration
#SLEEP_LED_ENABLE = yes  # Breathing sleep LED during USB suspend
#NKRO_ENABLE = yes # USB Nkey Rollover
ADB_MOUSE_ENABLE = yes
#UNIMAP_ENABLE = yes
#ACTIONMAP_ENABLE = yes         # Use 16bit actionmap instead of 8bit keymap
#KEYMAP_SECTION_ENABLE = yes # fixed address keymap for keymap editor

# ADB Mice need acceleration for todays much bigger screens.
OPT_DEFS += -DADB_MOUSE_MAXACC=8


# Optimize size but this may cause error "relocation truncated to fit"
#EXTRALDFLAGS = -Wl,--relax


#
# Keymap file
#
ifdef UNIMAP_ENABLE
    KEYMAP_FILE = unimap
else
    ifdef ACTIONMAP_ENABLE
KEYMAP_FILE = actionmap
    else
KEYMAP_FILE = keymap
    endif
endif
ifdef KEYMAP
    SRC := $(KEYMAP_FILE)_$(KEYMAP).c $(SRC)
else
    SRC := $(KEYMAP_FILE)_plain.c $(SRC)
endif


# Search Path
VPATH += $(TARGET_DIR)
VPATH += $(TMK_DIR)

include $(TMK_DIR)/protocol/lufa.mk
include $(TMK_DIR)/protocol.mk
include $(TMK_DIR)/common.mk
include $(TMK_DIR)/rules.mk

Offline mrrm14

  • Posts: 3
Re: ADB to USB keyboard converter
« Reply #706 on: Thu, 06 April 2017, 18:13:39 »
Tried the new Makefile but still the same issue.

Just so I know and can learn, what did you edit in the Makefile?

I am suspect the keyboard I have is dead :(

Offline Tactile

  • Posts: 1371
  • Location: Portland, OR
Re: ADB to USB keyboard converter
« Reply #707 on: Thu, 06 April 2017, 20:32:42 »
Tried the new Makefile but still the same issue.

Just so I know and can learn, what did you edit in the Makefile?

I am suspect the keyboard I have is dead :(

I just changed a couple of things to set the Makefile up for a Teensy 2.0:

From "MCU ?= atmega32u2" to "MCU ?= atmega32u4"

From "OPT_DEFS += -DBOOTLOADER_SIZE=4096" to "OPT_DEFS += -DBOOTLOADER_SIZE=512"

Offline secutor

  • Posts: 1
Re: ADB to USB keyboard converter
« Reply #708 on: Mon, 24 April 2017, 12:57:01 »
Hello there :)

edit: nevermind, rebooting fixed the issue? lol, ok.

i already got a working converter with a teensy 2 for almost 2 years now, but still didnt fix the iso map or the mechanical caps lock. Today I tried to make an updated hexfile for flashing but after tpying the make command into the Terminal, i'm macOS btw, i just get... nothing. Not a single file is created. Same problem happens when I try to make the file under linux, already installed gcc-avr and dfu-programmer. So is anything wrong or is it my fault?

Here the terminal output:
More
make -f Makefile.teensy clean

-------- begin --------

rm -f adb_usb_teensy.hex
rm -f adb_usb_teensy.eep
rm -f adb_usb_teensy.cof
rm -f adb_usb_teensy.elf
rm -f adb_usb_teensy.map
rm -f adb_usb_teensy.sym
rm -f adb_usb_teensy.lss
rm -f obj_adb_usb_teensy/keymap_plain.o obj_adb_usb_teensy/matrix.o obj_adb_usb_teensy/led.o obj_adb_usb_teensy/adb.o obj_adb_usb_teensy/protocol/lufa/lufa.o obj_adb_usb_teensy/protocol/lufa/descriptor.o obj_adb_usb_teensy/protocol/lufa/LUFA-git/LUFA/Drivers/USB/Class/Common/HIDParser.o obj_adb_usb_teensy/protocol/lufa/LUFA-git/LUFA/Drivers/USB/Core/AVR8/Device_AVR8.o obj_adb_usb_teensy/protocol/lufa/LUFA-git/LUFA/Drivers/USB/Core/AVR8/EndpointStream_AVR8.o obj_adb_usb_teensy/protocol/lufa/LUFA-git/LUFA/Drivers/USB/Core/AVR8/Endpoint_AVR8.o obj_adb_usb_teensy/protocol/lufa/LUFA-git/LUFA/Drivers/USB/Core/AVR8/Host_AVR8.o obj_adb_usb_teensy/protocol/lufa/LUFA-git/LUFA/Drivers/USB/Core/AVR8/PipeStream_AVR8.o obj_adb_usb_teensy/protocol/lufa/LUFA-git/LUFA/Drivers/USB/Core/AVR8/Pipe_AVR8.o obj_adb_usb_teensy/protocol/lufa/LUFA-git/LUFA/Drivers/USB/Core/AVR8/USBController_AVR8.o obj_adb_usb_teensy/protocol/lufa/LUFA-git/LUFA/Drivers/USB/Core/AVR8/USBInterrupt_AVR8.o obj_adb_usb_teensy/protocol/lufa/LUFA-git/LUFA/Drivers/USB/Core/ConfigDescriptors.o obj_adb_usb_teensy/protocol/lufa/LUFA-git/LUFA/Drivers/USB/Core/DeviceStandardReq.o obj_adb_usb_teensy/protocol/lufa/LUFA-git/LUFA/Drivers/USB/Core/Events.o obj_adb_usb_teensy/protocol/lufa/LUFA-git/LUFA/Drivers/USB/Core/HostStandardReq.o obj_adb_usb_teensy/protocol/lufa/LUFA-git/LUFA/Drivers/USB/Core/USBTask.o obj_adb_usb_teensy/common/host.o obj_adb_usb_teensy/common/keyboard.o obj_adb_usb_teensy/common/matrix.o obj_adb_usb_teensy/common/action.o obj_adb_usb_teensy/common/action_tapping.o obj_adb_usb_teensy/common/action_macro.o obj_adb_usb_teensy/common/action_layer.o obj_adb_usb_teensy/common/action_util.o obj_adb_usb_teensy/common/print.o obj_adb_usb_teensy/common/debug.o obj_adb_usb_teensy/common/util.o obj_adb_usb_teensy/common/hook.o obj_adb_usb_teensy/common/avr/suspend.o obj_adb_usb_teensy/common/avr/xprintf.o obj_adb_usb_teensy/common/avr/timer.o obj_adb_usb_teensy/common/avr/bootloader.o obj_adb_usb_teensy/common/keymap.o obj_adb_usb_teensy/common/mousekey.o obj_adb_usb_teensy/common/command.o
rm -f obj_adb_usb_teensy/keymap_plain.lst obj_adb_usb_teensy/matrix.lst obj_adb_usb_teensy/led.lst obj_adb_usb_teensy/adb.lst obj_adb_usb_teensy/protocol/lufa/lufa.lst obj_adb_usb_teensy/protocol/lufa/descriptor.lst obj_adb_usb_teensy/protocol/lufa/LUFA-git/LUFA/Drivers/USB/Class/Common/HIDParser.lst obj_adb_usb_teensy/protocol/lufa/LUFA-git/LUFA/Drivers/USB/Core/AVR8/Device_AVR8.lst obj_adb_usb_teensy/protocol/lufa/LUFA-git/LUFA/Drivers/USB/Core/AVR8/EndpointStream_AVR8.lst obj_adb_usb_teensy/protocol/lufa/LUFA-git/LUFA/Drivers/USB/Core/AVR8/Endpoint_AVR8.lst obj_adb_usb_teensy/protocol/lufa/LUFA-git/LUFA/Drivers/USB/Core/AVR8/Host_AVR8.lst obj_adb_usb_teensy/protocol/lufa/LUFA-git/LUFA/Drivers/USB/Core/AVR8/PipeStream_AVR8.lst obj_adb_usb_teensy/protocol/lufa/LUFA-git/LUFA/Drivers/USB/Core/AVR8/Pipe_AVR8.lst obj_adb_usb_teensy/protocol/lufa/LUFA-git/LUFA/Drivers/USB/Core/AVR8/USBController_AVR8.lst obj_adb_usb_teensy/protocol/lufa/LUFA-git/LUFA/Drivers/USB/Core/AVR8/USBInterrupt_AVR8.lst obj_adb_usb_teensy/protocol/lufa/LUFA-git/LUFA/Drivers/USB/Core/ConfigDescriptors.lst obj_adb_usb_teensy/protocol/lufa/LUFA-git/LUFA/Drivers/USB/Core/DeviceStandardReq.lst obj_adb_usb_teensy/protocol/lufa/LUFA-git/LUFA/Drivers/USB/Core/Events.lst obj_adb_usb_teensy/protocol/lufa/LUFA-git/LUFA/Drivers/USB/Core/HostStandardReq.lst obj_adb_usb_teensy/protocol/lufa/LUFA-git/LUFA/Drivers/USB/Core/USBTask.lst obj_adb_usb_teensy/common/host.lst obj_adb_usb_teensy/common/keyboard.lst obj_adb_usb_teensy/common/matrix.lst obj_adb_usb_teensy/common/action.lst obj_adb_usb_teensy/common/action_tapping.lst obj_adb_usb_teensy/common/action_macro.lst obj_adb_usb_teensy/common/action_layer.lst obj_adb_usb_teensy/common/action_util.lst obj_adb_usb_teensy/common/print.lst obj_adb_usb_teensy/common/debug.lst obj_adb_usb_teensy/common/util.lst obj_adb_usb_teensy/common/hook.lst obj_adb_usb_teensy/common/avr/suspend.lst obj_adb_usb_teensy/common/avr/xprintf.lst obj_adb_usb_teensy/common/avr/timer.lst obj_adb_usb_teensy/common/avr/bootloader.lst obj_adb_usb_teensy/common/keymap.lst obj_adb_usb_teensy/common/mousekey.lst obj_adb_usb_teensy/common/command.lst
rm -f obj_adb_usb_teensy/keymap_plain.s obj_adb_usb_teensy/matrix.s obj_adb_usb_teensy/led.s obj_adb_usb_teensy/adb.s obj_adb_usb_teensy/protocol/lufa/lufa.s obj_adb_usb_teensy/protocol/lufa/descriptor.s obj_adb_usb_teensy/protocol/lufa/LUFA-git/LUFA/Drivers/USB/Class/Common/HIDParser.s obj_adb_usb_teensy/protocol/lufa/LUFA-git/LUFA/Drivers/USB/Core/AVR8/Device_AVR8.s obj_adb_usb_teensy/protocol/lufa/LUFA-git/LUFA/Drivers/USB/Core/AVR8/EndpointStream_AVR8.s obj_adb_usb_teensy/protocol/lufa/LUFA-git/LUFA/Drivers/USB/Core/AVR8/Endpoint_AVR8.s obj_adb_usb_teensy/protocol/lufa/LUFA-git/LUFA/Drivers/USB/Core/AVR8/Host_AVR8.s obj_adb_usb_teensy/protocol/lufa/LUFA-git/LUFA/Drivers/USB/Core/AVR8/PipeStream_AVR8.s obj_adb_usb_teensy/protocol/lufa/LUFA-git/LUFA/Drivers/USB/Core/AVR8/Pipe_AVR8.s obj_adb_usb_teensy/protocol/lufa/LUFA-git/LUFA/Drivers/USB/Core/AVR8/USBController_AVR8.s obj_adb_usb_teensy/protocol/lufa/LUFA-git/LUFA/Drivers/USB/Core/AVR8/USBInterrupt_AVR8.s obj_adb_usb_teensy/protocol/lufa/LUFA-git/LUFA/Drivers/USB/Core/ConfigDescriptors.s obj_adb_usb_teensy/protocol/lufa/LUFA-git/LUFA/Drivers/USB/Core/DeviceStandardReq.s obj_adb_usb_teensy/protocol/lufa/LUFA-git/LUFA/Drivers/USB/Core/Events.s obj_adb_usb_teensy/protocol/lufa/LUFA-git/LUFA/Drivers/USB/Core/HostStandardReq.s obj_adb_usb_teensy/protocol/lufa/LUFA-git/LUFA/Drivers/USB/Core/USBTask.s obj_adb_usb_teensy/common/host.s obj_adb_usb_teensy/common/keyboard.s obj_adb_usb_teensy/common/matrix.s obj_adb_usb_teensy/common/action.s obj_adb_usb_teensy/common/action_tapping.s obj_adb_usb_teensy/common/action_macro.s obj_adb_usb_teensy/common/action_layer.s obj_adb_usb_teensy/common/action_util.s obj_adb_usb_teensy/common/print.s obj_adb_usb_teensy/common/debug.s obj_adb_usb_teensy/common/util.s obj_adb_usb_teensy/common/hook.s obj_adb_usb_teensy/common/avr/suspend.s obj_adb_usb_teensy/common/avr/xprintf.s obj_adb_usb_teensy/common/avr/timer.s obj_adb_usb_teensy/common/avr/bootloader.s obj_adb_usb_teensy/common/keymap.s obj_adb_usb_teensy/common/mousekey.s obj_adb_usb_teensy/common/command.s
rm -f obj_adb_usb_teensy/keymap_plain.i obj_adb_usb_teensy/matrix.i obj_adb_usb_teensy/led.i obj_adb_usb_teensy/adb.i obj_adb_usb_teensy/protocol/lufa/lufa.i obj_adb_usb_teensy/protocol/lufa/descriptor.i obj_adb_usb_teensy/protocol/lufa/LUFA-git/LUFA/Drivers/USB/Class/Common/HIDParser.i obj_adb_usb_teensy/protocol/lufa/LUFA-git/LUFA/Drivers/USB/Core/AVR8/Device_AVR8.i obj_adb_usb_teensy/protocol/lufa/LUFA-git/LUFA/Drivers/USB/Core/AVR8/EndpointStream_AVR8.i obj_adb_usb_teensy/protocol/lufa/LUFA-git/LUFA/Drivers/USB/Core/AVR8/Endpoint_AVR8.i obj_adb_usb_teensy/protocol/lufa/LUFA-git/LUFA/Drivers/USB/Core/AVR8/Host_AVR8.i obj_adb_usb_teensy/protocol/lufa/LUFA-git/LUFA/Drivers/USB/Core/AVR8/PipeStream_AVR8.i obj_adb_usb_teensy/protocol/lufa/LUFA-git/LUFA/Drivers/USB/Core/AVR8/Pipe_AVR8.i obj_adb_usb_teensy/protocol/lufa/LUFA-git/LUFA/Drivers/USB/Core/AVR8/USBController_AVR8.i obj_adb_usb_teensy/protocol/lufa/LUFA-git/LUFA/Drivers/USB/Core/AVR8/USBInterrupt_AVR8.i obj_adb_usb_teensy/protocol/lufa/LUFA-git/LUFA/Drivers/USB/Core/ConfigDescriptors.i obj_adb_usb_teensy/protocol/lufa/LUFA-git/LUFA/Drivers/USB/Core/DeviceStandardReq.i obj_adb_usb_teensy/protocol/lufa/LUFA-git/LUFA/Drivers/USB/Core/Events.i obj_adb_usb_teensy/protocol/lufa/LUFA-git/LUFA/Drivers/USB/Core/HostStandardReq.i obj_adb_usb_teensy/protocol/lufa/LUFA-git/LUFA/Drivers/USB/Core/USBTask.i obj_adb_usb_teensy/common/host.i obj_adb_usb_teensy/common/keyboard.i obj_adb_usb_teensy/common/matrix.i obj_adb_usb_teensy/common/action.i obj_adb_usb_teensy/common/action_tapping.i obj_adb_usb_teensy/common/action_macro.i obj_adb_usb_teensy/common/action_layer.i obj_adb_usb_teensy/common/action_util.i obj_adb_usb_teensy/common/print.i obj_adb_usb_teensy/common/debug.i obj_adb_usb_teensy/common/util.i obj_adb_usb_teensy/common/hook.i obj_adb_usb_teensy/common/avr/suspend.i obj_adb_usb_teensy/common/avr/xprintf.i obj_adb_usb_teensy/common/avr/timer.i obj_adb_usb_teensy/common/avr/bootloader.i obj_adb_usb_teensy/common/keymap.i obj_adb_usb_teensy/common/mousekey.i obj_adb_usb_teensy/common/command.i
rm -f -r .dep
rm -f -r obj_adb_usb_teensy
-------- end --------


thanks in advance :)
nic
« Last Edit: Mon, 24 April 2017, 13:16:21 by secutor »

Offline nevin

  • Posts: 1459
  • Location: US
Re: ADB to USB keyboard converter
« Reply #709 on: Sun, 30 April 2017, 05:38:00 »
oh, Hasu i could kiss you! &^%$ Brilliant! THANK YOU, THANK YOU, for all your time and effort into these projects.

i just put together an adb to usb converter using a teensy 2.0 i had laying around for another project and it is all that i hoped for and more! (little late to the party i know....)

anyway, looooooong time mac user (started on a IIci at work) & within last 5 years or so have gotten into the mechanical keyboard scene. i bought a Griffin iMate when i managed to get my hands on an apple adjustable keyboard. it does what it's supposed to do, but you can't re-program it etc... this little converter is the best thing that has happened to my old mac keyboards since they were made.

seriously, if there is anyway i can give back or help, testing, etc, anything, please let me know.

ADB boards i have:
ADB Keyboard (IIGS style with stepped keys) - 658-4081
Apple Adjustable (including separate number pad) - M1242
Macally mk96
Apple Design (not that anyone would want to use it, but it is adb) - M2980

... and hope to get some of the m0110 family here soon
Keeb.io Viterbi, Apple m0110, Apple m0120, Apple m0110a, Apple 658-4081, Apple M1242, Apple AEK II, MK96, GH60/Pure, Cherry g84-4100, Adesso AKP-220B, Magicforce 68

Offline nevin

  • Posts: 1459
  • Location: US
Re: ADB to USB keyboard converter
« Reply #710 on: Mon, 01 May 2017, 13:44:37 »
for those getting repeating/missing keystrokes on a freshly resurrected apple adjustable keyboard (one that's been sitting for a long time).... i'm pretty sure this is a issue with the switches in this board and not the firmware/controller. it does get better with use. not sure if the switches get oxidation/film on the contacts or something but it usually just takes some use or repeatedly clicking the switches to get it to start behaving again. i'ts doing it to me right now and it did it to me before when i first got it (many years ago) and was using the iMate adapter. if i remember correctly, this was documented somewhere else before. just wanted to add this little tidbit.

oh, also, after playing with hasu's fantastic firmware for a little bit.... these are some of the smartest function keys i've ever used. (admittedly, very new to custom keyboard firmware. just got a GH60 a couple months ago as a replacement PCB for my KBT Pure that stopped recognizing some keys)

example:
quick click of switch = normal character " ' " (grave accent)
shift + quick click of switch = normal shifted character " ~ " (tilde)
press & hold switch (now acting as function key) = Fn (now add 2nd key to get desired Fn output)

no more dedicated/single use function keys. super smart!

....sorry, gushing again.
Keeb.io Viterbi, Apple m0110, Apple m0120, Apple m0110a, Apple 658-4081, Apple M1242, Apple AEK II, MK96, GH60/Pure, Cherry g84-4100, Adesso AKP-220B, Magicforce 68

Offline Mononobe

  • Posts: 6
  • Location: HIROSHIMA pref Japan
  • Use Eng"r"ish.
Re: ADB to USB keyboard converter
« Reply #711 on: Mon, 29 May 2017, 09:30:36 »
Herro, I'm Mononobe, live in Japan.
I want compile .hex fire from Source code for .hex fire, by use Cygwin & AVR.
Can I know how-to "compile & write .hex fire for board "...
finally I want know load map for  "I can use this converter"
Please give me announce or advice, I can't understand wiki very much.

I can use autotranslation. Thank you Regard.

Offline nevin

  • Posts: 1459
  • Location: US
Re: ADB to USB keyboard converter
« Reply #712 on: Mon, 29 May 2017, 14:00:23 »
Mononobe, what keyboard do you want to use this with?

There is an online configurator for Hasu's converters: http://www.tmk-kbd.com/tmk_keyboard/editor/index.html
Keeb.io Viterbi, Apple m0110, Apple m0120, Apple m0110a, Apple 658-4081, Apple M1242, Apple AEK II, MK96, GH60/Pure, Cherry g84-4100, Adesso AKP-220B, Magicforce 68

Offline Mononobe

  • Posts: 6
  • Location: HIROSHIMA pref Japan
  • Use Eng"r"ish.
Re: ADB to USB keyboard converter
« Reply #713 on: Tue, 30 May 2017, 03:51:24 »
Thanks for your reply, I want to use a square ADB mouse.
The keyboard uses hex file which exists online, and it is usable. ;D

Offline nevin

  • Posts: 1459
  • Location: US
Re: ADB to USB keyboard converter
« Reply #714 on: Tue, 30 May 2017, 05:26:50 »
oh, ok. which type of converter are you using? one purchased from hasu or are you using a teensy with the ADB to USB firmware on it?

Looks like the implementation is already there.
Quote
Mouse support

ADB mouse support was added by @mek-apelsin on Apr,2015. It supports only one button as of now. https://github.com/tmk/tmk_keyboard/pull/207
from: https://github.com/tmk/tmk_keyboard/tree/master/converter/adb_usb

I have similar hardware & can test it too. (i just have to re-flash back to the ADB firmware, currently running the m0110 firmware)

Typically, the mouse would be connected to the keyboard & the keyboard connected to the converter then obviously the converter to the computer.

The only issue i can think of is if you are using the teensty method & don't have a pullup resistor.

I'll try it later when i get a chance.
Keeb.io Viterbi, Apple m0110, Apple m0120, Apple m0110a, Apple 658-4081, Apple M1242, Apple AEK II, MK96, GH60/Pure, Cherry g84-4100, Adesso AKP-220B, Magicforce 68

Offline Mononobe

  • Posts: 6
  • Location: HIROSHIMA pref Japan
  • Use Eng"r"ish.
Re: ADB to USB keyboard converter
« Reply #715 on: Tue, 30 May 2017, 07:12:30 »
Tank you for your Reply.
I use Da Vinci32U board.
I tried your advice on new one.
Finaly I can use Mouse, Thank you! Regard! :cool:

Offline nevin

  • Posts: 1459
  • Location: US
Re: ADB to USB keyboard converter
« Reply #716 on: Tue, 30 May 2017, 09:24:10 »
No problem. Glad you got it working.
Keeb.io Viterbi, Apple m0110, Apple m0120, Apple m0110a, Apple 658-4081, Apple M1242, Apple AEK II, MK96, GH60/Pure, Cherry g84-4100, Adesso AKP-220B, Magicforce 68

Offline Tcow1015

  • Posts: 2
  • Location: CT, USA
    • tgcprojects.tk
Re: ADB to USB keyboard converter
« Reply #717 on: Sat, 17 June 2017, 10:45:40 »
Tried to build this, no luck. the keyboard is not recognized and mouse pointer randomly jumps around. Here is a picture of my wiring, I looked up the teensy 2.0 pinout and it said that the pin labeled b0 on mine was PD0 but I have a pin labeled D0 so I guess the next step would be to try that, any help would be appreciated.
Thanks!


Offline hasu

  • Thread Starter
  • Posts: 3291
  • Location: Tokyo, Japan
  • @tmk
    • tmk keyboard firmware project
Re: ADB to USB keyboard converter
« Reply #718 on: Sat, 17 June 2017, 15:13:04 »
it seems you understand what to do correctly but your soldering is iffy.  I'd recommend to dump existent all wires and resister then do it again from beginning. and use 1k ohm if it is not.

Offline nevin

  • Posts: 1459
  • Location: US
Re: ADB to USB keyboard converter
« Reply #719 on: Sat, 17 June 2017, 16:41:35 »
looks like you have a couple wires in the wrong place.

signal should be on PD0 (on my teensy it's labaled D0) looks like you have it on B0



1k ohm pull up resistor between Vcc & PD0 (D0) which is signal
   (check resistor wit with a multimeter if unsure of value)

also make sure you have tapped the right traces on the keyboard

ADB female socket from the front:
  ,--_--.
 / o4 3o \      1: DATA
| o2   1o |     2: Power SW
 -  ===  -      3: VCC
  `-___-'       4: GND


reference: https://github.com/tmk/tmk_keyboard/tree/master/converter/adb_usb
Keeb.io Viterbi, Apple m0110, Apple m0120, Apple m0110a, Apple 658-4081, Apple M1242, Apple AEK II, MK96, GH60/Pure, Cherry g84-4100, Adesso AKP-220B, Magicforce 68

Offline superbia

  • Posts: 133
  • Location: Republique de Croatie
Re: ADB to USB keyboard converter
« Reply #720 on: Tue, 20 June 2017, 12:06:38 »
Quote
Quick start for people who bought 32u4 arduino clones on ebay (5$):

1. get avrdude (for flashing)  :thumb:
2. make the software, as hasu sugested  :thumb:
2. use avrdude to flash the firmware
2.b note: you need to press "reset" once, than fast 2 times to get into bootloader (or if you dont have the button short RST and GND pins), so you need to short it total of 3 times  :thumb:
2.c dont wait long and use this command to flash it $ avrdude -p m32u4 -c avr109 -P /dev/ttyACM0 -U flash:w:adb_usb_lufa.hex:i          ( replace /dev/ttyACM0 with your port)  :thumb:


I was following my own guide and I face a problem now.
I had to modify my old layout and swap some keys in notepad (i reused my old aekii . c keymap)
These are the steps i used:
$ make -f Makefile clean
$ make -f Makefile [KEYMAP=aekii]
$ avrdude -p m32u4 -c avr109 -P /dev/ttyACM0 -U flash:w:adb_usb_lufa.hex:i

The last command spits this:
More
Connecting to programmer: .
Found programmer: Id = "CATERIN"; type = S
    Software Version = 1.0; No Hardware Version given.
Programmer supports auto addr increment.
Programmer supports buffered memory access with buffersize=128 bytes.

Programmer supports the following devices:
    Device code: 0x44

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.00s

avrdude: Device signature = 0x1e9587 (probably m32u4)
avrdude: NOTE: "flash" memory has been specified, an erase cycle will be performed
         To disable this feature, specify the -D option.
avrdude: erasing chip
avrdude: reading input file "adb_usb_lufa.hex"
avrdude: can't open input file adb_usb_lufa.hex: No such file or directory
avrdude: read from file 'adb_usb_lufa.hex' failed

avrdude: safemode: Fuses OK (E:CB, H:D8, L:FF)

avrdude done.  Thank you.
« Last Edit: Tue, 20 June 2017, 12:18:24 by superbia »
Keebio Iris 2.8 (Alps) X Colemak Mod-DH

Offline nevin

  • Posts: 1459
  • Location: US
Re: ADB to USB keyboard converter
« Reply #721 on: Tue, 20 June 2017, 13:28:57 »
not familiar with AVRdude, but it sounds like it can't find the file. if you are doing this by a command prompt make sure you have the full file path not just the file name.
Keeb.io Viterbi, Apple m0110, Apple m0120, Apple m0110a, Apple 658-4081, Apple M1242, Apple AEK II, MK96, GH60/Pure, Cherry g84-4100, Adesso AKP-220B, Magicforce 68

Offline superbia

  • Posts: 133
  • Location: Republique de Croatie
Re: ADB to USB keyboard converter
« Reply #722 on: Tue, 20 June 2017, 13:53:02 »
not familiar with AVRdude, but it sounds like it can't find the file. if you are doing this by a command prompt make sure you have the full file path not just the file name.

I am positioned inside tmk_keyboard/converter/adb-usb/
I suspect the process of make changed and the filename changed etc. I hope hasu will help me out  :eek:
Keebio Iris 2.8 (Alps) X Colemak Mod-DH

Offline nevin

  • Posts: 1459
  • Location: US
Re: ADB to USB keyboard converter
« Reply #723 on: Tue, 20 June 2017, 14:17:45 »
ok. looked it up quick, yes, it is a command prompt program. so, you'll need to specify the full path to your hex file or AVRdude won't be able to find it. should be something like: /Users/*user_name*/Desktop/tmk_keyboard/converter/adb-usb/adb_usb_lufa.hex
this is not what you should copy/paste as we have no idea what your computer username, OS, etc are. but your file path should look something like this and not just the file name "adb_usb_lufa.hex"
Keeb.io Viterbi, Apple m0110, Apple m0120, Apple m0110a, Apple 658-4081, Apple M1242, Apple AEK II, MK96, GH60/Pure, Cherry g84-4100, Adesso AKP-220B, Magicforce 68

Offline nevin

  • Posts: 1459
  • Location: US
Re: ADB to USB keyboard converter
« Reply #724 on: Tue, 20 June 2017, 14:24:01 »
the other option is to navigate {cd change directories} to tmk_keyboard/converter/adb-usb/ within the prompt. then you could just use the filename "adb_usb_lufa.hex"
Keeb.io Viterbi, Apple m0110, Apple m0120, Apple m0110a, Apple 658-4081, Apple M1242, Apple AEK II, MK96, GH60/Pure, Cherry g84-4100, Adesso AKP-220B, Magicforce 68

Offline hasu

  • Thread Starter
  • Posts: 3291
  • Location: Tokyo, Japan
  • @tmk
    • tmk keyboard firmware project
Re: ADB to USB keyboard converter
« Reply #725 on: Tue, 20 June 2017, 21:17:40 »
With plain 'Makefile' it spits out firmware for TMK converter(with ATMega32u2) now, I don't remember when it changed but long ago. You will have to configure Makefile properly for your controller, you may be able to use Makefile. teensy or rev1 but I don't know.

And you have to give avrdude correct firmware file name, the filename also may be changed but it should be clear with seeing files in the directry.

Offline superbia

  • Posts: 133
  • Location: Republique de Croatie
Re: ADB to USB keyboard converter
« Reply #726 on: Wed, 21 June 2017, 03:25:46 »
With plain 'Makefile' it spits out firmware for TMK converter(with ATMega32u2) now, I don't remember when it changed but long ago. You will have to configure Makefile properly for your controller, you may be able to use Makefile. teensy or rev1 but I don't know.

And you have to give avrdude correct firmware file name, the filename also may be changed but it should be clear with seeing files in the directry.

If I succeed in tweaking the newest version, I will post the results and complete guide.
If not, I will rollback the git to the approximate time of when I made that last post.


UPDATE:
$ make -f Makefile.teensy clean
$ make -f Makefile.teensy [KEYMAP=aekii]
$ avrdude -p m32u4 -c avr109 -P /dev/ttyACM0 -U flash:w:adb_usb_teensy.hex:i

Using this I was able to flash my 32u4 and the keyboard works but it's not flashed with my layout, but instead with stock us layout.
My layout file https://gist.github.com/anonymous/1c3e7aec0c12827710594ecada57beeb

Is my old layout file valid, and how do I Make it?  :rolleyes:
« Last Edit: Wed, 21 June 2017, 04:16:31 by superbia »
Keebio Iris 2.8 (Alps) X Colemak Mod-DH

Offline hasu

  • Thread Starter
  • Posts: 3291
  • Location: Tokyo, Japan
  • @tmk
    • tmk keyboard firmware project
Re: ADB to USB keyboard converter
« Reply #727 on: Wed, 21 June 2017, 04:41:52 »
With plain 'Makefile' it spits out firmware for TMK converter(with ATMega32u2) now, I don't remember when it changed but long ago. You will have to configure Makefile properly for your controller, you may be able to use Makefile. teensy or rev1 but I don't know.

And you have to give avrdude correct firmware file name, the filename also may be changed but it should be clear with seeing files in the directry.

If I succeed in tweaking the newest version, I will post the results and complete guide.
If not, I will rollback the git to the approximate time of when I made that last post.


UPDATE:
$ make -f Makefile.teensy clean
$ make -f Makefile.teensy [KEYMAP=aekii]
$ avrdude -p m32u4 -c avr109 -P /dev/ttyACM0 -U flash:w:adb_usb_teensy.hex:i

Using this I was able to flash my 32u4 and the keyboard works but it's not flashed with my layout, but instead with stock us layout.
My layout file https://gist.github.com/anonymous/1c3e7aec0c12827710594ecada57beeb

Is my old layout file valid, and how do I Make it?  :rolleyes:

I think it seems to be still valid, what is actually your problem?

Offline nevin

  • Posts: 1459
  • Location: US
Re: ADB to USB keyboard converter
« Reply #728 on: Wed, 21 June 2017, 05:00:54 »
I had the same thing happen. (Tried to specify custom keymap) But don't think I had the map variable  formatted correctly in the prompt, so it was ignored. So what I did was edit my copy of the default keymap and then did the clean, make, again and ended up with firmware with my changes to keymap.

Sent from my SM-G900V using Tapatalk

Keeb.io Viterbi, Apple m0110, Apple m0120, Apple m0110a, Apple 658-4081, Apple M1242, Apple AEK II, MK96, GH60/Pure, Cherry g84-4100, Adesso AKP-220B, Magicforce 68

Offline nevin

  • Posts: 1459
  • Location: US
Re: ADB to USB keyboard converter
« Reply #729 on: Wed, 21 June 2017, 05:06:32 »
Might be something happening (or not happening) when a custom keymap and the teensy variables are used at the same time.

Sent from my SM-G900V using Tapatalk

Keeb.io Viterbi, Apple m0110, Apple m0120, Apple m0110a, Apple 658-4081, Apple M1242, Apple AEK II, MK96, GH60/Pure, Cherry g84-4100, Adesso AKP-220B, Magicforce 68

Offline hasu

  • Thread Starter
  • Posts: 3291
  • Location: Tokyo, Japan
  • @tmk
    • tmk keyboard firmware project
Re: ADB to USB keyboard converter
« Reply #730 on: Wed, 21 June 2017, 05:12:58 »
hmm, it seems commands below works for me to compile with my keymap_hasu.c file.

Code: [Select]
$ make -f Makefile.teensy clean
$ make -f Makefile.teensy KEYMAP=hasu

I may be missing somehting, let me know if you find bug.

Offline nevin

  • Posts: 1459
  • Location: US
Re: ADB to USB keyboard converter
« Reply #731 on: Wed, 21 June 2017, 05:20:42 »
Ok, that's what I thought. We had the formatting of the line incorrect.

We were using:
$ make -f Makefile.teensy [KEYMAP=aekii]

When it should have been formatted as:
$ make -f Makefile.teensy KEYMAP=aekii

We had the brackets in the line. That's why the custom keymap wasn't being picked up/used.

Thank you.

Sent from my SM-G900V using Tapatalk

Keeb.io Viterbi, Apple m0110, Apple m0120, Apple m0110a, Apple 658-4081, Apple M1242, Apple AEK II, MK96, GH60/Pure, Cherry g84-4100, Adesso AKP-220B, Magicforce 68

Offline hasu

  • Thread Starter
  • Posts: 3291
  • Location: Tokyo, Japan
  • @tmk
    • tmk keyboard firmware project
Re: ADB to USB keyboard converter
« Reply #732 on: Wed, 21 June 2017, 06:42:08 »
oh, ok... unless you are kidding me...

It means that contents within [ ] are optional. You can refer "man man" or this.
https://technet.microsoft.com/en-us/library/cc771080(v=ws.11).aspx

I don't remember when and how I learned this and I assume command line users will find this rule before long. But I may have to explain it not to waste both my time and future users's.

Offline nevin

  • Posts: 1459
  • Location: US
Re: ADB to USB keyboard converter
« Reply #733 on: Wed, 21 June 2017, 07:19:03 »
no, no kidding. i can get around terminal & most of this programming stuff, but i'm not a programmer or extremely familiar with all coding variables/formatting, etc.

being green/new & this being a custom firmware, i thought that was how it was supposed to be formatted [with the brackets]

total user error & not knowing the brackets were the indication of the optional variable, and should be removed if you wanted to use that option/variable.

thank you for clarification.
.......learn something new everyday.
Keeb.io Viterbi, Apple m0110, Apple m0120, Apple m0110a, Apple 658-4081, Apple M1242, Apple AEK II, MK96, GH60/Pure, Cherry g84-4100, Adesso AKP-220B, Magicforce 68

Offline superbia

  • Posts: 133
  • Location: Republique de Croatie
Re: ADB to USB keyboard converter
« Reply #734 on: Sun, 25 June 2017, 03:30:24 »
I tried to flash the .hex created with both of these, and It still ignores my layout, uses US instead.

$ make -f Makefile.rev1 keymap=aekii
$ make -f Makefile.teensy KEYMAP=aekii

So the problem must be somewhere else:
here's the output when I make the layout:
https://gist.github.com/anonymous/a0c9a64391f6397804b24f45baadaa4a
Keebio Iris 2.8 (Alps) X Colemak Mod-DH

Offline hasu

  • Thread Starter
  • Posts: 3291
  • Location: Tokyo, Japan
  • @tmk
    • tmk keyboard firmware project
Re: ADB to USB keyboard converter
« Reply #735 on: Sun, 25 June 2017, 06:00:41 »
In most cases command line tools are case-sensitive, 'keymap' and 'KEYMAP' is not equivalent.
Use 'KEYMAP'.

Offline superbia

  • Posts: 133
  • Location: Republique de Croatie
Re: ADB to USB keyboard converter
« Reply #736 on: Sun, 25 June 2017, 08:28:27 »
In most cases command line tools are case-sensitive, 'keymap' and 'KEYMAP' is not equivalent.
Use 'KEYMAP'.

 Tried, still nothing... I think my aekii .c file is corrupt....
Keebio Iris 2.8 (Alps) X Colemak Mod-DH

Offline sanitypotion

  • Posts: 3
  • Location: NY, United States
Re: ADB to USB keyboard converter
« Reply #737 on: Wed, 05 July 2017, 22:52:35 »
Hi, and thank you hasu for your great work. I was wondering if you might be able to help with my M0110-USB setup with Teensy 2.0. With a couple of modifications to the makefile (which seems to be configured for Teensy 3.x by default now?) I was able to get the code onto my Teensy 2.0 just fine. I also soldered pins to either side of the Teensy so I could do the whole thing in a breadboard for now. I've wired the breadboard so that VCC-CLK-DATA-GND are all in a nice line in one corner.

I have a 4P4C connector which I can plug into the breadboard and use the original M0110A's cord, as well as soldered some wires to points on the M0110A's main board that I have found near that connector that correspond to VCC-CLK-DATA-GND. I've used the continuity tester on my multimeter to figure out exactly which wires soldered to the board go with which ones on the 4P4C connector, and determined that there's no shorts and they are in fact connected to the same things.

When I take the wires I've soldered to the M0110A's main board and connect them to the Teensy via the breadboard, everything works just fine. (I press keys on the keyboard and letters show up on the computer screen.) Excellent.

However, when I connect the M0110A to the Teensy via the 4P4C jack plugged into the breadboard, again making sure that all wires are going to the correct places, it does not work (i.e. pressing keys does absolutely nothing). I have tried using 1K and 10K pullup resistors on CLK and DATA as well as on only CLK or only DATA. No luck--it still does not work. The second I remove the 4P4C connector and reconnect the M0110A main board wires, it starts working again.

So I have tested the cable and made sure that the connections are equivalent, and tried weak, strong, and no pullup resistors in different combinations. Yet the main board wires always work, and the 4P4C connector always doesn't work. Am I missing anything? Is it possible that I somehow need even stronger pullups than 1K, or weaker than 10K?

Thank you for any advice you may be able to give.
-sanitypotion

Offline hasu

  • Thread Starter
  • Posts: 3291
  • Location: Tokyo, Japan
  • @tmk
    • tmk keyboard firmware project
Re: ADB to USB keyboard converter
« Reply #738 on: Wed, 05 July 2017, 23:00:39 »
welcome to geekhack, sanitypotion.
This is unfortunately wrong thread :( M0110A doesn't speak ADB.

This is thread you need. Read first post.
https://geekhack.org/index.php?topic=24965.0

Offline dothedog

  • Posts: 10
  • Location: San Francisco
Re: ADB to USB keyboard converter
« Reply #739 on: Fri, 07 July 2017, 00:45:52 »
Hi Hasu,

I'm getting an error when making my converter. Here is an imgur album of my error and my wiring. I am using a fake chinese teensy but it should work. I believe my adb keyboards work, but I cannot verify since I can't actually use them :p

http://imgur.com/a/cWTgA

(yes, it is plugged in when i test it). I am pretty sure about the wiring (bare is data, white is 5v, red is gnd). I have double-checked it with a continuity test on the pins on the other end.

Here is my code: https://github.com/kgwong/tmk_keyboard/tree/k_adb_usb. I have one commit. I changed some stuff because otherwise my teensy wouldn't light and hid_listen does nothing.

I am running  teensy_loader_cli.exe -mmcu=atmega32u4 -w adb_usb.hex to load to my teensy.

I'm a capable programmer but I don't know much about hardware in general. I own a multimeter and other tools so if you can tell me what to check next that would be really helpful. Thanks  :)

Offline dothedog

  • Posts: 10
  • Location: San Francisco
Re: ADB to USB keyboard converter
« Reply #740 on: Sat, 08 July 2017, 01:59:26 »
So it turns out I had the cable wiring flipped: white is ground red is data, bare is 5.
I also added a pullup resistor.

On my aekii:
Before init:
After init:
debug enabled.
Keyboard start.

ALL lock lights go on but no key presses register. The light on the teensy turns off when plugged in (i don't know what this means, I think it's a good sign?). When the power button on the aek is down, the lock lights are turned off. I received this board untested so I don't know if it should work or not.

on my m0116:
Before init:
Scan: addr:1, reg3:FFE2
Scan: addr:2, reg3:FFE2
Scan: addr:3, reg3:FFE2
Scan: addr:4, reg3:FFE2
Scan: addr:5, reg3:FFE2
Scan: addr:6, reg3:FFE2
Scan: addr:7, reg3:FFE2
Scan: addr:8, reg3:FFE2
Scan: addr:9, reg3:FFE2
Scan: addr:10, reg3:FFE2
Scan: addr:11, reg3:FFE2
Scan: addr:12, reg3:FFE2
Scan: addr:13, reg3:FFE2
Scan: addr:14, reg3:FFE2
Scan: addr:15, reg3:FFE2
After init:
Scan: addr:1, reg3:FFE2
Scan: addr:2, reg3:FFE2
Scan: addr:3, reg3:FFE2
Scan: addr:4, reg3:FFE2
Scan: addr:5, reg3:FFE2
Scan: addr:6, reg3:FFE2
Scan: addr:7, reg3:FFE2
Scan: addr:8, reg3:FFE2
Scan: addr:9, reg3:FFE2
Scan: addr:10, reg3:FFE2
Scan: addr:11, reg3:FFE2
Scan: addr:12, reg3:FFE2
Scan: addr:13, reg3:FFE2
Scan: addr:14, reg3:FFE2
Scan: addr:15, reg3:FFE2
debug enabled.
Keyboard start.
adb_host_kbd_recv: ERROR(-30)

No keypresses register. I also received this keyboard untested.



« Last Edit: Sat, 08 July 2017, 02:27:11 by dothedog »

Offline hasu

  • Thread Starter
  • Posts: 3291
  • Location: Tokyo, Japan
  • @tmk
    • tmk keyboard firmware project
Re: ADB to USB keyboard converter
« Reply #741 on: Sun, 09 July 2017, 01:48:05 »
dothedog,
If you are sure about your wiring, keyboard or teensy may be out of order.  You can get another keyboard or teensy to replace and test again.

I can't find any apparent problem from your pics and codes but why do you use uninsulated sheild wire for VCC? It doens't seem to be normal, you may need decent Mini-DIN4 cable.

Offline dothedog

  • Posts: 10
  • Location: San Francisco
Re: ADB to USB keyboard converter
« Reply #742 on: Sun, 09 July 2017, 01:59:13 »
Ahh I just grabbed a cheap SVIDEO cable from amazon. I have one original ADB cable but I don't want to butcher it. I also can't find female 4-pin din connectors to purchase as an alternative to butchering cables.

I opened the aekii today to clean it and there was no signs of damage anywhere. I'd have to find an aek that's known to work and maybe that would help me narrow it down :(. Thanks for your time looking at it, I will keep trying to figure it out.

Offline dothedog

  • Posts: 10
  • Location: San Francisco
Re: ADB to USB keyboard converter
« Reply #743 on: Fri, 14 July 2017, 01:18:27 »
I tested the cable again. Turns out I got it wrong twice. I switched the red and bare wires and now it works :). Thanks so much! Very happy!

Offline tristinDLC

  • Posts: 73
  • Location: Seattle, WA
Re: ADB to USB keyboard converter
« Reply #744 on: Fri, 14 July 2017, 05:37:27 »
Just picked up an Apple Adjustable Keyboard and would love to get it all hooked up. Reading the OP, I just want to make sure I am 100% sure I'm understanding its capabilities. Under your Updates, you list as of a year ago that the Adjustable media keys are now supported (leading me to believe the converter works with the rest of the board already), but then under Limitations, you mention that the Adjustable keypad may not work... I just want to make sure that the Apple Adjustable Keyboard is fully supported and your Limitations note was about the secondary number pad. Is that correct?

Offline hasu

  • Thread Starter
  • Posts: 3291
  • Location: Tokyo, Japan
  • @tmk
    • tmk keyboard firmware project
Re: ADB to USB keyboard converter
« Reply #745 on: Fri, 14 July 2017, 05:54:44 »
I don't ever have the numpad and don't know whether it work with the converter or not at all.

just try it and report.

Offline hasu

  • Thread Starter
  • Posts: 3291
  • Location: Tokyo, Japan
  • @tmk
    • tmk keyboard firmware project
Re: ADB to USB keyboard converter
« Reply #746 on: Fri, 14 July 2017, 06:03:14 »
the mediakeys on adjustable keyboard are four buttons located on right side of main part. I don't think numpad part has  media keys.

Offline tristinDLC

  • Posts: 73
  • Location: Seattle, WA
Re: ADB to USB keyboard converter
« Reply #747 on: Fri, 14 July 2017, 07:05:21 »
I don't ever have the numpad and don't know whether it work with the converter or not at all.

just try it and report.


the mediakeys on adjustable keyboard are four buttons located on right side of main part. I don't think numpad part has  media keys.


Correct, only the main keyboard has media keys. I just wanted to make sure that the converter at least worked on the main keyboard before I considered placing an order. I have an Apple Adjustable Keyboard already, but not its matching numpad yet, but when it arrives I would gladly report back on if the converter is successful or not.

Offline superbia

  • Posts: 133
  • Location: Republique de Croatie
Re: ADB to USB keyboard converter
« Reply #748 on: Sun, 23 July 2017, 16:41:20 »
SUCCESS! I Will post the full steps with all commands for linux needed + all configs and files.
I feel like hasu will have to patch somethings.

For now, just few things i need to setup in my keymap file:
What is the $NAME of the key "#" and when shift it gives "~" ???:eek:
Keebio Iris 2.8 (Alps) X Colemak Mod-DH

Offline Tactile

  • Posts: 1371
  • Location: Portland, OR
Re: ADB to USB keyboard converter
« Reply #749 on: Sun, 23 July 2017, 17:11:34 »
What is the $NAME of the key "#" and when shift it gives "~" ????

I think that's:

KC_NONUS_HASH   or abbreviated   KC_NUHS