commit
						8d39263d24
					
				| @ -0,0 +1,679 @@ | ||||
| #!/usr/bin/env python | ||||
| # -*- coding: utf-8 -*- | ||||
| """Compiler for keymap.c files | ||||
| 
 | ||||
| This scrip will generate a keymap.c file from a simple | ||||
| markdown file with a specific layout. | ||||
| 
 | ||||
| Usage: | ||||
|     python compile_keymap.py INPUT_PATH [OUTPUT_PATH] | ||||
| """ | ||||
| from __future__ import division | ||||
| from __future__ import print_function | ||||
| from __future__ import absolute_import | ||||
| from __future__ import unicode_literals | ||||
| 
 | ||||
| import os | ||||
| import io | ||||
| import re | ||||
| import sys | ||||
| import json | ||||
| import unicodedata | ||||
| import collections | ||||
| import itertools as it | ||||
| 
 | ||||
| PY2 = sys.version_info.major == 2 | ||||
| 
 | ||||
| if PY2: | ||||
|     chr = unichr | ||||
| 
 | ||||
| 
 | ||||
| KEYBOARD_LAYOUTS = { | ||||
|     # These map positions in the parsed layout to | ||||
|     # positions in the KEYMAP MATRIX | ||||
|     'ergodox_ez': [ | ||||
|         [ 0,  1,  2,  3,  4,  5,  6],  [38, 39, 40, 41, 42, 43, 44], | ||||
|         [ 7,  8,  9, 10, 11, 12, 13],  [45, 46, 47, 48, 49, 50, 51], | ||||
|         [14, 15, 16, 17, 18, 19    ],  [    52, 53, 54, 55, 56, 57], | ||||
|         [20, 21, 22, 23, 24, 25, 26],  [58, 59, 60, 61, 62, 63, 64], | ||||
|         [27, 28, 29, 30, 31        ],  [        65, 66, 67, 68, 69], | ||||
|         [                    32, 33],  [70, 71                    ], | ||||
|         [                        34],  [72                        ], | ||||
|         [                35, 36, 37],  [73, 74, 75                ], | ||||
|     ] | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| BLANK_LAYOUTS = [ | ||||
| # Compact Layout | ||||
| """ | ||||
| .------------------------------------.------------------------------------. | ||||
| |     |    |    |    |    |    |     |     |    |    |    |    |    |     | | ||||
| !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----! | ||||
| |     |    |    |    |    |    |     |     |    |    |    |    |    |     | | ||||
| !-----+----+----+----x----x----!     !     !----x----x----+----+----+-----! | ||||
| |     |    |    |    |    |    |-----!-----!    |    |    |    |    |     | | ||||
| !-----+----+----+----x----x----!     !     !----x----x----+----+----+-----! | ||||
| |     |    |    |    |    |    |     |     |    |    |    |    |    |     | | ||||
| '-----+----+----+----+----+----------'----------+----+----+----+----+-----' | ||||
|  |    |    |    |    |    |                     !    |    |    |    |    | | ||||
|  '------------------------'                     '------------------------' | ||||
|                         .-----------. .-----------. | ||||
|                         |     |     | !     |     | | ||||
|                   .-----+-----+-----! !-----+-----+-----. | ||||
|                   !     !     |     | !     |     !     ! | ||||
|                   !     !     !-----! !-----!     !     ! | ||||
|                   |     |     |     | !     |     |     | | ||||
|                   '-----------------' '-----------------' | ||||
| """, | ||||
| 
 | ||||
| # Wide Layout | ||||
| """ | ||||
| .---------------------------------------------. .---------------------------------------------. | ||||
| |       |     |     |     |     |     |       | !       |     |     |     |     |     |       | | ||||
| !-------+-----+-----+-----+-----+-------------! !-------+-----+-----+-----+-----+-----+-------! | ||||
| |       |     |     |     |     |     |       | !       |     |     |     |     |     |       | | ||||
| !-------+-----+-----+-----x-----x-----!       ! !       !-----x-----x-----+-----+-----+-------! | ||||
| |       |     |     |     |     |     |-------! !-------!     |     |     |     |     |       | | ||||
| !-------+-----+-----+-----x-----x-----!       ! !       !-----x-----x-----+-----+-----+-------! | ||||
| |       |     |     |     |     |     |       | !       |     |     |     |     |     |       | | ||||
| '-------+-----+-----+-----+-----+-------------' '-------------+-----+-----+-----+-----+-------' | ||||
|  |      |     |     |     |     |                             !     |     |     |     |      | | ||||
|  '------------------------------'                             '------------------------------' | ||||
|                               .---------------. .---------------. | ||||
|                               |       |       | !       |       | | ||||
|                       .-------+-------+-------! !-------+-------+-------. | ||||
|                       !       !       |       | !       |       !       ! | ||||
|                       !       !       !-------! !-------!       !       ! | ||||
|                       |       |       |       | !       |       |       | | ||||
|                       '-----------------------' '-----------------------' | ||||
| """, | ||||
| ] | ||||
| 
 | ||||
| 
 | ||||
| DEFAULT_CONFIG = { | ||||
|     "keymaps_includes": [ | ||||
|         "keymap_common.h", | ||||
|     ], | ||||
|     'filler': "-+.'!:x", | ||||
|     'separator': "|", | ||||
|     'default_key_prefix': ["KC_"], | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| SECTIONS = [ | ||||
|     'layout_config', | ||||
|     'layers', | ||||
| ] | ||||
| 
 | ||||
| 
 | ||||
| #       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): | ||||
|     if isinstance(raw_data, bytes): | ||||
|         raw_data = raw_data.decode('utf-8') | ||||
| 
 | ||||
|     raw_data = ONELINE_COMMENT_RE.sub(r"", raw_data) | ||||
|     raw_data = INLINE_COMMENT_RE.sub(r"\1", raw_data) | ||||
|     raw_data = TRAILING_COMMA_RE.sub(r"\1\2", raw_data) | ||||
|     return json.loads(raw_data) | ||||
| 
 | ||||
| 
 | ||||
| def parse_config(path): | ||||
|     def reset_section(): | ||||
|         section.update({ | ||||
|             'name': section.get('name', ""), | ||||
|             'sub_name': "", | ||||
|             'start_line': -1, | ||||
|             'end_line': -1, | ||||
|             'code_lines': [], | ||||
|         }) | ||||
| 
 | ||||
|     def start_section(line_index, line): | ||||
|         end_section() | ||||
|         if line.startswith("# "): | ||||
|             name = line[2:] | ||||
|         elif line.startswith("## "): | ||||
|             name = line[3:] | ||||
|         else: | ||||
|             name = "" | ||||
| 
 | ||||
|         name = name.strip().replace(" ", "_").lower() | ||||
|         if name in SECTIONS: | ||||
|             section['name'] = name | ||||
|         else: | ||||
|             section['sub_name'] = name | ||||
|         section['start_line'] = line_index | ||||
| 
 | ||||
|     def end_section(): | ||||
|         if section['start_line'] >= 0: | ||||
|             if section['name'] == 'layout_config': | ||||
|                 config.update(loads("\n".join( | ||||
|                     section['code_lines'] | ||||
|                 ))) | ||||
|             elif section['sub_name'].startswith('layer'): | ||||
|                 layer_name = section['sub_name'] | ||||
|                 config['layer_lines'][layer_name] = section['code_lines'] | ||||
| 
 | ||||
|         reset_section() | ||||
| 
 | ||||
|     def amend_section(line_index, line): | ||||
|         section['end_line'] = line_index | ||||
|         section['code_lines'].append(line) | ||||
| 
 | ||||
|     config = DEFAULT_CONFIG.copy() | ||||
|     config.update({ | ||||
|         'layer_lines': collections.OrderedDict(), | ||||
|         'macro_ids': {'UM'}, | ||||
|         'unicode_macros': {}, | ||||
|     }) | ||||
| 
 | ||||
|     section = {} | ||||
|     reset_section() | ||||
| 
 | ||||
|     with io.open(path, encoding="utf-8") as fh: | ||||
|         for i, line in enumerate(fh): | ||||
|             if line.startswith("#"): | ||||
|                 start_section(i, line) | ||||
|             elif line.startswith("    "): | ||||
|                 amend_section(i, line[4:]) | ||||
|             else: | ||||
|                 # TODO: maybe parse description | ||||
|                 pass | ||||
| 
 | ||||
|     end_section() | ||||
|     assert 'layout' in config | ||||
|     return config | ||||
| 
 | ||||
| #       header file parsing | ||||
| 
 | ||||
| IF0_RE = re.compile(r""" | ||||
|     ^ | ||||
|     #if 0 | ||||
|     $.*? | ||||
|     #endif | ||||
| """, re.MULTILINE | re.DOTALL | re.VERBOSE) | ||||
| 
 | ||||
| 
 | ||||
| COMMENT_RE = re.compile(r""" | ||||
|     /\* | ||||
|     .*? | ||||
|     \*/" | ||||
| """, re.MULTILINE | re.DOTALL | re.VERBOSE) | ||||
| 
 | ||||
| 
 | ||||
| def read_header_file(path): | ||||
|     with io.open(path, encoding="utf-8") as fh: | ||||
|         data = fh.read() | ||||
|     data, _ = COMMENT_RE.subn("", data) | ||||
|     data, _ = IF0_RE.subn("", data) | ||||
|     return data | ||||
| 
 | ||||
| 
 | ||||
| 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) | ||||
|     return partial | ||||
| 
 | ||||
| 
 | ||||
| KEYDEF_REP = regex_partial(r""" | ||||
|     #define | ||||
|     \s | ||||
|     ( | ||||
|         (?:{})          # the prefixes | ||||
|         (?:\w+)         # the key name | ||||
|     )                   # capture group end | ||||
| """, re.MULTILINE | re.DOTALL | re.VERBOSE) | ||||
| 
 | ||||
| 
 | ||||
| ENUM_RE = re.compile(r""" | ||||
|     ( | ||||
|         enum | ||||
|         \s\w+\s | ||||
|         \{ | ||||
|         .*?             # the enum content | ||||
|         \} | ||||
|         ; | ||||
|     )                   # capture group end | ||||
| """, re.MULTILINE | re.DOTALL | re.VERBOSE) | ||||
| 
 | ||||
| 
 | ||||
| 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']) | ||||
|     keydef_re = KEYDEF_REP(prefix_options) | ||||
|     enum_key_re = ENUM_KEY_REP(prefix_options) | ||||
|     for match in keydef_re.finditer(data): | ||||
|         yield match.groups()[0] | ||||
| 
 | ||||
|     for enum_match in ENUM_RE.finditer(data): | ||||
|         enum = enum_match.groups()[0] | ||||
|         for key_match in enum_key_re.finditer(enum): | ||||
|             yield key_match.groups()[0] | ||||
| 
 | ||||
| 
 | ||||
| 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") | ||||
| 
 | ||||
|     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): | ||||
|     filler_re = re.compile("[" + filler + " ]") | ||||
|     for line in layer_lines: | ||||
|         line, _ = filler_re.subn("", line.strip()) | ||||
|         if not line: | ||||
|             continue | ||||
|         codes = line.split(separator) | ||||
|         for code in codes[1:-1]: | ||||
|             yield code | ||||
| 
 | ||||
| 
 | ||||
| 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 | ||||
|         key_indexes_flat.extend(key_indexes) | ||||
|     assert len(raw_codes) == len(key_indexes_flat) | ||||
|     for raw_code, key_index in zip(raw_codes, key_indexes_flat): | ||||
|         # we keep track of the row mostly for layout purposes | ||||
|         yield raw_code, key_index, key_rows[key_index] | ||||
| 
 | ||||
| 
 | ||||
| LAYER_CHANGE_RE = re.compile(r""" | ||||
|     (DF|TG|MO)\(\d+\) | ||||
| """, re.VERBOSE) | ||||
| 
 | ||||
| 
 | ||||
| MACRO_RE = re.compile(r""" | ||||
|     M\(\w+\) | ||||
| """, re.VERBOSE) | ||||
| 
 | ||||
| 
 | ||||
| UNICODE_RE = re.compile(r""" | ||||
|     U[0-9A-F]{4} | ||||
| """, re.VERBOSE) | ||||
| 
 | ||||
| 
 | ||||
| NON_CODE = re.compile(r""" | ||||
|     ^[^A-Z0-9_]$ | ||||
| """, re.VERBOSE) | ||||
| 
 | ||||
| 
 | ||||
| def parse_uni_code(raw_code): | ||||
|     macro_id = "UC_" + ( | ||||
|         unicodedata.name(raw_code) | ||||
|         .replace(" ", "_") | ||||
|         .replace("-", "_") | ||||
|     ) | ||||
|     code = "M({})".format(macro_id) | ||||
|     uc_hex = "{:04X}".format(ord(raw_code)) | ||||
|     return code, macro_id, uc_hex | ||||
| 
 | ||||
| 
 | ||||
| def parse_key_code(raw_code, key_prefixes, valid_keycodes): | ||||
|     if raw_code in valid_keycodes: | ||||
|         return raw_code | ||||
| 
 | ||||
|     for prefix in key_prefixes: | ||||
|         code = prefix + raw_code | ||||
|         if code in valid_keycodes: | ||||
|             return code | ||||
| 
 | ||||
| 
 | ||||
| def parse_code(raw_code, key_prefixes, valid_keycodes): | ||||
|     if not raw_code: | ||||
|         return 'KC_TRNS', None, None | ||||
| 
 | ||||
|     if LAYER_CHANGE_RE.match(raw_code): | ||||
|         return raw_code, None, None | ||||
| 
 | ||||
|     if MACRO_RE.match(raw_code): | ||||
|         macro_id = raw_code[2:-1] | ||||
|         return raw_code, macro_id, None | ||||
| 
 | ||||
|     if UNICODE_RE.match(raw_code): | ||||
|         hex_code = raw_code[1:] | ||||
|         return parse_uni_code(chr(int(hex_code, 16))) | ||||
| 
 | ||||
|     if NON_CODE.match(raw_code): | ||||
|         return parse_uni_code(raw_code) | ||||
| 
 | ||||
|     code = parse_key_code(raw_code, key_prefixes, valid_keycodes) | ||||
|     return code, None, None | ||||
| 
 | ||||
| 
 | ||||
| def parse_keymap(config, key_indexes, layer_lines, valid_keycodes): | ||||
|     keymap = {} | ||||
|     raw_codes = list(iter_raw_codes( | ||||
|         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, 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: | ||||
|             config['unicode_macros'][macro_id] = uc_hex | ||||
|         keymap[key_index] = (code, row_index) | ||||
|     return keymap | ||||
| 
 | ||||
| 
 | ||||
| def parse_keymaps(config, valid_keycodes): | ||||
|     keymaps = collections.OrderedDict() | ||||
|     key_indexes = config.get( | ||||
|         'key_indexes', KEYBOARD_LAYOUTS[config['layout']] | ||||
|     ) | ||||
|     # TODO: maybe validate key_indexes | ||||
| 
 | ||||
|     for layer_name, layer_lines, in config['layer_lines'].items(): | ||||
|         keymaps[layer_name] = parse_keymap( | ||||
|             config, key_indexes, layer_lines, valid_keycodes | ||||
|         ) | ||||
|     return keymaps | ||||
| 
 | ||||
| #       keymap.c output | ||||
| 
 | ||||
| USERCODE = """ | ||||
| // Runs just one time when the keyboard initializes. | ||||
| void matrix_init_user(void) { | ||||
| 
 | ||||
| }; | ||||
| 
 | ||||
| // Runs constantly in the background, in a loop. | ||||
| void matrix_scan_user(void) { | ||||
|     uint8_t layer = biton32(layer_state); | ||||
| 
 | ||||
|     ergodox_board_led_off(); | ||||
|     ergodox_right_led_1_off(); | ||||
|     ergodox_right_led_2_off(); | ||||
|     ergodox_right_led_3_off(); | ||||
|     switch (layer) { | ||||
|         case L1: | ||||
|             ergodox_right_led_1_on(); | ||||
|             break; | ||||
|         case L2: | ||||
|             ergodox_right_led_2_on(); | ||||
|             break; | ||||
|         case L3: | ||||
|             ergodox_right_led_3_on(); | ||||
|             break; | ||||
|         case L4: | ||||
|             ergodox_right_led_1_on(); | ||||
|             ergodox_right_led_2_on(); | ||||
|             break; | ||||
|         case L5: | ||||
|             ergodox_right_led_1_on(); | ||||
|             ergodox_right_led_3_on(); | ||||
|             break; | ||||
|         // case L6: | ||||
|         //     ergodox_right_led_2_on(); | ||||
|         //     ergodox_right_led_3_on(); | ||||
|         //     break; | ||||
|         // case L7: | ||||
|         //     ergodox_right_led_1_on(); | ||||
|         //     ergodox_right_led_2_on(); | ||||
|         //     ergodox_right_led_3_on(); | ||||
|         //     break; | ||||
|         default: | ||||
|             ergodox_board_led_off(); | ||||
|             break; | ||||
|     } | ||||
| }; | ||||
| """ | ||||
| 
 | ||||
| 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; | ||||
|     }} | ||||
|     // MACRODOWN only works in this function | ||||
|     switch(id) {{ | ||||
|         case UM: | ||||
|             unicode_mode = (unicode_mode + 1) % 2; | ||||
|             break; | ||||
| {macro_cases} | ||||
| {unicode_macro_cases} | ||||
|         default: | ||||
|             break; | ||||
|     }} | ||||
|     return MACRO_NONE; | ||||
| }}; | ||||
| """ | ||||
| 
 | ||||
| 
 | ||||
| UNICODE_MACRO_TEMPLATE = """ | ||||
| case {macro_id}: | ||||
|     unicode_action_function(0x{hi:02x}, 0x{lo:02x}); | ||||
|     break; | ||||
| """.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 UNICODE_MACRO_TEMPLATE.format( | ||||
|             macro_id=macro_id, hi=hi, lo=lo | ||||
|         ) | ||||
| 
 | ||||
| 
 | ||||
| def iter_keymap_lines(keymap): | ||||
|     prev_row_index = None | ||||
|     for key_index in sorted(keymap): | ||||
|         code, row_index = keymap[key_index] | ||||
|         if row_index != prev_row_index: | ||||
|             yield "\n" | ||||
|         yield " {}".format(code) | ||||
|         if key_index < len(keymap) - 1: | ||||
|             yield "," | ||||
|         prev_row_index = row_index | ||||
| 
 | ||||
| 
 | ||||
| def iter_keymap_parts(config, keymaps): | ||||
|     # includes | ||||
|     for include_path in config['keymaps_includes']: | ||||
|         yield '#include "{}"\n'.format(include_path) | ||||
| 
 | ||||
|     yield "\n" | ||||
| 
 | ||||
|     # definitions | ||||
|     for i, macro_id in enumerate(sorted(config['macro_ids'])): | ||||
|         yield "#define {} {}\n".format(macro_id, i) | ||||
| 
 | ||||
|     yield "\n" | ||||
| 
 | ||||
|     for i, layer_name in enumerate(config['layer_lines']): | ||||
|         yield '#define L{0:<3} {0:<5}  // {1}\n'.format(i, layer_name) | ||||
| 
 | ||||
|     yield "\n" | ||||
| 
 | ||||
|     # keymaps | ||||
|     yield "const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {\n" | ||||
| 
 | ||||
|     for i, layer_name in enumerate(config['layer_lines']): | ||||
|         # comment | ||||
|         layer_lines = config['layer_lines'][layer_name] | ||||
|         prefixed_lines = " * " + " * ".join(layer_lines) | ||||
|         yield "/*\n{}*/\n".format(prefixed_lines) | ||||
| 
 | ||||
|         # keymap codes | ||||
|         keymap = keymaps[layer_name] | ||||
|         keymap_lines = "".join(iter_keymap_lines(keymap)) | ||||
|         yield "[L{0}] = KEYMAP({1}\n),\n".format(i, keymap_lines) | ||||
| 
 | ||||
|     yield "};\n\n" | ||||
| 
 | ||||
|     # no idea what this is for | ||||
|     yield "const uint16_t PROGMEM fn_actions[] = {};\n" | ||||
| 
 | ||||
|     # macros | ||||
|     yield MACROCODE.format( | ||||
|         macro_cases="", | ||||
|         unicode_macro_cases="\n".join(unicode_macro_cases(config)), | ||||
|     ) | ||||
| 
 | ||||
|     # TODO: dynamically create blinking lights | ||||
|     yield USERCODE | ||||
| 
 | ||||
| 
 | ||||
| def main(argv=sys.argv[1:]): | ||||
|     if not argv or '-h' in argv or '--help' in argv: | ||||
|         print(__doc__) | ||||
|         return 0 | ||||
| 
 | ||||
|     in_path = os.path.abspath(argv[0]) | ||||
|     if not os.path.exists(in_path): | ||||
|         print("No such file '{}'".format(in_path)) | ||||
|         return 1 | ||||
| 
 | ||||
|     if len(argv) > 1: | ||||
|         out_path = os.path.abspath(argv[1]) | ||||
|     else: | ||||
|         dirname = os.path.dirname(in_path) | ||||
|         out_path = os.path.join(dirname, "keymap.c") | ||||
| 
 | ||||
|     config = parse_config(in_path) | ||||
|     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: | ||||
|         for part in iter_keymap_parts(config, keymaps): | ||||
|             fh.write(part) | ||||
| 
 | ||||
| 
 | ||||
| if __name__ == '__main__': | ||||
|     sys.exit(main()) | ||||
| @ -0,0 +1,1240 @@ | ||||
| :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 | ||||
					Loading…
					
					
				
		Reference in new issue
	
	 Erez Zukerman
						Erez Zukerman