diff options
Diffstat (limited to 'keyboard/ergodox_ez')
-rw-r--r-- | keyboard/ergodox_ez/keymaps/german-manuneo/compile_keymap.py | 273 | ||||
-rw-r--r-- | keyboard/ergodox_ez/keymaps/german-manuneo/german-manuneo.hex | 2862 | ||||
-rw-r--r-- | keyboard/ergodox_ez/keymaps/german-manuneo/keymap.c | 1004 | ||||
-rw-r--r-- | keyboard/ergodox_ez/keymaps/german-manuneo/keymap.md | 52 |
4 files changed, 1651 insertions, 2540 deletions
diff --git a/keyboard/ergodox_ez/keymaps/german-manuneo/compile_keymap.py b/keyboard/ergodox_ez/keymaps/german-manuneo/compile_keymap.py index af6867222..3d2667276 100644 --- a/keyboard/ergodox_ez/keymaps/german-manuneo/compile_keymap.py +++ b/keyboard/ergodox_ez/keymaps/german-manuneo/compile_keymap.py @@ -20,6 +20,7 @@ import sys import json import unicodedata import collections +import itertools as it PY2 = sys.version_info.major == 2 @@ -27,11 +28,6 @@ if PY2: chr = unichr -BASEPATH = os.path.abspath(os.path.join( - os.path.dirname(__file__), "..", ".." -)) - - KEYBOARD_LAYOUTS = { # These map positions in the parsed layout to # positions in the KEYMAP MATRIX @@ -73,34 +69,33 @@ BLANK_LAYOUTS = [ # Wide Layout """ -.--------------------------------------------. .--------------------------------------------. -| | | | | | | | ! | | | | | | | -!------+-----+-----+-----+-----+-------------! !-------+-----+-----+-----+-----+-----+------! -| | | | | | | | ! | | | | | | | -!------+-----+-----+-----x-----x-----! ! ! !-----x-----x-----+-----+-----+------! -| | | | | | |-------! !-------! | | | | | | -!------+-----+-----+-----x-----x-----! ! ! !-----x-----x-----+-----+-----+------! -| | | | | | | | ! | | | | | | | -'------+-----+-----+-----+-----+-------------' '-------------+-----+-----+-----+-----+------' - | | | | | | ! | | | | | - '-----------------------------' '-----------------------------' - .---------------. .---------------. - | | | ! | | - .-------+-------+-------! !-------+-------+-------. - ! ! | | ! | ! ! - ! ! !-------! !-------! ! ! - | | | | ! | | | - '-----------------------' '-----------------------' +.---------------------------------------------. .---------------------------------------------. +| | | | | | | | ! | | | | | | | +!-------+-----+-----+-----+-----+-------------! !-------+-----+-----+-----+-----+-----+-------! +| | | | | | | | ! | | | | | | | +!-------+-----+-----+-----x-----x-----! ! ! !-----x-----x-----+-----+-----+-------! +| | | | | | |-------! !-------! | | | | | | +!-------+-----+-----+-----x-----x-----! ! ! !-----x-----x-----+-----+-----+-------! +| | | | | | | | ! | | | | | | | +'-------+-----+-----+-----+-----+-------------' '-------------+-----+-----+-----+-----+-------' + | | | | | | ! | | | | | + '------------------------------' '------------------------------' + .---------------. .---------------. + | | | ! | | + .-------+-------+-------! !-------+-------+-------. + ! ! | | ! | ! ! + ! ! !-------! !-------! ! ! + | | | | ! | | | + '-----------------------' '-----------------------' """, ] DEFAULT_CONFIG = { - "includes_basedir": "quantum/", "keymaps_includes": [ "keymap_common.h", ], - 'filler': "-+.':x", + 'filler': "-+.'!:x", 'separator': "|", 'default_key_prefix': ["KC_"], } @@ -114,31 +109,34 @@ SECTIONS = [ # Markdown Parsing +ONELINE_COMMENT_RE = re.compile(r""" + ^ # comment must be at the start of the line + \s* # arbitrary whitespace + // # start of the comment + (.*) # the comment + $ # until the end of line +""", re.MULTILINE | re.VERBOSE +) + +INLINE_COMMENT_RE = re.compile(r""" + ([\,\"\[\]\{\}\d]) # anythig that might end a expression + \s+ # comment must be preceded by whitespace + // # start of the comment + \s # and succeded by whitespace + (?:[^\"\]\}\{\[]*) # the comment (except things which might be json) + $ # until the end of line +""", re.MULTILINE | re.VERBOSE) + +TRAILING_COMMA_RE = re.compile(r""" + , # the comma + (?:\s*) # arbitrary whitespace + $ # only works if the trailing comma is followed by newline + (\s*) # arbitrary whitespace + ([\]\}]) # end of an array or object +""", re.MULTILINE | re.VERBOSE) + + def loads(raw_data): - ONELINE_COMMENT_RE = re.compile(r""" - ^ # comment must be at the start of the line - \s* # arbitrary whitespace - // # start of the comment - (.*) # the comment - $ # until the end of line - """, re.MULTILINE | re.VERBOSE) - - INLINE_COMMENT_RE = re.compile(r""" - ([\,\"\[\]\{\}\d]) # anythig that might end a expression - \s+ # comment must be preceded by whitespace - // # start of the comment - \s # and succeded by whitespace - (?:[^\"\]\}\{\[]*) # the comment (except things which might be json) - $ # until the end of line - """, re.MULTILINE | re.VERBOSE) - - TRAILING_COMMA_RE = re.compile(r""" - , # the comma - (?:\s*) # arbitrary whitespace - $ # only works if the trailing comma is followed by newline - (\s*) # arbitrary whitespace - ([\]\}]) # end of an array or object - """, re.MULTILINE | re.VERBOSE) if isinstance(raw_data, bytes): raw_data = raw_data.decode('utf-8') @@ -164,6 +162,8 @@ def parse_config(path): name = line[2:] elif line.startswith("## "): name = line[3:] + else: + name = "" name = name.strip().replace(" ", "_").lower() if name in SECTIONS: @@ -209,6 +209,7 @@ def parse_config(path): pass end_section() + assert 'layout' in config return config # header file parsing @@ -218,16 +219,15 @@ IF0_RE = re.compile(r""" #if 0 $.*? #endif - """, re.MULTILINE | re.DOTALL | re.VERBOSE -) +""", re.MULTILINE | re.DOTALL | re.VERBOSE) COMMENT_RE = re.compile(r""" /\* .*? \*/" - """, re.MULTILINE | re.DOTALL | re.VERBOSE -) +""", re.MULTILINE | re.DOTALL | re.VERBOSE) + def read_header_file(path): with io.open(path, encoding="utf-8") as fh: @@ -237,7 +237,7 @@ def read_header_file(path): return data -def regex_partial(re_str_fmt, flags=re.MULTILINE | re.DOTALL | re.VERBOSE): +def regex_partial(re_str_fmt, flags): def partial(*args, **kwargs): re_str = re_str_fmt.format(*args, **kwargs) return re.compile(re_str, flags) @@ -251,8 +251,7 @@ KEYDEF_REP = regex_partial(r""" (?:{}) # the prefixes (?:\w+) # the key name ) # capture group end - """ -) +""", re.MULTILINE | re.DOTALL | re.VERBOSE) ENUM_RE = re.compile(r""" @@ -264,8 +263,7 @@ ENUM_RE = re.compile(r""" \} ; ) # capture group end - """, re.MULTILINE | re.DOTALL | re.VERBOSE -) +""", re.MULTILINE | re.DOTALL | re.VERBOSE) ENUM_KEY_REP = regex_partial(r""" @@ -273,8 +271,8 @@ ENUM_KEY_REP = regex_partial(r""" {} # the prefixes \w+ # the key name ) # capture group end - """ -) +""", re.MULTILINE | re.DOTALL | re.VERBOSE) + def parse_keydefs(config, data): prefix_options = "|".join(config['key_prefixes']) @@ -289,26 +287,31 @@ def parse_keydefs(config, data): yield key_match.groups()[0] -def parse_valid_keys(config): - valid_keycodes = set() - paths = [ - os.path.join(BASEPATH, "tmk_core", "common", "keycode.h") - ] + [ - os.path.join( - BASEPATH, config['includes_dir'], include_path - ) for include_path in config['keymaps_includes'] - ] +def parse_valid_keys(config, out_path): + basepath = os.path.abspath(os.path.join(os.path.dirname(out_path))) + dirpaths = [] + subpaths = [] + while len(subpaths) < 6: + path = os.path.join(basepath, *subpaths) + dirpaths.append(path) + dirpaths.append(os.path.join(path, "tmk_core", "common")) + dirpaths.append(os.path.join(path, "quantum")) + subpaths.append('..') + + includes = set(config['keymaps_includes']) + includes.add("keycode.h") - for path in paths: - path = path.replace("/", os.sep) - # the config always uses forward slashe - if os.path.exists(path): - header_data = read_header_file(path) + valid_keycodes = set() + for dirpath, include in it.product(dirpaths, includes): + include_path = os.path.join(dirpath, include) + if os.path.exists(include_path): + header_data = read_header_file(include_path) valid_keycodes.update( parse_keydefs(config, header_data) ) return valid_keycodes + # Keymap Parsing def iter_raw_codes(layer_lines, filler, separator): @@ -325,6 +328,7 @@ def iter_raw_codes(layer_lines, filler, separator): def iter_indexed_codes(raw_codes, key_indexes): key_rows = {} key_indexes_flat = [] + for row_index, key_indexes in enumerate(key_indexes): for key_index in key_indexes: key_rows[key_index] = row_index @@ -384,8 +388,8 @@ def parse_code(raw_code, key_prefixes, valid_keycodes): return raw_code, None, None if MACRO_RE.match(raw_code): - code = macro_id = raw_code[2:-1] - return code, macro_id, None + macro_id = raw_code[2:-1] + return raw_code, macro_id, None if UNICODE_RE.match(raw_code): hex_code = raw_code[1:] @@ -404,10 +408,17 @@ def parse_keymap(config, key_indexes, layer_lines, valid_keycodes): layer_lines, config['filler'], config['separator'] )) indexed_codes = iter_indexed_codes(raw_codes, key_indexes) + key_prefixes = config['key_prefixes'] for raw_code, key_index, row_index in indexed_codes: code, macro_id, uc_hex = parse_code( - raw_code, config['key_prefixes'], valid_keycodes + raw_code, key_prefixes, valid_keycodes + ) + # TODO: line numbers for invalid codes + err_msg = "Could not parse key '{}' on row {}".format( + raw_code, row_index ) + assert code is not None, err_msg + # print(repr(raw_code), repr(code), macro_id, uc_hex) if macro_id: config['macro_ids'].add(macro_id) if uc_hex: @@ -482,9 +493,64 @@ void matrix_scan_user(void) { MACROCODE = """ #define UC_MODE_WIN 0 #define UC_MODE_LINUX 1 +#define UC_MODE_OSX 2 +// TODO: allow default mode to be configured static uint16_t unicode_mode = UC_MODE_WIN; +uint16_t hextokeycode(uint8_t hex) {{ + if (hex == 0x0) {{ + return KC_P0; + }} + if (hex < 0xA) {{ + return KC_P1 + (hex - 0x1); + }} + return KC_A + (hex - 0xA); +}} + +void unicode_action_function(uint16_t hi, uint16_t lo) {{ + switch (unicode_mode) {{ + case UC_MODE_WIN: + register_code(KC_LALT); + + register_code(KC_PPLS); + unregister_code(KC_PPLS); + + register_code(hextokeycode((hi & 0xF0) >> 4)); + unregister_code(hextokeycode((hi & 0xF0) >> 4)); + register_code(hextokeycode((hi & 0x0F))); + unregister_code(hextokeycode((hi & 0x0F))); + register_code(hextokeycode((lo & 0xF0) >> 4)); + unregister_code(hextokeycode((lo & 0xF0) >> 4)); + register_code(hextokeycode((lo & 0x0F))); + unregister_code(hextokeycode((lo & 0x0F))); + + unregister_code(KC_LALT); + break; + case UC_MODE_LINUX: + register_code(KC_LCTL); + register_code(KC_LSFT); + + register_code(KC_U); + unregister_code(KC_U); + + register_code(hextokeycode((hi & 0xF0) >> 4)); + unregister_code(hextokeycode((hi & 0xF0) >> 4)); + register_code(hextokeycode((hi & 0x0F))); + unregister_code(hextokeycode((hi & 0x0F))); + register_code(hextokeycode((lo & 0xF0) >> 4)); + unregister_code(hextokeycode((lo & 0xF0) >> 4)); + register_code(hextokeycode((lo & 0x0F))); + unregister_code(hextokeycode((lo & 0x0F))); + + unregister_code(KC_LCTL); + unregister_code(KC_LSFT); + break; + case UC_MODE_OSX: + break; + }} +}} + const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {{ if (!record->event.pressed) {{ return MACRO_NONE; @@ -494,57 +560,35 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {{ case UM: unicode_mode = (unicode_mode + 1) % 2; break; - {macro_cases} +{macro_cases} +{unicode_macro_cases} default: break; }} - if (unicode_mode == UC_MODE_WIN) {{ - switch(id) {{ - {win_macro_cases} - default: - break; - }} - }} else if (unicode_mode == UC_MODE_LINUX) {{ - switch(id) {{ - {linux_macro_cases} - default: - break; - }} - }} return MACRO_NONE; }}; """ -WIN_UNICODE_MACRO_TEMPLATE = """ -case {0}: - return MACRODOWN( - D(LALT), T(KP_PLUS), {1}, U(LALT), END - ); -""" -LINUX_UNICODE_MACRO_TEMPLATE = """ -case {0}: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), {1}, T(KP_ENTER), END - ); -""" +UNICODE_MACRO_TEMPLATE = """ +case {macro_id}: + unicode_action_function(0x{hi:02x}, 0x{lo:02x}); + break; +""".strip() -def macro_cases(config, mode): - if mode == 'win': - template = WIN_UNICODE_MACRO_TEMPLATE - elif mode == 'linux': - template = LINUX_UNICODE_MACRO_TEMPLATE - else: - raise ValueError("Invalid mode: ", mode) - template = template.strip() +def unicode_macro_cases(config): for macro_id, uc_hex in config['unicode_macros'].items(): + hi = int(uc_hex, 16) >> 8 + lo = int(uc_hex, 16) & 0xFF unimacro_keys = ", ".join( "T({})".format( "KP_" + digit if digit.isdigit() else digit ) for digit in uc_hex ) - yield template.format(macro_id, unimacro_keys) + yield UNICODE_MACRO_TEMPLATE.format( + macro_id=macro_id, hi=hi, lo=lo + ) def iter_keymap_lines(keymap): @@ -599,8 +643,7 @@ def iter_keymap_parts(config, keymaps): # macros yield MACROCODE.format( macro_cases="", - win_macro_cases="\n".join(macro_cases(config, mode='win')), - linux_macro_cases="\n".join(macro_cases(config, mode='linux')), + unicode_macro_cases="\n".join(unicode_macro_cases(config)), ) # TODO: dynamically create blinking lights @@ -624,7 +667,7 @@ def main(argv=sys.argv[1:]): out_path = os.path.join(dirname, "keymap.c") config = parse_config(in_path) - valid_keys = parse_valid_keys(config) + valid_keys = parse_valid_keys(config, out_path) keymaps = parse_keymaps(config, valid_keys) with io.open(out_path, mode="w", encoding="utf-8") as fh: diff --git a/keyboard/ergodox_ez/keymaps/german-manuneo/german-manuneo.hex b/keyboard/ergodox_ez/keymaps/german-manuneo/german-manuneo.hex index cb8b7fa8d..ee1d30967 100644 --- a/keyboard/ergodox_ez/keymaps/german-manuneo/german-manuneo.hex +++ b/keyboard/ergodox_ez/keymaps/german-manuneo/german-manuneo.hex @@ -1,1624 +1,1240 @@ -:100000000C94BD0F0C9401100C9401100C94011071
-:100010000C9401100C9401100C9401100C9401101C
-:100020000C9401100C9401100C94791B0C944B1C33
-:100030000C9401100C9401100C9401100C940110FC
-:100040000C9401100C94D6300C9401100C940110F7
-:100050000C9401100C94782A0C9401100C9401104B
-:100060000C9401100C9401100C9401100C940110CC
-:100070000C9401100C9401100C9401100C940110BC
-:100080000C9401100C9401100C9401100C940110AC
-:100090000C9401100C9401100C9401100C9401109C
-:1000A0000C9401100C9401100C940110AB107810FA
-:1000B0006310BD10E4101711F910FF1014113E1158
-:1000C0003511021138114E10F3102911321175102B
-:1000D0006C10BA10B11099106F103010C6101A11B0
-:1000E00023112F119F10CF10AE1048102011ED10CA
-:1000F0009010A5109C108410261193103910F01048
-:100100008A10C9106C12B410661054107E107B1047
-:10011000D210A2100E113F108D10B7102D10C0106C
-:100120000B111111DB105D10F6104B1072105710EF
-:10013000CC10FC103B113310A810C3100511D510C2
-:100140005A102C11EA10451096106010E110691039
-:1001500008114210D810E7103610511041111D112E
-:1001600081103C10DE108710D311A0118B11E51106
-:100170000C123F12211227123C1266125D122A1233
-:10018000601276111B1251125A129D119411E21134
-:10019000D911C11197115811EE1142124B12571279
-:1001A000C711F711D611701148121512B811CD11DF
-:1001B000C411AC114E12BB1161111812B211F11120
-:1001C0006F12DC118E117C11A611A311FA11CA1144
-:1001D00036126711B511DF115511E81133123912BA
-:1001E000031285111E1273119A117F11F41124123A
-:1001F00063125B11D011EB112D12FD1182115412FB
-:1002000012126D11BE1188110912911130126A116A
-:1002100000120F125E11791169124512A9116411B1
-:100220000612AF11B01CD21CBD1DD21CBD1D141D69
-:10023000371DBD1D8C1D9F1D8C208C20BA20BA201F
-:10024000FC203821382338235021382347224722E5
-:10025000122338233823262301E001E10118021874
-:1002600002E002E10162026201620262010502052E
-:1002700001070207015802580001E001E1011802DC
-:100280001802E002E101620262015B025B016102AD
-:1002900061015C025C015802580001E001E10118B3
-:1002A000021802E002E1015A025A01620262016090
-:1002B0000260015E025E015802580001E001E101A6
-:1002C00018021802E002E101620262015B025B01B6
-:1002D000610261015B025B015802580001E001E12B
-:1002E0000118021802E002E101620262015B025B96
-:1002F00001610261015D025D015802580001E001E7
-:10030000E10118021802E002E101620262015B02EF
-:100310005B0161026101060206015802580001E01A
-:1003200001E10118021802E002E101620262015BD0
-:10033000025B01040204015D025D015802580001E4
-:10034000E001E10118021802E002E1015A025A013B
-:10035000620262015F025F0109020901580258004E
-:1003600001E001E10118021802E002E1016202620B
-:10037000015B025B0161026101050205015802583F
-:100380000001E001E10118021802E002E10162024D
-:1003900062015B025B010502050161026101580215
-:1003A000580001E001E10118021802E002E10162D7
-:1003B0000262015B025B016102610160026001583F
-:1003C00002580001E001E10118021802E002E10117
-:1003D000620262015B025B01060206015F025F01CD
-:1003E0005802580001E001E10118021802E002E1A0
-:1003F0000162026201620262010502050106020653
-:10040000015802580001E001E10118021802E0025F
-:10041000E101620262015B025B01040204015C0211
-:100420005C015802580001E001E10118021802E0E5
-:1004300002E1015A025A015A025A01620262016241
-:100440000262015802580001E001E101180218029D
-:10045000E002E101620262015B025B01040204014D
-:100460005F025F015802580001E001E10118021823
-:1004700002E002E1015A025A015A025A015E025E8A
-:1004800001620262015802580001E001E101180214
-:100490001802E002E101620262015B025B010602F6
-:1004A00006015D025D015802580001E001E10118FA
-:1004B000021802E002E1015A025A015A025A01628C
-:1004C000026201610261015802580001E001E1018C
-:1004D00018021802E002E1015A025A0162026201A6
-:1004E0005F025F01620262015802580001E001E10F
-:1004F0000118021802E002E1015A025A0162026286
-:10050000015F025F01600260015802580001E001D2
-:10051000E10118021802E002E101620262015B02DD
-:100520005B01610261015F025F015802580001E056
-:1005300001E10118021802E002E101620262015BBE
-:10054000025B01610261015A025A0158025800011E
-:10055000E001E10118021802E002E1015A025A0129
-:1005600062026201600260015F025F01580258008E
-:1005700001E001E10118021802E002E101620262F9
-:10058000015B025B01610261015902590158025885
-:100590000001E001E10118021802E002E1015A0243
-:1005A0005A01620262016002600160026001580249
-:1005B000580001E001E10118021802E002E10162C5
-:1005C0000262015B025B01610261010402040158E5
-:1005D00002580001E001E10118021802E002E10105
-:1005E000620262015B025B0105020501060206016F
-:1005F0005802580001E001E10118021802E002E18E
-:1006000001620262015B025B01050205015C025CA2
-:10061000015802580001E001E10118021802E0024D
-:10062000E1015A025A01620262015F025F01610246
-:1006300061015802580001E001E10118021802E0CE
-:1006400002E1015A025A015902590161026101593C
-:100650000259015802580001E001E1011802180294
-:10066000E002E1015A025A015A025A016202620191
-:100670005D025D015802580001E001E10118021815
-:1006800002E002E10162026201620262010502050A
-:10069000015B025B015802580001E001E101180210
-:1006A0001802E002E10162026201620262010502D7
-:1006B0000501080208015802580001E001E1011893
-:1006C000021802E002E101620262016202620105B7
-:1006D000020501590259015802580001E001E101E7
-:1006E00018021802E002E1015A025A015A025A01A4
-:1006F000620262015B025B015802580001E001E105
-:100700000118021802E002E1015A025A0162026273
-:10071000015F025F015D025D015802580001E001C6
-:10072000E10118021802E002E101620262015B02CB
-:100730005B01060206015C025C015802580001E000
-:1007400001E10118021802E002E101620262015BAC
-:10075000025B01610261015E025E01580258000104
-:10076000E001E10118021802E002E1015A025A0117
-:100770006202620160026001590259015802580088
-:1007800001E001E10118021802E002E101620262E7
-:10079000015B025B01060206016102610158025819
-:1007A0000001E001E10118021802E002E101620229
-:1007B00062015B025B01040204015B025B015802FF
-:1007C000580001E001E10118021802E002E1015ABB
-:1007D000025A016202620160026001620262015813
-:1007E00002580001E001E10118021802E002E101F3
-:1007F0006202620162026201070207015F025F0199
-:100800005802580001E001E10118021802E002E17B
-:10081000015A025A015A025A0162026201600260E0
-:10082000015802580001E001E10118021802E0023B
-:10083000E101620262015B025B0161026101090286
-:1008400009015802580001E001E10118021802E014
-:1008500002E1015A025A015A025A01590259010889
-:100860000208015802580001E001E10118021802D3
-:10087000E002E101620262015B025B010602060125
-:100880005E025E015802580001E001E10118021801
-:1008900002E002E101620262015B025B0104020408
-:1008A000015E025E015802580001E001E1011802F8
-:1008B0001802E002E101620262015B025B010502D3
-:1008C0000501590259015802580001E001E10118DF
-:1008D000021802E002E1015A025A015A025A015C6E
-:1008E000025C015B025B015802580001E001E1017A
-:1008F00018021802E002E1015A025A016202620182
-:10090000600260015A025A015802580001E001E1F8
-:100910000118021802E002E101620262015B025B5F
-:1009200001050205015F025F015802580001E00164
-:10093000E10118021802E002E101620262015B02B9
-:100940005B0105020501600260015802580001E0E8
-:1009500001E10118021802E002E101620262015B9A
-:10096000025B01610261010802080158025800019E
-:10097000E001E10118021802E002E10162026201F5
-:100980005B025B01060206015A025A015802580036
-:1009900001E001E10118021802E002E101620262D5
-:1009A000015B025B01040204016202620158025809
-:1009B0000001E001E10118021802E002E1015A021F
-:1009C0005A01620262015F025F015F025F01580229
-:1009D000580001E001E10118021802E002E10162A1
-:1009E0000262015B025B0105020501040204015879
-:1009F00002580001E001E10118021802E002E101E1
-:100A0000620262015B025B01050205015D025D019C
-:100A10005802580001E001E10118021802E002E169
-:100A200001620262015B025B01050205015E025E7A
-:100A3000015802580001E001E10118021802E00229
-:100A4000E101620262015B025B010502050107022E
-:100A500007015802580001E001E10118021802E004
-:100A600002E1015A025A01590259015D025D015C1D
-:100A7000025C015802580001E001E101180218026D
-:100A8000E002E101620262015B025B010502050115
-:100A90005B025B015802580001E001E101180218F5
-:100AA00002E002E1015A025A01590259015D025D58
-:100AB00001610261015802580001E001E1011802E0
-:100AC0001802E002E101620262015B025B010602C0
-:100AD0000601590259015802580001E001E10118CC
-:100AE000021802E002E101620262015B025B0106A0
-:100AF0000206015B025B015802580001E001E101BE
-:100B000018021802E002E10162026201620262015F
-:100B1000090209015F025F015802580001E001E18A
-:100B20000118021802E002E101620262015B025B4D
-:100B30000161026101070207015802580001E0014A
-:100B4000E10118021802E002E1015A025A016202B0
-:100B50006201600260015C025C015802580001E021
-:100B600001E10118021802E002E101620262015B88
-:100B7000025B010402040160026001580258000196
-:100B8000E001E10118021802E002E10162026201E3
-:100B90005B025B010402040161026101580258001A
-:100BA00001E001E10118021802E002E101620262C3
-:100BB0000162026201050205015A025A01580258F7
-:100BC0000001E001E10118021802E002E101620205
-:100BD00062015B025B0106020601620262015802C9
-:100BE000580001E001E10118021802E002E1015A97
-:100BF000025A0159025901610261015B025B01580D
-:100C000002580001E001E10118021802E002E101CE
-:100C10005A025A01620262015F025F015E025E01D6
-:100C20005802580001E001E10118021802E002E157
-:100C3000015A025A0159025901610261015A025ACC
-:100C4000015802580001E001E10118021802E00217
-:100C5000E1015A025A01620262015F025F015C0215
-:100C60005C015802580001E001E10118021802E09D
-:100C700002E1015A025A01620262016002600161EE
-:100C80000261015802580001E001E1011802180256
-:100C9000E002E101620262015B025B010602060101
-:100CA000600260015802580001E001E101180218D9
-:100CB00002E002E1015A025A01590259015D025D46
-:100CC000015D025D015802580001E001E1011802D6
-:100CD0001802E002E101620262015B025B01610253
-:100CE0006101610261015802580001E001E101184F
-:100CF000021802E002E1015A025A01620262016036
-:100D00000260015D025D015802580001E001E1014D
-:100D100018021802E002E101620262015B025B015B
-:100D2000050205015A025A015802580001E001E18A
-:100D30000118021802E002E101620262016202622D
-:100D40000105020501610261015802580001E0013C
-:100D5000E10118021802E002E1015A025A015A02A6
-:100D60005A01620262015C025C015802580001E013
-:100D700001E10118021802E002E101620262015B76
-:100D8000025B010502050108020801580258000132
-:100D9000E001E10118021802E002E1015A025A01E1
-:100DA000590259015D025D015B025B015802580066
-:100DB00001E001E10118021802E002E101620262B1
-:100DC000015B025B0105020501050205015802589D
-:100DD0000001E001E10118021802E002E1015A02FB
-:100DE0005A01590259015D025D01050205015802CF
-:100DF000580001E001E10118021802E002E1015A85
-:100E0000025A0162026201600260015B025B0158EA
-:100E100002580001E001E10118021802E002E101BC
-:100E2000620262015B025B01040204015902590182
-:100E30005802580001E001E10118021802E002E145
-:100E4000015A025A015902590161026101620262AA
-:100E5000015802580001E001E10118021802E00205
-:100E6000E101620262015B025B0105020501090208
-:100E700009015802580001E201570257016202625B
-:100E800001620262010502050107020702E2000198
-:100E9000E20157025701620262015B025B016102DB
-:100EA00061015C025C02E20001E201570257015A53
-:100EB000025A0162026201600260015E025E02E2A9
-:100EC0000001E20157025701620262015B025B010D
-:100ED000610261015B025B02E20001E2015702571D
-:100EE00001620262015B025B01610261015D025D00
-:100EF00002E20001E20157025701620262015B0255
-:100F00005B016102610106020602E20001E2015793
-:100F1000025701620262015B025B01040204015D8F
-:100F2000025D02E20001E201570257015A025A0132
-:100F3000620262015F025F0109020902E20001E24E
-:100F40000157025701620262015B025B01610261AB
-:100F50000105020502E20001E201570257016202A7
-:100F600062015B025B010502050161026102E200B0
-:100F700001E20157025701620262015B025B0161FB
-:100F800002610160026002E20001E20157025701C2
-:100F9000620262015B025B01060206015F025F0200
-:100FA000E20001E20157025701620262016202623D
-:100FB000010502050106020602E20001E2015702F4
-:100FC0005701620262015B025B01040204015C02E0
-:100FD0005C02E20001E201570257015A025A015A2B
-:100FE000025A016202620162026202E20001E2014F
-:100FF00057025701620262015B025B0104020401B5
-:101000005F025F02E20001E201570257015A025AF1
-:10101000015A025A015E025E0162026202E20001AE
-:10102000E20157025701620262015B025B010602A4
-:1010300006015D025D02E20001E201570257015A1A
-:10104000025A015A025A016202620161026102E21D
-:101050000001E201570257015A025A01620262017D
-:101060005F025F0162026202E20001E20157025781
-:10107000015A025A01620262015F025F016002606E
-:1010800002E20001E20157025701620262015B02C3
-:101090005B01610261015F025F02E20001E2015750
-:1010A000025701620262015B025B01610261015A47
-:1010B000025A02E20001E201570257015A025A01A4
-:1010C00062026201600260015F025F02E20001E20F
-:1010D0000157025701620262015B025B016102611A
-:1010E0000159025902E20001E201570257015A0276
-:1010F0005A01620262016002600160026002E20065
-:1011000001E20157025701620262015B025B016169
-:1011100002610104020402E20001E20157025701E8
-:10112000620262015B025B01050205010602060222
-:10113000E20001E20157025701620262015B025BB9
-:1011400001050205015C025C02E20001E2015702B6
-:1011500057015A025A01620262015F025F01610295
-:101160006102E20001E201570257015A025A015995
-:101170000259016102610159025902E20001E201D2
-:10118000570257015A025A015A025A016202620179
-:101190005D025D02E20001E2015702570162026254
-:1011A0000162026201050205015B025B02E20001CD
-:1011B000E201570257016202620162026201050206
-:1011C000050108020802E20001E20157025701622C
-:1011D000026201620262010502050159025902E23E
-:1011E0000001E201570257015A025A015A025A01FC
-:1011F000620262015B025B02E20001E201570257F8
-:10120000015A025A01620262015F025F015D025DE2
-:1012100002E20001E20157025701620262015B0231
-:101220005B01060206015C025C02E20001E201577A
-:10123000025701620262015B025B01610261015EB1
-:10124000025E02E20001E201570257015A025A010E
-:10125000620262016002600159025902E20001E289
-:101260000157025701620262015B025B010602063E
-:101270000161026102E20001E201570257016202CC
-:1012800062015B025B01040204015B025B02E2009B
-:1012900001E201570257015A025A016202620160DB
-:1012A00002600162026202E20001E201570257019C
-:1012B0006202620162026201070207015F025F02CD
-:1012C000E20001E201570257015A025A015A025A3A
-:1012D000016202620160026002E20001E201570263
-:1012E0005701620262015B025B0161026101090256
-:1012F0000902E20001E201570257015A025A015A5B
-:10130000025A015902590108020802E20001E201F1
-:1013100057025701620262015B025B01060206018D
-:101320005E025E02E20001E20157025701620262C0
-:10133000015B025B01040204015E025E02E2000145
-:10134000E20157025701620262015B025B01050282
-:10135000050159025902E20001E201570257015A00
-:10136000025A015A025A015C025C015B025B02E212
-:101370000001E201570257015A025A01620262015A
-:10138000600260015A025A02E20001E2015702576C
-:1013900001620262015B025B01050205015F025FFF
-:1013A00002E20001E20157025701620262015B02A0
-:1013B0005B010502050160026002E20001E20157E3
-:1013C000025701620262015B025B01610261010876
-:1013D000020802E20001E2015702570162026201C3
-:1013E0005B025B01060206015A025A02E20001E2B8
-:1013F0000157025701620262015B025B01040204B1
-:101400000162026202E20001E201570257015A0240
-:101410005A01620262015F025F015F025F02E20045
-:1014200001E20157025701620262015B025B0105A2
-:1014300002050104020402E20001E2015702570121
-:10144000620262015B025B01050205015D025D0251
-:10145000E20001E20157025701620262015B025B96
-:1014600001050205015E025E02E20001E20157028F
-:101470005701620262015B025B010502050107027E
-:101480000702E20001E201570257015A025A0159CC
-:101490000259015D025D015C025C02E20001E201B1
-:1014A00057025701620262015B025B0105020501FE
-:1014B0005B025B02E20001E201570257015A025A45
-:1014C00001590259015D025D0161026102E2000100
-:1014D000E20157025701620262015B025B010602F0
-:1014E000060159025902E20001E201570257016266
-:1014F0000262015B025B01060206015B025B02E223
-:101500000001E201570257016202620162026201B8
-:10151000090209015F025F02E20001E2015702577E
-:1015200001620262015B025B016102610107020765
-:1015300002E20001E201570257015A025A01620217
-:101540006201600260015C025C02E20001E201579C
-:10155000025701620262015B025B01040204016046
-:10156000026002E20001E2015702570162026201D9
-:101570005B025B010402040161026102E20001E21C
-:10158000015702570162026201620262010502050F
-:10159000015A025A02E20001E201570257016202B7
-:1015A00062015B025B010602060162026202E20066
-:1015B00001E201570257015A025A015902590161C9
-:1015C0000261015B025B02E20001E2015702570186
-:1015D0005A025A01620262015F025F015E025E020C
-:1015E000E20001E201570257015A025A0159025919
-:1015F00001610261015A025A02E20001E20157024E
-:1016000057015A025A01620262015F025F015C02E5
-:101610005C02E20001E201570257015A025A0162DC
-:101620000262016002600161026102E20001E20106
-:1016300057025701620262015B025B01060206016A
-:1016400060026002E20001E201570257015A025AA9
-:1016500001590259015D025D015D025D02E2000176
-:10166000E20157025701620262015B025B01610203
-:10167000610161026102E20001E201570257015A71
-:10168000025A0162026201600260015D025D02E2D3
-:101690000001E20157025701620262015B025B0135
-:1016A000050205015A025A02E20001E201570257FF
-:1016B00001620262016202620105020501610261CA
-:1016C00002E20001E201570257015A025A015A028E
-:1016D0005A01620262015C025C02E20001E201570F
-:1016E000025701620262015B025B0105020501080B
-:1016F000020802E20001E201570257015A025A01B0
-:10170000590259015D025D015B025B02E20001E2E8
-:101710000157025701620262015B025B010502058B
-:101720000105020502E20001E201570257015A02D7
-:101730005A01590259015D025D0105020502E200EC
-:1017400001E201570257015A025A01620262016026
-:101750000260015B025B02E20001E20157025701F5
-:10176000620262015B025B01040204015902590238
-:10177000E20001E201570257015A025A0159025987
-:10178000016102610162026202E20001E2015702AC
-:101790005701620262015B025B0105020501090259
-:1017A0000902E200055204520152035201000000F6
-:1017B0001E001B0018002F00010029001F0013004D
-:1017C0000C003300E300E1002000090004003400B5
-:1017D000E2002A0021001A0008000600E00065006F
-:1017E00022000A0012001900000049002E004A00E1
-:1017F00000004D00000002542E02025400002B0095
-:1018000000005E0023000B001600050000004C00E5
-:1018100024000D0011001000E2004B0025000E0016
-:101820001500360001002C0026000F0017003700BD
-:1018300050002800270014000700520051004E00FD
-:1018400035001C002D001D004F00000001000100AC
-:1018500001000100010000001E02300238020100F8
-:10186000010001001F026414380030000100010073
-:101870002002240223022702010001000100241497
-:1018800025140100010001000100271426140100A5
-:101890000000010001000100000001000000010043
-:1018A0000100010000000100000001000100310002
-:1018B00021022D1400000100010064002502220213
-:1018C000010001000100640226023602010001004D
-:1018D00001000100301437023830010035021F02C8
-:1018E0003102553002300100010001002D020100DB
-:1018F0003D30000001000100010001000100000076
-:101900003A00010001000100010001003B0001005C
-:1019100001000100010001003C0001000100010084
-:10192000010001003D000100010001000100010073
-:101930003E00010001000100000001004400010020
-:1019400000000100000001004500010000005300FC
-:10195000000001003F000100010001000000010043
-:1019600040005F005C00590062000100410060001F
-:101970005D005A0085000100420061005E005B00CE
-:101980006300010043005500560057005800010055
-:101990006700540056005700580000000100010085
-:1019A00001000100010000004D30393001005B30C2
-:1019B00001000100513058303C303B300100010043
-:1019C0005030013014145D30010001004A305930AC
-:1019D00008145C30010001004930573004300030F9
-:1019E00000000100053001000000010000000100BE
-:1019F0000100010000000100000001004F305A30DA
-:101A000037301E02000001004E3001004B30010053
-:101A100001000100483056305430533001000100BD
-:101A20004C30010003303A30010001005230010017
-:101A3000010001000100010001000100010001009E
-:101A40000100000001000100010001000100000090
-:101A500042302030343001000100010046302E3089
-:101A6000263033300100010045302D301E3001009A
-:101A70000100010040302B30223001000100010044
-:101A80003F3025302C300100000001000100010032
-:101A90000000010000000100010001000000010041
-:101AA000000001004430233031301F3000000100BD
-:101AB000433035302A302930010001003E302730D4
-:101AC0003030010001000100413028303230010087
-:101AD0000100010047300100213001000100010038
-:101AE0000100363024302F300100000001000100D9
-:101AF0000100010001000000010008301B3001005E
-:101B000001000100010015300D301A300100010004
-:101B10000100143006300100010001000100123004
-:101B20000A3001000100010001000C3013300100F7
-:101B300000000100010001000000010000000100A0
-:101B400001000100000001000000010001000B3055
-:101B5000183007300000010001001C301130103037
-:101B60000100010001000E301730010001000100EA
-:101B700001000F30193001000100010001000100D7
-:101B8000093001000100010001001D300100163084
-:101B9000010000000100010001000100010000003F
-:101BA000010001000100010001000100010001002D
-:101BB000010001000100010001000100010001001D
-:101BC000010001000100010001000100010001000D
-:101BD00001000100010001000000010001000100FE
-:101BE00000000100000001000100010000000100F0
-:101BF00000000100010001000100010000000100DF
-:101C000001000100010001000100010001000100CC
-:101C100001000100010001000100010001000100BC
-:101C200001000100010001000100010001000100AC
-:101C3000010001000100010001000000010001009D
-:101C4000010001000100000001000100010001008D
-:101C5000010001000100010001000100010001007C
-:101C6000010001000100010001000100010001006C
-:101C7000010001000100010001000100010001005C
-:101C8000000001000100010000000100000001004F
-:101C9000010001000000010000000100010001003E
-:101CA000010001000000010001000100010001002D
-:101CB000010001000100010001000100010001001C
-:101CC000010001000100010001000100010001000C
-:101CD00001000100010001000100010001000100FC
-:101CE00001000000010001000100010001000000EE
-:101CF00001000100010001000100010001000100DC
-:101D000001000100010001000100010001000100CB
-:101D100001000100010001000100010001000100BB
-:101D200001000100010001000000010001000100AC
-:101D3000000001000000010001000100000001009E
-:101D4000000001000100010001000100000001008D
-:101D5000010001000100010001000100010001007B
-:101D6000010001000100010001000100010001006B
-:101D7000010001000100010001000100010001005B
-:101D800001000100010001000100000016034500F0
-:101D9000720067006F0044006F007800200045006B
-:101DA0005A00000016034500720067006F004400EF
-:101DB0006F007800200045005A0000000403090469
-:101DC00009026D00040100A0FA09040000010301EA
-:101DD0000100092111010001223F000705810308CC
-:101DE000000A090401000103010200092111010098
-:101DF00001224D000705820308000A0904020001C0
-:101E000003000000092111010001223600070583AB
-:101E10000308000A0904030001030000000921115E
-:101E2000010001223900070584031000011201108E
-:101E30000100000008EDFE0713010001020001058A
-:101E4000010906A101050719E029E71500250195FB
-:101E5000087501810205081901290595057501918B
-:101E600002950175039101050719002977150025D1
-:101E700001957875018102C005010980A1018502E3
-:101E800016010026B7001A01002AB7007510950147
-:101E90008100C0050C0901A1018503160100269CE3
-:101EA000021A01002A9C02751095018100C00501EB
-:101EB0000902A1010901A10005091901290515005F
-:101EC00025019505750181029501750381010501C3
-:101ED000093009311581257F950275088106093879
-:101EE0001581257F950175088106050C0A380215B4
-:101EF00081257F950175088106C0C005010906A1ED
-:101F000001050719E029E7150025019508750181EC
-:101F100002950175088101050819012905950575C6
-:101F20000191029501750391010507190029FF151B
-:101F30000025FF950675088100C000000000000024
-:101F40000000000000010204060A0F17202C3A4A84
-:101F50005D71879DB3C7DAE9F5FCFFFCF5E9DAC7E7
-:101F6000B39D87715D4A3A2C20170F0A06040201BF
-:101F70000000000000000000000011241FBECFEF91
-:101F8000DAE0DEBFCDBF04B603FE24C08091F001CD
-:101F90009091F101A091F201B091F3018730904B43
-:101FA000A740B04BB9F41092F0011092F1011092D9
-:101FB000F2011092F30114BE84B7877F84BF88E1D9
-:101FC0000FB6F89480936000109260000FBEE0E0BE
-:101FD000FFE3099511E0A0E0B1E0E0E3F5E602C01F
-:101FE00005900D92A433B107D9F711E0A4E3B1E055
-:101FF00001C01D92A03FB107E1F70E94BF180C94E9
-:1020000096320C940000FC018281811103C080E0B3
-:1020100090E008956E3561F42091340130913501DE
-:102020002F5F3F4F217033273093350120933401C8
-:1020300020913401309135012115310509F024C179
-:10204000862F90E08E35910528F4FC01EA5AFF4F67
-:102050000C944B3280E090E0089582E797E1089578
-:1020600089E597E1089580E497E1089587E297E193
-:1020700008958EE097E1089585EF96E108958CED3F
-:1020800096E1089583EC96E108958AEA96E1089531
-:1020900081E996E1089588E796E108958FE596E154
-:1020A000089586E496E108958DE296E1089584E12D
-:1020B00096E108958BEF95E1089582EE95E10895FC
-:1020C00089EC95E1089580EB95E1089587E995E124
-:1020D00008958EE795E1089585E695E108958CE4ED
-:1020E00095E1089583E395E108958AE195E10895E6
-:1020F00081E095E1089588EE94E108958FEC94E1F4
-:10210000089586EB94E108958DE994E1089584E8BB
-:1021100094E108958BE694E1089582E594E10895B1
-:1021200089E394E1089580E294E1089587E094E1E1
-:1021300008958EEE93E1089585ED93E108958CEB7B
-:1021400093E1089583EA93E108958AE893E108957D
-:1021500081E793E1089588E593E108958FE393E1A2
-:10216000089586E293E108958DE093E1089584EF68
-:1021700092E108958BED92E1089582EC92E1089549
-:1021800089EA92E1089580E992E1089587E792E172
-:1021900008958EE592E1089585E492E108958CE238
-:1021A00092E1089583E192E108958AEF91E1089523
-:1021B00081EE91E1089588EC91E108958FEA91E133
-:1021C000089586E991E108958DE791E1089584E607
-:1021D00091E108958BE491E1089582E391E10895FE
-:1021E00089E191E1089580E091E1089587EE90E121
-:1021F00008958EEC90E1089585EB90E108958CE9C7
-:1022000090E1089583E890E108958AE690E10895C9
-:1022100081E590E1089588E390E108958FE190E1F0
-:10222000089586E090E108958DEE9FE0089584ED95
-:102230009FE008958BEB9FE0089582EA9FE0089568
-:1022400089E89FE0089580E79FE0089587E59FE093
-:1022500008958EE39FE0089585E29FE008958CE065
-:102260009FE0089583EF9EE008958AED9EE0089533
-:1022700081EC9EE0089588EA9EE008958FE89EE054
-:10228000089586E79EE008952130310509F0BFCE1C
-:10229000862F90E08E35910528F4FC01EC54FF4F19
-:1022A0000C944B3280E090E0089584E39EE0089522
-:1022B00083E19EE0089582EF9DE0089581ED9DE029
-:1022C000089580EB9DE008958FE89DE008958EE6E7
-:1022D0009DE008958DE49DE008958CE29DE00895D1
-:1022E0008BE09DE008958AEE9CE0089589EC9CE0E7
-:1022F000089588EA9CE0089587E89CE0089586E6C2
-:102300009CE0089585E49CE0089584E29CE00895B3
-:1023100083E09CE0089582EE9BE0089581EC9BE0D1
-:10232000089580EA9BE008958FE79BE008958EE58D
-:102330009BE008958DE39BE008958CE19BE0089578
-:102340008BEF9AE008958AED9AE0089589EB9AE080
-:10235000089588E99AE0089587E79AE0089586E568
-:102360009AE0089585E39AE0089584E19AE008955B
-:1023700083EF99E0089582ED99E0089581EB99E06B
-:10238000089580E999E008958FE699E008958EE434
-:1023900099E008958DE299E008958CE099E0089520
-:1023A0008BEE98E008958AEC98E0089589EA98E029
-:1023B000089588E898E0089587E698E0089586E40F
-:1023C00098E0089585E298E0089584E098E0089503
-:1023D00083EE97E0089582EC97E0089581EA97E014
-:1023E000089580E897E008958FE597E008958EE3DB
-:1023F00097E008958DE197E008958CEF96E00895B9
-:102400008BED96E008958AEB96E0089589E996E0D1
-:10241000089588E796E0089587E596E0089586E3B5
-:1024200096E0089585E196E0089584EF95E008959B
-:1024300083ED95E0089582EB95E0089581E995E0BC
-:10244000089580E795E008958FE495E008958EE281
-:1024500095E008958DE095E008958CEE94E0089560
-:102460008BEC94E008958AEA94E0089589E894E07A
-:10247000089588E694E0089587E494E0089586E25C
-:1024800094E0089585E094E0089584EE93E0089543
-:1024900083EC93E0089582EA93E0089581E893E065
-:1024A000089580E693E008958FE393E008958EE128
-:1024B00093E008958DEF92E008958CED92E00895F9
-:1024C0008BEB92E008958AE992E0089589E792E023
-:1024D000089588E592E008958BE897E1089585E5F1
-:1024E0009EE0089508956091B3017091B4018091C8
-:1024F000B5019091B6010E94A42956985E9825983E
-:102500002D9826982E9827982F988330A9F028F494
-:10251000813051F0823069F012C0843041F0853052
-:1025200071F4259A2D9A08C0259A2D9A0895259A16
-:102530002D9A269A2E9A0895279A2F9A089556989A
-:102540005E9808950C94731256985E9825982D986D
-:1025500026982E9827982F988FEF90E090938900D7
-:102560008093880090938B0080938A0090938D00D5
-:1025700080938C00259A2D9A2FEF80E792E02150CE
-:1025800080409040E1F700C00000269A2E9A2FEF7D
-:1025900080E792E0215080409040E1F700C00000C9
-:1025A000279A2F9A2FEF80E792E0215080409040A9
-:1025B000E1F700C0000025982D982FEF80E792E00A
-:1025C000215080409040E1F700C0000026982E98EE
-:1025D0002FEF80E792E0215080409040E1F700C06B
-:1025E000000027982F9856985E9825982D98269841
-:1025F0002E9827982F98089589EA8093800089E083
-:102600008093810024982C983F988AB18F748AB95E
-:102610006E98479A8BB1806B8BB9769A0E94A41200
-:102620000C94721280E28093000180913601811136
-:102630000EC00E94611381E0809336012FEF83ED7D
-:1026400090E3215080409040E1F700C0000080E41A
-:102650000E9467138093000181112EC00E94911384
-:1026600080930001811128C00E9491138093000182
-:10267000811122C08FE30E94911380930001811188
-:102680001BC00E94891380E40E946713809300019D
-:10269000811112C08CE00E9491138093000181117E
-:1026A0000BC00E94911380930001811105C08FE33C
-:1026B0000E949113809300010E9489138091000170
-:1026C00008951092B9008AE08093B800089594EAC2
-:1026D0009093BC009091BC0097FFFCCF9091B90003
-:1026E000987F983021F0903111F081E00895809327
-:1026F000BB0084E88093BC008091BC0087FFFCCFC6
-:102700008091B900887F883111F0803471F780E0C2
-:10271000089584E98093BC008091BC0084FDFCCFC7
-:1027200008958093BB0084E88093BC008091BC0036
-:1027300087FFFCCF9091B900987F81E0983209F42F
-:1027400080E0089584E88093BC008091BC0087FFFE
-:10275000FCCF8091BB00089580910001811115C0CC
-:1027600080E40E9467138093000181110CC082E114
-:102770000E94911380930001811105C08FEF0E9488
-:102780009113809300010E94891384B1807F84B9E2
-:1027900085B1807F85B98AB1837F8AB98BB1837F08
-:1027A0008BB93E98469808950E94121380930001B9
-:1027B0000E94AC1380B38C7080BB81B3836F81BBEC
-:1027C000E6E4F1E0A8E3B1E011921D9281E0E43586
-:1027D000F807D1F70C94FC12BF92CF92DF92EF92E0
-:1027E000FF920F931F93CF93DF9380910001882373
-:1027F00079F0809137018F5F80933701811108C094
-:102800000E94121380930001811102C00E94A41241
-:1028100008E311E0C0E0D0E0DD24D39482E0C82ECC
-:10282000EE24E394F12CC73000F580910001811172
-:1028300062C080E40E94671380930001811112C07E
-:1028400082E10E9491138093000181110BC0C701A6
-:102850000C2E01C0880F0A94EAF780950E9491130C
-:10286000809300010E94891346C0CA30A1F028F469
-:10287000C83059F0C93061F005C0CC3089F070F033
-:10288000CD3089F0209A289810C0219A29980DC03F
-:10289000229A2A980AC0239A2B9807C0529A01C0FC
-:1028A000539A5B9802C03E9A4698E0EAEA95F1F79F
-:1028B0008FB179995AC092E081708D25892B7C9BCC
-:1028C00002C090E001C094E0892B7D9B02C090E0A3
-:1028D00001C098E0892B7E9B02C090E001C090E18E
-:1028E000892B9FB19095991F9927991F9295990FC0
-:1028F000907E892B0FC08091000181114BC080E434
-:102900000E94671380930001882389F1B12C0E94F3
-:1029100089138B2DF8019081981719F08083C0924C
-:1029200001010E94AC1321960F5F1F4FCE30D105DD
-:1029300009F079CF80910101882371F18150809352
-:102940000101882339F08FE99FE00197F1F700C07A
-:10295000000022C0A6E4B1E0E8E3F1E081918D93AC
-:1029600091E0E634F907D1F717C090E0A5CF83E1F5
-:102970000E949113809300018111C8CF81E40E94CD
-:102980006713809300018111C1CF0E94A213B82E5A
-:10299000B094BDCF80E0BECF0E94A21281E0DF9153
-:1029A000CF911F910F91FF90EF90DF90CF90BF904C
-:1029B0000895E82FF0E0EA5BFE4F808108950895C6
-:1029C0008B3B910578F4883A910540F5853A91055D
-:1029D000D0F48430910508F0B1C08130910509F43C
-:1029E000ADC06BC0803E910508F467C0883E91057C
-:1029F00008F4A4C09C01205F31092031310508F0A2
-:102A00005CC090650895853A910509F459C0863AED
-:102A1000910509F458C083E890E40895883A910537
-:102A200009F454C0893A910509F453C08A3A9105D2
-:102A300009F452C08B3A910509F451C08C3A9105C2
-:102A400009F450C08D3A910509F44FC0803B9105BF
-:102A500009F44EC08E3A910509F44DC08F3A9105A4
-:102A600009F44CC0813B910509F44BC0823B9105B0
-:102A700009F44AC0833B910509F449C0843B9105A0
-:102A800009F448C0853B910509F447C0863B910590
-:102A900009F446C0873B910509F445C0883B910580
-:102AA00009F444C0893B910509F443C08A3B910570
-:102AB00009F042C08AE296E4089580E090E008952B
-:102AC00081E890E4089582E890E4089582EE94E429
-:102AD000089589EE94E408958AEE94E4089585EBD0
-:102AE00094E4089586EB94E4089587EB94E40895C4
-:102AF0008CEC94E408958DEC94E4089583E895E4D7
-:102B000008958AE895E4089582E995E4089584E9B2
-:102B100095E4089581E296E4089583E296E40895A9
-:102B200084E296E4089585E296E4089586E296E4C8
-:102B3000089587E296E4089580E094E40895089566
-:102B400096E0799FF001112494E5899FE00DF11D35
-:102B50001124E60FF11DEE0FFF1FEC55F84E859185
-:102B600094910895880F991F8C5D994EFC01859171
-:102B700094910895880F991F8C55984EFC0185916A
-:102B80009491089526E0729FF001112444E5849FFA
-:102B9000E00DF11D1124E60FF11DEE0FFF1FEC55A6
-:102BA000F84E25913491C9019A9581159F4110F4F1
-:102BB000C9010895C90190528115904128F4C901B5
-:102BC0009F700E94BA150895C901905381159041D4
-:102BD00020F4C9019927906C0895211580E53807E4
-:102BE00069F40E9459239FEF24E34CE09150204068
-:102BF0004040E1F700C000000C949D2A213080E5A0
-:102C0000380731F48091CE0181608093CE01089520
-:102C1000C90190558115904108F050C0832F992724
-:102C20008F70992781309105D9F4A90143705527F8
-:102C300002C0880F991F4A95E2F79C68A90164E0D9
-:102C4000440F551F6A95E1F744275370842B952B49
-:102C500073E0220F331F7A95E1F7207633271DC0EA
-:102C60008230910529F4922F8827816F906A089508
-:102C700083309105A9F4A9014370552781E090E0C4
-:102C800002C0880F991F4A95E2F79C6843E0220F23
-:102C9000331F4A95E1F7207E3770822B932B0895DE
-:102CA0000497F1F4A9014370552781E090E002C038
-:102CB000880F991F4A95E2F79A68E8CFC9019057A3
-:102CC0008115904120F4C9019F7090620895C90157
-:102CD00090588115904120F4C9019F70906A089521
-:102CE000203E3105E0F4203C310558F52133310513
-:102CF00009F470C048F42932310509F464C02A325D
-:102D0000310509F46EC074C029333105F1F0223861
-:102D10003105D9F02533310509F44EC069C0233E91
-:102D2000310589F138F4203E3105C1F0223E3105EC
-:102D3000E1F05EC0263E310569F1273E3105A9F17B
-:102D400057C0C9010E94B21508958091E10180FD2C
-:102D500002C081FF4DC080EE90E04BC08091E10148
-:102D600080FFF9CF89E390E044C08091E10182FFC8
-:102D70000EC08091E10184FF03C080E090E039C083
-:102D800083EE90E036C08091E10182FFF2CF82EEC7
-:102D900090E02FC08091E10183FF0BC08091E101A1
-:102DA00084FDEBCF87EE90E024C08091E10183FFAA
-:102DB000F5CF86EE90E01DC08091E10185FF07C050
-:102DC00089E290E016C08091E10185FFF9CF85E3AB
-:102DD00090E00FC08091E10186FF07C08AE290E099
-:102DE00008C08091E10186FFF9CF81E390E001C046
-:102DF000C9010E94E014089508950C94FC16809176
-:102E000064010895CF93DF9300D01F92CDB7DEB752
-:102E10002091E701243019F523E029839B838A83DD
-:102E20002093E9008FEF9091E800815095FD06C056
-:102E300095ED9A95F1F700008111F5CF8091E800AA
-:102E400085FF0DC040E050E063E070E0CE010196E8
-:102E50000E946C198091E8008E778093E8000F90B3
-:102E60000F900F90DF91CF910895CF93DF9300D013
-:102E70001F92CDB7DEB72091E701243021F522E083
-:102E800029839B838A8383E08093E9008FEF90916D
-:102E9000E800815095FD06C095ED9A95F1F7000088
-:102EA0008111F5CF8091E80085FF0DC040E050E032
-:102EB00063E070E0CE0101960E946C198091E800F9
-:102EC0008E778093E8000F900F900F90DF91CF9155
-:102ED00008952091E7012430F1F422E02093E900E5
-:102EE0002FEF3091E800215035FD06C035ED3A95C1
-:102EF000F1F700002111F5CF2091E80025FF0BC06C
-:102F000040E050E065E070E00E946C198091E800BC
-:102F10008E778093E8000895CF93DF93EC01809142
-:102F2000E701843009F046C090910C019923D9F053
-:102F300090910D019923B9F08093E9008FEF909162
-:102F4000E800815095FD06C095E19A95F1F70000E3
-:102F50008111F5CF8091E80085FF2CC040E050E062
-:102F600060E170E017C081E08093E9008FEF9091FD
-:102F7000E800815095FD06C095ED9A95F1F70000A7
-:102F80008111F5CF8091E80085FF14C040E050E04A
-:102F900068E070E0CE010E946C198091E8008E77A5
-:102FA0008093E80080E1FE01A4E5B1E001900D927C
-:102FB0008A95E1F7DF91CF9108958091E601811123
-:102FC00009C00E94FE1A0E945B1B8091E20084608F
-:102FD0008093E20008951092E601089508950C94FC
-:102FE000C3300E94342A0E94C9300E94F81D0C94FC
-:102FF000FD1642E061EC81E00E94781A42E061EC4B
-:1030000082E00E94781A42E061EC83E00E94781A24
-:1030100042E161EC84E00C94781A8091E9018330FC
-:1030200009F455C030F4813071F0823009F48EC05B
-:1030300008958A3009F47AC08B3009F460C0893071
-:1030400009F09CC020C08091E801813A09F096C047
-:103050008091E800877F8093E8008091EC01909157
-:10306000ED01892B21F060E080E090E003C060E199
-:1030700084E591E070E00E94B5198091E8008B77BB
-:103080008093E80008958091E801813209F076C0CC
-:103090008091EC019091ED01009719F0039709F0F0
-:1030A0006DC08091E800877F8093E8008091E80000
-:1030B00082FD05C08091E7018111F8CF5FC080914A
-:1030C000F100809364018091E8008B7753C0809178
-:1030D000E801813A09F052C08091EC019091ED0134
-:1030E000892B09F04BC08091E800877F8093E8002E
-:1030F0008091E80080FFFCCF80910C0136C0809168
-:10310000E8018132D9F58091EC019091ED01892B94
-:10311000A9F58091E800877F8093E8000E94AD1AAE
-:103120008091EA0180930C010C9459238091E8016D
-:10313000813221F58091E800877F8093E8000E942A
-:10314000AD1A8091EB018093650108958091E801AB
-:10315000813AA1F48091E800877F8093E800809114
-:10316000E80080FFFCCF809165018093F1008091A1
-:10317000E8008E778093E8000C94AD1A089584B728
-:10318000877F84BF88E10FB6F89480936000109227
-:1031900060000FBE90E080E80FB6F8948093610065
-:1031A000909361000FBE0E94471E0E94FE1A0E946B
-:1031B0005B1B8091E20084608093E20078940E941F
-:1031C000D61D0E94491E82E091E00E94F31D0E94DC
-:1031D000B1308091E701853069F40E94F729809130
-:1031E000E5018823B1F30E941F2A882391F30E94EE
-:1031F0005619EFCF0E944F1EECCF292F33272330D3
-:103200003105A9F06CF42130310509F442C02230B7
-:10321000310509F043C08DE690E020EC3DE142C06D
-:1032200021323105C9F02232310519F137C0992711
-:103230008130910541F08230910541F0892B71F583
-:10324000ECEBFDE105C0E4EAFDE102C0ECE8FDE1E4
-:10325000849190E09F0126C0643000F5E62FF0E0F5
-:10326000EE0FFF1FEE5DFE4F2081318189E090E07F
-:1032700019C0643098F4E62FF0E0DF01AA0FBB1FFD
-:10328000A65EBE4F2D913C91EA5EFE4F808190E09C
-:1032900009C082E190E02DE23EE104C080E090E0D0
-:1032A00020E030E0FA0131832083089580E189BD78
-:1032B00082E189BD09B400FEFDCF8091D8008F7DE9
-:1032C0008093D8008091E00082608093E00080913C
-:1032D000E00081FDFCCF0895CF92DF92EF92FF9244
-:1032E0000F931F93CF93DF937C018B01EA010E9420
-:1032F000CE1A811131C0209731F088819981081B45
-:10330000190BE80EF91EC12CD12C0115110519F16C
-:103310008091E80085FD14C08091E8008E7780934D
-:10332000E800209741F0888199818C0D9D1D99833B
-:10333000888385E011C00E94CE1A882331F30CC027
-:10334000F70181917F018093F10001501109FFEF96
-:10335000CF1ADF0ADACF80E0DF91CF911F910F9172
-:10336000FF90EF90DF90CF9008952091EE01309183
-:10337000EF012617370748F06115710539F42091E0
-:10338000E8002E772093E80001C0B901FC0120E09D
-:1033900061157105B9F18091E701882309F440C0F6
-:1033A000853009F43FC08091E80083FD3DC08091E5
-:1033B000E80082FF06C08091E80082FF26C080E01E
-:1033C00008958091E80080FFE3CF2091F300809181
-:1033D000F20090E0922B6115710551F08830910553
-:1033E00038F421912093F100615071090196F3CFD7
-:1033F00021E0089709F020E08091E8008E77809323
-:10340000E800C6CF2111C7CFD6CF8091E70188232E
-:1034100039F0853039F08091E80083FFCCCF04C0CB
-:1034200082E0089583E0089581E008952091EE01FF
-:103430003091EF012617370748F06115710539F40F
-:103440002091E8002E772093E80001C0B901FC012B
-:1034500020E061157105C1F18091E701882309F42D
-:1034600041C0853009F440C08091E80083FD3EC032
-:103470008091E80082FF06C08091E80082FF27C0AB
-:1034800080E008958091E80080FFE3CF2091F30071
-:103490008091F20090E0922B6115710559F088300F
-:1034A000910540F424912093F10031966150710907
-:1034B0000196F2CF21E0089709F020E08091E80022
-:1034C0008E778093E800C5CF2111C6CFD5CF8091EC
-:1034D000E701882339F0853039F08091E80083FFD7
-:1034E000CBCF04C082E0089583E0089581E0089581
-:1034F000982F973058F59093E900981739F070910C
-:10350000EC002091ED005091F00003C0242F762FA5
-:1035100050E021FF19C03091EB003E7F3093EB006B
-:103520003091ED003D7F3093ED003091EB00316044
-:103530003093EB007093EC002093ED005093F0007B
-:103540002091EE0027FF07C09F5FD3CF8F7080933D
-:10355000E90081E0089580E008958091E80187FD09
-:1035600005C08091E80080FF0EC012C08091E80085
-:1035700082FD05C08091E7018111F8CF0895809107
-:10358000E8008B7708C08091E7018111EACF0895A8
-:103590008091E8008E778093E80008958091E400A0
-:1035A0009091E50045E62091EC0020FF21C020919C
-:1035B000E80020FD21C02091E701222389F0253079
-:1035C00089F02091EB0025FD0FC02091E40030919F
-:1035D000E5002817390739F3415041F0C901E3CF1D
-:1035E00082E0089583E0089581E0089584E00895DD
-:1035F0002091E80022FFDFCF80E008950E946C1B3D
-:103600000E94741BE0EEF0E0808181608083E8ED31
-:10361000F0E080818F77808319BCA7EDB0E08C91BA
-:103620008E7F8C9380818F7E80831092E601089537
-:103630000F931F93CF93DF930E946C1B0E94741B08
-:10364000C8EDD0E088818F778883888180688883FF
-:1036500088818F7D888319BC1092E7011092E30165
-:103660001092E5011092E40100EE10E0F801808173
-:103670008B7F808388818160888342E060E080E086
-:103680000E94781AE1EEF0E080818E7F8083E2EE86
-:10369000F0E0808181608083808188608083F80190
-:1036A00080818E7F8083888180618883DF91CF9144
-:1036B0001F910F910895E8EDF0E080818F7E808367
-:1036C000E7EDF0E080818160808384E082BF81E06B
-:1036D0008093E6010C94181BE8EDF0E080818E7F6A
-:1036E00080831092E20008951092DA001092E100B7
-:1036F00008951F920F920FB60F9211242F933F93AC
-:103700004F935F936F937F938F939F93AF93BF93E9
-:10371000EF93FF938091E10082FF0BC08091E20064
-:1037200082FF07C08091E1008B7F8093E1000E94BF
-:10373000D51D8091DA0080FF1FC08091D80080FFE6
-:103740001BC08091DA008E7F8093DA008091D900CF
-:1037500080FF0DC080E189BD82E189BD09B400FE12
-:10376000FDCF81E08093E7010E94DD1705C019BC01
-:103770001092E7010E94EB178091E10080FF19C0D1
-:103780008091E20080FF15C08091E2008E7F8093DF
-:10379000E2008091E20080618093E2008091D80095
-:1037A00080628093D80019BC85E08093E7010E9475
-:1037B000EF178091E10084FF30C08091E20084FF28
-:1037C0002CC080E189BD82E189BD09B400FEFDCF36
-:1037D0008091D8008F7D8093D8008091E1008F7E0A
-:1037E0008093E1008091E2008F7E8093E2008091DF
-:1037F000E20081608093E2008091E301882311F070
-:1038000084E007C08091E30087FF02C083E001C02D
-:1038100081E08093E7010E94F1178091E10083FF2E
-:1038200029C08091E20083FF25C08091E100877F5D
-:103830008093E10082E08093E7011092E3018091A0
-:10384000E1008E7F8093E1008091E2008E7F809383
-:10385000E2008091E20080618093E20042E060E05B
-:1038600080E00E94781A8091F00088608093F000D8
-:103870000E94EE17FF91EF91BF91AF919F918F91B1
-:103880007F916F915F914F913F912F910F900FBE5C
-:103890000F901F9018951F920F920FB60F92112440
-:1038A0002F933F934F935F936F937F938F939F9348
-:1038B000AF93BF93CF93EF93FF93C091E900CF7085
-:1038C0008091EC001092E9008091F000877F809356
-:1038D000F00078940E94871C1092E9008091F0001B
-:1038E00088608093F000C093E900FF91EF91CF9141
-:1038F000BF91AF919F918F917F916F915F914F9108
-:103900003F912F910F900FBE0F901F9018951F930E
-:10391000CF93DF93CDB7DEB7AA970FB6F894DEBF8B
-:103920000FBECDBFE8EEF1E08091F100819321E080
-:10393000E03FF207C9F70E940D188091E80083FF6D
-:103940001CC12091E8013091E901832F90E08A3079
-:10395000910508F012C1FC01EE5EFE4F0C944B3253
-:10396000203881F0223809F008C18091EC018F7075
-:103970008093E9008091EB0085FB882780F9109205
-:10398000E90006C08091E4019091E5019111826007
-:103990009091E800977F9093E8008093F100109257
-:1039A000F100C5C0822F8D7F09F0E7C0222319F0F6
-:1039B000223061F0E2C08091EA01813009F0DDC07F
-:1039C000333009F080E08093E50128C08091EA015E
-:1039D000811124C02091EC012F7009F4CEC02093F6
-:1039E000E9008091EB0080FF19C08091EB0033303B
-:1039F00011F4806211C080618093EB0081E090E05F
-:103A0000022E01C0880F0A94EAF78093EA00109210
-:103A1000EA008091EB0088608093EB001092E9004F
-:103A20008091E800877F86C02111A7C01091EA012C
-:103A30001F778091E3008078812B8093E300809151
-:103A4000E800877F8093E8000E94AD1A8091E8002B
-:103A500080FFFCCF8091E30080688093E300112316
-:103A600011F083E001C082E08093E70186C0205816
-:103A7000223008F082C08091EA019091EB018C3DE8
-:103A800023E0920779F583E08A838AE289834FB73E
-:103A9000F894DE01139620E03EE051E2E32FF0E0DF
-:103AA00050935700E49120FF03C0E295EF703F5F11
-:103AB000EF708E2F90E0EA3010F0C79601C0C096EC
-:103AC0008D939D932F5F243149F74FBF8091E8007C
-:103AD000877F8093E8006AE270E0CE0101960E9441
-:103AE000B51914C0AE014F5F5F4F6091EC010E94A9
-:103AF000FD18009709F441C02091E800277F20932A
-:103B0000E800BC0189819A810E94161A8091E80020
-:103B10008B778093E80031C0203879F58091E800F8
-:103B2000877F8093E8008091E3018093F10080918A
-:103B3000E8008E778093E8000E94AD1A1EC0211124
-:103B40001CC09091EA019230C0F48091E800877F18
-:103B50008093E8009093E3010E94AD1A8091E30105
-:103B6000811104C08091E30087FF02C084E001C09E
-:103B700081E08093E7010E94F9178091E80083FFBC
-:103B80000AC08091E800877F8093E8008091EB0075
-:103B900080628093EB00AA960FB6F894DEBF0FBE4A
-:103BA000CDBFDF91CF911F9108950895CF9380915C
-:103BB000E7018823B1F08091E9008F709091EC00CB
-:103BC00090FF02C090E801C090E0C92FC82B10926E
-:103BD000E9008091E80083FD0E94871CCF70C093AC
-:103BE000E900CF91089590936B0180936A01089545
-:103BF000E0916A01F0916B01309721F00190F08122
-:103C0000E02D099480E00895E0916A01F0916B0144
-:103C1000309721F00280F381E02D09940895E0911E
-:103C20006A01F0916B01309721F00480F581E02D5D
-:103C300009940895209168013091690182179307D2
-:103C400071F09093690180936801E0916A01F091AD
-:103C50006B01309721F00680F781E02D09940895DB
-:103C600020916601309167018217930771F090935C
-:103C7000670180936601E0916A01F0916B013097D2
-:103C800021F00084F185E02D0994089508950C94A5
-:103C9000461E0E943A2A0E94D4130C94002BCF9205
-:103CA000DF92EF92FF920F931F93CF93DF93CDB7E5
-:103CB000DEB72B970FB6F894DEBF0FBECDBF0E94C4
-:103CC000EC133DE6E32E31E0F32E00E010E0C02ED1
-:103CD000802F0E94D914F701D1907F01D826B1F42A
-:103CE0000F5F1F4F0E30110591F78FEF89838A8385
-:103CF0001B820E94432A8160782F9D838C83498197
-:103D00005A816B818D810E94F21E41C09091CE013B
-:103D100091FF04C08B870E94DF148B8520E030E088
-:103D20004D2D50E0922FBA01022E02C07595679575
-:103D30000A94E2F760FF25C02E83CF82EE24E3943D
-:103D4000F12C02C0EE0CFF1C9A95E2F790E08E2158
-:103D50009F2121E0892B09F420E028870E94432A33
-:103D60008160782F9A8789874E815F8168858A85EF
-:103D70000E94F21EF801E359FE4F80818E25808358
-:103D800006C02F5F3F4F2630310561F6A9CF0E9454
-:103D9000E42D10916C010E94F81D1817A1F00E94EB
-:103DA000F81D80936C012B960FB6F894DEBF0FBE02
-:103DB000CDBFDF91CF911F910F91FF90EF90DF90DA
-:103DC000CF900C94FD162B960FB6F894DEBF0FBE65
-:103DD000CDBFDF91CF911F910F91FF90EF90DF90BA
-:103DE000CF900895CF93DF93CDB7DEB72B970FB663
-:103DF000F894DEBF0FBECDBF4F83588769877A879F
-:103E00008B87DE01119686E0FD0111928A95E9F714
-:103E100085E0FE01379601900D928A95E1F7498180
-:103E20005A816B817C818D819E810E9425262B96F3
-:103E30000FB6F894DEBF0FBECDBFDF91CF910895CE
-:103E4000CF93C82F882309F4C1C0823859F40E9447
-:103E5000F81D81FDBBC089E30E94C4280E947E2911
-:103E600089E30CC0833879F40E94F81D80FDAEC050
-:103E700083E50E94C4280E947E2983E50E940429CC
-:103E8000CF910C947E29843859F40E94F81D82FD4C
-:103E90009DC087E40E94C4280E947E2987E4EECF5B
-:103EA0008CEF8C0F813A48F48C2F0E9419308111CD
-:103EB0008DC08C2F0E94C428E3CF80E28C0F883005
-:103EC00048F4C77081E001C0880FCA95EAF70E94E4
-:103ED0004529D6CF8BE58C0F833078F4C53A29F08D
-:103EE000C63A31F482E890E005C081E890E002C073
-:103EF00083E890E0CF910C941A1E88E58C0F8331F3
-:103F000008F064C0C83A39F1C93A41F1CA3A49F1F6
-:103F1000CB3A51F1CC3A59F1CD3A61F1C03B69F15C
-:103F2000CE3A71F1CF3A79F1C13B81F1C23B89F1CF
-:103F3000C33B91F1C43B99F1C53BA1F1C63BA9F14B
-:103F4000C73BB1F1C83BB9F1C93BC1F1CA3BC9F5A7
-:103F50008AE292E038C082EE90E035C089EE90E0CF
-:103F600032C08AEE90E02FC085EB90E02CC086EB4B
-:103F700090E029C087EB90E026C08CEC90E023C055
-:103F80008DEC90E020C083E891E01DC08AE891E0CC
-:103F90001AC082E991E017C084E991E014C081E27F
-:103FA00092E011C083E292E00EC084E292E00BC086
-:103FB00085E292E008C086E292E005C087E292E0E6
-:103FC00002C080E090E0CF910C94301ECF91089514
-:103FD000882309F44BC0823859F40E94F81D81FFF0
-:103FE00045C089E30E94C4280E947E2989E30CC051
-:103FF000833871F40E94F81D80FF38C083E50E9469
-:10400000C4280E947E2983E50E9404290C947E29FD
-:10401000843859F40E94F81D82FF28C087E40E946A
-:10402000C4280E947E2987E4EFCF9CEF980F913A35
-:1040300058F390E2980F983050F4877091E001C0E7
-:10404000990F8A95EAF7892F0E944B29DFCF9BE5CC
-:10405000980F933020F480E090E00C941A1E885A58
-:10406000833120F480E090E00C94301E0895882382
-:1040700021F00E9445290C947E290895882321F07F
-:104080000E944B290C947E290895CF92DF92EF92E3
-:10409000FF920F931F93CF93DF93CDB7DEB728978F
-:1040A0000FB6F894DEBF0FBECDBF8C0185E0F801DE
-:1040B000DE01119601900D928A95E1F7F801408199
-:1040C0003181F280258122952F7083819481892B03
-:1040D00031F03F3F31F481E04F3F19F403C081E0FC
-:1040E00001C080E080FDC4C249833A8389819A81FE
-:1040F0002F830E9482289E8388870E9481280E94A5
-:1041000054274E81E42FE295EF70F0E0E45EFE4F1D
-:104110002F8168850C944B32842F807F142F1F7061
-:10412000882311F01295107FFF2059F0112309F414
-:1041300054C2812F68870E9455290E947E29688574
-:104140004CC2862F0E94E81F112309F491C2812FCF
-:104150000E945B2928960FB6F894DEBF0FBECDBF34
-:10416000DF91CF911F910F91FF90EF90DF90CF9053
-:104170000C947E29342F307F842F8F70303211F0D1
-:104180008295807F662319F0613019F12BC0FF20E2
-:10419000B1F0222309F493C1213009F090C128968F
-:1041A0000FB6F894DEBF0FBECDBFDF91CF911F9148
-:1041B0000F91FF90EF90DF90CF900C946529222310
-:1041C00019F0213009F454C28E830E9468298E812F
-:1041D00089C1FF2021F0223008F04AC270C12111AC
-:1041E00047C280C1FF2021F0222309F468C1F5C134
-:1041F000222309F477C105C2242F26952695237022
-:1042000030E02115310521F021303105C9F030C2EF
-:10421000FF2021F0862F942F937002C080E090E061
-:1042200028960FB6F894DEBF0FBECDBFDF91CF91B9
-:104230001F910F91FF90EF90DF90CF900C941A1E7A
-:10424000FF2021F0862F942F937002C080E090E031
-:1042500028960FB6F894DEBF0FBECDBFDF91CF9189
-:104260001F910F91FF90EF90DF90CF900C94301E34
-:10427000862FFF2019F00E94EC2C02C00E94542DC2
-:1042800028960FB6F894DEBF0FBECDBFDF91CF9159
-:104290001F910F91FF90EF90DF90CF900C94D92D4C
-:1042A000842F837009F076C0F110E2C1262F229589
-:1042B00026952770220F220F862F8F70C82ED12CA3
-:1042C000E12CF12C022E04C0CC0CDD1CEE1CFF1CDA
-:1042D0000A94D2F764FF10C06FE070E080E090E0D5
-:1042E00004C0660F771F881F991F2A95D2F7609523
-:1042F00070958095909503C060E070E0CB01242F0D
-:10430000269526952370422F50E042305105D1F07A
-:104310004330510559F16C297D298E299F2941305F
-:10432000510541F128960FB6F894DEBF0FBECDBF00
-:10433000DF91CF911F910F91FF90EF90DF90CF9081
-:104340000C9479276C297D298E299F2928960FB6F0
-:10435000F894DEBF0FBECDBFDF91CF911F910F91BB
-:10436000FF90EF90DF90CF900C9493270E947927D5
-:10437000C701B60128960FB6F894DEBF0FBECDBFB9
-:10438000DF91CF911F910F91FF90EF90DF90CF9031
-:104390000C945F27FF2019F0842F817001C086954F
-:1043A000882309F465C1262F229526952770220FB0
-:1043B000220F862F8F70C82ED12CE12CF12C022ECB
-:1043C00004C0CC0CDD1CEE1CFF1C0A94D2F764FF69
-:1043D00010C06FE070E080E090E004C0660F771FCF
-:1043E000881F991F2A95D2F76095709580959095B2
-:1043F00003C060E070E0CB01242F26952695237042
-:10440000422F50E042305105D1F04330510559F16F
-:104410006C297D298E299F294130510541F128962B
-:104420000FB6F894DEBF0FBECDBFDF91CF911F91C5
-:104430000F91FF90EF90DF90CF900C944D286C2956
-:104440007D298E299F2928960FB6F894DEBF0FBECE
-:10445000CDBFDF91CF911F910F91FF90EF90DF9033
-:10446000CF900C9467280E944D28C701B60128966A
-:104470000FB6F894DEBF0FBECDBFDF91CF911F9175
-:104480000F91FF90EF90DF90CF900C943328603F16
-:10449000C9F118F4603E50F49BC0623F09F460C05B
-:1044A00008F44AC0633F09F46FC092C0162F1F7012
-:1044B000842F8F71FF2099F00E94CC27812F28969E
-:1044C0000FB6F894DEBF0FBECDBFDF91CF911F9125
-:1044D0000F91FF90EF90DF90CF900C9437200E94C7
-:1044E000ED27812F28960FB6F894DEBF0FBECDBF03
-:1044F000DF91CF911F910F91FF90EF90DF90CF90C0
-:104500000C943E20FF20A1F02111B2C0842F8F71A6
-:1045100028960FB6F894DEBF0FBECDBFDF91CF91C6
-:104520001F910F91FF90EF90DF90CF900C94122885
-:10453000223008F09DC0EACFFF20A1F0842F8F71B8
-:1045400028960FB6F894DEBF0FBECDBFDF91CF9196
-:104550001F910F91FF90EF90DF90CF900C94CC279C
-:10456000FF2061F3842F8F7128960FB6F894DEBF79
-:104570000FBECDBFDF91CF911F910F91FF90EF90B4
-:10458000DF90CF900C94ED27FF2091F0842F8F7156
-:1045900028960FB6F894DEBF0FBECDBFDF91CF9146
-:1045A0001F910F91FF90EF90DF90CF900C94B72761
-:1045B00028960FB6F894DEBF0FBECDBFDF91CF9126
-:1045C0001F910F91FF90EF90DF90CF900C94AD274B
-:1045D000FF20A1F0222309F4B1CF862F28960FB631
-:1045E000F894DEBF0FBECDBFDF91CF911F910F9129
-:1045F000FF90EF90DF90CF900C94201F222309F4BE
-:10460000B1CF862F28960FB6F894DEBF0FBECDBF70
-:10461000DF91CF911F910F91FF90EF90DF90CF909E
-:104620000C94E81F4F70C8010E94031028960FB623
-:10463000F894DEBF0FBECDBFDF91CF911F910F91D8
-:10464000FF90EF90DF90CF900C94D2264F70C8016E
-:1046500028960FB6F894DEBF0FBECDBFDF91CF9185
-:104660001F910F91FF90EF90DF90CF900C949F15CA
-:1046700028960FB6F894DEBF0FBECDBFDF91CF9165
-:104680001F910F91FF90EF90DF90CF9008950E94BF
-:1046900062290E9437290E947E290E94852E0E944D
-:1046A000D92D80E090E00E941A1E80E090E00C94EA
-:1046B000301E0E9452290C9447230E948228292FE1
-:1046C00022952F7030E02C3031054CF42A30310522
-:1046D0006CF4225031092230310590F407C02C309F
-:1046E000310551F02F30310539F00AC0803E10F00D
-:1046F000803F31F481E0089593FB882780F9089585
-:1047000080E00895CF93DF9300D000D01F92CDB703
-:10471000DEB70F900F900F900F900F90DF91CF9119
-:104720000895CF93DF9300D000D000D0CDB7DEB78F
-:1047300026960FB6F894DEBF0FBECDBFDF91CF91A6
-:1047400008951F93CF93DF93C0917B0116E0809172
-:104750007C01C81799F0D0E01C9FF0011D9FF00D5F
-:104760001124E358FE4F408151816281738184811D
-:1047700095810E9491232196C770E9CFDF91CF9157
-:104780001F9108954091AD015091AE016091AF012C
-:104790007091B0018091B1019091B2010C9491237C
-:1047A000CF938091B20182958F7009F05FC08091A4
-:1047B000AF01882309F45AC020917B01A0917C01AC
-:1047C0006091AD017091AE018091B0019091B10105
-:1047D00031E06F3F09F030E0B32FC6E02A1709F44B
-:1047E00045C0009721F07F3F21F44B2F03C041E0EB
-:1047F00001C040E030E040FD35C0C29FF001C39FE2
-:10480000F00D1124E358FE4F418174132BC04081F9
-:10481000641328C04281411125C043815481481747
-:10482000590710F441505109481B590B483C510598
-:10483000C8F48091B2018F7080618093B20186E0EC
-:10484000829FF001839FF00D1124EE57FE4F80816F
-:104850008F70806180838DEA91E00E944520CF9126
-:104860000C94A1232F5F3F4F2770B8CFCF910895AD
-:10487000CF92DF92EF92FF920F931F93CF93DF932C
-:10488000CDB7DEB762970FB6F894DEBF0FBECDBFCF
-:104890008C0185E0F801DE011D9601900D928A954C
-:1048A000E1F7D8014C9111965C91119712966C9199
-:1048B00012971396ED90FC9014977091AD01E091D2
-:1048C000AE012091B0013091B1012115310531F0D7
-:1048D000EF3F31F481E07F3F19F403C081E001C074
-:1048E00080E0B82FB170CB2E80FD6CC1D090AF01AD
-:1048F000DD2009F4F5C0F091B201E216F30638F0BC
-:10490000C701821B930B883C910548F09BC0209502
-:1049100030952E0D3F1D283C310508F093C08F2F98
-:10492000807F09F052C0E51314C0741312C0D62E54
-:1049300061110FC0FF70F061F093B2010E94C223B9
-:104940008DEA91E00E9445208091B201F8018583B3
-:104950006CC1EF2831F05F3F31F481E04F3F19F433
-:1049600003C081E001C080E080FD03C081E08627B4
-:1049700001C080E0F82FF170FF2E80FF1CC08091F5
-:104980007B0120917C0136E0821709F428C190E078
-:10499000389FF001399FF00D1124E358FE4F7181CB
-:1049A000571306C07081471303C07281671303C099
-:1049B00001968770E9CFD62E662309F436C180911F
-:1049C000B20181608093B20153C0E51308C0741333
-:1049D00006C0611104C0D8011596FC93AEC04D8786
-:1049E0005E878D859E856A8B0E945D236A898823F8
-:1049F00029F1D62E662311F12091B201822F8295E2
-:104A00008F7090E002970CF460C08091AD0190919E
-:104A1000AE0198878F831986FB86EA862C87CE01A4
-:104A2000079651C0E51731F14D875E878D859E85CC
-:104A30006A8B0E945D236A8981112EC0C8010E9481
-:104A40004520A4C08F2F807F69F77E2DF98AE88AE0
-:104A500089890E9482238DEA91E00E944520EDEA37
-:104A6000F1E086E0DF011D928A95E9F70E94C223FA
-:104A7000D12CDBC07413D8CF6111D6CFD8011596D5
-:104A8000FC93C8010E944520EDEAF1E086E0DF01D9
-:104A90001D928A95E9F7C9C0D62E662379F2209136
-:104AA000B201822F82958F7090E0029774F080910E
-:104AB000AD019091AE019A8389831B82FD82EC82C5
-:104AC0002E83CE0101960E94452086E0F801ADEAD2
-:104AD000B1E001900D928A95E1F70E94D0236FC05A
-:104AE000E216F30628F0C701821B930B9C0104C059
-:104AF000209530952E0D3F1D283C310508F052C001
-:104B0000D62E662309F49ACFE5132CC074132AC05D
-:104B10008091B20180FD1DC0982F92959F70C9F0C1
-:104B2000D80115968C9315979F3039F09F5F929519
-:104B3000907F8F70892B15968C93C8010E94452019
-:104B400086E0F801ADEAB1E001900D928A95E1F7B7
-:104B500036C086E0F801ADEAB1E001900D928A9589
-:104B6000E1F763C04D875E878D859E850E945D233A
-:104B7000882379F086E0F801ADEAB1E001900D926A
-:104B80008A95E1F70E94D0230E94C223DD24D394AA
-:104B90004CC08091B20181608093B201C8010E9433
-:104BA000452043C07E2DF98AE88A89890E948223A4
-:104BB000EDEAF1E086E0DF011D928A95E9F70E94B7
-:104BC000C22333C0662309F439CF4D875E878D85B4
-:104BD0009E850E945D23882309F430CFCBCF4D877B
-:104BE0005E878D859E850E948228292F22952F70B1
-:104BF00030E0223031052CF49F7041F0811106C065
-:104C00000CC0243031052CF49F7049F4805E88304C
-:104C100020F0C8010E944520CF2CDC2C06C0D80112
-:104C200015969C91907F91F7F8CF8D2D62960FB6D7
-:104C3000F894DEBF0FBECDBFDF91CF911F910F91D2
-:104C4000FF90EF90DF90CF9008951F93CF93DF9365
-:104C5000CDB7DEB72C970FB6F894DEBF0FBECDBF31
-:104C60004F83588769877A878B879C87CE01079601
-:104C70000E9438248823C1F02F8138858A859B853E
-:104C8000892B31F03F3F11F080E003C02F3FE1F767
-:104C900081E0811147C04F81588569857A858B8570
-:104CA0009C850E9491233EC086E0FE013796DE017E
-:104CB000119601900D928A95E1F7FF81E8854A856A
-:104CC0005B854115510531F0EF3F31F481E0FF3F45
-:104CD00019F403C081E001C080E080FD23C0209171
-:104CE0007C0130E0C90101968770992760917B01B2
-:104CF00070E086179707F1F1F983EA835D834C83AF
-:104D000096E0929FD001939FB00D1124A358BE4FFF
-:104D1000FE01319601900D929A95E1F780937C0106
-:104D20000E94A12316E080917B0190917C0189175C
-:104D300079F1189FC001112483589E4F0E94382496
-:104D4000882331F1E0917B011E9FF0011124E3588B
-:104D5000FE4F4081518162817381848195810E94DF
-:104D6000912380917B0190E0019687709927809331
-:104D70007B01D9CF0E94592310927C0110927B01B4
-:104D8000EDEAF1E086E0DF011D928A95E9F7CACFEE
-:104D90002C960FB6F894DEBF0FBECDBFDF91CF913A
-:104DA0001F910895EF92FF920F931F93CF93DF937C
-:104DB0009C01009709F471C0F12CEE24E394E90101
-:104DC0002196F9018491843740F4843008F056C06C
-:104DD000813081F0823021F160C0853709F449C00B
-:104DE000C0F19CE7980F903708F057C08F770E946A
-:104DF000E81F46C089010E5F1F4FFE01849190E2BB
-:104E0000980F983050F48770FE2D01C0FF0F8A95DF
-:104E1000EAF78F2F0E94552915C00E94201F14C049
-:104E200089010E5F1F4FFE01849190E2980F983028
-:104E300068F48770FE2D01C0FF0F8A95EAF78F2F67
-:104E40000E945B290E947E29E8011AC00E94E81F87
-:104E5000FBCF2E5F3F4FFE01C491CC2341F08FE981
-:104E60009FE00197F1F700C00000C150F6CFE901C3
-:104E700007C0FE01F490E901229602C00E94201FA3
-:104E80008F2D882341F0EFE9FFE03197F1F700C063
-:104E900000008150F6CF9E0192CFDF91CF911F91FC
-:104EA0000F91FF90EF90089508956093B70170936C
-:104EB000B8018093B9019093BA010C9447230F93E2
-:104EC0001F930091B7011091B8012091B901309161
-:104ED000BA01062B172B282B392B0093B7011093FF
-:104EE000B8012093B9013093BA011F910F910C942E
-:104EF00047230F931F930091B7011091B8012091A0
-:104F0000B9013091BA0106231723282339230093CE
-:104F1000B7011093B8012093B9013093BA011F91E2
-:104F20000F910C9447230F931F930091B701109199
-:104F3000B8012091B9013091BA0106271727282717
-:104F400039270093B7011093B8012093B90130932A
-:104F5000BA011F910F910C9447231092B301109244
-:104F6000B4011092B5011092B6010C94472341E0B0
-:104F700050E060E070E004C0440F551F661F771FCB
-:104F80008A95D2F74093B3015093B4016093B50171
-:104F90007093B6010C94472341E050E060E070E06C
-:104FA00004C0440F551F661F771F8A95D2F7809162
-:104FB000B3019091B401A091B501B091B601842BD9
-:104FC000952BA62BB72B8093B3019093B401A0939C
-:104FD000B501B093B6010C94472341E050E060E086
-:104FE00070E004C0440F551F661F771F8A95D2F7E3
-:104FF00040955095609570958091B3019091B40162
-:10500000A091B501B091B60184239523A623B723BF
-:105010008093B3019093B401A093B501B093B6010E
-:105020000C94472341E050E060E070E004C0440F7E
-:10503000551F661F771F8A95D2F78091B301909113
-:10504000B401A091B501B091B60184279527A62798
-:10505000B7278093B3019093B401A093B501B093A7
-:10506000B6010C9447230F931F930091B301109145
-:10507000B4012091B5013091B601062B172B282BD6
-:10508000392B0093B3011093B4012093B5013093F1
-:10509000B6011F910F910C9447230F931F9300911A
-:1050A000B3011091B4012091B5013091B6010623EE
-:1050B0001723282339230093B3011093B4012093BD
-:1050C000B5013093B6011F910F910C9447230F93B4
-:1050D0001F930091B3011091B4012091B50130915B
-:1050E000B60106271727282739270093B301109305
-:1050F000B4012093B5013093B6011F910F910C9428
-:1051000047230895CF92DF92EF92FF920F931F9360
-:10511000CF93DF93EC01C090B701D090B801E0903D
-:10512000B901F090BA018091B3019091B401A091BE
-:10513000B501B091B601C82AD92AEA2AFB2A0FE1A3
-:1051400010E0B701A601002E04C07695679557952B
-:1051500047950A94D2F740FF07C0BE01802F0E94F6
-:10516000C2158130910539F40150110950F7BE0183
-:1051700080E00E94C215DF91CF911F910F91FF90A7
-:10518000EF90DF90CF90089590910C019923D9F082
-:1051900090910D019923B9F0982F96959695969533
-:1051A0009F3088F5E0910E01F0910F01E90FF11D9C
-:1051B000877021E030E001C0220F8A95EAF78181F3
-:1051C000822B8183089540910E0150910F0120E0C0
-:1051D00030E09FEFFA01E20FF31F6281681799F048
-:1051E0009F3F19F4611101C0922F2F5F3F4F2E3066
-:1051F000310581F79F3F39F0FA01E90FF11D97FD65
-:10520000FA9582830895089590910C019923E1F015
-:1052100090910D019923C1F0982F969596959695AA
-:105220009F3020F5E0910E01F0910F01E90FF11D83
-:10523000877021E030E001C0220F8A95EAF72095BF
-:10524000818128232183089540910E0150910F01FF
-:1052500020E030E0FA01E20FF31F9281981301C0C1
-:1052600012822F5F3F4F2E303105A1F7089581E064
-:1052700090E0E0910E01F0910F01E80FF91F10820C
-:10528000019680319105A9F708959091CD01982B51
-:105290009093CD01089580959091CD01982390939E
-:1052A000CD0108951092CD0108959091CC01982BD5
-:1052B0009093CC01089580959091CC019823909380
-:1052C000CC0108951092CC0108958093BB010895FC
-:1052D0001092BB01089540910E0150910F0120E002
-:1052E00030E080E0FA01E20FF31F918191118F5FAE
-:1052F0002F5F3F4F2F303105A9F70895E0910E0140
-:10530000F0910F018091CD018083E0910E01F09129
-:105310000F0180819091CC01892B80839091BB01FA
-:10532000992361F0E0910E01F0910F018081892BAA
-:1053300080830E946B2981111092BB0180910E0124
-:1053400090910F010C94041ECF92DF92EF92FF9286
-:105350000F931F936C01EE24FF24C114D104E104C8
-:10536000F10421F46B017C0180E001C080E133276E
-:105370002F2D1E2D0D2D011511052105310519F0BB
-:10538000885F6801790197018601A4E03695279529
-:1053900017950795AA95D1F7011511052105310536
-:1053A00019F08C5F6801790197018601F2E036956A
-:1053B000279517950795FA95D1F701151105210540
-:1053C000310519F08E5F68017901B701A601769564
-:1053D000679557954795452B462B472B09F08F5FCF
-:1053E0001F910F91FF90EF90DF90CF9008958091E3
-:1053F000E701843009F11092CF0120E488E190E0C8
-:105400000FB6F894A895809360000FBE20936000BB
-:1054100083B7817F846083BF83B7816083BF7894C3
-:10542000889583B78E7F83BF88E10FB6F894809309
-:105430006000109260000FBE089508950895CF9304
-:105440000E941D2A0E94EC130E941E2AC0E08C2F8D
-:105450000E94D914811105C0CF5FCE30C1F780E022
-:1054600001C081E0CF9108950E9459230E94F81D48
-:105470000C94FD1682E084BD93E095BD9AEF97BD34
-:1054800080936E0008952FB7F8948091D001909189
-:10549000D101A091D201B091D3012FBF0895CF9235
-:1054A000DF92EF92FF920F931F932FB7F8944091E2
-:1054B000D0015091D1016091D2017091D3012FBFE1
-:1054C0006A017B01EE24FF248C0120E030E0C0164D
-:1054D000D106E206F30610F441505109481B590B5E
-:1054E000CA011F910F91FF90EF90DF90CF90089528
-:1054F0001F920F920FB60F9211248F939F93AF9329
-:10550000BF938091D0019091D101A091D201B0912F
-:10551000D3010196A11DB11D8093D0019093D101BB
-:10552000A093D201B093D301BF91AF919F918F917E
-:105530000F900FBE0F901F9018950E94FE1AF894BE
-:105540002FEF87EA91E6215080409040E1F700C0BC
-:10555000000087E090EBDC018093F0019093F10173
-:10556000A093F201B093F3012CE088E190E00FB634
-:10557000F894A895809360000FBE20936000FFCF41
-:10558000EF92FF920F931F93CF93DF93E82EF12CAE
-:105590008F2D0E94D914C0E0D0E0082F10E09801B0
-:1055A0000C2E02C0359527950A94E2F720FD05C020
-:1055B0002196C630D10599F709C06C2F7F2D80E068
-:1055C0000E94A015E812F4CF81E005C0F3948EE0AC
-:1055D000F812DECF80E0DF91CF911F910F91FF9005
-:1055E000EF900895CF93C82F8CE20E94C02A8823A1
-:1055F00021F08C2FCF910C94C02A80E0CF91089598
-:10560000CF930E94452C811102C00E942B2CC5E62D
-:10561000C15049F00E94EC138FE39CE90197F1F728
-:1056200000C00000F5CF89E20E94F22A811111C169
-:105630008AE20E94F22A81110E942B2C85E00E94AE
-:10564000F22A81110E949D2A0E94502C8093CE0143
-:1056500087E00E94F22A882399F18BE10E94F22AC6
-:10566000882351F09091CE0191FB882780F921E0A9
-:10567000822780FB91F922C08EE00E94F22A8823C3
-:1056800051F09091CE0192FB882780F921E082278A
-:1056900080FB92F913C080E10E94F22A9091CE0122
-:1056A000882341F093FB882780F921E0822780FB43
-:1056B00093F904C0892F809580FB90F99093CE01D7
-:1056C0008091CE010E94542C0E94622C8093E101B3
-:1056D00080EE0E94F22A882341F08091E101982F08
-:1056E000909590FB80F98093E10189E30E94F22A72
-:1056F000882359F09091E10191FB882780F921E0FE
-:10570000822780FB91F99093E10182EE0E94F22AB8
-:10571000882359F09091E10192FB882780F921E0DC
-:10572000822780FB92F99093E10186EE0E94F22A93
-:10573000882359F09091E10193FB882780F921E0BB
-:10574000822780FB93F99093E10183EE0E94F22A75
-:10575000882359F09091E10194FB882780F921E09A
-:10576000822780FB94F99093E10185E30E94F22A5D
-:10577000882359F09091E10195FB882780F921E079
-:10578000822780FB95F99093E10181E30E94F22A40
-:10579000882359F09091E10196FB882780F921E058
-:1057A000822780FB96F99093E10181E10E94F22A21
-:1057B000882359F09091E10197FB882780F921E037
-:1057C000822780FB97F99093E1018091E1010E948B
-:1057D000662C8091E10187FB882780F980930D0179
-:1057E00087E20E94F22AC82F8EE10E94F22A8111DC
-:1057F000C2608FE10E94F22A8111C46080E20E949F
-:10580000F22A8111C86081E20E94F22A8111C061EE
-:1058100082E20E94F22A8111C06283E20E94F22A8F
-:105820008111C06484E20E94F22A882311F0C068CA
-:1058300002C0CC2329F08C2F0E945D2C6C2F03C05A
-:105840000E94592C682F70E080E090E0CF910C947A
-:105850005527CF9108956DEE7EEF80E090E00E9495
-:10586000813260E082E090E00E94733260E083E089
-:1058700090E00E94733260E084E090E00E94733216
-:1058800060E085E090E00C94733280E090E00E944C
-:105890006D3221E08D3E9E4F09F020E0822F089569
-:1058A00082E090E00C946532682F82E090E00C94E6
-:1058B000733283E090E00C946532682F83E090E0CF
-:1058C0000C94733284E090E00C946532682F84E08D
-:1058D00090E00C9473328091D60180FF0BC06091F0
-:1058E000130185E0689FB001112475956795759542
-:1058F00067952AC081FF09C06091130185E0689F08
-:10590000B0011124759567951FC082FF07C0609193
-:10591000130185E0689FB001112416C04091D701A2
-:105920004423C9F060911201461788F720911301B2
-:1059300085E0289F90011124429FC001439F900D54
-:10594000112470E00E9437326038710540F461150F
-:10595000710539F002C065E070E0862F08958FE789
-:10596000089581E008958091D60180FF08C060917C
-:10597000110170E0759567957595679521C081FF58
-:1059800006C06091110170E07595679519C082FF9E
-:1059900004C06091110170E010C08091D70188238C
-:1059A000C1F0609110018617A0F790911101989FA6
-:1059B000C001112470E00E9437326038710528F46C
-:1059C0006115710521F0862F08958FE7089581E014
-:1059D000089561E070E0F4CF803F21F40E946B2CC9
-:1059E000819504C0813F29F40E946B2C8093DA01D9
-:1059F0000895823F21F40E946B2C819504C0833F5F
-:105A000029F40E946B2C8093D9010895893F19F4E1
-:105A10000E94B32C05C08A3F31F40E94B32C8195BB
-:105A20008093DB0108958B3F21F40E94B32C819574
-:105A300004C08C3F29F40E94B32C8093DC010895AC
-:105A4000843F21F48091D801816017C0853F21F403
-:105A50008091D801826011C0863F21F48091D801E5
-:105A600084600BC0873F21F48091D801886005C015
-:105A7000883F31F48091D80180618093D8010895E6
-:105A80008D3F21F48091D60181600BC08E3F21F4BF
-:105A90008091D601826005C08F3F29F48091D601A4
-:105AA00084608093D6010895803F39F48091DA01B3
-:105AB00087FF6CC01092DA0169C0813F29F48091A0
-:105AC000DA011816BCF362C09091D901823F29F423
-:105AD00097FF5CC01092D90159C0833F19F4191681
-:105AE000CCF354C0893F41F48091DB0118160CF0CF
-:105AF0004DC01092DB014AC08A3F29F48091DB013E
-:105B000087FF44C0F6CF8B3F39F48091DC0187FFDB
-:105B10003DC01092DC013AC08C3F29F48091DC0139
-:105B20001816BCF333C0843F21F48091D8018E7FD6
-:105B300017C0853F21F48091D8018D7F11C0863F29
-:105B400021F48091D8018B7F0BC0873F21F4809195
-:105B5000D801877F05C0883F31F48091D8018F7EBE
-:105B60008093D80113C08D3F21F48091D6018E7FA0
-:105B70000BC08E3F21F48091D6018D7F05C08F3FF1
-:105B800029F48091D6018B7F8093D6018091D90131
-:105B900081110EC08091DA0181110AC08091DB0170
-:105BA000811106C08091DC01811102C01092D701E1
-:105BB000089588ED91E00E940F1E0E94432A909361
-:105BC000D5018093D40108951F93CF93DF938091E3
-:105BD000D4019091D5010E944F2A4091D7014423CE
-:105BE00021F02091140130E006C0209115015AE007
-:105BF000259F900111248217930708F482C0809199
-:105C0000D9011091DA01D091DB01C091DC01811141
-:105C100007C0111105C0D11103C0CC2309F471C014
-:105C20004F3F19F04F5F4093D701181624F40E949C
-:105C30006B2C8093D9018091D90187FF05C00E9408
-:105C40006B2C81958093D901111624F40E946B2C42
-:105C50008093DA018091DA0187FF05C00E946B2CE6
-:105C600081958093DA016091D901662339F1109111
-:105C7000DA01112319F1772767FD7095872F972F88
-:105C80000E94483123E333E343E35FE30E94AC31F6
-:105C90000E9415316093D901612F772767FD7095B8
-:105CA000872F972F0E94483123E333E343E35FE3D9
-:105CB0000E94AC310E9415316093DA011D1624F464
-:105CC0000E94B32C8093DB018091DB0187FF05C02C
-:105CD0000E94B32C81958093DB011C1624F40E9452
-:105CE000B32C8093DC018091DC0187FF05C00E940A
-:105CF000B32C81958093DC01DF91CF911F910C949F
-:105D0000D92DDF91CF911F910895E8EDF1E085E065
-:105D1000DF011D928A95E9F71092D7011092D60102
-:105D20000895833081F128F4813059F08230D1F028
-:105D30000895853009F449C0B8F1863009F456C099
-:105D4000089520911501862F90E0820F911D8F3FBD
-:105D5000910520F4620F6093150108958FEF8093F1
-:105D60001501089520911401862F90E0820F911D56
-:105D70008F3F910520F4620F6093140108958FEF17
-:105D800080931401089520911301862F90E0820FD3
-:105D9000911D8F3F910520F4620F609313010895C8
-:105DA0008FEF80931301089520911201862F90E0C8
-:105DB000820F911D8F3F910520F4620F60931201B5
-:105DC00008958FEF80931201089520911101862F7D
-:105DD00090E0820F911D8F3F910520F4620F609338
-:105DE000110108958FEF8093110108952091100102
-:105DF000862F90E0820F911D8F3F910520F4620F56
-:105E00006093100108958FEF8093100108958330FF
-:105E100011F128F4813049F0823091F008958530F5
-:105E200081F120F18630C1F1089580911501681744
-:105E300020F4861B80931501089510921501089592
-:105E400080911401681720F4861B80931401089533
-:105E500010921401089580911301681720F4861B95
-:105E600080931301089510921301089580911201F7
-:105E7000681720F4861B8093120108951092120176
-:105E8000089580911101681720F4861B80931101F9
-:105E9000089510921101089580911001681720F45F
-:105EA000861B8093100108951092100108958D3182
-:105EB00009F442C020F58E3009F479C070F48730BF
-:105EC00009F45EC020F4863009F442C033C0883043
-:105ED000D1F18B3009F4A7C02DC0863109F4A3C0DD
-:105EE00038F4803109F46DC0813109F47BC022C0DF
-:105EF000893109F498C08B3109F44FC01BC0853338
-:105F000009F479C048F4873209F475C008F478C000
-:105F1000893209F470C00EC0833438F48A3308F033
-:105F200071C0883309F47FC005C0833409F463C0AD
-:105F30008834C1F080E008950E94CF300E94F81D9F
-:105F40000E94FD1670C00E94502C0E94622C6BC0F3
-:105F50008091CE01817F8E7F8093CE0181E08093FE
-:105F6000DE0108950E9459232FEF83ED90E3215025
-:105F700080409040E1F700C000000E949D2A53C07D
-:105F80009091CE01892F817090FF03C0917F9E7FF9
-:105F900026C091609093CE0146C09091CE0191FBB6
-:105FA000882780F921E0822780FB91F913C0909126
-:105FB000CE0192FB882780F921E0822780FB92F9AD
-:105FC00009C09091CE0193FB882780F921E08227B8
-:105FD00080FB93F99093CE01882329F191609093EF
-:105FE000CE0108950E94592380910D0191E08927E7
-:105FF00080930D0118C061E070E080E090E00FC078
-:1060000023EE01C027EC280F61E070E080E090E013
-:1060100004C0660F771F881F991F2A95D2F70E9428
-:1060200055270E94592381E0089580E0089580E07B
-:106030000895CF93C82F8091DE01813079F018F058
-:106040008230D1F184C0A0910E01B0910F018C91EA
-:10605000813169F0823209F07CC009C0A0910E0143
-:10606000B0910F018C91813111F0823249F48C2F63
-:106070000E94153081111DC08C2F0E94572F1AC00D
-:106080008C2F0E941730811114C0C43179F048F46C
-:10609000CB3079F0C03109F060C082E08093DE013E
-:1060A00008C0C93219F0C83321F057C01092DE0180
-:1060B00054C081E0817053C0C93289F118F5C431F0
-:1060C00071F1A8F4C73009F046C08AE08093150149
-:1060D00094E19093140193E0909313018093120143
-:1060E00088E08093110188E28093100134C0CE5182
-:1060F000C63088F5EC2FF0E0E65DFE4F808180939E
-:10610000DD0129C0CE34E9F020F4CB3421F56AE07A
-:1061100013C0C13579F0C235F1F461E00DC0809152
-:10612000DD01882319F01092DD0115C081E0809314
-:10613000DE0115C061E006C08091DD010E94912E54
-:106140000AC06AE08091DD010E94072F04C010920E
-:10615000DE0180E004C081E002C080E0ABCFCF91DF
-:106160000895E1E8F0E0808188608083808181602B
-:1061700080838FB7F89493E09093890090ED90938B
-:1061800088008FBF0895EFE6F0E080818260808311
-:106190000895EFE6F0E080818D7F80830895EFE63B
-:1061A000F0E0808192E08927808308951F920F920A
-:1061B0000FB60F9211242F933F934F935F936F93DA
-:1061C0007F938F939F93AF93BF93EF93FF938091B0
-:1061D000DF019091E00101969093E0018093DF014F
-:1061E000811103C082E00E94FD16E091E001E69576
-:1061F000E695F0E0E65CF04EE4918091DF018E13CD
-:1062000003C080E00E94FD16FF91EF91BF91AF9116
-:106210009F918F917F916F915F914F913F912F91BE
-:106220000F900FBE0F901F90189504D06894B11175
-:106230008DC0089570D088F09F5790F0B92F99279E
-:10624000B751A0F0D1F0660F771F881F991F1AF081
-:10625000BA95C9F712C0B13081F077D0B1E0089596
-:1062600074C0672F782F8827B85F39F0B93FCCF317
-:10627000869577956795B395D9F73EF49095809577
-:10628000709561957F4F8F4F9F4F0895E89409C097
-:1062900097FB3EF490958095709561957F4F8F4F59
-:1062A0009F4F9923A9F0F92F96E9BB279395F6956F
-:1062B000879577956795B795F111F8CFFAF4BB0FED
-:1062C00011F460FF1BC06F5F7F4F8F4F9F4F16C051
-:1062D000882311F096E911C0772321F09EE8872FDB
-:1062E000762F05C0662371F096E8862F70E060E097
-:1062F0002AF09A95660F771F881FDAF7880F969510
-:10630000879597F9089557FD9058440F551F59F0F8
-:106310005F3F71F04795880F97FB991F61F09F3F92
-:1063200079F087950895121613061406551FF2CFBB
-:106330004695F1DF08C0161617061806991FF1CF0B
-:1063400086957105610508940895E894BB27662732
-:106350007727CB0197F908950BD078C069D028F042
-:106360006ED018F0952309F05AC05FC01124EECF0B
-:10637000CADFA0F3959FD1F3950F50E0551F629FA0
-:10638000F001729FBB27F00DB11D639FAA27F00D8E
-:10639000B11DAA1F649F6627B00DA11D661F829FB5
-:1063A0002227B00DA11D621F739FB00DA11D621F9A
-:1063B000839FA00D611D221F749F3327A00D611DB7
-:1063C000231F849F600D211D822F762F6A2F112499
-:1063D0009F5750408AF0E1F088234AF0EE0FFF1FEC
-:1063E000BB1F661F771F881F91505040A9F79E3F23
-:1063F000510570F014C0AACF5F3FECF3983EDCF378
-:10640000869577956795B795F795E7959F5FC1F75F
-:10641000FE2B880F911D9695879597F9089597F90A
-:106420009F6780E870E060E008959FEF80EC08953A
-:1064300000240A9416161706180609060895002463
-:106440000A9412161306140605060895092E0394DD
-:10645000000C11F4882352F0BB0F40F4BF2B11F451
-:1064600060FF04C06F5F7F4F8F4F9F4F089597FB72
-:10647000072E16F4009407D077FD09D00E94513200
-:1064800007FC05D03EF4909581959F4F0895709537
-:1064900061957F4F0895EE0FFF1F0590F491E02D59
-:1064A0000994AA1BBB1B51E107C0AA1FBB1FA6175B
-:1064B000B70710F0A61BB70B881F991F5A95A9F7AD
-:1064C00080959095BC01CD010895F999FECF92BDBC
-:1064D00081BDF89A992780B50895A8E1B0E042E01F
-:1064E00050E00C948832262FF999FECF1FBA92BD46
-:1064F00081BD20BD0FB6F894FA9AF99A0FBE0196A5
-:1065000008950E947332272F0C947432DC01CB0162
-:10651000FC01F999FECF06C0F2BDE1BDF89A3196B3
-:1065200000B40D9241505040B8F70895F894FFCF51
-:106530002002FF168C176917351702170101BC01DD
-:1065400028080A03140A3F4D3639FB1EAE1E781E7A
-:106550003F1ED21DEB1D041E1D1E01020304050675
-:04656000070809001F
+:100000000C9412040C9456040C9456040C9456044C
+:100010000C9456040C9456040C9456040C945604F8
+:100020000C9456040C9456040C944F0F0C9421100D
+:100030000C9456040C9456040C9456040C945604D8
+:100040000C9456040C94D6240C9456040C94560428
+:100050000C9456040C94751E0C9456040C9456047F
+:100060000C9456040C9456040C9456040C945604A8
+:100070000C9456040C9456040C9456040C94560498
+:100080000C9456040C9456040C9456040C94560488
+:100090000C9456040C9456040C9456040C94560478
+:1000A0000C9456040C9456040C945604A305700545
+:1000B0005B05B505DC050F06F105F7050C063A06EC
+:1000C0002F06FA0532064605EB0523062C066D05BC
+:1000D0006405B205A905910567052605BE05140648
+:1000E0001D0629069705C705A60540051A06E5055C
+:1000F00088059D0594057C0520068B053105E805DE
+:100100008205C1052005AC055E054C057605730525
+:10011000CA059A05060637058505AF052305B80506
+:1001200003060906D3055505EE0543056A054F0587
+:10013000C405F40535062905A005BB05FD05CD055B
+:1001400052052606E2053D058E055805D9056105CF
+:1001500000063A05D005DF052C0549053F061706C0
+:1001600079053405D6057F0514058610A81093116E
+:10017000A8109311EA100D119311621175116E14EC
+:100180006E149C149C14DE141A151A171A173215C3
+:100190001A1729162916F4161A171A1708170552CE
+:1001A000045201520352010000001E001B001800FF
+:1001B0002F00010029001F0013000C003300E30092
+:1001C000E1002000090004003400E2002A002100C0
+:1001D0001A0008000600E000650022000A00120074
+:1001E0001900000049002E004A0000004D000000E8
+:1001F00002542E02025400002B0000005E30230047
+:100200000B001600050000004C0024000D0011003A
+:100210001000E4004B0025000E0015003600E6003B
+:100220002C0026000F001700370050002800270080
+:1002300014000700520051004E0035001C002D0034
+:100240001D004F000000010001000100010001003D
+:1002500000001E02300238020100010001001F02EE
+:10026000641438003000010001002002240223023F
+:1002700027020100010001002414251401000100DF
+:1002800001000100271426140100000001000100F4
+:100290000100000001000000010001000100000059
+:1002A0000100000001000100310021022D140000B6
+:1002B000010001006400250222020100010001008A
+:1002C0006402260236020100010001000100301420
+:1002D00037023830010035021F023102553002303A
+:1002E0000100010001002D0201003D30000001006D
+:1002F000010001000100010000003A0001000100BE
+:100300000100010001003B000100010001000100AB
+:1003100001003C00010001000100010001003D005E
+:10032000010001000100010001003E000100010088
+:100330000100000001004400010000000100000075
+:1003400001004500010000005300000001003F00D3
+:100350000100010001000000010040005F005C009E
+:10036000590062000100410060005D005A008500F4
+:100370000100420061005E005B0063000100430079
+:100380005500560057005800010067005400560001
+:1003900057005800000001000100010001000100A9
+:1003A00000004D30393001005B3001000100513058
+:1003B00058303C303B300100010050300130141403
+:1003C0005D30010001004A30593008145C300100F2
+:1003D0000100493057300430003000000100053082
+:1003E0000100000001000000010001000100000008
+:1003F0000100000001004F305A3037301E0200006B
+:1004000001004E3001004B30010001000100483076
+:10041000563054305330010001004C30010003309D
+:100420003A300100010052300100010001000100DA
+:1004300001000100010001000100010000000100B5
+:100440000100010001000100000042302030343082
+:1004500001000100010046302E302630333001000B
+:10046000010045302D301E300100010001004030F8
+:100470002B3022300100010001003F3025302C30AC
+:100480000100000001000100010000000100000067
+:1004900001000100010000000100000001004430E3
+:1004A000233031301F3000000100433035302A3016
+:1004B0002930010001003E302730303001000100BA
+:1004C0000100413028303230010001000100473086
+:1004D000010021300100010001000100363024300C
+:1004E0002F300100000001000100010001000100A7
+:1004F0000000010008301B30010001000100010074
+:1005000015300D301A3001000100010014300630A2
+:10051000010001000100010012300A300100010059
+:10052000010001000C301330010000000100010047
+:1005300001000000010000000100010001000000B6
+:1005400001000000010001000B30183007300000EE
+:10055000010001001C3011301030010001000100C9
+:100560000E30173001000100010001000F3019307A
+:10057000010001000100010001000930010001003B
+:10058000010001001D3001001630010000000100D3
+:100590000100010001000100000001000100010054
+:1005A0000100010001000100010001000100010043
+:1005B0000100010001000100010001000100010033
+:1005C0000100010001000100010001000100010023
+:1005D0000100000001000100010000000100000016
+:1005E0000100010001000000010000000100010005
+:1005F00001000100010000000100010001000100F4
+:1006000001000100010001000100010001000100E2
+:1006100001000100010001000100010001000100D2
+:1006200001000100010001000100010001000100C2
+:1006300001000100000016034500720067006F0012
+:1006400044006F007800200045005A0000001603A7
+:100650004500720067006F0044006F0078002000C2
+:1006600045005A0000000403090409026D0004015A
+:1006700000A0FA0904000001030101000921110191
+:100680000001223F000705810308000A0904010058
+:100690000103010200092111010001224D0007059B
+:1006A000820308000A090402000103000000092176
+:1006B000110100012236000705830308000A09041E
+:1006C000030001030000000921110100012239008B
+:1006D000070584031000011201100100000008ED5D
+:1006E000FE071301000102000105010906A1010531
+:1006F0000719E029E7150025019508750181020514
+:100700000819012905950575019102950175039157
+:1007100001050719002977150025019578750181D4
+:1007200002C005010980A101850216010026B7005B
+:100730001A01002AB700751095018100C0050C0947
+:1007400001A1018503160100269C021A01002A9CC2
+:1007500002751095018100C005010902A10109017E
+:10076000A100050919012905150025019505750147
+:100770008102950175038101050109300931158157
+:10078000257F95027508810609381581257F950119
+:1007900075088106050C0A38021581257F950175BB
+:1007A000088106C0C005010906A101050719E02955
+:1007B000E7150025019508750181029501750881ED
+:1007C0000105081901290595057501910295017525
+:1007D0000391010507190029FF150025FF950675EE
+:1007E000088100C0000000000000000000000001BF
+:1007F0000204060A0F17202C3A4A5D71879DB3C781
+:10080000DAE9F5FCFFFCF5E9DAC7B39D87715D4ACB
+:100810003A2C20170F0A0604020100000000000015
+:100820000000000011241FBECFEFDAE0DEBFCDBF15
+:1008300004B603FE24C08091F1019091F201A091D1
+:10084000F301B091F4018730904BA740B04BB9F45D
+:100850001092F1011092F2011092F3011092F40142
+:1008600014BE84B7877F84BF88E10FB6F894809365
+:100870006000109260000FBEE0E0FFE3099511E018
+:10088000A0E0B1E0E0E3FDE402C005900D92A433E6
+:10089000B107D9F711E0A4E3B1E001C01D92A13F77
+:1008A000B107E1F70E94950C0C9496260C94000079
+:1008B000282F882341F090E02A3018F4885A9F4F5F
+:1008C00008950697089582E690E008950F931F9388
+:1008D000CF93DF938C01EB0180913401909135012E
+:1008E000009709F448C0019709F089C080EE0E9482
+:1008F000F71281EE0E94F71288E10E94F71288E158
+:100900000E94BF13C801807F992724E096958795A0
+:100910002A95E1F70E945804182F0E94F712812FA0
+:100920000E94BF13802F8F700E945804182F0E94BE
+:10093000F712812F0E94BF13CE01807F992734E0E8
+:10094000969587953A95E1F70E945804D82F0E9412
+:10095000F7128D2F0E94BF138C2F8F700E945804A6
+:10096000C82F0E94F7128C2F0E94BF1380EE0E94A6
+:10097000BF1381EE3EC082EE0E94F71287E50E940F
+:10098000F71287E50E94BF13C801807F992744E0D2
+:10099000969587954A95E1F70E945804182F0E9472
+:1009A000F712812F0E94BF13802F8F700E9458046E
+:1009B000182F0E94F712812F0E94BF13CE01807F53
+:1009C000992754E0969587955A95E1F70E94580427
+:1009D000D82F0E94F7128D2F0E94BF138C2F8F707B
+:1009E0000E945804C82F0E94F7128C2F0E94BF1338
+:1009F00082EEDF91CF911F910F910C94BF13DF9185
+:100A0000CF911F910F910895FC018281882309F4F1
+:100A10003CC1862F90E08F35910508F036C1FC016E
+:100A2000EA5AFF4F0C944B26809134019091350186
+:100A3000019681709927909335018093340125C1E7
+:100A40006FEB70E019C160E970E008C061EA70E026
+:100A500013C163E870E00BC16BE570E081E290E0E8
+:100A600012C16BEB70E008C163E570E0F7CF6EEB8D
+:100A700070E002C164E070E0D4C069EB70E001C1D5
+:100A800062EB70E0F9C065E870E0F1C069E970E020
+:100A9000F3C065E570E0E2CF68EC70E0EDC069E8B6
+:100AA00070E0E5C064E770E0E2C062E970E0D6CFD4
+:100AB00066E770E0DCC063E970E0D0CF60EC70E026
+:100AC000DBC062EB70E0DDC069EA70E0D5C068EAC7
+:100AD00070E0D2C064E870E0CAC06DE970E0CCC0DC
+:100AE00067EF70E0CEC063EC70E0C6C061EC70E010
+:100AF000C3C069E570E0B2CF63EB70E0BDC064E5F0
+:100B000070E0ACCF6DEB70E0B7C066EB70E0B4C0E6
+:100B100065EB70E0B1C06AEB70E0AEC067E770E013
+:100B2000A6C060EA70E0A8C062EC70E0A5C06EE903
+:100B300070E0A2C068EB70E09FC067EB70E09CC003
+:100B400062E870E094C063E470E06BC061EB70E059
+:100B500093C066EA70E090C066EC70E08DC06EE114
+:100B600070E05FC06FE970E087C068E070E059C076
+:100B700067ED70E086C060E870E079C063EA70E01D
+:100B80007BC069EC70E078C061E870E070C066E935
+:100B900070E072C064EC70E06FC065E770E067C041
+:100BA00063E070E03EC061EB70E06BC06EEB70E044
+:100BB00068C063EB70E065C065E070E032C061E979
+:100BC00070E04CCF69E770E052C064EB70E054C055
+:100BD0006CEB70E051C06AE970E04EC068E870E00C
+:100BE00046C061E970E048C067E870E040C062E973
+:100BF00070E042C067E970E03FC068E770E037C06E
+:100C000060E770E034C069E070E00BC065EC70E054
+:100C100033C060E670E005C067EA70E02DC060E0B8
+:100C200070E082E290E02FC064EA70E025C06CEBD7
+:100C300070E027C067EC70E01FC068E970E01CC07E
+:100C400069EB70E019C06BE970E016C06FE770E007
+:100C50000EC065EA70E010C06CE970E00DC065E997
+:100C600070E00AC063E970E007C066E870E080E207
+:100C700090E009C064E970E083E090E004C06DEBAF
+:100C800070E080E090E00E94660480E090E00895CB
+:100C900008956091B3017091B4018091B501909174
+:100CA000B6010E94A11D56985E9825982D98269809
+:100CB0002E9827982F988330A9F028F4813051F08E
+:100CC000823069F012C0843041F0853071F4259A89
+:100CD0002D9A08C0259A2D9A0895259A2D9A269A1C
+:100CE0002E9A0895279A2F9A089556985E980895F7
+:100CF0000C94490656985E9825982D9826982E981B
+:100D000027982F988FEF90E0909389008093880028
+:100D100090938B0080938A0090938D0080938C0039
+:100D2000259A2D9A2FEF80E792E021508040904045
+:100D3000E1F700C00000269A2E9A2FEF80E792E09C
+:100D4000215080409040E1F700C00000279A2F9A80
+:100D50002FEF80E792E0215080409040E1F700C003
+:100D6000000025982D982FEF80E792E021508040D9
+:100D70009040E1F700C0000026982E982FEF80E702
+:100D800092E0215080409040E1F700C00000279899
+:100D90002F9856985E9825982D9826982E982798E3
+:100DA0002F98089589EA8093800089E080938100DC
+:100DB00024982C983F988AB18F748AB96E98479A74
+:100DC0008BB1806B8BB9769A0E947A060C94480698
+:100DD00080E2809300018091360181110EC00E9453
+:100DE000370781E0809336012FEF83ED90E32150A8
+:100DF00080409040E1F700C0000080E40E943D0781
+:100E00008093000181112EC00E946707809300012A
+:100E1000811128C00E94670780930001811122C0C0
+:100E20008FE30E9467078093000181111BC00E941D
+:100E30005F0780E40E943D0780930001811112C08A
+:100E40008CE00E9467078093000181110BC00E9413
+:100E5000670780930001811105C08FE30E94670737
+:100E6000809300010E945F07809100010895109215
+:100E7000B9008AE08093B800089594EA9093BC008A
+:100E80009091BC0097FFFCCF9091B900987F98306B
+:100E900021F0903111F081E008958093BB0084E847
+:100EA0008093BC008091BC0087FFFCCF8091B9008B
+:100EB000887F883111F0803471F780E0089584E9EB
+:100EC0008093BC008091BC0084FDFCCF089580938A
+:100ED000BB0084E88093BC008091BC0087FFFCCFFE
+:100EE0009091B900987F81E0983209F480E00895EC
+:100EF00084E88093BC008091BC0087FFFCCF809188
+:100F0000BB00089580910001811115C080E40E940A
+:100F10003D078093000181110CC082E10E946707A8
+:100F200080930001811105C08FEF0E9467078093B5
+:100F300000010E945F0784B1807F84B985B1807F02
+:100F400085B98AB1837F8AB98BB1837F8BB93E988B
+:100F5000469808950E94E806809300010E94820747
+:100F600080B38C7080BB81B3836F81BBE6E4F1E01A
+:100F7000A8E3B1E011921D9281E0E435F807D1F7C2
+:100F80000C94D206BF92CF92DF92EF92FF920F9312
+:100F90001F93CF93DF9380910001882379F0809194
+:100FA00037018F5F80933701811108C00E94E806E6
+:100FB00080930001811102C00E947A0608E311E0CB
+:100FC000C0E0D0E0DD24D39482E0C82EEE24E39488
+:100FD000F12CC73000F580910001811162C080E4DE
+:100FE0000E943D0780930001811112C082E10E949E
+:100FF00067078093000181110BC0C7010C2E01C04F
+:10100000880F0A94EAF780950E9467078093000191
+:101010000E945F0746C0CA30A1F028F4C83059F0DA
+:10102000C93061F005C0CC3089F070F0CD3089F066
+:10103000209A289810C0219A29980DC0229A2A989F
+:101040000AC0239A2B9807C0529A01C0539A5B9802
+:1010500002C03E9A4698E0EAEA95F1F78FB1799995
+:101060005AC092E081708D25892B7C9B02C090E054
+:1010700001C094E0892B7D9B02C090E001C098E004
+:10108000892B7E9B02C090E001C090E1892B9FB12B
+:101090009095991F9927991F9295990F907E892B6A
+:1010A0000FC08091000181114BC080E40E943D0778
+:1010B00080930001882389F1B12C0E945F078B2D5A
+:1010C000F8019081981719F08083C09201010E9465
+:1010D000820721960F5F1F4FCE30D10509F079CFDF
+:1010E00080910101882371F181508093010188234F
+:1010F00039F08FE99FE00197F1F700C0000022C0AE
+:10110000A6E4B1E0E8E3F1E081918D9391E0E6346B
+:10111000F907D1F717C090E0A5CF83E10E946707D8
+:10112000809300018111C8CF81E40E943D07809324
+:1011300000018111C1CF0E947807B82EB094BDCFB5
+:1011400080E0BECF0E94780681E0DF91CF911F91B1
+:101150000F91FF90EF90DF90CF90BF900895E82F10
+:10116000F0E0EA5BFE4F8081089508958B3B910586
+:1011700078F4883A910540F5853A9105D0F48430A9
+:10118000910508F0B1C08130910509F4ADC06BC084
+:10119000803E910508F467C0883E910508F4A4C01C
+:1011A0009C01205F31092031310508F05CC0906559
+:1011B0000895853A910509F459C0863A910509F4D4
+:1011C00058C083E890E40895883A910509F454C022
+:1011D000893A910509F453C08A3A910509F452C03D
+:1011E0008B3A910509F451C08C3A910509F450C02D
+:1011F0008D3A910509F44FC0803B910509F44EC02A
+:101200008E3A910509F44DC08F3A910509F44CC00E
+:10121000813B910509F44BC0823B910509F44AC01A
+:10122000833B910509F449C0843B910509F448C00A
+:10123000853B910509F447C0863B910509F446C0FA
+:10124000873B910509F445C0883B910509F444C0EA
+:10125000893B910509F443C08A3B910509F042C0DE
+:101260008AE296E4089580E090E0089581E890E4B1
+:10127000089582E890E4089582EE94E4089589EE5A
+:1012800094E408958AEE94E4089585EB94E4089537
+:1012900086EB94E4089587EB94E408958CEC94E451
+:1012A00008958DEC94E4089583E895E408958AE820
+:1012B00095E4089582E995E4089584E995E4089514
+:1012C00081E296E4089583E296E4089584E296E448
+:1012D000089585E296E4089586E296E4089587E20B
+:1012E00096E4089580E094E40895089596E0799F47
+:1012F000F001112494E5899FE00DF11D1124E60F02
+:10130000F11DEE0FFF1FE256FE4F85919491089557
+:10131000880F991F825E9F4FFC01859194910895DB
+:10132000880F991F82569E4FFC01859194910895D4
+:1013300026E0729FF001112444E5849FE00DF11D29
+:101340001124E60FF11DEE0FFF1FE256FE4F25910F
+:101350003491C9019A9581159F4110F4C9010895EE
+:10136000C90190528115904128F4C9019F700E94D3
+:1013700090090895C90190538115904120F4C90145
+:101380009927906C0895211580E5380769F40E942B
+:101390003D179FEF24E34CE0915020404040E1F79F
+:1013A00000C000000C949A1E213080E5380731F40B
+:1013B0008091CF0181608093CF010895C90190553C
+:1013C0008115904108F050C0832F99278F7099277D
+:1013D00081309105D9F4A9014370552702C0880FC7
+:1013E000991F4A95E2F79C68A90164E0440F551FD4
+:1013F0006A95E1F744275370842B952B73E0220FF5
+:10140000331F7A95E1F7207633271DC0823091058E
+:1014100029F4922F8827816F906A0895833091056F
+:10142000A9F4A9014370552781E090E002C0880F1C
+:10143000991F4A95E2F79C6843E0220F331F4A95B3
+:10144000E1F7207E3770822B932B08950497F1F4F7
+:10145000A9014370552781E090E002C0880F991FD1
+:101460004A95E2F79A68E8CFC901905781159041F3
+:1014700020F4C9019F7090620895C90190588115A8
+:10148000904120F4C9019F70906A0895203E310573
+:10149000E0F4203C310558F52133310509F470C0E2
+:1014A00048F42932310509F464C02A32310509F4BF
+:1014B0006EC074C029333105F1F022383105D9F0FE
+:1014C0002533310509F44EC069C0233E310589F149
+:1014D00038F4203E3105C1F0223E3105E1F05EC016
+:1014E000263E310569F1273E3105A9F157C0C901F2
+:1014F0000E94880908958091E20180FD02C081FF69
+:101500004DC080EE90E04BC08091E20180FFF9CFAA
+:1015100089E390E044C08091E20182FF0EC0809197
+:10152000E20184FF03C080E090E039C083EE90E0E8
+:1015300036C08091E20182FFF2CF82EE90E02FC0B0
+:101540008091E20183FF0BC08091E20184FDEBCF2B
+:1015500087EE90E024C08091E20183FFF5CF86EE14
+:1015600090E01DC08091E20185FF07C089E290E014
+:1015700016C08091E20185FFF9CF85E390E00FC0AE
+:101580008091E20186FF07C08AE290E008C0809166
+:10159000E20186FFF9CF81E390E001C0C9010E941A
+:1015A000B608089508950C94D20A809164010895B4
+:1015B000CF93DF9300D01F92CDB7DEB72091E80123
+:1015C000243019F523E029839B838A832093E90043
+:1015D0008FEF9091E800815095FD06C095ED9A95AA
+:1015E000F1F700008111F5CF8091E80085FF0DC073
+:1015F00040E050E063E070E0CE0101960E94420DB1
+:101600008091E8008E778093E8000F900F900F9004
+:10161000DF91CF910895CF93DF9300D01F92CDB784
+:10162000DEB72091E801243021F522E029839B8355
+:101630008A8383E08093E9008FEF9091E8008150E6
+:1016400095FD06C095ED9A95F1F700008111F5CF53
+:101650008091E80085FF0DC040E050E063E070E05D
+:10166000CE0101960E94420D8091E8008E77809312
+:10167000E8000F900F900F90DF91CF910895209187
+:10168000E8012430F1F422E02093E9002FEF3091BB
+:10169000E800215035FD06C035ED3A95F1F7000020
+:1016A0002111F5CF2091E80025FF0BC040E050E06C
+:1016B00065E070E00E94420D8091E8008E77809393
+:1016C000E8000895CF93DF93EC018091E801843026
+:1016D00009F046C090910C019923D9F090910D0129
+:1016E0009923B9F08093E9008FEF9091E800815041
+:1016F00095FD06C095E19A95F1F700008111F5CFAF
+:101700008091E80085FF2CC040E050E060E170E08F
+:1017100017C081E08093E9008FEF9091E80081503D
+:1017200095FD06C095ED9A95F1F700008111F5CF72
+:101730008091E80085FF14C040E050E068E070E070
+:10174000CE010E94420D8091E8008E778093E800E0
+:1017500080E1FE01A4E5B1E001900D928A95E1F7E8
+:10176000DF91CF9108958091E701811109C00E9416
+:10177000D40E0E94310F8091E20084608093E200D9
+:1017800008951092E701089508950C94C3240E94CF
+:10179000311E0E94C9240E94CE110C94D30A42E04B
+:1017A00061EC81E00E944E0E42E061EC82E00E941A
+:1017B0004E0E42E061EC83E00E944E0E42E161EC8D
+:1017C00084E00C944E0E8091EA01833009F455C0F8
+:1017D00030F4813071F0823009F48EC008958A307F
+:1017E00009F47AC08B3009F460C0893009F09CC0DC
+:1017F00020C08091E901813A09F096C08091E8000B
+:10180000877F8093E8008091ED019091EE01892B14
+:1018100021F060E080E090E003C060E184E591E0C9
+:1018200070E00E948B0D8091E8008B778093E80038
+:1018300008958091E901813209F076C08091ED012F
+:101840009091EE01009719F0039709F06DC0809117
+:10185000E800877F8093E8008091E80082FD05C062
+:101860008091E8018111F8CF5FC08091F1008093F1
+:1018700064018091E8008B7753C08091E901813A3F
+:1018800009F052C08091ED019091EE01892B09F091
+:101890004BC08091E800877F8093E8008091E8004A
+:1018A00080FFFCCF80910C0136C08091E90181322C
+:1018B000D9F58091ED019091EE01892BA9F58091E8
+:1018C000E800877F8093E8000E94830E8091EB01FF
+:1018D00080930C010C943D178091E901813221F530
+:1018E0008091E800877F8093E8000E94830E8091BA
+:1018F000EC018093650108958091E901813AA1F49A
+:101900008091E800877F8093E8008091E80080FF65
+:10191000FCCF809165018093F1008091E8008E7783
+:101920008093E8000C94830E089584B7877F84BF6A
+:1019300088E10FB6F89480936000109260000FBEAB
+:1019400090E080E80FB6F894809361009093610076
+:101950000FBE0E941D120E94D40E0E94310F809172
+:10196000E20084608093E20078940E94AC110E94AF
+:101970001F1282E091E00E94C9110E94B12480915F
+:10198000E801853069F40E94F41D8091E601882306
+:10199000B1F30E941C1E882391F30E942C0DEFCFFF
+:1019A0000E942512ECCF292F332723303105A9F0CF
+:1019B0006CF42130310509F442C02230310509F0C0
+:1019C00043C08DE690E02AE636E042C02132310580
+:1019D000C9F02232310519F137C0992781309105BC
+:1019E00041F08230910541F0892B71F5E6E6F6E091
+:1019F00005C0EEE4F6E002C0E6E3F6E0849190E094
+:101A00009F0126C0643000F5E62FF0E0EE0FFF1FC7
+:101A1000EE5DFE4F2081318189E090E019C0643095
+:101A200098F4E62FF0E0DF01AA0FBB1FA65EBE4FC1
+:101A30002D913C91EA5EFE4F808190E009C082E1E9
+:101A400090E027ED36E004C080E090E020E030E058
+:101A5000FA0131832083089580E189BD82E189BD47
+:101A600009B400FEFDCF8091D8008F7D8093D8000F
+:101A70008091E00082608093E0008091E00081FD31
+:101A8000FCCF0895CF92DF92EF92FF920F931F93B6
+:101A9000CF93DF937C018B01EA010E94A40E811198
+:101AA00031C0209731F088819981081B190BE80E0D
+:101AB000F91EC12CD12C0115110519F18091E800F6
+:101AC00085FD14C08091E8008E778093E800209710
+:101AD00041F0888199818C0D9D1D9983888385E0D3
+:101AE00011C00E94A40E882331F30CC0F70181912C
+:101AF0007F018093F10001501109FFEFCF1ADF0A37
+:101B0000DACF80E0DF91CF911F910F91FF90EF909E
+:101B1000DF90CF9008952091EF013091F0012617CA
+:101B2000370748F06115710539F42091E8002E77E8
+:101B30002093E80001C0B901FC0120E061157105A6
+:101B4000B9F18091E801882309F440C0853009F497
+:101B50003FC08091E80083FD3DC08091E80082FF96
+:101B600006C08091E80082FF26C080E00895809141
+:101B7000E80080FFE3CF2091F3008091F20090E035
+:101B8000922B6115710551F08830910538F421913F
+:101B90002093F100615071090196F3CF21E008977D
+:101BA00009F020E08091E8008E778093E800C6CFAE
+:101BB0002111C7CFD6CF8091E801882339F0853035
+:101BC00039F08091E80083FFCCCF04C082E0089513
+:101BD00083E0089581E008952091EF013091F001B4
+:101BE0002617370748F06115710539F42091E80090
+:101BF0002E772093E80001C0B901FC0120E06115B7
+:101C00007105C1F18091E801882309F441C0853054
+:101C100009F440C08091E80083FD3EC08091E80057
+:101C200082FF06C08091E80082FF27C080E008950F
+:101C30008091E80080FFE3CF2091F3008091F200D3
+:101C400090E0922B6115710559F08830910540F4B0
+:101C500024912093F1003196615071090196F2CFE1
+:101C600021E0089709F020E08091E8008E778093CA
+:101C7000E800C5CF2111C6CFD5CF8091E8018823D8
+:101C800039F0853039F08091E80083FFCBCF04C074
+:101C900082E0089583E0089581E00895982F9730B9
+:101CA00058F59093E900981739F07091EC00209165
+:101CB000ED005091F00003C0242F762F50E021FF5B
+:101CC00019C03091EB003E7F3093EB003091ED0076
+:101CD0003D7F3093ED003091EB0031603093EB00AD
+:101CE0007093EC002093ED005093F0002091EE00F3
+:101CF00027FF07C09F5FD3CF8F708093E90081E0FB
+:101D0000089580E008958091E90187FD05C08091E4
+:101D1000E80080FF0EC012C08091E80082FD05C07F
+:101D20008091E8018111F8CF08958091E8008B77C8
+:101D300008C08091E8018111EACF08958091E80000
+:101D40008E778093E80008958091E4009091E500FB
+:101D500045E62091EC0020FF21C02091E80020FD05
+:101D600021C02091E801222389F0253089F02091BB
+:101D7000EB0025FD0FC02091E4003091E50028170D
+:101D8000390739F3415041F0C901E3CF82E00895AA
+:101D900083E0089581E0089584E008952091E800AB
+:101DA00022FFDFCF80E008950E94420F0E944A0F79
+:101DB000E0EEF0E0808181608083E8EDF0E08081FA
+:101DC0008F77808319BCA7EDB0E08C918E7F8C93C8
+:101DD00080818F7E80831092E70108950F931F9377
+:101DE000CF93DF930E94420F0E944A0FC8EDD0E0CC
+:101DF00088818F77888388818068888388818F7DB8
+:101E0000888319BC1092E8011092E4011092E60157
+:101E10001092E50100EE10E0F80180818B7F808355
+:101E200088818160888342E060E080E00E944E0EFD
+:101E3000E1EEF0E080818E7F8083E2EEF0E0808151
+:101E400081608083808188608083F80180818E7FBB
+:101E50008083888180618883DF91CF911F910F916A
+:101E60000895E8EDF0E080818F7E8083E7EDF0E07B
+:101E700080818160808384E082BF81E08093E7017C
+:101E80000C94EE0EE8EDF0E080818E7F808310925E
+:101E9000E20008951092DA001092E10008951F9276
+:101EA0000F920FB60F9211242F933F934F935F938E
+:101EB0006F937F938F939F93AF93BF93EF93FF9312
+:101EC0008091E10082FF0BC08091E20082FF07C099
+:101ED0008091E1008B7F8093E1000E94AB118091A3
+:101EE000DA0080FF1FC08091D80080FF1BC0809166
+:101EF000DA008E7F8093DA008091D90080FF0DC0D8
+:101F000080E189BD82E189BD09B400FEFDCF81E099
+:101F10008093E8010E94B30B05C019BC1092E80140
+:101F20000E94C10B8091E10080FF19C08091E20006
+:101F300080FF15C08091E2008E7F8093E200809147
+:101F4000E20080618093E2008091D80080628093FB
+:101F5000D80019BC85E08093E8010E94C50B8091F0
+:101F6000E10084FF30C08091E20084FF2CC080E15A
+:101F700089BD82E189BD09B400FEFDCF8091D80002
+:101F80008F7D8093D8008091E1008F7E8093E10067
+:101F90008091E2008F7E8093E2008091E200816078
+:101FA0008093E2008091E401882311F084E007C06F
+:101FB0008091E30087FF02C083E001C081E080934D
+:101FC000E8010E94C70B8091E10083FF29C0809146
+:101FD000E20083FF25C08091E100877F8093E100CC
+:101FE00082E08093E8011092E4018091E1008E7F0D
+:101FF0008093E1008091E2008E7F8093E2008091E7
+:10200000E20080618093E20042E060E080E00E94B4
+:102010004E0E8091F00088608093F0000E94C40B07
+:10202000FF91EF91BF91AF919F918F917F916F91B0
+:102030005F914F913F912F910F900FBE0F901F9086
+:1020400018951F920F920FB60F9211242F933F9362
+:102050004F935F936F937F938F939F93AF93BF93B0
+:10206000CF93EF93FF93C091E900CF708091EC0084
+:102070001092E9008091F000877F8093F0007894BF
+:102080000E945D101092E9008091F00088608093BA
+:10209000F000C093E900FF91EF91CF91BF91AF9114
+:1020A0009F918F917F916F915F914F913F912F9170
+:1020B0000F900FBE0F901F9018951F93CF93DF9333
+:1020C000CDB7DEB7AA970FB6F894DEBF0FBECDBF6F
+:1020D000E9EEF1E08091F100819321E0E13FF20728
+:1020E000C9F70E94E30B8091E80083FF1CC1209197
+:1020F000E9013091EA01832F90E08A30910508F0E0
+:1021000012C1FC01EB54FF4F0C944B26203881F098
+:10211000223809F008C18091ED018F708093E900A9
+:102120008091EB0085FB882780F91092E90006C0BA
+:102130008091E5019091E601911182609091E80013
+:10214000977F9093E8008093F1001092F100C5C052
+:10215000822F8D7F09F0E7C0222319F0223061F031
+:10216000E2C08091EB01813009F0DDC0333009F02D
+:1021700080E08093E60128C08091EB01811124C0AA
+:102180002091ED012F7009F4CEC02093E9008091D9
+:10219000EB0080FF19C08091EB00333011F48062B6
+:1021A00011C080618093EB0081E090E0022E01C0BD
+:1021B000880F0A94EAF78093EA001092EA0080916F
+:1021C000EB0088608093EB001092E9008091E800BA
+:1021D000877F86C02111A7C01091EB011F778091E6
+:1021E000E3008078812B8093E3008091E800877F73
+:1021F0008093E8000E94830E8091E80080FFFCCF6E
+:102200008091E30080688093E300112311F083E064
+:1022100001C082E08093E80186C02058223008F097
+:1022200082C08091EB019091EC018C3D23E09207FC
+:1022300079F583E08A838AE289834FB7F894DE01D7
+:10224000139620E03EE051E2E32FF0E05093570078
+:10225000E49120FF03C0E295EF703F5FEF708E2F97
+:1022600090E0EA3010F0C79601C0C0968D939D9320
+:102270002F5F243149F74FBF8091E800877F80931B
+:10228000E8006AE270E0CE0101960E948B0D14C056
+:10229000AE014F5F5F4F6091ED010E94D30C00973C
+:1022A00009F441C02091E800277F2093E800BC0199
+:1022B00089819A810E94EC0D8091E8008B77809350
+:1022C000E80031C0203879F58091E800877F80935D
+:1022D000E8008091E4018093F1008091E8008E771E
+:1022E0008093E8000E94830E1EC021111CC09091B3
+:1022F000EB019230C0F48091E800877F8093E80082
+:102300009093E4010E94830E8091E401811104C046
+:102310008091E30087FF02C084E001C081E08093E8
+:10232000E8010E94CF0B8091E80083FF0AC08091F2
+:10233000E800877F8093E8008091EB0080628093C3
+:10234000EB00AA960FB6F894DEBF0FBECDBFDF91AB
+:10235000CF911F9108950895CF938091E80188232C
+:10236000B1F08091E9008F709091EC0090FF02C075
+:1023700090E801C090E0C92FC82B1092E90080912D
+:10238000E80083FD0E945D10CF70C093E900CF91FB
+:10239000089590936B0180936A010895E0916A011A
+:1023A000F0916B01309721F00190F081E02D0994BC
+:1023B00080E00895E0916A01F0916B01309721F07F
+:1023C0000280F381E02D09940895E0916A01F09173
+:1023D0006B01309721F00480F581E02D0994089578
+:1023E00020916801309169018217930771F09093F1
+:1023F000690180936801E0916A01F0916B01309767
+:1024000021F00680F781E02D09940895209166015E
+:10241000309167018217930771F090936701809361
+:102420006601E0916A01F0916B01309721F0008420
+:10243000F185E02D0994089508950C941C120E94D2
+:10244000371E0E94AA070C94FD1ECF92DF92EF92D6
+:10245000FF920F931F93CF93DF93CDB7DEB72B97E8
+:102460000FB6F894DEBF0FBECDBF0E94C2073DE697
+:10247000E32E31E0F32E00E010E0C02E802F0E940A
+:10248000AF08F701D1907F01D826B1F40F5F1F4F3D
+:102490000E30110591F78FEF89838A831B820E948A
+:1024A000401E8160782F9D838C8349815A816B8186
+:1024B0008D810E94C81241C09091CF0191FF04C04C
+:1024C0008B870E94B5088B8520E030E04D2D50E0D1
+:1024D000922FBA01022E02C0759567950A94E2F711
+:1024E00060FF25C02E83CF82EE24E394F12C02C03E
+:1024F000EE0CFF1C9A95E2F790E08E219F2121E0DF
+:10250000892B09F420E028870E94401E8160782FE3
+:102510009A8789874E815F8168858A850E94C81263
+:10252000F801E359FE4F80818E25808306C02F5F1E
+:102530003F4F2630310561F6A9CF0E94E12110916D
+:102540006C010E94CE111817A1F00E94CE11809349
+:102550006C012B960FB6F894DEBF0FBECDBFDF9196
+:10256000CF911F910F91FF90EF90DF90CF900C943F
+:10257000D30A2B960FB6F894DEBF0FBECDBFDF9106
+:10258000CF911F910F91FF90EF90DF90CF90089522
+:10259000CF93DF93CDB7DEB72B970FB6F894DEBF9E
+:1025A0000FBECDBF4F83588769877A878B87DE013F
+:1025B000119686E0FD0111928A95E9F785E0FE010A
+:1025C000379601900D928A95E1F749815A816B8186
+:1025D0007C818D819E810E94091A2B960FB6F894FA
+:1025E000DEBF0FBECDBFDF91CF9108950895CF9389
+:1025F000C82F882309F4C1C0823859F40E94CE1133
+:1026000081FDBBC089E30E94A81C0E94721D89E362
+:102610000CC0833879F40E94CE1180FDAEC083E5F2
+:102620000E94A81C0E94721D83E50E94E81CCF91A5
+:102630000C94721D843859F40E94CE1182FD9DC005
+:1026400087E40E94A81C0E94721D87E4EECF8CEFE5
+:102650008C0F813A48F48C2F0E94192481118DC06F
+:102660008C2F0E94A81CE3CF80E28C0F883048F4A6
+:10267000C77081E001C0880FCA95EAF70E94291D42
+:10268000D6CF8BE58C0F833078F4C53A29F0C63A63
+:1026900031F482E890E005C081E890E002C083E870
+:1026A00090E0CF910C94F01188E58C0F833108F005
+:1026B00064C0C83A39F1C93A41F1CA3A49F1CB3A52
+:1026C00051F1CC3A59F1CD3A61F1C03B69F1CE3AC2
+:1026D00071F1CF3A79F1C13B81F1C23B89F1C33B42
+:1026E00091F1C43B99F1C53BA1F1C63BA9F1C73BB0
+:1026F000B1F1C83BB9F1C93BC1F1CA3BC9F58AE2A6
+:1027000092E038C082EE90E035C089EE90E032C0B1
+:102710008AEE90E02FC085EB90E02CC086EB90E035
+:1027200029C087EB90E026C08CEC90E023C08DECB4
+:1027300090E020C083E891E01DC08AE891E01AC0D3
+:1027400082E991E017C084E991E014C081E292E04F
+:1027500011C083E292E00EC084E292E00BC085E2F9
+:1027600092E008C086E292E005C087E292E002C0F3
+:1027700080E090E0CF910C940612CF9108958823C9
+:1027800009F44BC0823859F40E94CE1181FF45C034
+:1027900089E30E94A81C0E94721D89E30CC0833843
+:1027A00071F40E94CE1180FF38C083E50E94A81CFE
+:1027B0000E94721D83E50E94E81C0C94721D8438EF
+:1027C00059F40E94CE1182FF28C087E40E94A81C01
+:1027D0000E94721D87E4EFCF9CEF980F913A58F357
+:1027E00090E2980F983050F4877091E001C0990FF3
+:1027F0008A95EAF7892F0E942F1DDFCF9BE5980F5E
+:10280000933020F480E090E00C94F011885A8331EA
+:1028100020F480E090E00C9406120895882321F0C3
+:102820000E94291D0C94721D0895882321F00E9496
+:102830002F1D0C94721D0895CF92DF92EF92FF929C
+:102840000F931F93CF93DF93CDB7DEB728970FB6C3
+:10285000F894DEBF0FBECDBF8C0185E0F801DE012C
+:10286000119601900D928A95E1F7F801D080E180F0
+:10287000F280258122952F7083819481892B39F0F4
+:10288000FFEFEF1206C081E0DF1203C003C081E05A
+:1028900001C080E080FDCEC2C8012F830E94F612E5
+:1028A000D982EA8289819A810E94661C9E838887E8
+:1028B0000E94651C0E94381B2F814E816885FF2075
+:1028C00029F00E94461D68854E812F81E42FE295F4
+:1028D000EF70F0E0E154FF4F0C944B26842F807F83
+:1028E000142F1F70882311F01295107FFF2059F0CC
+:1028F000112309F454C2812F68870E94391D0E9458
+:10290000721D68854CC2862F0E94BF13112309F4E3
+:1029100091C2812F0E943F1D28960FB6F894DEBF0A
+:102920000FBECDBFDF91CF911F910F91FF90EF9020
+:10293000DF90CF900C94721D342F307F842F8F70D6
+:10294000303211F08295807F662319F0613019F1E1
+:102950002BC0FF20B1F0222309F493C1213009F0EC
+:1029600090C128960FB6F894DEBF0FBECDBFDF91A1
+:10297000CF911F910F91FF90EF90DF90CF900C942B
+:10298000591D222319F0213009F454C28E830E946C
+:102990005C1D8E8189C1FF2021F0223008F04AC2DF
+:1029A00070C1211147C280C1FF2021F0222309F408
+:1029B00068C1F5C1222309F477C105C2242F2695E9
+:1029C0002695237030E02115310521F021303105A5
+:1029D000C9F030C2FF2021F0862F942F937002C0DF
+:1029E00080E090E028960FB6F894DEBF0FBECDBF12
+:1029F000DF91CF911F910F91FF90EF90DF90CF90DB
+:102A00000C94F011FF2021F0862F942F937002C0B8
+:102A100080E090E028960FB6F894DEBF0FBECDBFE1
+:102A2000DF91CF911F910F91FF90EF90DF90CF90AA
+:102A30000C940612862FFF2019F00E94E92002C094
+:102A40000E94512128960FB6F894DEBF0FBECDBF6D
+:102A5000DF91CF911F910F91FF90EF90DF90CF907A
+:102A60000C94D621842F837009F076C0F110E2C156
+:102A7000262F229526952770220F220F862F8F70E2
+:102A8000C82ED12CE12CF12C022E04C0CC0CDD1C64
+:102A9000EE1CFF1C0A94D2F764FF10C06FE070E0D8
+:102AA00080E090E004C0660F771F881F991F2A9569
+:102AB000D2F7609570958095909503C060E070E0C6
+:102AC000CB01242F269526952370422F50E04230CB
+:102AD0005105D1F04330510559F16C297D298E29DA
+:102AE0009F294130510541F128960FB6F894DEBF79
+:102AF0000FBECDBFDF91CF911F910F91FF90EF904F
+:102B0000DF90CF900C945D1B6C297D298E299F2925
+:102B100028960FB6F894DEBF0FBECDBFDF91CF91E0
+:102B20001F910F91FF90EF90DF90CF900C94771B47
+:102B30000E945D1BC701B60128960FB6F894DEBF50
+:102B40000FBECDBFDF91CF911F910F91FF90EF90FE
+:102B5000DF90CF900C94431BFF2019F0842F8170DD
+:102B600001C08695882309F465C1262F22952695F4
+:102B70002770220F220F862F8F70C82ED12CE12CA8
+:102B8000F12C022E04C0CC0CDD1CEE1CFF1C0A94A0
+:102B9000D2F764FF10C06FE070E080E090E004C006
+:102BA000660F771F881F991F2A95D2F76095709539
+:102BB0008095909503C060E070E0CB01242F2695AE
+:102BC00026952370422F50E042305105D1F043301A
+:102BD000510559F16C297D298E299F2941305105D4
+:102BE00041F128960FB6F894DEBF0FBECDBFDF913E
+:102BF000CF911F910F91FF90EF90DF90CF900C94A9
+:102C0000311C6C297D298E299F2928960FB6F894AE
+:102C1000DEBF0FBECDBFDF91CF911F910F91FF900F
+:102C2000EF90DF90CF900C944B1C0E94311CC70199
+:102C3000B60128960FB6F894DEBF0FBECDBFDF9168
+:102C4000CF911F910F91FF90EF90DF90CF900C9458
+:102C5000171C603FC9F118F4603E50F49BC0623FFE
+:102C600009F460C008F44AC0633F09F46FC092C021
+:102C7000162F1F70842F8F71FF2099F00E94B01BB8
+:102C8000812F28960FB6F894DEBF0FBECDBFDF911F
+:102C9000CF911F910F91FF90EF90DF90CF900C9408
+:102CA0000E140E94D11B812F28960FB6F894DEBF18
+:102CB0000FBECDBFDF91CF911F910F91FF90EF908D
+:102CC000DF90CF900C941514FF20A1F02111B2C019
+:102CD000842F8F7128960FB6F894DEBF0FBECDBF3C
+:102CE000DF91CF911F910F91FF90EF90DF90CF90E8
+:102CF0000C94F61B223008F09DC0EACFFF20A1F013
+:102D0000842F8F7128960FB6F894DEBF0FBECDBF0B
+:102D1000DF91CF911F910F91FF90EF90DF90CF90B7
+:102D20000C94B01BFF2061F3842F8F7128960FB68F
+:102D3000F894DEBF0FBECDBFDF91CF911F910F91F1
+:102D4000FF90EF90DF90CF900C94D11BFF2091F07B
+:102D5000842F8F7128960FB6F894DEBF0FBECDBFBB
+:102D6000DF91CF911F910F91FF90EF90DF90CF9067
+:102D70000C949B1B28960FB6F894DEBF0FBECDBFF8
+:102D8000DF91CF911F910F91FF90EF90DF90CF9047
+:102D90000C94911BFF20A1F0222309F4B1CF862FC0
+:102DA00028960FB6F894DEBF0FBECDBFDF91CF914E
+:102DB0001F910F91FF90EF90DF90CF900C94F7123E
+:102DC000222309F4B1CF862F28960FB6F894DEBFE0
+:102DD0000FBECDBFDF91CF911F910F91FF90EF906C
+:102DE000DF90CF900C94BF134F70C8010E94040570
+:102DF00028960FB6F894DEBF0FBECDBFDF91CF91FE
+:102E00001F910F91FF90EF90DF90CF900C94B61A26
+:102E10004F70C80128960FB6F894DEBF0FBECDBF25
+:102E2000DF91CF911F910F91FF90EF90DF90CF90A6
+:102E30000C94750928960FB6F894DEBF0FBECDBF6F
+:102E4000DF91CF911F910F91FF90EF90DF90CF9086
+:102E500008950E94461D0E94561D0E941B1D0E943F
+:102E6000721D0E9482220E94D62180E090E00E9482
+:102E7000F01180E090E00C9406120E94361D0C9434
+:102E800029170E94661C292F22952F7030E02C30C4
+:102E900031054CF42A3031056CF4225031092230CE
+:102EA000310590F407C02C30310551F02F30310539
+:102EB00039F00AC0803E10F0803F31F481E008957F
+:102EC00093FB882780F9089580E00895CF93DF93DE
+:102ED00000D000D01F92CDB7DEB70F900F900F90AB
+:102EE0000F900F90DF91CF910895CF93DF9300D093
+:102EF00000D000D0CDB7DEB726960FB6F894DEBF6F
+:102F00000FBECDBFDF91CF9108951F93CF93DF9375
+:102F1000C0917B0116E080917C01C81799F0D0E048
+:102F20001C9FF0011D9FF00D1124E358FE4F4081BE
+:102F3000518162817381848195810E9475172196E8
+:102F4000C770E9CFDF91CF911F9108954091AD01F6
+:102F50005091AE016091AF017091B0018091B101CB
+:102F60009091B2010C947517CF938091B201829524
+:102F70008F7009F05FC08091AF01882309F45AC0B7
+:102F800020917B01A0917C016091AD017091AE0117
+:102F90008091B0019091B10131E06F3F09F030E0D4
+:102FA000B32FC6E02A1709F445C0009721F07F3FF0
+:102FB00021F44B2F03C041E001C040E030E040FD70
+:102FC00035C0C29FF001C39FF00D1124E358FE4F9E
+:102FD000418174132BC04081641328C04281411188
+:102FE00025C0438154814817590710F441505109B5
+:102FF000481B590B483C5105C8F48091B2018F70B1
+:1030000080618093B20186E0829FF001839FF00D82
+:103010001124EE57FE4F80818F70806180838DEA8E
+:1030200091E00E941C14CF910C9485172F5F3F4FA5
+:103030002770B8CFCF910895CF92DF92EF92FF9291
+:103040000F931F93CF93DF93CDB7DEB762970FB681
+:10305000F894DEBF0FBECDBF8C0185E0F801DE0124
+:103060001D9601900D928A95E1F7D8014C91119629
+:103070005C91119712966C9112971396ED90FC90BB
+:1030800014977091AD01E091AE012091B0013091A3
+:10309000B1012115310531F0EF3F31F481E07F3F7F
+:1030A00019F403C081E001C080E0B82FB170CB2ECD
+:1030B00080FD6CC1D090AF01DD2009F4F5C0F09126
+:1030C000B201E216F30638F0C701821B930B883C6D
+:1030D000910548F09BC0209530952E0D3F1D283C52
+:1030E000310508F093C08F2F807F09F052C0E5139F
+:1030F00014C0741312C0D62E61110FC0FF70F0619E
+:10310000F093B2010E94A6178DEA91E00E941C1470
+:103110008091B201F80185836CC1EF2831F05F3FE7
+:1031200031F481E04F3F19F403C081E001C080E039
+:1031300080FD03C081E0862701C080E0F82FF17098
+:10314000FF2E80FF1CC080917B0120917C0136E026
+:10315000821709F428C190E0389FF001399FF00DE3
+:103160001124E358FE4F7181571306C07081471335
+:1031700003C07281671303C001968770E9CFD62E12
+:10318000662309F436C18091B20181608093B20157
+:1031900053C0E51308C0741306C0611104C0D80100
+:1031A0001596FC93AEC04D875E878D859E856A8B94
+:1031B0000E9441176A89882329F1D62E662311F1CE
+:1031C0002091B201822F82958F7090E002970CF4CB
+:1031D00060C08091AD019091AE0198878F83198670
+:1031E000FB86EA862C87CE01079651C0E51731F1A0
+:1031F0004D875E878D859E856A8B0E9441176A89FF
+:1032000081112EC0C8010E941C14A4C08F2F807F82
+:1032100069F77E2DF98AE88A89890E9466178DEA06
+:1032200091E00E941C14EDEAF1E086E0DF011D92BE
+:103230008A95E9F70E94A617D12CDBC07413D8CF6A
+:103240006111D6CFD8011596FC93C8010E941C14B9
+:10325000EDEAF1E086E0DF011D928A95E9F7C9C049
+:10326000D62E662379F22091B201822F82958F703B
+:1032700090E0029774F08091AD019091AE019A8335
+:1032800089831B82FD82EC822E83CE0101960E94EF
+:103290001C1486E0F801ADEAB1E001900D928A9528
+:1032A000E1F70E94B4176FC0E216F30628F0C701D9
+:1032B000821B930B9C0104C0209530952E0D3F1D61
+:1032C000283C310508F052C0D62E662309F49ACF67
+:1032D000E5132CC074132AC08091B20180FD1DC07B
+:1032E000982F92959F70C9F0D80115968C931597D9
+:1032F0009F3039F09F5F9295907F8F70892B159644
+:103300008C93C8010E941C1486E0F801ADEAB1E07C
+:1033100001900D928A95E1F736C086E0F801ADEA9A
+:10332000B1E001900D928A95E1F763C04D875E8709
+:103330008D859E850E944117882379F086E0F801EB
+:10334000ADEAB1E001900D928A95E1F70E94B417C1
+:103350000E94A617DD24D3944CC08091B2018160F5
+:103360008093B201C8010E941C1443C07E2DF98ACB
+:10337000E88A89890E946617EDEAF1E086E0DF01BC
+:103380001D928A95E9F70E94A61733C0662309F4B7
+:1033900039CF4D875E878D859E850E944117882392
+:1033A00009F430CFCBCF4D875E878D859E850E94F7
+:1033B000661C292F22952F7030E0223031052CF425
+:1033C0009F7041F0811106C00CC0243031052CF4EF
+:1033D0009F7049F4805E883020F0C8010E941C1460
+:1033E000CF2CDC2C06C0D80115969C91907F91F7CC
+:1033F000F8CF8D2D62960FB6F894DEBF0FBECDBF0D
+:10340000DF91CF911F910F91FF90EF90DF90CF90C0
+:1034100008951F93CF93DF93CDB7DEB72C970FB6E8
+:10342000F894DEBF0FBECDBF4F83588769877A8778
+:103430008B879C87CE0107960E941C188823C1F0B9
+:103440002F8138858A859B85892B31F03F3F11F08C
+:1034500080E003C02F3FE1F781E0811147C04F8139
+:10346000588569857A858B859C850E9475173EC035
+:1034700086E0FE013796DE01119601900D928A9545
+:10348000E1F7FF81E8854A855B854115510531F0FB
+:10349000EF3F31F481E0FF3F19F403C081E001C048
+:1034A00080E080FD23C020917C0130E0C9010196BD
+:1034B0008770992760917B0170E086179707F1F17B
+:1034C000F983EA835D834C8396E0929FD001939FBA
+:1034D000B00D1124A358BE4FFE01319601900D92FC
+:1034E0009A95E1F780937C010E94851716E0809100
+:1034F0007B0190917C01891779F1189FC0011124FB
+:1035000083589E4F0E941C18882331F1E0917B0163
+:103510001E9FF0011124E358FE4F408151816281CA
+:103520007381848195810E94751780917B0190E061
+:1035300001968770992780937B01D9CF0E943D1710
+:1035400010927C0110927B01EDEAF1E086E0DF0150
+:103550001D928A95E9F7CACF2C960FB6F894DEBF74
+:103560000FBECDBFDF91CF911F910895EF92FF92D3
+:103570000F931F93CF93DF939C01009709F471C0C1
+:10358000F12CEE24E394E9012196F901849184372A
+:1035900040F4843008F056C0813081F0823021F14F
+:1035A00060C0853709F449C0C0F19CE7980F903797
+:1035B00008F057C08F770E94BF1346C089010E5F85
+:1035C0001F4FFE01849190E2980F983050F487705D
+:1035D000FE2D01C0FF0F8A95EAF78F2F0E94491D2B
+:1035E00015C00E94F71214C089010E5F1F4FFE0123
+:1035F000849190E2980F983068F48770FE2D01C096
+:10360000FF0F8A95EAF78F2F0E944F1D0E94721DAF
+:10361000E8011AC00E94BF13FBCF2E5F3F4FFE018F
+:10362000C491CC2341F08FE99FE00197F1F700C0EE
+:103630000000C150F6CFE90107C0FE01F490E90196
+:10364000229602C00E94F7128F2D882341F0EFE9E5
+:10365000FFE03197F1F700C000008150F6CF9E01E6
+:1036600092CFDF91CF911F910F91FF90EF9008952E
+:1036700008956093B7017093B8018093B901909356
+:10368000BA010C9429170F931F930091B701109161
+:10369000B8012091B9013091BA01062B172B282BC4
+:1036A000392B0093B7011093B8012093B9013093DF
+:1036B000BA011F910F910C9429170F931F9300913A
+:1036C000B7011091B8012091B9013091BA010623D8
+:1036D0001723282339230093B7011093B8012093AF
+:1036E000B9013093BA011F910F910C9429170F93D0
+:1036F0001F930091B7011091B8012091B901309149
+:10370000BA0106271727282739270093B7011093F6
+:10371000B8012093B9013093BA011F910F910C9415
+:1037200029171092B3011092B4011092B5011092B2
+:10373000B6010C94291741E050E060E070E004C04D
+:10374000440F551F661F771F8A95D2F74093B30128
+:103750005093B4016093B5017093B6010C9429178E
+:1037600041E050E060E070E004C0440F551F661F68
+:10377000771F8A95D2F78091B3019091B401A091FF
+:10378000B501B091B601842B952BA62BB72B809356
+:10379000B3019093B401A093B501B093B6010C941A
+:1037A000291741E050E060E070E004C0440F551F6D
+:1037B000661F771F8A95D2F7409550956095709552
+:1037C0008091B3019091B401A091B501B091B6017F
+:1037D00084239523A623B7238093B3019093B40148
+:1037E000A093B501B093B6010C94291741E050E0C5
+:1037F00060E070E004C0440F551F661F771F8A9574
+:10380000D2F78091B3019091B401A091B501B0912C
+:10381000B60184279527A627B7278093B3019093F5
+:10382000B401A093B501B093B6010C9429170F937E
+:103830001F930091B3011091B4012091B501309113
+:10384000B601062B172B282B392B0093B3011093AD
+:10385000B4012093B5013093B6011F910F910C94E0
+:1038600029170F931F930091B3011091B401209178
+:10387000B5013091B601062317232823392300937D
+:10388000B3011093B4012093B5013093B6011F9199
+:103890000F910C9429170F931F930091B30110916E
+:1038A000B4012091B5013091B601062717272827CA
+:1038B00039270093B3011093B4012093B5013093DD
+:1038C000B6011F910F910C9429170895CF92DF92A2
+:1038D000EF92FF920F931F93CF93DF93EC01C09071
+:1038E000B701D090B801E090B901F090BA01809191
+:1038F000B3019091B401A091B501B091B601C82A6D
+:10390000D92AEA2AFB2A0FE110E0B701A601002E0E
+:1039100004C076956795579547950A94D2F740FF6E
+:1039200007C0BE01802F0E9498098130910539F4AB
+:103930000150110950F7BE0180E00E949809DF9103
+:10394000CF911F910F91FF90EF90DF90CF9008954E
+:1039500090910C019923D9F090910D019923B9F020
+:10396000982F9695969596959F3088F5E0910E0143
+:10397000F0910F01E90FF11D877021E030E001C0E7
+:10398000220F8A95EAF78181822B818308954091E5
+:103990000E0150910F0120E030E09FEFFA01E20F9D
+:1039A000F31F6281681799F09F3F19F4611101C0FC
+:1039B000922F2F5F3F4F2E30310581F79F3F39F017
+:1039C000FA01E90FF11D97FDFA9582830895089594
+:1039D00090910C019923E1F090910D019923C1F090
+:1039E000982F9695969596959F3020F5E0910E012B
+:1039F000F0910F01E90FF11D877021E030E001C067
+:103A0000220F8A95EAF72095818128232183089542
+:103A100040910E0150910F0120E030E0FA01E20FD9
+:103A2000F31F9281981301C012822F5F3F4F2E30F7
+:103A30003105A1F7089581E090E0E0910E01F09149
+:103A40000F01E80FF91F1082019680319105A9F747
+:103A500008959091CE01982B9093CE010895809572
+:103A60009091CE0198239093CE0108951092CE01AB
+:103A700008959091CD01982B9093CD010895809554
+:103A80009091CD0198239093CD0108951092CD018E
+:103A900008959091CC01982B9093CC010895809536
+:103AA0009091CC0198239093CC0108951092CC0171
+:103AB00008958093BB0108951092BB010895409131
+:103AC0000E0150910F0120E030E080E0FA01E20F9A
+:103AD000F31F918191118F5F2F5F3F4F2F30310581
+:103AE000A9F70895E0910E01F0910F018091CE01A8
+:103AF0008083E0910E01F0910F0180819091CD01C2
+:103B0000892B8083E0910E01F0910F0180819091CB
+:103B1000CC01892B80839091BB01992361F0E091C6
+:103B20000E01F0910F018081892B80830E945F1D1F
+:103B300081111092BB0180910E0190910F010C94A4
+:103B4000DA11CF92DF92EF92FF920F931F936C01E5
+:103B5000EE24FF24C114D104E104F10421F46B012B
+:103B60007C0180E001C080E133272F2D1E2D0D2D1B
+:103B7000011511052105310519F0885F68017901EA
+:103B800097018601A4E03695279517950795AA9584
+:103B9000D1F7011511052105310519F08C5F680178
+:103BA000790197018601F2E03695279517950795DB
+:103BB000FA95D1F7011511052105310519F08E5F30
+:103BC00068017901B701A6017695679557954795E4
+:103BD000452B462B472B09F08F5F1F910F91FF90CC
+:103BE000EF90DF90CF9008958091E801843009F143
+:103BF0001092D00120E488E190E00FB6F894A895E7
+:103C0000809360000FBE2093600083B7817F846043
+:103C100083BF83B7816083BF7894889583B78E7F95
+:103C200083BF88E10FB6F894809360001092600023
+:103C30000FBE089508950895CF930E941A1E0E9402
+:103C4000C2070E941B1EC0E08C2F0E94AF0881118A
+:103C500005C0CF5FCE30C1F780E001C081E0CF91D9
+:103C600008950E943D170E94CE110C94D30A82E061
+:103C700084BD93E095BD9AEF97BD80936E00089543
+:103C80002FB7F8948091D1019091D201A091D301E6
+:103C9000B091D4012FBF0895CF92DF92EF92FF929F
+:103CA0000F931F932FB7F8944091D1015091D201F7
+:103CB0006091D3017091D4012FBF6A017B01EE2482
+:103CC000FF248C0120E030E0C016D106E206F306A6
+:103CD00010F441505109481B590BCA011F910F9113
+:103CE000FF90EF90DF90CF9008951F920F920FB644
+:103CF0000F9211248F939F93AF93BF938091D10123
+:103D00009091D201A091D301B091D4010196A11D4F
+:103D1000B11D8093D1019093D201A093D301B093B0
+:103D2000D401BF91AF919F918F910F900FBE0F90D3
+:103D30001F9018950E94D40EF8942FEF87EA91E611
+:103D4000215080409040E1F700C0000087E090EBF8
+:103D5000DC018093F1019093F201A093F301B09301
+:103D6000F4012CE088E190E00FB6F894A8958093D8
+:103D700060000FBE20936000FFCFEF92FF920F9381
+:103D80001F93CF93DF93E82EF12C8F2D0E94AF0865
+:103D9000C0E0D0E0082F10E098010C2E02C035954D
+:103DA00027950A94E2F720FD05C02196C630D1057B
+:103DB00099F709C06C2F7F2D80E00E947609E812E8
+:103DC000F4CF81E005C0F3948EE0F812DECF80E0FE
+:103DD000DF91CF911F910F91FF90EF900895CF93B6
+:103DE000C82F8CE20E94BD1E882321F08C2FCF911A
+:103DF0000C94BD1E80E0CF910895CF930E94422085
+:103E0000811102C00E942820C5E6C15049F00E94DD
+:103E1000C2078FE39CE90197F1F700C00000F5CFDE
+:103E200089E20E94EF1E811111C18AE20E94EF1EF9
+:103E300081110E94282085E00E94EF1E81110E94BE
+:103E40009A1E0E944D208093CF0187E00E94EF1EB2
+:103E5000882399F18BE10E94EF1E882351F0909105
+:103E6000CF0191FB882780F921E0822780FB91F91F
+:103E700022C08EE00E94EF1E882351F09091CF0166
+:103E800092FB882780F921E0822780FB92F913C0FA
+:103E900080E10E94EF1E9091CF01882341F093FBB7
+:103EA000882780F921E0822780FB93F904C0892FBD
+:103EB000809580FB90F99093CF018091CF010E9473
+:103EC00051200E945F208093E20180EE0E94EF1E4D
+:103ED000882341F08091E201982F909590FB80F922
+:103EE0008093E20189E30E94EF1E882359F09091AC
+:103EF000E20191FB882780F921E0822780FB91F97C
+:103F00009093E20182EE0E94EF1E882359F0909177
+:103F1000E20192FB882780F921E0822780FB92F959
+:103F20009093E20186EE0E94EF1E882359F0909153
+:103F3000E20193FB882780F921E0822780FB93F937
+:103F40009093E20183EE0E94EF1E882359F0909136
+:103F5000E20194FB882780F921E0822780FB94F915
+:103F60009093E20185E30E94EF1E882359F090911F
+:103F7000E20195FB882780F921E0822780FB95F9F3
+:103F80009093E20181E30E94EF1E882359F0909103
+:103F9000E20196FB882780F921E0822780FB96F9D1
+:103FA0009093E20181E10E94EF1E882359F09091E5
+:103FB000E20197FB882780F921E0822780FB97F9AF
+:103FC0009093E2018091E2010E9463208091E201DE
+:103FD00087FB882780F980930D0187E20E94EF1EFE
+:103FE000C82F8EE10E94EF1E8111C2608FE10E94F6
+:103FF000EF1E8111C46080E20E94EF1E8111C86033
+:1040000081E20E94EF1E8111C06182E20E94EF1ED8
+:104010008111C06283E20E94EF1E8111C06484E2BC
+:104020000E94EF1E882311F0C06802C0CC2329F043
+:104030008C2F0E945A206C2F03C00E945620682F9C
+:1040400070E080E090E0CF910C94391BCF910895FF
+:104050006DEE7EEF80E090E00E94812660E082E0DD
+:1040600090E00E94732660E083E090E00E94732657
+:1040700060E084E090E00E94732660E085E090E0DC
+:104080000C94732680E090E00E946D2621E08D3E26
+:104090009E4F09F020E0822F089582E090E00C947A
+:1040A0006526682F82E090E00C94732683E090E010
+:1040B0000C946526682F83E090E00C94732684E0CE
+:1040C00090E00C946526682F84E090E00C947326B1
+:1040D0008091D70180FF0BC06091130185E0689F3C
+:1040E000B001112475956795759567952AC081FF74
+:1040F00009C06091130185E0689FB0011124759596
+:1041000067951FC082FF07C06091130185E0689F1B
+:10411000B001112416C04091D8014423C9F0609128
+:104120001201461788F72091130185E0289F90011E
+:104130001124429FC001439F900D112470E00E9402
+:1041400037266038710540F46115710539F002C0F9
+:1041500065E070E0862F08958FE7089581E0089567
+:104160008091D70180FF08C06091110170E07595C2
+:1041700067957595679521C081FF06C06091110113
+:1041800070E07595679519C082FF04C060911101B8
+:1041900070E010C08091D8018823C1F060911001B7
+:1041A0008617A0F790911101989FC001112470E02B
+:1041B0000E9437266038710528F46115710521F0D9
+:1041C000862F08958FE7089581E0089561E070E0FB
+:1041D000F4CF803F21F40E946820819504C0813F84
+:1041E00029F40E9468208093DB010895823F21F426
+:1041F0000E946820819504C0833F29F40E946820B2
+:104200008093DA010895893F19F40E94B02005C017
+:104210008A3F31F40E94B02081958093DC0108959B
+:104220008B3F21F40E94B020819504C08C3F29F47B
+:104230000E94B0208093DD010895843F21F4809195
+:10424000D901816017C0853F21F48091D901826036
+:1042500011C0863F21F48091D90184600BC0873F53
+:1042600021F48091D901886005C0883F31F48091A4
+:10427000D90180618093D90108958D3F21F4809107
+:10428000D70181600BC08E3F21F48091D7018260FD
+:1042900005C08F3F29F48091D70184608093D701B6
+:1042A0000895803F39F48091DB0187FF6CC0109244
+:1042B000DB0169C0813F29F48091DB011816BCF352
+:1042C00062C09091DA01823F29F497FF5CC010929E
+:1042D000DA0159C0833F19F41916CCF354C0893F51
+:1042E00041F48091DC0118160CF04DC01092DC01F5
+:1042F0004AC08A3F29F48091DC0187FF44C0F6CF91
+:104300008B3F39F48091DD0187FF3DC01092DD01C4
+:104310003AC08C3F29F48091DD011816BCF333C0FC
+:10432000843F21F48091D9018E7F17C0853F21F40D
+:104330008091D9018D7F11C0863F21F48091D901F0
+:104340008B7F0BC0873F21F48091D901877F05C007
+:10435000883F31F48091D9018F7E8093D90113C0B9
+:104360008D3F21F48091D7018E7F0BC08E3F21F4C9
+:104370008091D7018D7F05C08F3F29F48091D701AF
+:104380008B7F8093D7018091DA0181110EC08091DB
+:10439000DB0181110AC08091DC01811106C080918E
+:1043A000DD01811102C01092D801089589ED91E0DC
+:1043B0000E94E5110E94401E9093D6018093D50182
+:1043C00008951F93CF93DF938091D5019091D601EB
+:1043D0000E944C1E4091D801442321F020911401E9
+:1043E00030E006C0209115015AE0259F900111246C
+:1043F0008217930708F482C08091DA011091DB01E3
+:10440000D091DC01C091DD01811107C0111105C0FF
+:10441000D11103C0CC2309F471C04F3F19F04F5F95
+:104420004093D801181624F40E9468208093DA0182
+:104430008091DA0187FF05C00E94682081958093F2
+:10444000DA01111624F40E9468208093DB01809128
+:10445000DB0187FF05C00E94682081958093DB0106
+:104460006091DA01662339F11091DB01112319F112
+:10447000772767FD7095872F972F0E94482523E3A4
+:1044800033E343E35FE30E94AC250E94152560936C
+:10449000DA01612F772767FD7095872F972F0E948C
+:1044A000482523E333E343E35FE30E94AC250E9406
+:1044B00015256093DB011D1624F40E94B020809323
+:1044C000DC018091DC0187FF05C00E94B02081954E
+:1044D0008093DC011C1624F40E94B0208093DD013F
+:1044E0008091DD0187FF05C00E94B02081958093F7
+:1044F000DD01DF91CF911F910C94D621DF91CF91F7
+:104500001F910895E9EDF1E085E0DF011D928A95A4
+:10451000E9F71092D8011092D7010895833081F104
+:1045200028F4813059F08230D1F00895853009F4B3
+:1045300049C0B8F1863009F456C00895209115019C
+:10454000862F90E0820F911D8F3F910520F4620F1E
+:104550006093150108958FEF8093150108952091C0
+:104560001401862F90E0820F911D8F3F910520F45A
+:10457000620F6093140108958FEF809314010895E2
+:1045800020911301862F90E0820F911D8F3F91059E
+:1045900020F4620F6093130108958FEF809313014D
+:1045A000089520911201862F90E0820F911D8F3F78
+:1045B000910520F4620F6093120108958FEF8093AC
+:1045C0001201089520911101862F90E0820F911D14
+:1045D0008F3F910520F4620F6093110108958FEFD2
+:1045E00080931101089520911001862F90E0820F91
+:1045F000911D8F3F910520F4620F60931001089583
+:104600008FEF809310010895833011F128F48130E9
+:1046100049F0823091F00895853081F120F18630A3
+:10462000C1F1089580911501681720F4861B8093CD
+:1046300015010895109215010895809114016817CD
+:1046400020F4861B8093140108951092140108959C
+:1046500080911301681720F4861B8093130108953D
+:1046600010921301089580911201681720F4861B9F
+:104670008093120108951092120108958091110102
+:10468000681720F4861B8093110108951092110180
+:10469000089580911001681720F4861B8093100103
+:1046A00008951092100108958D3109F442C020F54B
+:1046B0008E3009F47CC070F4873009F45EC020F4B9
+:1046C000863009F442C033C08830D1F18B3009F410
+:1046D000AAC02DC0863109F4A6C038F4803109F48F
+:1046E00070C0813109F47EC022C0893109F49BC0B9
+:1046F0008B3109F452C01BC0853309F48CC048F4D7
+:10470000873209F488C008F478C0893209F483C07C
+:104710000EC0833438F48A3308F06DC0883309F44E
+:1047200082C005C0833409F476C08834C1F080E0CB
+:1047300008950E94CF240E94CE110E94D30A73C014
+:104740000E944D200E945F206EC08091CF01817F2A
+:104750008E7F8093CF0181E08093DF0108950E94D6
+:104760003D172FEF83ED90E3215080409040E1F71B
+:1047700000C000000E949A1E56C09091CF01892F60
+:104780008095817080FB90F919F09660986027C041
+:10479000997F977F9093CF0146C09091CF0191FB75
+:1047A000882780F921E0822780FB91F913C090913E
+:1047B000CF0192FB882780F921E0822780FB92F9C4
+:1047C00009C09091CF0193FB882780F921E08227CF
+:1047D00080FB93F99093CF01882329F19160909306
+:1047E000CF0108950E943D1780910D0191E0892726
+:1047F00080930D0118C027EC01C023EE280F61E063
+:1048000070E080E090E004C0660F771F881F991F5A
+:104810002A95D2F704C061E070E080E090E00E9449
+:10482000391B0E943D1781E0089580E0089580E0E3
+:104830000895CF93C82F8091DF01813079F018F06F
+:104840008230D1F184C0A0910E01B0910F018C9102
+:10485000813169F0823209F07CC009C0A0910E015B
+:10486000B0910F018C91813111F0823249F48C2F7B
+:104870000E94152481111DC08C2F0E9454231AC040
+:104880008C2F0E941724811114C0C43179F048F490
+:10489000CB3079F0C03109F060C082E08093DF0155
+:1048A00008C0C93219F0C83321F057C01092DF0197
+:1048B00054C081E0817053C0C93289F118F5C43108
+:1048C00071F1A8F4C73009F046C08AE08093150161
+:1048D00094E19093140193E090931301809312015B
+:1048E00088E08093110188E28093100134C0CE519A
+:1048F000C63088F5EC2FF0E0E65DFE4F80818093B6
+:10490000DE0129C0CE34E9F020F4CB3421F56AE091
+:1049100013C0C13579F0C235F1F461E00DC080916A
+:10492000DE01882319F01092DE0115C081E080932A
+:10493000DF0115C061E006C08091DE010E948E2279
+:104940000AC06AE08091DE010E94042304C0109234
+:10495000DF0180E004C081E002C080E0ABCFCF91F6
+:104960000895E1E8F0E08081886080838081816043
+:1049700080838FB7F89493E09093890090ED9093A3
+:1049800088008FBF0895EFE6F0E080818260808329
+:104990000895EFE6F0E080818D7F80830895EFE653
+:1049A000F0E0808192E08927808308951F920F9222
+:1049B0000FB60F9211242F933F934F935F936F93F2
+:1049C0007F938F939F93AF93BF93EF93FF938091C8
+:1049D000E0019091E10101969093E1018093E00163
+:1049E000811103C082E00E94D30AE091E101E695C3
+:1049F000E695F0E0EC51F84FE4918091E0018E13E0
+:104A000003C080E00E94D30AFF91EF91BF91AF9164
+:104A10009F918F917F916F915F914F913F912F91D6
+:104A20000F900FBE0F901F90189504D06894B1118D
+:104A30008DC0089570D088F09F5790F0B92F9927B6
+:104A4000B751A0F0D1F0660F771F881F991F1AF099
+:104A5000BA95C9F712C0B13081F077D0B1E00895AE
+:104A600074C0672F782F8827B85F39F0B93FCCF32F
+:104A7000869577956795B395D9F73EF4909580958F
+:104A8000709561957F4F8F4F9F4F0895E89409C0AF
+:104A900097FB3EF490958095709561957F4F8F4F71
+:104AA0009F4F9923A9F0F92F96E9BB279395F69587
+:104AB000879577956795B795F111F8CFFAF4BB0F05
+:104AC00011F460FF1BC06F5F7F4F8F4F9F4F16C069
+:104AD000882311F096E911C0772321F09EE8872FF3
+:104AE000762F05C0662371F096E8862F70E060E0AF
+:104AF0002AF09A95660F771F881FDAF7880F969528
+:104B0000879597F9089557FD9058440F551F59F010
+:104B10005F3F71F04795880F97FB991F61F09F3FAA
+:104B200079F087950895121613061406551FF2CFD3
+:104B30004695F1DF08C0161617061806991FF1CF23
+:104B400086957105610508940895E894BB2766274A
+:104B50007727CB0197F908950BD078C069D028F05A
+:104B60006ED018F0952309F05AC05FC01124EECF23
+:104B7000CADFA0F3959FD1F3950F50E0551F629FB8
+:104B8000F001729FBB27F00DB11D639FAA27F00DA6
+:104B9000B11DAA1F649F6627B00DA11D661F829FCD
+:104BA0002227B00DA11D621F739FB00DA11D621FB2
+:104BB000839FA00D611D221F749F3327A00D611DCF
+:104BC000231F849F600D211D822F762F6A2F1124B1
+:104BD0009F5750408AF0E1F088234AF0EE0FFF1F04
+:104BE000BB1F661F771F881F91505040A9F79E3F3B
+:104BF000510570F014C0AACF5F3FECF3983EDCF390
+:104C0000869577956795B795F795E7959F5FC1F777
+:104C1000FE2B880F911D9695879597F9089597F922
+:104C20009F6780E870E060E008959FEF80EC089552
+:104C300000240A941616170618060906089500247B
+:104C40000A9412161306140605060895092E0394F5
+:104C5000000C11F4882352F0BB0F40F4BF2B11F469
+:104C600060FF04C06F5F7F4F8F4F9F4F089597FB8A
+:104C7000072E16F4009407D077FD09D00E94512624
+:104C800007FC05D03EF4909581959F4F089570954F
+:104C900061957F4F0895EE0FFF1F0590F491E02D71
+:104CA0000994AA1BBB1B51E107C0AA1FBB1FA61773
+:104CB000B70710F0A61BB70B881F991F5A95A9F7C5
+:104CC00080959095BC01CD010895F999FECF92BDD4
+:104CD00081BDF89A992780B50895A8E1B0E042E037
+:104CE00050E00C948826262FF999FECF1FBA92BD6A
+:104CF00081BD20BD0FB6F894FA9AF99A0FBE0196BD
+:104D000008950E947326272F0C947426DC01CB0192
+:104D1000FC01F999FECF06C0F2BDE1BDF89A3196CB
+:104D200000B40D9241505040B8F70895F894FFCF69
+:104D30002002D50A620B3F0B0B0BD80A0101BC0104
+:104D400028080A03140A3F4D3639A50758072207D9
+:104D5000E9067C069506AE06C706010203040506B1
+:044D60000708090037
:00000001FF
diff --git a/keyboard/ergodox_ez/keymaps/german-manuneo/keymap.c b/keyboard/ergodox_ez/keymaps/german-manuneo/keymap.c index 23611ddd8..92b712bd8 100644 --- a/keyboard/ergodox_ez/keymaps/german-manuneo/keymap.c +++ b/keyboard/ergodox_ez/keymaps/german-manuneo/keymap.c @@ -106,8 +106,6 @@ #define L4 4 // layer_4 #define L5 5 // layer_5 #define L6 6 // layer_6 -#define L7 7 // layer_7 -#define L8 8 // layer_8 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* @@ -120,7 +118,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! * |MO(3)| UE | OE | AE | C | V |END | TAB | B | M |COMM| DOT| UP | Y | * '-----+----+----+----+----+----------'----------+----+----+----+----+-----' - * | | |LGUI|LALT|LCTL| !LALT| |LEFT|DOWN|RGHT| + * | | |LGUI|LALT|LCTL| !RCTL|RALT|LEFT|DOWN|RGHT| * '------------------------' '------------------------' * .-----------. .-----------. * |INS |TG(2)| !M(UM)|DELT | @@ -143,8 +141,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { TG(2), DE_H, DE_J, DE_K, DE_L, DE_Q, DE_Z, DE_S, DE_N, DE_R, DE_T, DE_D, DE_SS, KC_TAB, DE_B, DE_M, DE_COMM, DE_DOT, KC_UP, DE_Y, - KC_LALT, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, - UM, KC_DELT, + KC_RCTL, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT, + M(UM), KC_DELT, KC_PGUP, KC_PGDN, KC_ENTER, KC_SPACE ), @@ -376,91 +374,70 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), -/* - * .------------------------------------.------------------------------------. - * | | | | | | | | | | | | | | | - * !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----! - * | | | | | | | | | | | | | | | - * !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! - * | | | | | | |-----!-----! | | | | | | - * !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! - * | | | | | | | | | | | | | | | - * '-----+----+----+----+----+----------'----------+----+----+----+----+-----' - * | | | | | | ! | | | | | - * '------------------------' '------------------------' - * .-----------. .-----------. - * | | | ! | | - * .-----+-----+-----! !-----+-----+-----. - * ! ! | | ! | ! ! - * ! ! !-----! !-----! ! ! - * | | | | ! | | | - * '-----------------' '-----------------' -*/ -[L7] = KEYMAP( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, - KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, - KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS -), -/* - * .------------------------------------.------------------------------------. - * | | | | | | | | | | | | | | | - * !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----! - * | | | | | | | | | | | | | | | - * !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! - * | | | | | | |-----!-----! | | | | | | - * !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! - * | | | | | | | | | | | | | | | - * '-----+----+----+----+----+----------'----------+----+----+----+----+-----' - * | | | | | | ! | | | | | - * '------------------------' '------------------------' - * .-----------. .-----------. - * | | | ! | | - * .-----+-----+-----! !-----+-----+-----. - * ! ! | | ! | ! ! - * ! ! !-----! !-----! ! ! - * | | | | ! | | | - * '-----------------' '-----------------' -*/ -[L8] = KEYMAP( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, - KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, - KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS -), }; const uint16_t PROGMEM fn_actions[] = {}; #define UC_MODE_WIN 0 #define UC_MODE_LINUX 1 +#define UC_MODE_OSX 2 +// TODO: allow default mode to be configured static uint16_t unicode_mode = UC_MODE_WIN; +uint16_t hextokeycode(uint8_t hex) { + if (hex == 0x0) { + return KC_P0; + } + if (hex < 0xA) { + return KC_P1 + (hex - 0x1); + } + return KC_A + (hex - 0xA); +} + +void unicode_action_function(uint16_t hi, uint16_t lo) { + switch (unicode_mode) { + case UC_MODE_WIN: + register_code(KC_LALT); + + register_code(KC_PPLS); + unregister_code(KC_PPLS); + + register_code(hextokeycode((hi & 0xF0) >> 4)); + unregister_code(hextokeycode((hi & 0xF0) >> 4)); + register_code(hextokeycode((hi & 0x0F))); + unregister_code(hextokeycode((hi & 0x0F))); + register_code(hextokeycode((lo & 0xF0) >> 4)); + unregister_code(hextokeycode((lo & 0xF0) >> 4)); + register_code(hextokeycode((lo & 0x0F))); + unregister_code(hextokeycode((lo & 0x0F))); + + unregister_code(KC_LALT); + break; + case UC_MODE_LINUX: + register_code(KC_LCTL); + register_code(KC_LSFT); + + register_code(KC_U); + unregister_code(KC_U); + + register_code(hextokeycode((hi & 0xF0) >> 4)); + unregister_code(hextokeycode((hi & 0xF0) >> 4)); + register_code(hextokeycode((hi & 0x0F))); + unregister_code(hextokeycode((hi & 0x0F))); + register_code(hextokeycode((lo & 0xF0) >> 4)); + unregister_code(hextokeycode((lo & 0xF0) >> 4)); + register_code(hextokeycode((lo & 0x0F))); + unregister_code(hextokeycode((lo & 0x0F))); + + unregister_code(KC_LCTL); + unregister_code(KC_LSFT); + break; + case UC_MODE_OSX: + break; + } +} + const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { if (!record->event.pressed) { return MACRO_NONE; @@ -470,772 +447,291 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { case UM: unicode_mode = (unicode_mode + 1) % 2; break; - - default: - break; - } - if (unicode_mode == UC_MODE_WIN) { - switch(id) { - case UC_GREEK_SMALL_LETTER_OMICRON: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(B), T(F), U(LALT), END - ); -case UC_LEFTWARDS_ARROW: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_1), T(KP_9), T(KP_0), U(LALT), END - ); -case UC_GREEK_CAPITAL_LETTER_RHO: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(A), T(KP_1), U(LALT), END - ); -case UC_SUBSCRIPT_THREE: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_8), T(KP_3), U(LALT), END - ); -case UC_VULGAR_FRACTION_ONE_EIGHTH: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_1), T(KP_5), T(B), U(LALT), END - ); -case UC_GREEK_SMALL_LETTER_LAMDA: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(B), T(B), U(LALT), END - ); -case UC_VULGAR_FRACTION_ONE_THIRD: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_1), T(KP_5), T(KP_3), U(LALT), END - ); -case UC_GREEK_SMALL_LETTER_XI: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(B), T(E), U(LALT), END - ); -case UC_THERE_DOES_NOT_EXIST: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_2), T(KP_0), T(KP_4), U(LALT), END - ); -case UC_SUPERSCRIPT_ONE: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_0), T(B), T(KP_9), U(LALT), END - ); -case UC_GREEK_SMALL_LETTER_BETA: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(B), T(KP_2), U(LALT), END - ); -case UC_SUBSCRIPT_FIVE: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_8), T(KP_5), U(LALT), END - ); -case UC_GREEK_CAPITAL_LETTER_IOTA: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(KP_9), T(KP_9), U(LALT), END - ); -case UC_VULGAR_FRACTION_ONE_FIFTH: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_1), T(KP_5), T(KP_5), U(LALT), END - ); -case UC_GREEK_SMALL_LETTER_PSI: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(C), T(KP_8), U(LALT), END - ); -case UC_SUBSCRIPT_NINE: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_8), T(KP_9), U(LALT), END - ); -case UC_SUPERSCRIPT_FOUR: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_7), T(KP_4), U(LALT), END - ); -case UC_RIGHTWARDS_ARROW: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_1), T(KP_9), T(KP_2), U(LALT), END - ); -case UC_SUPERSCRIPT_SIX: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_7), T(KP_6), U(LALT), END - ); -case UC_DOWNWARDS_ARROW: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_1), T(KP_9), T(KP_3), U(LALT), END - ); -case UC_GREEK_SMALL_LETTER_PI: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(C), T(KP_0), U(LALT), END - ); -case UC_SUPERSCRIPT_TWO: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_0), T(B), T(KP_2), U(LALT), END - ); -case UC_GREEK_CAPITAL_LETTER_OMEGA: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(A), T(KP_9), U(LALT), END - ); -case UC_GREEK_CAPITAL_LETTER_PSI: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(A), T(KP_8), U(LALT), END - ); -case UC_SUBSCRIPT_FOUR: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_8), T(KP_4), U(LALT), END - ); -case UC_GREEK_CAPITAL_LETTER_NU: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(KP_9), T(D), U(LALT), END - ); -case UC_DIVISION_SIGN: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_0), T(F), T(KP_7), U(LALT), END - ); -case UC_GREEK_SMALL_LETTER_SIGMA: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(C), T(KP_3), U(LALT), END - ); -case UC_GREEK_SMALL_LETTER_RHO: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(C), T(KP_1), U(LALT), END - ); -case UC_VULGAR_FRACTION_ONE_SIXTH: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_1), T(KP_5), T(KP_9), U(LALT), END - ); -case UC_GREEK_SMALL_LETTER_GAMMA: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(B), T(KP_3), U(LALT), END - ); -case UC_VULGAR_FRACTION_TWO_THIRDS: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_1), T(KP_5), T(KP_4), U(LALT), END - ); -case UC_GREEK_SMALL_LETTER_NU: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(B), T(D), U(LALT), END - ); -case UC_GREEK_SMALL_LETTER_ZETA: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(B), T(KP_6), U(LALT), END - ); -case UC_GREEK_SMALL_LETTER_EPSILON: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(B), T(KP_5), U(LALT), END - ); -case UC_GREEK_SMALL_LETTER_KAPPA: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(B), T(A), U(LALT), END - ); -case UC_SUPERSCRIPT_SEVEN: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_7), T(KP_7), U(LALT), END - ); -case UC_GREEK_CAPITAL_LETTER_PI: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(A), T(KP_0), U(LALT), END - ); -case UC_GREEK_SMALL_LETTER_FINAL_SIGMA: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(C), T(KP_2), U(LALT), END - ); -case UC_GREEK_CAPITAL_LETTER_XI: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(KP_9), T(E), U(LALT), END - ); -case UC_GREEK_SMALL_LETTER_THETA: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(B), T(KP_8), U(LALT), END - ); -case UC_GREEK_SMALL_LETTER_ETA: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(B), T(KP_7), U(LALT), END - ); -case UC_SUBSCRIPT_TWO: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_8), T(KP_2), U(LALT), END - ); -case UC_ASYMPTOTICALLY_EQUAL_TO: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_2), T(KP_4), T(KP_3), U(LALT), END - ); -case UC_GREEK_SMALL_LETTER_ALPHA: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(B), T(KP_1), U(LALT), END - ); -case UC_GREEK_CAPITAL_LETTER_PHI: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(A), T(KP_6), U(LALT), END - ); -case UC_GREEK_SMALL_LETTER_PHI: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(C), T(KP_6), U(LALT), END - ); -case UC_INFINITY: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_2), T(KP_1), T(E), U(LALT), END - ); -case UC_GREEK_CAPITAL_LETTER_OMICRON: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(KP_9), T(F), U(LALT), END - ); -case UC_ELEMENT_OF: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_2), T(KP_0), T(KP_8), U(LALT), END - ); -case UC_MULTIPLICATION_SIGN: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_0), T(D), T(KP_7), U(LALT), END - ); -case UC_SUBSCRIPT_ZERO: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_8), T(KP_0), U(LALT), END - ); -case UC_GREEK_CAPITAL_LETTER_SIGMA: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(A), T(KP_3), U(LALT), END - ); -case UC_GREEK_SMALL_LETTER_OMEGA: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(C), T(KP_9), U(LALT), END - ); -case UC_SUBSCRIPT_ONE: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_8), T(KP_1), U(LALT), END - ); -case UC_GREEK_CAPITAL_LETTER_ZETA: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(KP_9), T(KP_6), U(LALT), END - ); -case UC_GREEK_SMALL_LETTER_TAU: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(C), T(KP_4), U(LALT), END - ); -case UC_SUPERSCRIPT_FIVE: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_7), T(KP_5), U(LALT), END - ); -case UC_THERE_EXISTS: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_2), T(KP_0), T(KP_3), U(LALT), END - ); -case UC_PLUS_MINUS_SIGN: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_0), T(B), T(KP_1), U(LALT), END - ); -case UC_VULGAR_FRACTION_THREE_QUARTERS: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_0), T(B), T(E), U(LALT), END - ); -case UC_SUPERSCRIPT_THREE: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_0), T(B), T(KP_3), U(LALT), END - ); -case UC_EMPTY_SET: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_2), T(KP_0), T(KP_5), U(LALT), END - ); -case UC_UPWARDS_ARROW: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_1), T(KP_9), T(KP_1), U(LALT), END - ); -case UC_SUPERSCRIPT_NINE: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_7), T(KP_9), U(LALT), END - ); -case UC_GREEK_SMALL_LETTER_DELTA: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(B), T(KP_4), U(LALT), END - ); -case UC_GREEK_SMALL_LETTER_MU: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(B), T(C), U(LALT), END - ); -case UC_GREEK_CAPITAL_LETTER_KAPPA: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(KP_9), T(A), U(LALT), END - ); -case UC_SUBSCRIPT_EIGHT: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_8), T(KP_8), U(LALT), END - ); -case UC_GREEK_CAPITAL_LETTER_ALPHA: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(KP_9), T(KP_1), U(LALT), END - ); -case UC_SUBSCRIPT_SEVEN: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_8), T(KP_7), U(LALT), END - ); -case UC_GREEK_CAPITAL_LETTER_BETA: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(KP_9), T(KP_2), U(LALT), END - ); -case UC_GREEK_CAPITAL_LETTER_ETA: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(KP_9), T(KP_7), U(LALT), END - ); -case UC_SUPERSCRIPT_EIGHT: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_7), T(KP_8), U(LALT), END - ); -case UC_SUPERSCRIPT_ZERO: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_7), T(KP_0), U(LALT), END - ); -case UC_NOT_AN_ELEMENT_OF: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_2), T(KP_0), T(KP_9), U(LALT), END - ); -case UC_GREEK_SMALL_LETTER_UPSILON: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(C), T(KP_5), U(LALT), END - ); -case UC_NOT_EQUAL_TO: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_2), T(KP_6), T(KP_0), U(LALT), END - ); -case UC_GREEK_CAPITAL_LETTER_CHI: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(A), T(KP_7), U(LALT), END - ); -case UC_FOR_ALL: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_2), T(KP_0), T(KP_0), U(LALT), END - ); -case UC_GREEK_CAPITAL_LETTER_TAU: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(A), T(KP_4), U(LALT), END - ); -case UC_VULGAR_FRACTION_ONE_QUARTER: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_0), T(B), T(C), U(LALT), END - ); -case UC_GREEK_SMALL_LETTER_CHI: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(C), T(KP_7), U(LALT), END - ); -case UC_GREEK_CAPITAL_LETTER_THETA: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(KP_9), T(KP_8), U(LALT), END - ); -case UC_GREEK_SMALL_LETTER_IOTA: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(B), T(KP_9), U(LALT), END - ); -case UC_GREEK_CAPITAL_LETTER_LAMDA: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(KP_9), T(B), U(LALT), END - ); -case UC_SUPERSCRIPT_LATIN_SMALL_LETTER_N: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_7), T(F), U(LALT), END - ); -case UC_GREEK_CAPITAL_LETTER_UPSILON: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(A), T(KP_5), U(LALT), END - ); -case UC_GREEK_CAPITAL_LETTER_MU: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(KP_9), T(C), U(LALT), END - ); -case UC_GREEK_CAPITAL_LETTER_EPSILON: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(KP_9), T(KP_5), U(LALT), END - ); -case UC_GREEK_CAPITAL_LETTER_GAMMA: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(KP_9), T(KP_3), U(LALT), END - ); -case UC_SUBSCRIPT_SIX: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_2), T(KP_0), T(KP_8), T(KP_6), U(LALT), END - ); -case UC_GREEK_CAPITAL_LETTER_DELTA: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_3), T(KP_9), T(KP_4), U(LALT), END - ); -case UC_VULGAR_FRACTION_ONE_HALF: - return MACRODOWN( - D(LALT), T(KP_PLUS), T(KP_0), T(KP_0), T(B), T(D), U(LALT), END - ); - default: - break; - } - } else if (unicode_mode == UC_MODE_LINUX) { - switch(id) { - case UC_GREEK_SMALL_LETTER_OMICRON: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(B), T(F), T(KP_ENTER), END - ); + +case UC_GREEK_SMALL_LETTER_OMICRON: + unicode_action_function(0x03, 0xbf); + break; case UC_LEFTWARDS_ARROW: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_1), T(KP_9), T(KP_0), T(KP_ENTER), END - ); + unicode_action_function(0x21, 0x90); + break; case UC_GREEK_CAPITAL_LETTER_RHO: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(A), T(KP_1), T(KP_ENTER), END - ); + unicode_action_function(0x03, 0xa1); + break; case UC_SUBSCRIPT_THREE: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_8), T(KP_3), T(KP_ENTER), END - ); + unicode_action_function(0x20, 0x83); + break; case UC_VULGAR_FRACTION_ONE_EIGHTH: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_1), T(KP_5), T(B), T(KP_ENTER), END - ); + unicode_action_function(0x21, 0x5b); + break; case UC_GREEK_SMALL_LETTER_LAMDA: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(B), T(B), T(KP_ENTER), END - ); + unicode_action_function(0x03, 0xbb); + break; case UC_VULGAR_FRACTION_ONE_THIRD: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_1), T(KP_5), T(KP_3), T(KP_ENTER), END - ); + unicode_action_function(0x21, 0x53); + break; case UC_GREEK_SMALL_LETTER_XI: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(B), T(E), T(KP_ENTER), END - ); + unicode_action_function(0x03, 0xbe); + break; case UC_THERE_DOES_NOT_EXIST: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_2), T(KP_0), T(KP_4), T(KP_ENTER), END - ); + unicode_action_function(0x22, 0x04); + break; case UC_SUPERSCRIPT_ONE: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_0), T(B), T(KP_9), T(KP_ENTER), END - ); + unicode_action_function(0x00, 0xb9); + break; case UC_GREEK_SMALL_LETTER_BETA: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(B), T(KP_2), T(KP_ENTER), END - ); + unicode_action_function(0x03, 0xb2); + break; case UC_SUBSCRIPT_FIVE: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_8), T(KP_5), T(KP_ENTER), END - ); + unicode_action_function(0x20, 0x85); + break; case UC_GREEK_CAPITAL_LETTER_IOTA: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(KP_9), T(KP_9), T(KP_ENTER), END - ); + unicode_action_function(0x03, 0x99); + break; case UC_VULGAR_FRACTION_ONE_FIFTH: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_1), T(KP_5), T(KP_5), T(KP_ENTER), END - ); + unicode_action_function(0x21, 0x55); + break; case UC_GREEK_SMALL_LETTER_PSI: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(C), T(KP_8), T(KP_ENTER), END - ); + unicode_action_function(0x03, 0xc8); + break; case UC_SUBSCRIPT_NINE: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_8), T(KP_9), T(KP_ENTER), END - ); + unicode_action_function(0x20, 0x89); + break; case UC_SUPERSCRIPT_FOUR: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_7), T(KP_4), T(KP_ENTER), END - ); + unicode_action_function(0x20, 0x74); + break; case UC_RIGHTWARDS_ARROW: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_1), T(KP_9), T(KP_2), T(KP_ENTER), END - ); + unicode_action_function(0x21, 0x92); + break; case UC_SUPERSCRIPT_SIX: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_7), T(KP_6), T(KP_ENTER), END - ); + unicode_action_function(0x20, 0x76); + break; case UC_DOWNWARDS_ARROW: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_1), T(KP_9), T(KP_3), T(KP_ENTER), END - ); + unicode_action_function(0x21, 0x93); + break; case UC_GREEK_SMALL_LETTER_PI: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(C), T(KP_0), T(KP_ENTER), END - ); + unicode_action_function(0x03, 0xc0); + break; case UC_SUPERSCRIPT_TWO: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_0), T(B), T(KP_2), T(KP_ENTER), END - ); + unicode_action_function(0x00, 0xb2); + break; case UC_GREEK_CAPITAL_LETTER_OMEGA: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(A), T(KP_9), T(KP_ENTER), END - ); + unicode_action_function(0x03, 0xa9); + break; case UC_GREEK_CAPITAL_LETTER_PSI: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(A), T(KP_8), T(KP_ENTER), END - ); + unicode_action_function(0x03, 0xa8); + break; case UC_SUBSCRIPT_FOUR: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_8), T(KP_4), T(KP_ENTER), END - ); + unicode_action_function(0x20, 0x84); + break; case UC_GREEK_CAPITAL_LETTER_NU: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(KP_9), T(D), T(KP_ENTER), END - ); + unicode_action_function(0x03, 0x9d); + break; case UC_DIVISION_SIGN: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_0), T(F), T(KP_7), T(KP_ENTER), END - ); + unicode_action_function(0x00, 0xf7); + break; case UC_GREEK_SMALL_LETTER_SIGMA: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(C), T(KP_3), T(KP_ENTER), END - ); + unicode_action_function(0x03, 0xc3); + break; case UC_GREEK_SMALL_LETTER_RHO: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(C), T(KP_1), T(KP_ENTER), END - ); + unicode_action_function(0x03, 0xc1); + break; case UC_VULGAR_FRACTION_ONE_SIXTH: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_1), T(KP_5), T(KP_9), T(KP_ENTER), END - ); + unicode_action_function(0x21, 0x59); + break; case UC_GREEK_SMALL_LETTER_GAMMA: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(B), T(KP_3), T(KP_ENTER), END - ); + unicode_action_function(0x03, 0xb3); + break; case UC_VULGAR_FRACTION_TWO_THIRDS: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_1), T(KP_5), T(KP_4), T(KP_ENTER), END - ); + unicode_action_function(0x21, 0x54); + break; case UC_GREEK_SMALL_LETTER_NU: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(B), T(D), T(KP_ENTER), END - ); + unicode_action_function(0x03, 0xbd); + break; case UC_GREEK_SMALL_LETTER_ZETA: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(B), T(KP_6), T(KP_ENTER), END - ); + unicode_action_function(0x03, 0xb6); + break; case UC_GREEK_SMALL_LETTER_EPSILON: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(B), T(KP_5), T(KP_ENTER), END - ); + unicode_action_function(0x03, 0xb5); + break; case UC_GREEK_SMALL_LETTER_KAPPA: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(B), T(A), T(KP_ENTER), END - ); + unicode_action_function(0x03, 0xba); + break; case UC_SUPERSCRIPT_SEVEN: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_7), T(KP_7), T(KP_ENTER), END - ); + unicode_action_function(0x20, 0x77); + break; case UC_GREEK_CAPITAL_LETTER_PI: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(A), T(KP_0), T(KP_ENTER), END - ); + unicode_action_function(0x03, 0xa0); + break; case UC_GREEK_SMALL_LETTER_FINAL_SIGMA: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(C), T(KP_2), T(KP_ENTER), END - ); + unicode_action_function(0x03, 0xc2); + break; case UC_GREEK_CAPITAL_LETTER_XI: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(KP_9), T(E), T(KP_ENTER), END - ); + unicode_action_function(0x03, 0x9e); + break; case UC_GREEK_SMALL_LETTER_THETA: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(B), T(KP_8), T(KP_ENTER), END - ); + unicode_action_function(0x03, 0xb8); + break; case UC_GREEK_SMALL_LETTER_ETA: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(B), T(KP_7), T(KP_ENTER), END - ); + unicode_action_function(0x03, 0xb7); + break; case UC_SUBSCRIPT_TWO: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_8), T(KP_2), T(KP_ENTER), END - ); + unicode_action_function(0x20, 0x82); + break; case UC_ASYMPTOTICALLY_EQUAL_TO: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_2), T(KP_4), T(KP_3), T(KP_ENTER), END - ); + unicode_action_function(0x22, 0x43); + break; case UC_GREEK_SMALL_LETTER_ALPHA: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(B), T(KP_1), T(KP_ENTER), END - ); + unicode_action_function(0x03, 0xb1); + break; case UC_GREEK_CAPITAL_LETTER_PHI: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(A), T(KP_6), T(KP_ENTER), END - ); + unicode_action_function(0x03, 0xa6); + break; case UC_GREEK_SMALL_LETTER_PHI: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(C), T(KP_6), T(KP_ENTER), END - ); + unicode_action_function(0x03, 0xc6); + break; case UC_INFINITY: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_2), T(KP_1), T(E), T(KP_ENTER), END - ); + unicode_action_function(0x22, 0x1e); + break; case UC_GREEK_CAPITAL_LETTER_OMICRON: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(KP_9), T(F), T(KP_ENTER), END - ); + unicode_action_function(0x03, 0x9f); + break; case UC_ELEMENT_OF: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_2), T(KP_0), T(KP_8), T(KP_ENTER), END - ); + unicode_action_function(0x22, 0x08); + break; case UC_MULTIPLICATION_SIGN: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_0), T(D), T(KP_7), T(KP_ENTER), END - ); + unicode_action_function(0x00, 0xd7); + break; case UC_SUBSCRIPT_ZERO: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_8), T(KP_0), T(KP_ENTER), END - ); + unicode_action_function(0x20, 0x80); + break; case UC_GREEK_CAPITAL_LETTER_SIGMA: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(A), T(KP_3), T(KP_ENTER), END - ); + unicode_action_function(0x03, 0xa3); + break; case UC_GREEK_SMALL_LETTER_OMEGA: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(C), T(KP_9), T(KP_ENTER), END - ); + unicode_action_function(0x03, 0xc9); + break; case UC_SUBSCRIPT_ONE: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_8), T(KP_1), T(KP_ENTER), END - ); + unicode_action_function(0x20, 0x81); + break; case UC_GREEK_CAPITAL_LETTER_ZETA: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(KP_9), T(KP_6), T(KP_ENTER), END - ); + unicode_action_function(0x03, 0x96); + break; case UC_GREEK_SMALL_LETTER_TAU: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(C), T(KP_4), T(KP_ENTER), END - ); + unicode_action_function(0x03, 0xc4); + break; case UC_SUPERSCRIPT_FIVE: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_7), T(KP_5), T(KP_ENTER), END - ); + unicode_action_function(0x20, 0x75); + break; case UC_THERE_EXISTS: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_2), T(KP_0), T(KP_3), T(KP_ENTER), END - ); + unicode_action_function(0x22, 0x03); + break; case UC_PLUS_MINUS_SIGN: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_0), T(B), T(KP_1), T(KP_ENTER), END - ); + unicode_action_function(0x00, 0xb1); + break; case UC_VULGAR_FRACTION_THREE_QUARTERS: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_0), T(B), T(E), T(KP_ENTER), END - ); + unicode_action_function(0x00, 0xbe); + break; case UC_SUPERSCRIPT_THREE: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_0), T(B), T(KP_3), T(KP_ENTER), END - ); + unicode_action_function(0x00, 0xb3); + break; case UC_EMPTY_SET: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_2), T(KP_0), T(KP_5), T(KP_ENTER), END - ); + unicode_action_function(0x22, 0x05); + break; case UC_UPWARDS_ARROW: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_1), T(KP_9), T(KP_1), T(KP_ENTER), END - ); + unicode_action_function(0x21, 0x91); + break; case UC_SUPERSCRIPT_NINE: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_7), T(KP_9), T(KP_ENTER), END - ); + unicode_action_function(0x20, 0x79); + break; case UC_GREEK_SMALL_LETTER_DELTA: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(B), T(KP_4), T(KP_ENTER), END - ); + unicode_action_function(0x03, 0xb4); + break; case UC_GREEK_SMALL_LETTER_MU: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(B), T(C), T(KP_ENTER), END - ); + unicode_action_function(0x03, 0xbc); + break; case UC_GREEK_CAPITAL_LETTER_KAPPA: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(KP_9), T(A), T(KP_ENTER), END - ); + unicode_action_function(0x03, 0x9a); + break; case UC_SUBSCRIPT_EIGHT: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_8), T(KP_8), T(KP_ENTER), END - ); + unicode_action_function(0x20, 0x88); + break; case UC_GREEK_CAPITAL_LETTER_ALPHA: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(KP_9), T(KP_1), T(KP_ENTER), END - ); + unicode_action_function(0x03, 0x91); + break; case UC_SUBSCRIPT_SEVEN: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_8), T(KP_7), T(KP_ENTER), END - ); + unicode_action_function(0x20, 0x87); + break; case UC_GREEK_CAPITAL_LETTER_BETA: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(KP_9), T(KP_2), T(KP_ENTER), END - ); + unicode_action_function(0x03, 0x92); + break; case UC_GREEK_CAPITAL_LETTER_ETA: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(KP_9), T(KP_7), T(KP_ENTER), END - ); + unicode_action_function(0x03, 0x97); + break; case UC_SUPERSCRIPT_EIGHT: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_7), T(KP_8), T(KP_ENTER), END - ); + unicode_action_function(0x20, 0x78); + break; case UC_SUPERSCRIPT_ZERO: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_7), T(KP_0), T(KP_ENTER), END - ); + unicode_action_function(0x20, 0x70); + break; case UC_NOT_AN_ELEMENT_OF: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_2), T(KP_0), T(KP_9), T(KP_ENTER), END - ); + unicode_action_function(0x22, 0x09); + break; case UC_GREEK_SMALL_LETTER_UPSILON: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(C), T(KP_5), T(KP_ENTER), END - ); + unicode_action_function(0x03, 0xc5); + break; case UC_NOT_EQUAL_TO: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_2), T(KP_6), T(KP_0), T(KP_ENTER), END - ); + unicode_action_function(0x22, 0x60); + break; case UC_GREEK_CAPITAL_LETTER_CHI: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(A), T(KP_7), T(KP_ENTER), END - ); + unicode_action_function(0x03, 0xa7); + break; case UC_FOR_ALL: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_2), T(KP_0), T(KP_0), T(KP_ENTER), END - ); + unicode_action_function(0x22, 0x00); + break; case UC_GREEK_CAPITAL_LETTER_TAU: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(A), T(KP_4), T(KP_ENTER), END - ); + unicode_action_function(0x03, 0xa4); + break; case UC_VULGAR_FRACTION_ONE_QUARTER: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_0), T(B), T(C), T(KP_ENTER), END - ); + unicode_action_function(0x00, 0xbc); + break; case UC_GREEK_SMALL_LETTER_CHI: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(C), T(KP_7), T(KP_ENTER), END - ); + unicode_action_function(0x03, 0xc7); + break; case UC_GREEK_CAPITAL_LETTER_THETA: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(KP_9), T(KP_8), T(KP_ENTER), END - ); + unicode_action_function(0x03, 0x98); + break; case UC_GREEK_SMALL_LETTER_IOTA: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(B), T(KP_9), T(KP_ENTER), END - ); + unicode_action_function(0x03, 0xb9); + break; case UC_GREEK_CAPITAL_LETTER_LAMDA: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(KP_9), T(B), T(KP_ENTER), END - ); + unicode_action_function(0x03, 0x9b); + break; case UC_SUPERSCRIPT_LATIN_SMALL_LETTER_N: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_7), T(F), T(KP_ENTER), END - ); + unicode_action_function(0x20, 0x7f); + break; case UC_GREEK_CAPITAL_LETTER_UPSILON: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(A), T(KP_5), T(KP_ENTER), END - ); + unicode_action_function(0x03, 0xa5); + break; case UC_GREEK_CAPITAL_LETTER_MU: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(KP_9), T(C), T(KP_ENTER), END - ); + unicode_action_function(0x03, 0x9c); + break; case UC_GREEK_CAPITAL_LETTER_EPSILON: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(KP_9), T(KP_5), T(KP_ENTER), END - ); + unicode_action_function(0x03, 0x95); + break; case UC_GREEK_CAPITAL_LETTER_GAMMA: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(KP_9), T(KP_3), T(KP_ENTER), END - ); + unicode_action_function(0x03, 0x93); + break; case UC_SUBSCRIPT_SIX: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_2), T(KP_0), T(KP_8), T(KP_6), T(KP_ENTER), END - ); + unicode_action_function(0x20, 0x86); + break; case UC_GREEK_CAPITAL_LETTER_DELTA: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_3), T(KP_9), T(KP_4), T(KP_ENTER), END - ); + unicode_action_function(0x03, 0x94); + break; case UC_VULGAR_FRACTION_ONE_HALF: - return MACRODOWN( - D(LCTRL), D(LSHIFT), T(U), U(LCTRL), U(LSHIFT), T(KP_0), T(KP_0), T(B), T(D), T(KP_ENTER), END - ); - default: - break; - } + unicode_action_function(0x00, 0xbd); + break; + default: + break; } return MACRO_NONE; }; diff --git a/keyboard/ergodox_ez/keymaps/german-manuneo/keymap.md b/keyboard/ergodox_ez/keymaps/german-manuneo/keymap.md index 1dc019ab0..2c9e0a837 100644 --- a/keyboard/ergodox_ez/keymaps/german-manuneo/keymap.md +++ b/keyboard/ergodox_ez/keymaps/german-manuneo/keymap.md @@ -2,14 +2,15 @@ Compile this file to a `keymap.c` file using `compile_keymap.py` - compile_keymap.py keymaps/german-manuneo/keymap.md + python compile_keymap.py keymaps/german-manuneo/keymap.md + +Tested with python 2.7 and python 3.4 # Layout Config { "layout": "ergodox_ez", - "includes_dir": "quantum/", "keymaps_includes": [ "ergodox_ez.h", "action_layer.h", @@ -17,8 +18,6 @@ Compile this file to a `keymap.c` file using `compile_keymap.py` "keymap_extras/keymap_german.h", ], "key_prefixes": ["DE_", "KC_"], - "filler": "-+.'!x", - "separator": "|", "macros": { // TODO: implement macros // "MUC": "", @@ -41,7 +40,7 @@ Compile this file to a `keymap.c` file using `compile_keymap.py` !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! |MO(3)| UE | OE | AE | C | V |END | TAB | B | M |COMM| DOT| UP | Y | '-----+----+----+----+----+----------'----------+----+----+----+----+-----' - | | |LGUI|LALT|LCTL| !LALT| |LEFT|DOWN|RGHT| + | | |LGUI|LALT|LCTL| !RCTL|RALT|LEFT|DOWN|RGHT| '------------------------' '------------------------' .-----------. .-----------. |INS |TG(2)| !M(UM)|DELT | @@ -187,46 +186,3 @@ http://symbolcodes.tlt.psu.edu/bylanguage/mathchart.html | | | | ! | | | '-----------------' '-----------------' - -## Layer 7 - - .------------------------------------.------------------------------------. - | | | | | | | | | | | | | | | - !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----! - | | | | | | | | | | | | | | | - !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! - | | | | | | |-----!-----! | | | | | | - !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! - | | | | | | | | | | | | | | | - '-----+----+----+----+----+----------'----------+----+----+----+----+-----' - | | | | | | ! | | | | | - '------------------------' '------------------------' - .-----------. .-----------. - | | | ! | | - .-----+-----+-----! !-----+-----+-----. - ! ! | | ! | ! ! - ! ! !-----! !-----! ! ! - | | | | ! | | | - '-----------------' '-----------------' - - -## Layer 8 - - .------------------------------------.------------------------------------. - | | | | | | | | | | | | | | | - !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----! - | | | | | | | | | | | | | | | - !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! - | | | | | | |-----!-----! | | | | | | - !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! - | | | | | | | | | | | | | | | - '-----+----+----+----+----+----------'----------+----+----+----+----+-----' - | | | | | | ! | | | | | - '------------------------' '------------------------' - .-----------. .-----------. - | | | ! | | - .-----+-----+-----! !-----+-----+-----. - ! ! | | ! | ! ! - ! ! !-----! !-----! ! ! - | | | | ! | | | - '-----------------' '-----------------' |