From: tmk Date: Fri, 9 Sep 2016 02:26:33 +0000 (+0900) Subject: next_usb: Add unimap X-Git-Url: https://git.gir.st/tmk_keyboard.git/commitdiff_plain/9b42a33648d4282c0335c457c8e38f3635a76e1c next_usb: Add unimap --- diff --git a/converter/next_usb/Makefile b/converter/next_usb/Makefile index 7190f1ea..f3143c25 100644 --- a/converter/next_usb/Makefile +++ b/converter/next_usb/Makefile @@ -1,18 +1,36 @@ # Target file name (without extension). -TARGET = next_usb +TARGET ?= next_usb # Directory common source filess exist -TMK_DIR = ../../tmk_core +TMK_DIR ?= ../../tmk_core # Directory keyboard dependent files exist -TARGET_DIR = . +TARGET_DIR ?= . # keyboard dependent files -SRC = keymap.c \ - matrix.c \ +SRC ?= matrix.c \ led.c -CONFIG_H = config.h +CONFIG_H ?= config.h + +# +# Keymap file +# +ifeq (yes,$(strip $(UNIMAP_ENABLE))) + KEYMAP_FILE = unimap +else + ifeq (yes,$(strip $(ACTIONMAP_ENABLE))) + KEYMAP_FILE = actionmap + else + KEYMAP_FILE = keymap + endif +endif +ifdef KEYMAP + SRC := $(KEYMAP_FILE)_$(KEYMAP).c $(SRC) +else + SRC := $(KEYMAP_FILE).c $(SRC) +endif + # MCU name, you MUST set this to match the board you are using # type "make clean" after changing this, so all files will be rebuilt @@ -20,7 +38,7 @@ CONFIG_H = config.h #MCU = atmega32u4 # Teensy 2.0 #MCU = at90usb646 # Teensy++ 1.0 #MCU = at90usb1286 # Teensy++ 2.0 -MCU = atmega32u2 # TMK converter +MCU ?= atmega32u2 # TMK converter # Processor frequency. @@ -28,14 +46,14 @@ MCU = atmega32u2 # TMK converter # so your program will run at the correct speed. You should also set this # variable to same clock speed. The _delay_ms() macro uses this, and many # examples use this variable to calculate timings. Do not add a "UL" here. -F_CPU = 16000000 +F_CPU ?= 16000000 # # LUFA specific # # Target architecture (see library "Board Types" documentation). -ARCH = AVR8 +ARCH ?= AVR8 # Input clock frequency. # This will define a symbol, F_USB, in all source code files equal to the @@ -48,7 +66,7 @@ ARCH = AVR8 # # 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) +F_USB ?= $(F_CPU) # Interrupt driven control endpoint task(+60) #OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT @@ -67,11 +85,11 @@ OPT_DEFS += -DBOOTLOADER_SIZE=4096 # *Comment out* to disable the options. # #BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000) -MOUSEKEY_ENABLE = yes # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = yes # Console for debug(+400) -COMMAND_ENABLE = yes # Commands for debug and configuration -#NKRO_ENABLE = yes # USB Nkey Rollover +MOUSEKEY_ENABLE ?= yes # Mouse keys +EXTRAKEY_ENABLE ?= yes # Audio control and System control +CONSOLE_ENABLE ?= yes # Console for debug(+400) +COMMAND_ENABLE ?= yes # Commands for debug and configuration +#NKRO_ENABLE ?= yes # USB Nkey Rollover SRC += next_kbd.c diff --git a/converter/next_usb/Makefile.unimap b/converter/next_usb/Makefile.unimap new file mode 100644 index 00000000..8452c108 --- /dev/null +++ b/converter/next_usb/Makefile.unimap @@ -0,0 +1,4 @@ +TARGET = next_usb_unimap +UNIMAP_ENABLE = yes +KEYMAP_SECTION_ENABLE = yes +include Makefile diff --git a/converter/next_usb/binary/next_usb_unimap.hex b/converter/next_usb/binary/next_usb_unimap.hex new file mode 100644 index 00000000..efe944a6 --- /dev/null +++ b/converter/next_usb/binary/next_usb_unimap.hex @@ -0,0 +1,1217 @@ +:100000000C941D050C9464050C9464050C94640513 +:100010000C9464050C9464050C9464050C946405BC +:100020000C9464050C9464050C9464050C94FD0D0B +:100030000C9464050C94D21B0C9464050C94640518 +:100040000C9464050C9464050C9464050C94461C93 +:100050000C9464050C9464050C9464050C9464057C +:100060000C9464050C9464050C9464050C9464056C +:100070000C946405CF0EF10EDF0FF10EDF0F360F7B +:10008000590FDF0FAE0FC10FC612C612F312F312D3 +:100090004E138A1382158215A21382159D149D1486 +:1000A0005815821582156E15804E4C31302F0C126A +:1000B00013508062635880514F595C5E5B66525AA0 +:1000C0005D4B492A2E2D2526275F606157565354D4 +:1000D00055802834330F3637381D1B06190510118B +:1000E0002C041607090A0E0D0B2B141A0815181CE0 +:1000F00017351E1F20212423227C78657B7D7939CA +:100100004A808080808080805B20723D2530346C06 +:1001100058206B6579636F64653D253032582070D7 +:100120007265737365643D2558204354524C3D25D8 +:10013000582053484946545F4C4546543D25582065 +:1001400053484946545F524748543D255820434D33 +:10015000445F4C4546543D255820434D445F52472B +:1001600048543D255820414C545F4C4546543D254C +:100170005820414C545F524748543D2558205D0A51 +:1001800000506F77657220737461746520300A00C7 +:10019000506F77657220737461746520310A005B5B +:1001A000204E655854206B6579626F6172642069D6 +:1001B0006E697469616C697A6564205D0A00496ED4 +:1001C000697469616C20706F7765722062757474F0 +:1001D0006F6E2073746174653A2025620A005B209B +:1001E000496E7469616C697A696E67204E6558540E +:1001F000206B6579626F617264205D0A005B735DDC +:10020000004B6579626F6172642073746172742E41 +:100210000A0055534220636F6E66696775726564A4 +:100220002E0A005B525D005B445D005B435D003E57 +:10023000034E0065005800540020004B0065007913 +:100240000062006F00610072006400200074006FA3 +:10025000002000550053004200200063006F006E34 +:100260000076006500720074006500720000000EE8 +:100270000374002E006D002E006B002E00000004A1 +:1002800003090409027400040100A03209040000FB +:1002900001030101000921110100012240000705AD +:1002A000810308000A090401000103010200092179 +:1002B00011010001224D000705820308000A09040C +:1002C0000200010300000009211101000122360093 +:1002D0000705830308000A09040300020300000065 +:1002E00009211101000122220007058403200001D9 +:1002F000070504032000011201100100000008EDB1 +:10030000FEBCBC0005010200010631FF0974A10119 +:100310000975150026FF00952075088102097615DC +:100320000026FF00952075089102C005010980A1F3 +:1003300001850216810026B7001A81002AB70075D0 +:100340001095018100C0050C0901A101850316016A +:1003500000269C021A01002A9C027510950181005A +:10036000C005010902A1010901A10005091901291E +:10037000051500250195057501810295017503811B +:10038000010501093009311581257F950275088124 +:100390000609381581257F950175088106050C0A27 +:1003A00038021581257F950175088106C0C00501B9 +:1003B0000906A101050719E029E71500250195089F +:1003C000750181029501750881010508190129054A +:1003D00095057501910295017503910105071900B5 +:1003E00029FF150026FF00950675088100C00A0048 +:1003F0002530325820006B6579626F6172645F72DC +:1004000065706F72743A20004C45443A20253032B2 +:10041000580A00290A002575002F002575005D285F +:1004200000256400200025640020002564002000D1 +:100430002564007C0025303258006D6F7573656B44 +:100440006579205B62746E7C782079207620685D07 +:10045000287265702F61636C293A205B006D6B5FB9 +:10046000776865656C5F74696D655F746F5F6D61FA +:1004700078203D2025640A006D6B5F776865656CA8 +:100480005F6D61785F7370656564203D2025640A47 +:10049000006D6B5F74696D655F746F5F6D6178206F +:1004A0003D2025640A006D6B5F6D61785F73706538 +:1004B0006564203D2025640A006D6B5F696E74657C +:1004C0007276616C203D2025640A006D6B5F646567 +:1004D0006C6179203D2025640A006D6B5F7768654B +:1004E000656C5F74696D655F746F5F6D6178203DE9 +:1004F0002025640A006D6B5F776865656C5F6D61D0 +:10050000785F7370656564203D2025640A006D6B1B +:100510005F74696D655F746F5F6D6178203D202544 +:10052000640A006D6B5F6D61785F73706565642050 +:100530003D2025640A006D6B5F696E74657276619B +:100540006C203D2025640A006D6B5F64656C6179E9 +:10055000203D2025640A000A00257500363A2077E0 +:100560006865656C5F74696D655F746F5F6D6178F8 +:100570003A20000A00257500353A20776865656CD9 +:100580005F6D61785F73706565643A20000A0025CD +:100590007500343A2074696D655F746F5F6D6178C2 +:1005A0003A20000A00257500333A206D61785F73A8 +:1005B000706565643A20000A00257500323A2069AA +:1005C0006E74657276616C286D73293A20000A009A +:1005D000257500313A2064656C6179282A31306DC7 +:1005E00073293A20000A092D2056616C7565732025 +:1005F0002D0A004D3E004D25643E20003F007365EE +:10060000742064656661756C740A00433E2000774F +:10061000686572652064656C74613A2063757273F5 +:100620006F723D25642C20776865656C3D25640AF2 +:1006300053656520687474703A2F2F656E2E776944 +:100640006B6970656469612E6F72672F77696B697A +:100650002F4D6F7573655F6B6579730A000A092DFD +:10066000204D6F7573656B6579202D0A4553432FB7 +:10067000713A09717569740A313A0964656C617976 +:10068000282A31306D73290A323A09696E7465720D +:1006900076616C286D73290A333A096D61785F734E +:1006A000706565640A343A0974696D655F746F5FDB +:1006B0006D61780A353A09776865656C5F6D6178B8 +:1006C0005F73706565640A363A09776865656C5FC3 +:1006D00074696D655F746F5F6D61780A0A703A09BD +:1006E0007072696E742076616C7565730A643A097C +:1006F0007365742064656661756C74730A75703A0D +:10070000092B310A646F776E3A092D310A706775CB +:10071000703A092B31300A7067646F776E3A092D91 +:1007200031300A0A7370656564203D2064656C741D +:1007300061202A206D61785F7370656564202A20CE +:1007400028726570656174202F2074696D655F740F +:100750006F5F6D6178290A003F004D3E2000433EE7 +:1007600020004C25640A000A092D20436F6E736F28 +:100770006C65202D0A4553432F713A0971756974D0 +:100780000A6D3A096D6F7573656B65790A000A0920 +:100790002D204D61676963202D0A643A0964656202 +:1007A00075670A783A096465627567206D617472CD +:1007B00069780A6B3A096465627567206B657962CE +:1007C0006F6172640A6D3A096465627567206D6FC6 +:1007D0007573650A763A0976657273696F6E0A7386 +:1007E0003A097374617475730A633A09636F6E73BF +:1007F0006F6C65206D6F64650A302D343A096C6149 +:10080000796572302D34284631302D4634290A500E +:100810006175733A09626F6F746C6F616465720A17 +:10082000003F0074696D65725F72656164333228E0 +:10083000293A202530346C580A006B6579626F6163 +:1008400072645F69646C653A2025580A006B6579AB +:10085000626F6172645F70726F746F636F6C3A2065 +:1008600025580A00686F73745F6B6579626F6172F7 +:10087000645F6C65647328293A2025580A000A09C8 +:100880002D20537461747573202D0A004743433A39 +:1008900020342E392E32204156522D4C4942433AB3 +:1008A00020312E382E3073766E204156525F4152E1 +:1008B00043483A2061767233350A004F5054494F0D +:1008C0004E533A204C554641204D4F5553454B45CC +:1008D000592045585452414B455920434F4E534F90 +:1008E0004C4520434F4D4D414E44204B45594D41C1 +:1008F000505F53454354494F4E20343039360A0037 +:100900004255494C443A20626436386337312D648D +:1009100069727479202831313A32303A31342053B7 +:1009200065702020392032303136290A005649447A +:100930003A2030784645454428742E6D2E6B2E297A +:10094000205049443A20307842434243284E65586B +:1009500054204B6579626F61726420746F20555327 +:100960004220636F6E766572746572292056455217 +:100970003A203078303530300A00444553433A202D +:1009800055534220636F6E76657274657220666F90 +:1009900072204E655854206E6F6E2D414442204B9C +:1009A0006579626F6172640A000A092D20566572CA +:1009B00073696F6E202D0A000A6D6F7573653A209A +:1009C0006F66660A000A6D6F7573653A206F6E0A6E +:1009D000000A6B6579626F6172643A206F66660A1D +:1009E000000A6B6579626F6172643A206F6E0A006B +:1009F0000A6D61747269783A206F66660A000A6D42 +:100A000061747269783A206F6E0A000A64656275D3 +:100A1000673A206F6E0A000A64656275673A206F54 +:100A200066660A000A0A626F6F746C6F61646572B1 +:100A30002E2E2E2000433E20000011241FBECFEF9B +:100A4000D4E0DEBFCDBF04B603FE27C08091CB014A +:100A50009091CC01A091CD01B091CE018730904B07 +:100A6000A740B04BD1F41092CB011092CC01109260 +:100A7000CD011092CE0114BE84B7877F84BF0FB61C +:100A8000F894A8958091600088618093600010922E +:100A900060000FBEE0E0F8E3099511E0A0E0B1E0EE +:100AA000E0ECF9E402C005900D92A233B107D9F74A +:100AB00021E0A2E3B1E001C01D92AB3CB207E1F737 +:100AC0000E944B0B0C94DE240C940000FF93EF93D8 +:100AD000E0913201F0913301309709F00995EF91DF +:100AE000FF910895FC018591803011F0EFDFFBCF7D +:100AF0000895FF27E0E230E247FF0CC0419597FFE1 +:100B000009C0EDE26095709580959095611D711D0D +:100B1000811D911D27FF02C0219530E350E2AA27D5 +:100B2000660F771F881F991FAA1FA41710F0A41B18 +:100B300063955A95A9F7AA3008F0A95FA05DAF9315 +:100B4000F395611571058105910541F7ED3211F4B9 +:100B5000EF93F395F21718F43F93F395FBCF8F9132 +:100B6000B5DFFA95E1F70895E991F9918591803023 +:100B700021F0853219F0AADFF9CF089520E0E8943A +:100B800055915532C1F3503311F4689455915A334D +:100B900048F4505390F3220F022E220F220F200D03 +:100BA000250FF4CF0EF4219589919991533619F3BD +:100BB000533729F1533559F1BC0188279927E89417 +:100BC0005C3621F48991999168945591543639F4A1 +:100BD00046EF7EF077FF0DC08FEF9FEF0AC05537CD +:100BE0004AE039F0583540E121F0523642E009F050 +:100BF0000895FF93EF937DDFEF91FF91B7CFFF93C0 +:100C0000EF93FC0181918030B9F360DFFBCFFF935C +:100C1000EF9368DFF1CFDF93CF93CDB7DEB72596A3 +:100C2000A3DFCF91DF910895E82FE695E695E6954D +:100C3000EF70F0E0EA5CFE4F4081282F277081E0E2 +:100C400090E002C0880F991F2A95E2F7242F30E028 +:100C500028233923232B29F4842B808381E080935C +:100C600035010895E82FE695E695E695EF70F0E0FA +:100C7000EA5CFE4F2081382F377081E090E002C09F +:100C8000880F991F3A95E2F7422F50E048235923E5 +:100C9000452B31F080958223808381E0809335015C +:100CA00008958091AD0181608093AD012FEF84E3C1 +:100CB0009CE0215080409040E1F700C0000080910E +:100CC000AD0180FF08C08EED91E09F938F930E944D +:100CD0000B060F900F90569A5E9A54984C9A89B1D1 +:100CE00084FB992790F981E08927809334019091C2 +:100CF000AD0190FF0CC01F928F938EEB91E09F93FC +:100D00008F930E940B060F900F900F900F900E94F0 +:100D10002508E6E3F1E08CE08E0F11928E13FDCFF3 +:100D20008091AD0180FF08C08FE991E09F938F9380 +:100D30000E940B060F900F9008954F925F926F9252 +:100D40007F928F929F92AF92BF92CF92DF92EF925B +:100D5000FF928FE19EE40197F1F700C000005E98DA +:100D60001092350188E54C9910C00E94140681E06C +:100D700080933401809135018823D9F08091AD01B1 +:100D800080FF17C080E991E00EC00E9432061092E9 +:100D9000340180913501882361F08091AD0180FF9D +:100DA00008C081E891E09F938F930E940B060F90FB +:100DB0000F900E949E086B017C01672B682B692BAA +:100DC00009F4DBC0C11496E0D90690E3E906F1040A +:100DD00009F4D3C05E9A8091AD0126013701442405 +:100DE0009FE0592266247724460157019924AA24BA +:100DF000BB2480FF77C0D701C60142E1B695A79515 +:100E0000979587954A95D1F7817099279F938F93EE +:100E1000D701C60151E1B695A795979587955A9543 +:100E2000D1F7817099279F938F93C701817099277C +:100E30009F938F93D701C6016FE0B695A7959795BD +:100E400087956A95D1F7817099279F938F93D701E2 +:100E5000C6017EE0B695A795979587957A95D1F7C7 +:100E6000817099279F938F93D701C601EDE0B695C6 +:100E7000A79597958795EA95D1F7817099279F93C4 +:100E80008F93D701C601FCE0B695A79597958795F6 +:100E9000FA95D1F7817099279F938F9381E0411440 +:100EA00094E059066104710409F080E01F928F9369 +:100EB000D501C401B695A795979587959F938F9374 +:100EC000FF92EF92DF92CF9288E091E09F938F9311 +:100ED0000E940B068DB79EB748960FB6F8949EBF3A +:100EE0000FBE8DBF81E5E2FE03C00E94140602C062 +:100EF0000E94320682E5E1FE03C00E94140602C091 +:100F00000E94320683E5E0FE03C00E94140602C080 +:100F10000E94320684E5D7FE03C00E94140602C078 +:100F20000E94320685E5D6FE03C00E94140602C068 +:100F30000E94320686E5D5FE03C00E94140602C058 +:100F40000E94320687E5D4FE03C00E94140602C048 +:100F50000E943206D501C401B695A795979587954D +:100F6000411494E059066104710419F40E941406B6 +:100F700002C00E94320681E001C080E0FF90EF9045 +:100F8000DF90CF90BF90AF909F908F907F906F90A9 +:100F90005F904F900895E82FF0E0EA5CFE4F80816B +:100FA0000895089581FF03C061E081E002C060E020 +:100FB00080E00C944A085998519A08955198599A8A +:100FC00008950E94DB078BEF93E00197F1F700C0D3 +:100FD00000000E94DE078BEC90E00197F1F700C063 +:100FE00000000E94DB0783E692E00197F1F700C062 +:100FF00000000C94DE070E94DB078BEC90E0019769 +:10100000F1F700C000000E94DE078FE293E0019735 +:10101000F1F700C000000E94DB078BEC90E0019725 +:10102000F1F700C000000E94DE0787EC94E0019712 +:10103000F1F700C000000E94DB0787EF97E00197FF +:10104000F1F700C000000C94DE070E94DE07509804 +:10105000589A0E94E1078BEF93E00197F1F700C0E7 +:1010600000000E94FB078FE596E00197F1F700C0B2 +:1010700000000E94E1078BEF93E00197F1F700C0B9 +:1010800000000E94FB078FE596E00197F1F700C092 +:10109000000008951F93CF93DF931F92CDB7DEB763 +:1010A000162FF89489830E94DB07EBE2F7E0319773 +:1010B000F1F700C000000E94DE07E3E6F2E031979E +:1010C000F1F700C000000E94DB07EBECF0E0319785 +:1010D000F1F700C000008981882339F00E94DE0703 +:1010E0008BEC90E00197F1F706C00E94DB07EBEC78 +:1010F000F0E03197F1F700C00000112339F00E94B1 +:10110000DE078BEC90E00197F1F706C00E94DB0749 +:10111000EBECF0E03197F1F700C000000E94DB0734 +:1011200083E995E00197F1F700C000000E94DE0717 +:1011300078940F90DF91CF911F910895CF92DF9215 +:10114000EF92FF920F931F93489B13C00E94E107F9 +:10115000F89480E593EC489B08C0009741F025E0A7 +:101160002A95F1F700000197F6CF892B41F40E94F0 +:10117000FB07789430E020E080E090E032C085E822 +:101180008A95F1F7000040E050E0BA0180E001E00C +:1011900010E020E030E0489B17C068017901082E7C +:1011A00004C0CC0CDD1CEE1CFF1C0A94D2F74C29A9 +:1011B0005D296E297F298A3039F44899FECFE5E808 +:1011C000EA95F1F700008BE0E7ECF0E03197F1F7FA +:1011D00000C000008F5F8631F0F27894342F252F05 +:1011E000CB01632F722F1F910F91FF90EF90DF9033 +:1011F000CF90089580914D0108959FB7F894109273 +:1012000044019FBF9091C201943009F057C0909162 +:10121000E9009F703091EC00232F217030FD20E811 +:10122000922B24E02093E9002091EB0020FF43C0A3 +:101230002091EE0027FF3FC020914201222321F0A0 +:101240002091E80025FF37C01092420126E030913E +:10125000E80035FD15C03091C201343061F53091A0 +:10126000EB0035FD28C0215021F481E0809342013C +:1012700022C0EFE9FFE03197F1F700C00000E7CFAF +:101280008093F1008091E80085FD0AC08091E8001C +:1012900080FFFCCF8091E8008E778093E80006C045 +:1012A0008FB7F89421E0209344018FBF9F709093F3 +:1012B000E90080E008959F709093E9008FEF089512 +:1012C000CF93DF9300D01F92CDB7DEB79C01809102 +:1012D000C201843019F593E099833B832A8390936C +:1012E000E9008FEF9091E800815095FD06C095EDE3 +:1012F0009A95F1F700008111F5CF8091E80085FF04 +:101300000DC040E050E063E070E0CE0101960E9425 +:10131000090C8091E8008E778093E8000F900F9081 +:101320000F90DF91CF910895CF93DF9300D01F925C +:10133000CDB7DEB72091C201243021F522E0298308 +:101340009B838A8383E08093E9008FEF9091E8008C +:10135000815095FD06C095ED9A95F1F70000811139 +:10136000F5CF8091E80085FF0DC040E050E063E0DC +:1013700070E0CE0101960E94090C8091E8008E7702 +:101380008093E8000F900F900F90DF91CF91089518 +:101390002091C2012430F1F422E02093E9002FEFE4 +:1013A0003091E800215035FD06C035ED3A95F1F752 +:1013B00000002111F5CF2091E80025FF0BC040E08F +:1013C00050E065E070E00E94090C8091E8008E77A3 +:1013D0008093E8000895CF93DF932091C2012430D9 +:1013E00039F521E02093E9002FEF3091E8002150FA +:1013F00035FD06C035ED3A95F1F700002111F5CF26 +:101400002091E80025FF14C0EC0140E050E068E0C6 +:1014100070E00E94090C8091E8008E778093E800CC +:1014200088E0FE01A5E4B1E001900D928A95E1F714 +:10143000DF91CF9108958BE292E00E947205809136 +:10144000C101811109C00E949A0D0E94ED0D809189 +:10145000E20084608093E200089587E292E00E94B7 +:1014600072051092C101089583E292E00C94720516 +:10147000209143012F5F822F62E30E94A4249923CD +:1014800019F0209343010895109243018091440183 +:10149000882371F18091C201843041F58091E90087 +:1014A0008F702091EC00922F917020FD90E8892B95 +:1014B00094E09093E9009091EB0090FF14C090911C +:1014C000EE0097FF10C09091E80095FF03C01092C6 +:1014D000F100F9CF9091E80090FF05C09091E800ED +:1014E0009E779093E8008F708093E90010924401FA +:1014F000089542E061EC81E00E94140D42E061EC4D +:1015000082E00E94140D42E061EC83E00E94140D21 +:1015100042E261EC84E00C94140D8091C4018330AC +:1015200009F453C030F4813071F0823009F48CC07A +:1015300008958A3009F478C08B3009F45EC0893090 +:1015400009F09AC020C08091C301813A09F094C08B +:101550008091E800877F8093E8008091C701909197 +:10156000C801892B21F468E085E491E003C060E0C4 +:1015700080E090E070E00E94560C8091E8008B774C +:101580008093E80008958091C301813209F074C00E +:101590008091C7019091C801892B09F06DC080919D +:1015A000E800877F8093E8008091E80082FD05C015 +:1015B0008091C2018111F8CF5FC08091F1008093CA +:1015C0004D018091E8008B7753C08091C301813A2F +:1015D00009F052C08091C7019091C801892B09F090 +:1015E0004BC08091E800877F8093E8008091E800FD +:1015F00080FFFCCF80910A0136C08091C301813207 +:10160000D9F58091C7019091C801892BA9F58091E6 +:10161000E800877F8093E8000E94490D8091C50112 +:1016200080930A010C94A3158091C301813221F5A6 +:101630008091E800877F8093E8000E94490D8091A7 +:10164000C60180934E0108958091C301813AA1F4AF +:101650008091E800877F8093E8008091E80080FF18 +:10166000FCCF80914E018093F1008091E8008E774D +:101670008093E8000C94490D0895089508950E9400 +:10168000931B8091C001882329F00E94BE1B811109 +:101690000C94F30B089584B7877F84BF0FB6F8943A +:1016A000A89580916000886180936000109260002E +:1016B0000FBE90E080E80FB6F8948093610090939D +:1016C00061000FBE0E943D0B0E94A4100E949A0D63 +:1016D0000E94ED0D8091E20084608093E2008DEF26 +:1016E00098E00E947A1B78948091C201843019F0AE +:1016F0000E94F70FF9CF82E192E00E9472050E94EA +:10170000A61080E091E00E94121081E092E00E9419 +:1017100072050E943E0B8091C201853039F48DEF35 +:1017200091E00E9472050E943F0BF5CF0E94AA1023 +:101730000E94F70FF0CF292F332723303105C9F04E +:1017400064F42130310581F02230310509F043C0C5 +:1017500084E790E023E832E042C021323105F1F025 +:101760002232310541F137C082E190E027EF32E0CB +:1017700036C099278130910541F08230910541F0C2 +:10178000892B49F5EFE7F2E005C0EFE6F2E002C091 +:10179000EFE2F2E0849190E09F0121C06430D8F440 +:1017A000E62FF0E0EE0FFF1FE15EFE4F208131815A +:1017B00089E090E014C0643070F470E0FB01EE0F3B +:1017C000FF1FE95EFE4F20813181FB01ED5EFE4F80 +:1017D000808190E004C080E090E020E030E0FA01F9 +:1017E00031832083089584E089BD86E089BD09B4F2 +:1017F00000FEFDCF8091D8008F7D8093D80080912E +:10180000E00082608093E0008091E00081FDFCCFE9 +:101810000895CF92DF92EF92FF920F931F93CF9391 +:10182000DF93EC018B017A010E94680D811135C0B4 +:10183000E114F10439F0F70180819181081B190B43 +:10184000C80FD91FC12CD12C0115110529F1809188 +:10185000E80085FD18C08091E8008E778093E8004D +:101860000E94F70FE114F10449F0F70180819181A2 +:10187000C80ED91ED182C08285E00FC00E94680DBB +:10188000882311F30AC089918093F1000150110956 +:10189000FFEFCF1ADF0AD8CF80E0DF91CF911F9101 +:1018A0000F91FF90EF90DF90CF9008952091C901A4 +:1018B0003091CA012617370748F06115710539F4D0 +:1018C0002091E8002E772093E80001C0B90140E0A4 +:1018D0006115710591F12091C201222309F440C0E4 +:1018E000253009F43FC02091E80023FD3DC0209140 +:1018F000E80022FD2FC02091E80020FFE9CF2091D1 +:10190000F20030E0FC01CF016115710559F028307B +:10191000310540F481918093F100615071092F5F8E +:101920003F4FF1CF41E02830310509F040E02091F0 +:10193000E8002E772093E800CBCF4111CCCF0AC02E +:101940008091C201882361F0853061F08091E800C8 +:1019500083FD0AC08091E80082FFF2CF80E0089505 +:1019600082E0089583E0089581E008952091C901FF +:101970003091CA012617370748F06115710539F40F +:101980002091E8002E772093E80001C0B901FC0106 +:1019900020E06115710579F18091C201882309F475 +:1019A0003DC0853009F43CC08091E80083FD3AC019 +:1019B0008091E80082FD2CC08091E80080FFE9CF93 +:1019C0008091F20090E06115710559F08830910521 +:1019D00040F424912093F1003196615071090196F1 +:1019E000F2CF21E0089709F020E08091E8008E779F +:1019F0008093E800CECF2111CFCF0AC08091C201E1 +:101A0000882361F0853061F08091E80083FD0AC091 +:101A10008091E80082FFF2CF80E0089582E008958F +:101A200083E0089581E00895982F953058F59093BC +:101A3000E900981739F07091EC002091ED00509179 +:101A4000F00003C0242F762F50E021FF19C0309101 +:101A5000EB003E7F3093EB003091ED003D7F309303 +:101A6000ED003091EB0031603093EB007093EC00AF +:101A70002093ED005093F0002091EE0027FF07C067 +:101A80009F5FD3CF8F708093E90081E0089580E05D +:101A900008958091C30187FF11C08091E80082FD05 +:101AA00005C08091C2018111F8CF11C08091E8007A +:101AB0008B770BC08091C201882349F08091E800A8 +:101AC00080FFF8CF8091E8008E778093E80008953A +:101AD0002091E4003091E50095E64091EC00842FE0 +:101AE000817040FF22C08091E80080FD1CC0809181 +:101AF000C201882391F0853091F08091EB0085FD43 +:101B000010C04091E4005091E5004217530729F3BB +:101B10009A01915011F784E0089582E0089583E0DE +:101B2000089581E0089580E008954091E80042FF23 +:101B3000DECF08950E94F70D0E94FA0DE0EEF0E06E +:101B4000808181608083E8EDF0E080818F77808301 +:101B500019BCE3E6F0E08081816080831092C101CE +:101B600008950E94F70D0E94FA0D8091D8008F779A +:101B70008093D8008091D80080688093D8008091AD +:101B8000D8008F7D8093D80084E089BD86E089BD30 +:101B900009B400FEFDCF1092C2011092BE01109256 +:101BA000C0011092BF0142E060E080E00E94140D8D +:101BB0008091E1008E7F8093E1008091E20081605E +:101BC0008093E2008091E20088608093E20080913F +:101BD000E0008E7F8093E0000895E3E6F0E08081EE +:101BE0008E7F808381E08093C1010C94B10D1092AF +:101BF000E20008951092E10008951F920F920FB62F +:101C00000F9211242F933F934F935F936F937F9382 +:101C10008F939F93AF93BF93EF93FF938091E100D6 +:101C200082FF0BC08091E20082FF07C08091E1003B +:101C30008B7F8093E1000E94380A8091E10080FF51 +:101C400018C08091E20080FF14C08091E2008E7F76 +:101C50008093E2008091E20080618093E2008091B5 +:101C6000D80080628093D80019BC1092C2010E94F3 +:101C70002D0A8091E10084FF30C08091E20084FF52 +:101C80002CC084E089BD86E089BD09B400FEFDCF8B +:101C90008091D8008F7D8093D8008091E1008F7E65 +:101CA0008093E1008091E2008F7E8093E20080913A +:101CB000E20081608093E2008091BE01882311F0F0 +:101CC00084E007C08091E30087FD02C081E001C08D +:101CD00083E08093C2010E941B0A8091E10083FF90 +:101CE00024C08091E20083FF20C08091E100877FC3 +:101CF0008093E10082E08093C2011092BE01809146 +:101D0000E1008E7F8093E1008091E2008E7F8093DE +:101D1000E2008091E20080618093E20042E060E0B6 +:101D200080E00E94140D0E94340AFF91EF91BF9150 +:101D3000AF919F918F917F916F915F914F913F9163 +:101D40002F910F900FBE0F901F9018951F93CF9358 +:101D5000DF93CDB7DEB7AA970FB6F894DEBF0FBEFC +:101D6000CDBFE3ECF1E088E08E0F9091F10091930C +:101D70008E13FBCF0E948D0A8091E80083FF1FC164 +:101D80008091C3019091C401492F50E04A30510520 +:101D900008F015C1FA01E65CFF4F0C94C4248038AA +:101DA00081F0823809F00BC18091C7018F70809358 +:101DB000E9008091EB0085FB882780F91092E9000B +:101DC00006C08091BF019091C001911182609091F5 +:101DD000E800977F9093E8008093F1001092F10063 +:101DE000C8C0282F2D7F09F0EAC0882319F082305F +:101DF00061F0E5C08091C501813009F0E0C0933009 +:101E000009F080E08093C0012BC08091C501811151 +:101E100027C08091C7018F7009F4D1C08093E90079 +:101E20002091EB0020FF1CC0933021F48091EB0047 +:101E3000806214C09091EB0090619093EB0021E0E0 +:101E400030E0A90102C0440F551F8A95E2F7409384 +:101E5000EA001092EA008091EB0088608093EB002A +:101E60001092E9008091E800877F86C08111A7C0A9 +:101E70001091C5011F778091E3008078812B8093BA +:101E8000E3008091E800877F8093E8000E94490D7D +:101E90008091E80080FFFCCF8091E3008068809310 +:101EA000E300111102C082E001C083E08093C2010F +:101EB00086C08058823008F082C08091C501909120 +:101EC000C6018C3D53E0950779F583E08A838AE269 +:101ED00089834FB7F894DE01139620E03EE051E28B +:101EE000E32FF0E050935700E49120FF03C0E29508 +:101EF000EF703F5FEF708E2F90E0EA3010F0C796E2 +:101F000001C0C0968D939D932F5F243149F74FBF39 +:101F10008091E800877F8093E8006AE270E0CE015C +:101F200001960E94560C14C0AE014F5F5F4F609146 +:101F3000C7010E949B0BBC01892B09F440C0909102 +:101F4000E800977F9093E80089819A810E94B60CFF +:101F50008091E8008B778093E80031C0803879F574 +:101F60008091E800877F8093E8008091BE01809394 +:101F7000F1008091E8008E778093E8000E94490D7F +:101F80001EC081111CC09091C5019230C0F4809197 +:101F9000E800877F8093E8009093BE010E94490D7E +:101FA0008091BE01811106C08091E30087FD02C0CF +:101FB00081E001C084E08093C2010E94790A80918F +:101FC000E80083FF0AC08091E800877F8093E800E3 +:101FD0008091EB0080628093EB00AA960FB6F89494 +:101FE000DEBF0FBECDBFDF91CF911F910895CF937C +:101FF0008091C2018823A1F0C091E900CF70909137 +:10200000EC00892F817090FD80E8C82B1092E900C8 +:102010008091E80083FD0E94A60ECF70C093E90076 +:10202000CF91089590935401809353010895E091C6 +:102030005301F0915401309721F00190F081E02D8F +:10204000099480E00895EF92FF920F931F93CF932E +:10205000DF93E0915301F09154013097B1F18C017D +:102060000280F381E02D09958091AD0182FF2DC0A2 +:1020700080FF04C086EF93E00E947205E80118E03B +:1020800080EFE82E83E0F82E8091AD0180FF0BC039 +:1020900088811F928F93FF92EF920E940B060F9000 +:1020A0000F900F900F90115021961111EDCF80914C +:1020B000AD0180FF0AC08EEE93E0DF91CF911F91BA +:1020C0000F91FF90EF900C947205DF91CF911F91CB +:1020D0000F91FF90EF900895E0915301F09154011A +:1020E000309721F00480F581E02D09940895209126 +:1020F0005101309152018217930771F09093520170 +:1021000080935101E0915301F0915401309721F0F7 +:102110000680F781E02D0994089520914F013091B8 +:1021200050018217930771F09093500180934F01F3 +:10213000E0915301F0915401309721F00084F18532 +:10214000E02D0994089508950C94A3100E94FB1BA0 +:102150000C945106CF92DF92EF92FF920F931F9350 +:10216000CF93DF9300D000D000D0CDB7DEB70E9470 +:102170009D0686E5C82E81E0D82E00E010E0E02E16 +:10218000802F0E94CB07F60141916F01F42EF826B3 +:10219000B1F40F5F1F4F0C30110589F78FEF898362 +:1021A0008A831B820E94041C8160782F9D838C830C +:1021B00049815A816B818D810E94691147C090913C +:1021C000AD0191FF04C08E830E94D1078E8120E073 +:1021D00030E04F2D50E0922FBA01022E02C07595CB +:1021E00067950A94E2F760FF2BC02983EA8221E019 +:1021F00030E0690102C0CC0CDD1C9A95E2F790E05A +:102200008C219D21892B09F420E02B830E94041C42 +:102210008160782F9D838C8349815A816B818D8168 +:102220000E94691149815A816B817C818D810E9454 +:10223000801BF801EA5AFE4F8081C826C08206C082 +:102240002F5F3F4F2830310531F6A3CF0E947F1B0F +:102250000E94D11E109155010E941710181741F1CC +:102260000E941710809355019091AD0192FF0EC00E +:1022700090FF0CC01F928F9388E094E09F938F9300 +:102280000E940B060F900F900F900F9080915501B8 +:1022900026960FB6F894DEBF0FBECDBFDF91CF916B +:1022A0001F910F91FF90EF90DF90CF900C94911BB6 +:1022B00026960FB6F894DEBF0FBECDBFDF91CF914B +:1022C0001F910F91FF90EF90DF90CF9008950C94A5 +:1022D000D207CF93DF93CDB7DEB72B970FB6F89425 +:1022E000DEBF0FBECDBF942F4F83252F5887698740 +:1022F0007A878B874A855B85452B21F02F3F09F52F +:102300009F3FF9F4DE01119686E0FD0111928A9556 +:10231000E9F785E0FE01379601900D928A95E1F785 +:1023200049815A816B817C818D819E810E944C18EC +:102330002B960FB6F894DEBF0FBECDBFDF91CF91C5 +:1023400008954F81588569857A858B850E94801B09 +:10235000D9CFCF93882309F4A4C0C82F8CEF8C0F5A +:10236000813A48F48C2F0E94FD2181119AC08C2F54 +:102370000E94DB1A0CC080E28C0F883058F4C770C2 +:1023800081E001C0880FCA95EAF70E941A1BCF911D +:102390000C94541B8BE58C0F833078F4C53A29F0EC +:1023A000C63A31F083E890E005C081E890E002C0D1 +:1023B00082E890E0CF910C94771088E58C0F8531FE +:1023C00008F06FC0C83A61F1C93A69F1CA3A71F1CF +:1023D000CB3A79F1CC3A81F1CD3A89F1CE3A91F10B +:1023E000CF3A99F1C13BA1F1C03BA9F1C23BB1F198 +:1023F000C33BB9F1C43BC1F1C53BC9F1C63BD1F107 +:10240000C73BD9F1C83BE1F1C93BE9F1CA3BF1F166 +:10241000CB3BF9F1CC3B09F43FC080E090E03EC0FB +:1024200082EE90E03BC089EE90E038C08AEE90E00A +:1024300035C085EB90E032C086EB90E02FC083EB97 +:1024400090E02CC084EB90E029C087EB90E026C0A0 +:102450008CEC90E023C08DEC90E020C083E891E00C +:102460001DC08AE891E01AC082E991E017C084E9B2 +:1024700091E014C081E292E011C083E292E00EC0CC +:1024800084E292E00BC085E292E008C086E292E02E +:1024900005C087E292E002C08AE292E0CF910C94FC +:1024A0008D10CF910895882329F19CEF980F913AD0 +:1024B00018F40E94F81A0DC090E2980F983058F462 +:1024C000877091E001C0990F8A95EAF7892F0E94E1 +:1024D000201B0C94541B9BE5980F933020F480E054 +:1024E00090E00C947710885A853120F480E090E0D9 +:1024F0000C948D100895882321F00E941A1B0C94CF +:10250000541B0895882321F00E94201B0C94541B17 +:102510000895CF92DF92EF92FF920F931F93CF9384 +:10252000DF9300D000D000D0CDB7DEB725E0FC01AE +:10253000DE01119601900D922A95E1F7FC01408190 +:102540003181F280258122952F7063817481672B00 +:1025500009F4D8C23F3F19F44F3F09F4D3C26C01CC +:1025600049833A8389819A812E830E949A1A182F6F +:10257000092F0E94991A0E94A919E02FE295EF7085 +:10258000F0E0EC5BFF4F2E810C94C424802F807F01 +:10259000902F9F70092F882311F00295007FFF2054 +:1025A00049F0002309F45FC2802F0E942D1B0E9476 +:1025B000541B59C2812F0E945312002309F4A2C256 +:1025C000802F0E94331B26960FB6F894DEBF0FBEF5 +:1025D000CDBFDF91CF911F910F91FF90EF90DF90D2 +:1025E000CF900C94541B802F807F902F9F70092FC9 +:1025F000803211F00295007F112319F0113001F1A2 +:1026000029C0FF20A9F0802F222349F1213039F57C +:1026100026960FB6F894DEBF0FBECDBFDF91CF91E7 +:102620001F910F91FF90EF90DF90CF900C943D1B86 +:10263000222319F0213009F465C20E94401B2CC0EE +:10264000FF20E9F0263008F05DC20E94171B8023AE +:1026500029F022C0FF20F1F0211115C0802F26960D +:102660000FB6F894DEBF0FBECDBFDF91CF911F91A3 +:102670000F91FF90EF90DF90CF900C947B1225305C +:1026800008F040C209C0F601858180FFECC18F705F +:102690008583E4CF2111FBC1802F69C1202F2695AE +:1026A0002695237030E02115310521F021303105C8 +:1026B000C9F028C2FF2021F0812F902F937002C013 +:1026C00080E090E026960FB6F894DEBF0FBECDBF37 +:1026D000DF91CF911F910F91FF90EF90DF90CF90FE +:1026E0000C947710FF2021F0812F902F937002C05F +:1026F00080E090E026960FB6F894DEBF0FBECDBF07 +:10270000DF91CF911F910F91FF90EF90DF90CF90CD +:102710000C948D10812FFF2019F00E94571D02C0CC +:102720000E94BF1D26960FB6F894DEBF0FBECDBF28 +:10273000DF91CF911F910F91FF90EF90DF90CF909D +:102740000C94441E802F837009F078C0F110DAC118 +:10275000812F829586958770880F880F912F9F70A3 +:10276000C92ED12CE12CF12C082E04C0CC0CDD1C80 +:10277000EE1CFF1C0A94D2F714FF12C04FE050E089 +:1027800060E070E004C0440F551F661F771F8A95F4 +:10279000D2F7CB01BA01609570958095909503C0F2 +:1027A00060E070E0CB01202F269526952370422F04 +:1027B00050E042305105D1F04330510559F16C29B8 +:1027C0007D298E299F294130510541F126960FB66A +:1027D000F894DEBF0FBECDBFDF91CF911F910F9157 +:1027E000FF90EF90DF90CF900C94BE196C297D295B +:1027F0008E299F2926960FB6F894DEBF0FBECDBF57 +:10280000DF91CF911F910F91FF90EF90DF90CF90CC +:102810000C94D0190E94BE19C701B60126960FB6B6 +:10282000F894DEBF0FBECDBFDF91CF911F910F9106 +:10283000FF90EF90DF90CF900C94AC19FF2019F02F +:10284000802F817001C08695882309F45BC1812F98 +:10285000829586958770880F880F912F9F70C92E5B +:10286000D12CE12CF12C082E04C0CC0CDD1CEE1C6C +:10287000FF1C0A94D2F714FF12C04FE050E060E052 +:1028800070E004C0440F551F661F771F8A95D2F76A +:10289000CB01BA01609570958095909503C060E07A +:1028A00070E0CB01202F269526952370422F50E013 +:1028B00042305105D1F04330510559F16C297D2941 +:1028C0008E299F294130510541F126960FB6F89483 +:1028D000DEBF0FBECDBFDF91CF911F910F91FF9053 +:1028E000EF90DF90CF900C94751A6C297D298E297A +:1028F0009F2926960FB6F894DEBF0FBECDBFDF919D +:10290000CF911F910F91FF90EF90DF90CF900C949B +:10291000871A0E94751AC701B60126960FB6F89459 +:10292000DEBF0FBECDBFDF91CF911F910F91FF9002 +:10293000EF90DF90CF900C94631A103F41F118F4A0 +:10294000103E48F48BC0123F09F450C0D8F1133F39 +:1029500009F460C083C01F70802F8F71FF2021F0A9 +:102960000E94FC19812F7BCE0E941D1A812F269672 +:102970000FB6F894DEBF0FBECDBFDF91CF911F9190 +:102980000F91FF90EF90DF90CF900C948212FF2078 +:10299000A9F0253008F0B6C0802F8F7126960FB6AB +:1029A000F894DEBF0FBECDBFDF91CF911F910F9185 +:1029B000FF90EF90DF90CF900C94421A263008F0F1 +:1029C000A1C0EACFFF20A1F0802F8F7126960FB60D +:1029D000F894DEBF0FBECDBFDF91CF911F910F9155 +:1029E000FF90EF90DF90CF900C94FC19FF2061F3E3 +:1029F000802F8F7126960FB6F894DEBF0FBECDBF25 +:102A0000DF91CF911F910F91FF90EF90DF90CF90CA +:102A10000C941D1AFF2091F0802F8F7126960FB60F +:102A2000F894DEBF0FBECDBFDF91CF911F910F9104 +:102A3000FF90EF90DF90CF900C94E71926960FB699 +:102A4000F894DEBF0FBECDBFDF91CF911F910F91E4 +:102A5000FF90EF90DF90CF900C94E219FF20A1F04F +:102A6000222309F4B1CF812F26960FB6F894DEBF4A +:102A70000FBECDBFDF91CF911F910F91FF90EF90CF +:102A8000DF90CF900C94A911222309F4B1CF812FAC +:102A900026960FB6F894DEBF0FBECDBFDF91CF9163 +:102AA0001F910F91FF90EF90DF90CF900C945312F5 +:102AB000402F4F70612FC6010E94CD1C26960FB685 +:102AC000F894DEBF0FBECDBFDF91CF911F910F9164 +:102AD000FF90EF90DF90CF900C94F418402F4F7040 +:102AE000612FC60126960FB6F894DEBF0FBECDBF8C +:102AF000DF91CF911F910F91FF90EF90DF90CF90DA +:102B00000C94D01C26960FB6F894DEBF0FBECDBF36 +:102B1000DF91CF911F910F91FF90EF90DF90CF90B9 +:102B200008950E943A1B0E94091B0E94541B0E9498 +:102B3000781F0E94441E80E090E00E94771080E0A1 +:102B400090E00C948D100E942A1B0C9491150E9409 +:102B50009A1A292F22952F7030E02C3031054CF431 +:102B60002A3031056CF4225031092230310588F4C5 +:102B700007C02C30310549F02F30310531F009C044 +:102B8000803E48F0803F29F406C093FB882780F9F7 +:102B9000089580E0089581E00895CF93DF9300D0F9 +:102BA00000D01F92CDB7DEB70F900F900F900F900F +:102BB0000F90DF91CF910895CF93DF9300D000D095 +:102BC00000D0CDB7DEB726960FB6F894DEBF0FBEA5 +:102BD000CDBFDF91CF910895CF93DF93C091620174 +:102BE00080916301C817A1F0D0E0CE0166E070E0EB +:102BF0000E949324FC01EC59FE4F40815181628177 +:102C00007381848195810E94DC152196C770E8CF7D +:102C1000DF91CF9108954091940150919501609179 +:102C200096017091970180919801909199010C946F +:102C3000DC15CF93DF938091990182958F7009F015 +:102C40005CC080919601882309F457C020916201ED +:102C5000D091630140919401C0919501E091970159 +:102C6000F09198012D1709F448C030E0309709F42D +:102C700040C0CF3F11F44F3FE1F1C90166E070E081 +:102C80000E949324DC01AC59BE4F11968C91119790 +:102C9000C8132FC08C9148132CC012968C91129798 +:102CA000811127C013968D919C9114978E179F07C1 +:102CB00008F401978E1B9F0B883C9105D0F48091FE +:102CC00099018F70806180939901C90166E070E07D +:102CD0000E949324FC01E759FE4F90819F70906100 +:102CE000908384E991E00E948912DF91CF910C9446 +:102CF000EC152F5F3F4F2770B5CFDF91CF9108952F +:102D0000BF92CF92DF92EF92FF920F931F93CF93D8 +:102D1000DF93CDB7DEB761970FB6F894DEBF0FBE75 +:102D2000CDBF8C0185E0F801DE011D9601900D926A +:102D30008A95E1F7D8014C9111962C911197129632 +:102D4000EC9012971396CD90DC90149750919401CB +:102D5000609195018091970190919801009709F4F5 +:102D60006EC16F3F19F45F3F09F469C1B0909601DD +:102D7000BB2009F4C3C030919901C816D90628F0C8 +:102D8000F601E81BF90BCF0104C0809590958C0DDE +:102D90009D1DFF24F394883C910588F0F12C307F31 +:102DA00009F0CBC07C2DD98AC88A522F6E2D898913 +:102DB0000E94CD1584E991E00E948912B4C0832F4E +:102DC000807F09F049C0621314C0541312C0E1108F +:102DD00010C03F703061309399010E940B1684E956 +:102DE00091E00E94891280919901D80115968C93E7 +:102DF00031C0CD2831F12F3F11F44F3F11F1FE2C9E +:102E0000E1101FC0E091620130916301E31709F402 +:102E10005CC0F0E0CF0166E070E00E949324DC012A +:102E2000AC59BE4F11968C911197281307C08C9105 +:102E3000481304C012968C91811103C03196E7703B +:102E4000E5CFFE2CEE2009F416C180919901816036 +:102E500080939901F12C0FC1621308C0541306C06E +:102E6000E11004C080919901D801C1C04D872E871F +:102E70008D859E850E94A7158823E1F1EE20D1F172 +:102E800020919901822F82958F7090E0029774F0C3 +:102E9000809194019091950198878F831986DB86A4 +:102EA000CA862C87CE0107960E94891286E0F80117 +:102EB000A4E9B1E001900D928A95E1F70E941916FC +:102EC0000E940B16FF24F394D6C04D872E878D8564 +:102ED0009E850E949A1A292F22952F7030E0223069 +:102EE00031050CF0BCC09F7009F0B6C0805E883020 +:102EF00008F4C1C0C8010E948912E4CFC816D906DF +:102F000008F453C0F601E81BF90BCF01883C91058A +:102F100008F450C0F12C7C2DD98AC88A522F6E2D0E +:102F200089890E94CD15E4E9F1E086E0DF011D9278 +:102F30008A95E9F70E940B169EC0621314C05413C1 +:102F400012C0E11010C080919901F8018583C80179 +:102F50000E94891286E0E4E9F1E0DF011D928A9582 +:102F6000E9F7FB2C88C04D872E878D859E850E94B2 +:102F7000A715882309F4BECFEE2009F4BBCF20911A +:102F80009901822F82958F7090E002970CF48ECF7A +:102F900080919401909195019A8389831B82DD82AF +:102FA000CC822E83CE0101967FCF809590958C0D9B +:102FB0009D1DACCFFE2CEE2009F49CCF62132EC0D9 +:102FC00054132CC02091990120FD1FC0822F82959F +:102FD0008F70D9F0D80115962C9315978F3049F042 +:102FE0008F5F982F9295907F822F8F70892B1596E7 +:102FF0008C93C8010E94891286E0F801A4E9B1E02F +:1030000001900D928A95E1F795CF86E0F801A4E949 +:10301000B1E001900D928A95E1F72DC04D872E8782 +:103020008D859E850E94A715811140CF80919901C1 +:10303000816080939901C8010E9489121CC0EE2012 +:1030400009F458CF4D872E878D859E850E94A71540 +:10305000882309F44FCF2ACF811148CF0CC02430E8 +:1030600031050CF047CF9F7009F440CFF8019581EE +:10307000907F09F03BCF8F2D61960FB6F894DEBF9D +:103080000FBECDBFDF91CF911F910F91FF90EF90B9 +:10309000DF90CF90BF900895CF93DF93CDB7DEB789 +:1030A0002C970FB6F894DEBF0FBECDBF4F83588765 +:1030B00069877A878B879C87CE0107960E94801646 +:1030C000882371F08F8198852A853B85232B09F40D +:1030D0003FC09F3F09F068C08F3F09F065C038C00E +:1030E00086E0FE013796DE01119601900D928A95D9 +:1030F000E1F76F817885EA85FB85309749F17F3F5D +:1031000011F46F3F29F18091630190E09C012F5FE2 +:103110003F4F277033274091620150E02417350755 +:1031200009F44BC069837A83FD83EC8366E070E029 +:103130000E949324DC01AC59BE4F96E0FE0131960B +:1031400001900D929A95E1F7209363010E94EC158E +:1031500080916201909163018917E9F190E066E046 +:1031600070E00E9493248C599E4F0E948016882301 +:1031700091F18091620190E066E070E00E949324FA +:10318000FC01EC59FE4F4081518162817381848141 +:1031900095810E94DC158091620190E00196877014 +:1031A000992780936201D4CF4F81588569857A85AC +:1031B0008B859C850E94DC15CBCF0E94A3151092B5 +:1031C000630110926201E4E9F1E086E0DF011D9203 +:1031D0008A95E9F7BDCF2C960FB6F894DEBF0FBEE7 +:1031E000CDBFDF91CF910895DF92EF92FF920F93C1 +:1031F0001F93CF93DF93FC01892B09F48AC0E12C44 +:10320000F12CDD24D394EF0121968491853709F4C4 +:1032100061C058F4843708F04EC0843008F06AC0AA +:103220008130D1F0823071F174C0883709F45DC00B +:1032300050F4863709F455C0873709F06AC08E2DDF +:103240000E94271B54C09CE7980F903708F061C07C +:103250008F770E94531250C08F010E5F1F4FFE01E7 +:10326000849190E2980F983050F48770FD2D01C042 +:10327000FF0F8A95EAF78F2F0E942D1B14C00E9422 +:10328000A91113C08F010E5F1F4FFE01C49180E290 +:103290008C0F883060F4C7708D2D01C0880FCA95DF +:1032A000EAF70E94331B0E94541BE80125C08C2FB3 +:1032B0000E945312FACF9F012E5F3F4FFE01C4912F +:1032C000CC2369F08FE99FE00197F1F700C000007F +:1032D000C150F6CF9F012E5F3F4FFE01F490E901F0 +:1032E0000BC00E94171BE82E07C00E942A1B0E94D9 +:1032F000541B02C00E94A9118F2D882341F0EFE9D1 +:10330000FFE03197F1F700C000008150F6CFFE01D9 +:103310007ACFDF91CF911F910F91FF90EF90DF90C7 +:10332000089560939E0170939F018093A0019093F4 +:10333000A1010E948F1B0C94911560939A017093C8 +:103340009B0180939C0190939D010E94901B0C9483 +:10335000911508950C9491190F931F9300919E015C +:1033600010919F012091A0013091A101602B712B40 +:10337000822B932B1F910F910C9491190F931F93F4 +:1033800000919E0110919F012091A0013091A10117 +:1033900060237123822393231F910F910C94911921 +:1033A0000F931F9300919E0110919F012091A00106 +:1033B0003091A10160277127822793271F910F91D8 +:1033C0000C94911960E070E0CB010C949D190F935F +:1033D0001F9341E050E060E070E08A019B0104C06F +:1033E000000F111F221F331F8A95D2F7C901B801A0 +:1033F0001F910F910C949D190F931F9341E050E082 +:1034000060E070E004C0440F551F661F771F8A9567 +:10341000D2F780919A0190919B01A0919C01B0916B +:103420009D018A019B01082B192B2A2B3B2BC901DB +:10343000B8011F910F910C949D190F931F9341E0B8 +:1034400050E060E070E004C0440F551F661F771F16 +:103450008A95D2F7409550956095709580919A0124 +:1034600090919B01A0919C01B0919D018A019B01CB +:10347000082319232A233B23C901B8011F910F9167 +:103480000C949D190F931F9341E050E060E070E0B1 +:1034900004C0440F551F661F771F8A95D2F780918D +:1034A0009A0190919B01A0919C01B0919D018A018C +:1034B0009B01082719272A273B27C901B8011F911B +:1034C0000F910C949D190F931F9300919A011091E5 +:1034D0009B0120919C0130919D01602B712B822BCF +:1034E000932B1F910F910C949D190F931F93009193 +:1034F0009A0110919B0120919C0130919D016023C4 +:103500007123822393231F910F910C949D190F9384 +:103510001F9300919A0110919B0120919C01309181 +:103520009D0160277127822793271F910F910C948B +:103530009D190895CF92DF92EF92FF920F931F9300 +:10354000CF93DF938C01C0909E01D0909F01E090BB +:10355000A001F090A10140919A0150919B016091CE +:103560009C0170919D01C42AD52AE62AF72ACFE151 +:10357000D0E0D701C6010C2E04C0B695A79597954B +:1035800087950A94D2F780FF07C0B8018C2F0E945C +:103590009E1C8130910531F4219758F7B80180E0E5 +:1035A0000E949E1CDF91CF911F910F91FF90EF9091 +:1035B000DF90CF90089520910B0130910C01F9011B +:1035C00032969FEF40E05191581789F09F3F19F4D0 +:1035D000511101C0942F4F5F4630A9F79F3F39F03A +:1035E000F901E90FF11D97FDFA9582830895089579 +:1035F00020910B0130910C01F9013296285F3F4F69 +:103600009081981301C010823196E217F307C1F739 +:10361000089581E090E0E0910B01F0910C01E80F3A +:10362000F91F1082019688309105A9F708958091BD +:10363000AC0108959091AC01892B8093AC01089561 +:1036400080959091AC0189238093AC01089580937B +:10365000AC0108951092AC0108959091AB01892BB3 +:103660008093AB01089580959091AB01892380935D +:10367000AB0108951092AB0108958093A2010895C3 +:103680001092A201089580910B0190910C01FC0110 +:1036900031969C01285F3F4F80E0919191118F5F9F +:1036A000E217F307D1F70895E0910B01F0910C01B7 +:1036B0008091AC018083E0910B01F0910C0190812D +:1036C0008091AB01892B80838091A201882361F0D6 +:1036D000E0910B01F0910C019081892B80830E9475 +:1036E000431B81111092A20180910B0190910C015A +:1036F0000C94231090933301809332010895089520 +:10370000CF93DF9300D000D01F92CDB7DEB70F90DC +:103710000F900F900F900F90DF91CF910895089523 +:1037200008950C9467118091C201843021F11092A8 +:10373000AE0120E488E190E00FB6F894A89580935C +:1037400060000FBE2093600083B7817F846083BFD9 +:1037500083B7816083BF7894889583B78E7F83BF5A +:103760000FB6F894A89580916000886180936000FE +:10377000109260000FBE089508950895CF930E949F +:10378000BC1B0E949D060E94BD1BC0E08C2F0E94A6 +:10379000CB07811104C0CF5FCC30C1F701C081E0FD +:1037A000CF9108951F920F920FB60F9211248F930D +:1037B0009F93AF93BF938091AE01811113C080910D +:1037C000AF019091B001A091B101B091B2014196C9 +:1037D000A11DB11D8093AF019093B001A093B101E1 +:1037E000B093B201BF91AF919F918F910F900FBE97 +:1037F0000F901F90189582E084BD93E095BD9AEFDD +:1038000097BD80936E0008952FB7F8948091AF0113 +:103810009091B001A091B101B091B2012FBF089574 +:103820002FB7F8946091AF017091B0018091B10110 +:103830009091B2012FBF0895CF92DF92EF92FF9245 +:103840000F931F932FB7F8944091AF015091B0019F +:103850006091B1017091B2012FBF6A017B01EE242A +:10386000FF248C0120E030E0C016D106E206F3060A +:1038700010F4415051099A01281B390BC9011F91BD +:103880000F91FF90EF90DF90CF9008951F920F92CD +:103890000FB60F9211248F939F93AF93BF93809194 +:1038A000AF019091B001A091B101B091B201019628 +:1038B000A11DB11D8093AF019093B001A093B10100 +:1038C000B093B201BF91AF919F918F910F900FBEB6 +:1038D0000F901F9018950E949A0DF8942FEF87EA89 +:1038E00091E6215080409040E1F700C0000087E061 +:1038F00090EBDC018093CB019093CC01A093CD01A0 +:10390000B093CE019CE088E10FB6F894A89580931F +:1039100060000FBE90936000FFCFE92FF0E093E0CE +:10392000EE0FFF1F9A95E1F7E80FF11DE855FF4FE5 +:103930009491892F8F7092959F700895CF93C82F7F +:10394000CB010E948D1C492F90E0242F30E054E0E1 +:10395000220F331F5A95E1F7282B392B20383105D8 +:1039600019F480E090E017C0EC2FF0E023E0EE0FB8 +:10397000FF1F2A95E1F74770E40FF11D34E0EE0FC9 +:10398000FF1F3A95E1F7E80FF91FEE0FFF1FE05018 +:10399000F84985919491CF91089580E090E0089541 +:1039A00008958091B50180FF0CC08091100190E0D6 +:1039B00065E070E00E94932495958795959587958D +:1039C0002EC081FF0AC08091100190E065E070E098 +:1039D0000E9493249595879522C082FF08C080910C +:1039E000100190E065E070E00E94932418C02091DF +:1039F000B6012223D1F030910F01231780F7809177 +:103A0000100190E065E070E00E949324622F70E066 +:103A10000E949324632F70E00E94B024CB01803871 +:103A2000910530F4009731F0089585E090E0089515 +:103A30008FE7089581E008958091B50180FF08C067 +:103A400060910E0170E0759567957595679523C037 +:103A500081FF06C060910E0170E0759567951BC0EF +:103A600082FF04C060910E0170E012C06091B60147 +:103A70006623D1F020910D016217A0F780910E010D +:103A800070E090E00E949324622F70E00E94B024C6 +:103A90006038710528F46115710521F0862F0895AD +:103AA0008FE7089581E0089561E070E0F4CF803FF2 +:103AB00021F40E94D11C819504C0813F29F40E9409 +:103AC000D11C8093B9010895823F21F40E94D11C3A +:103AD000819504C0833F29F40E94D11C8093B801D2 +:103AE0000895893F19F40E941C1D05C08A3F31F4D6 +:103AF0000E941C1D81958093BA0108958B3F21F48B +:103B00000E941C1D819504C08C3F29F40E941C1D3D +:103B10008093BB010895843F21F48091B7018160B7 +:103B200017C0853F21F48091B701826011C0863FA4 +:103B300021F48091B70184600BC0873F21F480910C +:103B4000B701886005C0883F31F48091B70180617A +:103B50008093B70108958D3F21F48091B501816074 +:103B60000BC08E3F21F48091B501826005C08F3F6C +:103B700029F48091B50184608093B5010895803F58 +:103B800039F48091B90187FF6CC01092B90169C006 +:103B9000813F29F48091B9011816BCF362C090915D +:103BA000B801823F29F497FF5CC01092B80159C058 +:103BB000833F19F41916CCF354C0893F41F4809126 +:103BC000BA0118160CF04DC01092BA014AC08A3FD3 +:103BD00029F48091BA0187FF44C0F6CF8B3F39F4B6 +:103BE0008091BB0187FF3DC01092BB013AC08C3F62 +:103BF00029F48091BB011816BCF333C0843F21F433 +:103C00008091B7018E7F17C0853F21F48091B70165 +:103C10008D7F11C0863F21F48091B7018B7F0BC04F +:103C2000873F21F48091B701877F05C0883F31F439 +:103C30008091B7018F7E8093B70113C08D3F21F42F +:103C40008091B5018E7F0BC08E3F21F48091B5012C +:103C50008D7F05C08F3F29F48091B5018B7F8093C4 +:103C6000B5018091B80181110EC08091B901811117 +:103C70000AC08091BA01811106C08091BB018111F7 +:103C800002C01092B60108958091AD0183FF7EC0FD +:103C90008AE394E00E9472058091B7011F928F938E +:103CA00085E394E09F938F930E940B0683E394E057 +:103CB0000E9472058091B801282F082E000C330B4A +:103CC0003F938F9380E394E09F938F930E940B0622 +:103CD0008EE294E00E9472058091B901282F082E8F +:103CE000000C330B3F938F938BE294E09F938F9361 +:103CF0000E940B0689E294E00E9472058091BA014D +:103D0000282F082E000C330B3F938F9386E294E00C +:103D10009F938F930E940B0684E294E00E947205A9 +:103D20008091BB01282F082E000C330B3F938F93FB +:103D300081E294E09F938F930E940B068EE194E0C2 +:103D40000E9472058091B6011F928F938BE194E0DF +:103D50009F938F930E940B0689E194E00E94720565 +:103D60008091B5011F928F9386E194E09F938F938A +:103D70000E940B0683E194E00E9472058DB79EB706 +:103D80004C960FB6F8949EBF0FBE8DBF87EB91E0A7 +:103D90000E946C100E94041C9093B4018093B301A4 +:103DA00008951F93CF93DF938091B3019091B40155 +:103DB0000E941C1CFC012091B601222329F0909145 +:103DC0001101892F90E007C08091120190E06AE014 +:103DD00070E00E949324E817F90708F485C08091E9 +:103DE000B801C091B901D091BA011091BB01811104 +:103DF00007C0C11175C0D11173C0111171C074C059 +:103E00002F3F19F02F5F2093B601181624F40E945B +:103E1000D11C8093B8018091B80187FF05C00E9432 +:103E2000D11C81958093B8011C1624F40E94D11CEA +:103E30008093B9018091B90187FF05C00E94D11C10 +:103E400081958093B9016091B801662331F1C091E9 +:103E5000B901CC2311F1062E000C770B880B990BBE +:103E60000E94922323E333E343E35FE30E94F623BC +:103E70000E945A236093B8016C2FCC0F770B880BEC +:103E8000990B0E94922323E333E343E35FE30E9411 +:103E9000F6230E945A236093B9011D1624F40E9450 +:103EA0001C1D8093BA018091BA0187FF05C00E9452 +:103EB0001C1D81958093BA01111624F40E941C1DCB +:103EC0008093BB018091BB0187FF05C00E941C1D30 +:103ED00081958093BB01DF91CF911F910C94441E7B +:103EE0002F3F09F08FCF97CFDF91CF911F9108958A +:103EF000E7EBF1E085E0DF011D928A95E9F710928A +:103F0000B6011092B50108958DE596E00E94720504 +:103F10001F9281E08F931F9285E08F938FE096E050 +:103F20009F938F930E940B060F900F900F900F900E +:103F30000F900F9008958330E9F128F4813061F0FB +:103F4000823009F10895853009F462C008F449C04F +:103F5000863009F474C0089580911201262F30E054 +:103F6000280F311D2F3F310524F4680F6093120193 +:103F700003C08FEF80931201809112011F928F93E3 +:103F800088E495E072C080911101262F30E0280F5F +:103F9000311D2F3F310524F4680F6093110103C0D8 +:103FA0008FEF80931101809111011F928F9386E30F +:103FB00095E05BC080911001262F30E0280F311D65 +:103FC0002F3F310524F4680F6093100103C08FEF79 +:103FD00080931001809110011F928F9383E295E0EE +:103FE00044C080910F01262F30E0280F311D2F3F54 +:103FF000310524F4680F60930F0103C08FEF8093A5 +:104000000F0180910F011F928F938EE095E02DC0DC +:1040100080910E01262F30E0280F311D2F3F3105F2 +:1040200024F4680F60930E0103C08FEF80930E019C +:1040300080910E011F928F9385EF94E016C08091BE +:104040000D01262F30E0280F311D2F3F310524F4BC +:10405000680F60930D0103C08FEF80930D01809175 +:104060000D011F928F938AED94E09F938F930E948E +:104070000B060F900F900F900F900895833081F1F1 +:1040800028F4813059F08230D1F00895853009F458 +:1040900049C0B8F1863009F456C0089580911201E4 +:1040A000681720F4861B8093120102C0109212013F +:1040B000809112011F928F938BEC94E054C08091F9 +:1040C0001101681720F4861B8093110102C0109221 +:1040D0001101809111011F928F9389EB94E043C0ED +:1040E00080911001681720F4861B8093100102C094 +:1040F00010921001809110011F928F9386EA94E034 +:1041000032C080910F01681720F4861B80930F0145 +:1041100002C010920F0180910F011F928F9381E9CD +:1041200094E021C080910E01681720F4861B8093D3 +:104130000E0102C010920E0180910E011F928F930A +:1041400088E794E010C080910D01681720F4861B69 +:1041500080930D0102C010920D0180910D011F92FC +:104160008F938DE594E09F938F930E940B060F90A1 +:104170000F900F900F900895CF93C82F1F928F9399 +:1041800082E697E09F938F930E940B0681E090E078 +:10419000A0E0B0E0BC01CD0104C0660F771F881F0E +:1041A000991FCA95D2F70E94AA190F900F900F90ED +:1041B0000F90CF910C94A315CF93873288F58E3151 +:1041C00008F00BC18E3009F487C0D8F4873009F4A9 +:1041D00060C08B3009F44FC0863009F002C1809175 +:1041E000AD01817F8E7F8093AD0187E697E00E94CD +:1041F000720585E39AE00E94720581E08093BD011B +:1042000046C0863109F4B0C020F4803109F47AC088 +:10421000E8C0893109F491C08B3109F449C0E1C08B +:10422000883349F150F4893209F4D5C0853309F453 +:10423000D2C0873209F0D5C0CEC0833409F4CBC0D8 +:1042400028F48A3308F4CDC08953C8C0883409F0F3 +:10425000C8C00E94A31584E29AE00E9472052FEF65 +:1042600083ED90E3215080409040E1F700C00000D2 +:104270000E946B1C0CC08EE897E041C08BE09AE076 +:104280000E9472058091AD0181608093AD01C1E013 +:10429000ADC08091AD01C82FC17080FFEFCF87E125 +:1042A0009AE00E9472058091AD01817F8E7F3FC0B0 +:1042B0009091AD0191FBCC27C0F981E0C827892FEF +:1042C000C0FB81F98093AD01CC2319F08EEF99E00A +:1042D00029C080EF99E013C09091AD0192FBCC27EB +:1042E000C0F981E0C827892FC0FB82F98093AD0116 +:1042F000CC2319F081EE99E015C081ED99E00E9480 +:104300007205C5CF9091AD0193FBCC27C0F981E038 +:10431000C827892FC0FB83F98093AD01CC2351F0CE +:1043200085EC99E00E9472058091AD0181608093D7 +:10433000AD015CC088EB99E0E2CF89EA99E00E9488 +:1043400072058AE799E00E9472058DE299E00E9469 +:10435000720580E099E00E9472058BEB98E00E9464 +:1043600072058CE898E0CBCF8EE798E00E9472054A +:104370000E9417101F928F9384E698E09F938F936B +:104380000E940B0680910A011F928F938DE498E0A2 +:104390009F938F930E940B0680914E011F928F93E3 +:1043A0008AE398E09F938F930E940B060E94101C53 +:1043B0009F938F937F936F9383E298E09F938F9364 +:1043C0000E940B068DB79EB742960FB6F8949EBF1B +:1043D0000FBE8DBF5CCF80E001C08D510E94BC201C +:1043E00056CF81E298E00E947205C0E08C2FCF91F9 +:1043F000089580E0089580E00895CF93C82F8091BC +:10440000BD01813091F020F0823009F453C04AC1DF +:10441000E0910B01F0910C018081823289F08034AF +:1044200079F0803809F040C10BC0E0910B01F091A8 +:104430000C018081823221F0803411F0803861F4E7 +:104440008C2F0E94F921811104C08C2F0E94DC2046 +:104450002FC081E090E02CC08C2F0E94FB218111A5 +:1044600026C0C431E1F070F4CB3081F0C031D1F41A +:104470000E94841F8AE597E00E94720582E0809383 +:10448000BD0115C0C93259F0C83361F487E697E021 +:104490000E9472058EE597E00E94720508C0109296 +:1044A000BD0104C188E597E00E947205FFC081E06C +:1044B0008170FEC0C43228F5CE3108F0C1C0CB30C7 +:1044C000A1F1D0F4C73009F0D3C08EE1809312017E +:1044D00082E3809311018AE08093100184E180934C +:1044E0000F0188E080930E0188E280930D018EEF2A +:1044F00095E00E947205BFC0C33149F1C431C1F0DB +:10450000B7C0CB3409F4A9C028F4C93289F0C83344 +:1045100061F0AEC0C13509F49EC0C23509F499C03E +:10452000CE3409F0A5C06AE09EC00E94841FA3C0DB +:104530008091BC01882319F01092BC019CC08BE0D3 +:1045400096E00E94720581E08093BD01B1C085EEC6 +:1045500095E00E94720583ED95E00E9472058091BE +:1045600012011F928F9380ED95E09F938F930E948D +:104570000B068EEC95E00E9472058CEB95E00E9494 +:104580007205809111011F928F9389EB95E09F93A3 +:104590008F930E940B0687EB95E00E94720588EAD4 +:1045A00095E00E947205809110011F928F9385EA19 +:1045B00095E09F938F930E940B0683EA95E00E94FB +:1045C000720582E995E00E94720580910F011F92A9 +:1045D0008F938FE895E09F938F930E940B068DE851 +:1045E00095E00E94720588E795E00E94720580912F +:1045F0000E011F928F9385E795E09F938F930E9402 +:104600000B0683E795E00E9472058CE595E00E9419 +:10461000720580910D011F928F9389E595E09F931C +:104620008F930E940B0687E595E00E9472058DB777 +:104630009EB748960FB6F8949EBF0FBE8DBF1BC0A5 +:10464000CE51EC2FF0E0E95DFE4F80818093BC01FC +:1046500012C061E003C061E006C06AE08091BC0165 +:104660000E949B1F08C08091BC010E943E2003C095 +:104670008CEF95E013C08091BC01882369F01F92F4 +:104680008F9386EF95E09F938F930E940B060F9078 +:104690000F900F900F9004C083EF95E00E94720579 +:1046A00081E006C01092BD0180E002C080E000CF32 +:1046B000CF9108950E9461236894B1110C94F02366 +:1046C00008950E94D52388F09F5798F0B92F992715 +:1046D000B751B0F0E1F0660F771F881F991F1AF0ED +:1046E000BA95C9F714C0B13091F00E94EF23B1E040 +:1046F00008950C94EF23672F782F8827B85F39F03F +:10470000B93FCCF3869577956795B395D9F73EF485 +:1047100090958095709561957F4F8F4F9F4F08952D +:10472000E89409C097FB3EF490958095709561954B +:104730007F4F8F4F9F4F9923A9F0F92F96E9BB2701 +:104740009395F695879577956795B795F111F8CF7D +:10475000FAF4BB0F11F460FF1BC06F5F7F4F8F4FE8 +:104760009F4F16C0882311F096E911C0772321F0DE +:104770009EE8872F762F05C0662371F096E8862F76 +:1047800070E060E02AF09A95660F771F881FDAF7CD +:10479000880F9695879597F9089557FD9058440F7F +:1047A000551F59F05F3F71F04795880F97FB991F90 +:1047B00061F09F3F79F0879508951216130614064D +:1047C000551FF2CF4695F1DF08C0161617061806DA +:1047D000991FF1CF86957105610508940895E894B5 +:1047E000BB2766277727CB0197F908950E940824F5 +:1047F0000C9482240E94742438F00E947B2420F0C0 +:10480000952311F00C946B240C9471240C94F023D8 +:104810000E94CD2378F39923C9F35523B9F3950F5B +:1048200050E0551FAA27EE27FF27BB270024089436 +:10483000679520F4E20FF31FB41F0A1E220F331FE7 +:10484000441FAA1F6695A9F7779530F4F30FB41F9C +:104850000A1E121E08F46395330F441FAA1F221F5D +:10486000769599F7879520F4B40F0A1E121E631FE0 +:10487000440FAA1F221F331F8695A9F7862F712D7B +:10488000602D11249F5750409AF0F1F088234AF090 +:10489000EE0FFF1FBB1F661F771F881F91505040F0 +:1048A000A9F79E3F510580F00C946B240C94F023E3 +:1048B0005F3FE4F3983ED4F3869577956795B79577 +:1048C000F795E7959F5FC1F7FE2B880F911D969591 +:1048D000879597F9089597F99F6780E870E060E001 +:1048E00008959FEF80EC089500240A941616170689 +:1048F00018060906089500240A94121613061406D1 +:1049000005060895092E0394000C11F4882352F033 +:10491000BB0F40F4BF2B11F460FF04C06F5F7F4FEB +:104920008F4F9F4F08950024552704C0080E591F2C +:10493000880F991F009729F076956795B8F3710550 +:10494000B9F7802D952F0895991B79E004C0991F20 +:10495000961708F0961B881F7A95C9F780950895D9 +:1049600097FB072E16F4009407D077FD09D00E941C +:10497000CA2407FC05D03EF4909581959F4F089579 +:10498000709561957F4F0895EE0FFF1F0590F4918C +:10499000E02D0994AA1BBB1B51E107C0AA1FBB1F36 +:1049A000A617B70710F0A61BB70B881F991F5A95BB +:1049B000A9F780959095BC01CD010895F894FFCF9B +:1049C000FA08EB09C8099409600901A30128081431 +:1049D0000A321E404D3622AE0361032B03090395B4 +:1049E00002AE02C702E0020102030405060708093D +:0249F0000000C5 +:106800000000000000000000040005000600070072 +:10681000080009000A000B000C000D000E000F001C +:1068200010001100120013001400150016001700CC +:10683000180019001A001B001C001D001E001F007C +:10684000200021002200230024002500260027002C +:10685000280000002A002B002C002D002E002F0005 +:1068600030003100000033003400290036003700CA +:106870003800E00000000000000000000000000000 +:106880000000000000000000000000000000000008 +:106890000000E944E2444B00EA4400004E004F008F +:1068A0005000510052003500310054005500560090 +:1068B000580059005A005B005C005D005E005F00FC +:1068C00060006100620063000000F1A15700000059 +:1068D00000000000000000000000000000000000B8 +:1068E00000000000000000000000000000000000A8 +:1068F000E200E1000000E300E600E5000000000027 +:106900000100010001000100EA4401000601E24427 +:106910000100010001005500460054004A004B00F0 +:10692000560057004700480031000100E9440100CB +:106930000100190101001B0101001D013A003B008B +:106940003C003D003E003F0040004100420043004B +:10695000010001004C0039000100440045005200D4 +:1069600049000100010050004F0035004D004E006D +:1069700051000100010001000100010001000100BF +:1069800001000100010001000100010001000100FF +:1069900001000100010001000100010001004D00A3 +:1069A0004A004E004B0053000100010001000100AD +:1069B00001000100010001000100010001000100CF +:1069C00001000100010001000100010001000100BF +:1069D00001000100010001000100010001000100AF +:1069E000010001000100010001000100010001009F +:1069F000010001000100010001000100010001008F +:00000001FF diff --git a/converter/next_usb/unimap.c b/converter/next_usb/unimap.c new file mode 100644 index 00000000..f3cfcd4a --- /dev/null +++ b/converter/next_usb/unimap.c @@ -0,0 +1,50 @@ +/* +Copyright 2016 Jun Wako + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ +#include "unimap_trans.h" + + +#define AC_FN0 ACTION_LAYER_MOMENTARY(1) +// Undo, Cut, Copy and Paste +#define AC__UND ACTION_MODS_KEY(MOD_LCTL, KC_Z) +#define AC__CUT ACTION_MODS_KEY(MOD_LCTL, KC_X) +#define AC__CPY ACTION_MODS_KEY(MOD_LCTL, KC_C) +#define AC__PST ACTION_MODS_KEY(MOD_LCTL, KC_V) + +#ifdef KEYMAP_SECTION_ENABLE +const action_t actionmaps[][UNIMAP_ROWS][UNIMAP_COLS] __attribute__ ((section (".keymap.keymaps"))) = { +#else +const action_t actionmaps[][UNIMAP_ROWS][UNIMAP_COLS] PROGMEM = { +#endif + UNIMAP( + NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, + NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, NO, + ESC, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, NO, BSPC, VOLU,MUTE,PGUP, GRV, BSLS,PSLS,PAST, + TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC,RBRC, BSLS, VOLD,NO, PGDN, P7, P8, P9, PMNS, + LCTL,A, S, D, F, G, H, J, K, L, SCLN,QUOT, NO, ENT, P4, P5, P6, PPLS, + LSFT,NO, Z, X, C, V, B, N, M, COMM,DOT, SLSH, NO, RSFT, UP, P1, P2, P3, NO, + LALT,LGUI,NO, NO, SPC, NO, NO, NO, NO, FN0, RALT, LEFT,DOWN,RGHT, P0, PDOT,PENT + ), + UNIMAP( + TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, + TRNS, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS,TRNS,TRNS, TRNS,TRNS,TRNS, + GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS,DEL, TRNS,TRNS,TRNS, NLCK,TRNS,TRNS,TRNS, + CAPS,BSLS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,PSCR,SLCK,PAUS,UP, INS, TRNS, TRNS,TRNS,TRNS, TRNS,TRNS,TRNS,TRNS, + TRNS,VOLD,VOLU,MUTE,TRNS,TRNS,PAST,PSLS,HOME,PGUP,LEFT,RGHT, TRNS,TRNS, TRNS,TRNS,TRNS,TRNS, + TRNS,TRNS,_UND,_CUT,_CPY,_PST,TRNS,PPLS,PMNS,END, PGDN,DOWN, TRNS,TRNS, PGUP, TRNS,TRNS,TRNS,TRNS, + TRNS,TRNS,TRNS,TRNS, TRNS, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, HOME,PGDN,END, TRNS, TRNS,TRNS + ), +}; diff --git a/converter/next_usb/unimap_trans.h b/converter/next_usb/unimap_trans.h new file mode 100644 index 00000000..9a5faf5d --- /dev/null +++ b/converter/next_usb/unimap_trans.h @@ -0,0 +1,86 @@ +/* +Copyright 2016 Jun Wako + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ +#ifndef UNIMAP_COMMON_H +#define UNIMAP_COMMON_H + +#include +#include +#include "unimap.h" + + +/* Mapping to Universal keyboard layout + * + * Universal keyboard layout + * ,-----------------------------------------------. + * |F13|F14|F15|F16|F17|F18|F19|F20|F21|F22|F23|F24| + * ,---. |-----------------------------------------------| ,-----------. ,-----------. + * |Esc| |F1 |F2 |F3 |F4 |F5 |F6 |F7 |F8 |F9 |F10|F11|F12| |PrS|ScL|Pau| |VDn|VUp|Mut| + * `---' `-----------------------------------------------' `-----------' `-----------' + * ,-----------------------------------------------------------. ,-----------. ,---------------. + * | `| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|JPY|Bsp| |Ins|Hom|PgU| |NmL| /| *| -| + * |-----------------------------------------------------------| |-----------| |---------------| + * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \ | |Del|End|PgD| | 7| 8| 9| +| + * |-----------------------------------------------------------| `-----------' |---------------| + * |CapsL | A| S| D| F| G| H| J| K| L| ;| '| #|Retn| | 4| 5| 6|KP,| + * |-----------------------------------------------------------| ,---. |---------------| + * |Shft| <| Z| X| C| V| B| N| M| ,| .| /| RO|Shift | |Up | | 1| 2| 3|KP=| + * |-----------------------------------------------------------| ,-----------. |---------------| + * |Ctl|Gui|Alt|MHEN| Space |HENK|KANA|Alt|Gui|App|Ctl| |Lef|Dow|Rig| | 0 | .|Ent| + * `-----------------------------------------------------------' `-----------' `---------------' + * + * NeXT Matrix(Scan code) + * ,-----------------------------------------------------------. ,-----------. ,---------------. + * | 49| 4A| 4B| 4C| 4D| 50| 4F| 4E| 1E| 1F| 20| 1D| 1C| 1B | | 1A| 58| 19| | 26| 27| 28| 25| + * |-----------------------------------------------------------| |-----------| |---------------| + * | 41 | 42| 43| 44| 45| 48| 47| 46| 06| 07| 08| 05| 04| 03 | | 02| | 01| | 21| 22| 23| 24| + * |-----------------------------------------------------------| `---' `---' |-----------|---| + * | 57 | 39| 3A| 3B| 3C| 3D| 40| 3F| 3E| 2D| 2C| 2B| 2A | | 12| 18| 13| 15| + * |-----------------------------------------------------------| ,---. |---------------| + * | 56 | 31| 32| 33| 34| 35| 37| 36| 2E| 2F| 30| 55 | | 16| | 11| 17| 14| | + * |-----------------------------------------------------------| ,-----------. |-----------| | + * | 52 | 54 | 38 | 53 | 51 | | 09| 0F| 10| |0B | 0C| 0D| + * `-----------------------------------------------------------' `-----------' `---------------' + * ,-----------------------------------------------------------. ,-----------. ,---------------. + * | `| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| BSpc | |Ins|Hom|PgU| |NmL| /| *| -| + * |-----------------------------------------------------------| |-----------| |---------------| + * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \ | |Del| |PgD| | 7| 8| 9| +| + * |-----------------------------------------------------------| `---' `---' |---------------| + * |CapsL | A| S| D| F| G| H| J| K| L| ;| '| Return| | 4| 5| 6|KP,| + * |-----------------------------------------------------------| ,---. |---------------| + * |Shft| <| Z| X| C| V| B| N| M| ,| .| /| Shift | |Up | | 1| 2| 3| | + * |-----------------------------------------------------------| ,-----------. |-----------| | + * |LCtl |Gui | Space | App | RCtl| |Lef|Dow|Rig| | 0 | .|Ent| + * `-----------------------------------------------------------' `-----------' `---------------' + */ + +// Matrix 12 * 8 +const uint8_t PROGMEM unimap_trans[MATRIX_ROWS][MATRIX_COLS] = { + { UNIMAP_NO, UNIMAP_PGDN, UNIMAP_DEL, UNIMAP_BSLS, UNIMAP_RBRC, UNIMAP_LBRC, UNIMAP_I, UNIMAP_O }, // 0x00-07 + { UNIMAP_P, UNIMAP_LEFT, UNIMAP_NO, UNIMAP_P0, UNIMAP_PDOT, UNIMAP_PENT, UNIMAP_NO, UNIMAP_DOWN }, // 0x08-0F + { UNIMAP_RGHT, UNIMAP_P1, UNIMAP_P4, UNIMAP_P6, UNIMAP_P3, UNIMAP_PCMM, UNIMAP_UP, UNIMAP_P2 }, // 0x10-17 + { UNIMAP_P5, UNIMAP_PGUP, UNIMAP_INS, UNIMAP_BSPC, UNIMAP_EQL, UNIMAP_MINS, UNIMAP_8, UNIMAP_9 }, // 0x18-1f + { UNIMAP_0, UNIMAP_P7, UNIMAP_P8, UNIMAP_P9, UNIMAP_PPLS, UNIMAP_PMNS, UNIMAP_NLCK, UNIMAP_PSLS }, // 0x20-27 + { UNIMAP_PAST, UNIMAP_NO, UNIMAP_ENT, UNIMAP_QUOT, UNIMAP_SCLN, UNIMAP_L, UNIMAP_COMM, UNIMAP_DOT }, // 0x28-2f + { UNIMAP_SLSH, UNIMAP_Z, UNIMAP_X, UNIMAP_C, UNIMAP_V, UNIMAP_B, UNIMAP_M, UNIMAP_N }, // 0x30-37 + { UNIMAP_SPC, UNIMAP_A, UNIMAP_S, UNIMAP_D, UNIMAP_F, UNIMAP_G, UNIMAP_K, UNIMAP_J }, // 0x38-3f + { UNIMAP_H, UNIMAP_TAB, UNIMAP_Q, UNIMAP_W, UNIMAP_E, UNIMAP_R, UNIMAP_U, UNIMAP_Y }, // 0x40-47 + { UNIMAP_T, UNIMAP_GRV, UNIMAP_1, UNIMAP_2, UNIMAP_3, UNIMAP_4, UNIMAP_7, UNIMAP_6 }, // 0x48-4f + { UNIMAP_5, UNIMAP_RCTL, UNIMAP_LCTL, UNIMAP_APP, UNIMAP_LGUI, UNIMAP_RSFT, UNIMAP_LSFT, UNIMAP_CAPS }, // 0x50-57 + { UNIMAP_HOME, UNIMAP_NO, UNIMAP_NO, UNIMAP_NO, UNIMAP_NO, UNIMAP_NO, UNIMAP_NO, UNIMAP_NO } // 0x58-5f +}; + +#endif