Merge branch 'next-unimap'
authortmk <hasu@tmk-kbd.com>
Fri, 9 Sep 2016 05:26:50 +0000 (14:26 +0900)
committertmk <hasu@tmk-kbd.com>
Fri, 9 Sep 2016 05:26:50 +0000 (14:26 +0900)
converter/next_usb/Makefile
converter/next_usb/Makefile.unimap [new file with mode: 0644]
converter/next_usb/binary/next_usb_unimap.hex [new file with mode: 0644]
converter/next_usb/keymap.c
converter/next_usb/unimap.c [new file with mode: 0644]
converter/next_usb/unimap_trans.h [new file with mode: 0644]
tmk_core/common/unimap.h

index 7190f1eaf4c634177fb425dfd49586827f072817..f3143c25c40b8224602fa3a586cfa9677dc781ef 100644 (file)
@@ -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 (file)
index 0000000..8452c10
--- /dev/null
@@ -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 (file)
index 0000000..efe944a
--- /dev/null
@@ -0,0 +1,1217 @@
+:100000000C941D050C9464050C9464050C94640513\r
+:100010000C9464050C9464050C9464050C946405BC\r
+:100020000C9464050C9464050C9464050C94FD0D0B\r
+:100030000C9464050C94D21B0C9464050C94640518\r
+:100040000C9464050C9464050C9464050C94461C93\r
+:100050000C9464050C9464050C9464050C9464057C\r
+:100060000C9464050C9464050C9464050C9464056C\r
+:100070000C946405CF0EF10EDF0FF10EDF0F360F7B\r
+:10008000590FDF0FAE0FC10FC612C612F312F312D3\r
+:100090004E138A1382158215A21382159D149D1486\r
+:1000A0005815821582156E15804E4C31302F0C126A\r
+:1000B00013508062635880514F595C5E5B66525AA0\r
+:1000C0005D4B492A2E2D2526275F606157565354D4\r
+:1000D00055802834330F3637381D1B06190510118B\r
+:1000E0002C041607090A0E0D0B2B141A0815181CE0\r
+:1000F00017351E1F20212423227C78657B7D7939CA\r
+:100100004A808080808080805B20723D2530346C06\r
+:1001100058206B6579636F64653D253032582070D7\r
+:100120007265737365643D2558204354524C3D25D8\r
+:10013000582053484946545F4C4546543D25582065\r
+:1001400053484946545F524748543D255820434D33\r
+:10015000445F4C4546543D255820434D445F52472B\r
+:1001600048543D255820414C545F4C4546543D254C\r
+:100170005820414C545F524748543D2558205D0A51\r
+:1001800000506F77657220737461746520300A00C7\r
+:10019000506F77657220737461746520310A005B5B\r
+:1001A000204E655854206B6579626F6172642069D6\r
+:1001B0006E697469616C697A6564205D0A00496ED4\r
+:1001C000697469616C20706F7765722062757474F0\r
+:1001D0006F6E2073746174653A2025620A005B209B\r
+:1001E000496E7469616C697A696E67204E6558540E\r
+:1001F000206B6579626F617264205D0A005B735DDC\r
+:10020000004B6579626F6172642073746172742E41\r
+:100210000A0055534220636F6E66696775726564A4\r
+:100220002E0A005B525D005B445D005B435D003E57\r
+:10023000034E0065005800540020004B0065007913\r
+:100240000062006F00610072006400200074006FA3\r
+:10025000002000550053004200200063006F006E34\r
+:100260000076006500720074006500720000000EE8\r
+:100270000374002E006D002E006B002E00000004A1\r
+:1002800003090409027400040100A03209040000FB\r
+:1002900001030101000921110100012240000705AD\r
+:1002A000810308000A090401000103010200092179\r
+:1002B00011010001224D000705820308000A09040C\r
+:1002C0000200010300000009211101000122360093\r
+:1002D0000705830308000A09040300020300000065\r
+:1002E00009211101000122220007058403200001D9\r
+:1002F000070504032000011201100100000008EDB1\r
+:10030000FEBCBC0005010200010631FF0974A10119\r
+:100310000975150026FF00952075088102097615DC\r
+:100320000026FF00952075089102C005010980A1F3\r
+:1003300001850216810026B7001A81002AB70075D0\r
+:100340001095018100C0050C0901A101850316016A\r
+:1003500000269C021A01002A9C027510950181005A\r
+:10036000C005010902A1010901A10005091901291E\r
+:10037000051500250195057501810295017503811B\r
+:10038000010501093009311581257F950275088124\r
+:100390000609381581257F950175088106050C0A27\r
+:1003A00038021581257F950175088106C0C00501B9\r
+:1003B0000906A101050719E029E71500250195089F\r
+:1003C000750181029501750881010508190129054A\r
+:1003D00095057501910295017503910105071900B5\r
+:1003E00029FF150026FF00950675088100C00A0048\r
+:1003F0002530325820006B6579626F6172645F72DC\r
+:1004000065706F72743A20004C45443A20253032B2\r
+:10041000580A00290A002575002F002575005D285F\r
+:1004200000256400200025640020002564002000D1\r
+:100430002564007C0025303258006D6F7573656B44\r
+:100440006579205B62746E7C782079207620685D07\r
+:10045000287265702F61636C293A205B006D6B5FB9\r
+:10046000776865656C5F74696D655F746F5F6D61FA\r
+:1004700078203D2025640A006D6B5F776865656CA8\r
+:100480005F6D61785F7370656564203D2025640A47\r
+:10049000006D6B5F74696D655F746F5F6D6178206F\r
+:1004A0003D2025640A006D6B5F6D61785F73706538\r
+:1004B0006564203D2025640A006D6B5F696E74657C\r
+:1004C0007276616C203D2025640A006D6B5F646567\r
+:1004D0006C6179203D2025640A006D6B5F7768654B\r
+:1004E000656C5F74696D655F746F5F6D6178203DE9\r
+:1004F0002025640A006D6B5F776865656C5F6D61D0\r
+:10050000785F7370656564203D2025640A006D6B1B\r
+:100510005F74696D655F746F5F6D6178203D202544\r
+:10052000640A006D6B5F6D61785F73706565642050\r
+:100530003D2025640A006D6B5F696E74657276619B\r
+:100540006C203D2025640A006D6B5F64656C6179E9\r
+:10055000203D2025640A000A00257500363A2077E0\r
+:100560006865656C5F74696D655F746F5F6D6178F8\r
+:100570003A20000A00257500353A20776865656CD9\r
+:100580005F6D61785F73706565643A20000A0025CD\r
+:100590007500343A2074696D655F746F5F6D6178C2\r
+:1005A0003A20000A00257500333A206D61785F73A8\r
+:1005B000706565643A20000A00257500323A2069AA\r
+:1005C0006E74657276616C286D73293A20000A009A\r
+:1005D000257500313A2064656C6179282A31306DC7\r
+:1005E00073293A20000A092D2056616C7565732025\r
+:1005F0002D0A004D3E004D25643E20003F007365EE\r
+:10060000742064656661756C740A00433E2000774F\r
+:10061000686572652064656C74613A2063757273F5\r
+:100620006F723D25642C20776865656C3D25640AF2\r
+:1006300053656520687474703A2F2F656E2E776944\r
+:100640006B6970656469612E6F72672F77696B697A\r
+:100650002F4D6F7573655F6B6579730A000A092DFD\r
+:10066000204D6F7573656B6579202D0A4553432FB7\r
+:10067000713A09717569740A313A0964656C617976\r
+:10068000282A31306D73290A323A09696E7465720D\r
+:1006900076616C286D73290A333A096D61785F734E\r
+:1006A000706565640A343A0974696D655F746F5FDB\r
+:1006B0006D61780A353A09776865656C5F6D6178B8\r
+:1006C0005F73706565640A363A09776865656C5FC3\r
+:1006D00074696D655F746F5F6D61780A0A703A09BD\r
+:1006E0007072696E742076616C7565730A643A097C\r
+:1006F0007365742064656661756C74730A75703A0D\r
+:10070000092B310A646F776E3A092D310A706775CB\r
+:10071000703A092B31300A7067646F776E3A092D91\r
+:1007200031300A0A7370656564203D2064656C741D\r
+:1007300061202A206D61785F7370656564202A20CE\r
+:1007400028726570656174202F2074696D655F740F\r
+:100750006F5F6D6178290A003F004D3E2000433EE7\r
+:1007600020004C25640A000A092D20436F6E736F28\r
+:100770006C65202D0A4553432F713A0971756974D0\r
+:100780000A6D3A096D6F7573656B65790A000A0920\r
+:100790002D204D61676963202D0A643A0964656202\r
+:1007A00075670A783A096465627567206D617472CD\r
+:1007B00069780A6B3A096465627567206B657962CE\r
+:1007C0006F6172640A6D3A096465627567206D6FC6\r
+:1007D0007573650A763A0976657273696F6E0A7386\r
+:1007E0003A097374617475730A633A09636F6E73BF\r
+:1007F0006F6C65206D6F64650A302D343A096C6149\r
+:10080000796572302D34284631302D4634290A500E\r
+:100810006175733A09626F6F746C6F616465720A17\r
+:10082000003F0074696D65725F72656164333228E0\r
+:10083000293A202530346C580A006B6579626F6163\r
+:1008400072645F69646C653A2025580A006B6579AB\r
+:10085000626F6172645F70726F746F636F6C3A2065\r
+:1008600025580A00686F73745F6B6579626F6172F7\r
+:10087000645F6C65647328293A2025580A000A09C8\r
+:100880002D20537461747573202D0A004743433A39\r
+:1008900020342E392E32204156522D4C4942433AB3\r
+:1008A00020312E382E3073766E204156525F4152E1\r
+:1008B00043483A2061767233350A004F5054494F0D\r
+:1008C0004E533A204C554641204D4F5553454B45CC\r
+:1008D000592045585452414B455920434F4E534F90\r
+:1008E0004C4520434F4D4D414E44204B45594D41C1\r
+:1008F000505F53454354494F4E20343039360A0037\r
+:100900004255494C443A20626436386337312D648D\r
+:1009100069727479202831313A32303A31342053B7\r
+:1009200065702020392032303136290A005649447A\r
+:100930003A2030784645454428742E6D2E6B2E297A\r
+:10094000205049443A20307842434243284E65586B\r
+:1009500054204B6579626F61726420746F20555327\r
+:100960004220636F6E766572746572292056455217\r
+:100970003A203078303530300A00444553433A202D\r
+:1009800055534220636F6E76657274657220666F90\r
+:1009900072204E655854206E6F6E2D414442204B9C\r
+:1009A0006579626F6172640A000A092D20566572CA\r
+:1009B00073696F6E202D0A000A6D6F7573653A209A\r
+:1009C0006F66660A000A6D6F7573653A206F6E0A6E\r
+:1009D000000A6B6579626F6172643A206F66660A1D\r
+:1009E000000A6B6579626F6172643A206F6E0A006B\r
+:1009F0000A6D61747269783A206F66660A000A6D42\r
+:100A000061747269783A206F6E0A000A64656275D3\r
+:100A1000673A206F6E0A000A64656275673A206F54\r
+:100A200066660A000A0A626F6F746C6F61646572B1\r
+:100A30002E2E2E2000433E20000011241FBECFEF9B\r
+:100A4000D4E0DEBFCDBF04B603FE27C08091CB014A\r
+:100A50009091CC01A091CD01B091CE018730904B07\r
+:100A6000A740B04BD1F41092CB011092CC01109260\r
+:100A7000CD011092CE0114BE84B7877F84BF0FB61C\r
+:100A8000F894A8958091600088618093600010922E\r
+:100A900060000FBEE0E0F8E3099511E0A0E0B1E0EE\r
+:100AA000E0ECF9E402C005900D92A233B107D9F74A\r
+:100AB00021E0A2E3B1E001C01D92AB3CB207E1F737\r
+:100AC0000E944B0B0C94DE240C940000FF93EF93D8\r
+:100AD000E0913201F0913301309709F00995EF91DF\r
+:100AE000FF910895FC018591803011F0EFDFFBCF7D\r
+:100AF0000895FF27E0E230E247FF0CC0419597FFE1\r
+:100B000009C0EDE26095709580959095611D711D0D\r
+:100B1000811D911D27FF02C0219530E350E2AA27D5\r
+:100B2000660F771F881F991FAA1FA41710F0A41B18\r
+:100B300063955A95A9F7AA3008F0A95FA05DAF9315\r
+:100B4000F395611571058105910541F7ED3211F4B9\r
+:100B5000EF93F395F21718F43F93F395FBCF8F9132\r
+:100B6000B5DFFA95E1F70895E991F9918591803023\r
+:100B700021F0853219F0AADFF9CF089520E0E8943A\r
+:100B800055915532C1F3503311F4689455915A334D\r
+:100B900048F4505390F3220F022E220F220F200D03\r
+:100BA000250FF4CF0EF4219589919991533619F3BD\r
+:100BB000533729F1533559F1BC0188279927E89417\r
+:100BC0005C3621F48991999168945591543639F4A1\r
+:100BD00046EF7EF077FF0DC08FEF9FEF0AC05537CD\r
+:100BE0004AE039F0583540E121F0523642E009F050\r
+:100BF0000895FF93EF937DDFEF91FF91B7CFFF93C0\r
+:100C0000EF93FC0181918030B9F360DFFBCFFF935C\r
+:100C1000EF9368DFF1CFDF93CF93CDB7DEB72596A3\r
+:100C2000A3DFCF91DF910895E82FE695E695E6954D\r
+:100C3000EF70F0E0EA5CFE4F4081282F277081E0E2\r
+:100C400090E002C0880F991F2A95E2F7242F30E028\r
+:100C500028233923232B29F4842B808381E080935C\r
+:100C600035010895E82FE695E695E695EF70F0E0FA\r
+:100C7000EA5CFE4F2081382F377081E090E002C09F\r
+:100C8000880F991F3A95E2F7422F50E048235923E5\r
+:100C9000452B31F080958223808381E0809335015C\r
+:100CA00008958091AD0181608093AD012FEF84E3C1\r
+:100CB0009CE0215080409040E1F700C0000080910E\r
+:100CC000AD0180FF08C08EED91E09F938F930E944D\r
+:100CD0000B060F900F90569A5E9A54984C9A89B1D1\r
+:100CE00084FB992790F981E08927809334019091C2\r
+:100CF000AD0190FF0CC01F928F938EEB91E09F93FC\r
+:100D00008F930E940B060F900F900F900F900E94F0\r
+:100D10002508E6E3F1E08CE08E0F11928E13FDCFF3\r
+:100D20008091AD0180FF08C08FE991E09F938F9380\r
+:100D30000E940B060F900F9008954F925F926F9252\r
+:100D40007F928F929F92AF92BF92CF92DF92EF925B\r
+:100D5000FF928FE19EE40197F1F700C000005E98DA\r
+:100D60001092350188E54C9910C00E94140681E06C\r
+:100D700080933401809135018823D9F08091AD01B1\r
+:100D800080FF17C080E991E00EC00E9432061092E9\r
+:100D9000340180913501882361F08091AD0180FF9D\r
+:100DA00008C081E891E09F938F930E940B060F90FB\r
+:100DB0000F900E949E086B017C01672B682B692BAA\r
+:100DC00009F4DBC0C11496E0D90690E3E906F1040A\r
+:100DD00009F4D3C05E9A8091AD0126013701442405\r
+:100DE0009FE0592266247724460157019924AA24BA\r
+:100DF000BB2480FF77C0D701C60142E1B695A79515\r
+:100E0000979587954A95D1F7817099279F938F93EE\r
+:100E1000D701C60151E1B695A795979587955A9543\r
+:100E2000D1F7817099279F938F93C701817099277C\r
+:100E30009F938F93D701C6016FE0B695A7959795BD\r
+:100E400087956A95D1F7817099279F938F93D701E2\r
+:100E5000C6017EE0B695A795979587957A95D1F7C7\r
+:100E6000817099279F938F93D701C601EDE0B695C6\r
+:100E7000A79597958795EA95D1F7817099279F93C4\r
+:100E80008F93D701C601FCE0B695A79597958795F6\r
+:100E9000FA95D1F7817099279F938F9381E0411440\r
+:100EA00094E059066104710409F080E01F928F9369\r
+:100EB000D501C401B695A795979587959F938F9374\r
+:100EC000FF92EF92DF92CF9288E091E09F938F9311\r
+:100ED0000E940B068DB79EB748960FB6F8949EBF3A\r
+:100EE0000FBE8DBF81E5E2FE03C00E94140602C062\r
+:100EF0000E94320682E5E1FE03C00E94140602C091\r
+:100F00000E94320683E5E0FE03C00E94140602C080\r
+:100F10000E94320684E5D7FE03C00E94140602C078\r
+:100F20000E94320685E5D6FE03C00E94140602C068\r
+:100F30000E94320686E5D5FE03C00E94140602C058\r
+:100F40000E94320687E5D4FE03C00E94140602C048\r
+:100F50000E943206D501C401B695A795979587954D\r
+:100F6000411494E059066104710419F40E941406B6\r
+:100F700002C00E94320681E001C080E0FF90EF9045\r
+:100F8000DF90CF90BF90AF909F908F907F906F90A9\r
+:100F90005F904F900895E82FF0E0EA5CFE4F80816B\r
+:100FA0000895089581FF03C061E081E002C060E020\r
+:100FB00080E00C944A085998519A08955198599A8A\r
+:100FC00008950E94DB078BEF93E00197F1F700C0D3\r
+:100FD00000000E94DE078BEC90E00197F1F700C063\r
+:100FE00000000E94DB0783E692E00197F1F700C062\r
+:100FF00000000C94DE070E94DB078BEC90E0019769\r
+:10100000F1F700C000000E94DE078FE293E0019735\r
+:10101000F1F700C000000E94DB078BEC90E0019725\r
+:10102000F1F700C000000E94DE0787EC94E0019712\r
+:10103000F1F700C000000E94DB0787EF97E00197FF\r
+:10104000F1F700C000000C94DE070E94DE07509804\r
+:10105000589A0E94E1078BEF93E00197F1F700C0E7\r
+:1010600000000E94FB078FE596E00197F1F700C0B2\r
+:1010700000000E94E1078BEF93E00197F1F700C0B9\r
+:1010800000000E94FB078FE596E00197F1F700C092\r
+:10109000000008951F93CF93DF931F92CDB7DEB763\r
+:1010A000162FF89489830E94DB07EBE2F7E0319773\r
+:1010B000F1F700C000000E94DE07E3E6F2E031979E\r
+:1010C000F1F700C000000E94DB07EBECF0E0319785\r
+:1010D000F1F700C000008981882339F00E94DE0703\r
+:1010E0008BEC90E00197F1F706C00E94DB07EBEC78\r
+:1010F000F0E03197F1F700C00000112339F00E94B1\r
+:10110000DE078BEC90E00197F1F706C00E94DB0749\r
+:10111000EBECF0E03197F1F700C000000E94DB0734\r
+:1011200083E995E00197F1F700C000000E94DE0717\r
+:1011300078940F90DF91CF911F910895CF92DF9215\r
+:10114000EF92FF920F931F93489B13C00E94E107F9\r
+:10115000F89480E593EC489B08C0009741F025E0A7\r
+:101160002A95F1F700000197F6CF892B41F40E94F0\r
+:10117000FB07789430E020E080E090E032C085E822\r
+:101180008A95F1F7000040E050E0BA0180E001E00C\r
+:1011900010E020E030E0489B17C068017901082E7C\r
+:1011A00004C0CC0CDD1CEE1CFF1C0A94D2F74C29A9\r
+:1011B0005D296E297F298A3039F44899FECFE5E808\r
+:1011C000EA95F1F700008BE0E7ECF0E03197F1F7FA\r
+:1011D00000C000008F5F8631F0F27894342F252F05\r
+:1011E000CB01632F722F1F910F91FF90EF90DF9033\r
+:1011F000CF90089580914D0108959FB7F894109273\r
+:1012000044019FBF9091C201943009F057C0909162\r
+:10121000E9009F703091EC00232F217030FD20E811\r
+:10122000922B24E02093E9002091EB0020FF43C0A3\r
+:101230002091EE0027FF3FC020914201222321F0A0\r
+:101240002091E80025FF37C01092420126E030913E\r
+:10125000E80035FD15C03091C201343061F53091A0\r
+:10126000EB0035FD28C0215021F481E0809342013C\r
+:1012700022C0EFE9FFE03197F1F700C00000E7CFAF\r
+:101280008093F1008091E80085FD0AC08091E8001C\r
+:1012900080FFFCCF8091E8008E778093E80006C045\r
+:1012A0008FB7F89421E0209344018FBF9F709093F3\r
+:1012B000E90080E008959F709093E9008FEF089512\r
+:1012C000CF93DF9300D01F92CDB7DEB79C01809102\r
+:1012D000C201843019F593E099833B832A8390936C\r
+:1012E000E9008FEF9091E800815095FD06C095EDE3\r
+:1012F0009A95F1F700008111F5CF8091E80085FF04\r
+:101300000DC040E050E063E070E0CE0101960E9425\r
+:10131000090C8091E8008E778093E8000F900F9081\r
+:101320000F90DF91CF910895CF93DF9300D01F925C\r
+:10133000CDB7DEB72091C201243021F522E0298308\r
+:101340009B838A8383E08093E9008FEF9091E8008C\r
+:10135000815095FD06C095ED9A95F1F70000811139\r
+:10136000F5CF8091E80085FF0DC040E050E063E0DC\r
+:1013700070E0CE0101960E94090C8091E8008E7702\r
+:101380008093E8000F900F900F90DF91CF91089518\r
+:101390002091C2012430F1F422E02093E9002FEFE4\r
+:1013A0003091E800215035FD06C035ED3A95F1F752\r
+:1013B00000002111F5CF2091E80025FF0BC040E08F\r
+:1013C00050E065E070E00E94090C8091E8008E77A3\r
+:1013D0008093E8000895CF93DF932091C2012430D9\r
+:1013E00039F521E02093E9002FEF3091E8002150FA\r
+:1013F00035FD06C035ED3A95F1F700002111F5CF26\r
+:101400002091E80025FF14C0EC0140E050E068E0C6\r
+:1014100070E00E94090C8091E8008E778093E800CC\r
+:1014200088E0FE01A5E4B1E001900D928A95E1F714\r
+:10143000DF91CF9108958BE292E00E947205809136\r
+:10144000C101811109C00E949A0D0E94ED0D809189\r
+:10145000E20084608093E200089587E292E00E94B7\r
+:1014600072051092C101089583E292E00C94720516\r
+:10147000209143012F5F822F62E30E94A4249923CD\r
+:1014800019F0209343010895109243018091440183\r
+:10149000882371F18091C201843041F58091E90087\r
+:1014A0008F702091EC00922F917020FD90E8892B95\r
+:1014B00094E09093E9009091EB0090FF14C090911C\r
+:1014C000EE0097FF10C09091E80095FF03C01092C6\r
+:1014D000F100F9CF9091E80090FF05C09091E800ED\r
+:1014E0009E779093E8008F708093E90010924401FA\r
+:1014F000089542E061EC81E00E94140D42E061EC4D\r
+:1015000082E00E94140D42E061EC83E00E94140D21\r
+:1015100042E261EC84E00C94140D8091C4018330AC\r
+:1015200009F453C030F4813071F0823009F48CC07A\r
+:1015300008958A3009F478C08B3009F45EC0893090\r
+:1015400009F09AC020C08091C301813A09F094C08B\r
+:101550008091E800877F8093E8008091C701909197\r
+:10156000C801892B21F468E085E491E003C060E0C4\r
+:1015700080E090E070E00E94560C8091E8008B774C\r
+:101580008093E80008958091C301813209F074C00E\r
+:101590008091C7019091C801892B09F06DC080919D\r
+:1015A000E800877F8093E8008091E80082FD05C015\r
+:1015B0008091C2018111F8CF5FC08091F1008093CA\r
+:1015C0004D018091E8008B7753C08091C301813A2F\r
+:1015D00009F052C08091C7019091C801892B09F090\r
+:1015E0004BC08091E800877F8093E8008091E800FD\r
+:1015F00080FFFCCF80910A0136C08091C301813207\r
+:10160000D9F58091C7019091C801892BA9F58091E6\r
+:10161000E800877F8093E8000E94490D8091C50112\r
+:1016200080930A010C94A3158091C301813221F5A6\r
+:101630008091E800877F8093E8000E94490D8091A7\r
+:10164000C60180934E0108958091C301813AA1F4AF\r
+:101650008091E800877F8093E8008091E80080FF18\r
+:10166000FCCF80914E018093F1008091E8008E774D\r
+:101670008093E8000C94490D0895089508950E9400\r
+:10168000931B8091C001882329F00E94BE1B811109\r
+:101690000C94F30B089584B7877F84BF0FB6F8943A\r
+:1016A000A89580916000886180936000109260002E\r
+:1016B0000FBE90E080E80FB6F8948093610090939D\r
+:1016C00061000FBE0E943D0B0E94A4100E949A0D63\r
+:1016D0000E94ED0D8091E20084608093E2008DEF26\r
+:1016E00098E00E947A1B78948091C201843019F0AE\r
+:1016F0000E94F70FF9CF82E192E00E9472050E94EA\r
+:10170000A61080E091E00E94121081E092E00E9419\r
+:1017100072050E943E0B8091C201853039F48DEF35\r
+:1017200091E00E9472050E943F0BF5CF0E94AA1023\r
+:101730000E94F70FF0CF292F332723303105C9F04E\r
+:1017400064F42130310581F02230310509F043C0C5\r
+:1017500084E790E023E832E042C021323105F1F025\r
+:101760002232310541F137C082E190E027EF32E0CB\r
+:1017700036C099278130910541F08230910541F0C2\r
+:10178000892B49F5EFE7F2E005C0EFE6F2E002C091\r
+:10179000EFE2F2E0849190E09F0121C06430D8F440\r
+:1017A000E62FF0E0EE0FFF1FE15EFE4F208131815A\r
+:1017B00089E090E014C0643070F470E0FB01EE0F3B\r
+:1017C000FF1FE95EFE4F20813181FB01ED5EFE4F80\r
+:1017D000808190E004C080E090E020E030E0FA01F9\r
+:1017E00031832083089584E089BD86E089BD09B4F2\r
+:1017F00000FEFDCF8091D8008F7D8093D80080912E\r
+:10180000E00082608093E0008091E00081FDFCCFE9\r
+:101810000895CF92DF92EF92FF920F931F93CF9391\r
+:10182000DF93EC018B017A010E94680D811135C0B4\r
+:10183000E114F10439F0F70180819181081B190B43\r
+:10184000C80FD91FC12CD12C0115110529F1809188\r
+:10185000E80085FD18C08091E8008E778093E8004D\r
+:101860000E94F70FE114F10449F0F70180819181A2\r
+:10187000C80ED91ED182C08285E00FC00E94680DBB\r
+:10188000882311F30AC089918093F1000150110956\r
+:10189000FFEFCF1ADF0AD8CF80E0DF91CF911F9101\r
+:1018A0000F91FF90EF90DF90CF9008952091C901A4\r
+:1018B0003091CA012617370748F06115710539F4D0\r
+:1018C0002091E8002E772093E80001C0B90140E0A4\r
+:1018D0006115710591F12091C201222309F440C0E4\r
+:1018E000253009F43FC02091E80023FD3DC0209140\r
+:1018F000E80022FD2FC02091E80020FFE9CF2091D1\r
+:10190000F20030E0FC01CF016115710559F028307B\r
+:10191000310540F481918093F100615071092F5F8E\r
+:101920003F4FF1CF41E02830310509F040E02091F0\r
+:10193000E8002E772093E800CBCF4111CCCF0AC02E\r
+:101940008091C201882361F0853061F08091E800C8\r
+:1019500083FD0AC08091E80082FFF2CF80E0089505\r
+:1019600082E0089583E0089581E008952091C901FF\r
+:101970003091CA012617370748F06115710539F40F\r
+:101980002091E8002E772093E80001C0B901FC0106\r
+:1019900020E06115710579F18091C201882309F475\r
+:1019A0003DC0853009F43CC08091E80083FD3AC019\r
+:1019B0008091E80082FD2CC08091E80080FFE9CF93\r
+:1019C0008091F20090E06115710559F08830910521\r
+:1019D00040F424912093F1003196615071090196F1\r
+:1019E000F2CF21E0089709F020E08091E8008E779F\r
+:1019F0008093E800CECF2111CFCF0AC08091C201E1\r
+:101A0000882361F0853061F08091E80083FD0AC091\r
+:101A10008091E80082FFF2CF80E0089582E008958F\r
+:101A200083E0089581E00895982F953058F59093BC\r
+:101A3000E900981739F07091EC002091ED00509179\r
+:101A4000F00003C0242F762F50E021FF19C0309101\r
+:101A5000EB003E7F3093EB003091ED003D7F309303\r
+:101A6000ED003091EB0031603093EB007093EC00AF\r
+:101A70002093ED005093F0002091EE0027FF07C067\r
+:101A80009F5FD3CF8F708093E90081E0089580E05D\r
+:101A900008958091C30187FF11C08091E80082FD05\r
+:101AA00005C08091C2018111F8CF11C08091E8007A\r
+:101AB0008B770BC08091C201882349F08091E800A8\r
+:101AC00080FFF8CF8091E8008E778093E80008953A\r
+:101AD0002091E4003091E50095E64091EC00842FE0\r
+:101AE000817040FF22C08091E80080FD1CC0809181\r
+:101AF000C201882391F0853091F08091EB0085FD43\r
+:101B000010C04091E4005091E5004217530729F3BB\r
+:101B10009A01915011F784E0089582E0089583E0DE\r
+:101B2000089581E0089580E008954091E80042FF23\r
+:101B3000DECF08950E94F70D0E94FA0DE0EEF0E06E\r
+:101B4000808181608083E8EDF0E080818F77808301\r
+:101B500019BCE3E6F0E08081816080831092C101CE\r
+:101B600008950E94F70D0E94FA0D8091D8008F779A\r
+:101B70008093D8008091D80080688093D8008091AD\r
+:101B8000D8008F7D8093D80084E089BD86E089BD30\r
+:101B900009B400FEFDCF1092C2011092BE01109256\r
+:101BA000C0011092BF0142E060E080E00E94140D8D\r
+:101BB0008091E1008E7F8093E1008091E20081605E\r
+:101BC0008093E2008091E20088608093E20080913F\r
+:101BD000E0008E7F8093E0000895E3E6F0E08081EE\r
+:101BE0008E7F808381E08093C1010C94B10D1092AF\r
+:101BF000E20008951092E10008951F920F920FB62F\r
+:101C00000F9211242F933F934F935F936F937F9382\r
+:101C10008F939F93AF93BF93EF93FF938091E100D6\r
+:101C200082FF0BC08091E20082FF07C08091E1003B\r
+:101C30008B7F8093E1000E94380A8091E10080FF51\r
+:101C400018C08091E20080FF14C08091E2008E7F76\r
+:101C50008093E2008091E20080618093E2008091B5\r
+:101C6000D80080628093D80019BC1092C2010E94F3\r
+:101C70002D0A8091E10084FF30C08091E20084FF52\r
+:101C80002CC084E089BD86E089BD09B400FEFDCF8B\r
+:101C90008091D8008F7D8093D8008091E1008F7E65\r
+:101CA0008093E1008091E2008F7E8093E20080913A\r
+:101CB000E20081608093E2008091BE01882311F0F0\r
+:101CC00084E007C08091E30087FD02C081E001C08D\r
+:101CD00083E08093C2010E941B0A8091E10083FF90\r
+:101CE00024C08091E20083FF20C08091E100877FC3\r
+:101CF0008093E10082E08093C2011092BE01809146\r
+:101D0000E1008E7F8093E1008091E2008E7F8093DE\r
+:101D1000E2008091E20080618093E20042E060E0B6\r
+:101D200080E00E94140D0E94340AFF91EF91BF9150\r
+:101D3000AF919F918F917F916F915F914F913F9163\r
+:101D40002F910F900FBE0F901F9018951F93CF9358\r
+:101D5000DF93CDB7DEB7AA970FB6F894DEBF0FBEFC\r
+:101D6000CDBFE3ECF1E088E08E0F9091F10091930C\r
+:101D70008E13FBCF0E948D0A8091E80083FF1FC164\r
+:101D80008091C3019091C401492F50E04A30510520\r
+:101D900008F015C1FA01E65CFF4F0C94C4248038AA\r
+:101DA00081F0823809F00BC18091C7018F70809358\r
+:101DB000E9008091EB0085FB882780F91092E9000B\r
+:101DC00006C08091BF019091C001911182609091F5\r
+:101DD000E800977F9093E8008093F1001092F10063\r
+:101DE000C8C0282F2D7F09F0EAC0882319F082305F\r
+:101DF00061F0E5C08091C501813009F0E0C0933009\r
+:101E000009F080E08093C0012BC08091C501811151\r
+:101E100027C08091C7018F7009F4D1C08093E90079\r
+:101E20002091EB0020FF1CC0933021F48091EB0047\r
+:101E3000806214C09091EB0090619093EB0021E0E0\r
+:101E400030E0A90102C0440F551F8A95E2F7409384\r
+:101E5000EA001092EA008091EB0088608093EB002A\r
+:101E60001092E9008091E800877F86C08111A7C0A9\r
+:101E70001091C5011F778091E3008078812B8093BA\r
+:101E8000E3008091E800877F8093E8000E94490D7D\r
+:101E90008091E80080FFFCCF8091E3008068809310\r
+:101EA000E300111102C082E001C083E08093C2010F\r
+:101EB00086C08058823008F082C08091C501909120\r
+:101EC000C6018C3D53E0950779F583E08A838AE269\r
+:101ED00089834FB7F894DE01139620E03EE051E28B\r
+:101EE000E32FF0E050935700E49120FF03C0E29508\r
+:101EF000EF703F5FEF708E2F90E0EA3010F0C796E2\r
+:101F000001C0C0968D939D932F5F243149F74FBF39\r
+:101F10008091E800877F8093E8006AE270E0CE015C\r
+:101F200001960E94560C14C0AE014F5F5F4F609146\r
+:101F3000C7010E949B0BBC01892B09F440C0909102\r
+:101F4000E800977F9093E80089819A810E94B60CFF\r
+:101F50008091E8008B778093E80031C0803879F574\r
+:101F60008091E800877F8093E8008091BE01809394\r
+:101F7000F1008091E8008E778093E8000E94490D7F\r
+:101F80001EC081111CC09091C5019230C0F4809197\r
+:101F9000E800877F8093E8009093BE010E94490D7E\r
+:101FA0008091BE01811106C08091E30087FD02C0CF\r
+:101FB00081E001C084E08093C2010E94790A80918F\r
+:101FC000E80083FF0AC08091E800877F8093E800E3\r
+:101FD0008091EB0080628093EB00AA960FB6F89494\r
+:101FE000DEBF0FBECDBFDF91CF911F910895CF937C\r
+:101FF0008091C2018823A1F0C091E900CF70909137\r
+:10200000EC00892F817090FD80E8C82B1092E900C8\r
+:102010008091E80083FD0E94A60ECF70C093E90076\r
+:10202000CF91089590935401809353010895E091C6\r
+:102030005301F0915401309721F00190F081E02D8F\r
+:10204000099480E00895EF92FF920F931F93CF932E\r
+:10205000DF93E0915301F09154013097B1F18C017D\r
+:102060000280F381E02D09958091AD0182FF2DC0A2\r
+:1020700080FF04C086EF93E00E947205E80118E03B\r
+:1020800080EFE82E83E0F82E8091AD0180FF0BC039\r
+:1020900088811F928F93FF92EF920E940B060F9000\r
+:1020A0000F900F900F90115021961111EDCF80914C\r
+:1020B000AD0180FF0AC08EEE93E0DF91CF911F91BA\r
+:1020C0000F91FF90EF900C947205DF91CF911F91CB\r
+:1020D0000F91FF90EF900895E0915301F09154011A\r
+:1020E000309721F00480F581E02D09940895209126\r
+:1020F0005101309152018217930771F09093520170\r
+:1021000080935101E0915301F0915401309721F0F7\r
+:102110000680F781E02D0994089520914F013091B8\r
+:1021200050018217930771F09093500180934F01F3\r
+:10213000E0915301F0915401309721F00084F18532\r
+:10214000E02D0994089508950C94A3100E94FB1BA0\r
+:102150000C945106CF92DF92EF92FF920F931F9350\r
+:10216000CF93DF9300D000D000D0CDB7DEB70E9470\r
+:102170009D0686E5C82E81E0D82E00E010E0E02E16\r
+:10218000802F0E94CB07F60141916F01F42EF826B3\r
+:10219000B1F40F5F1F4F0C30110589F78FEF898362\r
+:1021A0008A831B820E94041C8160782F9D838C830C\r
+:1021B00049815A816B818D810E94691147C090913C\r
+:1021C000AD0191FF04C08E830E94D1078E8120E073\r
+:1021D00030E04F2D50E0922FBA01022E02C07595CB\r
+:1021E00067950A94E2F760FF2BC02983EA8221E019\r
+:1021F00030E0690102C0CC0CDD1C9A95E2F790E05A\r
+:102200008C219D21892B09F420E02B830E94041C42\r
+:102210008160782F9D838C8349815A816B818D8168\r
+:102220000E94691149815A816B817C818D810E9454\r
+:10223000801BF801EA5AFE4F8081C826C08206C082\r
+:102240002F5F3F4F2830310531F6A3CF0E947F1B0F\r
+:102250000E94D11E109155010E941710181741F1CC\r
+:102260000E941710809355019091AD0192FF0EC00E\r
+:1022700090FF0CC01F928F9388E094E09F938F9300\r
+:102280000E940B060F900F900F900F9080915501B8\r
+:1022900026960FB6F894DEBF0FBECDBFDF91CF916B\r
+:1022A0001F910F91FF90EF90DF90CF900C94911BB6\r
+:1022B00026960FB6F894DEBF0FBECDBFDF91CF914B\r
+:1022C0001F910F91FF90EF90DF90CF9008950C94A5\r
+:1022D000D207CF93DF93CDB7DEB72B970FB6F89425\r
+:1022E000DEBF0FBECDBF942F4F83252F5887698740\r
+:1022F0007A878B874A855B85452B21F02F3F09F52F\r
+:102300009F3FF9F4DE01119686E0FD0111928A9556\r
+:10231000E9F785E0FE01379601900D928A95E1F785\r
+:1023200049815A816B817C818D819E810E944C18EC\r
+:102330002B960FB6F894DEBF0FBECDBFDF91CF91C5\r
+:1023400008954F81588569857A858B850E94801B09\r
+:10235000D9CFCF93882309F4A4C0C82F8CEF8C0F5A\r
+:10236000813A48F48C2F0E94FD2181119AC08C2F54\r
+:102370000E94DB1A0CC080E28C0F883058F4C770C2\r
+:1023800081E001C0880FCA95EAF70E941A1BCF911D\r
+:102390000C94541B8BE58C0F833078F4C53A29F0EC\r
+:1023A000C63A31F083E890E005C081E890E002C0D1\r
+:1023B00082E890E0CF910C94771088E58C0F8531FE\r
+:1023C00008F06FC0C83A61F1C93A69F1CA3A71F1CF\r
+:1023D000CB3A79F1CC3A81F1CD3A89F1CE3A91F10B\r
+:1023E000CF3A99F1C13BA1F1C03BA9F1C23BB1F198\r
+:1023F000C33BB9F1C43BC1F1C53BC9F1C63BD1F107\r
+:10240000C73BD9F1C83BE1F1C93BE9F1CA3BF1F166\r
+:10241000CB3BF9F1CC3B09F43FC080E090E03EC0FB\r
+:1024200082EE90E03BC089EE90E038C08AEE90E00A\r
+:1024300035C085EB90E032C086EB90E02FC083EB97\r
+:1024400090E02CC084EB90E029C087EB90E026C0A0\r
+:102450008CEC90E023C08DEC90E020C083E891E00C\r
+:102460001DC08AE891E01AC082E991E017C084E9B2\r
+:1024700091E014C081E292E011C083E292E00EC0CC\r
+:1024800084E292E00BC085E292E008C086E292E02E\r
+:1024900005C087E292E002C08AE292E0CF910C94FC\r
+:1024A0008D10CF910895882329F19CEF980F913AD0\r
+:1024B00018F40E94F81A0DC090E2980F983058F462\r
+:1024C000877091E001C0990F8A95EAF7892F0E94E1\r
+:1024D000201B0C94541B9BE5980F933020F480E054\r
+:1024E00090E00C947710885A853120F480E090E0D9\r
+:1024F0000C948D100895882321F00E941A1B0C94CF\r
+:10250000541B0895882321F00E94201B0C94541B17\r
+:102510000895CF92DF92EF92FF920F931F93CF9384\r
+:10252000DF9300D000D000D0CDB7DEB725E0FC01AE\r
+:10253000DE01119601900D922A95E1F7FC01408190\r
+:102540003181F280258122952F7063817481672B00\r
+:1025500009F4D8C23F3F19F44F3F09F4D3C26C01CC\r
+:1025600049833A8389819A812E830E949A1A182F6F\r
+:10257000092F0E94991A0E94A919E02FE295EF7085\r
+:10258000F0E0EC5BFF4F2E810C94C424802F807F01\r
+:10259000902F9F70092F882311F00295007FFF2054\r
+:1025A00049F0002309F45FC2802F0E942D1B0E9476\r
+:1025B000541B59C2812F0E945312002309F4A2C256\r
+:1025C000802F0E94331B26960FB6F894DEBF0FBEF5\r
+:1025D000CDBFDF91CF911F910F91FF90EF90DF90D2\r
+:1025E000CF900C94541B802F807F902F9F70092FC9\r
+:1025F000803211F00295007F112319F0113001F1A2\r
+:1026000029C0FF20A9F0802F222349F1213039F57C\r
+:1026100026960FB6F894DEBF0FBECDBFDF91CF91E7\r
+:102620001F910F91FF90EF90DF90CF900C943D1B86\r
+:10263000222319F0213009F465C20E94401B2CC0EE\r
+:10264000FF20E9F0263008F05DC20E94171B8023AE\r
+:1026500029F022C0FF20F1F0211115C0802F26960D\r
+:102660000FB6F894DEBF0FBECDBFDF91CF911F91A3\r
+:102670000F91FF90EF90DF90CF900C947B1225305C\r
+:1026800008F040C209C0F601858180FFECC18F705F\r
+:102690008583E4CF2111FBC1802F69C1202F2695AE\r
+:1026A0002695237030E02115310521F021303105C8\r
+:1026B000C9F028C2FF2021F0812F902F937002C013\r
+:1026C00080E090E026960FB6F894DEBF0FBECDBF37\r
+:1026D000DF91CF911F910F91FF90EF90DF90CF90FE\r
+:1026E0000C947710FF2021F0812F902F937002C05F\r
+:1026F00080E090E026960FB6F894DEBF0FBECDBF07\r
+:10270000DF91CF911F910F91FF90EF90DF90CF90CD\r
+:102710000C948D10812FFF2019F00E94571D02C0CC\r
+:102720000E94BF1D26960FB6F894DEBF0FBECDBF28\r
+:10273000DF91CF911F910F91FF90EF90DF90CF909D\r
+:102740000C94441E802F837009F078C0F110DAC118\r
+:10275000812F829586958770880F880F912F9F70A3\r
+:10276000C92ED12CE12CF12C082E04C0CC0CDD1C80\r
+:10277000EE1CFF1C0A94D2F714FF12C04FE050E089\r
+:1027800060E070E004C0440F551F661F771F8A95F4\r
+:10279000D2F7CB01BA01609570958095909503C0F2\r
+:1027A00060E070E0CB01202F269526952370422F04\r
+:1027B00050E042305105D1F04330510559F16C29B8\r
+:1027C0007D298E299F294130510541F126960FB66A\r
+:1027D000F894DEBF0FBECDBFDF91CF911F910F9157\r
+:1027E000FF90EF90DF90CF900C94BE196C297D295B\r
+:1027F0008E299F2926960FB6F894DEBF0FBECDBF57\r
+:10280000DF91CF911F910F91FF90EF90DF90CF90CC\r
+:102810000C94D0190E94BE19C701B60126960FB6B6\r
+:10282000F894DEBF0FBECDBFDF91CF911F910F9106\r
+:10283000FF90EF90DF90CF900C94AC19FF2019F02F\r
+:10284000802F817001C08695882309F45BC1812F98\r
+:10285000829586958770880F880F912F9F70C92E5B\r
+:10286000D12CE12CF12C082E04C0CC0CDD1CEE1C6C\r
+:10287000FF1C0A94D2F714FF12C04FE050E060E052\r
+:1028800070E004C0440F551F661F771F8A95D2F76A\r
+:10289000CB01BA01609570958095909503C060E07A\r
+:1028A00070E0CB01202F269526952370422F50E013\r
+:1028B00042305105D1F04330510559F16C297D2941\r
+:1028C0008E299F294130510541F126960FB6F89483\r
+:1028D000DEBF0FBECDBFDF91CF911F910F91FF9053\r
+:1028E000EF90DF90CF900C94751A6C297D298E297A\r
+:1028F0009F2926960FB6F894DEBF0FBECDBFDF919D\r
+:10290000CF911F910F91FF90EF90DF90CF900C949B\r
+:10291000871A0E94751AC701B60126960FB6F89459\r
+:10292000DEBF0FBECDBFDF91CF911F910F91FF9002\r
+:10293000EF90DF90CF900C94631A103F41F118F4A0\r
+:10294000103E48F48BC0123F09F450C0D8F1133F39\r
+:1029500009F460C083C01F70802F8F71FF2021F0A9\r
+:102960000E94FC19812F7BCE0E941D1A812F269672\r
+:102970000FB6F894DEBF0FBECDBFDF91CF911F9190\r
+:102980000F91FF90EF90DF90CF900C948212FF2078\r
+:10299000A9F0253008F0B6C0802F8F7126960FB6AB\r
+:1029A000F894DEBF0FBECDBFDF91CF911F910F9185\r
+:1029B000FF90EF90DF90CF900C94421A263008F0F1\r
+:1029C000A1C0EACFFF20A1F0802F8F7126960FB60D\r
+:1029D000F894DEBF0FBECDBFDF91CF911F910F9155\r
+:1029E000FF90EF90DF90CF900C94FC19FF2061F3E3\r
+:1029F000802F8F7126960FB6F894DEBF0FBECDBF25\r
+:102A0000DF91CF911F910F91FF90EF90DF90CF90CA\r
+:102A10000C941D1AFF2091F0802F8F7126960FB60F\r
+:102A2000F894DEBF0FBECDBFDF91CF911F910F9104\r
+:102A3000FF90EF90DF90CF900C94E71926960FB699\r
+:102A4000F894DEBF0FBECDBFDF91CF911F910F91E4\r
+:102A5000FF90EF90DF90CF900C94E219FF20A1F04F\r
+:102A6000222309F4B1CF812F26960FB6F894DEBF4A\r
+:102A70000FBECDBFDF91CF911F910F91FF90EF90CF\r
+:102A8000DF90CF900C94A911222309F4B1CF812FAC\r
+:102A900026960FB6F894DEBF0FBECDBFDF91CF9163\r
+:102AA0001F910F91FF90EF90DF90CF900C945312F5\r
+:102AB000402F4F70612FC6010E94CD1C26960FB685\r
+:102AC000F894DEBF0FBECDBFDF91CF911F910F9164\r
+:102AD000FF90EF90DF90CF900C94F418402F4F7040\r
+:102AE000612FC60126960FB6F894DEBF0FBECDBF8C\r
+:102AF000DF91CF911F910F91FF90EF90DF90CF90DA\r
+:102B00000C94D01C26960FB6F894DEBF0FBECDBF36\r
+:102B1000DF91CF911F910F91FF90EF90DF90CF90B9\r
+:102B200008950E943A1B0E94091B0E94541B0E9498\r
+:102B3000781F0E94441E80E090E00E94771080E0A1\r
+:102B400090E00C948D100E942A1B0C9491150E9409\r
+:102B50009A1A292F22952F7030E02C3031054CF431\r
+:102B60002A3031056CF4225031092230310588F4C5\r
+:102B700007C02C30310549F02F30310531F009C044\r
+:102B8000803E48F0803F29F406C093FB882780F9F7\r
+:102B9000089580E0089581E00895CF93DF9300D0F9\r
+:102BA00000D01F92CDB7DEB70F900F900F900F900F\r
+:102BB0000F90DF91CF910895CF93DF9300D000D095\r
+:102BC00000D0CDB7DEB726960FB6F894DEBF0FBEA5\r
+:102BD000CDBFDF91CF910895CF93DF93C091620174\r
+:102BE00080916301C817A1F0D0E0CE0166E070E0EB\r
+:102BF0000E949324FC01EC59FE4F40815181628177\r
+:102C00007381848195810E94DC152196C770E8CF7D\r
+:102C1000DF91CF9108954091940150919501609179\r
+:102C200096017091970180919801909199010C946F\r
+:102C3000DC15CF93DF938091990182958F7009F015\r
+:102C40005CC080919601882309F457C020916201ED\r
+:102C5000D091630140919401C0919501E091970159\r
+:102C6000F09198012D1709F448C030E0309709F42D\r
+:102C700040C0CF3F11F44F3FE1F1C90166E070E081\r
+:102C80000E949324DC01AC59BE4F11968C91119790\r
+:102C9000C8132FC08C9148132CC012968C91129798\r
+:102CA000811127C013968D919C9114978E179F07C1\r
+:102CB00008F401978E1B9F0B883C9105D0F48091FE\r
+:102CC00099018F70806180939901C90166E070E07D\r
+:102CD0000E949324FC01E759FE4F90819F70906100\r
+:102CE000908384E991E00E948912DF91CF910C9446\r
+:102CF000EC152F5F3F4F2770B5CFDF91CF9108952F\r
+:102D0000BF92CF92DF92EF92FF920F931F93CF93D8\r
+:102D1000DF93CDB7DEB761970FB6F894DEBF0FBE75\r
+:102D2000CDBF8C0185E0F801DE011D9601900D926A\r
+:102D30008A95E1F7D8014C9111962C911197129632\r
+:102D4000EC9012971396CD90DC90149750919401CB\r
+:102D5000609195018091970190919801009709F4F5\r
+:102D60006EC16F3F19F45F3F09F469C1B0909601DD\r
+:102D7000BB2009F4C3C030919901C816D90628F0C8\r
+:102D8000F601E81BF90BCF0104C0809590958C0DDE\r
+:102D90009D1DFF24F394883C910588F0F12C307F31\r
+:102DA00009F0CBC07C2DD98AC88A522F6E2D898913\r
+:102DB0000E94CD1584E991E00E948912B4C0832F4E\r
+:102DC000807F09F049C0621314C0541312C0E1108F\r
+:102DD00010C03F703061309399010E940B1684E956\r
+:102DE00091E00E94891280919901D80115968C93E7\r
+:102DF00031C0CD2831F12F3F11F44F3F11F1FE2C9E\r
+:102E0000E1101FC0E091620130916301E31709F402\r
+:102E10005CC0F0E0CF0166E070E00E949324DC012A\r
+:102E2000AC59BE4F11968C911197281307C08C9105\r
+:102E3000481304C012968C91811103C03196E7703B\r
+:102E4000E5CFFE2CEE2009F416C180919901816036\r
+:102E500080939901F12C0FC1621308C0541306C06E\r
+:102E6000E11004C080919901D801C1C04D872E871F\r
+:102E70008D859E850E94A7158823E1F1EE20D1F172\r
+:102E800020919901822F82958F7090E0029774F0C3\r
+:102E9000809194019091950198878F831986DB86A4\r
+:102EA000CA862C87CE0107960E94891286E0F80117\r
+:102EB000A4E9B1E001900D928A95E1F70E941916FC\r
+:102EC0000E940B16FF24F394D6C04D872E878D8564\r
+:102ED0009E850E949A1A292F22952F7030E0223069\r
+:102EE00031050CF0BCC09F7009F0B6C0805E883020\r
+:102EF00008F4C1C0C8010E948912E4CFC816D906DF\r
+:102F000008F453C0F601E81BF90BCF01883C91058A\r
+:102F100008F450C0F12C7C2DD98AC88A522F6E2D0E\r
+:102F200089890E94CD15E4E9F1E086E0DF011D9278\r
+:102F30008A95E9F70E940B169EC0621314C05413C1\r
+:102F400012C0E11010C080919901F8018583C80179\r
+:102F50000E94891286E0E4E9F1E0DF011D928A9582\r
+:102F6000E9F7FB2C88C04D872E878D859E850E94B2\r
+:102F7000A715882309F4BECFEE2009F4BBCF20911A\r
+:102F80009901822F82958F7090E002970CF48ECF7A\r
+:102F900080919401909195019A8389831B82DD82AF\r
+:102FA000CC822E83CE0101967FCF809590958C0D9B\r
+:102FB0009D1DACCFFE2CEE2009F49CCF62132EC0D9\r
+:102FC00054132CC02091990120FD1FC0822F82959F\r
+:102FD0008F70D9F0D80115962C9315978F3049F042\r
+:102FE0008F5F982F9295907F822F8F70892B1596E7\r
+:102FF0008C93C8010E94891286E0F801A4E9B1E02F\r
+:1030000001900D928A95E1F795CF86E0F801A4E949\r
+:10301000B1E001900D928A95E1F72DC04D872E8782\r
+:103020008D859E850E94A715811140CF80919901C1\r
+:10303000816080939901C8010E9489121CC0EE2012\r
+:1030400009F458CF4D872E878D859E850E94A71540\r
+:10305000882309F44FCF2ACF811148CF0CC02430E8\r
+:1030600031050CF047CF9F7009F440CFF8019581EE\r
+:10307000907F09F03BCF8F2D61960FB6F894DEBF9D\r
+:103080000FBECDBFDF91CF911F910F91FF90EF90B9\r
+:10309000DF90CF90BF900895CF93DF93CDB7DEB789\r
+:1030A0002C970FB6F894DEBF0FBECDBF4F83588765\r
+:1030B00069877A878B879C87CE0107960E94801646\r
+:1030C000882371F08F8198852A853B85232B09F40D\r
+:1030D0003FC09F3F09F068C08F3F09F065C038C00E\r
+:1030E00086E0FE013796DE01119601900D928A95D9\r
+:1030F000E1F76F817885EA85FB85309749F17F3F5D\r
+:1031000011F46F3F29F18091630190E09C012F5FE2\r
+:103110003F4F277033274091620150E02417350755\r
+:1031200009F44BC069837A83FD83EC8366E070E029\r
+:103130000E949324DC01AC59BE4F96E0FE0131960B\r
+:1031400001900D929A95E1F7209363010E94EC158E\r
+:1031500080916201909163018917E9F190E066E046\r
+:1031600070E00E9493248C599E4F0E948016882301\r
+:1031700091F18091620190E066E070E00E949324FA\r
+:10318000FC01EC59FE4F4081518162817381848141\r
+:1031900095810E94DC158091620190E00196877014\r
+:1031A000992780936201D4CF4F81588569857A85AC\r
+:1031B0008B859C850E94DC15CBCF0E94A3151092B5\r
+:1031C000630110926201E4E9F1E086E0DF011D9203\r
+:1031D0008A95E9F7BDCF2C960FB6F894DEBF0FBEE7\r
+:1031E000CDBFDF91CF910895DF92EF92FF920F93C1\r
+:1031F0001F93CF93DF93FC01892B09F48AC0E12C44\r
+:10320000F12CDD24D394EF0121968491853709F4C4\r
+:1032100061C058F4843708F04EC0843008F06AC0AA\r
+:103220008130D1F0823071F174C0883709F45DC00B\r
+:1032300050F4863709F455C0873709F06AC08E2DDF\r
+:103240000E94271B54C09CE7980F903708F061C07C\r
+:103250008F770E94531250C08F010E5F1F4FFE01E7\r
+:10326000849190E2980F983050F48770FD2D01C042\r
+:10327000FF0F8A95EAF78F2F0E942D1B14C00E9422\r
+:10328000A91113C08F010E5F1F4FFE01C49180E290\r
+:103290008C0F883060F4C7708D2D01C0880FCA95DF\r
+:1032A000EAF70E94331B0E94541BE80125C08C2FB3\r
+:1032B0000E945312FACF9F012E5F3F4FFE01C4912F\r
+:1032C000CC2369F08FE99FE00197F1F700C000007F\r
+:1032D000C150F6CF9F012E5F3F4FFE01F490E901F0\r
+:1032E0000BC00E94171BE82E07C00E942A1B0E94D9\r
+:1032F000541B02C00E94A9118F2D882341F0EFE9D1\r
+:10330000FFE03197F1F700C000008150F6CFFE01D9\r
+:103310007ACFDF91CF911F910F91FF90EF90DF90C7\r
+:10332000089560939E0170939F018093A0019093F4\r
+:10333000A1010E948F1B0C94911560939A017093C8\r
+:103340009B0180939C0190939D010E94901B0C9483\r
+:10335000911508950C9491190F931F9300919E015C\r
+:1033600010919F012091A0013091A101602B712B40\r
+:10337000822B932B1F910F910C9491190F931F93F4\r
+:1033800000919E0110919F012091A0013091A10117\r
+:1033900060237123822393231F910F910C94911921\r
+:1033A0000F931F9300919E0110919F012091A00106\r
+:1033B0003091A10160277127822793271F910F91D8\r
+:1033C0000C94911960E070E0CB010C949D190F935F\r
+:1033D0001F9341E050E060E070E08A019B0104C06F\r
+:1033E000000F111F221F331F8A95D2F7C901B801A0\r
+:1033F0001F910F910C949D190F931F9341E050E082\r
+:1034000060E070E004C0440F551F661F771F8A9567\r
+:10341000D2F780919A0190919B01A0919C01B0916B\r
+:103420009D018A019B01082B192B2A2B3B2BC901DB\r
+:10343000B8011F910F910C949D190F931F9341E0B8\r
+:1034400050E060E070E004C0440F551F661F771F16\r
+:103450008A95D2F7409550956095709580919A0124\r
+:1034600090919B01A0919C01B0919D018A019B01CB\r
+:10347000082319232A233B23C901B8011F910F9167\r
+:103480000C949D190F931F9341E050E060E070E0B1\r
+:1034900004C0440F551F661F771F8A95D2F780918D\r
+:1034A0009A0190919B01A0919C01B0919D018A018C\r
+:1034B0009B01082719272A273B27C901B8011F911B\r
+:1034C0000F910C949D190F931F9300919A011091E5\r
+:1034D0009B0120919C0130919D01602B712B822BCF\r
+:1034E000932B1F910F910C949D190F931F93009193\r
+:1034F0009A0110919B0120919C0130919D016023C4\r
+:103500007123822393231F910F910C949D190F9384\r
+:103510001F9300919A0110919B0120919C01309181\r
+:103520009D0160277127822793271F910F910C948B\r
+:103530009D190895CF92DF92EF92FF920F931F9300\r
+:10354000CF93DF938C01C0909E01D0909F01E090BB\r
+:10355000A001F090A10140919A0150919B016091CE\r
+:103560009C0170919D01C42AD52AE62AF72ACFE151\r
+:10357000D0E0D701C6010C2E04C0B695A79597954B\r
+:1035800087950A94D2F780FF07C0B8018C2F0E945C\r
+:103590009E1C8130910531F4219758F7B80180E0E5\r
+:1035A0000E949E1CDF91CF911F910F91FF90EF9091\r
+:1035B000DF90CF90089520910B0130910C01F9011B\r
+:1035C00032969FEF40E05191581789F09F3F19F4D0\r
+:1035D000511101C0942F4F5F4630A9F79F3F39F03A\r
+:1035E000F901E90FF11D97FDFA9582830895089579\r
+:1035F00020910B0130910C01F9013296285F3F4F69\r
+:103600009081981301C010823196E217F307C1F739\r
+:10361000089581E090E0E0910B01F0910C01E80F3A\r
+:10362000F91F1082019688309105A9F708958091BD\r
+:10363000AC0108959091AC01892B8093AC01089561\r
+:1036400080959091AC0189238093AC01089580937B\r
+:10365000AC0108951092AC0108959091AB01892BB3\r
+:103660008093AB01089580959091AB01892380935D\r
+:10367000AB0108951092AB0108958093A2010895C3\r
+:103680001092A201089580910B0190910C01FC0110\r
+:1036900031969C01285F3F4F80E0919191118F5F9F\r
+:1036A000E217F307D1F70895E0910B01F0910C01B7\r
+:1036B0008091AC018083E0910B01F0910C0190812D\r
+:1036C0008091AB01892B80838091A201882361F0D6\r
+:1036D000E0910B01F0910C019081892B80830E9475\r
+:1036E000431B81111092A20180910B0190910C015A\r
+:1036F0000C94231090933301809332010895089520\r
+:10370000CF93DF9300D000D01F92CDB7DEB70F90DC\r
+:103710000F900F900F900F90DF91CF910895089523\r
+:1037200008950C9467118091C201843021F11092A8\r
+:10373000AE0120E488E190E00FB6F894A89580935C\r
+:1037400060000FBE2093600083B7817F846083BFD9\r
+:1037500083B7816083BF7894889583B78E7F83BF5A\r
+:103760000FB6F894A89580916000886180936000FE\r
+:10377000109260000FBE089508950895CF930E949F\r
+:10378000BC1B0E949D060E94BD1BC0E08C2F0E94A6\r
+:10379000CB07811104C0CF5FCC30C1F701C081E0FD\r
+:1037A000CF9108951F920F920FB60F9211248F930D\r
+:1037B0009F93AF93BF938091AE01811113C080910D\r
+:1037C000AF019091B001A091B101B091B2014196C9\r
+:1037D000A11DB11D8093AF019093B001A093B101E1\r
+:1037E000B093B201BF91AF919F918F910F900FBE97\r
+:1037F0000F901F90189582E084BD93E095BD9AEFDD\r
+:1038000097BD80936E0008952FB7F8948091AF0113\r
+:103810009091B001A091B101B091B2012FBF089574\r
+:103820002FB7F8946091AF017091B0018091B10110\r
+:103830009091B2012FBF0895CF92DF92EF92FF9245\r
+:103840000F931F932FB7F8944091AF015091B0019F\r
+:103850006091B1017091B2012FBF6A017B01EE242A\r
+:10386000FF248C0120E030E0C016D106E206F3060A\r
+:1038700010F4415051099A01281B390BC9011F91BD\r
+:103880000F91FF90EF90DF90CF9008951F920F92CD\r
+:103890000FB60F9211248F939F93AF93BF93809194\r
+:1038A000AF019091B001A091B101B091B201019628\r
+:1038B000A11DB11D8093AF019093B001A093B10100\r
+:1038C000B093B201BF91AF919F918F910F900FBEB6\r
+:1038D0000F901F9018950E949A0DF8942FEF87EA89\r
+:1038E00091E6215080409040E1F700C0000087E061\r
+:1038F00090EBDC018093CB019093CC01A093CD01A0\r
+:10390000B093CE019CE088E10FB6F894A89580931F\r
+:1039100060000FBE90936000FFCFE92FF0E093E0CE\r
+:10392000EE0FFF1F9A95E1F7E80FF11DE855FF4FE5\r
+:103930009491892F8F7092959F700895CF93C82F7F\r
+:10394000CB010E948D1C492F90E0242F30E054E0E1\r
+:10395000220F331F5A95E1F7282B392B20383105D8\r
+:1039600019F480E090E017C0EC2FF0E023E0EE0FB8\r
+:10397000FF1F2A95E1F74770E40FF11D34E0EE0FC9\r
+:10398000FF1F3A95E1F7E80FF91FEE0FFF1FE05018\r
+:10399000F84985919491CF91089580E090E0089541\r
+:1039A00008958091B50180FF0CC08091100190E0D6\r
+:1039B00065E070E00E94932495958795959587958D\r
+:1039C0002EC081FF0AC08091100190E065E070E098\r
+:1039D0000E9493249595879522C082FF08C080910C\r
+:1039E000100190E065E070E00E94932418C02091DF\r
+:1039F000B6012223D1F030910F01231780F7809177\r
+:103A0000100190E065E070E00E949324622F70E066\r
+:103A10000E949324632F70E00E94B024CB01803871\r
+:103A2000910530F4009731F0089585E090E0089515\r
+:103A30008FE7089581E008958091B50180FF08C067\r
+:103A400060910E0170E0759567957595679523C037\r
+:103A500081FF06C060910E0170E0759567951BC0EF\r
+:103A600082FF04C060910E0170E012C06091B60147\r
+:103A70006623D1F020910D016217A0F780910E010D\r
+:103A800070E090E00E949324622F70E00E94B024C6\r
+:103A90006038710528F46115710521F0862F0895AD\r
+:103AA0008FE7089581E0089561E070E0F4CF803FF2\r
+:103AB00021F40E94D11C819504C0813F29F40E9409\r
+:103AC000D11C8093B9010895823F21F40E94D11C3A\r
+:103AD000819504C0833F29F40E94D11C8093B801D2\r
+:103AE0000895893F19F40E941C1D05C08A3F31F4D6\r
+:103AF0000E941C1D81958093BA0108958B3F21F48B\r
+:103B00000E941C1D819504C08C3F29F40E941C1D3D\r
+:103B10008093BB010895843F21F48091B7018160B7\r
+:103B200017C0853F21F48091B701826011C0863FA4\r
+:103B300021F48091B70184600BC0873F21F480910C\r
+:103B4000B701886005C0883F31F48091B70180617A\r
+:103B50008093B70108958D3F21F48091B501816074\r
+:103B60000BC08E3F21F48091B501826005C08F3F6C\r
+:103B700029F48091B50184608093B5010895803F58\r
+:103B800039F48091B90187FF6CC01092B90169C006\r
+:103B9000813F29F48091B9011816BCF362C090915D\r
+:103BA000B801823F29F497FF5CC01092B80159C058\r
+:103BB000833F19F41916CCF354C0893F41F4809126\r
+:103BC000BA0118160CF04DC01092BA014AC08A3FD3\r
+:103BD00029F48091BA0187FF44C0F6CF8B3F39F4B6\r
+:103BE0008091BB0187FF3DC01092BB013AC08C3F62\r
+:103BF00029F48091BB011816BCF333C0843F21F433\r
+:103C00008091B7018E7F17C0853F21F48091B70165\r
+:103C10008D7F11C0863F21F48091B7018B7F0BC04F\r
+:103C2000873F21F48091B701877F05C0883F31F439\r
+:103C30008091B7018F7E8093B70113C08D3F21F42F\r
+:103C40008091B5018E7F0BC08E3F21F48091B5012C\r
+:103C50008D7F05C08F3F29F48091B5018B7F8093C4\r
+:103C6000B5018091B80181110EC08091B901811117\r
+:103C70000AC08091BA01811106C08091BB018111F7\r
+:103C800002C01092B60108958091AD0183FF7EC0FD\r
+:103C90008AE394E00E9472058091B7011F928F938E\r
+:103CA00085E394E09F938F930E940B0683E394E057\r
+:103CB0000E9472058091B801282F082E000C330B4A\r
+:103CC0003F938F9380E394E09F938F930E940B0622\r
+:103CD0008EE294E00E9472058091B901282F082E8F\r
+:103CE000000C330B3F938F938BE294E09F938F9361\r
+:103CF0000E940B0689E294E00E9472058091BA014D\r
+:103D0000282F082E000C330B3F938F9386E294E00C\r
+:103D10009F938F930E940B0684E294E00E947205A9\r
+:103D20008091BB01282F082E000C330B3F938F93FB\r
+:103D300081E294E09F938F930E940B068EE194E0C2\r
+:103D40000E9472058091B6011F928F938BE194E0DF\r
+:103D50009F938F930E940B0689E194E00E94720565\r
+:103D60008091B5011F928F9386E194E09F938F938A\r
+:103D70000E940B0683E194E00E9472058DB79EB706\r
+:103D80004C960FB6F8949EBF0FBE8DBF87EB91E0A7\r
+:103D90000E946C100E94041C9093B4018093B301A4\r
+:103DA00008951F93CF93DF938091B3019091B40155\r
+:103DB0000E941C1CFC012091B601222329F0909145\r
+:103DC0001101892F90E007C08091120190E06AE014\r
+:103DD00070E00E949324E817F90708F485C08091E9\r
+:103DE000B801C091B901D091BA011091BB01811104\r
+:103DF00007C0C11175C0D11173C0111171C074C059\r
+:103E00002F3F19F02F5F2093B601181624F40E945B\r
+:103E1000D11C8093B8018091B80187FF05C00E9432\r
+:103E2000D11C81958093B8011C1624F40E94D11CEA\r
+:103E30008093B9018091B90187FF05C00E94D11C10\r
+:103E400081958093B9016091B801662331F1C091E9\r
+:103E5000B901CC2311F1062E000C770B880B990BBE\r
+:103E60000E94922323E333E343E35FE30E94F623BC\r
+:103E70000E945A236093B8016C2FCC0F770B880BEC\r
+:103E8000990B0E94922323E333E343E35FE30E9411\r
+:103E9000F6230E945A236093B9011D1624F40E9450\r
+:103EA0001C1D8093BA018091BA0187FF05C00E9452\r
+:103EB0001C1D81958093BA01111624F40E941C1DCB\r
+:103EC0008093BB018091BB0187FF05C00E941C1D30\r
+:103ED00081958093BB01DF91CF911F910C94441E7B\r
+:103EE0002F3F09F08FCF97CFDF91CF911F9108958A\r
+:103EF000E7EBF1E085E0DF011D928A95E9F710928A\r
+:103F0000B6011092B50108958DE596E00E94720504\r
+:103F10001F9281E08F931F9285E08F938FE096E050\r
+:103F20009F938F930E940B060F900F900F900F900E\r
+:103F30000F900F9008958330E9F128F4813061F0FB\r
+:103F4000823009F10895853009F462C008F449C04F\r
+:103F5000863009F474C0089580911201262F30E054\r
+:103F6000280F311D2F3F310524F4680F6093120193\r
+:103F700003C08FEF80931201809112011F928F93E3\r
+:103F800088E495E072C080911101262F30E0280F5F\r
+:103F9000311D2F3F310524F4680F6093110103C0D8\r
+:103FA0008FEF80931101809111011F928F9386E30F\r
+:103FB00095E05BC080911001262F30E0280F311D65\r
+:103FC0002F3F310524F4680F6093100103C08FEF79\r
+:103FD00080931001809110011F928F9383E295E0EE\r
+:103FE00044C080910F01262F30E0280F311D2F3F54\r
+:103FF000310524F4680F60930F0103C08FEF8093A5\r
+:104000000F0180910F011F928F938EE095E02DC0DC\r
+:1040100080910E01262F30E0280F311D2F3F3105F2\r
+:1040200024F4680F60930E0103C08FEF80930E019C\r
+:1040300080910E011F928F9385EF94E016C08091BE\r
+:104040000D01262F30E0280F311D2F3F310524F4BC\r
+:10405000680F60930D0103C08FEF80930D01809175\r
+:104060000D011F928F938AED94E09F938F930E948E\r
+:104070000B060F900F900F900F900895833081F1F1\r
+:1040800028F4813059F08230D1F00895853009F458\r
+:1040900049C0B8F1863009F456C0089580911201E4\r
+:1040A000681720F4861B8093120102C0109212013F\r
+:1040B000809112011F928F938BEC94E054C08091F9\r
+:1040C0001101681720F4861B8093110102C0109221\r
+:1040D0001101809111011F928F9389EB94E043C0ED\r
+:1040E00080911001681720F4861B8093100102C094\r
+:1040F00010921001809110011F928F9386EA94E034\r
+:1041000032C080910F01681720F4861B80930F0145\r
+:1041100002C010920F0180910F011F928F9381E9CD\r
+:1041200094E021C080910E01681720F4861B8093D3\r
+:104130000E0102C010920E0180910E011F928F930A\r
+:1041400088E794E010C080910D01681720F4861B69\r
+:1041500080930D0102C010920D0180910D011F92FC\r
+:104160008F938DE594E09F938F930E940B060F90A1\r
+:104170000F900F900F900895CF93C82F1F928F9399\r
+:1041800082E697E09F938F930E940B0681E090E078\r
+:10419000A0E0B0E0BC01CD0104C0660F771F881F0E\r
+:1041A000991FCA95D2F70E94AA190F900F900F90ED\r
+:1041B0000F90CF910C94A315CF93873288F58E3151\r
+:1041C00008F00BC18E3009F487C0D8F4873009F4A9\r
+:1041D00060C08B3009F44FC0863009F002C1809175\r
+:1041E000AD01817F8E7F8093AD0187E697E00E94CD\r
+:1041F000720585E39AE00E94720581E08093BD011B\r
+:1042000046C0863109F4B0C020F4803109F47AC088\r
+:10421000E8C0893109F491C08B3109F449C0E1C08B\r
+:10422000883349F150F4893209F4D5C0853309F453\r
+:10423000D2C0873209F0D5C0CEC0833409F4CBC0D8\r
+:1042400028F48A3308F4CDC08953C8C0883409F0F3\r
+:10425000C8C00E94A31584E29AE00E9472052FEF65\r
+:1042600083ED90E3215080409040E1F700C00000D2\r
+:104270000E946B1C0CC08EE897E041C08BE09AE076\r
+:104280000E9472058091AD0181608093AD01C1E013\r
+:10429000ADC08091AD01C82FC17080FFEFCF87E125\r
+:1042A0009AE00E9472058091AD01817F8E7F3FC0B0\r
+:1042B0009091AD0191FBCC27C0F981E0C827892FEF\r
+:1042C000C0FB81F98093AD01CC2319F08EEF99E00A\r
+:1042D00029C080EF99E013C09091AD0192FBCC27EB\r
+:1042E000C0F981E0C827892FC0FB82F98093AD0116\r
+:1042F000CC2319F081EE99E015C081ED99E00E9480\r
+:104300007205C5CF9091AD0193FBCC27C0F981E038\r
+:10431000C827892FC0FB83F98093AD01CC2351F0CE\r
+:1043200085EC99E00E9472058091AD0181608093D7\r
+:10433000AD015CC088EB99E0E2CF89EA99E00E9488\r
+:1043400072058AE799E00E9472058DE299E00E9469\r
+:10435000720580E099E00E9472058BEB98E00E9464\r
+:1043600072058CE898E0CBCF8EE798E00E9472054A\r
+:104370000E9417101F928F9384E698E09F938F936B\r
+:104380000E940B0680910A011F928F938DE498E0A2\r
+:104390009F938F930E940B0680914E011F928F93E3\r
+:1043A0008AE398E09F938F930E940B060E94101C53\r
+:1043B0009F938F937F936F9383E298E09F938F9364\r
+:1043C0000E940B068DB79EB742960FB6F8949EBF1B\r
+:1043D0000FBE8DBF5CCF80E001C08D510E94BC201C\r
+:1043E00056CF81E298E00E947205C0E08C2FCF91F9\r
+:1043F000089580E0089580E00895CF93C82F8091BC\r
+:10440000BD01813091F020F0823009F453C04AC1DF\r
+:10441000E0910B01F0910C018081823289F08034AF\r
+:1044200079F0803809F040C10BC0E0910B01F091A8\r
+:104430000C018081823221F0803411F0803861F4E7\r
+:104440008C2F0E94F921811104C08C2F0E94DC2046\r
+:104450002FC081E090E02CC08C2F0E94FB218111A5\r
+:1044600026C0C431E1F070F4CB3081F0C031D1F41A\r
+:104470000E94841F8AE597E00E94720582E0809383\r
+:10448000BD0115C0C93259F0C83361F487E697E021\r
+:104490000E9472058EE597E00E94720508C0109296\r
+:1044A000BD0104C188E597E00E947205FFC081E06C\r
+:1044B0008170FEC0C43228F5CE3108F0C1C0CB30C7\r
+:1044C000A1F1D0F4C73009F0D3C08EE1809312017E\r
+:1044D00082E3809311018AE08093100184E180934C\r
+:1044E0000F0188E080930E0188E280930D018EEF2A\r
+:1044F00095E00E947205BFC0C33149F1C431C1F0DB\r
+:10450000B7C0CB3409F4A9C028F4C93289F0C83344\r
+:1045100061F0AEC0C13509F49EC0C23509F499C03E\r
+:10452000CE3409F0A5C06AE09EC00E94841FA3C0DB\r
+:104530008091BC01882319F01092BC019CC08BE0D3\r
+:1045400096E00E94720581E08093BD01B1C085EEC6\r
+:1045500095E00E94720583ED95E00E9472058091BE\r
+:1045600012011F928F9380ED95E09F938F930E948D\r
+:104570000B068EEC95E00E9472058CEB95E00E9494\r
+:104580007205809111011F928F9389EB95E09F93A3\r
+:104590008F930E940B0687EB95E00E94720588EAD4\r
+:1045A00095E00E947205809110011F928F9385EA19\r
+:1045B00095E09F938F930E940B0683EA95E00E94FB\r
+:1045C000720582E995E00E94720580910F011F92A9\r
+:1045D0008F938FE895E09F938F930E940B068DE851\r
+:1045E00095E00E94720588E795E00E94720580912F\r
+:1045F0000E011F928F9385E795E09F938F930E9402\r
+:104600000B0683E795E00E9472058CE595E00E9419\r
+:10461000720580910D011F928F9389E595E09F931C\r
+:104620008F930E940B0687E595E00E9472058DB777\r
+:104630009EB748960FB6F8949EBF0FBE8DBF1BC0A5\r
+:10464000CE51EC2FF0E0E95DFE4F80818093BC01FC\r
+:1046500012C061E003C061E006C06AE08091BC0165\r
+:104660000E949B1F08C08091BC010E943E2003C095\r
+:104670008CEF95E013C08091BC01882369F01F92F4\r
+:104680008F9386EF95E09F938F930E940B060F9078\r
+:104690000F900F900F9004C083EF95E00E94720579\r
+:1046A00081E006C01092BD0180E002C080E000CF32\r
+:1046B000CF9108950E9461236894B1110C94F02366\r
+:1046C00008950E94D52388F09F5798F0B92F992715\r
+:1046D000B751B0F0E1F0660F771F881F991F1AF0ED\r
+:1046E000BA95C9F714C0B13091F00E94EF23B1E040\r
+:1046F00008950C94EF23672F782F8827B85F39F03F\r
+:10470000B93FCCF3869577956795B395D9F73EF485\r
+:1047100090958095709561957F4F8F4F9F4F08952D\r
+:10472000E89409C097FB3EF490958095709561954B\r
+:104730007F4F8F4F9F4F9923A9F0F92F96E9BB2701\r
+:104740009395F695879577956795B795F111F8CF7D\r
+:10475000FAF4BB0F11F460FF1BC06F5F7F4F8F4FE8\r
+:104760009F4F16C0882311F096E911C0772321F0DE\r
+:104770009EE8872F762F05C0662371F096E8862F76\r
+:1047800070E060E02AF09A95660F771F881FDAF7CD\r
+:10479000880F9695879597F9089557FD9058440F7F\r
+:1047A000551F59F05F3F71F04795880F97FB991F90\r
+:1047B00061F09F3F79F0879508951216130614064D\r
+:1047C000551FF2CF4695F1DF08C0161617061806DA\r
+:1047D000991FF1CF86957105610508940895E894B5\r
+:1047E000BB2766277727CB0197F908950E940824F5\r
+:1047F0000C9482240E94742438F00E947B2420F0C0\r
+:10480000952311F00C946B240C9471240C94F023D8\r
+:104810000E94CD2378F39923C9F35523B9F3950F5B\r
+:1048200050E0551FAA27EE27FF27BB270024089436\r
+:10483000679520F4E20FF31FB41F0A1E220F331FE7\r
+:10484000441FAA1F6695A9F7779530F4F30FB41F9C\r
+:104850000A1E121E08F46395330F441FAA1F221F5D\r
+:10486000769599F7879520F4B40F0A1E121E631FE0\r
+:10487000440FAA1F221F331F8695A9F7862F712D7B\r
+:10488000602D11249F5750409AF0F1F088234AF090\r
+:10489000EE0FFF1FBB1F661F771F881F91505040F0\r
+:1048A000A9F79E3F510580F00C946B240C94F023E3\r
+:1048B0005F3FE4F3983ED4F3869577956795B79577\r
+:1048C000F795E7959F5FC1F7FE2B880F911D969591\r
+:1048D000879597F9089597F99F6780E870E060E001\r
+:1048E00008959FEF80EC089500240A941616170689\r
+:1048F00018060906089500240A94121613061406D1\r
+:1049000005060895092E0394000C11F4882352F033\r
+:10491000BB0F40F4BF2B11F460FF04C06F5F7F4FEB\r
+:104920008F4F9F4F08950024552704C0080E591F2C\r
+:10493000880F991F009729F076956795B8F3710550\r
+:10494000B9F7802D952F0895991B79E004C0991F20\r
+:10495000961708F0961B881F7A95C9F780950895D9\r
+:1049600097FB072E16F4009407D077FD09D00E941C\r
+:10497000CA2407FC05D03EF4909581959F4F089579\r
+:10498000709561957F4F0895EE0FFF1F0590F4918C\r
+:10499000E02D0994AA1BBB1B51E107C0AA1FBB1F36\r
+:1049A000A617B70710F0A61BB70B881F991F5A95BB\r
+:1049B000A9F780959095BC01CD010895F894FFCF9B\r
+:1049C000FA08EB09C8099409600901A30128081431\r
+:1049D0000A321E404D3622AE0361032B03090395B4\r
+:1049E00002AE02C702E0020102030405060708093D\r
+:0249F0000000C5\r
+:106800000000000000000000040005000600070072\r
+:10681000080009000A000B000C000D000E000F001C\r
+:1068200010001100120013001400150016001700CC\r
+:10683000180019001A001B001C001D001E001F007C\r
+:10684000200021002200230024002500260027002C\r
+:10685000280000002A002B002C002D002E002F0005\r
+:1068600030003100000033003400290036003700CA\r
+:106870003800E00000000000000000000000000000\r
+:106880000000000000000000000000000000000008\r
+:106890000000E944E2444B00EA4400004E004F008F\r
+:1068A0005000510052003500310054005500560090\r
+:1068B000580059005A005B005C005D005E005F00FC\r
+:1068C00060006100620063000000F1A15700000059\r
+:1068D00000000000000000000000000000000000B8\r
+:1068E00000000000000000000000000000000000A8\r
+:1068F000E200E1000000E300E600E5000000000027\r
+:106900000100010001000100EA4401000601E24427\r
+:106910000100010001005500460054004A004B00F0\r
+:10692000560057004700480031000100E9440100CB\r
+:106930000100190101001B0101001D013A003B008B\r
+:106940003C003D003E003F0040004100420043004B\r
+:10695000010001004C0039000100440045005200D4\r
+:1069600049000100010050004F0035004D004E006D\r
+:1069700051000100010001000100010001000100BF\r
+:1069800001000100010001000100010001000100FF\r
+:1069900001000100010001000100010001004D00A3\r
+:1069A0004A004E004B0053000100010001000100AD\r
+:1069B00001000100010001000100010001000100CF\r
+:1069C00001000100010001000100010001000100BF\r
+:1069D00001000100010001000100010001000100AF\r
+:1069E000010001000100010001000100010001009F\r
+:1069F000010001000100010001000100010001008F\r
+:00000001FF\r
index 90700da556deccbddcccb08ebc47f80945facf24..e68b2f3f1d09c8eacf65c7775e34c769f8a5e0d8 100644 (file)
@@ -119,46 +119,46 @@ const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
     
     /* Layer 0: default
      * ,-----------------------------------------------------------. ,-----------. ,---------------.
-     * |Esc|  1|  2|  3|  4|  5|  6|  7|  8|  9|  0|  -|  =|   BS  | |Ins|Ref|Hom| |`  |  =|  /|  *|
+     * |Esc|  1|  2|  3|  4|  5|  6|  7|  8|  9|  0|  -|  =|   BS  | |VoU|Mut|PgU| |  `|  \|  /|  *|
      * |-----------------------------------------------------------| |-----------| |---------------|
-     * |Tab  |  Q|  W|  E|  R|  T|  Y|  U|  I|  O|  P|  [|  ]|     | |Del|   |End| |  7|  8|  9|  -|
+     * |Tab  |  Q|  W|  E|  R|  T|  Y|  U|  I|  O|  P|  [|  ]|     | |VoD|   |PgD| |  7|  8|  9|  -|
      * |-----------------------------------------------------'     | `---'   `---' |-----------|---|
      * |Ctrl  |  A|  S|  D|  F|  G|  H|  J|  K|  L|  ;|  '|  Return|               |  4|  5|  6|  +|
      * |-----------------------------------------------------------|     ,---.     |---------------|
      * |Shift   |  Z|  X|  C|  V|  B|  N|  M|  ,|  .|  /|Shift     |     |Up |     |  1|  2|  3|   |
      * |-----------------------------------------------------------| ,-----------. |-----------|Ent|
-     * |Fn0  |Alt  |              Space                |LGui |Fn1  | |Lef|Dow|Rig| |      0|  .|   |
+     * |LAlt |LGui |              Space                |FN0  |RAlt | |Lef|Dow|Rig| |      0|  .|   |
      * `-----------------------------------------------------------' `-----------' `---------------'
      */
     KEYMAP(
-    ESC, 1,   2,   3,   4,   5,   6,   7,   8,   9,   0,   MINS,EQL, BSPC,  INS, WREF,HOME,  GRV, FN3, FN2, PAST,
-    TAB, Q,   W,   E,   R,   T,   Y,   U,   I,   O,   P,   LBRC,RBRC,NO,    DEL,      END,   P7,  P8,  P9,  PMNS,
+    ESC, 1,   2,   3,   4,   5,   6,   7,   8,   9,   0,   MINS,EQL, BSPC,  VOLU,MUTE,PGUP,  GRV, BSLS,PSLS,PAST,
+    TAB, Q,   W,   E,   R,   T,   Y,   U,   I,   O,   P,   LBRC,RBRC,BSLS,  VOLD,     PGDN,  P7,  P8,  P9,  PMNS,
     LCTL,A,   S,   D,   F,   G,   H,   J,   K,   L,   SCLN,QUOT,     ENT,                    P4,  P5,  P6,  PPLS,
     LSFT,     Z,   X,   C,   V,   B,   N,   M,   COMM,DOT, SLSH,     RSFT,       UP,         P1,  P2,  P3,  
-    FN0, LALT,                    SPC,                          LGUI,FN1,  LEFT,DOWN,RGHT,  P0,       PDOT,PENT
+    LALT,LGUI,                    SPC,                          FN0, RALT,  LEFT,DOWN,RGHT,  P0,       PDOT,PENT
     
     ),
 
-    /* Layer 1: extra keys
+    /* Layer 1: HHKB like
      * ,-----------------------------------------------------------. ,-----------. ,---------------.
-     * |Grv| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|   BS  | |VUp|VMu|PgU| |`  |  =|  /|  *|
+     * |  `| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|  Del  | |   |   |   | |Num|   |   |   |
      * |-----------------------------------------------------------| |-----------| |---------------|
-     * |Tab  |Pau|  W|  E|  R|  T|  Y|  U|  I|  O|PSc|  \|  ]|     | |VDn|   |PgD| |  7|  8|  9|  -|
+     * |Caps |  \|   |   |   |   |   |   |Psc|Slk|Pau|Up |Ins|     | |   |   |   | |   |   |   |   |
      * |-----------------------------------------------------'     | `---'   `---' |-----------|---|
-     * |Ctrl  |  A|  S|  D|  F|  G|  H|  J|  K|  L|  ;|  '|  Return|               |  4|  5|  6|  +|
+     * |      |VoD|VoU|Mut|   |   |  *|  /|Hom|PgU|Lef|Rig|        |               |   |   |   |   |
      * |-----------------------------------------------------------|     ,---.     |---------------|
-     * |Shift   |UND|CUT|COP|PST|  B|  N|  M|  ,|  .|  /|Shift     |     |Up |     |  1|  2|  3|   |
-     * |-----------------------------------------------------------| ,-----------. |-----------|Ent|
-     * |Fn0  |Alt  |              Space                |RGui |Fn1  | |Lef|Dow|Rig| |      0|  .|   |
+     * |        |UND|CUT|COP|PST|   |  +|  -|End|PgD|Dow|          |     |PgU|     |   |   |   |   |
+     * |-----------------------------------------------------------| ,-----------. |-----------|   |
+     * |     |     |                                   |     |     | |Hom|PgD|End| |       |   |   |
      * `-----------------------------------------------------------' `-----------' `---------------'
      */
     KEYMAP(
     
-    GRV, F1,  F2,  F3,  F4,  F5,  F6,  F7,  F8,  F9,  F10, F11, F12, TRNS,  VOLU,MUTE,PGUP,  TRNS,TRNS,TRNS,TRNS,
-    TRNS,PAUS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,PSCR,FN3, BSLS,TRNS,  VOLD,     PGDN,  BTN1,MS_U,BTN2,WH_U,
-    TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,     TRNS,                   MS_L,MS_D,MS_R,WH_D,
-    TRNS,     FN4, FN5, FN6, FN7, 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, 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,VOLD,VOLU,MUTE,TRNS,TRNS,PAST,PSLS,HOME,PGUP,LEFT,RGHT,     TRNS,                   TRNS,TRNS,TRNS,TRNS,
+    TRNS,     FN4, FN5, FN6, FN7, TRNS,PPLS,PMNS,END, PGDN,DOWN,     TRNS,       PGUP,       TRNS,TRNS,TRNS,  
+    TRNS,TRNS,                    TRNS,                         TRNS,TRNS,  HOME,PGDN,END,   TRNS,     TRNS,TRNS
     
     )
 };
diff --git a/converter/next_usb/unimap.c b/converter/next_usb/unimap.c
new file mode 100644 (file)
index 0000000..f3cfcd4
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+Copyright 2016 Jun Wako <wakojun@gmail.com>
+
+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 <http://www.gnu.org/licenses/>.
+*/
+#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 (file)
index 0000000..9a5faf5
--- /dev/null
@@ -0,0 +1,86 @@
+/*
+Copyright 2016 Jun Wako <wakojun@gmail.com>
+
+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 <http://www.gnu.org/licenses/>.
+*/
+#ifndef UNIMAP_COMMON_H
+#define UNIMAP_COMMON_H
+
+#include <stdint.h>
+#include <avr/pgmspace.h>
+#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
index 3b6540b1f7e9a9810b6db0714d654482840800a5..2dd5b2218de38a8e39fe59376e52e3bebefa2fe7 100644 (file)
@@ -208,4 +208,65 @@ enum unimap_position_codes {
     UNIMAP_NO,              // 0x80
 };
 
+/*
+ * Short names
+ */
+#define UNIMAP_LCTL UNIMAP_LCTRL
+#define UNIMAP_RCTL UNIMAP_RCTRL
+#define UNIMAP_LSFT UNIMAP_LSHIFT
+#define UNIMAP_RSFT UNIMAP_RSHIFT
+#define UNIMAP_ESC  UNIMAP_ESCAPE
+#define UNIMAP_BSPC UNIMAP_BSPACE
+#define UNIMAP_ENT  UNIMAP_ENTER
+#define UNIMAP_DEL  UNIMAP_DELETE
+#define UNIMAP_INS  UNIMAP_INSERT
+#define UNIMAP_CAPS UNIMAP_CAPSLOCK
+#define UNIMAP_CLCK UNIMAP_CAPSLOCK
+#define UNIMAP_RGHT UNIMAP_RIGHT
+#define UNIMAP_PGDN UNIMAP_PGDOWN
+#define UNIMAP_PSCR UNIMAP_PSCREEN
+#define UNIMAP_SLCK UNIMAP_SCROLLLOCK
+#define UNIMAP_PAUS UNIMAP_PAUSE
+#define UNIMAP_BRK  UNIMAP_PAUSE
+#define UNIMAP_NLCK UNIMAP_NUMLOCK
+#define UNIMAP_SPC  UNIMAP_SPACE
+#define UNIMAP_MINS UNIMAP_MINUS
+#define UNIMAP_EQL  UNIMAP_EQUAL
+#define UNIMAP_GRV  UNIMAP_GRAVE
+#define UNIMAP_RBRC UNIMAP_RBRACKET
+#define UNIMAP_LBRC UNIMAP_LBRACKET
+#define UNIMAP_COMM UNIMAP_COMMA
+#define UNIMAP_BSLS UNIMAP_BSLASH
+#define UNIMAP_SLSH UNIMAP_SLASH
+#define UNIMAP_SCLN UNIMAP_SCOLON
+#define UNIMAP_QUOT UNIMAP_QUOTE
+#define UNIMAP_APP  UNIMAP_APPLICATION
+#define UNIMAP_NUHS UNIMAP_NONUS_HASH
+#define UNIMAP_NUBS UNIMAP_NONUS_BSLASH
+/* Japanese specific */
+#define UNIMAP_ZKHK UNIMAP_GRAVE
+/* Keypad */
+#define UNIMAP_P1   UNIMAP_KP_1
+#define UNIMAP_P2   UNIMAP_KP_2
+#define UNIMAP_P3   UNIMAP_KP_3
+#define UNIMAP_P4   UNIMAP_KP_4
+#define UNIMAP_P5   UNIMAP_KP_5
+#define UNIMAP_P6   UNIMAP_KP_6
+#define UNIMAP_P7   UNIMAP_KP_7
+#define UNIMAP_P8   UNIMAP_KP_8
+#define UNIMAP_P9   UNIMAP_KP_9
+#define UNIMAP_P0   UNIMAP_KP_0
+#define UNIMAP_PDOT UNIMAP_KP_DOT
+#define UNIMAP_PCMM UNIMAP_KP_COMMA
+#define UNIMAP_PSLS UNIMAP_KP_SLASH
+#define UNIMAP_PAST UNIMAP_KP_ASTERISK
+#define UNIMAP_PMNS UNIMAP_KP_MINUS
+#define UNIMAP_PPLS UNIMAP_KP_PLUS
+#define UNIMAP_PEQL UNIMAP_KP_EQUAL
+#define UNIMAP_PENT UNIMAP_KP_ENTER
+/* Consumer Page */
+#define UNIMAP_MUTE UNIMAP_VOLUME_MUTE
+#define UNIMAP_VOLU UNIMAP_VOLUME_UP
+#define UNIMAP_VOLD UNIMAP_VOLUME_DOWN
+
 #endif
Imprint / Impressum