aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStephan Bösebeck <sb@caluga.de>2016-05-11 22:05:19 +0200
committerStephan Bösebeck <sb@caluga.de>2016-05-11 22:05:19 +0200
commitd09d2da1c25b377b0f68ea83706903344c240ae1 (patch)
treedc3e88ef91206ccc251af32543a01ec2e7a7c208
parent2e02886a1ec6d92c07f1edd13d4e68af1e861991 (diff)
parent5845eb05b53ea685c9622abf011870ab4ce84f39 (diff)
downloadqmk_firmware-d09d2da1c25b377b0f68ea83706903344c240ae1.tar.gz
qmk_firmware-d09d2da1c25b377b0f68ea83706903344c240ae1.zip
Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware
-rw-r--r--BUILD_GUIDE.md4
-rw-r--r--README.md65
-rw-r--r--keyboard/atomic/atomic.c260
-rw-r--r--keyboard/atomic/atomic.h16
-rw-r--r--keyboard/atomic/keymaps/pvc/config.h3
-rw-r--r--keyboard/atomic/keymaps/pvc/keymap.c357
-rw-r--r--keyboard/atomic/keymaps/pvc/makefile.mk2
-rw-r--r--keyboard/atreus/config.h2
-rw-r--r--keyboard/ergodox_ez/Makefile16
-rw-r--r--keyboard/ergodox_ez/keymaps/erez_experimental/config_user.h8
-rw-r--r--keyboard/ergodox_ez/keymaps/erez_experimental/erez_experimental.hex2243
-rw-r--r--keyboard/ergodox_ez/keymaps/erez_experimental/keymap.c109
-rw-r--r--keyboard/ergodox_ez/keymaps/erez_experimental/makefile.mk5
-rw-r--r--keyboard/ergodox_ez/keymaps/erez_experimental/readme.md8
-rw-r--r--keyboard/ergodox_ez/keymaps/ordinary/keymap.c239
-rw-r--r--keyboard/ergodox_ez/keymaps/ordinary/ordinary-base.pngbin99031 -> 99605 bytes
-rw-r--r--keyboard/ergodox_ez/keymaps/ordinary/ordinary-base.txt4
-rw-r--r--keyboard/ergodox_ez/keymaps/ordinary/ordinary-media.pngbin123651 -> 124144 bytes
-rw-r--r--keyboard/ergodox_ez/keymaps/ordinary/ordinary-media.txt10
-rw-r--r--keyboard/ergodox_ez/keymaps/ordinary/ordinary-special.pngbin0 -> 63065 bytes
-rw-r--r--keyboard/ergodox_ez/keymaps/ordinary/ordinary-special.txt27
-rw-r--r--keyboard/ergodox_ez/keymaps/ordinary/ordinary-symbol.pngbin103944 -> 103735 bytes
-rw-r--r--keyboard/ergodox_ez/keymaps/ordinary/ordinary-symbol.txt6
-rw-r--r--keyboard/ergodox_ez/keymaps/ordinary/ordinary.hex2394
-rw-r--r--keyboard/ergodox_ez/keymaps/ordinary/readme.md37
-rw-r--r--keyboard/ergodox_ez/keymaps/zweihander-osx/keymap.c20
-rw-r--r--keyboard/planck/keymaps/experimental/README.md2
-rw-r--r--keyboard/planck/keymaps/experimental/keymap.c383
-rw-r--r--keyboard/planck/keymaps/experimental/makefile.mk2
-rw-r--r--keyboard/planck/keymaps/pvc/keymap.c13
-rw-r--r--keyboard/planck/keymaps/pvc/makefile.mk6
-rw-r--r--keyboard/planck/planck.c221
-rw-r--r--keyboard/planck/planck.h18
-rw-r--r--quantum/audio/audio.c4
-rw-r--r--quantum/audio/audio.h11
-rw-r--r--quantum/keymap_common.c8
-rw-r--r--quantum/keymap_common.h33
-rw-r--r--quantum/keymap_midi.h10
-rw-r--r--quantum/matrix.c17
-rw-r--r--quantum/quantum.mk5
-rw-r--r--quantum/tools/README.md4
-rw-r--r--tmk_core/common/action.c97
-rw-r--r--tmk_core/common/action_code.h5
-rw-r--r--tmk_core/common/action_util.c70
-rw-r--r--tmk_core/common/action_util.h20
-rw-r--r--tmk_core/common/backlight.c5
-rw-r--r--tmk_core/common/backlight.h1
-rw-r--r--tmk_core/common/command.c4
-rw-r--r--tmk_core/common/nodebug.h12
-rw-r--r--tmk_core/doc/keymap.md8
-rw-r--r--tmk_core/rules.mk9
51 files changed, 4081 insertions, 2722 deletions
diff --git a/BUILD_GUIDE.md b/BUILD_GUIDE.md
index f7a57d2fc..fd8b6202f 100644
--- a/BUILD_GUIDE.md
+++ b/BUILD_GUIDE.md
@@ -47,8 +47,8 @@ If you have any problems building the firmware, you can try using a tool called
47 47
48Note: Some keyboard folders have non-standard organizations, and may not even support specifying alternate keymaps. Until these get reorganized, you will need to edit their default keymaps directly. 48Note: Some keyboard folders have non-standard organizations, and may not even support specifying alternate keymaps. Until these get reorganized, you will need to edit their default keymaps directly.
49 49
501. Running the `make` command from your keyboard's folder will generate a .hex file based on the default keymap. All keymaps for a particular keyboard live in the `keymaps` folder in that keyboard's folder. To create your own keymap, copy `keymaps/default/keymap.c` to the `keymaps` folder, and rename it with your name, for example jack.c. Or, if you don't care about the ability to share your keymap with the community via GitHub, you can just modify the default keymap itself. Details on how to program keymap files can be found in other guides. 501. Running the `make` command from your keyboard's folder will generate a .hex file based on the default keymap. All keymaps for a particular keyboard live in the `keymaps` folder in that keyboard's folder. To create your own keymap, duplicate the folder `keymaps/default`, and rename it with your name, for example `jack`. Or, if you don't care about the ability to share your keymap with the community via GitHub, you can just modify the default keymap itself. Details on how to program keymap files can be found in other guides.
512. To build a keymap other than the default, type `KEYMAP=<name>` after `make`. So if I've named my keymap jack.c, the full command would be `make KEYMAP=jack`. 512. To build a keymap other than the default, type `KEYMAP=<name>` after `make`. So if I've named my keymap `jack`, the full command would be `make KEYMAP=jack`.
523. How you deploy the firmware will depend on whether you are using a PCB or a Teensy. In both cases, you'll need to put the keyboard in bootloader mode, either by pressing a button on the PCB/Teensy or pressing the key with the `RESET` keycode. Then, if you're using a PCB, just run `make KEYMAP=<name> dfu` to both build and deploy the firmware. If you're using a Teensy, you'll probably need to take the <keyboardname>.hex file that make produces in the keyboard's folder, and deploy it using the [Teensy Loader.](https://www.pjrc.com/teensy/loader.html) 523. How you deploy the firmware will depend on whether you are using a PCB or a Teensy. In both cases, you'll need to put the keyboard in bootloader mode, either by pressing a button on the PCB/Teensy or pressing the key with the `RESET` keycode. Then, if you're using a PCB, just run `make KEYMAP=<name> dfu` to both build and deploy the firmware. If you're using a Teensy, you'll probably need to take the <keyboardname>.hex file that make produces in the keyboard's folder, and deploy it using the [Teensy Loader.](https://www.pjrc.com/teensy/loader.html)
53 53
54## Helpful Tips 54## Helpful Tips
diff --git a/README.md b/README.md
index bb1cca1ed..395b4a552 100644
--- a/README.md
+++ b/README.md
@@ -33,6 +33,10 @@ If your keymap directory has a file called `makefile.mk` (note the lowercase fil
33 33
34So let's say your keyboard's makefile has `CONSOLE_ENABLE = yes` (or maybe doesn't even list the `CONSOLE_ENABLE` option, which would cause it to revert to the global Quantum default). You want your particular keymap to not have the debug console, so you make a file called `makefile.mk` and specify `CONSOLE_ENABLE = no`. 34So let's say your keyboard's makefile has `CONSOLE_ENABLE = yes` (or maybe doesn't even list the `CONSOLE_ENABLE` option, which would cause it to revert to the global Quantum default). You want your particular keymap to not have the debug console, so you make a file called `makefile.mk` and specify `CONSOLE_ENABLE = no`.
35 35
36### Customizing config.h on a per-keymap basis
37
38If you use the ErgoDox EZ, you can make a `config_user.h` file in your keymap directory and use it to override any `config.h` settings you don't like. Anything you set there will take precedence over the global `config.h` for the ErgoDox EZ. To see an example of this, check out `keymaps/erez_experimental`.
39
36## Quick aliases to common actions 40## Quick aliases to common actions
37 41
38Your keymap can include shortcuts to common operations (called "function actions" in tmk). 42Your keymap can include shortcuts to common operations (called "function actions" in tmk).
@@ -41,10 +45,13 @@ Your keymap can include shortcuts to common operations (called "function actions
41 45
42`MO(layer)` - momentary switch to *layer*. As soon as you let go of the key, the layer is deactivated and you pop back out to the previous layer. When you apply this to a key, that same key must be set as `KC_TRNS` on the destination layer. Otherwise, you won't make it back to the original layer when you release the key (and you'll get a keycode sent). You can only switch to layers *above* your current layer. If you're on layer 0 and you use `MO(1)`, that will switch to layer 1 just fine. But if you include `MO(3)` on layer 5, that won't do anything for you -- because layer 3 is lower than layer 5 on the stack. 46`MO(layer)` - momentary switch to *layer*. As soon as you let go of the key, the layer is deactivated and you pop back out to the previous layer. When you apply this to a key, that same key must be set as `KC_TRNS` on the destination layer. Otherwise, you won't make it back to the original layer when you release the key (and you'll get a keycode sent). You can only switch to layers *above* your current layer. If you're on layer 0 and you use `MO(1)`, that will switch to layer 1 just fine. But if you include `MO(3)` on layer 5, that won't do anything for you -- because layer 3 is lower than layer 5 on the stack.
43 47
48`OSL(layer)` - momentary switch to *layer*, as a one-shot operation. So if you have a key that's defined as `OSL(1)`, and you tap that key, then only the very next keystroke would come from layer 1. You would drop back to layer zero immediately after that one keystroke. That's handy if you have a layer full of custom shortcuts -- for example, a dedicated key for closing a window. So you tap your one-shot layer mod, then tap that magic 'close window' key, and keep typing like a boss. Layer 1 would remain active as long as you hold that key down, too (so you can use it like a momentary toggle-layer key with extra powers).
49
44`LT(layer, kc)` - momentary switch to *layer* when held, and *kc* when tapped. Like `MO()`, this only works upwards in the layer stack (`layer` must be higher than the current layer). 50`LT(layer, kc)` - momentary switch to *layer* when held, and *kc* when tapped. Like `MO()`, this only works upwards in the layer stack (`layer` must be higher than the current layer).
45 51
46`TG(layer)` - toggles a layer on or off. As with `MO()`, you should set this key as `KC_TRNS` in the destination layer so that tapping it again actually toggles back to the original layer. Only works upwards in the layer stack. 52`TG(layer)` - toggles a layer on or off. As with `MO()`, you should set this key as `KC_TRNS` in the destination layer so that tapping it again actually toggles back to the original layer. Only works upwards in the layer stack.
47 53
54
48### Fun with modifier keys 55### Fun with modifier keys
49 56
50* `LSFT(kc)` - applies left Shift to *kc* (keycode) - `S(kc)` is an alias 57* `LSFT(kc)` - applies left Shift to *kc* (keycode) - `S(kc)` is an alias
@@ -80,17 +87,24 @@ The following shortcuts automatically add `LSFT()` to keycodes to get commonly u
80 KC_PLUS + 87 KC_PLUS +
81 KC_LCBR { 88 KC_LCBR {
82 KC_RCBR } 89 KC_RCBR }
90 KC_LABK <
91 KC_RABK >
83 KC_PIPE | 92 KC_PIPE |
84 KC_COLN : 93 KC_COLN :
85 94
95`OSM(mod)` - this is a "one shot" modifier. So let's say you have your left Shift key defined as `OSM(MOD_LSFT)`. Tap it, let go, and Shift is "on" -- but only for the next character you'll type. So to write "The", you don't need to hold down Shift -- you tap it, tap t, and move on with life. And if you hold down the left Shift key, it just works as a left Shift key, as you would expect (so you could type THE). There's also a magical, secret way to "lock" a modifier by tapping it multiple times. If you want to learn more about that, open an issue. :)
96
86`MT(mod, kc)` - is *mod* (modifier key - MOD_LCTL, MOD_LSFT) when held, and *kc* when tapped. In other words, you can have a key that sends Esc (or the letter O or whatever) when you tap it, but works as a Control key or a Shift key when you hold it down. 97`MT(mod, kc)` - is *mod* (modifier key - MOD_LCTL, MOD_LSFT) when held, and *kc* when tapped. In other words, you can have a key that sends Esc (or the letter O or whatever) when you tap it, but works as a Control key or a Shift key when you hold it down.
87 98
88These are the values you can use for the `mod` in `MT()` (right-hand modifiers are not available): 99These are the values you can use for the `mod` in `MT()` and `OSM()` (right-hand modifiers are not available for `MT()`):
89 100
90 * MOD_LCTL 101 * MOD_LCTL
91 * MOD_LSFT 102 * MOD_LSFT
92 * MOD_LALT 103 * MOD_LALT
93 * MOD_LGUI 104 * MOD_LGUI
105 * MOD_HYPR
106 * MOD_MEH
107
94 108
95These can also be combined like `MOD_LCTL | MOD_LSFT` e.g. `MT(MOD_LCTL | MOD_LSFT, KC_ESC)` which would activate Control and Shift when held, and send Escape when tapped. 109These can also be combined like `MOD_LCTL | MOD_LSFT` e.g. `MT(MOD_LCTL | MOD_LSFT, KC_ESC)` which would activate Control and Shift when held, and send Escape when tapped.
96 110
@@ -363,6 +377,55 @@ You can currently send 4 hex digits with your OS-specific modifier key (RALT for
363 377
364Enable the backlight from the Makefile. 378Enable the backlight from the Makefile.
365 379
380## Driving a speaker - audio support
381
382Your keyboard can make sounds! If you've got a Planck, Preonic, or basically any keyboard that allows access to the C6 port, you can hook up a simple speaker and have it beep. You can use those beeps to indicate layer transitions, modifiers, special keys, or just to play some funky 8bit tunes.
383
384The audio code lives in [quantum/audio/audio.h](/quantum/audio/audio.h) and in the other files in the audio directory. It's enabled by default on the Planck [stock keymap](/keyboard/planck/keymaps/default/keymap.c). Here are the important bits:
385
386```
387#include "audio.h"
388```
389
390Then, lower down the file:
391
392```
393float tone_startup[][2] = {
394 ED_NOTE(_E7 ),
395 E__NOTE(_CS7),
396 E__NOTE(_E6 ),
397 E__NOTE(_A6 ),
398 M__NOTE(_CS7, 20)
399};
400```
401
402This is how you write a song. Each of these lines is a note, so we have a little ditty composed of five notes here.
403
404Then, we have this chunk:
405
406```
407float tone_qwerty[][2] = SONG(QWERTY_SOUND);
408float tone_dvorak[][2] = SONG(DVORAK_SOUND);
409float tone_colemak[][2] = SONG(COLEMAK_SOUND);
410float tone_plover[][2] = SONG(PLOVER_SOUND);
411float tone_plover_gb[][2] = SONG(PLOVER_GOODBYE_SOUND);
412
413float music_scale[][2] = SONG(MUSIC_SCALE_SOUND);
414float goodbye[][2] = SONG(GOODBYE_SOUND);
415```
416
417Wherein we bind predefined songs (from [audio/song_list.h](/audio/song_list.h)) into named variables. This is one optimization that helps save on memory: These songs only take up memory when you reference them in your keymap, because they're essentially all preprocessor directives.
418
419So now you have something called `tone_plover` for example. How do you make it play the Plover tune, then? If you look further down the keymap, you'll see this:
420
421```
422PLAY_NOTE_ARRAY(tone_plover, false, 0); // Signature is: Song name, repeat, rest style
423```
424
425This is inside one of the macros. So when that macro executes, your keyboard plays that particular chime.
426
427"Rest style" in the method signature above (the last parameter) specifies if there's a rest (a moment of silence) between the notes.
428
366## MIDI functionalty 429## MIDI functionalty
367 430
368This is still a WIP, but check out `quantum/keymap_midi.c` to see what's happening. Enable from the Makefile. 431This is still a WIP, but check out `quantum/keymap_midi.c` to see what's happening. Enable from the Makefile.
diff --git a/keyboard/atomic/atomic.c b/keyboard/atomic/atomic.c
index 399649716..b4b261457 100644
--- a/keyboard/atomic/atomic.c
+++ b/keyboard/atomic/atomic.c
@@ -2,27 +2,27 @@
2 2
3__attribute__ ((weak)) 3__attribute__ ((weak))
4void matrix_init_user(void) { 4void matrix_init_user(void) {
5 // leave this function blank - it can be defined in a keymap file 5 // leave this function blank - it can be defined in a keymap file
6}; 6};
7 7
8__attribute__ ((weak)) 8__attribute__ ((weak))
9void matrix_scan_user(void) { 9void matrix_scan_user(void) {
10 // leave this function blank - it can be defined in a keymap file 10 // leave this function blank - it can be defined in a keymap file
11} 11}
12 12
13__attribute__ ((weak)) 13__attribute__ ((weak))
14void process_action_user(keyrecord_t *record) { 14void process_action_user(keyrecord_t *record) {
15 // leave this function blank - it can be defined in a keymap file 15 // leave this function blank - it can be defined in a keymap file
16} 16}
17 17
18__attribute__ ((weak)) 18__attribute__ ((weak))
19void led_set_user(uint8_t usb_led) { 19void led_set_user(uint8_t usb_led) {
20 // leave this function blank - it can be defined in a keymap file 20 // leave this function blank - it can be defined in a keymap file
21} 21}
22 22
23void matrix_init_kb(void) { 23void matrix_init_kb(void) {
24 // put your keyboard start-up code here 24 // put your keyboard start-up code here
25 // runs once when the firmware starts up 25 // runs once when the firmware starts up
26 26
27 MCUCR |= (1<<JTD); 27 MCUCR |= (1<<JTD);
28 MCUCR |= (1<<JTD); 28 MCUCR |= (1<<JTD);
@@ -35,31 +35,39 @@ void matrix_init_kb(void) {
35 DDRE |= (1<<6); 35 DDRE |= (1<<6);
36 PORTE |= (1<<6); 36 PORTE |= (1<<6);
37 37
38 matrix_init_user(); 38 matrix_init_user();
39} 39}
40 40
41void matrix_scan_kb(void) { 41void matrix_scan_kb(void) {
42 // put your looping keyboard code here 42 // put your looping keyboard code here
43 // runs every cycle (a lot) 43 // runs every cycle (a lot)
44 44
45 matrix_scan_user(); 45 matrix_scan_user();
46} 46}
47 47
48void process_action_kb(keyrecord_t *record) { 48void process_action_kb(keyrecord_t *record) {
49 // put your per-action keyboard code here 49 // put your per-action keyboard code here
50 // runs for every action, just before processing by the firmware 50 // runs for every action, just before processing by the firmware
51 51
52 process_action_user(record); 52 process_action_user(record);
53} 53}
54 54
55void led_set_kb(uint8_t usb_led) { 55void led_set_kb(uint8_t usb_led) {
56 // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here 56 // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here
57 57
58 led_set_user(usb_led); 58 led_set_user(usb_led);
59} 59}
60 60
61#ifdef BACKLIGHT_ENABLE 61#ifdef BACKLIGHT_ENABLE
62#define CHANNEL OCR1C 62#define CHANNEL OCR1C
63#define BREATHING_NO_HALT 0
64#define BREATHING_HALT_OFF 1
65#define BREATHING_HALT_ON 2
66
67static uint8_t breath_intensity;
68static uint8_t breath_speed;
69static uint16_t breathing_index;
70static uint8_t breathing_halt;
63 71
64void backlight_init_ports() 72void backlight_init_ports()
65{ 73{
@@ -67,54 +75,250 @@ void backlight_init_ports()
67 // Setup PB7 as output and output low. 75 // Setup PB7 as output and output low.
68 DDRB |= (1<<7); 76 DDRB |= (1<<7);
69 PORTB &= ~(1<<7); 77 PORTB &= ~(1<<7);
70 78
71 // Use full 16-bit resolution. 79 // Use full 16-bit resolution.
72 ICR1 = 0xFFFF; 80 ICR1 = 0xFFFF;
73 81
74 // I could write a wall of text here to explain... but TL;DW 82 // I could write a wall of text here to explain... but TL;DW
75 // Go read the ATmega32u4 datasheet. 83 // Go read the ATmega32u4 datasheet.
76 // And this: http://blog.saikoled.com/post/43165849837/secret-konami-cheat-code-to-high-resolution-pwm-on 84 // And this: http://blog.saikoled.com/post/43165849837/secret-konami-cheat-code-to-high-resolution-pwm-on
77 85
78 // Pin PB7 = OCR1C (Timer 1, Channel C) 86 // Pin PB7 = OCR1C (Timer 1, Channel C)
79 // Compare Output Mode = Clear on compare match, Channel C = COM1C1=1 COM1C0=0 87 // Compare Output Mode = Clear on compare match, Channel C = COM1C1=1 COM1C0=0
80 // (i.e. start high, go low when counter matches.) 88 // (i.e. start high, go low when counter matches.)
81 // WGM Mode 14 (Fast PWM) = WGM13=1 WGM12=1 WGM11=1 WGM10=0 89 // WGM Mode 14 (Fast PWM) = WGM13=1 WGM12=1 WGM11=1 WGM10=0
82 // Clock Select = clk/1 (no prescaling) = CS12=0 CS11=0 CS10=1 90 // Clock Select = clk/1 (no prescaling) = CS12=0 CS11=0 CS10=1
83 91
84 TCCR1A = _BV(COM1C1) | _BV(WGM11); // = 0b00001010; 92 TCCR1A = _BV(COM1C1) | _BV(WGM11); // = 0b00001010;
85 TCCR1B = _BV(WGM13) | _BV(WGM12) | _BV(CS10); // = 0b00011001; 93 TCCR1B = _BV(WGM13) | _BV(WGM12) | _BV(CS10); // = 0b00011001;
86 94
87 backlight_init(); 95 backlight_init();
96 breathing_defaults();
88} 97}
89 98
90void backlight_set(uint8_t level) 99void backlight_set(uint8_t level)
91{ 100{
101 // Prevent backlight blink on lowest level
102 PORTB &= ~(_BV(PORTB7));
103
92 if ( level == 0 ) 104 if ( level == 0 )
93 { 105 {
94 // Turn off PWM control on PB7, revert to output low. 106 // Turn off PWM control on PB7, revert to output low.
95 TCCR1A &= ~(_BV(COM1C1)); 107 TCCR1A &= ~(_BV(COM1C1));
108
109 // Set the brightness to 0
96 CHANNEL = 0x0; 110 CHANNEL = 0x0;
97 // Prevent backlight blink on lowest level
98 PORTB &= ~(_BV(PORTB7));
99 } 111 }
100 else if ( level == BACKLIGHT_LEVELS ) 112 else if ( level >= BACKLIGHT_LEVELS )
101 { 113 {
102 // Prevent backlight blink on lowest level
103 PORTB &= ~(_BV(PORTB7));
104 // Turn on PWM control of PB7 114 // Turn on PWM control of PB7
105 TCCR1A |= _BV(COM1C1); 115 TCCR1A |= _BV(COM1C1);
106 // Set the brightness 116
117 // Set the brightness to max
107 CHANNEL = 0xFFFF; 118 CHANNEL = 0xFFFF;
108 } 119 }
109 else 120 else
110 { 121 {
111 // Prevent backlight blink on lowest level
112 PORTB &= ~(_BV(PORTB7));
113 // Turn on PWM control of PB7 122 // Turn on PWM control of PB7
114 TCCR1A |= _BV(COM1C1); 123 TCCR1A |= _BV(COM1C1);
124
115 // Set the brightness 125 // Set the brightness
116 CHANNEL = 0xFFFF >> ((BACKLIGHT_LEVELS - level) * ((BACKLIGHT_LEVELS + 1) / 2)); 126 CHANNEL = 0xFFFF >> ((BACKLIGHT_LEVELS - level) * ((BACKLIGHT_LEVELS + 1) / 2));
117 } 127 }
128 breathing_intensity_default();
129}
130
131
132void breathing_enable(void)
133{
134 if (get_backlight_level() == 0)
135 {
136 breathing_index = 0;
137 }
138 else
139 {
140 // Set breathing_index to be at the midpoint (brightest point)
141 breathing_index = 0x20 << breath_speed;
142 }
143
144 breathing_halt = BREATHING_NO_HALT;
145
146 // Enable breathing interrupt
147 TIMSK1 |= _BV(OCIE1A);
148}
149
150void breathing_pulse(void)
151{
152 if (get_backlight_level() == 0)
153 {
154 breathing_index = 0;
155 }
156 else
157 {
158 // Set breathing_index to be at the midpoint + 1 (brightest point)
159 breathing_index = 0x21 << breath_speed;
160 }
161
162 breathing_halt = BREATHING_HALT_ON;
163
164 // Enable breathing interrupt
165 TIMSK1 |= _BV(OCIE1A);
166}
167
168void breathing_disable(void)
169{
170 // Disable breathing interrupt
171 TIMSK1 &= ~_BV(OCIE1A);
172 backlight_set(get_backlight_level());
173}
174
175void breathing_self_disable(void)
176{
177 if (get_backlight_level() == 0)
178 {
179 breathing_halt = BREATHING_HALT_OFF;
180 }
181 else
182 {
183 breathing_halt = BREATHING_HALT_ON;
184 }
185
186 //backlight_set(get_backlight_level());
187}
188
189void breathing_toggle(void)
190{
191 if (!is_breathing())
192 {
193 if (get_backlight_level() == 0)
194 {
195 breathing_index = 0;
196 }
197 else
198 {
199 // Set breathing_index to be at the midpoint + 1 (brightest point)
200 breathing_index = 0x21 << breath_speed;
201 }
202
203 breathing_halt = BREATHING_NO_HALT;
204 }
205
206 // Toggle breathing interrupt
207 TIMSK1 ^= _BV(OCIE1A);
208
209 // Restore backlight level
210 if (!is_breathing())
211 {
212 backlight_set(get_backlight_level());
213 }
214}
215
216bool is_breathing(void)
217{
218 return (TIMSK1 && _BV(OCIE1A));
219}
220
221void breathing_intensity_default(void)
222{
223 //breath_intensity = (uint8_t)((uint16_t)100 * (uint16_t)get_backlight_level() / (uint16_t)BACKLIGHT_LEVELS);
224 breath_intensity = ((BACKLIGHT_LEVELS - get_backlight_level()) * ((BACKLIGHT_LEVELS + 1) / 2));
225}
226
227void breathing_intensity_set(uint8_t value)
228{
229 breath_intensity = value;
230}
231
232void breathing_speed_default(void)
233{
234 breath_speed = 4;
235}
236
237void breathing_speed_set(uint8_t value)
238{
239 bool is_breathing_now = is_breathing();
240 uint8_t old_breath_speed = breath_speed;
241
242 if (is_breathing_now)
243 {
244 // Disable breathing interrupt
245 TIMSK1 &= ~_BV(OCIE1A);
246 }
247
248 breath_speed = value;
249
250 if (is_breathing_now)
251 {
252 // Adjust index to account for new speed
253 breathing_index = (( (uint8_t)( (breathing_index) >> old_breath_speed ) ) & 0x3F) << breath_speed;
254
255 // Enable breathing interrupt
256 TIMSK1 |= _BV(OCIE1A);
257 }
258
259}
260
261void breathing_speed_inc(uint8_t value)
262{
263 if ((uint16_t)(breath_speed - value) > 10 )
264 {
265 breathing_speed_set(0);
266 }
267 else
268 {
269 breathing_speed_set(breath_speed - value);
270 }
271}
272
273void breathing_speed_dec(uint8_t value)
274{
275 if ((uint16_t)(breath_speed + value) > 10 )
276 {
277 breathing_speed_set(10);
278 }
279 else
280 {
281 breathing_speed_set(breath_speed + value);
282 }
283}
284
285void breathing_defaults(void)
286{
287 breathing_intensity_default();
288 breathing_speed_default();
289 breathing_halt = BREATHING_NO_HALT;
290}
291
292/* Breathing Sleep LED brighness(PWM On period) table
293 * (64[steps] * 4[duration]) / 64[PWM periods/s] = 4 second breath cycle
294 *
295 * http://www.wolframalpha.com/input/?i=%28sin%28+x%2F64*pi%29**8+*+255%2C+x%3D0+to+63
296 * (0..63).each {|x| p ((sin(x/64.0*PI)**8)*255).to_i }
297 */
298static const uint8_t breathing_table[64] PROGMEM = {
299 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 4, 6, 10,
300 15, 23, 32, 44, 58, 74, 93, 113, 135, 157, 179, 199, 218, 233, 245, 252,
301255, 252, 245, 233, 218, 199, 179, 157, 135, 113, 93, 74, 58, 44, 32, 23,
302 15, 10, 6, 4, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
303};
304
305ISR(TIMER1_COMPA_vect)
306{
307 // CHANNEL = (pgm_read_byte(&breathing_table[ ( (uint8_t)( (breathing_index++) >> breath_speed ) ) & 0x3F ] )) * breath_intensity;
308
309
310 uint8_t local_index = ( (uint8_t)( (breathing_index++) >> breath_speed ) ) & 0x3F;
311
312 if (((breathing_halt == BREATHING_HALT_ON) && (local_index == 0x20)) || ((breathing_halt == BREATHING_HALT_OFF) && (local_index == 0x3F)))
313 {
314 // Disable breathing interrupt
315 TIMSK1 &= ~_BV(OCIE1A);
316 }
317
318 CHANNEL = (uint16_t)(((uint16_t)pgm_read_byte(&breathing_table[local_index]) * 257)) >> breath_intensity;
319
118} 320}
119 321
322
323
120#endif \ No newline at end of file 324#endif \ No newline at end of file
diff --git a/keyboard/atomic/atomic.h b/keyboard/atomic/atomic.h
index 0c7aeb1cc..845a9043e 100644
--- a/keyboard/atomic/atomic.h
+++ b/keyboard/atomic/atomic.h
@@ -33,4 +33,20 @@ void process_action_user(keyrecord_t *record);
33void led_set_user(uint8_t usb_led); 33void led_set_user(uint8_t usb_led);
34void backlight_init_ports(void); 34void backlight_init_ports(void);
35 35
36void breathing_enable(void);
37void breathing_pulse(void);
38void breathing_disable(void);
39void breathing_self_disable(void);
40void breathing_toggle(void);
41bool is_breathing(void);
42
43
44void breathing_defaults(void);
45void breathing_intensity_default(void);
46void breathing_speed_default(void);
47void breathing_speed_set(uint8_t value);
48void breathing_speed_inc(uint8_t value);
49void breathing_speed_dec(uint8_t value);
50
51
36#endif \ No newline at end of file 52#endif \ No newline at end of file
diff --git a/keyboard/atomic/keymaps/pvc/config.h b/keyboard/atomic/keymaps/pvc/config.h
index 034bc5dc5..5e956286b 100644
--- a/keyboard/atomic/keymaps/pvc/config.h
+++ b/keyboard/atomic/keymaps/pvc/config.h
@@ -22,7 +22,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
22 22
23/* USB Device descriptor parameter */ 23/* USB Device descriptor parameter */
24#define VENDOR_ID 0xFEED 24#define VENDOR_ID 0xFEED
25#define PRODUCT_ID 0x6060 25#define PRODUCT_ID 0x0419
26#define DEVICE_VER 0x0001 26#define DEVICE_VER 0x0001
27#define MANUFACTURER Ortholinear Keyboards 27#define MANUFACTURER Ortholinear Keyboards
28#define PRODUCT The Atomic Keyboard 28#define PRODUCT The Atomic Keyboard
@@ -162,5 +162,4 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
162//#define VIBRATO_ENABLE 162//#define VIBRATO_ENABLE
163//#define VIBRATO_STRENGTH_ENABLE 163//#define VIBRATO_STRENGTH_ENABLE
164 164
165
166#endif 165#endif
diff --git a/keyboard/atomic/keymaps/pvc/keymap.c b/keyboard/atomic/keymaps/pvc/keymap.c
index 3d604a868..ff7384268 100644
--- a/keyboard/atomic/keymaps/pvc/keymap.c
+++ b/keyboard/atomic/keymaps/pvc/keymap.c
@@ -8,41 +8,44 @@
8 #include "song_list.h" 8 #include "song_list.h"
9#endif 9#endif
10 10
11#define LAYER_QWERTY 0 11#define LAYER_QWERTY 0
12#define LAYER_COLEMAK 1 12#define LAYER_COLEMAK 1
13#define LAYER_DVORAK 2 13#define LAYER_DVORAK 2
14#define LAYER_RAISE 3 14#define LAYER_UPPER 3
15#define LAYER_LOWER 4 15#define LAYER_LOWER 4
16#define LAYER_FUNCTION 5 16#define LAYER_FUNCTION 5
17#define LAYER_MOUSE 6 17#define LAYER_MOUSE 6
18#define LAYER_MUSIC 7 18#define LAYER_MUSIC 7
19#define LAYER_ADJUST 8 19#define LAYER_ADJUST 8
20 20
21#define MACRO_QWERTY 0 21#define MACRO_QWERTY 0
22#define MACRO_COLEMAK 1 22#define MACRO_COLEMAK 1
23#define MACRO_DVORAK 2 23#define MACRO_DVORAK 2
24#define MACRO_RAISE 3 24#define MACRO_UPPER 3
25#define MACRO_LOWER 4 25#define MACRO_LOWER 4
26#define MACRO_FUNCTION 5 26#define MACRO_FUNCTION 5
27#define MACRO_MOUSE 6 27#define MACRO_MOUSE 6
28#define MACRO_TIMBRE_1 7 28#define MACRO_TIMBRE_1 7
29#define MACRO_TIMBRE_2 8 29#define MACRO_TIMBRE_2 8
30#define MACRO_TIMBRE_3 9 30#define MACRO_TIMBRE_3 9
31#define MACRO_TIMBRE_4 10 31#define MACRO_TIMBRE_4 10
32#define MACRO_TEMPO_U 11 32#define MACRO_TEMPO_U 11
33#define MACRO_TEMPO_D 12 33#define MACRO_TEMPO_D 12
34#define MACRO_TONE_DEFAULT 13 34#define MACRO_TONE_DEFAULT 13
35#define MACRO_MUSIC_ON 14 35#define MACRO_MUSIC_TOGGLE 14
36#define MACRO_MUSIC_OFF 15 36#define MACRO_AUDIO_TOGGLE 16
37#define MACRO_AUDIO_ON 16 37#define MACRO_INC_VOICE 18
38#define MACRO_AUDIO_OFF 17 38#define MACRO_DEC_VOICE 19
39#define MACRO_INC_VOICE 18 39#define MACRO_BACKLIGHT 20
40#define MACRO_DEC_VOICE 19 40#define MACRO_BREATH_TOGGLE 21
41#define MACRO_BREATH_SPEED_INC 23
42#define MACRO_BREATH_SPEED_DEC 24
43#define MACRO_BREATH_DEFAULT 25
41 44
42#define M_QWRTY M(MACRO_QWERTY) 45#define M_QWRTY M(MACRO_QWERTY)
43#define M_COLMK M(MACRO_COLEMAK) 46#define M_COLMK M(MACRO_COLEMAK)
44#define M_DVORK M(MACRO_DVORAK) 47#define M_DVORK M(MACRO_DVORAK)
45#define M_RAISE M(MACRO_RAISE) 48#define M_UPPER M(MACRO_UPPER)
46#define M_LOWER M(MACRO_LOWER) 49#define M_LOWER M(MACRO_LOWER)
47#define M_FUNCT M(MACRO_FUNCTION) 50#define M_FUNCT M(MACRO_FUNCTION)
48#define M_MOUSE M(MACRO_MOUSE) 51#define M_MOUSE M(MACRO_MOUSE)
@@ -53,12 +56,15 @@
53#define TMPO_UP M(MACRO_TEMPO_U) 56#define TMPO_UP M(MACRO_TEMPO_U)
54#define TMPO_DN M(MACRO_TEMPO_D) 57#define TMPO_DN M(MACRO_TEMPO_D)
55#define TMPO_DF M(MACRO_TONE_DEFAULT) 58#define TMPO_DF M(MACRO_TONE_DEFAULT)
59#define M_BACKL M(MACRO_BACKLIGHT)
60#define M_BRTOG M(MACRO_BREATH_TOGGLE)
61#define M_BSPDU M(MACRO_BREATH_SPEED_INC)
62#define M_BSPDD M(MACRO_BREATH_SPEED_DEC)
63#define M_BDFLT M(MACRO_BREATH_DEFAULT)
56 64
57 65
58#define MUS_ON M(MACRO_MUSIC_ON) 66#define MUS_TOG M(MACRO_MUSIC_TOGGLE)
59#define MUS_OFF M(MACRO_MUSIC_OFF) 67#define AUD_TOG M(MACRO_AUDIO_TOGGLE)
60#define AUD_OFF M(MACRO_AUDIO_OFF)
61#define AUD_ON M(MACRO_AUDIO_ON)
62#define VC_UP M(MACRO_INC_VOICE) 68#define VC_UP M(MACRO_INC_VOICE)
63#define VC_DOWN M(MACRO_DEC_VOICE) 69#define VC_DOWN M(MACRO_DEC_VOICE)
64 70
@@ -74,6 +80,7 @@
74#define SC_ACLS LALT(KC_F4) 80#define SC_ACLS LALT(KC_F4)
75#define SC_CCLS LCTL(KC_F4) 81#define SC_CCLS LCTL(KC_F4)
76 82
83#define OS_SHFT KC_FN0
77 84
78#define _______ KC_TRNS 85#define _______ KC_TRNS
79#define XXXXXXX KC_NO 86#define XXXXXXX KC_NO
@@ -92,16 +99,16 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
92 * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ---------------------+--------| 99 * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ---------------------+--------|
93 * | LSHIFT | Z | X | C | V | B | N | M | , | . | / | XXXXXX . RSHIFT | UP | PG DN | 100 * | LSHIFT | Z | X | C | V | B | N | M | , | . | / | XXXXXX . RSHIFT | UP | PG DN |
94 * |--------+--------+--------+--------+--------+- 2u ------------+--------+--------+--------+--------+-----------------+--------+--------| 101 * |--------+--------+--------+--------+--------+- 2u ------------+--------+--------+--------+--------+-----------------+--------+--------|
95 * | LCTRL | LWIN | FN | LALT | RAISE | XXXXXX . SPACE | LOWER | RALT | RWIN | MENU | RCTRL | LEFT | DOWN | RIGHT | 102 * | LCTRL | LWIN | FN | LALT | UPPER | XXXXXX . SPACE | LOWER | SHIFT | RALT | APP | RCTRL | LEFT | DOWN | RIGHT |
96 * '--------------------------------------------------------------------------------------------------------------------------------------' 103 * '--------------------------------------------------------------------------------------------------------------------------------------'
97 */ 104 */
98 105
99 [LAYER_QWERTY] = { /* QWERTY */ 106 [LAYER_QWERTY] = { // QWERTY
100 { KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC }, 107 { KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC },
101 { KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL }, 108 { KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL },
102 { KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_ENT, KC_PGUP }, 109 { KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_ENT, KC_PGUP },
103 { KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RSFT, KC_UP, KC_PGDN }, 110 { KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RSFT, KC_UP, KC_PGDN },
104 { KC_LCTL, KC_LGUI, M_FUNCT, KC_LALT, M_RAISE, KC_SPC, KC_SPC, M_LOWER, KC_RALT, KC_RGUI, KC_MENU, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT }, 111 { KC_LCTL, KC_LGUI, M_FUNCT, KC_LALT, M_UPPER, KC_SPC, KC_SPC, M_LOWER, OS_SHFT, KC_RALT, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT },
105 }, 112 },
106 113
107 /* COLEMAK 114 /* COLEMAK
@@ -114,17 +121,17 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
114 * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ---------------------+--------| 121 * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ---------------------+--------|
115 * | LSHIFT | Z | X | C | V | B | K | M | , | . | / | XXXXXX . RSHIFT | UP | PG DN | 122 * | LSHIFT | Z | X | C | V | B | K | M | , | . | / | XXXXXX . RSHIFT | UP | PG DN |
116 * |--------+--------+--------+--------+--------+- 2u ------------+--------+--------+--------+--------+-----------------+--------+--------| 123 * |--------+--------+--------+--------+--------+- 2u ------------+--------+--------+--------+--------+-----------------+--------+--------|
117 * | LCTRL | LWIN | FN | LALT | RAISE | XXXXXX . SPACE | LOWER | RALT | RWIN | MENU | RCTRL | LEFT | DOWN | RIGHT | 124 * | LCTRL | LWIN | FN | LALT | UPPER | XXXXXX . SPACE | LOWER | SHIFT | RALT | APP | RCTRL | LEFT | DOWN | RIGHT |
118 * '--------------------------------------------------------------------------------------------------------------------------------------' 125 * '--------------------------------------------------------------------------------------------------------------------------------------'
119 */ 126 */
120 127
121 [LAYER_COLEMAK] = { /* COLEMAK */ 128 [LAYER_COLEMAK] = { // COLEMAK
122 { KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC }, 129 { KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC },
123 { KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL }, 130 { KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL },
124 { KC_BSPC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, KC_ENT, KC_ENT, KC_PGUP }, 131 { KC_BSPC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, KC_ENT, KC_ENT, KC_PGUP },
125 { KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RSFT, KC_UP, KC_PGDN }, 132 { KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RSFT, KC_UP, KC_PGDN },
126 { KC_LCTL, KC_LGUI, M_FUNCT, KC_LALT, M_RAISE, KC_SPC, KC_SPC, M_LOWER, KC_RALT, KC_RGUI, KC_MENU, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT }, 133 { KC_LCTL, KC_LGUI, M_FUNCT, KC_LALT, M_UPPER, KC_SPC, KC_SPC, M_LOWER, OS_SHFT, KC_RALT, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT },
127 }, 134},
128 135
129/* DVORAK 136/* DVORAK
130 * .---------------------------------------------------------------------------------------------------------------------- 2u ------------. 137 * .---------------------------------------------------------------------------------------------------------------------- 2u ------------.
@@ -136,35 +143,63 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
136 * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ---------------------+--------| 143 * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ---------------------+--------|
137 * | LSHIFT | ; | Q | J | K | X | B | M | W | V | Z | XXXXXX . RSHIFT | UP | PG DN | 144 * | LSHIFT | ; | Q | J | K | X | B | M | W | V | Z | XXXXXX . RSHIFT | UP | PG DN |
138 * |--------+--------+--------+--------+--------+- 2u ------------+--------+--------+--------+--------+-----------------+--------+--------| 145 * |--------+--------+--------+--------+--------+- 2u ------------+--------+--------+--------+--------+-----------------+--------+--------|
139 * | LCTRL | LWIN | FN | LALT | RAISE | XXXXXX . SPACE | LOWER | RALT | RWIN | MENU | RCTRL | LEFT | DOWN | RIGHT | 146 * | LCTRL | LWIN | FN | LALT | UPPER | XXXXXX . SPACE | LOWER | SHIFT | RALT | APP | RCTRL | LEFT | DOWN | RIGHT |
140 * '--------------------------------------------------------------------------------------------------------------------------------------' 147 * '--------------------------------------------------------------------------------------------------------------------------------------'
141 */ 148 */
142 149
143 [LAYER_DVORAK] = { /* DVORAK */ 150 [LAYER_DVORAK] = { // DVORAK
144 { KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_LBRC, KC_RBRC, KC_BSPC, KC_BSPC }, 151 { KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_LBRC, KC_RBRC, KC_BSPC, KC_BSPC },
145 { KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, KC_EQL, KC_BSLS, KC_DEL }, 152 { KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, KC_EQL, KC_BSLS, KC_DEL },
146 { KC_CAPS, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS, KC_ENT, KC_ENT, KC_PGUP }, 153 { KC_CAPS, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS, KC_ENT, KC_ENT, KC_PGUP },
147 { KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT, KC_RSFT, KC_UP, KC_PGDN }, 154 { KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT, KC_RSFT, KC_UP, KC_PGDN },
148 { KC_LCTL, KC_LGUI, M_FUNCT, KC_LALT, M_RAISE, KC_SPC, KC_SPC, M_LOWER, KC_RALT, KC_RGUI, KC_MENU, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT }, 155 { KC_LCTL, KC_LGUI, M_FUNCT, KC_LALT, M_UPPER, KC_SPC, KC_SPC, M_LOWER, OS_SHFT, KC_RALT, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT },
149 }, 156 },
150 157
151 [LAYER_RAISE] = { /* RAISED */ 158/* UPPER
152 { KC_TILD, KC_PSCR, KC_PAUS, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, ________________ }, 159 * .---------------------------------------------------------------------------------------------------------------------- 2u ------------.
153 { _______, KC_F1, KC_F2, KC_F3, KC_F4, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_INS }, 160 * | PRINT | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | NUM LK | / | * | - | NUM LK | SCR LK | XXXXXX . PAUSE |
154 { _______, KC_F5, KC_F6, KC_F7, KC_F8, _______, _______, _______, _______, _______, _______, _______, ________________, KC_HOME }, 161 * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------|
155 { _______, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, ________________, _______, KC_END }, 162 * | | F1 | F2 | F3 | F4 | | | 7 | 8 | 9 | + | ~ | | | INS |
156 { _______, _______, _______, _______, _______, ________________, _______, _______, _______, _______, _______, _______, _______, _______ }, 163 * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ------------+--------|
164 * | CAP LK | F5 | F6 | F7 | F8 | | | 4 | 5 | 6 | + | ` | XXXXXX . | HOME |
165 * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ---------------------+--------|
166 * | | F9 | F10 | F11 | F12 | | | 1 | 2 | 3 | ENTER | XXXXXX . | | END |
167 * |--------+--------+--------+--------+--------+- 2u ------------+--------+--------+--------+--------+-----------------+--------+--------|
168 * | | | | | | 0 | | RALT | . | ENTER | | | | |
169 * '--------------------------------------------------------------------------------------------------------------------------------------'
170 */
171
172 [LAYER_UPPER] = { // UPPER
173 { KC_PSCR, M_BRTOG, M_BSPDU, M_BSPDD, M_BDFLT, XXXXXXX, XXXXXXX, KC_NLCK, KC_PSLS, KC_PAST, XXXXXXX, XXXXXXX, KC_SLCK, KC_PAUS, KC_PAUS },
174 { _______, KC_F1, KC_F2, KC_F3, KC_F4, XXXXXXX, XXXXXXX, KC_KP_7, KC_KP_8, KC_KP_9, KC_PMNS, _______, _______, _______, KC_INS },
175 { KC_CAPS, KC_F5, KC_F6, KC_F7, KC_F8, XXXXXXX, XXXXXXX, KC_KP_4, KC_KP_5, KC_KP_6, KC_PPLS, _______, ________________, KC_HOME },
176 { _______, KC_F9, KC_F10, KC_F11, KC_F12, XXXXXXX, XXXXXXX, KC_KP_1, KC_KP_2, KC_KP_3, KC_PENT, ________________, _______, KC_END },
177 { _______, _______, _______, _______, _______, KC_KP_0, KC_KP_0, _______, KC_RALT, KC_PDOT, KC_PENT, _______, _______, _______, _______ },
157 }, 178 },
158 179
159 [LAYER_LOWER] = { /* LOWERED */ 180/* LOWER
160 { KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, ________________ }, 181 * .---------------------------------------------------------------------------------------------------------------------- 2u ------------.
161 { _______, KC_F13, KC_F14, KC_F15, KC_F16, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_INS }, 182 * | | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | XXXXXX . BACKSP |
162 { _______, KC_F17, KC_F18, KC_F19, KC_F20, _______, _______, _______, _______, _______, _______, _______, ________________, KC_HOME }, 183 * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------|
163 { _______, KC_F21, KC_F22, KC_F23, KC_F24, _______, _______, _______, _______, _______, _______, ________________, _______, KC_END }, 184 * | | $ | { | [ | ( | % | # | ) | ] | } | @ | | | | INS |
164 { _______, _______, _______, _______, _______, KC_BSPC, KC_BSPC, _______, _______, _______, _______, _______, _______, _______, _______ }, 185 * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ------------+--------|
186 * | | ^ | * | + | - | ; | : | _ | ' | " | ` | | XXXXXX . | HOME |
187 * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ---------------------+--------|
188 * | | | | & | ! | ~ | / | \ | = | < | > | ? | XXXXXX . | | END |
189 * |--------+--------+--------+--------+--------+- 2u ------------+--------+--------+--------+--------+-----------------+--------+--------|
190 * | | | | | | | | | | | | | | |
191 * '--------------------------------------------------------------------------------------------------------------------------------------'
192 */
193
194 [LAYER_LOWER] = { // LOWER
195 { _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, ________________ },
196 { _______, KC_DLR, KC_LCBR, KC_LBRC, KC_LPRN, KC_PERC, KC_HASH, KC_RPRN, KC_RBRC, KC_RCBR, KC_AT, _______, _______, _______, KC_INS },
197 { _______, KC_CIRC, KC_ASTR, KC_PPLS, KC_PMNS, KC_SCLN, KC_COLN, KC_UNDS, KC_QUOT, KC_DQT, KC_GRV, _______, ________________, KC_HOME },
198 { _______, KC_PIPE, KC_AMPR, KC_EXLM, KC_TILD, KC_SLSH, KC_BSLS, KC_EQL, KC_LT, KC_GT, KC_QUES, ________________, _______, KC_END },
199 { _______, _______, _______, _______, _______, ________________, _______, _______, _______, _______, _______, _______, _______, _______ },
165 }, 200 },
166 201
167 [LAYER_FUNCTION] = { /* FUNCTION */ 202 [LAYER_FUNCTION] = { // FUNCTION
168 { KC_NLCK, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, ________________ }, 203 { KC_NLCK, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, ________________ },
169 { KC_SLCK, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, _______, KC_PAUS }, 204 { KC_SLCK, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, _______, KC_PAUS },
170 { KC_CAPS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ________________, KC_PSCR }, 205 { KC_CAPS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ________________, KC_PSCR },
@@ -174,7 +209,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
174 209
175#ifdef MOUSEKEY_ENABLE 210#ifdef MOUSEKEY_ENABLE
176 211
177 [LAYER_MOUSE] = { /* MOUSE */ 212 [LAYER_MOUSE] = { // MOUSE
178 { _______, KC_ACL0, KC_ACL1, KC_ACL2, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXXXXXXXXXXX }, 213 { _______, KC_ACL0, KC_ACL1, KC_ACL2, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXXXXXXXXXXX },
179 { XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX }, 214 { XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX },
180 { XXXXXXX, KC_BTN5, KC_BTN4, KC_BTN3, KC_BTN2, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXXXXXXXXXXX, KC_WH_U }, 215 { XXXXXXX, KC_BTN5, KC_BTN4, KC_BTN3, KC_BTN2, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXXXXXXXXXXX, KC_WH_U },
@@ -184,25 +219,25 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
184 219
185#endif 220#endif
186 221
187 [LAYER_MUSIC] = { /* MUSIC */ 222 [LAYER_MUSIC] = { // MUSIC
188 { XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX }, 223 { XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX },
189 { XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX }, 224 { XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX },
190 { XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX }, 225 { XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX },
191 { XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX }, 226 { XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX },
192 { XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, M_RAISE, XXXXXXX, XXXXXXX, M_LOWER, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX }, 227 { XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, M_UPPER, XXXXXXX, XXXXXXX, M_LOWER, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX },
193 }, 228 },
194 229
195 [LAYER_ADJUST] = { /* ADJUST */ 230 [LAYER_ADJUST] = { // ADJUST
196 { _______, TIMBR_1, TIMBR_2, TIMBR_3, TIMBR_4, TMPO_UP, TMPO_DN, TMPO_DF, _______, MUS_ON, MUS_OFF, AUD_ON, AUD_OFF, ________________ }, 231 { _______, TIMBR_1, TIMBR_2, TIMBR_3, TIMBR_4, TMPO_UP, TMPO_DN, TMPO_DF, _______, _______, _______, MUS_TOG, AUD_TOG, ________________ },
197 { _______, M_QWRTY, M_COLMK, M_DVORK, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, 232 { _______, M_QWRTY, M_COLMK, M_DVORK, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ },
198 { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ________________, _______ }, 233 { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ________________, _______ },
199 { _______, _______, _______, _______, _______, RESET, _______, M_MOUSE, _______, _______, _______, ________________, VC_UP, _______ }, 234 { _______, _______, _______, _______, M_BACKL, RESET, _______, M_MOUSE, _______, _______, _______, ________________, VC_UP, _______ },
200 { _______, _______, _______, _______, _______, ________________, _______, _______, _______, _______, _______, _______, VC_DOWN, _______ }, 235 { _______, _______, _______, _______, _______, ________________, _______, _______, _______, _______, _______, _______, VC_DOWN, _______ },
201 }, 236 },
202 237
203 238
204/* 239/*
205 [LAYER_EMPTY] = { 240 [LAYER_EMPTY] = { // LAYER
206 { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ________________ }, 241 { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ________________ },
207 { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, 242 { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ },
208 { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ________________, _______ }, 243 { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ________________, _______ },
@@ -241,6 +276,7 @@ void persistant_default_layer_set(uint16_t default_layer)
241} 276}
242 277
243const uint16_t PROGMEM fn_actions[] = { 278const uint16_t PROGMEM fn_actions[] = {
279 [0] = ACTION_MODS_ONESHOT(MOD_LSFT),
244}; 280};
245 281
246const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) 282const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
@@ -250,13 +286,41 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
250 switch(id) 286 switch(id)
251 { 287 {
252 288
289 case MACRO_BREATH_TOGGLE:
290 if (record->event.pressed)
291 {
292 breathing_toggle();
293 }
294 break;
295
296 case MACRO_BREATH_SPEED_INC:
297 if (record->event.pressed)
298 {
299 breathing_speed_inc(1);
300 }
301 break;
302
303 case MACRO_BREATH_SPEED_DEC:
304 if (record->event.pressed)
305 {
306 breathing_speed_dec(1);
307 }
308 break;
309
310 case MACRO_BREATH_DEFAULT:
311 if (record->event.pressed)
312 {
313 breathing_defaults();
314 }
315 break;
316
253 case MACRO_QWERTY: 317 case MACRO_QWERTY:
254 if (record->event.pressed) 318 if (record->event.pressed)
255 { 319 {
256 persistant_default_layer_set(1UL<<LAYER_QWERTY); 320 persistant_default_layer_set(1UL<<LAYER_QWERTY);
257 #ifdef AUDIO_ENABLE 321 #ifdef AUDIO_ENABLE
258 PLAY_NOTE_ARRAY(tone_qwerty, false, STACCATO); 322 PLAY_NOTE_ARRAY(tone_qwerty, false, STACCATO);
259 #endif /* AUDIO_ENABLE */ 323 #endif /* AUDIO_ENABLE */
260 } 324 }
261 break; 325 break;
262 326
@@ -264,9 +328,9 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
264 if (record->event.pressed) 328 if (record->event.pressed)
265 { 329 {
266 persistant_default_layer_set(1UL<<LAYER_COLEMAK); 330 persistant_default_layer_set(1UL<<LAYER_COLEMAK);
267 #ifdef AUDIO_ENABLE 331 #ifdef AUDIO_ENABLE
268 PLAY_NOTE_ARRAY(tone_colemak, false, STACCATO); 332 PLAY_NOTE_ARRAY(tone_colemak, false, STACCATO);
269 #endif /* AUDIO_ENABLE */ 333 #endif /* AUDIO_ENABLE */
270 } 334 }
271 break; 335 break;
272 336
@@ -274,22 +338,24 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
274 if (record->event.pressed) 338 if (record->event.pressed)
275 { 339 {
276 persistant_default_layer_set(1UL<<LAYER_DVORAK); 340 persistant_default_layer_set(1UL<<LAYER_DVORAK);
277 #ifdef AUDIO_ENABLE 341 #ifdef AUDIO_ENABLE
278 PLAY_NOTE_ARRAY(tone_dvorak, false, STACCATO); 342 PLAY_NOTE_ARRAY(tone_dvorak, false, STACCATO);
279 #endif /* AUDIO_ENABLE */ 343 #endif /* AUDIO_ENABLE */
280 } 344 }
281 break; 345 break;
282 346
283 case MACRO_RAISE: 347 case MACRO_UPPER:
284 if (record->event.pressed) 348 if (record->event.pressed)
285 { 349 {
286 layer_on(LAYER_RAISE); 350 layer_on(LAYER_UPPER);
287 update_tri_layer(LAYER_LOWER, LAYER_RAISE, LAYER_ADJUST); 351 breathing_speed_set(2);
352 breathing_pulse();
353 update_tri_layer(LAYER_LOWER, LAYER_UPPER, LAYER_ADJUST);
288 } 354 }
289 else 355 else
290 { 356 {
291 layer_off(LAYER_RAISE); 357 layer_off(LAYER_UPPER);
292 update_tri_layer(LAYER_LOWER, LAYER_RAISE, LAYER_ADJUST); 358 update_tri_layer(LAYER_LOWER, LAYER_UPPER, LAYER_ADJUST);
293 } 359 }
294 break; 360 break;
295 361
@@ -297,22 +363,28 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
297 if (record->event.pressed) 363 if (record->event.pressed)
298 { 364 {
299 layer_on(LAYER_LOWER); 365 layer_on(LAYER_LOWER);
300 update_tri_layer(LAYER_LOWER, LAYER_RAISE, LAYER_ADJUST); 366 breathing_speed_set(2);
367 breathing_pulse();
368 update_tri_layer(LAYER_LOWER, LAYER_UPPER, LAYER_ADJUST);
301 } 369 }
302 else 370 else
303 { 371 {
304 layer_off(LAYER_LOWER); 372 layer_off(LAYER_LOWER);
305 update_tri_layer(LAYER_LOWER, LAYER_RAISE, LAYER_ADJUST); 373 update_tri_layer(LAYER_LOWER, LAYER_UPPER, LAYER_ADJUST);
306 } 374 }
307 break; 375 break;
308 376
309 case MACRO_FUNCTION: 377 case MACRO_FUNCTION:
310 if (record->event.pressed) 378 if (record->event.pressed)
311 { 379 {
380 breathing_speed_set(3);
381 breathing_enable();
312 layer_on(LAYER_FUNCTION); 382 layer_on(LAYER_FUNCTION);
313 } 383 }
314 else 384 else
315 { 385 {
386 breathing_speed_set(1);
387 breathing_self_disable();
316 layer_off(LAYER_FUNCTION); 388 layer_off(LAYER_FUNCTION);
317 } 389 }
318 break; 390 break;
@@ -362,42 +434,34 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
362 } 434 }
363 break; 435 break;
364 436
365 case MACRO_AUDIO_OFF: 437 case MACRO_AUDIO_TOGGLE:
366 if (record->event.pressed)
367 {
368 #ifdef AUDIO_ENABLE
369 audio_off();
370 #endif
371 }
372 break;
373
374 case MACRO_AUDIO_ON:
375 if (record->event.pressed) 438 if (record->event.pressed)
376 { 439 {
377 #ifdef AUDIO_ENABLE 440 if (is_audio_on())
378 audio_on(); 441 {
379 PLAY_NOTE_ARRAY(tone_audio_on, false, STACCATO); 442 audio_off();
380 #endif 443 }
444 else
445 {
446 audio_on();
447 PLAY_NOTE_ARRAY(tone_audio_on, false, STACCATO);
448 }
381 } 449 }
382 break; 450 break;
383 451
384 case MACRO_MUSIC_ON: 452 case MACRO_MUSIC_TOGGLE:
385 if (record->event.pressed) 453 if (record->event.pressed)
386 { 454 {
387 #ifdef AUDIO_ENABLE 455 if (IS_LAYER_ON(LAYER_MUSIC))
456 {
457 layer_off(LAYER_MUSIC);
458 stop_all_notes();
459 }
460 else
461 {
388 PLAY_NOTE_ARRAY(tone_music_on, false, STACCATO); 462 PLAY_NOTE_ARRAY(tone_music_on, false, STACCATO);
389 layer_on(LAYER_MUSIC); 463 layer_on(LAYER_MUSIC);
390 #endif 464 }
391 }
392 break;
393
394 case MACRO_MUSIC_OFF:
395 if (record->event.pressed)
396 {
397 #ifdef AUDIO_ENABLE
398 layer_off(LAYER_MUSIC);
399 stop_all_notes();
400 #endif
401 } 465 }
402 break; 466 break;
403 467
@@ -423,6 +487,14 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
423 487
424#endif /* AUDIO_ENABLE */ 488#endif /* AUDIO_ENABLE */
425 489
490#ifdef BACKLIGHT_ENABLE
491 case MACRO_BACKLIGHT:
492 if (record->event.pressed)
493 {
494 backlight_step();
495 }
496#endif
497
426 default: 498 default:
427 break; 499 break;
428 500
@@ -467,39 +539,39 @@ void led_set_user(uint8_t usb_led)
467 539
468 _delay_ms(10); // gets rid of tick 540 _delay_ms(10); // gets rid of tick
469 541
470 if (!is_playing_notes()) 542 if (!is_playing_notes())
471 { 543 {
472 if ((usb_led & (1<<USB_LED_CAPS_LOCK)) && !(old_usb_led & (1<<USB_LED_CAPS_LOCK))) 544 if ((usb_led & (1<<USB_LED_CAPS_LOCK)) && !(old_usb_led & (1<<USB_LED_CAPS_LOCK)))
473 { 545 {
474 // If CAPS LK LED is turning on... 546 // If CAPS LK LED is turning on...
475 PLAY_NOTE_ARRAY(tone_caps_on, false, LEGATO); 547 PLAY_NOTE_ARRAY(tone_caps_on, false, LEGATO);
476 } 548 }
477 else if (!(usb_led & (1<<USB_LED_CAPS_LOCK)) && (old_usb_led & (1<<USB_LED_CAPS_LOCK))) 549 else if (!(usb_led & (1<<USB_LED_CAPS_LOCK)) && (old_usb_led & (1<<USB_LED_CAPS_LOCK)))
478 { 550 {
479 // If CAPS LK LED is turning off... 551 // If CAPS LK LED is turning off...
480 PLAY_NOTE_ARRAY(tone_caps_off, false, LEGATO); 552 PLAY_NOTE_ARRAY(tone_caps_off, false, LEGATO);
481 } 553 }
482 else if ((usb_led & (1<<USB_LED_NUM_LOCK)) && !(old_usb_led & (1<<USB_LED_NUM_LOCK))) 554 else if ((usb_led & (1<<USB_LED_NUM_LOCK)) && !(old_usb_led & (1<<USB_LED_NUM_LOCK)))
483 { 555 {
484 // If NUM LK LED is turning on... 556 // If NUM LK LED is turning on...
485 PLAY_NOTE_ARRAY(tone_numlk_on, false, LEGATO); 557 PLAY_NOTE_ARRAY(tone_numlk_on, false, LEGATO);
486 } 558 }
487 else if (!(usb_led & (1<<USB_LED_NUM_LOCK)) && (old_usb_led & (1<<USB_LED_NUM_LOCK))) 559 else if (!(usb_led & (1<<USB_LED_NUM_LOCK)) && (old_usb_led & (1<<USB_LED_NUM_LOCK)))
488 { 560 {
489 // If NUM LED is turning off... 561 // If NUM LED is turning off...
490 PLAY_NOTE_ARRAY(tone_numlk_off, false, LEGATO); 562 PLAY_NOTE_ARRAY(tone_numlk_off, false, LEGATO);
491 } 563 }
492 else if ((usb_led & (1<<USB_LED_SCROLL_LOCK)) && !(old_usb_led & (1<<USB_LED_SCROLL_LOCK))) 564 else if ((usb_led & (1<<USB_LED_SCROLL_LOCK)) && !(old_usb_led & (1<<USB_LED_SCROLL_LOCK)))
493 { 565 {
494 // If SCROLL LK LED is turning on... 566 // If SCROLL LK LED is turning on...
495 PLAY_NOTE_ARRAY(tone_scroll_on, false, LEGATO); 567 PLAY_NOTE_ARRAY(tone_scroll_on, false, LEGATO);
496 } 568 }
497 else if (!(usb_led & (1<<USB_LED_SCROLL_LOCK)) && (old_usb_led & (1<<USB_LED_SCROLL_LOCK))) 569 else if (!(usb_led & (1<<USB_LED_SCROLL_LOCK)) && (old_usb_led & (1<<USB_LED_SCROLL_LOCK)))
498 { 570 {
499 // If SCROLL LED is turning off... 571 // If SCROLL LED is turning off...
500 PLAY_NOTE_ARRAY(tone_scroll_off, false, LEGATO); 572 PLAY_NOTE_ARRAY(tone_scroll_off, false, LEGATO);
501 } 573 }
502 } 574 }
503 575
504 old_usb_led = usb_led; 576 old_usb_led = usb_led;
505} 577}
@@ -514,7 +586,8 @@ void play_startup_tone()
514void play_goodbye_tone() 586void play_goodbye_tone()
515{ 587{
516 PLAY_NOTE_ARRAY(tone_my_goodbye, false, STACCATO); 588 PLAY_NOTE_ARRAY(tone_my_goodbye, false, STACCATO);
517 _delay_ms(1000); 589 _delay_ms(2000);
590 stop_all_notes();
518} 591}
519 592
520#endif /* AUDIO_ENABLE */ \ No newline at end of file 593#endif /* AUDIO_ENABLE */ \ No newline at end of file
diff --git a/keyboard/atomic/keymaps/pvc/makefile.mk b/keyboard/atomic/keymaps/pvc/makefile.mk
index eefa42855..f7798b09d 100644
--- a/keyboard/atomic/keymaps/pvc/makefile.mk
+++ b/keyboard/atomic/keymaps/pvc/makefile.mk
@@ -4,7 +4,7 @@ EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
4CONSOLE_ENABLE = no # Console for debug(+400) 4CONSOLE_ENABLE = no # Console for debug(+400)
5COMMAND_ENABLE = yes # Commands for debug and configuration 5COMMAND_ENABLE = yes # Commands for debug and configuration
6NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work 6NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
7BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality 7BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
8MIDI_ENABLE = no # MIDI controls 8MIDI_ENABLE = no # MIDI controls
9AUDIO_ENABLE = yes # Audio output on port C6 9AUDIO_ENABLE = yes # Audio output on port C6
10UNICODE_ENABLE = no # Unicode 10UNICODE_ENABLE = no # Unicode
diff --git a/keyboard/atreus/config.h b/keyboard/atreus/config.h
index ca0cd7e47..55d3b62b9 100644
--- a/keyboard/atreus/config.h
+++ b/keyboard/atreus/config.h
@@ -36,7 +36,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
36// Change this to how you wired your keyboard 36// Change this to how you wired your keyboard
37// COLS: Left to right, ROWS: Top to bottom 37// COLS: Left to right, ROWS: Top to bottom
38#if defined(ATREUS_ASTAR) 38#if defined(ATREUS_ASTAR)
39 #define COLS (int []){ B7, D6, F7, F6, B6, D4, E6, B4, B5, C6, D7 } 39 #define COLS (int []){ D7, C6, B5, B4, E6, D4, B6, F6, F7, D6, B7 }
40 #define ROWS (int []){ D0, D1, D3, D2 } 40 #define ROWS (int []){ D0, D1, D3, D2 }
41#elif defined(ATREUS_TEENSY2) 41#elif defined(ATREUS_TEENSY2)
42 #define COLS (int []){ F6, F5, F4, B7, B6, B5, B4, B3, B2, B1, B0} 42 #define COLS (int []){ F6, F5, F4, B7, B6, B5, B4, B3, B2, B1, B0}
diff --git a/keyboard/ergodox_ez/Makefile b/keyboard/ergodox_ez/Makefile
index 5dfcca2c8..3a07ec254 100644
--- a/keyboard/ergodox_ez/Makefile
+++ b/keyboard/ergodox_ez/Makefile
@@ -101,6 +101,22 @@ NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: ht
101# MIDI_ENABLE = yes # MIDI controls 101# MIDI_ENABLE = yes # MIDI controls
102# UNICODE_ENABLE = yes # Unicode 102# UNICODE_ENABLE = yes # Unicode
103 103
104# If you want to have your own config_user.h, you can just put it in
105# your keymap directory. Anything you set there will take precedence
106# over the global config.h.
107ifneq ("$(wildcard keymaps/$(KEYMAP)/config_user.h)","")
108CONFIG_USER_H = keymaps/$(KEYMAP)/config_user.h
109endif
110
111ifdef KEYMAP
112
113ifeq ("$(wildcard keymaps/$(KEYMAP).c)","")
114ifneq ("$(wildcard keymaps/$(KEYMAP)/makefile.mk)","")
115 include keymaps/$(KEYMAP)/makefile.mk
116endif
117endif
118endif
119
104 120
105# Optimize size but this may cause error "relocation truncated to fit" 121# Optimize size but this may cause error "relocation truncated to fit"
106#EXTRALDFLAGS = -Wl,--relax 122#EXTRALDFLAGS = -Wl,--relax
diff --git a/keyboard/ergodox_ez/keymaps/erez_experimental/config_user.h b/keyboard/ergodox_ez/keymaps/erez_experimental/config_user.h
new file mode 100644
index 000000000..d19c2783c
--- /dev/null
+++ b/keyboard/ergodox_ez/keymaps/erez_experimental/config_user.h
@@ -0,0 +1,8 @@
1#ifndef CONFIG_USER_H
2#define CONFIG_USER_H
3
4#include "config.h"
5#define ONESHOT_TAP_TOGGLE 2
6#define ONESHOT_TIMEOUT 3000
7
8#endif
diff --git a/keyboard/ergodox_ez/keymaps/erez_experimental/erez_experimental.hex b/keyboard/ergodox_ez/keymaps/erez_experimental/erez_experimental.hex
index ab32e94dd..bdd707165 100644
--- a/keyboard/ergodox_ez/keymaps/erez_experimental/erez_experimental.hex
+++ b/keyboard/ergodox_ez/keymaps/erez_experimental/erez_experimental.hex
@@ -1,235 +1,235 @@
1:100000000C9465020C94A9020C94A9020C94A90208 1:100000000C945C020C94A0020C94A0020C94A0022C
2:100010000C94A9020C94A9020C94A9020C94A902B4 2:100010000C94A0020C94A0020C94A0020C94A002D8
3:100020000C94A9020C94A9020C94A00C0C94720DCF 3:100020000C94A0020C94A0020C94970C0C94690DF3
4:100030000C94A9020C94A9020C94A9020C94A90294 4:100030000C94D61B0C94A0020C94A0020C94A00269
5:100040000C94A9020C9446220C94A9020C94A902C7 5:100040000C94A0020C94A0020C94A0020C94A002A8
6:100050000C94A9020C94EA1B0C94A9020C94A9021A 6:100050000C94A0020C943D1C0C94A0020C94A002E1
7:100060000C94A9020C94A9020C94A9020C94A90264 7:100060000C94A0020C94A0020C94A0020C94A00288
8:100070000C94A9020C94A9020C94A9020C94A90254 8:100070000C94A0020C94A0020C94A0020C94A00278
9:100080000C94A9020C94A9020C94A9020C94A90244 9:100080000C94A0020C94A0020C94A0020C94A00268
10:100090000C94A9020C94A9020C94A9020C94A90234 10:100090000C94A0020C94A0020C94A0020C94A00258
11:1000A0000C94A9020C94A9020C94A902D70DF90D85 11:1000A0000C94A0020C94A0020C94A002CE0DF00DB2
12:1000B000E40EF90DE40E3B0E5E0EE40EB30EC60E1A 12:1000B000DB0EF00DDB0E320E550EDB0EAA0EBD0E62
13:1000C000C011C0110112011243127F127F147F145C 13:1000C000CC11CC11FB11FB1146126812CF13CF13C8
14:1000D00097127F148E138E1359147F147F146D148E 14:1000D0007312CF131C131C13C013CF13CF13C913E8
15:1000E0000000F0A12E004C002A00003035810000F5 15:1000E0002913291329132913291329132913291330
16:1000F0001E00140004001D7134004D001F001A0082 16:1000F0002913291329132913291329132913291320
17:1001000016001B00E104C1002000080007000600E3 17:100100003A1348134F13561360130000F0A100C8B0
18:1001100050002C0021001500090019004F004A0072 18:1001100001C82E004C002A000030358100001E006E
19:10012000220017000A000500000065745000015409 19:10012000140004001D7134004D001F001A00160059
20:1001300000002F7F0000E3004F00015400003077E3 20:100130001B00E104C1002000080007000600500079
21:100140000000E20023001C000B00110000002971D8 21:100140002C0021001500090019004F004A00220070
22:10015000240018000D74100052004B0025000C0004 22:1001500017000A00050000006574500001540000FB
23:100160000E00360051002800260012000F00370054 23:100160002F7F0000E3004F000154000030770000B3
24:100170002F002B81270013003382387130004E008E 24:10017000E20023001C000B00110000002971240084
25:100180002D003100347801302D0000000100010005 25:1001800018000D74100052004B0025000C000E00EA
26:1001900001000100010000003A001E0022002602BA 26:10019000360051002800260012000F0037002F0003
27:1001A000010001003B001F002300270201000100A5 27:1001A0002B81270013003382387130004E002D0060
28:1001B0003C00200024002F004B0101003D002100E5 28:1001B0003100347801302D81000001000100010080
29:1001C000250030004E0101003E00010026002700FE 29:1001C0000100010000003A0001001E0023000100B0
30:1001D000000001000100010000000100000001001A 30:1001D00001003B0001001F002400010001003C0061
31:1001E0000100010000000100000001003F000100CB 31:1001E0000100200025004B0101003D00010021001D
32:1001F0002402310200000100400022022D022602EA 32:1001F00026004E0101003E00010022002700000001
33:100200000100010041002E002D0027020100010025 33:1002000001000100010000000100000001000100E8
34:1002100042001F0213002000010001004300010002 34:10021000010000000100000001003F000100240275
35:100220002E02010001000100440045000100010010 35:10022000310200000100400001002D021F02010008
36:1002300001000000010001000100010001000000B8 36:100230000100410001002D002E00010001004200DC
37:1002400001000100010001000100010001000100A6 37:1002400001001300220201000100430001002E0200
38:10025000F2000100010001000100F000F1000100C6 38:10025000010001000100440045000100010001000F
39:10026000F400010001000100F3000100F5000100AD 39:100260000000010001000100010001000000010088
40:100270000100010001000100000001000100010077 40:1002700001004B00010001000100010001004A00E3
41:100280000000010000000100010001000000010069 41:10028000010001000100010001004D00010001001A
42:100290000000010001000100010001000000010058 42:100290000100010001004E00010001000100010009
43:1002A0000100010001000100A9000100010001009E 43:1002A0000100010001000000010001000100000048
44:1002B0000100AC00AA00B600010001000100AB0083 44:1002B0000100000001000100010000000100000039
45:1002C000A80001000100010001000100010001007F 45:1002C0000100010001000100010000000100010027
46:1002D00001000100AE00010001000000160345000E 46:1002D000010001000100A90001000100010001006E
47:1002E000720067006F0044006F0078002000450036 47:1002E000AC00AA00B600010001000100AB00A800AC
48:1002F0005A00000016034500720067006F004400BA 48:1002F00001000100010001000100010001000100F6
49:100300006F007800200045005A0000000403090433 49:100300000100AE000100010000001603450072006C
50:1003100009026D00040100A0FA09040000010301B4 50:1003100067006F0044006F007800200045005A001D
51:100320000100092111010001223F00070581030896 51:10032000000016034500720067006F0044006F0074
52:10033000000A090401000103010200092111010062 52:100330007800200045005A00000004030904090267
53:1003400001224D000705820308000A09040200018A 53:100340006D00040100A0FA0904000001030101008E
54:100350000300000009211101000122360007058376 54:10035000092111010001223F000705810308000A5D
55:100360000308000A09040300010300000009211129 55:100360000904010001030102000921110100012219
56:100370000100012239000705840310000112011059 56:100370004D000705820308000A090402000103007A
57:100380000100000008EDFE07130100010200010555 57:10038000000009211101000122360007058303083E
58:10039000010906A101050719E029E71500250195C6 58:10039000000A090403000103000000092111010003
59:1003A0000875018102050819012905950575019156 59:1003A0000122390007058403100001120110010029
60:1003B000029501750391010507190029771500259C 60:1003B000000008EDFE07130100010200010501091C
61:1003C00001957875018102C005010980A1018502AE 61:1003C00006A101050719E029E71500250195087523
62:1003D00016010026B7001A01002AB7007510950112 62:1003D000018102050819012905950575019102950C
63:1003E0008100C0050C0901A1018503160100269CAE 63:1003E000017503910105071900297715002501956D
64:1003F000021A01002A9C02751095018100C00501B6 64:1003F0007875018102C005010980A10185021601FD
65:100400000902A1010901A100050919012905150029 65:100400000026B7001A01002AB70075109501810077
66:10041000250195057501810295017503810105018D 66:10041000C0050C0901A1018503160100269C021AE2
67:10042000093009311581257F950275088106093843 67:1004200001002A9C02751095018100C00501090296
68:100430001581257F950175088106050C0A3802157E 68:10043000A1010901A10005091901290515002501DE
69:1004400081257F950175088106C0C005010906A1B7 69:10044000950575018102950175038101050109304A
70:1004500001050719E029E7150025019508750181B7 70:1004500009311581257F95027508810609381581B6
71:100460000295017508810105081901290595057591 71:10046000257F950175088106050C0A38021581253E
72:100470000191029501750391010507190029FF15E6 72:100470007F950175088106C0C005010906A1010527
73:100480000025FF950675088100C0000000000000EF 73:100480000719E029E71500250195087501810295F6
74:100490000000000000010204060A0F17202C3A4A4F 74:100490000175088101050819012905950575019166
75:1004A0005D71879DB3C7DAE9F5FCFFFCF5E9DAC7B2 75:1004A000029501750391010507190029FF15002523
76:1004B000B39D87715D4A3A2C20170F0A060402018A 76:1004B000FF950675088100C011241FBECFEFDAE05A
77:1004C0000000000000000000000011241FBECFEF5C 77:1004C000DEBFCDBF04B603FE24C08091F20190913F
78:1004D000DAE0DEBFCDBF04B603FE24C08091F00198 78:1004D000F301A091F401B091F5018730904BA74052
79:1004E0009091F101A091F201B091F3018730904B0E 79:1004E000B04BB9F41092F2011092F3011092F401A2
80:1004F000A740B04BB9F41092F0011092F1011092A4 80:1004F0001092F50114BE84B7877F84BF88E10FB6E0
81:10050000F2011092F30114BE84B7877F84BF88E1A3 81:10050000F89480936000109260000FBEE0E0FFE37B
82:100510000FB6F89480936000109260000FBEE0E088 82:10051000099511E0A0E0B1E0EAEEF7E402C0059031
83:10052000FFE3099511E0A0E0B1E0EAE1F8E402C0E0 83:100520000D92A433B107D9F711E0A4E3B1E001C003
84:1005300005900D92A433B107D9F711E0A4E3B1E01F 84:100530001D92A23FB107E1F70E94DF090C94F3235B
85:1005400001C01D92A03FB107E1F70E94E6090C949B 85:100540000C940000CF93DF93EC01662319F0613027
86:100550000B240C940000662319F06130F1F03DC0CB 86:1005500079F031C08A818823C9F082E00E94561167
87:10056000FC018281882341F00E94B51B90933501E4 87:100560008D81982F907F71F080FD0CC086E21BC0BA
88:100570008093340181EE1CC080913401909135014B 88:100570008A818823D9F082E00E9456118D81982FBC
89:100580000E94C11B8634910534F486E20E94481013 89:10058000907F71F48D818F708D8315C08D81807FF8
90:1005900086E20E94101181EE1EC0FC018281882338 90:1005900019F086E20E94071182E00E945D110BC0F3
91:1005A00051F00E94B51B909335018093340185EE84 91:1005A00080FDF0CF87E20E943F1005C08D81807FE3
92:1005B0000E94481012C080913401909135010E9430 92:1005B00099F387E2EFCF80E090E0DF91CF9108954B
93:1005C000C11B8634910534F487E20E94481087E20B 93:1005C00008956091B1017091B2018091B301909151
94:1005D0000E94101185EE0E94101180E090E00895B5 94:1005D000B4010E943D1B56985E9825982D98269848
95:1005E00008956091B3017091B4018091B50190912B 95:1005E0002E9827982F98813019F0823021F00895A5
96:1005F000B6010E94131B56985E9825982D98269850 96:1005F000259A2D9A0895269A2E9A08950C94E10230
97:100600002E9827982F98813019F0823021F0089584 97:1006000056985E9825982D9826982E9827982F987A
98:10061000259A2D9A0895269A2E9A08950C94F102FF 98:100610008FEF90E0909389008093880090938B00F7
99:1006200056985E9825982D9826982E9827982F985A 99:1006200080938A0090938D0080938C00259A2D9A58
100:100630008FEF90E0909389008093880090938B00D7 100:100630002FEF80E792E0215080409040E1F700C02A
101:1006400080938A0090938D0080938C00259A2D9A38 101:100640000000269A2E9A2FEF80E792E021508040FA
102:100650002FEF80E792E0215080409040E1F700C00A 102:100650009040E1F700C00000279A2F9A2FEF80E723
103:100660000000269A2E9A2FEF80E792E021508040DA 103:1006600092E0215080409040E1F700C000002598C2
104:100670009040E1F700C00000279A2F9A2FEF80E703 104:100670002D982FEF80E792E0215080409040E1F7E5
105:1006800092E0215080409040E1F700C000002598A2 105:1006800000C0000026982E982FEF80E792E02150BE
106:100690002D982FEF80E792E0215080409040E1F7C5 106:1006900080409040E1F700C0000027982F985698BE
107:1006A00000C0000026982E982FEF80E792E021509E 107:1006A0005E9825982D9826982E9827982F9808952B
108:1006B00080409040E1F700C0000027982F9856989E 108:1006B00089EA8093800089E08093810024982C98B7
109:1006C0005E9825982D9826982E9827982F9808950B 109:1006C0003F988AB18F748AB96E98479A8BB1806BC4
110:1006D00089EA8093800089E08093810024982C9897 110:1006D0008BB9769A0E9400030C94E00280E280932A
111:1006E0003F988AB18F748AB96E98479A8BB1806BA4 111:1006E00000018091340181110EC00E94BD0381E0A0
112:1006F0008BB9769A0E9410030C94F00280E28093EA 112:1006F000809334012FEF83ED90E3215080409040B0
113:1007000000018091360181110EC00E94CD0381E06D 113:10070000E1F700C0000080E40E94C3038093000171
114:10071000809336012FEF83ED90E32150804090408D 114:1007100081112EC00E94ED0380930001811128C039
115:10072000E1F700C0000080E40E94D3038093000141 115:100720000E94ED0380930001811122C08FE30E949B
116:1007300081112EC00E94FD0380930001811128C009 116:10073000ED038093000181111BC00E94E50380E45A
117:100740000E94FD0380930001811122C08FE30E946B 117:100740000E94C30380930001811112C08CE00E94BB
118:10075000FD038093000181111BC00E94F50380E41A 118:10075000ED038093000181110BC00E94ED03809393
119:100760000E94D30380930001811112C08CE00E948B 119:100760000001811105C08FE30E94ED038093000119
120:10077000FD038093000181110BC00E94FD03809353 120:100770000E94E5038091000108951092B9008AE07B
121:100780000001811105C08FE30E94FD0380930001E9 121:100780008093B800089594EA9093BC009091BC00C7
122:100790000E94F5038091000108951092B9008AE04B 122:1007900097FFFCCF9091B900987F983021F090316D
123:1007A0008093B800089594EA9093BC009091BC00A7 123:1007A00011F081E008958093BB0084E88093BC0041
124:1007B00097FFFCCF9091B900987F983021F090314D 124:1007B0008091BC0087FFFCCF8091B900887F883191
125:1007C00011F081E008958093BB0084E88093BC0021 125:1007C00011F0803471F780E0089584E98093BC00D3
126:1007D0008091BC0087FFFCCF8091B900887F883171 126:1007D0008091BC0084FDFCCF08958093BB0084E829
127:1007E00011F0803471F780E0089584E98093BC00B3 127:1007E0008093BC008091BC0087FFFCCF9091B90042
128:1007F0008091BC0084FDFCCF08958093BB0084E809 128:1007F000987F81E0983209F480E0089584E880933E
129:100800008093BC008091BC0087FFFCCF9091B90021 129:10080000BC008091BC0087FFFCCF8091BB000895A5
130:10081000987F81E0983209F480E0089584E880931D 130:1008100080910001811115C080E40E94C303809380
131:10082000BC008091BC0087FFFCCF8091BB00089585 131:10082000000181110CC082E10E94ED038093000160
132:1008300080910001811115C080E40E94D303809350 132:10083000811105C08FEF0E94ED03809300010E949B
133:10084000000181110CC082E10E94FD038093000130 133:10084000E50384B1807F84B985B1807F85B98AB1A1
134:10085000811105C08FEF0E94FD03809300010E946B 134:10085000837F8AB98BB1837F8BB93E984698089580
135:10086000F50384B1807F84B985B1807F85B98AB171 135:100860000E946E03809300010E94080480B38C7084
136:10087000837F8AB98BB1837F8BB93E984698089560 136:1008700080BB81B3836F81BBE4E4F1E0A6E3B1E028
137:100880000E947E03809300010E94180480B38C7044 137:1008800011921D9281E0E235F807D1F70C945803DC
138:1008900080BB81B3836F81BBE6E4F1E0A8E3B1E004 138:10089000BF92CF92DF92EF92FF920F931F93CF936D
139:1008A00011921D9281E0E435F807D1F70C946803AA 139:1008A000DF9380910001882379F0809135018F5F7B
140:1008B000BF92CF92DF92EF92FF920F931F93CF934D 140:1008B00080933501811108C00E946E03809300016E
141:1008C000DF9380910001882379F0809137018F5F59 141:1008C000811102C00E94000306E311E0C0E0D0E005
142:1008D00080933701811108C00E947E03809300013C 142:1008D000DD24D39482E0C82EEE24E394F12CC730BB
143:1008E000811102C00E94100308E311E0C0E0D0E0D3 143:1008E00000F580910001811162C080E40E94C30381
144:1008F000DD24D39482E0C82EEE24E394F12CC7309B 144:1008F00080930001811112C082E10E94ED03809378
145:1009000000F580910001811162C080E40E94D30350 145:10090000000181110BC0C7010C2E01C0880F0A9491
146:1009100080930001811112C082E10E94FD03809347 146:10091000EAF780950E94ED03809300010E94E503B1
147:10092000000181110BC0C7010C2E01C0880F0A9471 147:1009200046C0CA30A1F028F4C83059F0C93061F08F
148:10093000EAF780950E94FD03809300010E94F50371 148:1009300005C0CC3089F070F0CD3089F0209A28982D
149:1009400046C0CA30A1F028F4C83059F0C93061F06F 149:1009400010C0219A29980DC0229A2A980AC0239A89
150:1009500005C0CC3089F070F0CD3089F0209A28980D 150:100950002B9807C0529A01C0539A5B9802C03E9AE6
151:1009600010C0219A29980DC0229A2A980AC0239A69 151:100960004698E0EAEA95F1F78FB179995AC092E09A
152:100970002B9807C0529A01C0539A5B9802C03E9AC6 152:1009700081708D25892B7C9B02C090E001C094E0A2
153:100980004698E0EAEA95F1F78FB179995AC092E07A 153:10098000892B7D9B02C090E001C098E0892B7E9B63
154:1009900081708D25892B7C9B02C090E001C094E082 154:1009900002C090E001C090E1892B9FB19095991F12
155:1009A000892B7D9B02C090E001C098E0892B7E9B43 155:1009A0009927991F9295990F907E892B0FC080915E
156:1009B00002C090E001C090E1892B9FB19095991FF2 156:1009B000000181114BC080E40E94C30380930001B9
157:1009C0009927991F9295990F907E892B0FC080913E 157:1009C000882389F1B12C0E94E5038B2DF8019081D9
158:1009D000000181114BC080E40E94D3038093000189 158:1009D000981719F08083C09201010E9408042196A3
159:1009E000882389F1B12C0E94F5038B2DF8019081A9 159:1009E0000F5F1F4FCE30D10509F079CF8091010103
160:1009F000981719F08083C09201010E941804219673 160:1009F000882371F1815080930101882339F08FE9B8
161:100A00000F5F1F4FCE30D10509F079CF80910101E2 161:100A00009FE00197F1F700C0000022C0A4E4B1E02C
162:100A1000882371F1815080930101882339F08FE997 162:100A1000E6E3F1E081918D9391E0E434F907D1F7B9
163:100A20009FE00197F1F700C0000022C0A6E4B1E00A 163:100A200017C090E0A5CF83E10E94ED038093000101
164:100A3000E8E3F1E081918D9391E0E634F907D1F795 164:100A30008111C8CF81E40E94C3038093000181111A
165:100A400017C090E0A5CF83E10E94FD0380930001D1 165:100A4000C1CF0E94FE03B82EB094BDCF80E0BECFD0
166:100A50008111C8CF81E40E94D303809300018111EA 166:100A50000E94FE0281E0DF91CF911F910F91FF90E4
167:100A6000C1CF0E940E04B82EB094BDCF80E0BECF9F 167:100A6000EF90DF90CF90BF900895E82FF0E0EC5B1F
168:100A70000E940E0381E0DF91CF911F910F91FF90B3 168:100A7000FE4F808108950895089596E0799FF001D2
169:100A8000EF90DF90CF90BF900895E82FF0E0EA5B01 169:100A8000112494E5899FE00DF11D1124E60FF11D5D
170:100A9000FE4F808108950895089596E0799FF001B2 170:100A9000EE0FFF1FEE5EFE4F859194910895880F33
171:100AA000112494E5899FE00DF11D1124E60FF11D3D 171:100AA000991F86579040FC01859194910895880F75
172:100AB000EE0FFF1FEC51FF4F859194910895880F21 172:100AB000991F865F9E4FFC018591949108950F9335
173:100AC000991F805A9040FC01859194910895880F58 173:100AC0001F93CF93DF93EC01811520E3920730F55C
174:100AD000991F80529F4FFC018591949108950F9327 174:100AD000811530E2930708F0B1C08B3B910588F493
175:100AE0001F93CF93DF93EC01811520E3920730F53C 175:100AE000883A910508F058C0853A910508F049C048
176:100AF000811530E2930708F0B1C08B3B910588F473 176:100AF0008430910508F043C08130910509F4C2C1EA
177:100B0000883A910508F058C0853A910508F049C027 177:100B0000BEC18F3F910509F0D0F5803F910508F0F7
178:100B10008430910508F043C08130910509F4B2C1D9 178:100B100092C0805E9109089790F1B1C1C11581E53D
179:100B2000AEC18F3F910509F0D0F5803F910508F0E7 179:100B2000D807A8F4C23090E5D90708F09FC0C115D6
180:100B300092C0805E9109089790F1A1C1C11581E52D 180:100B300020E5D20709F486C008F092C0C11580E410
181:100B4000D807A8F4C23090E5D90708F09FC0C115B6 181:100B4000D80708F09CC18E011127106CDCC1C115BB
182:100B500020E5D20709F486C008F092C0C11580E4F0 182:100B500090E8D90758F4C11520E7D20708F08BC1F7
183:100B6000D80708F08CC18E011127106CCCC1C115BB 183:100B6000C11530E6D30708F423C189C1C11580E956
184:100B700090E8D90758F4C11520E7D20708F07BC1E7 184:100B7000D80708F084C18E011F70106AC4C18E01AD
185:100B8000C11530E6D30708F423C179C1C11580E946 185:100B8000C2C1853A910509F480C1863A910509F4FC
186:100B9000D80708F074C18E011F70106AB4C18E01AD 186:100B90007FC103E810E4B7C1883A910509F47BC12D
187:100BA000B2C1853A910509F470C1863A910509F4FC 187:100BA000893A910509F47AC18A3A910509F479C123
188:100BB0006FC103E810E4A7C1883A910509F46BC13D 188:100BB0008B3A910509F478C18C3A910509F477C113
189:100BC000893A910509F46AC18A3A910509F469C123 189:100BC0008D3A910509F476C1803B910509F475C110
190:100BD0008B3A910509F468C18C3A910509F467C113 190:100BD0008E3A910509F474C18F3A910509F473C1F5
191:100BE0008D3A910509F466C1803B910509F465C110 191:100BE000813B910509F472C1823B910509F471C101
192:100BF0008E3A910509F464C18F3A910509F463C1F5 192:100BF000833B910509F470C1843B910509F46FC1F1
193:100C0000813B910509F462C1823B910509F461C100 193:100C0000853B910509F46EC1863B910509F46DC1E0
194:100C1000833B910509F460C1843B910509F45FC1F0 194:100C1000873B910509F46CC1883B910509F46BC1D0
195:100C2000853B910509F45EC1863B910509F45DC1E0 195:100C2000893B910509F46AC18A3B910509F069C1C4
196:100C3000873B910509F45CC1883B910509F45BC1D0 196:100C30000AE216E468C18C01106565C19F700E94CC
197:100C4000893B910509F45AC18A3B910509F059C1C4 197:100C4000570562C10E9419149FEF24E33CE09150C4
198:100C50000AE216E458C18C01106555C19F700E94CC 198:100C500020403040E1F700C000000E94621C53C1F8
199:100C6000670552C10E94A2149FEF24E33CE091501B 199:100C60008091D30181608093D3014DC10E940A1EFF
200:100C700020403040E1F700C000000E940F1C43C13B 200:100C7000811102C00E94F01D0E94271E90E09093F7
201:100C80008091CF0181608093CF013DC10E94B71D4B 201:100C8000F2018093F101C23080E5D80721F4809110
202:100C9000811102C00E949D1D0E94D41D90E090937E 202:100C9000F101816086C0C43090E5D90721F48091CC
203:100CA000F0018093EF01C23080E5D80721F48091F4 203:100CA000F10182607EC0C63020E5D20721F4809138
204:100CB000EF01816086C0C43090E5D90721F48091AE 204:100CB000F101846076C0C83030E5D30719F4809123
205:100CC000EF0182607EC0C63020E5D20721F480911A 205:100CC000F10127C0CA3080E5D80721F48091F101F5
206:100CD000EF01846076C0C83030E5D30719F4809105 206:100CD000806167C0CC3090E5D90721F48091F101A3
207:100CE000EF0127C0CA3080E5D80721F48091EF01D9 207:100CE00080625FC0CE3020E5D20721F48091F1010F
208:100CF000806167C0CC3090E5D90721F48091EF0185 208:100CF000806457C0C03130E5D30721F48091F10101
209:100D000080625FC0CE3020E5D20721F48091EF01F0 209:100D000080684FC0C23180E5D80729F48091F10195
210:100D1000806457C0C03130E5D30721F48091EF01E2 210:100D10008460886046C0C33090E5D90721F4809193
211:100D200080684FC0C23180E5D80729F48091EF0177 211:100D2000F1018E7F3EC0C53020E5D20721F48091CD
212:100D30008460886046C0C33090E5D90721F4809173 212:100D3000F1018D7F36C0C73030E5D30721F48091B3
213:100D4000EF018E7F3EC0C53020E5D20721F48091AF 213:100D4000F1018B7F2EC0C93080E5D80719F480915E
214:100D5000EF018D7F36C0C73030E5D30721F4809195 214:100D5000F10126C0CB3090E5D90721F48091F10153
215:100D6000EF018B7F2EC0C93080E5D80719F4809140 215:100D60008F7E1FC0CD3020E5D20721F48091F101A4
216:100D7000EF0126C0CB3090E5D90721F48091EF0137 216:100D70008F7D17C0CF3030E5D30721F48091F1018A
217:100D80008F7E1FC0CD3020E5D20721F48091EF0186 217:100D80008F7B0FC0C13180E5D80721F48091F1013C
218:100D90008F7D17C0CF3030E5D30721F48091EF016C 218:100D90008F7707C0C331D04531F48091F1018B7F4B
219:100DA0008F7B0FC0C13180E5D80721F48091EF011E 219:100DA000877F8093F1018091F1010E942B1EABC0DF
220:100DB0008F7707C0C331D04531F48091EF018B7F2D 220:100DB0008D2F99278F70992781309105E9F48E0145
221:100DC000877F8093EF018091EF010E94D81D9BC027 221:100DC000037011279C0102C0220F331F0A95E2F71E
222:100DD0008D2F99278F70992781309105E9F48E0125 222:100DD00089011C68CE01E4E0880F991FEA95E1F7CC
223:100DE000037011279C0102C0220F331F0A95E2F7FE 223:100DE00088279370082B192BF3E0CC0FDD1FFA95A1
224:100DF00089011C68CE0164E0880F991F6A95E1F7AC 224:100DF000E1F7C076DD272CC08230910529F41C2F45
225:100E000088279370082B192B73E0CC0FDD1F7A9580 225:100E00000027016F106A7FC08330910561F4CE0125
226:100E1000E1F7C076DD272CC08230910529F41C2F24 226:100E10008370992701E010E002C0000F111F8A952E
227:100E20000027016F106A6FC08330910561F4CE0115 227:100E2000E2F71C680EC084309105A9F4CE018370EE
228:100E30008370992701E010E002C0000F111F8A950E 228:100E3000992701E010E002C0000F111F8A95E2F728
229:100E4000E2F71C680EC0049709F05DC0CE01837004 229:100E40001A6863E0CC0FDD1F6A95E1F7C07ED770AA
230:100E5000992701E010E002C0000F111F8A95E2F708 230:100E50000C2B1D2B58C08530910529F41C2F002721
231:100E60001A6843E0CC0FDD1F4A95E1F7C07ED770CA 231:100E6000046F106A50C0069709F04DC0CF71DD279E
232:100E70000C2B1D2B48C08E011F70106244C000E077 232:100E70001C2F002702C08E011F70106244C000E0CA
233:100E800010E041C001E010E03EC001E810E43BC0CA 233:100E800010E041C001E010E03EC001E810E43BC0CA
234:100E900002E810E438C002EE14E435C009EE14E4B0 234:100E900002E810E438C002EE14E435C009EE14E4B0
235:100EA00032C00AEE14E42FC005EB14E42CC006EBAC 235:100EA00032C00AEE14E42FC005EB14E42CC006EBAC
@@ -240,43 +240,43 @@
240:100EF00005E216E408C006E216E405C007E216E4BF 240:100EF00005E216E408C006E216E405C007E216E4BF
241:100F000002C000E014E4C801DF91CF911F910F915E 241:100F000002C000E014E4C801DF91CF911F910F915E
242:100F1000089596E0799FF001112494E5899FE00DF2 242:100F1000089596E0799FF001112494E5899FE00DF2
243:100F2000F11D1124E60FF11DEE0FFF1FEC51FF4FD5 243:100F2000F11D1124E60FF11DEE0FFF1FEE5EFE4FC7
244:100F300085919491803E9105E0F4803C910558F5AF 244:100F300085919491803E9105E0F4803C910558F5AF
245:100F40008133910509F46FC048F48932910509F4A1 245:100F40008133910509F46FC048F48932910509F4A1
246:100F500063C08A32910509F46DC072C0893391056E 246:100F500063C08A32910509F46DC072C0893391056E
247:100F6000E9F082389105D1F08533910509F44DC03F 247:100F6000E9F082389105D1F08533910509F44DC03F
248:100F700067C0833E910581F138F4803E9105B9F058 248:100F700067C0833E910581F138F4803E9105B9F058
249:100F8000823E9105D9F05CC0863E910561F1873EB5 249:100F8000823E9105D9F05CC0863E910561F1873EB5
250:100F90009105A1F155C00E945F0508952091EF01D0 250:100F90009105A1F155C00E944F0508952091F101DE
251:100FA00020FD02C021FF4CC080EE90E049C080913E 251:100FA00020FD02C021FF4CC080EE90E049C080913E
252:100FB000EF0180FFF9CF89E390E042C08091EF011B 252:100FB000F10180FFF9CF89E390E042C08091F10117
253:100FC00082FF0EC08091EF0184FF03C080E090E0BB 253:100FC00082FF0EC08091F10184FF03C080E090E0B9
254:100FD00037C083EE90E034C08091EF0182FFF2CF02 254:100FD00037C083EE90E034C08091F10182FFF2CF00
255:100FE00082EE90E02DC08091EF0183FF0BC08091D5 255:100FE00082EE90E02DC08091F10183FF0BC08091D3
256:100FF000EF0184FDEBCF87EE90E022C08091EF01FE 256:100FF000F10184FDEBCF87EE90E022C08091F101FA
257:1010000083FFF5CF86EE90E01BC08091EF0185FF56 257:1010000083FFF5CF86EE90E01BC08091F10185FF54
258:1010100007C089E290E014C08091EF0185FFF9CF0D 258:1010100007C089E290E014C08091F10185FFF9CF0B
259:1010200085E390E00DC08091EF0186FF07C08AE262 259:1010200085E390E00DC08091F10186FF07C08AE260
260:1010300090E006C08091EF0186FFF9CF81E390E058 260:1010300090E006C08091F10186FFF9CF81E390E056
261:101040000E946F05089508950C942308809164010F 261:101040000E945F05089508950C9423088091620121
262:101050000895CF93DF9300D01F92CDB7DEB72091D4 262:101050000895CF93DF9300D01F92CDB7DEB72091D4
263:10106000E601243019F523E029839B838A832093AA 263:10106000E801243019F523E029839B838A832093A8
264:10107000E9008FEF9091E800815095FD06C095ED55 264:10107000E9008FEF9091E800815095FD06C095ED55
265:101080009A95F1F700008111F5CF8091E80085FF76 265:101080009A95F1F700008111F5CF8091E80085FF76
266:101090000DC040E050E063E070E0CE0101960E9498 266:101090000DC040E050E063E070E0CE0101960E9498
267:1010A000930A8091E8008E778093E8000F900F906C 267:1010A0008A0A8091E8008E778093E8000F900F9075
268:1010B0000F90DF91CF910895CF93DF9300D01F92CF 268:1010B0000F90DF91CF910895CF93DF9300D01F92CF
269:1010C000CDB7DEB72091E601243021F522E0298357 269:1010C000CDB7DEB72091E801243021F522E0298355
270:1010D0009B838A8383E08093E9008FEF9091E800FF 270:1010D0009B838A8383E08093E9008FEF9091E800FF
271:1010E000815095FD06C095ED9A95F1F700008111AC 271:1010E000815095FD06C095ED9A95F1F700008111AC
272:1010F000F5CF8091E80085FF0DC040E050E063E04F 272:1010F000F5CF8091E80085FF0DC040E050E063E04F
273:1011000070E0CE0101960E94930A8091E8008E77EC 273:1011000070E0CE0101960E948A0A8091E8008E77F5
274:101110008093E8000F900F900F90DF91CF9108958A 274:101110008093E8000F900F900F90DF91CF9108958A
275:101120002091E6012430F1F422E02093E9002FEF32 275:101120002091E8012430F1F422E02093E9002FEF30
276:101130003091E800215035FD06C035ED3A95F1F7C4 276:101130003091E800215035FD06C035ED3A95F1F7C4
277:1011400000002111F5CF2091E80025FF0BC040E001 277:1011400000002111F5CF2091E80025FF0BC040E001
278:1011500050E065E070E00E94930A8091E8008E778D 278:1011500050E065E070E00E948A0A8091E8008E7796
279:101160008093E8000895CF93DF93EC018091E6012E 279:101160008093E8000895CF93DF93EC018091E8012C
280:10117000843009F046C090910C019923D9F09091E8 280:10117000843009F046C090910C019923D9F09091E8
281:101180000D019923B9F08093E9008FEF9091E80069 281:101180000D019923B9F08093E9008FEF9091E80069
282:10119000815095FD06C095E19A95F1F70000811107 282:10119000815095FD06C095E19A95F1F70000811107
@@ -284,876 +284,873 @@
284:1011B00070E017C081E08093E9008FEF9091E80024 284:1011B00070E017C081E08093E9008FEF9091E80024
285:1011C000815095FD06C095ED9A95F1F700008111CB 285:1011C000815095FD06C095ED9A95F1F700008111CB
286:1011D000F5CF8091E80085FF14C040E050E068E062 286:1011D000F5CF8091E80085FF14C040E050E068E062
287:1011E00070E0CE010E94930A8091E8008E77809390 287:1011E00070E0CE010E948A0A8091E8008E77809399
288:1011F000E80080E1FE01A4E5B1E001900D928A953E 288:1011F000E80080E1FE01A2E5B1E001900D928A9540
289:10120000E1F7DF91CF9108958091E501811109C047 289:10120000E1F7DF91CF9108958091E701811109C045
290:101210000E94250C0E94820C8091E20084608093E1 290:101210000E941C0C0E94790C8091E20084608093F3
291:10122000E20008951092E501089508950C94332288 291:10122000E20008951092E7010895089508950C943E
292:101230000E94A61B0E9439220E941F0F0C942408B2 292:10123000D01B42E061EC81E00E94960B42E061EC41
293:1012400042E061EC81E00E949F0B42E061EC82E0B1 293:1012400082E00E94960B42E061EC83E00E94960BE4
294:101250000E949F0B42E061EC83E00E949F0B42E101 294:1012500042E161EC84E00C94960B8091EA018330CA
295:1012600061EC84E00C949F0B8091E801833009F4D9 295:1012600009F455C030F4813071F0823009F48EC039
296:1012700055C030F4813071F0823009F48EC0089589 296:1012700008958A3009F47AC08B3009F460C089304F
297:101280008A3009F47AC08B3009F460C0893009F0E3 297:1012800009F09CC020C08091E901813A09F096C024
298:101290009CC020C08091E701813A09F096C08091FE 298:101290008091E800877F8093E8008091ED01909134
299:1012A000E800877F8093E8008091EB019091EC014A 299:1012A000EE01892B21F060E080E090E003C060E176
300:1012B000892B21F060E080E090E003C060E184E5EC 300:1012B00082E591E070E00E94D30A8091E8008B778C
301:1012C00091E070E00E94DC0A8091E8008B778093C7 301:1012C0008093E80008958091E901813209F076C0A9
302:1012D000E80008958091E701813209F076C080919D 302:1012D0008091ED019091EE01009719F0039709F0CC
303:1012E000EB019091EC01009719F0039709F06DC0A4 303:1012E0006DC08091E800877F8093E8008091E800DE
304:1012F0008091E800877F8093E8008091E80082FD7C 304:1012F00082FD05C08091E8018111F8CF5FC0809127
305:1013000005C08091E6018111F8CF5FC08091F100A6 305:10130000F100809362018091E8008B7753C0809157
306:10131000809364018091E8008B7753C08091E7014E 306:10131000E901813A09F052C08091ED019091EE010E
307:10132000813A09F052C08091EB019091EC01892B38 307:10132000892B09F04BC08091E800877F8093E8000B
308:1013300009F04BC08091E800877F8093E80080919E 308:101330008091E80080FFFCCF80910C0136C0809145
309:10134000E80080FFFCCF80910C0136C08091E7015E 309:10134000E9018132D9F58091ED019091EE01892B6F
310:101350008132D9F58091EB019091EC01892BA9F5AF 310:10135000A9F58091E800877F8093E8000E94CB0B7D
311:101360008091E800877F8093E8000E94D40B8091F1 311:101360008091EB0180930C010C9419148091E90198
312:10137000E90180930C010C94A2148091E701813261 312:10137000813221F58091E800877F8093E8000E9408
313:1013800021F58091E800877F8093E8000E94D40BCC 313:10138000CB0B8091EC018093630108958091E9017A
314:101390008091EA018093650108958091E701813A87 314:10139000813AA1F48091E800877F8093E8008091F2
315:1013A000A1F48091E800877F8093E8008091E800B5 315:1013A000E80080FFFCCF809163018093F100809181
316:1013B00080FFFCCF809165018093F1008091E8006F 316:1013B000E8008E778093E8000C94CB0B089584B7F7
317:1013C0008E778093E8000C94D40B089584B7877FC0 317:1013C000877F84BF88E10FB6F89480936000109205
318:1013D00084BF88E10FB6F89480936000109260009B 318:1013D00060000FBE90E080E80FB6F8948093610043
319:1013E0000FBE90E080E80FB6F89480936100909370 319:1013E000909361000FBE0E94650F0E941C0C0E942A
320:1013F00061000FBE0E946E0F0E94250C0E94820C9D 320:1013F000790C8091E20084608093E20078940E94EE
321:101400008091E20084608093E20078940E94FD0E57 321:10140000F40E0E94670F82E091E00E94110F80911C
322:101410000E94700F82E091E00E941A0F0E94212228 322:10141000E801853069F40E94901B8091E6018823E1
323:101420008091E601853069F40E94661B8091E40199 323:10142000B1F30E94BB1B882391F30E94740AEFCF93
324:101430008823B1F30E94911B882391F30E947D0AB7 324:101430000E946D0FECCF292F332723303105A9F0FF
325:10144000EFCF0E94760FECCF292F332723303105C1 325:101440006CF42130310509F442C02230310509F035
326:10145000A9F06CF42130310509F442C02230310585 326:1014500043C08DE690E02EE333E042C021323105F7
327:1014600009F043C08DE690E020E133E042C0213234 327:10146000C9F02232310519F137C099278130910531
328:101470003105C9F02232310519F137C09927813081 328:1014700041F08230910541F0892B71F5EAE3F3E008
329:10148000910541F08230910541F0892B71F5ECE036 329:1014800005C0E2E2F3E002C0EAE0F3E0849190E01C
330:10149000F3E005C0E4EFF2E002C0ECEDF2E084918D 330:101490009F0126C0643000F5E62FF0E0EE0FFF1F3D
331:1014A00090E09F0126C0643000F5E62FF0E0EE0FDB 331:1014A000EE5DFE4F2081318189E090E019C064300B
332:1014B000FF1FEE5DFE4F2081318189E090E019C071 332:1014B00098F4E62FF0E0DF01AA0FBB1FA65EBE4F37
333:1014C000643098F4E62FF0E0DF01AA0FBB1FA65EA0 333:1014C0002D913C91EA5EFE4F808190E009C082E15F
334:1014D000BE4F2D913C91EA5EFE4F808190E009C0A5 334:1014D00090E02BEA33E004C080E090E020E030E0D0
335:1014E00082E190E02DE733E004C080E090E020E06E 335:1014E000FA0131832083089580E189BD82E189BDBD
336:1014F00030E0FA0131832083089580E189BD82E1E3 336:1014F00009B400FEFDCF8091D8008F7D8093D80085
337:1015000089BD09B400FEFDCF8091D8008F7D809306 337:101500008091E00082608093E0008091E00081FDA6
338:10151000D8008091E00082608093E0008091E0003C 338:10151000FCCF0895CF92DF92EF92FF920F931F932B
339:1015200081FDFCCF0895CF92DF92EF92FF920F934F 339:10152000CF93DF937C018B01EA010E94EC0B8111C8
340:101530001F93CF93DF937C018B01EA010E94F50B8F 340:1015300031C0209731F088819981081B190BE80E82
341:10154000811131C0209731F088819981081B190BD6 341:10154000F91EC12CD12C0115110519F18091E8006B
342:10155000E80EF91EC12CD12C0115110519F180914D 342:1015500085FD14C08091E8008E778093E800209785
343:10156000E80085FD14C08091E8008E778093E80044 343:1015600041F0888199818C0D9D1D9983888385E048
344:10157000209741F0888199818C0D9D1D99838883E6 344:1015700011C00E94EC0B882331F30CC0F70181915C
345:1015800085E011C00E94F50B882331F30CC0F701F0 345:101580007F018093F10001501109FFEFCF1ADF0AAC
346:1015900081917F018093F10001501109FFEFCF1A73 346:10159000DACF80E0DF91CF911F910F91FF90EF9014
347:1015A000DF0ADACF80E0DF91CF911F910F91FF909A 347:1015A000DF90CF9008952091EF013091F001261740
348:1015B000EF90DF90CF9008952091ED013091EE01F2 348:1015B000370748F06115710539F42091E8002E775E
349:1015C0002617370748F06115710539F42091E800B6 349:1015C0002093E80001C0B901FC0120E0611571051C
350:1015D0002E772093E80001C0B901FC0120E06115DD 350:1015D000B9F18091E801882309F440C0853009F40D
351:1015E0007105B9F18091E601882309F440C0853086 351:1015E0003FC08091E80083FD3DC08091E80082FF0C
352:1015F00009F43FC08091E80083FD3DC08091E80080 352:1015F00006C08091E80082FF26C080E008958091B7
353:1016000082FF06C08091E80082FF26C080E0089536 353:10160000E80080FFE3CF2091F3008091F20090E0AA
354:101610008091E80080FFE3CF2091F3008091F200F9 354:10161000922B6115710551F08830910538F42191B4
355:1016200090E0922B6115710551F08830910538F4E6 355:101620002093F100615071090196F3CF21E00897F2
356:1016300021912093F100615071090196F3CF21E0CF 356:1016300009F020E08091E8008E778093E800C6CF23
357:10164000089709F020E08091E8008E778093E80009 357:101640002111C7CFD6CF8091E801882339F08530AA
358:10165000C6CF2111C7CFD6CF8091E601882339F0BC 358:1016500039F08091E80083FFCCCF04C082E0089588
359:10166000853039F08091E80083FFCCCF04C082E060 359:1016600083E0089581E008952091EF013091F00129
360:10167000089583E0089581E008952091ED0130916F 360:101670002617370748F06115710539F42091E80005
361:10168000EE012617370748F06115710539F42091EE 361:101680002E772093E80001C0B901FC0120E061152C
362:10169000E8002E772093E80001C0B901FC0120E0AA 362:101690007105C1F18091E801882309F441C08530CA
363:1016A00061157105C1F18091E601882309F441C0FB 363:1016A00009F440C08091E80083FD3EC08091E800CD
364:1016B000853009F440C08091E80083FD3EC08091F0 364:1016B00082FF06C08091E80082FF27C080E0089585
365:1016C000E80082FF06C08091E80082FF27C080E02A 365:1016C0008091E80080FFE3CF2091F3008091F20049
366:1016D00008958091E80080FFE3CF2091F30080918E 366:1016D00090E0922B6115710559F08830910540F426
367:1016E000F20090E0922B6115710559F08830910558 367:1016E00024912093F1003196615071090196F2CF57
368:1016F00040F424912093F1003196615071090196D4 368:1016F00021E0089709F020E08091E8008E77809340
369:10170000F2CF21E0089709F020E08091E8008E7781 369:10170000E800C5CF2111C6CFD5CF8091E80188234D
370:101710008093E800C5CF2111C6CFD5CF8091E601D7 370:1017100039F0853039F08091E80083FFCBCF04C0E9
371:10172000882339F0853039F08091E80083FFCBCFF2 371:1017200082E0089583E0089581E00895982F97302E
372:1017300004C082E0089583E0089581E00895982F21 372:1017300058F59093E900981739F07091EC002091DA
373:10174000973058F59093E900981739F07091EC00B4 373:10174000ED005091F00003C0242F762F50E021FFD0
374:101750002091ED005091F00003C0242F762F50E02F 374:1017500019C03091EB003E7F3093EB003091ED00EB
375:1017600021FF19C03091EB003E7F3093EB003091A8 375:101760003D7F3093ED003091EB0031603093EB0022
376:10177000ED003D7F3093ED003091EB003160309310 376:101770007093EC002093ED005093F0002091EE0068
377:10178000EB007093EC002093ED005093F00020915B 377:1017800027FF07C09F5FD3CF8F708093E90081E070
378:10179000EE0027FF07C09F5FD3CF8F708093E900D3 378:10179000089580E008958091E90187FD05C080915A
379:1017A00081E0089580E008958091E70187FD05C0FC 379:1017A000E80080FF0EC012C08091E80082FD05C0F5
380:1017B0008091E80080FF0EC012C08091E80082FD99 380:1017B0008091E8018111F8CF08958091E8008B773E
381:1017C00005C08091E6018111F8CF08958091E8006D 381:1017C00008C08091E8018111EACF08958091E80076
382:1017D0008B7708C08091E6018111EACF089580914E 382:1017D0008E778093E80008958091E4009091E50071
383:1017E000E8008E778093E80008958091E40090915E 383:1017E00045E62091EC0020FF21C02091E80020FD7B
384:1017F000E50045E62091EC0020FF21C02091E800A3 384:1017F00021C02091E801222389F0253089F0209131
385:1018000020FD21C02091E601222389F0253089F0B6 385:10180000EB0025FD0FC02091E4003091E500281782
386:101810002091EB0025FD0FC02091E4003091E50000 386:10181000390739F3415041F0C901E3CF82E008951F
387:101820002817390739F3415041F0C901E3CF82E06D 387:1018200083E0089581E0089584E008952091E80020
388:10183000089583E0089581E0089584E0089520915B 388:1018300022FFDFCF80E008950E948A0C0E94920C64
389:10184000E80022FFDFCF80E008950E94930C0E9401 389:10184000E0EEF0E0808181608083E8EDF0E080816F
390:101850009B0CE0EEF0E0808181608083E8EDF0E0B9 390:101850008F77808319BCA7EDB0E08C918E7F8C933D
391:1018600080818F77808319BCA7EDB0E08C918E7F4B 391:1018600080818F7E80831092E70108950F931F93EC
392:101870008C9380818F7E80831092E50108950F9371 392:10187000CF93DF930E948A0C0E94920CC8EDD0E0B7
393:101880001F93CF93DF930E94930C0E949B0CC8ED93 393:1018800088818F77888388818068888388818F7D2D
394:10189000D0E088818F778883888180688883888179 394:10189000888319BC1092E8011092E4011092E601CD
395:1018A0008F7D888319BC1092E6011092E20110929C 395:1018A0001092E50100EE10E0F80180818B7F8083CB
396:1018B000E4011092E30100EE10E0F80180818B7FDB 396:1018B00088818160888342E060E080E00E94960B2E
397:1018C000808388818160888342E060E080E00E94BC 397:1018C000E1EEF0E080818E7F8083E2EEF0E08081C7
398:1018D0009F0BE1EEF0E080818E7F8083E2EEF0E00E 398:1018D00081608083808188608083F80180818E7F31
399:1018E000808181608083808188608083F80180812D 399:1018E0008083888180618883DF91CF911F910F91E0
400:1018F0008E7F8083888180618883DF91CF911F9163 400:1018F0000895E8EDF0E080818F7E8083E7EDF0E0F1
401:101900000F910895E8EDF0E080818F7E8083E7ED10 401:1019000080818160808384E082BF81E08093E701F1
402:10191000F0E080818160808384E082BF81E08093F9 402:101910000C94360CE8EDF0E080818E7F808310928D
403:10192000E5010C943F0CE8EDF0E080818E7F808330 403:10192000E20008951092DA001092E10008951F92EB
404:101930001092E20008951092DA001092E1000895EA 404:101930000F920FB60F9211242F933F934F935F9303
405:101940001F920F920FB60F9211242F933F934F9334 405:101940006F937F938F939F93AF93BF93EF93FF9387
406:101950005F936F937F938F939F93AF93BF93EF9317 406:101950008091E10082FF0BC08091E20082FF07C00E
407:10196000FF938091E10082FF0BC08091E20082FF33 407:101960008091E1008B7F8093E1000E94F30E8091D3
408:1019700007C08091E1008B7F8093E1000E94FC0E04 408:10197000DA0080FF1FC08091D80080FF1BC08091DB
409:101980008091DA0080FF1FC08091D80080FF1BC0CB 409:10198000DA008E7F8093DA008091D90080FF0DC04D
410:101990008091DA008E7F8093DA008091D90080FFF9 410:1019900080E189BD82E189BD09B400FEFDCF81E00F
411:1019A0000DC080E189BD82E189BD09B400FEFDCF93 411:1019A0008093E8010E94040905C019BC1092E80167
412:1019B00081E08093E6010E94040905C019BC1092E1 412:1019B0000E9412098091E10080FF19C08091E2002D
413:1019C000E6010E9412098091E10080FF19C0809118 413:1019C00080FF15C08091E2008E7F8093E2008091BD
414:1019D000E20080FF15C08091E2008E7F8093E200DC 414:1019D000E20080618093E2008091D8008062809371
415:1019E0008091E20080618093E2008091D800806263 415:1019E000D80019BC85E08093E8010E941609809117
416:1019F0008093D80019BC85E08093E6010E94160907 416:1019F000E10084FF30C08091E20084FF2CC080E1D0
417:101A00008091E10084FF30C08091E20084FF2CC00F 417:101A000089BD82E189BD09B400FEFDCF8091D80077
418:101A100080E189BD82E189BD09B400FEFDCF8091DE 418:101A10008F7D8093D8008091E1008F7E8093E100DC
419:101A2000D8008F7D8093D8008091E1008F7E8093D5 419:101A20008091E2008F7E8093E2008091E2008160ED
420:101A3000E1008091E2008F7E8093E2008091E200DD 420:101A30008093E2008091E401882311F084E007C0E4
421:101A400081608093E2008091E201882311F084E0BC 421:101A40008091E30087FF02C083E001C081E08093C2
422:101A500007C08091E30087FF02C083E001C081E0FE 422:101A5000E8010E9417098091E10083FF29C080916D
423:101A60008093E6010E9418098091E10083FF29C05C 423:101A6000E20083FF25C08091E100877F8093E10041
424:101A70008091E20083FF25C08091E100877F809301 424:101A700082E08093E8011092E4018091E1008E7F82
425:101A8000E10082E08093E6011092E2018091E100A2 425:101A80008093E1008091E2008E7F8093E20080915C
426:101A90008E7F8093E1008091E2008E7F8093E20050 426:101A9000E20080618093E20042E060E080E00E942A
427:101AA0008091E20080618093E20042E060E080E0AB 427:101AA000960B8091F00088608093F0000E941509E9
428:101AB0000E949F0B8091F00088608093F0000E944C 428:101AB000FF91EF91BF91AF919F918F917F916F9126
429:101AC0001509FF91EF91BF91AF919F918F917F91F8 429:101AC0005F914F913F912F910F900FBE0F901F90FC
430:101AD0006F915F914F913F912F910F900FBE0F909B 430:101AD00018951F920F920FB60F9211242F933F93D8
431:101AE0001F9018951F920F920FB60F9211242F93EB 431:101AE0004F935F936F937F938F939F93AF93BF9326
432:101AF0003F934F935F936F937F938F939F93AF9396 432:101AF000CF93EF93FF93C091E900CF708091EC00FA
433:101B0000BF93CF93EF93FF93C091E900CF70809183 433:101B00001092E9008091F000877F8093F000789434
434:101B1000EC001092E9008091F000877F8093F00044 434:101B10000E94A50D1092E9008091F00088608093EA
435:101B200078940E94AE0D1092E9008091F0008860D8 435:101B2000F000C093E900FF91EF91CF91BF91AF9189
436:101B30008093F000C093E900FF91EF91CF91BF91A6 436:101B30009F918F917F916F915F914F913F912F91E5
437:101B4000AF919F918F917F916F915F914F913F9155 437:101B40000F900FBE0F901F9018951F93CF93DF93A8
438:101B50002F910F900FBE0F901F9018951F93CF934A 438:101B5000CDB7DEB7AA970FB6F894DEBF0FBECDBFE4
439:101B6000DF93CDB7DEB7AA970FB6F894DEBF0FBEEE 439:101B6000E9EEF1E08091F100819321E0E13FF2079D
440:101B7000CDBFE7EEF1E08091F100819321E0EF3EEF 440:101B7000C9F70E942D098091E80083FF1CC12091C4
441:101B8000F207C9F70E9434098091E80083FF1CC165 441:101B8000E9013091EA01832F90E08A30910508F055
442:101B90002091E7013091E801832F90E08A30910590 442:101B900012C1FC01EA5AFF4F0C94A323203881F0B4
443:101BA00008F012C1FC01EA5AFF4F0C94BB23203805 443:101BA000223809F008C18091ED018F708093E9001F
444:101BB00081F0223809F008C18091EB018F70809389 444:101BB0008091EB0085FB882780F91092E90006C030
445:101BC000E9008091EB0085FB882780F91092E900FD 445:101BC0008091E5019091E601911182609091E80089
446:101BD00006C08091E3019091E4019111826090919F 446:101BD000977F9093E8008093F1001092F100C5C0C8
447:101BE000E800977F9093E8008093F1001092F10055 447:101BE000822F8D7F09F0E7C0222319F0223061F0A7
448:101BF000C5C0822F8D7F09F0E7C0222319F0223063 448:101BF000E2C08091EB01813009F0DDC0333009F0A3
449:101C000061F0E2C08091E901813009F0DDC033303C 449:101C000080E08093E60128C08091EB01811124C01F
450:101C100009F080E08093E40128C08091E9018111FE 450:101C10002091ED012F7009F4CEC02093E90080914E
451:101C200024C02091EB012F7009F4CEC02093E9006D 451:101C2000EB0080FF19C08091EB00333011F480622B
452:101C30008091EB0080FF19C08091EB00333011F4EC 452:101C300011C080618093EB0081E090E0022E01C032
453:101C4000806211C080618093EB0081E090E0022E01 453:101C4000880F0A94EAF78093EA001092EA008091E4
454:101C500001C0880F0A94EAF78093EA001092EA0024 454:101C5000EB0088608093EB001092E9008091E8002F
455:101C60008091EB0088608093EB001092E9008091F6 455:101C6000877F86C02111A7C01091EB011F7780915B
456:101C7000E800877F86C02111A7C01091E9011F7776 456:101C7000E3008078812B8093E3008091E800877FE8
457:101C80008091E3008078812B8093E3008091E800CD 457:101C80008093E8000E94CB0B8091E80080FFFCCF9E
458:101C9000877F8093E8000E94D40B8091E80080FF4A 458:101C90008091E30080688093E300112311F083E0DA
459:101CA000FCCF8091E30080688093E300112311F062 459:101CA00001C082E08093E80186C02058223008F00D
460:101CB00083E001C082E08093E60186C02058223094 460:101CB00082C08091EB019091EC018C3D23E0920772
461:101CC00008F082C08091E9019091EA018C3D23E007 461:101CC00079F583E08A838AE289834FB7F894DE014D
462:101CD000920779F583E08A838AE289834FB7F89483 462:101CD000139620E03EE051E2E32FF0E050935700EE
463:101CE000DE01139620E03EE051E2E32FF0E0509356 463:101CE000E49120FF03C0E295EF703F5FEF708E2F0D
464:101CF0005700E49120FF03C0E295EF703F5FEF7063 464:101CF00090E0EA3010F0C79601C0C0968D939D9396
465:101D00008E2F90E0EA3010F0C79601C0C0968D93F8 465:101D00002F5F243149F74FBF8091E800877F809390
466:101D10009D932F5F243149F74FBF8091E800877F63 466:101D1000E8006AE270E0CE0101960E94D30A14C086
467:101D20008093E8006AE270E0CE0101960E94DC0A2E 467:101D2000AE014F5F5F4F6091ED010E941B0A00976B
468:101D300014C0AE014F5F5F4F6091EB010E94240A17 468:101D300009F441C02091E800277F2093E800BC010E
469:101D4000009709F441C02091E800277F2093E80024 469:101D400089819A810E94340B8091E8008B7780937F
470:101D5000BC0189819A810E943D0B8091E8008B77BC 470:101D5000E80031C0203879F58091E800877F8093D2
471:101D60008093E80031C0203879F58091E800877FC2 471:101D6000E8008091E4018093F1008091E8008E7793
472:101D70008093E8008091E2018093F1008091E80077 472:101D70008093E8000E94CB0B1EC021111CC09091E3
473:101D80008E778093E8000E94D40B1EC021111CC0E6 473:101D8000EB019230C0F48091E800877F8093E800F7
474:101D90009091E9019230C0F48091E800877F8093B0 474:101D90009093E4010E94CB0B8091E401811104C077
475:101DA000E8009093E2010E94D40B8091E20181113E 475:101DA0008091E30087FF02C084E001C081E080935E
476:101DB00004C08091E30087FF02C084E001C081E09D 476:101DB000E8010E9419098091E80083FF0AC0809120
477:101DC0008093E6010E9420098091E80083FF0AC009 477:101DC000E800877F8093E8008091EB008062809339
478:101DD0008091E800877F8093E8008091EB0080622B 478:101DD000EB00AA960FB6F894DEBF0FBECDBFDF9121
479:101DE0008093EB00AA960FB6F894DEBF0FBECDBF6E 479:101DE000CF911F9108950895CF938091E8018823A2
480:101DF000DF91CF911F9108950895CF938091E601CF 480:101DF000B1F08091E9008F709091EC0090FF02C0EB
481:101E00008823B1F08091E9008F709091EC0090FFF1 481:101E000090E801C090E0C92FC82B1092E9008091A2
482:101E100002C090E801C090E0C92FC82B1092E900E1 482:101E1000E80083FD0E94A50DCF70C093E900CF912B
483:101E20008091E80083FD0E94AE0DCF70C093E90061 483:101E2000089590936901809368010895E091680195
484:101E3000CF91089590936B0180936A010895E0918A 484:101E3000F0916901309721F00190F081E02D099433
485:101E40006A01F0916B01309721F00190F081E02D53 485:101E400080E00895E0916801F0916901309721F0F8
486:101E5000099480E00895E0916A01F0916B01309758 486:101E50000280F381E02D09940895E0916801F091EA
487:101E600021F00280F381E02D09940895E0916A0148 487:101E60006901309721F00480F581E02D09940895EF
488:101E7000F0916B01309721F00480F581E02D0994F9 488:101E700020916601309167018217930771F090936A
489:101E8000089520916801309169018217930771F0DC 489:101E8000670180936601E0916801F09169013097E4
490:101E90009093690180936801E0916A01F0916B0170 490:101E900021F00680F781E02D0994089520916401D6
491:101EA000309721F00680F781E02D09940895209164 491:101EA000309165018217930771F0909365018093DB
492:101EB0006601309167018217930771F09093670173 492:101EB0006401E0916801F0916901309721F000849C
493:101EC00080936601E0916A01F0916B01309721F0F7 493:101EC000F185E02D0994089508950C94640F0E9403
494:101ED0000084F185E02D0994089508950C946D0F08 494:101ED000FF1B0E9430040C94C51CCF92DF92EF923E
495:101EE0000E94AC1B0E9440040C94721CCF92DF92A3 495:101EE000FF920F931F93CF93DF93CDB7DEB72B975E
496:101EF000EF92FF920F931F93CF93DF93CDB7DEB78F 496:101EF0000FB6F894DEBF0FBECDBF0E9448043BE68C
497:101F00002B970FB6F894DEBF0FBECDBF0E945804CA 497:101F0000E32E31E0F32E00E010E0C02E802F0E947F
498:101F10003DE6E32E31E0F32E00E010E0C02E802FEE 498:101F10003505F701D1907F01D826B1F40F5F1F4F2F
499:101F20000E944505F701D1907F01D826B1F40F5FDB 499:101F20000E30110591F78FEF89838A831B820E94FF
500:101F30001F4F0E30110591F78FEF89838A831B8223 500:101F3000081C8160782F9D838C8349815A816B8135
501:101F40000E94B51B8160782F9D838C8349815A81C3 501:101F40008D810E94101041C09091D30191FF04C077
502:101F50006B818D810E94191041C09091CF0191FF3A 502:101F50008B870E943B058B8520E030E04D2D50E0C3
503:101F600004C08B870E944B058B8520E030E04D2D0F 503:101F6000922FBA01022E02C0759567950A94E2F786
504:101F700050E0922FBA01022E02C0759567950A941F 504:101F700060FF25C02E83CF82EE24E394F12C02C0B3
505:101F8000E2F760FF25C02E83CF82EE24E394F12C8C 505:101F8000EE0CFF1C9A95E2F790E08E219F2121E054
506:101F900002C0EE0CFF1C9A95E2F790E08E219F2183 506:101F9000892B09F420E028870E94081C8160782F93
507:101FA00021E0892B09F420E028870E94B51B81607D 507:101FA0009A8789874E815F8168858A850E94101093
508:101FB000782F9A8789874E815F8168858A850E94FC 508:101FB000F801E559FE4F80818E25808306C02F5F92
509:101FC0001910F801E359FE4F80818E25808306C0E9 509:101FC0003F4F2630310561F6A9CF0E94A91F10911D
510:101FD0002F5F3F4F2630310561F6A9CF0E94561F73 510:101FD0006A010E94160F1817A1F00E94160F809335
511:101FE00010916C010E941F0F1817A1F00E941F0F83 511:101FE0006A012B960FB6F894DEBF0FBECDBFDF910E
512:101FF00080936C012B960FB6F894DEBF0FBECDBF59 512:101FF000CF911F910F91FF90EF90DF90CF900C94B5
513:10200000DF91CF911F910F91FF90EF90DF90CF90D4 513:1020000024082B960FB6F894DEBF0FBECDBFDF912C
514:102010000C9424082B960FB6F894DEBF0FBECDBFEC 514:10201000CF911F910F91FF90EF90DF90CF90089597
515:10202000DF91CF911F910F91FF90EF90DF90CF90B4 515:10202000CF93DF93CDB7DEB72B970FB6F894DEBF13
516:102030000895CF93DF93CDB7DEB72B970FB6F89403 516:102030000FBECDBF4F83588769877A878B87DE01B4
517:10204000DEBF0FBECDBF4F83588769877A878B87E6 517:10204000119686E0FD0111928A95E9F785E0FE017F
518:10205000DE01119686E0FD0111928A95E9F785E08F 518:10205000379601900D928A95E1F749815A816B81FB
519:10206000FE01379601900D928A95E1F749815A81D8 519:102060007C818D819E810E94E9162B960FB6F89493
520:102070006B817C818D819E810E946E172B960FB69D 520:10207000DEBF0FBECDBFDF91CF9108950895CF93FE
521:10208000F894DEBF0FBECDBFDF91CF9108950895C4 521:10208000C82F882309F4C1C0823859F40E94160F62
522:10209000CF93C82F882309F4C1C0823859F40E9415 522:1020900081FDBBC089E30E94301A0E94071B89E3BF
523:1020A0001F0F81FDBBC089E30E941A1A0E94E41A27 523:1020A0000CC0833879F40E94160F80FDAEC083E522
524:1020B00089E30CC0833879F40E941F0F80FDAEC005 524:1020B0000E94301A0E94071B83E50E94701ACF917C
525:1020C00083E50E941A1A0E94E41A83E50E945A1AB4 525:1020C0000C94071B843859F40E94160F82FD9DC0A2
526:1020D000CF910C94E41A843859F40E941F0F82FDAA 526:1020D00087E40E94301A0E94071B87E4EECF8CEF42
527:1020E0009DC087E40E941A1A0E94E41A87E4EECF8A 527:1020E0008C0F813A48F48C2F0E94D52181118DC02C
528:1020F0008CEF8C0F813A48F48C2F0E94892181113A 528:1020F0008C2F0E94301AE3CF80E28C0F883048F496
529:102100008DC08C2F0E941A1AE3CF80E28C0F88308A 529:10210000C77081E001C0880FCA95EAF70E94B41A2F
530:1021100048F4C77081E001C0880FCA95EAF70E94B1 530:10211000D6CF8BE58C0F833078F4C53A29F0C63AD8
531:102120009B1AD6CF8BE58C0F833078F4C53A29F013 531:1021200031F482E890E005C081E890E002C083E8E5
532:10213000C63A31F482E890E005C081E890E002C040 532:1021300090E0CF910C94380F88E58C0F833108F034
533:1021400083E890E0CF910C94410F88E58C0F8331A8 533:1021400064C0C83A39F1C93A41F1CA3A49F1CB3AC7
534:1021500008F064C0C83A39F1C93A41F1CA3A49F1C4 534:1021500051F1CC3A59F1CD3A61F1C03B69F1CE3A37
535:10216000CB3A51F1CC3A59F1CD3A61F1C03B69F12A 535:1021600071F1CF3A79F1C13B81F1C23B89F1C33BB7
536:10217000CE3A71F1CF3A79F1C13B81F1C23B89F19D 536:1021700091F1C43B99F1C53BA1F1C63BA9F1C73B25
537:10218000C33B91F1C43B99F1C53BA1F1C63BA9F119 537:10218000B1F1C83BB9F1C93BC1F1CA3BC9F58AE21B
538:10219000C73BB1F1C83BB9F1C93BC1F1CA3BC9F575 538:1021900092E038C082EE90E035C089EE90E032C027
539:1021A0008AE292E038C082EE90E035C089EE90E09D 539:1021A0008AEE90E02FC085EB90E02CC086EB90E0AB
540:1021B00032C08AEE90E02FC085EB90E02CC086EB19 540:1021B00029C087EB90E026C08CEC90E023C08DEC2A
541:1021C00090E029C087EB90E026C08CEC90E023C023 541:1021C00090E020C083E891E01DC08AE891E01AC049
542:1021D0008DEC90E020C083E891E01DC08AE891E09A 542:1021D00082E991E017C084E991E014C081E292E0C5
543:1021E0001AC082E991E017C084E991E014C081E24D 543:1021E00011C083E292E00EC084E292E00BC085E26F
544:1021F00092E011C083E292E00EC084E292E00BC054 544:1021F00092E008C086E292E005C087E292E002C069
545:1022000085E292E008C086E292E005C087E292E0B3 545:1022000080E090E0CF910C944E0FCF9108958823F9
546:1022100002C080E090E0CF910C94570FCF910895C9 546:1022100009F44BC0823859F40E94160F81FF45C063
547:10222000882309F44BC0823859F40E941F0F81FFA4 547:1022200089E30E94301A0E94071B89E30CC083389F
548:1022300045C089E30E941A1A0E94E41A89E30CC07F 548:1022300071F40E94160F80FF38C083E50E94301AA7
549:10224000833871F40E941F0F80FF38C083E50E941D 549:102240000E94071B83E50E94701A0C94071B8438B8
550:102250001A1A0E94E41A83E50E945A1A0C94E41A8E 550:1022500059F40E94160F82FF28C087E40E94301AAA
551:10226000843859F40E941F0F82FF28C087E40E941F 551:102260000E94071B87E4EFCF9CEF980F913A58F339
552:102270001A1A0E94E41A87E4EFCF9CEF980F913A64 552:1022700090E2980F983050F4877091E001C0990F68
553:1022800058F390E2980F983050F4877091E001C0B5 553:102280008A95EAF7892F0E94BA1ADFCF9BE5980F4B
554:10229000990F8A95EAF7892F0E94A11ADFCF9BE553 554:10229000933020F480E090E00C94380F885A83311A
555:1022A000980F933020F480E090E00C94410F885A0E 555:1022A00020F480E090E00C944E0F0895882321F0F4
556:1022B000833120F480E090E00C94570F0895882338 556:1022B0000E94B41A0C94071B0895882321F00E94F1
557:1022C00021F00E949B1A0C94E41A0895882321F0AF 557:1022C000BA1A0C94071B08958F929F92AF92BF92F7
558:1022D0000E94A11A0C94E41A0895CF92DF92EF9213 558:1022D000CF92DF92EF92FF920F931F93CF93DF93F2
559:1022E000FF920F931F93CF93DF93CDB7DEB728975D 559:1022E00000D000D01F92CDB7DEB77C0185E0F701AA
560:1022F0000FB6F894DEBF0FBECDBF8C0185E0F801AC 560:1022F000DE01119601900D928A95E1F7F701D080E9
561:10230000DE01119601900D928A95E1F7F801D080D7 561:1023000011810281B580B2942FE0B2222381348101
562:10231000E180F280558152955F7023813481232BB7 562:10231000232B39F01F3F39F481E0FFEFDF1203C0B8
563:1023200039F0FFEFEF1206C081E0DF1203C003C0F7 563:1023200003C081E001C080E080FD5DC20E94CB1946
564:1023300081E001C080E080FDE2C2C8015F830E94AD 564:10233000882319F082E00E940E1AC7010E943E1005
565:102340004710D982EA8269817A818F2D0E94161AFC 565:10234000D9821A8369817A81802F0E949119182F6E
566:102350009E8388870E94CA190E949D184E815F81C2 566:10235000C92E0E9445190E94181801110E94D11A15
567:102360006885FF2029F00E94B81A68855F814E8138 567:102360000E94291A882379F0002369F080E2810F06
568:10237000E42FE295EF70F0E0E05AFF4F0C94BB239E 568:10237000883048F082E00E940E1A0E94291ADD245B
569:10238000842F807F142F1F70882311F01295107FE7 569:10238000D394D82601C0D12CEC2DE295EF70F0E06B
570:10239000FF20B1F0112309F467C280E2860F883074 570:10239000E05AFF4F0C94A3238C2D807F9C2D9F70BF
571:1023A00028F4812F68870E949B1A04C0812F6887B8 571:1023A000B92E882319F0B29490EFB922002389F056
572:1023B0000E94AB1A688568870E94E41A688554C237 572:1023B000BB2009F4DAC180E2810F883020F48B2D34
573:1023C000862F68870E9410116885112309F497C22F 573:1023C0000E94B41A03C08B2D0E94C41A0E94071BDE
574:1023D000605E812F683018F40E94A11A02C00E942A 574:1023D000CCC1812F0E940711BB2009F4E0C1105E1F
575:1023E000B11A28960FB6F894DEBF0FBECDBFDF91AD 575:1023E0008B2D183018F40E94BA1A02C00E94CA1A23
576:1023F000CF911F910F91FF90EF90DF90CF900C94B1 576:1023F0000E94071BD4C18C2D807F9C2D9F70A92E1D
577:10240000E41A242F207F842F8F70203211F08295C0 577:10240000803219F0A29480EFA822112319F0113024
578:10241000807F662319F0613019F12BC0FF20B1F0E5 578:1024100049F132C0002391F0BB2091F181E0B81264
579:10242000552309F493C1513009F090C128960FB695 579:1024200004C08A2D0E94E41ABAC192E0B91228C0F1
580:10243000F894DEBF0FBECDBFDF91CF911F910F91FA 580:102430000E94ED1A8A2D0E94981922C0BB2079F0C3
581:10244000FF90EF90DF90CF900C94CB1A552319F0AA 581:10244000E1E0BE1208C00E94B11A8A2109F4A7C1B6
582:10245000513009F454C28E830E94CE1A8E8189C1F4 582:102450000E949B1904C0F2E0BF1609F4A0C10E94BB
583:10246000FF2021F0523008F04AC270C1511147C21A 583:10246000ED1A12C0002329F081E08B1508F497C102
584:1024700080C1FF2021F0552309F468C1F5C155231F 584:1024700007C0B11094C108C0002321F0B11075C18C
585:1024800009F477C105C2242F26952695237030E0E4 585:102480008A2DEFC0B11078C18A2DF1C02C2D269570
586:102490002115310521F021303105C9F030C2FF206E 586:102490002695237030E02115310521F021303105DA
587:1024A00021F0862F942F937002C080E090E0289650 587:1024A00061F07DC1002321F0812F9C2D937002C02B
588:1024B0000FB6F894DEBF0FBECDBFDF91CF911F9155 588:1024B00080E090E00E94380F72C1002321F0812F4C
589:1024C0000F91FF90EF90DF90CF900C94410FFF2081 589:1024C0009C2D937002C080E090E00E944E0F67C187
590:1024D00021F0862F942F937002C080E090E0289620 590:1024D000812F002319F00E94B11E02C00E94191F13
591:1024E0000FB6F894DEBF0FBECDBFDF91CF911F9125 591:1024E0000E949E1F5CC18C2D837009F04FC00111AA
592:1024F0000F91FF90EF90DF90CF900C94570F862FA5 592:1024F00056C1212F229526952770220F220F812F5A
593:10250000FF2019F00E945E1E02C00E94C61E28967F 593:102500008F70882E912CA12CB12C022E04C0880C27
594:102510000FB6F894DEBF0FBECDBFDF91CF911F91F4 594:10251000991CAA1CBB1C0A94D2F714FF10C06FE0D0
595:102520000F91FF90EF90DF90CF900C944B1F842F72 595:1025200070E080E090E004C0660F771F881F991F5D
596:10253000837009F076C0F110E2C1262F229526950E 596:102530002A95D2F7609570958095909503C060E0DC
597:102540002770220F220F862F8F70C82ED12CE12CDE 597:1025400070E0CB012C2D269526952370422F50E06C
598:10255000F12C022E04C0CC0CDD1CEE1CFF1C0A94D6 598:102550004230510569F04330510589F068297929E5
599:10256000D2F764FF10C06FE070E080E090E004C03C 599:102560008A299B294130510571F00E943D1817C1FD
600:10257000660F771F881F991F2A95D2F7609570956F 600:10257000682979298A299B290E94571810C10E942D
601:102580008095909503C060E070E0CB01242F2695E4 601:102580003D18C501B4010E94231809C1002319F0A8
602:1025900026952370422F50E042305105D1F0433050 602:102590008C2D817001C08695882309F400C1212FFC
603:1025A000510559F16C297D298E299F29413051050A 603:1025A000229526952770220F220F812F8F70882E5B
604:1025B00041F128960FB6F894DEBF0FBECDBFDF9174 604:1025B000912CA12CB12C022E04C0880C991CAA1CB1
605:1025C000CF911F910F91FF90EF90DF90CF900C94DF 605:1025C000BB1C0A94D2F714FF10C06FE070E080E0EB
606:1025D000C2186C297D298E299F2928960FB6F89458 606:1025D00090E004C0660F771F881F991F2A95D2F7D5
607:1025E000DEBF0FBECDBFDF91CF911F910F91FF9046 607:1025E000609570958095909503C060E070E0CB0198
608:1025F000EF90DF90CF900C94DC180E94C218C701B6 608:1025F0002C2D269526952370422F50E04230510510
609:10260000B60128960FB6F894DEBF0FBECDBFDF919E 609:1026000069F04330510589F0682979298A299B2985
610:10261000CF911F910F91FF90EF90DF90CF900C948E 610:102610004130510571F00E941119C1C06829792912
611:10262000A818FF2019F0842F817001C08695882397 611:102620008A299B290E942B19BAC00E941119C50141
612:1026300009F465C1262F229526952770220F220FB7 612:10263000B4010E94F718B3C0412F50E0FA01E05EE8
613:10264000862F8F70C82ED12CE12CF12C022E04C0C5 613:10264000F109E531F10508F08BC0E059FF4F0C941A
614:10265000CC0CDD1CEE1CFF1C0A94D2F764FF10C0EA 614:10265000A3231F708C2D8F71002331F00E949018DE
615:102660006FE070E080E090E004C0660F771F881F85 615:10266000812F0E9456119BC00E94B118812F0E9499
616:10267000991F2A95D2F7609570958095909503C023 616:102670005D1195C0002339F0B11091C08C2D8F7180
617:1026800060E070E0CB01242F269526952370422F21 617:102680000E94D6188CC091E09B1508F488C0F6CF44
618:1026900050E042305105D1F04330510559F16C29D9 618:10269000002339F08C2D8F710E94901880C0002388
619:1026A0007D298E299F294130510541F128960FB689 619:1026A000C9F38C2D8F710E94B11879C0002329F0D5
620:1026B000F894DEBF0FBECDBFDF91CF911F910F9178 620:1026B0008C2D8F710E947B1872C00E9471186FC0A0
621:1026C000FF90EF90DF90CF900C9496196C297D29A4 621:1026C0000023C9F00E9495190E94BA1A0E94C719E6
622:1026D0008E299F2928960FB6F894DEBF0FBECDBF76 622:1026D000843029F40E94071A8C2D8F7171C0E1E0BB
623:1026E000DF91CF911F910F91FF90EF90DF90CF90EE 623:1026E000EB1508F480C01C2D1F71812F0E949018DB
624:1026F0000C94B0190E949619C701B60128960FB61E 624:1026F00063E0812F0EC00E9495190E94B41AF1E088
625:10270000F894DEBF0FBECDBFDF91CF911F910F9127 625:10270000FB15D0F40E94071A0E949B1964E08C2DDF
626:10271000FF90EF90DF90CF900C947C19603FC9F14F 626:102710008F710F900F900F900F900F90DF91CF91CE
627:1027200018F4603E50F49BC0623F09F460C008F4A6 627:102720001F910F91FF90EF90DF90CF90BF90AF90EF
628:102730004AC0633F09F46FC092C0162F1F70842FE8 628:102730009F908F900C94F71981E00F900F900F905D
629:102740008F71FF2099F00E941519812F28960FB6DE 629:102740000F900F90DF91CF911F910F91FF90EF901D
630:10275000F894DEBF0FBECDBFDF91CF911F910F91D7 630:10275000DF90CF90BF90AF909F908F900C940E1A07
631:10276000FF90EF90DF90CF900C945F110E9436198C 631:10276000002339F0BB2009F495CF812F0E943F1040
632:10277000812F28960FB6F894DEBF0FBECDBFDF9134 632:1027700016C0BB2009F495CF812F0E9407110FC00E
633:10278000CF911F910F91FF90EF90DF90CF900C941D 633:102780004C2D4F70612FC7010E94A2020E94961724
634:102790006611FF20A1F05111B2C0842F8F712896CD 634:1027900006C04C2D4F70612FC7010E943C05DD2003
635:1027A0000FB6F894DEBF0FBECDBFDF91CF911F9162 635:1027A00011F10E94C71980FD1EC0F70112820E941C
636:1027B0000F91FF90EF90DF90CF900C945B19523007 636:1027B000C1190E949018C7010E9464110E94C1199A
637:1027C00008F09DC0EACFFF20A1F0842F8F712896DA 637:1027C0000F900F900F900F900F90DF91CF911F916E
638:1027D0000FB6F894DEBF0FBECDBFDF91CF911F9132 638:1027D0000F91FF90EF90DF90CF90BF90AF909F90C0
639:1027E0000F91FF90EF90DF90CF900C941519FF2080 639:1027E0008F900C94B1180F900F900F900F900F9046
640:1027F00061F3842F8F7128960FB6F894DEBF0FBE59 640:1027F000DF91CF911F910F91FF90EF90DF90CF90DD
641:10280000CDBFDF91CF911F910F91FF90EF90DF909F 641:10280000BF90AF909F908F9008950E94D11A0E9420
642:10281000CF900C943619FF2091F0842F8F71289659 642:10281000E11A0E94A31A0E94071B0E944A200E94EC
643:102820000FB6F894DEBF0FBECDBFDF91CF911F91E1 643:102820009E1F80E090E00E94380F80E090E00C94C2
644:102830000F91FF90EF90DF90CF900C9400192896A5 644:102830004E0F0E94C11A0C9405140E948619292F6C
645:102840000FB6F894DEBF0FBECDBFDF91CF911F91C1 645:1028400022952F7030E02C3031054CF42A303105C0
646:102850000F91FF90EF90DF90CF900C94F618FF202F 646:102850006CF42250310922303105B0F407C02C301D
647:10286000A1F0552309F4B1CF862F28960FB6F8941E 647:10286000310571F02F30310559F00EC0803F31F045
648:10287000DEBF0FBECDBFDF91CF911F910F91FF90B3 648:1028700018F4803E48F402C0843F31F481E00895AA
649:10288000EF90DF90CF900C944810552309F4B1CF0E 649:1028800093FB882780F9089580E00895CF93DF9324
650:10289000862F28960FB6F894DEBF0FBECDBFDF910E 650:1028900000D000D01F92CDB7DEB70F900F900F90F1
651:1028A000CF911F910F91FF90EF90DF90CF900C94FC 651:1028A0000F900F90DF91CF910895CF93DF9300D0D9
652:1028B00010114F70C8010E94AB0228960FB6F89411 652:1028B00000D000D0CDB7DEB726960FB6F894DEBFB5
653:1028C000DEBF0FBECDBFDF91CF911F910F91FF9063 653:1028C0000FBECDBFDF91CF9108951F93CF93DF93BC
654:1028D000EF90DF90CF900C941B184F70C801289692 654:1028D000C091790116E080917A01C81799F0D0E093
655:1028E0000FB6F894DEBF0FBECDBFDF91CF911F9121 655:1028E0001C9FF0011D9FF00D1124E558FE4F408103
656:1028F0000F91FF90EF90DF90CF900C944C052896AD 656:1028F000518162817381848195810E945514219652
657:102900000FB6F894DEBF0FBECDBFDF91CF911F9100 657:10290000C770E9CFDF91CF911F9108954091AB013E
658:102910000F91FF90EF90DF90CF9008950E94B81A2A 658:102910005091AC016091AD017091AE018091AF0119
659:102920000E94C81A0E948D1A0E94E41A0E94F71F82 659:102920009091B0010C945514CF938091B001829591
660:102930000E944B1F80E090E00E94410F80E090E0F9 660:102930008F7009F05FC08091AD01882309F45AC0FF
661:102940000C94570F0E94A81A0C948E140E940B1A14 661:1029400020917901A0917A016091AB017091AC0165
662:10295000292F22952F7030E02C3031054CF42A308D 662:102950008091AE019091AF0131E06F3F09F030E01E
663:1029600031056CF4225031092230310590F407C052 663:10296000B32FC6E02A1709F445C0009721F07F3F36
664:102970002C30310551F02F30310539F00AC0803E3E 664:1029700021F44B2F03C041E001C040E030E040FDB6
665:1029800010F0803F31F481E0089593FB882780F9AF 665:1029800035C0C29FF001C39FF00D1124E558FE4FE2
666:10299000089580E00895CF93DF9300D000D01F9278 666:10299000418174132BC04081641328C042814111CE
667:1029A000CDB7DEB70F900F900F900F900F90DF9183 667:1029A00025C0438154814817590710F441505109FB
668:1029B000CF910895CF93DF9300D000D000D0CDB752 668:1029B000481B590B483C5105C8F48091B0018F70F9
669:1029C000DEB726960FB6F894DEBF0FBECDBFDF91FF 669:1029C00080618093B00186E0829FF001839FF00DCB
670:1029D000CF9108951F93CF93DF93C0917B0116E0B1 670:1029D0001124E058FE4F80818F70806180838BEAE4
671:1029E00080917C01C81799F0D0E01C9FF0011D9FD9 671:1029E00091E00E946411CF910C9465142F5F3F4FCA
672:1029F000F00D1124E358FE4F4081518162817381B3 672:1029F0002770B8CFCF910895CF92DF92EF92FF92D8
673:102A0000848195810E94DA142196C770E9CFDF9105 673:102A00000F931F93CF93DF93CDB7DEB762970FB6C7
674:102A1000CF911F9108954091AD015091AE01609109 674:102A1000F894DEBF0FBECDBF8C0185E0F801DE016A
675:102A2000AF017091B0018091B1019091B2010C940D 675:102A20001D9601900D928A95E1F7D8014C9111966F
676:102A3000DA14CF938091B20182958F7009F05FC054 676:102A30005C91119712966C9112971396ED90FC9001
677:102A40008091AF01882309F45AC020917B01A091A5 677:102A400014977091AB01E091AC012091AE013091EF
678:102A50007C016091AD017091AE018091B0019091C7 678:102A5000AF012115310531F0EF3F31F481E07F3FC7
679:102A6000B10131E06F3F09F030E0B32FC6E02A1723 679:102A600019F403C081E001C080E0B82FB170CB2E13
680:102A700009F445C0009721F07F3F21F44B2F03C09C 680:102A700080FD6CC1D090AD01DD2009F4F5C0F0916E
681:102A800041E001C040E030E040FD35C0C29FF001B0 681:102A8000B001E216F30638F0C701821B930B883CB5
682:102A9000C39FF00D1124E358FE4F418174132BC0E6 682:102A9000910548F09BC0209530952E0D3F1D283C98
683:102AA0004081641328C04281411125C04381548173 683:102AA000310508F093C08F2F807F09F052C0E513E5
684:102AB0004817590710F441505109481B590B483C1D 684:102AB00014C0741312C0D62E61110FC0FF70F061E4
685:102AC0005105C8F48091B2018F7080618093B2018A 685:102AC000F093B0010E9486148BEA91E00E94641199
686:102AD00086E0829FF001839FF00D1124EE57FE4F98 686:102AD0008091B001F80185836CC1EF2831F05F3F30
687:102AE00080818F70806180838DEA91E00E946D11FA 687:102AE00031F481E04F3F19F403C081E001C080E080
688:102AF000CF910C94EA142F5F3F4F2770B8CFCF913E 688:102AF00080FD03C081E0862701C080E0F82FF170DF
689:102B00000895CF92DF92EF92FF920F931F93CF938E 689:102B0000FF2E80FF1CC08091790120917A0136E070
690:102B1000DF93CDB7DEB762970FB6F894DEBF0FBE76 690:102B1000821709F428C190E0389FF001399FF00D29
691:102B2000CDBF8C0185E0F801DE011D9601900D926C 691:102B20001124E558FE4F7181571306C07081471379
692:102B30008A95E1F7D8014C9111965C911197129604 692:102B300003C07281671303C001968770E9CFD62E58
693:102B40006C9112971396ED90FC9014977091AD01D3 693:102B4000662309F436C18091B00181608093B001A1
694:102B5000E091AE012091B0013091B1012115310514 694:102B500053C0E51308C0741306C0611104C0D80146
695:102B600031F0EF3F31F481E07F3F19F403C081E0A1 695:102B60001596FC93AEC04D875E878D859E856A8BDA
696:102B700001C080E0B82FB170CB2E80FD6CC1D09029 696:102B70000E941D146A89882329F1D62E662311F13B
697:102B8000AF01DD2009F4F5C0F091B201E216F306C1 697:102B80002091B001822F82958F7090E002970CF413
698:102B900038F0C701821B930B883C910548F09BC01D 698:102B900060C08091AB019091AC0198878F831986BA
699:102BA000209530952E0D3F1D283C310508F093C02F 699:102BA000FB86EA862C87CE01079651C0E51731F1E6
700:102BB0008F2F807F09F052C0E51314C0741312C028 700:102BB0004D875E878D859E856A8B0E941D146A896C
701:102BC000D62E61110FC0FF70F061F093B2010E9428 701:102BC00081112EC0C8010E946411A4C08F2F807F84
702:102BD0000B158DEA91E00E946D118091B201F80110 702:102BD00069F77E2DF98AE88A89890E9446148BEA72
703:102BE00085836CC1EF2831F05F3F31F481E04F3FC6 703:102BE00091E00E946411EBEAF1E086E0DF011D92C2
704:102BF00019F403C081E001C080E080FD03C081E0E2 704:102BF0008A95E9F70E948614D12CDBC07413D8CFD4
705:102C0000862701C080E0F82FF170FF2E80FF1CC0E6 705:102C00006111D6CFD8011596FC93C8010E946411BA
706:102C100080917B0120917C0136E0821709F428C164 706:102C1000EBEAF1E086E0DF011D928A95E9F7C9C091
707:102C200090E0389FF001399FF00D1124E358FE4FDA 707:102C2000D62E662379F22091B001822F82958F7083
708:102C30007181571306C07081471303C072816713F7 708:102C300090E0029774F08091AB019091AC019A837F
709:102C400003C001968770E9CFD62E662309F436C1FA 709:102C400089831B82FD82EC822E83CE0101960E9435
710:102C50008091B20181608093B20153C0E51308C036 710:102C5000641186E0F801ABEAB1E001900D928A952B
711:102C6000741306C0611104C0D8011596FC93AEC060 711:102C6000E1F70E9494146FC0E216F30628F0C70142
712:102C70004D875E878D859E856A8B0E94A6146A8922 712:102C7000821B930B9C0104C0209530952E0D3F1DA7
713:102C8000882329F1D62E662311F12091B201822FDB 713:102C8000283C310508F052C0D62E662309F49ACFAD
714:102C900082958F7090E002970CF460C08091AD0136 714:102C9000E5132CC074132AC08091B00180FD1DC0C3
715:102CA0009091AE0198878F831986FB86EA862C87E0 715:102CA000982F92959F70C9F0D80115968C9315971F
716:102CB000CE01079651C0E51731F14D875E878D85AE 716:102CB0009F3039F09F5F9295907F8F70892B15968A
717:102CC0009E856A8B0E94A6146A8981112EC0C80154 717:102CC0008C93C8010E94641186E0F801ABEAB1E080
718:102CD0000E946D11A4C08F2F807F69F77E2DF98A25 718:102CD00001900D928A95E1F736C086E0F801ABEAE3
719:102CE000E88A89890E94CB148DEA91E00E946D11D7 719:102CE000B1E001900D928A95E1F763C04D875E8750
720:102CF000EDEAF1E086E0DF011D928A95E9F70E9496 720:102CF0008D859E850E941D14882379F086E0F80159
721:102D00000B15D12CDBC07413D8CF6111D6CFD801ED 721:102D0000ABEAB1E001900D928A95E1F70E9494142C
722:102D10001596FC93C8010E946D11EDEAF1E086E082 722:102D10000E948614DD24D3944CC08091B001816060
723:102D2000DF011D928A95E9F7C9C0D62E662379F294 723:102D20008093B001C8010E94641143C07E2DF98ACE
724:102D30002091B201822F82958F7090E0029774F0FB 724:102D3000E88A89890E944614EBEAF1E086E0DF0127
725:102D40008091AD019091AE019A8389831B82FD82AF 725:102D40001D928A95E9F70E94861433C0662309F420
726:102D5000EC822E83CE0101960E946D1186E0F8016F 726:102D500039CF4D875E878D859E850E941D148823FF
727:102D6000ADEAB1E001900D928A95E1F70E94191544 727:102D600009F430CFCBCF4D875E878D859E850E943D
728:102D70006FC0E216F30628F0C701821B930B9C017B 728:102D70008619292F22952F7030E0223031052CF44E
729:102D800004C0209530952E0D3F1D283C310508F0DC 729:102D80009F7041F0811106C00CC0243031052CF435
730:102D900052C0D62E662309F49ACFE5132CC07413C3 730:102D90009F7049F4805E883020F0C8010E94641161
731:102DA0002AC08091B20180FD1DC0982F92959F701E 731:102DA000CF2CDC2C06C0D80115969C91907F91F712
732:102DB000C9F0D80115968C9315979F3039F09F5F15 732:102DB000F8CF8D2D62960FB6F894DEBF0FBECDBF53
733:102DC0009295907F8F70892B15968C93C8010E94E5 733:102DC000DF91CF911F910F91FF90EF90DF90CF9007
734:102DD0006D1186E0F801ADEAB1E001900D928A959F 734:102DD00008951F93CF93DF93CDB7DEB72C970FB62F
735:102DE000E1F736C086E0F801ADEAB1E001900D925E 735:102DE000F894DEBF0FBECDBF4F83588769877A87BF
736:102DF0008A95E1F763C04D875E878D859E850E9429 736:102DF0008B879C87CE0107960E94FC148823C1F024
737:102E0000A614882379F086E0F801ADEAB1E00190DC 737:102E00002F8138858A859B85892B31F03F3F11F0D2
738:102E10000D928A95E1F70E9419150E940B15DD2489 738:102E100080E003C02F3FE1F781E0811147C04F817F
739:102E2000D3944CC08091B20181608093B201C801FB 739:102E2000588569857A858B859C850E9455143EC09E
740:102E30000E946D1143C07E2DF98AE88A89890E941B 740:102E300086E0FE013796DE01119601900D928A958B
741:102E4000CB14EDEAF1E086E0DF011D928A95E9F707 741:102E4000E1F7FF81E8854A855B854115510531F041
742:102E50000E940B1533C0662309F439CF4D875E8776 742:102E5000EF3F31F481E0FF3F19F403C081E001C08E
743:102E60008D859E850E94A614882309F430CFCBCF90 743:102E600080E080FD23C020917A0130E0C901019605
744:102E70004D875E878D859E850E940B1A292F22958E 744:102E7000877099276091790170E086179707F1F1C3
745:102E80002F7030E0223031052CF49F7041F0811119 745:102E8000F983EA835D834C8396E0929FD001939F00
746:102E900006C00CC0243031052CF49F7049F4805ECC 746:102E9000B00D1124A558BE4FFE01319601900D9240
747:102EA000883020F0C8010E946D11CF2CDC2C06C0A8 747:102EA0009A95E1F780937A010E94651416E080916B
748:102EB000D80115969C91907F91F7F8CF8D2D629651 748:102EB000790190917A01891779F1189FC001112445
749:102EC0000FB6F894DEBF0FBECDBFDF91CF911F913B 749:102EC00085589E4F0E94FC14882331F1E0917901CE
750:102ED0000F91FF90EF90DF90CF9008951F93CF93C5 750:102ED0001E9FF0011124E558FE4F4081518162810F
751:102EE000DF93CDB7DEB72C970FB6F894DEBF0FBED9 751:102EE0007381848195810E9455148091790190E0CD
752:102EF000CDBF4F83588769877A878B879C87CE01A0 752:102EF00001968770992780937901D9CF0E94191480
753:102F000007960E9481158823C1F02F8138858A8514 753:102F000010927A0110927901EBEAF1E086E0DF019C
754:102F10009B85892B31F03F3F11F080E003C02F3FAC 754:102F10001D928A95E9F7CACF2C960FB6F894DEBFBA
755:102F2000E1F781E0811147C04F81588569857A8535 755:102F20000FBECDBFDF91CF911F910895EF92FF9219
756:102F30008B859C850E94DA143EC086E0FE013796A0 756:102F30000F931F93CF93DF939C01009709F471C007
757:102F4000DE01119601900D928A95E1F7FF81E885E7 757:102F4000F12CEE24E394E9012196F9018491843770
758:102F50004A855B854115510531F0EF3F31F481E041 758:102F500040F4843008F056C0813081F0823021F195
759:102F6000FF3F19F403C081E001C080E080FD23C071 759:102F600060C0853709F449C0C0F19CE7980F9037DD
760:102F700020917C0130E0C90101968770992760910A 760:102F700008F057C08F770E94071146C089010E5F85
761:102F80007B0170E086179707F1F1F983EA835D838F 761:102F80001F4FFE01849190E2980F983050F48770A3
762:102F90004C8396E0929FD001939FB00D1124A358CB 762:102F9000FE2D01C0FF0F8A95EAF78F2F0E94D41AE9
763:102FA000BE4FFE01319601900D929A95E1F7809304 763:102FA00015C00E943F1014C089010E5F1F4FFE0123
764:102FB0007C010E94EA1416E080917B0190917C01D3 764:102FB000849190E2980F983068F48770FE2D01C0DC
765:102FC000891779F1189FC001112483589E4F0E94E0 765:102FC000FF0F8A95EAF78F2F0E94DA1A0E94071BDB
766:102FD0008115882331F1E0917B011E9FF0011124BE 766:102FD000E8011AC00E940711FBCF2E5F3F4FFE0190
767:102FE000E358FE4F408151816281738184819581D4 767:102FE000C491CC2341F08FE99FE00197F1F700C035
768:102FF0000E94DA1480917B0190E0019687709927F6 768:102FF0000000C150F6CFE90107C0FE01F490E901DD
769:1030000080937B01D9CF0E94A21410927C01109270 769:10300000229602C00E943F108F2D882341F0EFE9E5
770:103010007B01EDEAF1E086E0DF011D928A95E9F798 770:10301000FFE03197F1F700C000008150F6CF9E012C
771:10302000CACF2C960FB6F894DEBF0FBECDBFDF918E 771:1030200092CFDF91CF911F910F91FF90EF90089574
772:10303000CF911F910895EF92FF920F931F93CF931B 772:1030300008956093B5017093B6018093B7019093A2
773:10304000DF939C01009709F471C0F12CEE24E39406 773:10304000B8010C9405140F931F930091B5011091D2
774:10305000E9012196F9018491843740F4843008F025 774:10305000B6012091B7013091B801062B172B282B10
775:1030600056C0813081F0823021F160C0853709F48B 775:10306000392B0093B5011093B6012093B70130932B
776:1030700049C0C0F19CE7980F903708F057C08F7790 776:10307000B8011F910F910C9405140F931F930091A9
777:103080000E94101146C089010E5F1F4FFE018491FE 777:10308000B5011091B6012091B7013091B801062326
778:1030900090E2980F983050F48770FE2D01C0FF0F1A 778:103090001723282339230093B5011093B6012093F9
779:1030A0008A95EAF78F2F0E94BB1A15C00E9448101C 779:1030A000B7013093B8011F910F910C9405140F9341
780:1030B00014C089010E5F1F4FFE01849190E2980FAA 780:1030B0001F930091B5011091B6012091B701309195
781:1030C000983068F48770FE2D01C0FF0F8A95EAF7EB 781:1030C000B80106271727282739270093B501109341
782:1030D0008F2F0E94C11A0E94E41AE8011AC00E94B0 782:1030D000B6012093B7013093B8011F910F910C9462
783:1030E0001011FBCF2E5F3F4FFE01C491CC2341F066 783:1030E00005141092B1011092B2011092B301109226
784:1030F0008FE99FE00197F1F700C00000C150F6CFC3 784:1030F000B4010C94051441E050E060E070E004C0BD
785:10310000E90107C0FE01F490E901229602C00E9485 785:10310000440F551F661F771F8A95D2F74093B10170
786:1031100048108F2D882341F0EFE9FFE03197F1F758 786:103110005093B2016093B3017093B4010C94051401
787:1031200000C000008150F6CF9E0192CFDF91CF9179 787:1031200041E050E060E070E004C0440F551F661FAE
788:103130001F910F91FF90EF90089508956093B7014C 788:10313000771F8A95D2F78091B1019091B201A09149
789:103140007093B8018093B9019093BA010C948E14D6 789:10314000B301B091B401842B952BA62BB72B8093A0
790:103150000F931F930091B7011091B8012091B9010D 790:10315000B1019093B201A093B301B093B4010C9468
791:103160003091BA01062B172B282B392B0093B7016E 791:10316000051441E050E060E070E004C0440F551FDA
792:103170001093B8012093B9013093BA011F910F91B8 792:10317000661F771F8A95D2F7409550956095709598
793:103180000C948E140F931F930091B7011091B80106 793:103180008091B1019091B201A091B301B091B401CD
794:103190002091B9013091BA0106231723282339233E 794:1031900084239523A623B7238093B1019093B20192
795:1031A0000093B7011093B8012093B9013093BA018D 795:1031A000A093B301B093B4010C94051441E050E036
796:1031B0001F910F910C948E140F931F930091B701E0 796:1031B00060E070E004C0440F551F661F771F8A95BA
797:1031C0001091B8012091B9013091BA010627172753 797:1031C000D2F78091B1019091B201A091B301B09179
798:1031D000282739270093B7011093B8012093B9012C 798:1031D000B40184279527A627B7278093B101909340
799:1031E0003093BA011F910F910C948E141092B30179 799:1031E000B201A093B301B093B4010C9405140F93F2
800:1031F0001092B4011092B5011092B6010C948E1485 800:1031F0001F930091B1011091B2012091B301309160
801:1032000041E050E060E070E004C0440F551F661FCD 801:10320000B401062B172B282B392B0093B1011093F7
802:10321000771F8A95D2F74093B3015093B40160931E 802:10321000B2012093B3013093B4011F910F910C942C
803:10322000B5017093B6010C948E1441E050E060E05B 803:1032200005140F931F930091B1011091B2012091E9
804:1032300070E004C0440F551F661F771F8A95D2F7B0 804:10323000B3013091B40106231723282339230093C7
805:103240008091B3019091B401A091B501B091B60104 805:10324000B1011093B2012093B3013093B4011F91E7
806:10325000842B952BA62BB72B8093B3019093B401AD 806:103250000F910C9405140F931F930091B1011091DD
807:10326000A093B501B093B6010C948E1441E050E0E8 807:10326000B2012091B3013091B40106271727282716
808:1032700060E070E004C0440F551F661F771F8A95F9 808:1032700039270093B1011093B2012093B301309329
809:10328000D2F740955095609570958091B3019091DB 809:10328000B4011F910F910C9405140895CF92DF9211
810:10329000B401A091B501B091B60184239523A62372 810:10329000EF92FF920F931F93CF93DF93EC01C090B7
811:1032A000B7238093B3019093B401A093B501B09379 811:1032A000B501D090B601E090B701F090B8018091DF
812:1032B000B6010C948E1441E050E060E070E004C070 812:1032B000B1019091B201A091B301B091B401C82ABB
813:1032C000440F551F661F771F8A95D2F78091B3016F 813:1032C000D92AEA2AFB2A0FE110E0B701A601002E55
814:1032D0009091B401A091B501B091B60184279527D2 814:1032D00004C076956795579547950A94D2F740FDB7
815:1032E000A627B7278093B3019093B401A093B501AB 815:1032E00005C00150110988F780E007C0BE01802F9A
816:1032F000B093B6010C948E140F931F930091B301F9 816:1032F0000E9489070197A9F3802FDF91CF911F9139
817:103300001091B4012091B5013091B601062B172B15 817:103300000F91FF90EF90DF90CF900895CF93DF93D0
818:10331000282B392B0093B3011093B4012093B501EE 818:10331000EC010E944619BE010E948907DF91CF91FE
819:103320003093B6011F910F910C948E140F931F933D 819:103320000895CB010E94861908958091BE010895E9
820:103330000091B3011091B4012091B5013091B60113 820:103330008093BE0108951092BE0108950E94081C5A
821:1033400006231723282339230093B3011093B401D4 821:103340002091BC013091BD018217930750F00E947B
822:103350002093B5013093B6011F910F910C948E14F8 822:10335000081C2091BC013091BD01821B930B9C0184
823:103360000F931F930091B3011091B4012091B50107 823:103360000AC00E94081C2091BC013091BD0120952B
824:103370003091B60106271727282739270093B30174 824:103370003095280F391F81E0283B3B4008F480E05E
825:103380001093B4012093B5013093B6011F910F91B2 825:1033800008958091BB0185958595859508958091D7
826:103390000C948E140895CF92DF92EF92FF920F93C8 826:10339000BB01877008950E94081C2091B9013091EB
827:1033A0001F93CF93DF93EC01C090B701D090B80189 827:1033A000BA018217930768F00E94081C2091B901A6
828:1033B000E090B901F090BA018091B3019091B4010D 828:1033B0003091BA01821B930B883B9B4078F480E0EC
829:1033C000A091B501B091B601C82AD92AEA2AFB2AF0 829:1033C00014C00E94081C2091B9013091BA012095C7
830:1033D0000FE110E0B701A601002E04C076956795B5 830:1033D0003095280F391F283B3B4088F38091BB0173
831:1033E000579547950A94D2F740FD05C00150110941 831:1033E00082FB882780F991E089278170089598E011
832:1033F00088F780E007C0BE01802F0E9489070197EF 832:1033F000899F90011124622B6093BB010E94901859
833:10340000A9F3802FDF91CF911F910F91FF90EF9043 833:103400000E94081C9093BA018093B901089510920C
834:10341000DF90CF900895CF93DF93EC010E94CB19FA 834:10341000BB011092BA011092B90108954091BB010D
835:10342000BE010E948907DF91CF910895CB010E94D0 835:10342000809584238093BB01982F977089F450E096
836:103430000B1A089590910C019923D9F090910D01E8 836:10343000282F332727FD30954217530749F08595EC
837:103440009923B9F0982F9695969596959F3088F583 837:10344000859585950E94B1181092BA011092B90124
838:10345000E0910E01F0910F01E90FF11D877021E05D 838:1034500008959091BB01977081E009F480E0089590
839:1034600030E001C0220F8A95EAF78181822B8183A7 839:1034600090910C019923D9F090910D019923B9F015
840:10347000089540910E0150910F0120E030E09FEF40 840:10347000982F9695969596959F3088F5E0910E0138
841:10348000FA01E20FF31F6281681799F09F3F19F468 841:10348000F0910F01E90FF11D877021E030E001C0DC
842:10349000611101C0922F2F5F3F4F2E30310581F710 842:10349000220F8A95EAF78181822B818308954091DA
843:1034A0009F3F39F0FA01E90FF11D97FDFA958283EC 843:1034A0000E0150910F0120E030E09FEFFA01E20F92
844:1034B0000895089590910C019923E1F090910D01E8 844:1034B000F31F6281681799F09F3F19F4611101C0F1
845:1034C0009923C1F0982F9695969596959F3020F563 845:1034C000922F2F5F3F4F2E30310581F79F3F39F00C
846:1034D000E0910E01F0910F01E90FF11D877021E0DD 846:1034D000FA01E90FF11D97FDFA9582830895089589
847:1034E00030E001C0220F8A95EAF7209581812823D8 847:1034E00090910C019923E1F090910D019923C1F085
848:1034F0002183089540910E0150910F0120E030E0AA 848:1034F000982F9695969596959F3020F5E0910E0120
849:10350000FA01E20FF31F9281981301C012822F5F1C 849:10350000F0910F01E90FF11D877021E030E001C05B
850:103510003F4F2E303105A1F7089581E090E0E09112 850:10351000220F8A95EAF72095818128232183089537
851:103520000E01F0910F01E80FF91F10820196803112 851:1035200040910E0150910F0120E030E0FA01E20FCE
852:103530009105A9F708959091CE01982B9093CE0113 852:10353000F31F9281981301C012822F5F3F4F2E30EC
853:10354000089580959091CE0198239093CE0108958F 853:103540003105A1F7089581E090E0E0910E01F0913E
854:103550001092CE0108959091CD01982B9093CD01BA 854:103550000F01E80FF91F1082019680319105A9F73C
855:10356000089580959091CD0198239093CD01089571 855:1035600008958091D20108959091D201982B909363
856:103570001092CD0108959091CC01982B9093CC019D 856:10357000D201089580959091D20198239093D20121
857:10358000089580959091CC0198239093CC01089553 857:1035800008951092D20108959091D101982B9093B3
858:103590001092CC0108958093BB0108951092BB0155 858:10359000D101089580959091D10198239093D10104
859:1035A000089540910E0150910F0120E030E080E03D 859:1035A00008951092D10108959091D001982B909395
860:1035B000FA01E20FF31F918191118F5F2F5F3F4F4F 860:1035B000D001089580959091D00198239093D001E7
861:1035C0002F303105A9F70895E0910E01F0910F0118 861:1035C00008951092D00108958093BF010E94081CB5
862:1035D0008091CE018083E0910E01F0910F018081F6 862:1035D0009093BD018093BC0108951092BF01109299
863:1035E0009091CD01892B8083E0910E01F0910F0124 863:1035E000BD011092BC01089540910E0150910F0150
864:1035F00080819091CC01892B80839091BB0199238C 864:1035F00020E030E080E0FA01E20FF31F91819111A9
865:1036000061F0E0910E01F0910F018081892B8083A0 865:103600008F5F2F5F3F4F2F303105A9F70895E0916D
866:103610000E94D11A81111092BB0180910E019091EC 866:103610000E01F0910F018091D2018083E0910E01A3
867:103620000F010C942B0FCF92DF92EF92FF920F932A 867:10362000F0910F0180819091D101892B8083E091ED
868:103630001F936C01EE24FF24C114D104E104F104B2 868:103630000E01F0910F0180819091D001892B808340
869:1036400021F46B017C0180E001C080E133272F2D44 869:103640008091BF01882399F00E949E1981110E94E8
870:103650001E2D0D2D011511052105310519F0885F6D 870:10365000ED1AE0910E01F0910F0180819091BF0170
871:103660006801790197018601A4E0369527951795A1 871:10366000892B80830E94F41A81110E94ED1A8091A7
872:103670000795AA95D1F7011511052105310519F016 872:103670000E0190910F010C94220FCF92DF92EF92E6
873:103680008C5F6801790197018601F2E036952795F4 873:10368000FF920F931F936C01EE24FF24C114D10409
874:1036900017950795FA95D1F7011511052105310503 874:10369000E104F10421F46B017C0180E001C080E1D0
875:1036A00019F08E5F68017901B701A60176956795DB 875:1036A00033272F2D1E2D0D2D011511052105310557
876:1036B00057954795452B462B472B09F08F5F1F9158 876:1036B00019F0885F6801790197018601A4E03695C9
877:1036C0000F91FF90EF90DF90CF9008958091E601E9 877:1036C000279517950795AA95D1F70115110521059D
878:1036D000843021F11092D00120E488E190E00FB60F 878:1036D000310519F08C5F6801790197018601F2E0EC
879:1036E000F894A895809360000FBE2093600080E05E 879:1036E0003695279517950795FA95D1F70115110588
880:1036F0000E94240883B7817F846083BF83B7816081 880:1036F0002105310519F08E5F68017901B701A60136
881:1037000083BF7894889583B78E7F83BF88E10FB697 881:103700007695679557954795452B462B472B09F09E
882:10371000F89480936000109260000FBE08950895A1 882:103710008F5F1F910F91FF90EF90DF90CF900895F2
883:103720000895CF930E948F1B0E9458040E94901B03 883:103720008091E801843021F11092D40120E488E1F5
884:10373000C0E08C2F0E944505811105C0CF5FCE30BF 884:1037300090E00FB6F894A895809360000FBE209398
885:10374000C1F780E001C081E0CF9108950E94A214EA 885:10374000600080E00E94240883B7817F846083BF8B
886:103750000E941F0F0C94240882E084BD93E095BD65 886:1037500083B7816083BF7894889583B78E7F83BF5A
887:103760009AEF97BD80936E0008952FB7F8948091DB 887:1037600088E10FB6F89480936000109260000FBE5D
888:10377000D1019091D201A091D301B091D4012FBF7A 888:10377000089508950895CF930E94B91B0E944804AC
889:103780000895CF92DF92EF92FF920F931F932FB77E 889:103780000E94BA1BC0E08C2F0E943505811105C034
890:10379000F8944091D1015091D2016091D301709180 890:10379000CF5FCE30C1F780E001C081E0CF910895C6
891:1037A000D4012FBF6A017B01EE24FF248C0120E0AD 891:1037A0000E9419140E94160F0C9424081F920F9265
892:1037B00030E0C016D106E206F30610F4415051097C 892:1037B0000FB60F9211248F939F93AF93BF93809175
893:1037C000481B590BCA011F910F91FF90EF90DF909A 893:1037C000D401811113C08091D5019091D601A091AF
894:1037D000CF9008951F920F920FB60F9211248F93DE 894:1037D000D701B091D8014196A11DB11D8093D501AB
895:1037E0009F93AF93BF938091D1019091D201A0910B 895:1037E0009093D601A093D701B093D801BF91AF9128
896:1037F000D301B091D4010196A11DB11D8093D101D7 896:1037F0009F918F910F900FBE0F901F90189582E0B0
897:103800009093D201A093D301B093D401BF91AF9113 897:1038000084BD93E095BD9AEF97BD80936E000895B7
898:103810009F918F910F900FBE0F901F9018950E944F 898:103810002FB7F8948091D5019091D601A091D7014E
899:10382000250CF8942FEF87EA91E6215080409040D4 899:10382000B091D8012FBF0895CF92DF92EF92FF920F
900:10383000E1F700C0000087E090EBDC018093F0012D 900:103830000F931F932FB7F8944091D5015091D60163
901:103840009093F101A093F201B093F3012CE088E191 901:103840006091D7017091D8012FBF6A017B01EE24EE
902:1038500090E00FB6F894A895809360000FBE209377 902:10385000FF248C0120E030E0C016D106E206F3061A
903:103860006000FFCFEF92FF920F931F93CF93DF93F0 903:1038600010F441505109481B590BCA011F910F9187
904:10387000E82EF12C8F2D0E944505C0E0D0E0082FE6 904:10387000FF90EF90DF90CF9008951F920F920FB6B8
905:1038800010E098010C2E02C0359527950A94E2F7B6 905:103880000F9211248F939F93AF93BF938091D50193
906:1038900020FD05C02196C630D10599F709C06C2FCF 906:103890009091D601A091D701B091D8010196A11DB8
907:1038A0007F2D80E00E944D05E812F4CF81E005C035 907:1038A000B11D8093D5019093D601A093D701B09319
908:1038B000F3948EE0F812DECF80E0DF91CF911F917C 908:1038B000D801BF91AF919F918F910F900FBE0F9044
909:1038C0000F91FF90EF900895CF93C82F8CE20E9444 909:1038C0001F9018950E941C0CF8942FEF87EA91E640
910:1038D000321C882321F08C2FCF910C94321C80E075 910:1038D000215080409040E1F700C0000087E090EB6D
911:1038E000CF910895CF930E94B71D811102C00E940D 911:1038E000DC018093F2019093F301A093F401B09373
912:1038F0009D1DC5E6C15049F00E9458048FE39CE924 912:1038F000F5012CE088E190E00FB6F894A89580934C
913:103900000197F1F700C00000F5CF89E20E94641C26 913:1039000060000FBE20936000FFCFEF92FF920F93F5
914:10391000811111C18AE20E94641C81110E949D1DC7 914:103910001F93CF93DF93E82EF12C8F2D0E94350556
915:1039200085E00E94641C81110E940F1C0E94C21D30 915:10392000C0E0D0E0082F10E098010C2E02C03595C1
916:103930008093CF0187E00E94641C882399F18BE17A 916:1039300027950A94E2F720FD05C02196C630D105EF
917:103940000E94641C882351F09091CF0191FB88273D 917:1039400099F709C06C2F7F2D80E00E943D05E81299
918:1039500080F921E0822780FB91F922C08EE00E944D 918:10395000F4CF81E005C0F3948EE0F812DECF80E072
919:10396000641C882351F09091CF0192FB882780F945 919:10396000DF91CF911F910F91FF90EF900895CF932A
920:1039700021E0822780FB92F913C080E10E94641C41 920:10397000C82F8CE20E94851C882321F08C2FCF91C8
921:103980009091CF01882341F093FB882780F921E0B3 921:103980000C94851C80E0CF910895CF930E940A1E6D
922:10399000822780FB93F904C0892F809580FB90F9E2 922:10399000811102C00E94F01DC5E6C15049F00E948D
923:1039A0009093CF018091CF010E94C61D0E94D41D2B 923:1039A00048048FE39CE90197F1F700C00000F5CFD0
924:1039B0008093EF0180EE0E94641C882341F0809187 924:1039B00089E20E94B71C811111C18AE20E94B71CE2
925:1039C000EF01982F909590FB80F98093EF0189E3A8 925:1039C00081110E94F01D85E00E94B71C81110E94A8
926:1039D0000E94641C882359F09091EF0191FB882785 926:1039D000621C0E94151E8093D30187E00E94B71CD1
927:1039E00080F921E0822780FB91F99093EF0182EE2C 927:1039E000882399F18BE10E94B71C882351F09091B4
928:1039F0000E94641C882359F09091EF0192FB882764 928:1039F000D30191FB882780F921E0822780FB91F990
929:103A000080F921E0822780FB92F99093EF0186EE06 929:103A000022C08EE00E94B71C882351F09091D30110
930:103A10000E94641C882359F09091EF0193FB882742 930:103A100092FB882780F921E0822780FB92F913C06E
931:103A200080F921E0822780FB93F99093EF0183EEE8 931:103A200080E10E94B71C9091D301882341F093FB61
932:103A30000E94641C882359F09091EF0194FB882721 932:103A3000882780F921E0822780FB93F904C0892F31
933:103A400080F921E0822780FB94F99093EF0185E3D0 933:103A4000809580FB90F99093D3018091D3010E94DF
934:103A50000E94641C882359F09091EF0195FB882700 934:103A5000191E0E94271E8093F10180EE0E94B71C60
935:103A600080F921E0822780FB95F99093EF0181E3B3 935:103A6000882341F08091F101982F909590FB80F987
936:103A70000E94641C882359F09091EF0196FB8827DF 936:103A70008093F10189E30E94B71C882359F090914B
937:103A800080F921E0822780FB96F99093EF0181E194 937:103A8000F10191FB882780F921E0822780FB91F9E1
938:103A90000E94641C882359F09091EF0197FB8827BE 938:103A90009093F10182EE0E94B71C882359F0909117
939:103AA00080F921E0822780FB97F99093EF018091C4 939:103AA000F10192FB882780F921E0822780FB92F9BF
940:103AB000EF010E94D81D8091EF0187FB882780F9D4 940:103AB0009093F10186EE0E94B71C882359F09091F3
941:103AC00080930D0187E20E94641CC82F8EE10E9442 941:103AC000F10193FB882780F921E0822780FB93F99D
942:103AD000641C8111C2608FE10E94641C8111C4606A 942:103AD0009093F10183EE0E94B71C882359F09091D6
943:103AE00080E20E94641C8111C86081E20E94641C13 943:103AE000F10194FB882780F921E0822780FB94F97B
944:103AF0008111C06182E20E94641C8111C06283E274 944:103AF0009093F10185E30E94B71C882359F09091BF
945:103B00000E94641C8111C06484E20E94641C8823AA 945:103B0000F10195FB882780F921E0822780FB95F958
946:103B100011F0C06802C0CC2329F08C2F0E94CF1D69 946:103B10009093F10181E30E94B71C882359F09091A2
947:103B20006C2F03C00E94CB1D682F70E080E090E0F6 947:103B2000F10196FB882780F921E0822780FB96F936
948:103B3000CF910C949E18CF9108956DEE7EEF80E0AA 948:103B30009093F10181E10E94B71C882359F0909184
949:103B400090E00E94F52360E082E090E00E94E32391 949:103B4000F10197FB882780F921E0822780FB97F914
950:103B500060E083E090E00E94E32360E084E090E096 950:103B50009093F1018091F1010E942B1E8091F1015F
951:103B60000E94E32360E085E090E00C94E32380E092 951:103B600087FB882780F980930D0187E20E94B71CAC
952:103B700090E00E94DD2321E08D3E9E4F09F020E081 952:103B7000C82F8EE10E94B71C8111C2608FE10E94A4
953:103B8000822F089582E090E00C94D523682F82E084 953:103B8000B71C8111C46080E20E94B71C8111C8601B
954:103B900090E00C94E32383E090E00C94D523682F0D 954:103B900081E20E94B71C8111C06182E20E94B71CC1
955:103BA00083E090E00C94E32384E090E00C94D52330 955:103BA0008111C06283E20E94B71C8111C06484E26B
956:103BB000682F84E090E00C94E3238091D70180FF8C 956:103BB0000E94B71C882311F0C06802C0CC2329F0F2
957:103BC0000BC06091130185E0689FB00111247595C9 957:103BC0008C2F0E94221E6C2F03C00E941E1E682F85
958:103BD0006795759567952AC081FF09C060911301AB 958:103BD00070E080E090E0CF910C941918CF91089597
959:103BE00085E0689FB0011124759567951FC082FF1D 959:103BE0006DEE7EEF80E090E00E94DD2360E082E0F9
960:103BF00007C06091130185E0689FB001112416C0D1 960:103BF00090E00E94CB2360E083E090E00E94CB2322
961:103C00004091D8014423C9F060911201461788F70A 961:103C000060E084E090E00E94CB2360E085E090E0FB
962:103C10002091130185E0289F90011124429FC0014B 962:103C10000C94CB2380E090E00E94C52321E08D3EF0
963:103C2000439F900D112470E00E94A7236038710516 963:103C20009E4F09F020E0822F089582E090E00C94EE
964:103C300040F46115710539F002C065E070E0862F2F 964:103C3000BD23682F82E090E00C94CB2383E090E0DA
965:103C400008958FE7089581E008958091D70180FF5E 965:103C40000C94BD23682F83E090E00C94CB2384E098
966:103C500008C06091110170E075956795759567953D 966:103C500090E00C94BD23682F84E090E00C94CB237B
967:103C600021C081FF06C06091110170E075956795D4 967:103C60008091DB0180FF0BC06091130185E0689FAC
968:103C700019C082FF04C06091110170E010C08091F2 968:103C7000B001112475956795759567952AC081FFE8
969:103C8000D8018823C1F0609110018617A0F79091A8 969:103C800009C06091130185E0689FB001112475950A
970:103C90001101989FC001112470E00E94A723603891 970:103C900067951FC082FF07C06091130185E0689F90
971:103CA000710528F46115710521F0862F08958FE7BD 971:103CA000B001112416C04091DC014423C9F0609199
972:103CB000089581E0089561E070E0F4CF803F21F441 972:103CB0001201461788F72091130185E0289F900193
973:103CC0000E94DD1D819504C0813F29F40E94DD1D05 973:103CC0001124429FC001439F900D112470E00E9477
974:103CD0008093DB010895823F21F40E94DD1D8195D0 974:103CD0008F236038710540F46115710539F002C019
975:103CE00004C0833F29F40E94DD1D8093DA0108950A 975:103CE00065E070E0862F08958FE7089581E00895DC
976:103CF000893F19F40E94251E05C08A3F31F40E94B5 976:103CF0008091DB0180FF08C06091110170E0759533
977:103D0000251E81958093DC0108958B3F21F40E944C 977:103D000067957595679521C081FF06C06091110187
978:103D1000251E819504C08C3F29F40E94251E8093A6 978:103D100070E07595679519C082FF04C0609111012C
979:103D2000DD010895843F21F48091D901816017C09D 979:103D200070E010C08091DC018823C1F06091100127
980:103D3000853F21F48091D901826011C0863F21F432 980:103D30008617A0F790911101989FC001112470E09F
981:103D40008091D90184600BC0873F21F48091D90113 981:103D40000E948F236038710528F46115710521F0F8
982:103D5000886005C0883F31F48091D90180618093EB 982:103D5000862F08958FE7089581E0089561E070E06F
983:103D6000D90108958D3F21F48091D70181600BC066 983:103D6000F4CF803F21F40E94301E819504C0813F32
984:103D70008E3F21F48091D701826005C08F3F29F4E6 984:103D700029F40E94301E8093DF010895823F21F4D0
985:103D80008091D70184608093D7010895803F39F4F2 985:103D80000E94301E819504C0833F29F40E94301E9A
986:103D90008091DB0187FF6CC01092DB0169C0813F1D 986:103D90008093DE010895893F19F40E94781E05C0C2
987:103DA00029F48091DB011816BCF362C09091DA010E 987:103DA0008A3F31F40E94781E81958093E001089546
988:103DB000823F29F497FF5CC01092DA0159C0833F1B 988:103DB0008B3F21F40E94781E819504C08C3F29F42A
989:103DC00019F41916CCF354C0893F41F48091DC01F9 989:103DC0000E94781E8093E1010895843F21F4809140
990:103DD00018160CF04DC01092DC014AC08A3F29F43D 990:103DD000DD01816017C0853F21F48091DD018260A3
991:103DE0008091DC0187FF44C0F6CF8B3F39F480918E 991:103DE00011C0863F21F48091DD0184600BC0873FC4
992:103DF000DD0187FF3DC01092DD013AC08C3F29F400 992:103DF00021F48091DD01886005C0883F31F4809115
993:103E00008091DD011816BCF333C0843F21F480910A 993:103E0000DD0180618093DD0108958D3F21F4809173
994:103E1000D9018E7F17C0853F21F48091D9018D7F14 994:103E1000DB0181600BC08E3F21F48091DB01826069
995:103E200011C0863F21F48091D9018B7F0BC0873F61 995:103E200005C08F3F29F48091DB0184608093DB0122
996:103E300021F48091D901877F05C0883F31F48091BA 996:103E30000895803F39F48091DF0187FF6CC01092B4
997:103E4000D9018F7E8093D90113C08D3F21F48091D9 997:103E4000DF0169C0813F29F48091DF011816BCF3BE
998:103E5000D7018E7F0BC08E3F21F48091D7018D7FDB 998:103E500062C09091DE01823F29F497FF5CC010920E
999:103E600005C08F3F29F48091D7018B7F8093D701C4 999:103E6000DE0159C0833F19F41916CCF354C0893FC1
1000:103E70008091DA0181110EC08091DB0181110AC0AD 1000:103E700041F48091E00118160CF04DC01092E00161
1001:103E80008091DC01811106C08091DD01811102C0A9 1001:103E80004AC08A3F29F48091E00187FF44C0F6CF01
1002:103E90001092D801089589ED91E00E94360F0E949A 1002:103E90008B3F39F48091E10187FF3DC01092E10131
1003:103EA000B51B9093D6018093D50108951F93CF93AE 1003:103EA0003AC08C3F29F48091E1011816BCF333C06D
1004:103EB000DF938091D5019091D6010E94C11B409162 1004:103EB000843F21F48091DD018E7F17C0853F21F47E
1005:103EC000D801442321F02091140130E006C0209154 1005:103EC0008091DD018D7F11C0863F21F48091DD015D
1006:103ED00015015AE0259F900111248217930708F4D9 1006:103ED0008B7F0BC0873F21F48091DD01877F05C078
1007:103EE00082C08091DA011091DB01D091DC01C09198 1007:103EE000883F31F48091DD018F7E8093DD0113C026
1008:103EF000DD01811107C0111105C0D11103C0CC2310 1008:103EF0008D3F21F48091DB018E7F0BC08E3F21F43A
1009:103F000009F471C04F3F19F04F5F4093D801181664 1009:103F00008091DB018D7F05C08F3F29F48091DB011B
1010:103F100024F40E94DD1D8093DA018091DA0187FF8D 1010:103F10008B7F8093DB018091DE0181110EC0809147
1011:103F200005C00E94DD1D81958093DA01111624F4ED 1011:103F2000DF0181110AC08091E001811106C08091FA
1012:103F30000E94DD1D8093DB018091DB0187FF05C0BE 1012:103F3000E101811102C01092DC0108958DED91E044
1013:103F40000E94DD1D81958093DB016091DA0166237B 1013:103F40000E942D0F0E94081C9093DA018093D901E2
1014:103F500039F11091DB01112319F1772767FD709575 1014:103F500008951F93CF93DF938091D9019091DA0157
1015:103F6000872F972F0E94B82223E333E343E35FE3D5 1015:103F60000E94141C4091DC01442321F02091140193
1016:103F70000E941C230E9485226093DA01612F77271B 1016:103F700030E006C0209115015AE0259F90011124E0
1017:103F800067FD7095872F972F0E94B82223E333E3B4 1017:103F80008217930708F482C08091DE011091DF014F
1018:103F900043E35FE30E941C230E9485226093DB01C0 1018:103F9000D091E001C091E101811107C0111105C06C
1019:103FA0001D1624F40E94251E8093DC018091DC0103 1019:103FA000D11103C0CC2309F471C04F3F19F04F5F0A
1020:103FB00087FF05C00E94251E81958093DC011C1699 1020:103FB0004093DC01181624F40E94301E8093DE0129
1021:103FC00024F40E94251E8093DD018091DD0187FF8E 1021:103FC0008091DE0187FF05C00E94301E819580939D
1022:103FD00005C00E94251E81958093DD01DF91CF9160 1022:103FD000DE01111624F40E94301E8093DF018091CF
1023:103FE0001F910C944B1FDF91CF911F910895E9ED24 1023:103FE000DF0187FF05C00E94301E81958093DF01AD
1024:103FF000F1E085E0DF011D928A95E9F71092D80182 1024:103FF0006091DE01662339F11091DF01112319F17F
1025:104000001092D7010895833081F128F4813059F05E 1025:10400000772767FD7095872F972F0E94A02223E3C3
1026:104010008230D1F00895853009F449C0B8F1863076 1026:1040100033E343E35FE30E9404230E946D22609335
1027:1040200009F456C0089520911501862F90E0820F63 1027:10402000DE01612F772767FD7095872F972F0E94FC
1028:10403000911D8F3F910520F4620F60931501089543 1028:10403000A02223E333E343E35FE30E9404230E94CF
1029:104040008FEF80931501089520911401862F90E041 1029:104040006D226093DF011D1624F40E94781E809378
1030:10405000820F911D8F3F910520F4620F6093140130 1030:10405000E0018091E00187FF05C00E94781E8195F4
1031:1040600008958FEF80931401089520911301862FF6 1031:104060008093E0011C1624F40E94781E8093E101E5
1032:1040700090E0820F911D8F3F910520F4620F6093B5 1032:104070008091E10187FF05C00E94781E81958093A1
1033:10408000130108958FEF8093130108952091120179 1033:10408000E101DF91CF911F910C949E1FDF91CF91A1
1034:10409000862F90E0820F911D8F3F910520F4620FD3 1034:104090001F910895EDEDF1E085E0DF011D928A9515
1035:1040A0006093120108958FEF80931201089520917B 1035:1040A000E9F71092DC011092DB010895833081F171
1036:1040B0001101862F90E0820F911D8F3F910520F412 1036:1040B00028F4813059F08230D1F00895853009F428
1037:1040C000620F6093110108958FEF8093110108959D 1037:1040C00049C0B8F1863009F456C008952091150111
1038:1040D00020911001862F90E0820F911D8F3F910556 1038:1040D000862F90E0820F911D8F3F910520F4620F93
1039:1040E00020F4620F6093100108958FEF8093100108 1039:1040E0006093150108958FEF809315010895209135
1040:1040F0000895833011F128F4813049F0823091F035 1040:1040F0001401862F90E0820F911D8F3F910520F4CF
1041:104100000895853081F120F18630C1F108958091C4 1041:10410000620F6093140108958FEF80931401089556
1042:104110001501681720F4861B8093150108951092ED 1042:1041100020911301862F90E0820F911D8F3F910512
1043:104120001501089580911401681720F4861B80936F 1043:1041200020F4620F6093130108958FEF80931301C1
1044:1041300014010895109214010895809113016817D5 1044:10413000089520911201862F90E0820F911D8F3FEC
1045:1041400020F4861B809313010895109213010895A3 1045:10414000910520F4620F6093120108958FEF809320
1046:1041500080911201681720F4861B80931201089544 1046:104150001201089520911101862F90E0820F911D88
1047:1041600010921201089580911101681720F4861BA6 1047:104160008F3F910520F4620F6093110108958FEF46
1048:10417000809311010895109211010895809110010A 1048:1041700080931101089520911001862F90E0820F05
1049:10418000681720F4861B8093100108951092100187 1049:10418000911D8F3F910520F4620F609310010895F7
1050:1041900008958D3109F442C020F58E3009F477C0BE 1050:104190008FEF809310010895833011F128F481305E
1051:1041A00070F4873009F459C018F48630F1F134C046 1051:1041A00049F0823091F00895853081F120F1863018
1052:1041B000883009F4A8C08B3009F4A5C02DC0863121 1052:1041B000C1F1089580911501681720F4861B809342
1053:1041C00009F4A1C038F4803109F472C0813109F4D6 1053:1041C0001501089510921501089580911401681742
1054:1041D00079C022C0893109F496C08B3109F44DC0F1 1054:1041D00020F4861B80931401089510921401089511
1055:1041E0001BC0853309F487C048F4873209F483C0C3 1055:1041E00080911301681720F4861B809313010895B2
1056:1041F00008F473C0893209F47EC00EC0833438F4E9 1056:1041F00010921301089580911201681720F4861B14
1057:104200008A3308F068C0883309F47DC005C0833460 1057:104200008093120108951092120108958091110176
1058:1042100009F471C0883499F080E008950E943F222B 1058:10421000681720F4861B80931101089510921101F4
1059:104220000E941F0F0E9424086EC08091CF01817FE1 1059:10422000089580911001681720F4861B8093100177
1060:104230008E7F8093CF0181E08093DF0108950E94FB 1060:1042300008951092100108958B3109F46AC008F5B1
1061:10424000A2142FEF83ED90E3215080409040E1F7DE 1061:104240008E3009F470C070F4873009F452C018F44D
1062:1042500000C000000E940F1C56C09091CF01892F12 1062:104250008630B9F134C0883009F4A1C08B3009F43C
1063:104260008095817080FB90F919F0966098601DC070 1063:104260009EC02DC0813109F479C020F4803109F459
1064:10427000997F977F9093CF0146C09091CF0191FB9A 1064:1042700064C025C0863109F492C0893109F48FC029
1065:10428000882780F921E0822780FB91F909C090916D 1065:104280001EC0853309F483C060F4873209F47FC00F
1066:10429000CF0192FB882780F921E0822780FB92F9E9 1066:1042900020F48E3108F06DC012C0893209F477C065
1067:1042A0009093CF01882379F191609093CF01089585 1067:1042A0000EC0833438F48A3308F061C0883309F4CF
1068:1042B0009091CF0193FB882780F921E0822780FB32 1068:1042B00076C005C0833409F46AC0883461F080E0B8
1069:1042C00093F9EECF0E94A21480910D0191E089270D 1069:1042C00008958091D301817F8E7F8093D30181E017
1070:1042D00080930D0118C027EC01C023EE280F61E088 1070:1042D0008093E30108950E9419142FEF83ED90E37A
1071:1042E00070E080E090E004C0660F771F881F991F80 1071:1042E000215080409040E1F700C000000E94621C15
1072:1042F0002A95D2F704C061E070E080E090E00E946F 1072:1042F00056C09091D301892F8095817080FB90F9F1
1073:104300009E180E94A21481E0089580E0089580E044 1073:1043000019F09660986027C0997F977F9093D301AA
1074:104310000895CF93C82F8091DF01813079F018F094 1074:1043100046C09091D30191FB882780F921E0822744
1075:104320008230D1F184C0A0910E01B0910F018C9127 1075:1043200080FB91F913C09091D30192FB882780F90B
1076:10433000813169F0823209F07CC009C0A0910E0180 1076:1043300021E0822780FB92F909C09091D30193FB81
1077:10434000B0910F018C91813111F0823249F48C2FA0 1077:10434000882780F921E0822780FB93F99093D3019D
1078:104350000E94852181111DC08C2F0E94C9201AC086 1078:10435000882329F191609093D30108950E94191444
1079:104360008C2F0E948721811114C0C43179F048F448 1079:1043600080910D0191E0892780930D0118C027EC01
1080:10437000CB3079F0C03109F060C082E08093DF017A 1080:1043700001C023EE280F61E070E080E090E004C00F
1081:1043800008C0C93219F0C83321F057C01092DF01BC 1081:10438000660F771F881F991F2A95D2F704C061E036
1082:1043900054C081E0817053C0C93289F118F5C4312D 1082:1043900070E080E090E00E9419180E94191481E0FA
1083:1043A00071F1A8F4C73009F046C08AE08093150186 1083:1043A000089580E0089580E00895CF93C82F80910C
1084:1043B00094E19093140193E0909313018093120180 1084:1043B000E301813079F018F08230D1F184C0A0910E
1085:1043C00088E08093110188E28093100134C0CE51BF 1085:1043C0000E01B0910F018C91813169F0823209F0B8
1086:1043D000C63088F5EC2FF0E0E65DFE4F80818093DB 1086:1043D0007CC009C0A0910E01B0910F018C91813178
1087:1043E000DE0129C0CE34E9F020F4CB3421F56AE0B7 1087:1043E00011F0823249F48C2F0E94D12181111DC01D
1088:1043F00013C0C13579F0C235F1F461E00DC0809190 1088:1043F0008C2F0E941C211AC08C2F0E94D321811166
1089:10440000DE01882319F01092DE0115C081E080934F 1089:1044000014C0C43179F048F4CB3079F0C03109F0F0
1090:10441000DF0115C061E006C08091DE010E9403202B 1090:1044100060C082E08093E30108C0C93219F0C8335C
1091:104420000AC06AE08091DE010E94792004C01092E7 1091:1044200021F057C01092E30154C081E0817053C065
1092:10443000DF0180E004C081E002C080E0ABCFCF911B 1092:10443000C93289F118F5C43171F1A8F4C73009F017
1093:104440000895E1E8F0E08081886080838081816068 1093:1044400046C08AE08093150194E19093140193E0B3
1094:1044500080838FB7F89493E09093890090ED9093C8 1094:10445000909313018093120188E08093110188E208
1095:1044600088008FBF0895EFE6F0E08081826080834E 1095:104460008093100134C0CE51C63088F5EC2FF0E0B7
1096:104470000895EFE6F0E080818D7F80830895EFE678 1096:10447000E65DFE4F80818093E20129C0CE34E9F0F1
1097:10448000F0E0808192E08927808308951F920F9247 1097:1044800020F4CB3421F56AE013C0C13579F0C23590
1098:104490000FB60F9211242F933F934F935F936F9317 1098:10449000F1F461E00DC08091E201882319F01092DF
1099:1044A0007F938F939F93AF93BF93EF93FF938091ED 1099:1044A000E20115C081E08093E30115C061E006C020
1100:1044B000E0019091E10101969093E1018093E00188 1100:1044B0008091E2010E9456200AC06AE08091E201E8
1101:1044C000811103C082E00E942408E091E101E69599 1101:1044C0000E94CC2004C01092E30180E004C081E08F
1102:1044D000E695F0E0E657FB4FE4918091E0018E1302 1102:1044D00002C080E0ABCFCF91089504D06894B111B1
1103:1044E00003C080E00E942408FF91EF91BF91AF913B 1103:1044E0008DC0089570D088F09F5790F0B92F99270C
1104:1044F0009F918F917F916F915F914F913F912F91FC 1104:1044F000B751A0F0D1F0660F771F881F991F1AF0EF
1105:104500000F900FBE0F901F90189504D06894B111B2 1105:10450000BA95C9F712C0B13081F077D0B1E0089503
1106:104510008DC0089570D088F09F5790F0B92F9927DB 1106:1045100074C0672F782F8827B85F39F0B93FCCF384
1107:10452000B751A0F0D1F0660F771F881F991F1AF0BE 1107:10452000869577956795B395D9F73EF490958095E4
1108:10453000BA95C9F712C0B13081F077D0B1E00895D3 1108:10453000709561957F4F8F4F9F4F0895E89409C004
1109:1045400074C0672F782F8827B85F39F0B93FCCF354 1109:1045400097FB3EF490958095709561957F4F8F4FC6
1110:10455000869577956795B395D9F73EF490958095B4 1110:104550009F4F9923A9F0F92F96E9BB279395F695DC
1111:10456000709561957F4F8F4F9F4F0895E89409C0D4 1111:10456000879577956795B795F111F8CFFAF4BB0F5A
1112:1045700097FB3EF490958095709561957F4F8F4F96 1112:1045700011F460FF1BC06F5F7F4F8F4F9F4F16C0BE
1113:104580009F4F9923A9F0F92F96E9BB279395F695AC 1113:10458000882311F096E911C0772321F09EE8872F48
1114:10459000879577956795B795F111F8CFFAF4BB0F2A 1114:10459000762F05C0662371F096E8862F70E060E004
1115:1045A00011F460FF1BC06F5F7F4F8F4F9F4F16C08E 1115:1045A0002AF09A95660F771F881FDAF7880F96957D
1116:1045B000882311F096E911C0772321F09EE8872F18 1116:1045B000879597F9089557FD9058440F551F59F066
1117:1045C000762F05C0662371F096E8862F70E060E0D4 1117:1045C0005F3F71F04795880F97FB991F61F09F3F00
1118:1045D0002AF09A95660F771F881FDAF7880F96954D 1118:1045D00079F087950895121613061406551FF2CF29
1119:1045E000879597F9089557FD9058440F551F59F036 1119:1045E0004695F1DF08C0161617061806991FF1CF79
1120:1045F0005F3F71F04795880F97FB991F61F09F3FD0 1120:1045F00086957105610508940895E894BB276627A0
1121:1046000079F087950895121613061406551FF2CFF8 1121:104600007727CB0197F908950BD078C069D028F0AF
1122:104610004695F1DF08C0161617061806991FF1CF48 1122:104610006ED018F0952309F05AC05FC01124EECF78
1123:1046200086957105610508940895E894BB2766276F 1123:10462000CADFA0F3959FD1F3950F50E0551F629F0D
1124:104630007727CB0197F908950BD078C069D028F07F 1124:10463000F001729FBB27F00DB11D639FAA27F00DFB
1125:104640006ED018F0952309F05AC05FC01124EECF48 1125:10464000B11DAA1F649F6627B00DA11D661F829F22
1126:10465000CADFA0F3959FD1F3950F50E0551F629FDD 1126:104650002227B00DA11D621F739FB00DA11D621F07
1127:10466000F001729FBB27F00DB11D639FAA27F00DCB 1127:10466000839FA00D611D221F749F3327A00D611D24
1128:10467000B11DAA1F649F6627B00DA11D661F829FF2 1128:10467000231F849F600D211D822F762F6A2F112406
1129:104680002227B00DA11D621F739FB00DA11D621FD7 1129:104680009F5750408AF0E1F088234AF0EE0FFF1F59
1130:10469000839FA00D611D221F749F3327A00D611DF4 1130:10469000BB1F661F771F881F91505040A9F79E3F90
1131:1046A000231F849F600D211D822F762F6A2F1124D6 1131:1046A000510570F014C0AACF5F3FECF3983EDCF3E5
1132:1046B0009F5750408AF0E1F088234AF0EE0FFF1F29 1132:1046B000869577956795B795F795E7959F5FC1F7CD
1133:1046C000BB1F661F771F881F91505040A9F79E3F60 1133:1046C000FE2B880F911D9695879597F9089597F978
1134:1046D000510570F014C0AACF5F3FECF3983EDCF3B5 1134:1046D0009F6780E870E060E008959FEF80EC0895A8
1135:1046E000869577956795B795F795E7959F5FC1F79D 1135:1046E00000240A94161617061806090608950024D1
1136:1046F000FE2B880F911D9695879597F9089597F948 1136:1046F0000A9412161306140605060895092E03944B
1137:104700009F6780E870E060E008959FEF80EC089577 1137:10470000000C11F4882352F0BB0F40F4BF2B11F4BE
1138:1047100000240A94161617061806090608950024A0 1138:1047100060FF04C06F5F7F4F8F4F9F4F089597FBDF
1139:104720000A9412161306140605060895092E03941A 1139:10472000072E16F4009407D077FD09D00E94A92324
1140:10473000000C11F4882352F0BB0F40F4BF2B11F48E 1140:1047300007FC05D03EF4909581959F4F08957095A4
1141:1047400060FF04C06F5F7F4F8F4F9F4F089597FBAF 1141:1047400061957F4F0895EE0FFF1F0590F491E02DC6
1142:10475000072E16F4009407D077FD09D00E94C123DC 1142:104750000994AA1BBB1B51E107C0AA1FBB1FA617C8
1143:1047600007FC05D03EF4909581959F4F0895709574 1143:10476000B70710F0A61BB70B881F991F5A95A9F71A
1144:1047700061957F4F0895EE0FFF1F0590F491E02D96 1144:1047700080959095BC01CD010895F999FECF92BD29
1145:104780000994AA1BBB1B51E107C0AA1FBB1FA61798 1145:1047800081BDF89A992780B50895A8E1B0E042E08C
1146:10479000B70710F0A61BB70B881F991F5A95A9F7EA 1146:1047900050E00C94E523262FF999FECF92BD81BD00
1147:1047A00080959095BC01CD010895F999FECF92BDF9 1147:1047A000F89A019700B4021639F01FBA20BD0FB66F
1148:1047B00081BDF89A992780B50895A8E1B0E042E05C 1148:1047B000F894FA9AF99A0FBE08950196272F0E944D
1149:1047C00050E00C94FD23262FF999FECF92BD81BDB8 1149:1047C000CC230C94CB23DC01CB01FC01F999FECF67
1150:1047D000F89A019700B4021639F01FBA20BD0FB63F 1150:1047D00006C0F2BDE1BDF89A319600B40D92415089
1151:1047E000F894FA9AF99A0FBE08950196272F0E941D 1151:0A47E0005040B8F70895F894FFCF99
1152:1047F000E4230C94E323DC01CB01FC01F999FECF07 1152:1047EA0020022608B30890085C0829080101C001C4
1153:1048000006C0F2BDE1BDF89A319600B40D92415058 1153:1047FA0028080A03140A3F4D363979042C04F603B3
1154:0A4810005040B8F70895F894FFCF68 1154:10480A00BD035003690382039B03010203040506E7
1155:10481A0020022608B30890085C0829080101BC0197 1155:04481A000708090082
1156:10482A0028080A03140A3F4D36394B04FE03C8030D
1157:10483A008F0322033B0354036D030102030405069D
1158:04484A000708090052
1159:00000001FF 1156:00000001FF
diff --git a/keyboard/ergodox_ez/keymaps/erez_experimental/keymap.c b/keyboard/ergodox_ez/keymaps/erez_experimental/keymap.c
index bf5a974bf..f4e4f92e0 100644
--- a/keyboard/ergodox_ez/keymaps/erez_experimental/keymap.c
+++ b/keyboard/ergodox_ez/keymaps/erez_experimental/keymap.c
@@ -22,7 +22,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
22 * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------| 22 * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------|
23 * |LShift/(|Z/Ctrl| X | C | V | B | [ | | ] | N | M | , | . |//Ctrl|RShift/)| 23 * |LShift/(|Z/Ctrl| X | C | V | B | [ | | ] | N | M | , | . |//Ctrl|RShift/)|
24 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' 24 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
25 * |Grv/L1| '" |AltShf| Left | Right| | Up | Down | [ | ] | - | 25 * |Grv/L1| '" |AltShf| Left | Right| | Up | Down | [ | ] | -/L1 |
26 * `----------------------------------' `----------------------------------' 26 * `----------------------------------' `----------------------------------'
27 * ,-------------. ,-------------. 27 * ,-------------. ,-------------.
28 * | App | LGui | | Alt |Ctrl/Esc| 28 * | App | LGui | | Alt |Ctrl/Esc|
@@ -49,7 +49,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
49 TG(SYMB), KC_Y,KC_U, KC_I, KC_O, KC_P, KC_BSLS, 49 TG(SYMB), KC_Y,KC_U, KC_I, KC_O, KC_P, KC_BSLS,
50 KC_H,ALT_T(KC_J),KC_K, KC_L, LT(MDIA,KC_SCLN),GUI_T(KC_QUOT), 50 KC_H,ALT_T(KC_J),KC_K, KC_L, LT(MDIA,KC_SCLN),GUI_T(KC_QUOT),
51 MEH_T(KC_RBRC),KC_N,KC_M, KC_COMM,KC_DOT, CTL_T(KC_SLSH), RSFTC, 51 MEH_T(KC_RBRC),KC_N,KC_M, KC_COMM,KC_DOT, CTL_T(KC_SLSH), RSFTC,
52 KC_UP, KC_DOWN,KC_LBRC,KC_RBRC, KC_MINS, 52 KC_UP, KC_DOWN,KC_LBRC,KC_RBRC, LT(SYMB,KC_MINS),
53 KC_LALT, CTL_T(KC_ESC), 53 KC_LALT, CTL_T(KC_ESC),
54 KC_PGUP, 54 KC_PGUP,
55 KC_PGDN,LT(SYMB, KC_TAB), KC_ENT 55 KC_PGDN,LT(SYMB, KC_TAB), KC_ENT
@@ -59,13 +59,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
59 * ,--------------------------------------------------. ,--------------------------------------------------. 59 * ,--------------------------------------------------. ,--------------------------------------------------.
60 * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 | 60 * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 |
61 * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| 61 * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
62 * | | 1 | 2 | 3 | 4 | | | | | | % | = | @ | | F12 | 62 * | | | | | | | | | | | | | | | F12 |
63 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| 63 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
64 * | | 5 | 6 | 7 | 8 | 9 |------| |------| & | _ | - | ; | + | | 64 * | | 1 | 2 | 3 | 4 | 5 |------| |------| & | _ | - | ; | + | |
65 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| 65 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
66 * | | ( | ) | [ | ] | 0 | | | | | | ( | ) | | | | 66 * | | 6 | 7 | 8 | 9 | 0 | | | | | | @ | = | % | | |
67 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' 67 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
68 * | | | | | | | | | | | | 68 * | | | |NxtTab|PrvTab| | | | | | |
69 * `----------------------------------' `----------------------------------' 69 * `----------------------------------' `----------------------------------'
70 * ,-------------. ,-------------. 70 * ,-------------. ,-------------.
71 * | | | | | | 71 * | | | | | |
@@ -79,19 +79,19 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
79[SYMB] = KEYMAP( 79[SYMB] = KEYMAP(
80 // left hand 80 // left hand
81 KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS, 81 KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS,
82 KC_TRNS, KC_1, KC_2, KC_3, KC_4, KC_TRNS, KC_TRNS, 82 KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
83 KC_TRNS, KC_5, KC_6, KC_7, KC_8, KC_9, 83 KC_TRNS, KC_1, KC_2, KC_3, KC_4, KC_5,
84 KC_TRNS, KC_LPRN,KC_RPRN,KC_LBRC, KC_RBRC, KC_0, KC_TRNS, 84 KC_TRNS, KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS,
85 KC_TRNS, KC_TRNS,KC_TRNS,LCTL(KC_PGUP), LCTL(KC_PGDN), 85 KC_TRNS, KC_TRNS,KC_TRNS,LCTL(KC_PGUP), LCTL(KC_PGDN),
86 KC_TRNS,KC_TRNS, 86 KC_TRNS,KC_TRNS,
87 KC_TRNS, 87 KC_TRNS,
88 KC_TRNS,KC_TRNS,KC_TRNS, 88 KC_TRNS,KC_TRNS,KC_TRNS,
89 // right hand 89 // right hand
90 KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, 90 KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
91 KC_TRNS, KC_TRNS, KC_PERC,KC_EQL, KC_AT, KC_TRNS, KC_F12, 91 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F12,
92 KC_AMPR, KC_UNDS,KC_MINS, CM_SCLN, KC_PLUS, KC_TRNS, 92 KC_AMPR, KC_UNDS, KC_MINS, CM_SCLN, KC_PLUS, KC_TRNS,
93 KC_TRNS, KC_PIPE, KC_LPRN,KC_RPRN, KC_3, KC_TRNS, KC_TRNS, 93 KC_TRNS, KC_PIPE, KC_AT, KC_EQL, KC_PERC, KC_TRNS, KC_TRNS,
94 KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 94 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
95 KC_TRNS, KC_TRNS, 95 KC_TRNS, KC_TRNS,
96 KC_TRNS, 96 KC_TRNS,
97 KC_TRNS, KC_TRNS, KC_TRNS 97 KC_TRNS, KC_TRNS, KC_TRNS
@@ -101,13 +101,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
101 * ,--------------------------------------------------. ,--------------------------------------------------. 101 * ,--------------------------------------------------. ,--------------------------------------------------.
102 * | | | | | | | | | | | | | | | | 102 * | | | | | | | | | | | | | | | |
103 * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| 103 * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
104 * | | | | MsUp | | | | | | | | | | | | 104 * | | | | | | | | | | | | | | | |
105 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| 105 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
106 * | | |MsLeft|MsDown|MsRght| |------| |------| | | | | | Play | 106 * | | PgUp | Home | End | PgDn | |------| |------| | | | | | Play |
107 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| 107 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
108 * | | | | | | | | | | | | Prev | Next | | | 108 * | | | | | | | | | | | | Prev | Next | | |
109 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' 109 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
110 * | | | | Lclk | Rclk | |VolUp |VolDn | Mute | | | 110 * | | | | | | |VolUp |VolDn | Mute | | |
111 * `----------------------------------' `----------------------------------' 111 * `----------------------------------' `----------------------------------'
112 * ,-------------. ,-------------. 112 * ,-------------. ,-------------.
113 * | | | | | | 113 * | | | | | |
@@ -120,10 +120,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
120// MEDIA AND MOUSE 120// MEDIA AND MOUSE
121[MDIA] = KEYMAP( 121[MDIA] = KEYMAP(
122 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 122 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
123 KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_TRNS,
124 KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS,
125 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 123 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
126 KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2, 124 KC_TRNS, KC_PGUP, KC_HOME, KC_END, KC_PGDN, KC_TRNS,
125 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
126 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
127 KC_TRNS, KC_TRNS, 127 KC_TRNS, KC_TRNS,
128 KC_TRNS, 128 KC_TRNS,
129 KC_TRNS, KC_TRNS, KC_TRNS, 129 KC_TRNS, KC_TRNS, KC_TRNS,
@@ -140,7 +140,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
140}; 140};
141 141
142const uint16_t PROGMEM fn_actions[] = { 142const uint16_t PROGMEM fn_actions[] = {
143 [1] = ACTION_LAYER_TAP_TOGGLE(SYMB) // FN1 - Momentary Layer 1 (Symbols) 143 [1] = ACTION_LAYER_TAP_TOGGLE(SYMB), // FN1 - Momentary Layer 1 (Symbols)
144 [2] = ACTION_MACRO_TAP(0), // Eric Tang's Famous Macro!
145 [3] = ACTION_MACRO_TAP(1) // Eric Tang's Famous Macro!
144}; 146};
145 147
146static uint16_t key_timer; 148static uint16_t key_timer;
@@ -148,33 +150,46 @@ static uint16_t key_timer;
148const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) 150const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
149{ 151{
150 switch(id) { 152 switch(id) {
151 case 0: { 153 case 0:
152 if (record->event.pressed) { 154 if (record->event.pressed) {
153 key_timer = timer_read(); // if the key is being pressed, we start the timer. 155 register_mods(MOD_BIT(KC_LSFT));
154 register_code(KC_LSFT); // we're now holding down Shift. 156 if (record->tap.count && !record->tap.interrupted) {
155 } else { // this means the key was just released, so we can figure out how long it was pressed for (tap or "held down"). 157 register_code(KC_9);
156 if (timer_elapsed(key_timer) < 70) { // the threshhold we pick for counting something as a tap. 158 }
157 register_code(KC_9); // sending 9 while Shift is held down gives us an opening paren 159 else {
158 unregister_code(KC_9); // now let's let go of that key 160 record->tap.count = 0;
159 } 161 }
160 unregister_code(KC_LSFT); // let's release the Shift key now. 162 }
161 } 163 else {
162 break; 164 if (record->tap.count) {
163 } 165 unregister_code(KC_9);
164 case 1: { 166 }
165 if (record->event.pressed) { 167 else {
166 key_timer = timer_read(); // Now we're doing the same thing, only for the right shift/close paren key 168 }
167 register_code(KC_RSFT); 169 unregister_mods(MOD_BIT(KC_LSFT));
168 } else { 170 }
169 if (timer_elapsed(key_timer) < 70) { 171 break;
170 register_code(KC_0); 172
171 unregister_code(KC_0); 173 case 1:
172 } 174 if (record->event.pressed) {
173 unregister_code(KC_RSFT); 175 register_mods(MOD_BIT(KC_LSFT));
174 } 176 if (record->tap.count && !record->tap.interrupted) {
175 break; 177 register_code(KC_0);
178 }
179 else {
180 record->tap.count = 0;
181 }
182 }
183 else {
184 if (record->tap.count) {
185 unregister_code(KC_0);
186 }
187 else {
188 }
189 unregister_mods(MOD_BIT(KC_LSFT));
190 }
191 break;
176 } 192 }
177 }
178 return MACRO_NONE; 193 return MACRO_NONE;
179}; 194};
180 195
diff --git a/keyboard/ergodox_ez/keymaps/erez_experimental/makefile.mk b/keyboard/ergodox_ez/keymaps/erez_experimental/makefile.mk
new file mode 100644
index 000000000..4c3a314ed
--- /dev/null
+++ b/keyboard/ergodox_ez/keymaps/erez_experimental/makefile.mk
@@ -0,0 +1,5 @@
1# Having a file like this allows you to override Makefile definitions
2# for your own particular keymap
3
4SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
5
diff --git a/keyboard/ergodox_ez/keymaps/erez_experimental/readme.md b/keyboard/ergodox_ez/keymaps/erez_experimental/readme.md
index 205280e29..a9c572390 100644
--- a/keyboard/ergodox_ez/keymaps/erez_experimental/readme.md
+++ b/keyboard/ergodox_ez/keymaps/erez_experimental/readme.md
@@ -4,6 +4,14 @@ This is my personal layout which I use to test out ideas which may or may not ma
4 4
5Changelog: 5Changelog:
6 6
7## May 8, 2016:
8
9* Makes bottom-right key send minus/underscore when tapped, L1 temporary toggle when held
10* Tweaked the positions of the numbers on the symbol layer. Basically, 12345 are now directly under their number-row counterparts in layer 0. You can imagine pulling the number row down to the home row. And 67890 are directly under 12345 - so it's a matter of just adding 5 and going to the next row (1+5 = 6, 2+5 = 7 and so on).
11* Tweaks media/nav layer
12 * Removes mouse control, as I don't use it
13 * Makes left home row keys PgUp, Home, End, PgDn
14
7## Apr 29, 2016: 15## Apr 29, 2016:
8 16
9* Tweaks the Hyper and Meh key to send brackets when tapped 17* Tweaks the Hyper and Meh key to send brackets when tapped
diff --git a/keyboard/ergodox_ez/keymaps/ordinary/keymap.c b/keyboard/ergodox_ez/keymaps/ordinary/keymap.c
index 871bda672..18939b192 100644
--- a/keyboard/ergodox_ez/keymaps/ordinary/keymap.c
+++ b/keyboard/ergodox_ez/keymaps/ordinary/keymap.c
@@ -4,27 +4,32 @@
4#include "action_layer.h" 4#include "action_layer.h"
5#include "action_util.h" 5#include "action_util.h"
6 6
7#define BASE 0 // default layer 7#define BASE 0 // default layer
8#define SYMB 1 // symbols layer 8#define SYMB 1 // symbols layer
9#define MDIA 2 // media layer 9#define MDIA 2 // media layer
10#define LOCK 3 // shift-lock layer 10#define SPEC 3 // special layer
11 11
12#define LSymb 0 // left symbol-shift key 12#define LCaps 10 // left caps-shift key
13#define LMdia 1 // left media-shift key 13#define LSymb 11 // left symbol-shift key
14#define LLock 2 // left shift-lock key 14#define LMdia 12 // left media-shift key
15#define RSymb 3 // right symbol-shift key 15#define LSpec 13 // left special-shift key
16#define RMdia 4 // right media-shift key 16#define RCaps 14 // right caps-shift key
17#define RLock 5 // right shift-lock key 17#define RSymb 15 // right symbol-shift key
18 18#define RMdia 16 // right media-shift key
19#define MUL 6 // mouse up left 19#define RSpec 17 // right special-shift key
20#define MUR 7 // mouse up right 20
21#define MDL 8 // mouse down left 21#define MUL 20 // mouse up left
22#define MDR 9 // mouse down right 22#define MUR 21 // mouse up right
23#define MDL 22 // mouse down left
24#define MDR 23 // mouse down right
23 25
24/* 26/*
25 * The Ordinary Layout for the Ergodox EZ keyboard, v3.14 27 * The Ordinary Layout for the Ergodox EZ keyboard, v4
26 * 28 *
27 * Modifications from default by Nicholas Keene ergodoxez@nicholaskeene.com 29 * Modifications from default by Nicholas Keene ergodoxez@nicholaskeene.com
30 *
31 * No rights reserved. This software is in the public domain.
32 * Credit me if you are friendly but if you're a jerk don't bother.
28 * 33 *
29 * Details: readme.md 34 * Details: readme.md
30 * https://github.com/nrrkeene/qmk_firmware/tree/master/keyboard/ergodox_ez/keymaps/ordinary 35 * https://github.com/nrrkeene/qmk_firmware/tree/master/keyboard/ergodox_ez/keymaps/ordinary
@@ -34,40 +39,40 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
34 39
35/******* Base Layer ******************************************************************************************************** 40/******* Base Layer ********************************************************************************************************
36 * 41 *
37 * ,-----------------------------------------------------. ,-----------------------------------------------------. 42 * ,------------------------------------------------------. ,------------------------------------------------------.
38 * | Lock `~ | 1 | 2 | 3 | 4 | 5 | ESC | | - | 6 | 7 | 8 | 9 | 0 | =+ Lock | 43 * | Special `~ | 1 | 2 | 3 | 4 | 5 | ESC | | - | 6 | 7 | 8 | 9 | 0 | =+ Special |
39 * |-----------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------| 44 * |------------+------+------+------+------+-------------| |------+------+------+------+------+------+------------|
40 * | Media Tab | Q | W | E | R | T | [ | | ] | Y | U | I | O | P | \| Media | 45 * | Media Tab | Q | W | E | R | T | [ | | ] | Y | U | I | O | P | \| Media |
41 * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| 46 * |------------+------+------+------+------+------| | | |------+------+------+------+------+------------|
42 * | Symbol | A | S | D | F | G |------| |------| H | J | K | L | ; | '" Symbol | 47 * | Symbol | A | S | D | F | G |------| |------| H | J | K | L | ; | '" Symbol |
43 * |-----------+------+------+------+------+------|Shift | | Tab |------+------+------+------+------+-----------| 48 * |------------+------+------+------+------+------|Shift | | Tab |------+------+------+------+------+------------|
44 * | LShift | Z | X | C | V | B | -Tab | | | N | M | , | . | / | RShift | 49 * | Capitals | Z | X | C | V | B | -Tab | | | N | M | , | . | / | Capitals |
45 * `-----------+------+------+------+------+-------------' `-------------+------+------+------+------+-----------' 50 * `------------+------+------+------+------+-------------' `-------------+------+------+------+------+------------'
46 * | LCtrl | Meh |Hyper | LAlt | LGui | | RGui | RAlt | Hyper| Meh | RCtrl | 51 * | LCtrl | Meh |Hyper | LAlt | LGui | | RGui | RAlt | Hyper| Meh | RCtrl |
47 * `-----------------------------------' `-----------------------------------' 52 * `-----------------------------------' `-----------------------------------'
48 * ,-------------. ,-------------. 53 * ,-------------. ,-------------.
49 * | Home | End | | Left | Right| 54 * | Home | End | | Left | Right|
50 * ,------|------|------| |------+------+------. 55 * ,------|------|------| |------+------+------.
51 * | | | PgUp | | Up | | | 56 * | | | PgUp | | Up | | |
52 * |Backsp| Del |------| |------| Enter| Space| 57 * |Backsp| Del |------| |------| Enter| Space|
53 * | | | PgDn | | Down | | | 58 * | | | PgDn | | Down | | |
54 * `--------------------' `--------------------' 59 * `--------------------' `--------------------'
55 */ 60 */
56[BASE] = KEYMAP( 61[BASE] = KEYMAP(
57// left hand 62// left hand
58 F(LLock) ,KC_1 ,KC_2 ,KC_3 ,KC_4 ,KC_5 ,KC_ESC 63 F(LSpec),KC_1,KC_2,KC_3 ,KC_4 ,KC_5 ,KC_ESC
59,F(LMdia) ,KC_Q ,KC_W ,KC_E ,KC_R ,KC_T ,KC_LBRC 64,F(LMdia) ,KC_Q ,KC_W ,KC_E ,KC_R ,KC_T ,KC_LBRC
60,M(LSymb) ,KC_A ,KC_S ,KC_D ,KC_F ,KC_G 65,M(LSymb) ,KC_A ,KC_S ,KC_D ,KC_F ,KC_G
61,KC_LSFT ,KC_Z ,KC_X ,KC_C ,KC_V ,KC_B ,LSFT(KC_TAB) 66,M(LCaps) ,KC_Z ,KC_X ,KC_C ,KC_V ,KC_B ,LSFT(KC_TAB)
62,KC_LCTL ,KC_MEH ,KC_HYPR,KC_LALT,KC_LGUI 67,KC_LCTL ,KC_MEH ,KC_HYPR,KC_LALT,KC_LGUI
63 ,KC_HOME,KC_END 68 ,KC_HOME,KC_END
64 ,KC_PGUP 69 ,KC_PGUP
65 ,KC_BSPC,KC_DEL ,KC_PGDN 70 ,KC_BSPC,KC_DEL ,KC_PGDN
66 // right hand 71 // right hand
67 ,KC_MINS ,KC_6 ,KC_7 ,KC_8 ,KC_9 ,KC_0 ,F(RLock) 72 ,KC_MINS ,KC_6 ,KC_7 ,KC_8 ,KC_9 ,KC_0 ,F(RSpec)
68 ,KC_RBRC ,KC_Y ,KC_U ,KC_I ,KC_O ,KC_P ,F(RMdia) 73 ,KC_RBRC ,KC_Y ,KC_U ,KC_I ,KC_O ,KC_P ,F(RMdia)
69 ,KC_H ,KC_J ,KC_K ,KC_L ,KC_SCLN ,F(RSymb) 74 ,KC_H ,KC_J ,KC_K ,KC_L ,KC_SCLN ,F(RSymb)
70 ,KC_TAB ,KC_N ,KC_M ,KC_COMM,KC_DOT ,KC_SLSH ,KC_RSFT 75 ,KC_TAB ,KC_N ,KC_M ,KC_COMM,KC_DOT ,KC_SLSH ,M(RCaps)
71 ,KC_RGUI,KC_RALT,KC_HYPR ,KC_MEH ,KC_RCTL 76 ,KC_RGUI,KC_RALT,KC_HYPR ,KC_MEH ,KC_RCTL
72 ,KC_LEFT ,KC_RGHT 77 ,KC_LEFT ,KC_RGHT
73 ,KC_UP 78 ,KC_UP
@@ -158,7 +163,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
158 ,KC_VOLD ,KC_MSTP ,KC_MPLY 163 ,KC_VOLD ,KC_MSTP ,KC_MPLY
159), 164),
160 165
161/******* Lock Layer ******************************************************************************************************** 166/******* Special Layer *****************************************************************************************************
162 * 167 *
163 * ,-----------------------------------------------------. ,-----------------------------------------------------. 168 * ,-----------------------------------------------------. ,-----------------------------------------------------.
164 * | | Esc | | | | | | | | | | | | Bspc | | 169 * | | Esc | | | | | | | | | | | | Bspc | |
@@ -167,7 +172,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
167 * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| 172 * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------|
168 * | | | | | | |------| |------| | | | | | | 173 * | | | | | | |------| |------| | | | | | |
169 * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| 174 * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------|
170 * | Caps LOCK | | | | | | | | | | | | | | Caps LOCK | 175 * | | | | | | | | | | | | | | | RShift |
171 * `-----------+------+------+------+------+-------------' `-------------+------+------+------+------+-----------' 176 * `-----------+------+------+------+------+-------------' `-------------+------+------+------+------+-----------'
172 * | | | | | | | | | | | | 177 * | | | | | | | | | | | |
173 * `----------------------------------' `----------------------------------' 178 * `----------------------------------' `----------------------------------'
@@ -179,12 +184,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
179 * | | | | | | | | 184 * | | | | | | | |
180 * `--------------------' `--------------------' 185 * `--------------------' `--------------------'
181 */ 186 */
182[LOCK] = KEYMAP( 187[SPEC] = KEYMAP(
183// left hand 188// left hand
184 KC_TRNS ,KC_ESC ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS 189 KC_TRNS ,KC_ESC ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS
185,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS 190,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS
186,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS 191,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS
187,KC_CAPS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS 192,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS
188,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS 193,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS
189 194
190 ,KC_TRNS ,KC_TRNS 195 ,KC_TRNS ,KC_TRNS
@@ -194,7 +199,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
194 ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_BSPC ,KC_TRNS 199 ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_BSPC ,KC_TRNS
195 ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS 200 ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS
196 ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS 201 ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS
197 ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_CAPS 202 ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_RSFT
198 ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS 203 ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS
199 204
200 ,KC_TRNS ,KC_TRNS 205 ,KC_TRNS ,KC_TRNS
@@ -204,91 +209,118 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
204}; 209};
205 210
206const uint16_t PROGMEM fn_actions[] = { 211const uint16_t PROGMEM fn_actions[] = {
207 // the six faux shift keys are implemented as macro taps 212 // the faux shift keys are implemented as macro taps
208 [LSymb] = ACTION_MACRO_TAP(LSymb) 213 [LCaps] = ACTION_MACRO_TAP(LCaps)
214 ,[LSymb] = ACTION_MACRO_TAP(LSymb)
209 ,[LMdia] = ACTION_MACRO_TAP(LMdia) 215 ,[LMdia] = ACTION_MACRO_TAP(LMdia)
210 ,[LLock] = ACTION_MACRO_TAP(LLock) 216 ,[LSpec] = ACTION_MACRO_TAP(LSpec)
217 ,[RCaps] = ACTION_MACRO_TAP(RCaps)
211 ,[RSymb] = ACTION_MACRO_TAP(RSymb) 218 ,[RSymb] = ACTION_MACRO_TAP(RSymb)
212 ,[RMdia] = ACTION_MACRO_TAP(RMdia) 219 ,[RMdia] = ACTION_MACRO_TAP(RMdia)
213 ,[RLock] = ACTION_MACRO_TAP(RLock) 220 ,[RSpec] = ACTION_MACRO_TAP(RSpec)
214}; 221};
215 222
216uint16_t symb_shift = 0; // there are two shift keys for each layer, and two lock 223uint16_t caps_shift = 0;
217uint16_t mdia_shift = 0; // keys; we increment a counter for each key pressed and 224uint16_t symb_shift = 0;
218uint16_t shift_lock = 0; // decrement when released. 225uint16_t mdia_shift = 0;
219 226
220bool symb_lock = false; // when shift-lock is used in conjunction with a shift 227bool symb_lock = false;
221bool mdia_lock = false; // key the lock flag is toggled 228bool mdia_lock = false;
222 229
223const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) 230const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
224{ 231{
225 switch(id) { 232 switch(id) {
226 // shift and lock between layers 233 // There are two shift keys for each layer so we increment a layer_shift var when one
234 // is pressed and decrement when one is released. If both are pressed at the same time
235 // then the layer is locked (or unlocked). The shift counts are bound between 0 and 2
236 // only because sometimes rapid pressing led to irregular events; this way the states
237 // are self healing during use.
238
239 case LCaps: // both caps-shift keys trigger Left Shift
240 case RCaps: // so they don't interfere with the magic combo
241 if (record->event.pressed && !record->tap.count) {
242 if(++caps_shift > 2) caps_shift = 2;
243 if(caps_shift == 2) {
244 register_code(KC_CAPS);
245 unregister_code(KC_CAPS);
246 } else if(caps_shift == 1) {
247 register_code(KC_LSFT);
248 }
249 } else {
250 if(--caps_shift < 0) caps_shift = 0;
251 if(caps_shift == 0) unregister_code(KC_LSFT);
252 }
253 break;
227 254
228 case LSymb: 255 case LSymb:
229 if (record->event.pressed) { 256 if (record->event.pressed) {
230 symb_shift++; 257 if(++symb_shift > 2) symb_shift = 2;
231 if(shift_lock) symb_lock = !symb_lock; 258 if(symb_shift == 2) {
232 layer_on(SYMB); 259 symb_lock = !symb_lock;
260 } else if(symb_shift == 1) {
261 layer_on(SYMB);
262 }
233 } else { 263 } else {
234 symb_shift--; 264 if(--symb_shift < 0) symb_shift = 0;
235 if((!symb_shift) && (!symb_lock)) layer_off(SYMB); 265 if((symb_shift == 0) && (!symb_lock)) layer_off(SYMB);
236 } 266 }
237 break; 267 break;
238 268
239 case LMdia: 269 case LMdia:
240 if (record->event.pressed) { 270 if (record->event.pressed) {
241 if (record->tap.count && !shift_lock) { 271 if (record->tap.count && (!mdia_shift) && (!mdia_lock)) {
242 register_code(KC_TAB); 272 register_code(KC_TAB);
243 } else { 273 } else {
244 mdia_shift++; 274 if(++mdia_shift > 2) mdia_shift = 2;
245 if(shift_lock) mdia_lock = !mdia_lock; 275 if(mdia_shift == 2) {
246 layer_on(MDIA); 276 mdia_lock = !mdia_lock;
277 } else if(mdia_shift == 1) {
278 layer_on(MDIA);
279 }
247 } 280 }
248 } else { 281 } else {
249 if(record->tap.count && !shift_lock) { 282 if(record->tap.count && (!mdia_shift) && (!mdia_lock)) {
250 unregister_code(KC_TAB); 283 unregister_code(KC_TAB);
251 } else { 284 } else {
252 mdia_shift--; 285 if(--mdia_shift < 0) mdia_shift = 0;
253 if((!mdia_shift) && (!mdia_lock)) layer_off(MDIA); 286 if((!mdia_shift) && (!mdia_lock)) layer_off(MDIA);
254 } 287 }
255 } 288 }
256 break; 289 break;
257 290
258 case LLock: 291 case LSpec:
259 if (record->event.pressed) { 292 if (record->event.pressed) {
260 shift_lock++; 293 if (record->tap.count && !record->tap.interrupted) {
261 if(symb_shift) symb_lock = !symb_lock;
262 if(mdia_shift) mdia_lock = !mdia_lock;
263 if(!record->tap.count && (keyboard_report->mods & (MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)))) {
264 register_code(KC_CAPS);
265 unregister_code(KC_CAPS);
266 }
267 layer_on(LOCK);
268 } else {
269 if(record->tap.count && !record->tap.interrupted && !symb_shift && !mdia_shift) {
270 register_code(KC_GRV); 294 register_code(KC_GRV);
295 } else {
296 layer_on(SPEC);
297 }
298 } else {
299 if(record->tap.count && !record->tap.interrupted) {
271 unregister_code(KC_GRV); 300 unregister_code(KC_GRV);
301 } else {
302 layer_off(SPEC);
272 } 303 }
273 shift_lock--;
274 if(!shift_lock) layer_off(LOCK);
275 } 304 }
276 break; 305 break;
277 306
278 case RSymb: 307 case RSymb:
279 if (record->event.pressed) { 308 if (record->event.pressed) {
280 if (record->tap.count && !shift_lock) { 309 if (record->tap.count && (!symb_shift) && (!symb_lock)) {
281 register_code(KC_QUOT); 310 register_code(KC_QUOT);
282 } else { 311 } else {
283 symb_shift++; 312 if(++symb_shift > 2) symb_shift = 2;
284 if(shift_lock) symb_lock = !symb_lock; 313 if(symb_shift == 2) {
285 layer_on(SYMB); 314 symb_lock = !symb_lock;
315 } else if(symb_shift == 1) {
316 layer_on(SYMB);
317 }
286 } 318 }
287 } else { 319 } else {
288 if(record->tap.count && !shift_lock) { 320 if(record->tap.count && symb_shift == 0) {
289 unregister_code(KC_QUOT); 321 unregister_code(KC_QUOT);
290 } else { 322 } else {
291 symb_shift--; 323 if(--symb_shift < 0) symb_shift = 0;
292 if((!symb_shift) && (!symb_lock)) layer_off(SYMB); 324 if((!symb_shift) && (!symb_lock)) layer_off(SYMB);
293 } 325 }
294 } 326 }
@@ -296,40 +328,39 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
296 328
297 case RMdia: 329 case RMdia:
298 if (record->event.pressed) { 330 if (record->event.pressed) {
299 if (record->tap.count && !shift_lock) { 331 if (record->tap.count && (!mdia_shift) && (!mdia_lock)) {
300 register_code(KC_BSLS); 332 register_code(KC_BSLS);
301 } else { 333 } else {
302 mdia_shift++; 334 if(++mdia_shift > 2) mdia_shift = 2;
303 if(shift_lock) mdia_lock = !mdia_lock; 335 if(mdia_shift == 2) {
304 layer_on(MDIA); 336 mdia_lock = !mdia_lock;
337 } else if(mdia_shift == 1) {
338 layer_on(MDIA);
339 }
305 } 340 }
306 } else { 341 } else {
307 if(record->tap.count && !shift_lock) { 342 if(record->tap.count && (!mdia_shift) && (!mdia_lock)) {
308 unregister_code(KC_BSLS); 343 unregister_code(KC_BSLS);
309 } else { 344 } else {
310 mdia_shift--; 345 if(--mdia_shift < 0) mdia_shift = 0;
311 if((!mdia_shift) && (!mdia_lock)) layer_off(MDIA); 346 if((!mdia_shift) && (!mdia_lock)) layer_off(MDIA);
312 } 347 }
313 } 348 }
314 break; 349 break;
315 350
316 case RLock: 351 case RSpec:
317 if (record->event.pressed) { 352 if (record->event.pressed) {
318 shift_lock++; 353 if (record->tap.count && !record->tap.interrupted) {
319 if(symb_shift) symb_lock = !symb_lock;
320 if(mdia_shift) mdia_lock = !mdia_lock;
321 if(!record->tap.count && (keyboard_report->mods & (MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)))) {
322 register_code(KC_CAPS);
323 unregister_code(KC_CAPS);
324 }
325 layer_on(LOCK);
326 } else {
327 if (record->tap.count && !record->tap.interrupted && !symb_shift && !mdia_shift) {
328 register_code(KC_EQL); 354 register_code(KC_EQL);
355 } else {
356 layer_on(SPEC);
357 }
358 } else {
359 if(record->tap.count && !record->tap.interrupted) {
329 unregister_code(KC_EQL); 360 unregister_code(KC_EQL);
361 } else {
362 layer_off(SPEC);
330 } 363 }
331 shift_lock--;
332 if(!shift_lock) layer_off(LOCK);
333 } 364 }
334 break; 365 break;
335 366
@@ -399,7 +430,7 @@ void matrix_init_user(void) {
399// Runs constantly in the background, in a loop. 430// Runs constantly in the background, in a loop.
400void matrix_scan_user(void) { 431void matrix_scan_user(void) {
401 // shift or caps lock turns on red light 432 // shift or caps lock turns on red light
402 if((keyboard_report->mods & (MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT))) || (host_keyboard_leds() & (1<<USB_LED_CAPS_LOCK))) { 433 if(caps_shift || (keyboard_report->mods & MOD_BIT(KC_RSFT)) || (host_keyboard_leds() & (1<<USB_LED_CAPS_LOCK))) {
403 ergodox_right_led_1_on(); 434 ergodox_right_led_1_on();
404 } else { 435 } else {
405 ergodox_right_led_1_off(); 436 ergodox_right_led_1_off();
diff --git a/keyboard/ergodox_ez/keymaps/ordinary/ordinary-base.png b/keyboard/ergodox_ez/keymaps/ordinary/ordinary-base.png
index 69af8df4e..9c561a10a 100644
--- a/keyboard/ergodox_ez/keymaps/ordinary/ordinary-base.png
+++ b/keyboard/ergodox_ez/keymaps/ordinary/ordinary-base.png
Binary files differ
diff --git a/keyboard/ergodox_ez/keymaps/ordinary/ordinary-base.txt b/keyboard/ergodox_ez/keymaps/ordinary/ordinary-base.txt
index 04792f2df..25731ea2e 100644
--- a/keyboard/ergodox_ez/keymaps/ordinary/ordinary-base.txt
+++ b/keyboard/ergodox_ez/keymaps/ordinary/ordinary-base.txt
@@ -1,7 +1,7 @@
1[{x:3.5},"#\n3",{x:10.5},"*\n8"], 1[{x:3.5},"#\n3",{x:10.5},"*\n8"],
2[{y:-0.875,x:2.5},"@\n2",{x:1},"$\n4",{x:8.5},"&\n7",{x:1},"(\n9"], 2[{y:-0.875,x:2.5},"@\n2",{x:1},"$\n4",{x:8.5},"&\n7",{x:1},"(\n9"],
3[{y:-0.875,x:5.5},"%\n5",{c:"#ff4444"},"Esc",{x:4.5,c:"#cccccc"},"_\n\n\n\n\n\n-","^\n6"], 3[{y:-0.875,x:5.5},"%\n5",{c:"#ff4444"},"Esc",{x:4.5,c:"#cccccc"},"_\n\n\n\n\n\n-","^\n6"],
4[{y:-0.875,c:"#2277ff",w:1.5},"Shift\n\n~\n\n\n\nLock\n`",{c:"#cccccc"},"!\n1",{x:14.5},")\n0",{c:"#2277ff",w:1.5},"+\n\nShift\n\n\n\n=\nLock"], 4[{y:-0.875,c:"#2277ff",w:1.5},"Special\n\n~\n\n\n\nShift\n`",{c:"#cccccc"},"!\n1",{x:14.5},")\n0",{c:"#2277ff",w:1.5},"+\n\nSpecial\n\n\n\n=\nShift"],
5[{y:-0.375,x:3.5,c:"#cccccc"},"E",{x:10.5},"I"], 5[{y:-0.375,x:3.5,c:"#cccccc"},"E",{x:10.5},"I"],
6[{y:-0.875,x:2.5},"W",{x:1},"R",{x:8.5},"U",{x:1},"O"], 6[{y:-0.875,x:2.5},"W",{x:1},"R",{x:8.5},"U",{x:1},"O"],
7[{y:-0.875,x:5.5},"T",{h:1.5},"{\n\n\n\n\n\n[",{x:4.5,h:1.5},"}\n\n\n\n\n\n]","Y"], 7[{y:-0.875,x:5.5},"T",{h:1.5},"{\n\n\n\n\n\n[",{x:4.5,h:1.5},"}\n\n\n\n\n\n]","Y"],
@@ -14,7 +14,7 @@
14[{y:-0.75,x:3.5,c:"#cccccc"},"C",{x:10.5},"<\n,"], 14[{y:-0.75,x:3.5,c:"#cccccc"},"C",{x:10.5},"<\n,"],
15[{y:-0.875,x:2.5},"X",{x:1},"V",{x:8.5},"M",{x:1},">\n."], 15[{y:-0.875,x:2.5},"X",{x:1},"V",{x:8.5},"M",{x:1},">\n."],
16[{y:-0.875,x:5.5},"B",{x:6.5},"N"], 16[{y:-0.875,x:5.5},"B",{x:6.5},"N"],
17[{y:-0.875,c:"#2277ff",fa:[0,1,0,1,0,0,0],w:1.5},"Capitals\nShift\n\n\n\n\nShift",{c:"#cccccc"},"Z",{x:14.5,f:3},"?\n/",{c:"#2277ff",w:1.5},"\n\nCapitals\nShift\n\n\n\nShift"], 17[{y:-0.875,c:"#2277ff",w:1.5},"Capitals\n\n\n\n\n\nShift",{c:"#cccccc"},"Z",{x:14.5},"?\n/",{c:"#2277ff",w:1.5},"\n\nCapitals\n\n\n\n\nShift"],
18[{y:-0.375,x:3.5,c:"#77aaff"},"Option\n\n\nLAlt",{x:10.5},"Option\n\n\nRAlt"], 18[{y:-0.375,x:3.5,c:"#77aaff"},"Option\n\n\nLAlt",{x:10.5},"Option\n\n\nRAlt"],
19[{y:-0.875,x:2.5},"Hyper",{x:1},"Cmd\n\n\nSuper",{x:8.5},"Cmd\n\n\nSuper",{x:1},"Hyper"], 19[{y:-0.875,x:2.5},"Hyper",{x:1},"Cmd\n\n\nSuper",{x:8.5},"Cmd\n\n\nSuper",{x:1},"Hyper"],
20[{y:-0.75,x:0.5},"Ctrl\n\n\nLCtrl","Meh",{x:14.5},"Meh","Ctrl\n\n\nRCtrl"], 20[{y:-0.75,x:0.5},"Ctrl\n\n\nLCtrl","Meh",{x:14.5},"Meh","Ctrl\n\n\nRCtrl"],
diff --git a/keyboard/ergodox_ez/keymaps/ordinary/ordinary-media.png b/keyboard/ergodox_ez/keymaps/ordinary/ordinary-media.png
index f3fed3cdb..99e5ed80b 100644
--- a/keyboard/ergodox_ez/keymaps/ordinary/ordinary-media.png
+++ b/keyboard/ergodox_ez/keymaps/ordinary/ordinary-media.png
Binary files differ
diff --git a/keyboard/ergodox_ez/keymaps/ordinary/ordinary-media.txt b/keyboard/ergodox_ez/keymaps/ordinary/ordinary-media.txt
index f1ecd5fdc..4eccc9f35 100644
--- a/keyboard/ergodox_ez/keymaps/ordinary/ordinary-media.txt
+++ b/keyboard/ergodox_ez/keymaps/ordinary/ordinary-media.txt
@@ -1,7 +1,7 @@
1[{x:3.5,c:"#99de2a"},"F13",{x:10.5},"F18"], 1[{x:3.5,c:"#99de2a"},"F13",{x:10.5},"F18"],
2[{y:-0.875,x:2.5},"F12",{x:1},"F14",{x:8.5},"F17",{x:1},"F19"], 2[{y:-0.875,x:2.5},"F12",{x:1},"F14",{x:8.5},"F17",{x:1},"F19"],
3[{y:-0.875,x:5.5},"F15",{c:"#ff4444"},"Esc",{x:4.5,c:"#cccccc",a:7},"",{c:"#99de2a",a:4},"F16"], 3[{y:-0.875,x:5.5},"F15",{c:"#ff4444"},"Esc",{x:4.5,c:"#737373",a:7},"",{c:"#99de2a",a:4},"F16"],
4[{y:-0.875,c:"#2277ff",w:1.5},"Shift\n\n\n\n\n\nLock",{c:"#99de2a"},"F11",{x:14.5},"F20",{c:"#2277ff",w:1.5},"\n\nShift\n\n\n\n\nLock"], 4[{y:-0.875,c:"#2277ff",w:1.5},"Special\n\n\n\n\n\nShift",{c:"#99de2a"},"F11",{x:14.5},"F20",{c:"#2277ff",w:1.5},"\n\nSpecial\n\n\n\n\nShift"],
5[{y:-0.375,x:3.5,c:"#ff8500"},"Mouse\n\n\n\n\n\nUp",{x:10.5},"Cursor\n\n\n\n\n\nUp"], 5[{y:-0.375,x:3.5,c:"#ff8500"},"Mouse\n\n\n\n\n\nUp",{x:10.5},"Cursor\n\n\n\n\n\nUp"],
6[{y:-0.875,x:2.5},"Mouse\n\n\n\n\n\nUpLeft",{x:1},"Mouse\n\n\n\n\n\nUpRgt",{x:8.5,c:"#ffb063"},"Home",{x:1},"Page\n\n\n\n\n\nUp"], 6[{y:-0.875,x:2.5},"Mouse\n\n\n\n\n\nUpLeft",{x:1},"Mouse\n\n\n\n\n\nUpRgt",{x:8.5,c:"#ffb063"},"Home",{x:1},"Page\n\n\n\n\n\nUp"],
7[{y:-0.875,x:5.5,c:"#e6e067"},"Vol\n\n\n\n\n\nUp",{c:"#ffb063",h:1.5},"Scroll\n\n\n\n\n\nUp",{x:4.5,h:1.5},"Scroll\n\n\n\n\n\nUp",{c:"#e6e067"},"Print\n\n\n\n\n\nScreen"], 7[{y:-0.875,x:5.5,c:"#e6e067"},"Vol\n\n\n\n\n\nUp",{c:"#ffb063",h:1.5},"Scroll\n\n\n\n\n\nUp",{x:4.5,h:1.5},"Scroll\n\n\n\n\n\nUp",{c:"#e6e067"},"Print\n\n\n\n\n\nScreen"],
@@ -13,9 +13,9 @@
13[{y:-0.625,x:6.5,c:"#ffb063",h:1.5},"Scroll\n\n\n\n\n\nDown",{x:4.5,h:1.5},"Scroll\n\n\n\n\n\nDown"], 13[{y:-0.625,x:6.5,c:"#ffb063",h:1.5},"Scroll\n\n\n\n\n\nDown",{x:4.5,h:1.5},"Scroll\n\n\n\n\n\nDown"],
14[{y:-0.75,x:3.5,c:"#ff8500"},"Mouse\n\n\n\n\n\nDown",{x:10.5},"Cursor\n\n\n\n\n\nDown"], 14[{y:-0.75,x:3.5,c:"#ff8500"},"Mouse\n\n\n\n\n\nDown",{x:10.5},"Cursor\n\n\n\n\n\nDown"],
15[{y:-0.875,x:2.5},"Mouse\n\n\n\n\n\nDnLeft",{x:1},"Mouse\n\n\n\n\n\nDnRgt",{x:8.5,c:"#ffb063"},"End",{x:1},"Page\n\n\n\n\n\nDown"], 15[{y:-0.875,x:2.5},"Mouse\n\n\n\n\n\nDnLeft",{x:1},"Mouse\n\n\n\n\n\nDnRgt",{x:8.5,c:"#ffb063"},"End",{x:1},"Page\n\n\n\n\n\nDown"],
16[{y:-0.875,x:5.5,c:"#e6e067"},"Mute",{x:6.5,c:"#cccccc",a:7},""], 16[{y:-0.875,x:5.5,c:"#e6e067"},"Mute",{x:6.5,c:"#737373",a:7},""],
17[{y:-0.875,c:"#2277ff",a:4,fa:[0,1,0,0,0,0,0],w:1.5},"Capitals\nShift\n\n\n\n\nShift",{c:"#cccccc",a:7},"",{x:14.5},"",{c:"#2277ff",a:4,fa:[0,1,0,1],w:1.5},"\n\nCapitals\nShift\n\n\n\nShift"], 17[{y:-0.875,c:"#2277ff",a:4,w:1.5},"Capitals\n\n\n\n\n\nShift",{c:"#737373",a:7},"",{x:14.5},"",{c:"#2277ff",a:4,w:1.5},"\n\nCapitals\n\n\n\n\nShift"],
18[{y:-0.375,x:3.5,c:"#ff8500"},"Middle\n\n\n\n\n\nClick",{x:10.5,c:"#ffb063"},"Delete\n\n\nOption"], 18[{y:-0.375,x:3.5,c:"#ff8500"},"Middle\n\n\n\n\n\nClick",{x:10.5,c:"#ffb063",fa:[0,0,0,1]},"Delete\n\n\nOption"],
19[{y:-0.875,x:2.5,c:"#ff8500"},"Left\n\n\n\n\n\nClick",{x:1},"Right\n\n\n\n\n\nClick",{x:8.5,c:"#ffb063"},"Insert\n\n\nCmd",{x:1,c:"#77aaff"},"Hyper"], 19[{y:-0.875,x:2.5,c:"#ff8500"},"Left\n\n\n\n\n\nClick",{x:1},"Right\n\n\n\n\n\nClick",{x:8.5,c:"#ffb063"},"Insert\n\n\nCmd",{x:1,c:"#77aaff"},"Hyper"],
20[{y:-0.75,x:0.5},"Ctrl\n\n\nLCtrl","Meh",{x:14.5},"Meh","Crtl\n\n\nRCtrl"], 20[{y:-0.75,x:0.5},"Ctrl\n\n\nLCtrl","Meh",{x:14.5},"Meh","Crtl\n\n\nRCtrl"],
21[{r:30,rx:6.5,ry:4.25,y:-1,x:1,c:"#ccbb00"},"Stop\n\n\nBrowser","Reload\n\n\nBrowser"], 21[{r:30,rx:6.5,ry:4.25,y:-1,x:1,c:"#ccbb00"},"Stop\n\n\nBrowser","Reload\n\n\nBrowser"],
diff --git a/keyboard/ergodox_ez/keymaps/ordinary/ordinary-special.png b/keyboard/ergodox_ez/keymaps/ordinary/ordinary-special.png
new file mode 100644
index 000000000..6eecf447e
--- /dev/null
+++ b/keyboard/ergodox_ez/keymaps/ordinary/ordinary-special.png
Binary files differ
diff --git a/keyboard/ergodox_ez/keymaps/ordinary/ordinary-special.txt b/keyboard/ergodox_ez/keymaps/ordinary/ordinary-special.txt
new file mode 100644
index 000000000..a08827c6d
--- /dev/null
+++ b/keyboard/ergodox_ez/keymaps/ordinary/ordinary-special.txt
@@ -0,0 +1,27 @@
1[{x:3.5,a:7},"",{x:10.5},""],
2[{y:-0.875,x:2.5},"",{x:1},"",{x:8.5},"",{x:1},""],
3[{y:-0.875,x:5.5},"",{c:"#ff4444",a:4},"Esc",{x:4.5,c:"#cccccc",a:7},"",""],
4[{y:-0.875,c:"#000000",t:"#ff0000",a:4,w:1.5},"Special\n\n\n\n\n\nShift",{c:"#ff4444",t:"#000000"},"Esc",{x:14.5,c:"#54d6de"},"Back\n\n\n\n\n\nspace",{c:"#000000",t:"#ff0000",w:1.5},"\n\nSpecial\n\n\n\n\nShift"],
5[{y:-0.375,x:3.5,c:"#cccccc",t:"#000000",a:7},"",{x:10.5},""],
6[{y:-0.875,x:2.5},"",{x:1},"",{x:8.5},"",{x:1},""],
7[{y:-0.875,x:5.5},"",{h:1.5},"",{x:4.5,h:1.5},"",""],
8[{y:-0.875,w:1.5},"","",{x:14.5},"",{w:1.5},""],
9[{y:-0.375,x:3.5},"",{x:10.5},""],
10[{y:-0.875,x:2.5},"",{x:1},"",{x:8.5},"",{x:1},""],
11[{y:-0.875,x:5.5},"",{x:6.5},""],
12[{y:-0.875,w:1.5},"","",{x:14.5},"",{w:1.5},""],
13[{y:-0.625,x:6.5,h:1.5},"",{x:4.5,h:1.5},""],
14[{y:-0.75,x:3.5},"",{x:10.5},""],
15[{y:-0.875,x:2.5},"",{x:1},"",{x:8.5},"",{x:1},""],
16[{y:-0.875,x:5.5},"",{x:6.5},""],
17[{y:-0.875,w:1.5},"","",{x:14.5},"",{c:"#2277ff",w:1.5},"RShift"],
18[{y:-0.375,x:3.5,c:"#cccccc"},"",{x:10.5},""],
19[{y:-0.875,x:2.5},"",{x:1},"",{x:8.5},"",{x:1},""],
20[{y:-0.75,x:0.5},"","",{x:14.5},"",""],
21[{r:30,rx:6.5,ry:4.25,y:-1,x:1},"",""],
22[{h:2},"",{h:2},"",""],
23[{x:2},""],
24[{r:-30,rx:13,y:-1,x:-3},"",""],
25[{x:-3},"",{h:2},"",{h:2},""],
26[{x:-3},""]
27
diff --git a/keyboard/ergodox_ez/keymaps/ordinary/ordinary-symbol.png b/keyboard/ergodox_ez/keymaps/ordinary/ordinary-symbol.png
index 8a0cfd63f..e4de64a96 100644
--- a/keyboard/ergodox_ez/keymaps/ordinary/ordinary-symbol.png
+++ b/keyboard/ergodox_ez/keymaps/ordinary/ordinary-symbol.png
Binary files differ
diff --git a/keyboard/ergodox_ez/keymaps/ordinary/ordinary-symbol.txt b/keyboard/ergodox_ez/keymaps/ordinary/ordinary-symbol.txt
index 93f632e95..e199f5c59 100644
--- a/keyboard/ergodox_ez/keymaps/ordinary/ordinary-symbol.txt
+++ b/keyboard/ergodox_ez/keymaps/ordinary/ordinary-symbol.txt
@@ -1,7 +1,7 @@
1[{x:3.5,c:"#99de2a"},"F3",{x:10.5},"F8"], 1[{x:3.5,c:"#99de2a"},"F3",{x:10.5},"F8"],
2[{y:-0.875,x:2.5},"F2",{x:1},"F4",{x:8.5},"F7",{x:1},"F9"], 2[{y:-0.875,x:2.5},"F2",{x:1},"F4",{x:8.5},"F7",{x:1},"F9"],
3[{y:-0.875,x:5.5},"F5",{c:"#ff4444"},"Esc",{x:4.5,c:"#bbddbb"},"_\n\n\n\n\n\n-",{c:"#99de2a"},"F6"], 3[{y:-0.875,x:5.5},"F5",{c:"#ff4444"},"Esc",{x:4.5,c:"#bbddbb"},"_\n\n\n\n\n\n-",{c:"#99de2a"},"F6"],
4[{y:-0.875,c:"#2277ff",w:1.5},"Shift\n\n\n\n\n\nLock",{c:"#99de2a"},"F1",{x:14.5},"F10",{c:"#2277ff",w:1.5},"\n\nShift\n\n\n\n\nLock"], 4[{y:-0.875,c:"#2277ff",w:1.5},"Special\n\n\n\n\n\nShift",{c:"#99de2a"},"F1",{x:14.5},"F10",{c:"#2277ff",w:1.5},"\n\nSpecial\n\n\n\n\nShift"],
5[{y:-0.375,x:3.5,c:"#bbddbb"},"{",{x:10.5,c:"#89b087"},"8"], 5[{y:-0.375,x:3.5,c:"#bbddbb"},"{",{x:10.5,c:"#89b087"},"8"],
6[{y:-0.875,x:2.5,c:"#bbddbb"},"@",{x:1},"}",{x:8.5,c:"#89b087"},"7",{x:1},"9"], 6[{y:-0.875,x:2.5,c:"#bbddbb"},"@",{x:1},"}",{x:8.5,c:"#89b087"},"7",{x:1},"9"],
7[{y:-0.875,x:5.5,c:"#bbddbb"},"&",{h:1.5},"<",{x:4.5,h:1.5},">","|"], 7[{y:-0.875,x:5.5,c:"#bbddbb"},"&",{h:1.5},"<",{x:4.5,h:1.5},">","|"],
@@ -14,7 +14,7 @@
14[{y:-0.75,x:3.5,c:"#bbddbb"},"[",{x:10.5,c:"#89b087"},"2"], 14[{y:-0.75,x:3.5,c:"#bbddbb"},"[",{x:10.5,c:"#89b087"},"2"],
15[{y:-0.875,x:2.5,c:"#bbddbb"},"^",{x:1},"]",{x:8.5,c:"#89b087"},"1",{x:1},"3"], 15[{y:-0.875,x:2.5,c:"#bbddbb"},"^",{x:1},"]",{x:8.5,c:"#89b087"},"1",{x:1},"3"],
16[{y:-0.875,x:5.5,c:"#bbddbb"},"~",{x:6.5},"\\"], 16[{y:-0.875,x:5.5,c:"#bbddbb"},"~",{x:6.5},"\\"],
17[{y:-0.875,c:"#2277ff",f2:1,w:1.5},"Capitals\nShift\n\n\n\n\nShift",{c:"#bbddbb"},"%",{x:14.5,c:"#89b087"},"-",{c:"#2277ff",fa:[0,1,0,1],w:1.5},"\n\nCapitals\nShift\n\n\n\nShift"], 17[{y:-0.875,c:"#2277ff",w:1.5},"Capitals\n\n\n\n\n\nShift",{c:"#bbddbb"},"%",{x:14.5,c:"#89b087"},"-",{c:"#2277ff",w:1.5},"\n\nCapitals\n\n\n\n\nShift"],
18[{y:-0.375,x:3.5,c:"#77aaff"},"Option\n\n\nLAlt",{x:10.5,c:"#89b087"},".\n\n\nOption"], 18[{y:-0.375,x:3.5,c:"#77aaff"},"Option\n\n\nLAlt",{x:10.5,c:"#89b087"},".\n\n\nOption"],
19[{y:-0.875,x:2.5,c:"#77aaff"},"Hyper",{x:1},"Cmd\n\n\nSuper",{x:8.5,c:"#89b087"},"0\n\n\nCmd",{x:1},"=\n\n\nHyper"], 19[{y:-0.875,x:2.5,c:"#77aaff"},"Hyper",{x:1},"Cmd\n\n\nSuper",{x:8.5,c:"#89b087"},"0\n\n\nCmd",{x:1},"=\n\n\nHyper"],
20[{y:-0.75,x:0.5,c:"#77aaff"},"Ctrl\n\n\nLCtrl","Meh",{x:14.5,c:"#89b087"},"+\n\n\nMeh","Enter\n\n\nCtrl"], 20[{y:-0.75,x:0.5,c:"#77aaff"},"Ctrl\n\n\nLCtrl","Meh",{x:14.5,c:"#89b087"},"+\n\n\nMeh","Enter\n\n\nCtrl"],
@@ -22,6 +22,6 @@
22[{h:2},"Space",{h:2},"Enter","Up"], 22[{h:2},"Space",{h:2},"Enter","Up"],
23[{x:2},"Down"], 23[{x:2},"Down"],
24[{r:-30,rx:13,y:-1,x:-3},"Home","End"], 24[{r:-30,rx:13,y:-1,x:-3},"Home","End"],
25[{x:-3},"Page\n\n\n\n\n\nUp",{f:3,h:2},"< Del\n\n\nBackspace",{f:3,h:2},"Del >\n\n\nDelete"], 25[{x:-3},"Page\n\n\n\n\n\nUp",{h:2},"< Del\n\n\nBackspace",{h:2},"Del >\n\n\nDelete"],
26[{x:-3},"Page\n\n\n\n\n\nDown"] 26[{x:-3},"Page\n\n\n\n\n\nDown"]
27 27
diff --git a/keyboard/ergodox_ez/keymaps/ordinary/ordinary.hex b/keyboard/ergodox_ez/keymaps/ordinary/ordinary.hex
index 6a42b7098..1e740e4f3 100644
--- a/keyboard/ergodox_ez/keymaps/ordinary/ordinary.hex
+++ b/keyboard/ergodox_ez/keymaps/ordinary/ordinary.hex
@@ -1,1198 +1,1202 @@
1:100000000C94C7020C940B030C940B030C940B037D 1:100000000C94D7020C941B030C941B030C941B033D
2:100010000C940B030C940B030C940B030C940B0328 2:100010000C941B030C941B030C941B030C941B03E8
3:100020000C940B030C940B030C942A0E0C94FC0EF2 3:100020000C941B030C941B030C94500E0C94220F85
4:100030000C940B030C940B030C940B030C940B0308 4:100030000C941B030C941B030C941B030C941B03C8
5:100040000C940B030C947B230C940B030C940B0368 5:100040000C941B030C94A1230C941B030C941B0312
6:100050000C940B030C941F1D0C940B030C940B03BA 6:100050000C941B030C94451D0C941B030C941B0364
7:100060000C940B030C940B030C940B030C940B03D8 7:100060000C941B030C941B030C941B030C941B0398
8:100070000C940B030C940B030C940B030C940B03C8 8:100070000C941B030C941B030C941B030C941B0388
9:100080000C940B030C940B030C940B030C940B03B8 9:100080000C941B030C941B030C941B030C941B0378
10:100090000C940B030C940B030C940B030C940B03A8 10:100090000C941B030C941B030C941B030C941B0368
11:1000A0000C940B030C940B030C940B031C034E03D6 11:1000A0000C941B030C941B030C941B032B035F0386
12:1000B0009A0335035E032D044A044D0450045E0484 12:1000B0008403C2032B036803A603D00391049104B5
13:1000C000610F830F6E10830F6E10C50FE80F6E1057 13:1000C00054045E0468047A04870FA90F9410A90FE2
14:1000D0003D1050104A134A138B138B13CD13091480 14:1000D0009410EB0F0E1094106310761070137013C1
15:1000E000091609162114091618151815E31509160D 15:1000E000B113B113F3132F142F162F1647142F1615
16:1000F0000916F71500C801C802C803C804C805C816 16:1000F0003E153E1509162F162F161D16000000007E
17:10010000022001200030E100E00000001E00140089 17:1001000000000000000000000000000000000000EF
18:1001100004001D0000074E001F001A0016001B00FF 18:100110000AC80BC80CC80DC80EC80FC810C811C833
19:10012000000F4C002000080007000600E2002A0033 19:100120000D200C200B300A30E00000001E001400EF
20:100130002100150009001900E3004B002200170000 20:1001300004001D0000074E001F001A0016001B00DF
21:100140000A00050000004A0029002F0000002B02D1 21:10014000000F4C002000080007000600E2002A0013
22:1001500000004D002D00300000002B00000050007A 22:100150002100150009001900E3004B0022001700E0
23:1001600023001C000B00110000004F0024001800A9 23:100160000A00050000004A0029002F0000002B02B1
24:100170000D001000E700520025000C000E003600B4 24:1001700000004D002D00300000002B00000050005A
25:10018000E6002C00260012000F003700000F2800A8 25:1001800023001C000B00110000004F002400180089
26:100190002700130033003800000751000520042019 26:100190000D001000E700520025000C000E00360094
27:1001A0000320E500E400000001000100010001005F 27:1001A000E6002C00260012000F003700000F280088
28:1001B000E00000003A001E02200222020007510067 28:1001B00027001300330038000007510011201020E1
29:1001C0003B001F0221022302000F28003C002F02E7 29:1001C0000F200E30E40000000100010001000100DA
30:1001D00026022F00E2002C003D00300227023000F2 30:1001D000E00000003A001E02200222020007510047
31:1001E000E30052003E0024023500350200005000BA 31:1001E0003B001F0221022302000F28003C002F02C7
32:1001F0002900360200002B0000004F002D003702BE 32:1001F00026022F00E2002C003D00300227023000D2
33:1002000000002B0200004A003F003102380031009C 33:10020000E30052003E002402350035020000500099
34:1002100000004D004000240021001E0027784B0004 34:100210002900360200002B0000004F002D0037029D
35:100220004100250022001F0037744C0042002600C8 35:1002200000002B0200004A003F003102380031007C
36:10023000230020002E7F2A004300380025022D00D5 36:1002300000004D004000240021001E0027784B00E4
37:100240002E774E000100010001000100287100001E 37:100240004100250022001F0037744C0042002600A8
38:100250000100010001000100E00000004400660010 38:10025000230020002E7F2A004300380025022D00B5
39:10026000A60000000007B50045000630F200083087 39:100260002E774E00010001000100010028710000FE
40:10027000F60000006800F000F100F100F400B600A4 40:100270000100010001000100E000000044006600F0
41:1002800069000730F3000930F500B4006A00A900E6 41:10028000A60000000007B50045001430F20016304B
42:10029000AA00A8000000B8002900F9000000FA0038 42:10029000F60000006800F000F100F100F400B60084
43:1002A0000000B9000000F9000000FA000000AC00F6 43:1002A00069001530F3001730F500B4006A00A900AA
44:1002B0006B004600530000000000AB006C004A00D9 44:1002B000AA00A8000000B8002900F9000000FA0018
45:1002C00050004D004978A9006D00520051005100C6 45:1002C0000000B9000000F9000000FA000000AC00D6
46:1002D0004C74AE006E004B004F004E00000FAD009E 46:1002D0006B004600530000000000AB006C004A00B9
47:1002E0006F00B100B30000000007AA000100010088 47:1002E00050004D004978A9006D00520051005100A6
48:1002F00001000100E40000000100010001003900DC 48:1002F0004C74AE006E004B004F004E00000FAD007E
49:1003000001000000290001000100010001000100BE 49:100300006F00B100B30000000007AA000100010067
50:1003100001000100010001000100010001000100D5 50:1003100001000100E40000000100010001000100F3
51:1003200001000100010001000100010001000100C5 51:10032000010000002900010001000100010001009E
52:1003300001000100010001000100010000000100B6 52:1003300001000100010001000100010001000100B5
53:1003400001000100000001000000010001000100A7 53:1003400001000100010001000100010001000100A5
54:100350000000010000000100010001000100010097 54:100350000100010001000100010001000000010096
55:100360000000010001000100010001000100010086 55:100360000100010000000100000001000100010087
56:100370000100010001000100010001000100010075 56:100370000000010000000100010001000100010077
57:1003800001000100010001002A000100010001003C 57:100380000000010001000100010001000100010066
58:10039000010001000100010001003900010000001E 58:100390000100010001000100010001000100010055
59:1003A00016034500720067006F0044006F0078007C 59:1003A00001000100010001002A000100010001001C
60:1003B000200045005A000000160345007200670047 60:1003B00001000100010001000100E5000100000052
61:1003C0006F0044006F007800200045005A000000D4 61:1003C00016034500720067006F0044006F0078005C
62:1003D0000403090409026D00040100A0FA090400E5 62:1003D000200045005A000000160345007200670027
63:1003E000000103010100092111010001223F000762 63:1003E0006F0044006F007800200045005A000000B4
64:1003F00005810308000A0904010001030102000944 64:1003F0000403090409026D00040100A0FA090400C5
65:100400002111010001224D000705820308000A099D 65:10040000000103010100092111010001223F000741
66:10041000040200010300000009211101000122363D 66:1004100005810308000A0904010001030102000923
67:10042000000705830308000A090403000103000014 67:100420002111010001224D000705820308000A097D
68:100430000009211101000122390007058403100081 68:10043000040200010300000009211101000122361D
69:10044000011201100100000008EDFE071301000178 69:10044000000705830308000A0904030001030000F4
70:1004500002000105010906A101050719E029E715B8 70:100450000009211101000122390007058403100061
71:1004600000250195087501810205081901290595E6 71:10046000011201100100000008EDFE071301000158
72:100470000575019102950175039101050719002980 72:1004700002000105010906A101050719E029E71598
73:100480007715002501957875018102C00501098065 73:1004800000250195087501810205081901290595C6
74:10049000A101850216010026B7001A01002AB70043 74:100490000575019102950175039101050719002960
75:1004A000751095018100C0050C0901A10185031695 75:1004A0007715002501957875018102C00501098045
76:1004B0000100269C021A01002A9C027510950181F8 76:1004B000A101850216010026B7001A01002AB70023
77:1004C00000C005010902A1010901A10005091901E6 77:1004C000751095018100C0050C0901A10185031675
78:1004D0002905150025019505750181029501750312 78:1004D0000100269C021A01002A9C027510950181D8
79:1004E00081010501093009311581257F95027508C3 79:1004E00000C005010902A1010901A10005091901C6
80:1004F000810609381581257F950175088106050C4F 80:1004F00029051500250195057501810295017503F2
81:100500000A38021581257F950175088106C0C0054E 81:1005000081010501093009311581257F95027508A2
82:10051000010906A101050719E029E7150025019544 82:10051000810609381581257F950175088106050C2E
83:1005200008750181029501750881010508190129E5 83:100520000A38021581257F950175088106C0C0052E
84:10053000059505750191029501750391010507194E 84:10053000010906A101050719E029E7150025019524
85:100540000029FF150025FF950675088100C00000F1 85:1005400008750181029501750881010508190129C5
86:10055000000000000000000000010204060A0F175E 86:10055000059505750191029501750391010507192E
87:10056000202C3A4A5D71879DB3C7DAE9F5FCFFFCA0 87:100560000029FF150025FF950675088100C00000D1
88:10057000F5E9DAC7B39D87715D4A3A2C20170F0A57 88:10057000000000000000000000010204060A0F173E
89:100580000604020100000000000000000000112429 89:10058000202C3A4A5D71879DB3C7DAE9F5FCFFFC80
90:100590001FBECFEFDAE0DEBFCDBF04B603FE24C03E 90:10059000F5E9DAC7B39D87715D4A3A2C20170F0A37
91:1005A0008091F6019091F701A091F801B091F901C5 91:1005A0000604020100000000000000000000112409
92:1005B0008730904BA740B04BB9F41092F6011092DF 92:1005B0001FBECFEFDAE0DEBFCDBF04B603FE24C01E
93:1005C000F7011092F8011092F90114BE84B7877FE9 93:1005C0008091F6019091F701A091F801B091F901A5
94:1005D00084BF88E10FB6F8948093600010926000A9 94:1005D0008730904BA740B04BB9F41092F6011092BF
95:1005E0000FBEE0E0FFE3099511E0A0E0B1E0E4E830 95:1005E000F7011092F8011092F90114BE84B7877FC9
96:1005F000FAE402C005900D92A433B107D9F721E0C7 96:1005F00084BF88E10FB6F894809360001092600089
97:10060000A4E3B1E001C01D92A63FB207E1F70E944A 97:100600000FBEE0E0FFE3099511E0A0E0B1E0E0ED0E
98:10061000700B0C9440250C940000DC01462F50E038 98:10061000FAE402C005900D92A433B107D9F721E0A6
99:100620004A30510508F05DC14A5A5F4F12962C912D 99:10062000A4E3B1E001C01D92A63FB207E1F70E942A
100:100630001297FA010C94F02480913A0190913B01B9 100:10063000960B0C9466250C940000DC01462F50E0CC
101:100640002223F1F0019690933B0180933A0180912F 101:100640004A5051094E30510508F06BC14A5A5F4F6C
102:10065000360190913701892B31F08091350191E07D 102:10065000FA010C94162512962C91129780913A016A
103:1006600089278093350181E09AC015968C91807F0F 103:1006600090913B012223F9F015962C91207FD9F42B
104:100670002111BFC009F0D5C080913A0190913B0192 104:1006700001968330910510F082E090E090933B0169
105:10068000019790933B0180933A01892B09F029C18E 105:1006800080933A0180913A0190913B01823091052B
106:1006900080913501811125C181E0A8C015968C910A 106:1006900029F489E30E94F81189E30EC0019709F05B
107:1006A000807F222349F12091360130913701882340 107:1006A00040C181EEFAC0019790933B0180933A01DB
108:1006B00081F02115310569F48BE2C1C015968C914A 108:1006B000892B09F036C181EE0E94C01232C1129618
109:1006C000807F222319F12091360130913701811169 109:1006C0002C918091380190913901222379F090C0CA
110:1006D000B1C0809138019091390101969093390110 110:1006D00012963C91129715962C9180913801909129
111:1006E00080933801232B31F08091340191E08927E8 111:1006E0003901207F31117AC009F09FC001979093A2
112:1006F0008093340182E053C0882351F08091360109 112:1006F000390180933801892B09F013C180913501AC
113:1007000090913701892B21F48BE2A4C081119AC00A 113:1007000081110FC181E067C012963C911297159636
114:10071000809138019091390101979093390180932C 114:100710002C918091360190913701207F332361F035
115:100720003801892B09F0DDC0809134018111D9C0D5 115:10072000222309F491C0009709F08EC02091340172
116:1007300082E05CC015963C912223A1F180913601A4 116:1007300021118AC08BE2B1C02223B1F00097A1F44D
117:100740009091370101969093370180933601809103 117:1007400020913401211110C08BE2B6CF12963C915A
118:100750003A0190913B01892B31F08091350191E074 118:10075000129715962C918091360190913701207F48
119:100760008927809335018091380190913901892B37 119:10076000311168C009F08DC00197909337018093D3
120:1007700031F08091340191E0892780933401307FFA 120:100770003601892B09F0D5C0809134018111D1C097
121:1007800069F4E0910E01F0910F018081827231F0E5 121:1007800082E029C012969C91129715968C9199231C
122:1007900089E30E94D21189E30E949A1283E00E94A9 122:10079000B1F0982F907F79F080FD0DC085E37DC08A
123:1007A0009D1A9FC0832F807FA1F030FD12C08091E1 123:1007A00012969C91129715968C91992379F0982F17
124:1007B0003A0190913B01892B61F48091380190912D 124:1007B000907F09F06FC083E00E94C31AB2C0982FE7
125:1007C0003901892B31F485E30E94D21185E30E941F 125:1007C000907F41F080FD06C085E376CF982F907F23
126:1007D0009A128091360190913701019790933701D9 126:1007D00009F066C083E00E94E41AA3C0222341F01E
127:1007E00080933601892B09F07CC083E00E94BE1AF9 127:1007E000009731F420913501211102C084E355C0F6
128:1007F00078C02091360130913701882329F02115E6 128:1007F00001968330910510F082E090E090933901EA
129:10080000310511F484E31BC080913A0190913B01C2 129:1008000080933801809138019091390182309105AF
130:10081000019690933B0180933A01232B09F01DCF61 130:1008100029F0019709F085C081E0CECF80913501A4
131:1008200022CF8091360190913701892B09F024CF96 131:1008200091E08927809335017CC0009709F05ECF65
132:1008300084E310C02115310509F04BCF81E30E94FC 132:1008300084E342CF222341F0009731F42091340128
133:10084000D2114FC08091360190913701892B09F068 133:10084000211102C081E329C001968330910510F087
134:100850005FCF81E30E949A1244C015963C9121110A 134:1008500082E090E0909337018093360180913601D9
135:100860006DCF832F807F09F4B4CF30FDB2CF80915C 135:10086000909137018230910529F0019709F059C024
136:100870003A0190913B01892B09F0ABCF809138016F 136:1008700082E0A2CF8091340191E0892780933401F6
137:1008800090913901892B09F0A4CF8EE20E94D211F8 137:1008800050C0009709F070CF2091340121116CCF36
138:100890008EE29DCF80EF90E005C080EF90E010C029 138:1008900081E312CF80FD8FCF8EE20E94F81141C01C
139:1008A00081EF90E0222329F00E94931F82EF90E0D5 139:1008A00080FD98CF8EE208CF12968C91882319F0A4
140:1008B0000DC00E94FB1F82EF90E00FC081EF90E01F 140:1008B00080EF90E013C080EF90E017C012968C910B
141:1008C000222339F00E94931F83EF90E00E94931F30 141:1008C000882319F080EF90E01BC080EF90E021C0FA
142:1008D00006C00E94FB1F83EF90E00E94FB1F0E9456 142:1008D00012968C91882339F081EF90E00E94B91F25
143:1008E000802080E090E008950895E0910E01F0915D 143:1008E00082EF90E011C081EF90E00E94212082EF22
144:1008F0000F018081827219F0259A2D9A06C00E94FC 144:1008F00090E013C012968C91882349F081EF90E02C
145:10090000A91081FDF9CF25982D988091B90181FF1B 145:100900000E94B91F83EF90E00E94B91F08C081EFD9
146:1009100003C0269A2E9A02C026982E988091B9017B 146:1009100090E00E94212083EF90E00E9421200E941D
147:1009200082FF03C0279A2F9A089527982F98089539 147:10092000A62080E090E00895089580913A0190918A
148:100930000C94750456985E9825982D9826982E98B4 148:100930003B01892B19F0259A2D9A0DC0E0910E01EB
149:1009400027982F988FEF90E09093890080938800EC 149:10094000F0910F01808185FDF6CF0E94CF1081FDCF
150:1009500090938B0080938A0090938D0080938C00FD 150:10095000F2CF25982D988091B90181FF03C0269A86
151:10096000259A2D9A2FEF80E792E021508040904009 151:100960002E9A02C026982E988091B90182FF03C06A
152:10097000E1F700C00000269A2E9A2FEF80E792E060 152:10097000279A2F9A089527982F9808950C949504F4
153:10098000215080409040E1F700C00000279A2F9A44 153:1009800056985E9825982D9826982E9827982F98F7
154:100990002FEF80E792E0215080409040E1F700C0C7 154:100990008FEF90E0909389008093880090938B0074
155:1009A000000025982D982FEF80E792E0215080409D 155:1009A00080938A0090938D0080938C00259A2D9AD5
156:1009B0009040E1F700C0000026982E982FEF80E7C6 156:1009B0002FEF80E792E0215080409040E1F700C0A7
157:1009C00092E0215080409040E1F700C0000027985D 157:1009C0000000269A2E9A2FEF80E792E02150804077
158:1009D0002F9856985E9825982D9826982E982798A7 158:1009D0009040E1F700C00000279A2F9A2FEF80E7A0
159:1009E0002F98089589EA8093800089E080938100A0 159:1009E00092E0215080409040E1F700C0000025983F
160:1009F00024982C983F988AB18F748AB96E98479A38 160:1009F0002D982FEF80E792E0215080409040E1F762
161:100A00008BB1806B8BB9769A0E949A040C94740413 161:100A000000C0000026982E982FEF80E792E021503A
162:100A100080E28093000180913C0181110EC00E9410 162:100A100080409040E1F700C0000027982F9856983A
163:100A2000570581E080933C012FEF83ED90E3215047 163:100A20005E9825982D9826982E9827982F980895A7
164:100A300080409040E1F700C0000080E40E945D0526 164:100A300089EA8093800089E08093810024982C9833
165:100A40008093000181112EC00E94870580930001D0 165:100A40003F988AB18F748AB96E98479A8BB1806B40
166:100A5000811128C00E94870580930001811122C066 166:100A50008BB9769A0E94C0040C94940480E280932F
167:100A60008FE30E9487058093000181111BC00E94C3 167:100A6000000180913C0181110EC00E947D0581E052
168:100A70007F0580E40E945D0580930001811112C012 168:100A700080933C012FEF83ED90E321508040904024
169:100A80008CE00E9487058093000181110BC00E94B9 169:100A8000E1F700C0000080E40E948305809300012C
170:100A9000870580930001811105C08FE30E948705BF 170:100A900081112EC00E94AD0580930001811128C0F4
171:100AA000809300010E947F058091000108951092BB 171:100AA0000E94AD0580930001811122C08FE30E9456
172:100AB000B9008AE08093B800089594EA9093BC004E 172:100AB000AD058093000181111BC00E94A50580E453
173:100AC0009091BC0097FFFCCF9091B900987F98302F 173:100AC0000E94830580930001811112C08CE00E9476
174:100AD00021F0903111F081E008958093BB0084E80B 174:100AD000AD058093000181110BC00E94AD0580938C
175:100AE0008093BC008091BC0087FFFCCF8091B9004F 175:100AE0000001811105C08FE30E94AD0580930001D4
176:100AF000887F883111F0803471F780E0089584E9AF 176:100AF0000E94A5058091000108951092B9008AE036
177:100B00008093BC008091BC0084FDFCCF089580934D 177:100B00008093B800089594EA9093BC009091BC0043
178:100B1000BB0084E88093BC008091BC0087FFFCCFC1 178:100B100097FFFCCF9091B900987F983021F09031E9
179:100B20009091B900987F81E0983209F480E00895AF 179:100B200011F081E008958093BB0084E88093BC00BD
180:100B300084E88093BC008091BC0087FFFCCF80914B 180:100B30008091BC0087FFFCCF8091B900887F88310D
181:100B4000BB00089580910001811115C080E40E94CE 181:100B400011F0803471F780E0089584E98093BC004F
182:100B50005D058093000181110CC082E10E94870530 182:100B50008091BC0084FDFCCF08958093BB0084E8A5
183:100B600080930001811105C08FEF0E94870580935B 183:100B60008093BC008091BC0087FFFCCF9091B900BE
184:100B700000010E947F0584B1807F84B985B1807FA8 184:100B7000987F81E0983209F480E0089584E88093BA
185:100B800085B98AB1837F8AB98BB1837F8BB93E984F 185:100B8000BC008091BC0087FFFCCF8091BB00089522
186:100B9000469808950E940805809300010E94A205CE 186:100B900080910001811115C080E40E94830580933B
187:100BA00080B38C7080BB81B3836F81BBECE4F1E0D8 187:100BA000000181110CC082E10E94AD05809300011B
188:100BB000AEE3B1E011921D9281E0EA35F807D1F77A 188:100BB000811105C08FEF0E94AD05809300010E9456
189:100BC0000C94F204BF92CF92DF92EF92FF920F93B8 189:100BC000A50584B1807F84B985B1807F85B98AB15C
190:100BD0001F93CF93DF9380910001882379F0809158 190:100BD000837F8AB98BB1837F8BB93E9846980895FD
191:100BE0003D018F5F80933D01811108C00E9408057F 191:100BE0000E942E05809300010E94C80580B38C707E
192:100BF00080930001811102C00E949A040EE311E06B 192:100BF00080BB81B3836F81BBECE4F1E0AEE3B1E095
193:100C0000C0E0D0E0DD24D39482E0C82EEE24E3944B 193:100C000011921D9281E0EA35F807D1F70C9418058E
194:100C1000F12CC73000F580910001811162C080E4A1 194:100C1000BF92CF92DF92EF92FF920F931F93CF93E9
195:100C20000E945D0580930001811112C082E10E9443 195:100C2000DF9380910001882379F080913D018F5FEF
196:100C300087058093000181110BC0C7010C2E01C0F4 196:100C300080933D01811108C00E942E058093000120
197:100C4000880F0A94EAF780950E9487058093000137 197:100C4000811102C00E94C0040EE311E0C0E0D0E0B8
198:100C50000E947F0546C0CA30A1F028F4C83059F080 198:100C5000DD24D39482E0C82EEE24E394F12CC73037
199:100C6000C93061F005C0CC3089F070F0CD3089F02A 199:100C600000F580910001811162C080E40E9483053B
200:100C7000209A289810C0219A29980DC0229A2A9863 200:100C700080930001811112C082E10E94AD05809332
201:100C80000AC0239A2B9807C0529A01C0539A5B98C6 201:100C8000000181110BC0C7010C2E01C0880F0A940E
202:100C900002C03E9A4698E0EAEA95F1F78FB1799959 202:100C9000EAF780950E94AD05809300010E94A505AA
203:100CA0005AC092E081708D25892B7C9B02C090E018 203:100CA00046C0CA30A1F028F4C83059F0C93061F00C
204:100CB00001C094E0892B7D9B02C090E001C098E0C8 204:100CB00005C0CC3089F070F0CD3089F0209A2898AA
205:100CC000892B7E9B02C090E001C090E1892B9FB1EF 205:100CC00010C0219A29980DC0229A2A980AC0239A06
206:100CD0009095991F9927991F9295990F907E892B2E 206:100CD0002B9807C0529A01C0539A5B9802C03E9A63
207:100CE0000FC08091000181114BC080E40E945D051E 207:100CE0004698E0EAEA95F1F78FB179995AC092E017
208:100CF00080930001882389F1B12C0E947F058B2D00 208:100CF00081708D25892B7C9B02C090E001C094E01F
209:100D0000F8019081981719F08083C09201010E9428 209:100D0000892B7D9B02C090E001C098E0892B7E9BDF
210:100D1000A20521960F5F1F4FCE30D10509F079CF84 210:100D100002C090E001C090E1892B9FB19095991F8E
211:100D200080910101882371F1815080930101882312 211:100D20009927991F9295990F907E892B0FC08091DA
212:100D300039F08FE99FE00197F1F700C0000022C071 212:100D3000000181114BC080E40E9483058093000173
213:100D4000ACE4B1E0EEE3F1E081918D9391E0EC341D 213:100D4000882389F1B12C0E94A5058B2DF801908193
214:100D5000F907D1F717C090E0A5CF83E10E9487057E 214:100D5000981719F08083C09201010E94C80521965E
215:100D6000809300018111C8CF81E40E945D058093CA 215:100D60000F5F1F4FCE30D10509F079CF809101017F
216:100D700000018111C1CF0E949805B82EB094BDCF5B 216:100D7000882371F1815080930101882339F08FE934
217:100D800080E0BECF0E94980481E0DF91CF911F9157 217:100D80009FE00197F1F700C0000022C0ACE4B1E0A1
218:100D90000F91FF90EF90DF90CF90BF900895E82FD4 218:100D9000EEE3F1E081918D9391E0EC34F907D1F726
219:100DA000F0E0E45BFE4F808108950895089596E099 219:100DA00017C090E0A5CF83E10E94AD0580930001BC
220:100DB000799FF001112494E5899FE00DF11D112424 220:100DB0008111C8CF81E40E948305809300018111D5
221:100DC000E60FF11DEE0FFF1FE050FF4F859194914C 221:100DC000C1CF0E94BE05B82EB094BDCF80E0BECF8B
222:100DD0000895880F991F8C589040FC01859194913B 222:100DD0000E94BE0481E0DF91CF911F910F91FF909F
223:100DE0000895880F991F8C509F4FFC018591949115 223:100DE000EF90DF90CF90BF900895E82FF0E0E45BA4
224:100DF00008950F931F93CF93DF93EC01811520E3A8 224:100DF000FE4F808108950895089596E0799FF0014F
225:100E0000920730F5811530E2930708F0B1C08B3BB3 225:100E0000112494E5899FE00DF11D1124E60FF11DD9
226:100E1000910588F4883A910508F058C0853A910503 226:100E1000EE0FFF1FE05EFE4F859194910895880FBD
227:100E200008F049C08430910508F043C08130910535 227:100E2000991F84589040FC01859194910895880FF2
228:100E300009F4B2C1AEC18F3F910509F0D0F5803FF2 228:100E3000991F84509F4FFC018591949108950F93C1
229:100E4000910508F092C0805E9109089790F1A1C1C8 229:100E40001F93CF93DF93EC01811520E3920730F5D8
230:100E5000C11581E5D807A8F4C23090E5D90708F09C 230:100E5000811530E2930708F0B1C08B3B910588F40F
231:100E60009FC0C11520E5D20709F486C008F092C0E2 231:100E6000883A910508F058C0853A910508F049C0C4
232:100E7000C11580E4D80708F08CC18E011127106CD1 232:100E70008430910508F043C08130910509F4B2C176
233:100E8000CCC1C11590E8D90758F4C11520E7D207A5 233:100E8000AEC18F3F910509F0D0F5803F910508F084
234:100E900008F07BC1C11530E6D30708F423C179C13E 234:100E900092C0805E9109089790F1A1C1C11581E5CA
235:100EA000C11580E9D80708F074C18E011F70106A5F 235:100EA000D807A8F4C23090E5D90708F09FC0C11553
236:100EB000B4C18E01B2C1853A910509F470C1863A78 236:100EB00020E5D20709F486C008F092C0C11580E48D
237:100EC000910509F46FC103E810E4A7C1883A9105C0 237:100EC000D80708F08CC18E011127106CCCC1C11558
238:100ED00009F46BC1893A910509F46AC18A3A91050E 238:100ED00090E8D90758F4C11520E7D20708F07BC184
239:100EE00009F469C18B3A910509F468C18C3A9105FE 239:100EE000C11530E6D30708F423C179C1C11580E9E3
240:100EF00009F467C18D3A910509F466C1803B9105FB 240:100EF000D80708F074C18E011F70106AB4C18E014A
241:100F000009F465C18E3A910509F464C18F3A9105DF 241:100F0000B2C1853A910509F470C1863A910509F498
242:100F100009F463C1813B910509F462C1823B9105EB 242:100F10006FC103E810E4A7C1883A910509F46BC1D9
243:100F200009F461C1833B910509F460C1843B9105DB 243:100F2000893A910509F46AC18A3A910509F469C1BF
244:100F300009F45FC1853B910509F45EC1863B9105CB 244:100F30008B3A910509F468C18C3A910509F467C1AF
245:100F400009F45DC1873B910509F45CC1883B9105BB 245:100F40008D3A910509F466C1803B910509F465C1AC
246:100F500009F45BC1893B910509F45AC18A3B9105AB 246:100F50008E3A910509F464C18F3A910509F463C191
247:100F600009F059C10AE216E458C18C01106555C157 247:100F6000813B910509F462C1823B910509F461C19D
248:100F70009F700E94F10652C10E942C169FEF24E33D 248:100F7000833B910509F460C1843B910509F45FC18D
249:100F80003CE0915020403040E1F700C000000E945A 249:100F8000853B910509F45EC1863B910509F45DC17D
250:100F9000441D43C18091D50181608093D5013DC13D 250:100F9000873B910509F45CC1883B910509F45BC16D
251:100FA0000E94EC1E811102C00E94D21E0E94091FE5 251:100FA000893B910509F45AC18A3B910509F059C161
252:100FB00090E09093F6018093F501C23080E5D80768 252:100FB0000AE216E458C18C01106555C19F700E9469
253:100FC00021F48091F501816086C0C43090E5D90795 253:100FC000170752C10E9452169FEF24E33CE0915054
254:100FD00021F48091F50182607EC0C63020E5D20701 254:100FD00020403040E1F700C000000E946A1D43C17C
255:100FE00021F48091F501846076C0C83030E5D307E4 255:100FE0008091D50181608093D5013DC10E94121F7F
256:100FF00019F48091F50127C0CA3080E5D80721F4A3 256:100FF000811102C00E94F81E0E942F1F90E0909362
257:101000008091F501806167C0CC3090E5D90721F46B 257:10100000F6018093F501C23080E5D80721F4809184
258:101010008091F50180625FC0CE3020E5D20721F4D7 258:10101000F501816086C0C43090E5D90721F4809144
259:101020008091F501806457C0C03130E5D30721F4C9 259:10102000F50182607EC0C63020E5D20721F48091B0
260:101030008091F50180684FC0C23180E5D80729F45E 260:10103000F501846076C0C83030E5D30719F480919B
261:101040008091F5018460886046C0C33090E5D9077F 261:10104000F50127C0CA3080E5D80721F48091F50169
262:1010500021F48091F5018E7F3EC0C53020E5D20796 262:10105000806167C0CC3090E5D90721F48091F5011B
263:1010600021F48091F5018D7F36C0C73030E5D3077C 263:1010600080625FC0CE3020E5D20721F48091F50187
264:1010700021F48091F5018B7F2EC0C93080E5D8071F 264:10107000806457C0C03130E5D30721F48091F50179
265:1010800019F48091F50126C0CB3090E5D90721F401 265:1010800080684FC0C23180E5D80729F48091F5010E
266:101090008091F5018F7E1FC0CD3020E5D20721F46D 266:101090008460886046C0C33090E5D90721F4809110
267:1010A0008091F5018F7D17C0CF3030E5D30721F453 267:1010A000F5018E7F3EC0C53020E5D20721F4809146
268:1010B0008091F5018F7B0FC0C13180E5D80721F405 268:1010B000F5018D7F36C0C73030E5D30721F480912C
269:1010C0008091F5018F7707C0C331D04531F480910D 269:1010C000F5018B7F2EC0C93080E5D80719F48091D7
270:1010D000F5018B7F877F8093F5018091F5010E9458 270:1010D000F50126C0CB3090E5D90721F48091F501C8
271:1010E0000D1F9BC08D2F99278F70992781309105F7 271:1010E0008F7E1FC0CD3020E5D20721F48091F5011D
272:1010F000E9F48E01037011279C0102C0220F331FF7 272:1010F0008F7D17C0CF3030E5D30721F48091F50103
273:101100000A95E2F789011C68CE0164E0880F991FF7 273:101100008F7B0FC0C13180E5D80721F48091F501B4
274:101110006A95E1F788279370082B192B73E0CC0FA1 274:101110008F7707C0C331D04531F48091F5018B7FC3
275:10112000DD1F7A95E1F7C076DD272CC0823091056E 275:10112000877F8093F5018091F5010E94331F9BC05A
276:1011300029F41C2F0027016F106A6FC083309105BE 276:101130008D2F99278F70992781309105E9F48E01C1
277:1011400061F4CE018370992701E010E002C0000F26 277:10114000037011279C0102C0220F331F0A95E2F79A
278:10115000111F8A95E2F71C680EC0049709F05DC064 278:1011500089011C68CE0164E0880F991F6A95E1F748
279:10116000CE018370992701E010E002C0000F111F2B 279:1011600088279370082B192B73E0CC0FDD1F7A951D
280:101170008A95E2F71A6843E0CC0FDD1F4A95E1F744 280:10117000E1F7C076DD272CC08230910529F41C2FC1
281:10118000C07ED7700C2B1D2B48C08E011F701062C3 281:101180000027016F106A6FC08330910561F4CE01B2
282:1011900044C000E010E041C001E010E03EC001E8C2 282:101190008370992701E010E002C0000F111F8A95AB
283:1011A00010E43BC002E810E438C002EE14E435C09D 283:1011A000E2F71C680EC0049709F05DC0CE018370A1
284:1011B00009EE14E432C00AEE14E42FC005EB14E487 284:1011B000992701E010E002C0000F111F8A95E2F7A5
285:1011C0002CC006EB14E429C007EB14E426C00CEC99 285:1011C0001A6843E0CC0FDD1F4A95E1F7C07ED77067
286:1011D00014E423C00DEC14E420C003E815E41DC0A2 286:1011D0000C2B1D2B48C08E011F70106244C000E014
287:1011E0000AE815E41AC002E915E417C004E915E499 287:1011E00010E041C001E010E03EC001E810E43BC067
288:1011F00014C001E216E411C003E216E40EC004E2DA 288:1011F00002E810E438C002EE14E435C009EE14E44D
289:1012000016E40BC005E216E408C006E216E405C0C9 289:1012000032C00AEE14E42FC005EB14E42CC006EB48
290:1012100007E216E402C000E014E4C801DF91CF91B8 290:1012100014E429C007EB14E426C00CEC14E423C04A
291:101220001F910F91089596E0799FF001112494E5A4 291:101220000DEC14E420C003E815E41DC00AE815E441
292:10123000899FE00DF11D1124E60FF11DEE0FFF1F38 292:101230001AC002E915E417C004E915E414C001E27C
293:10124000E050FF4F85919491803E9105E0F4803C01 293:1012400016E411C003E216E40EC004E216E40BC07B
294:10125000910558F58133910509F46FC048F489323E 294:1012500005E216E408C006E216E405C007E216E45B
295:10126000910509F463C08A32910509F46DC072C01A 295:1012600002C000E014E4C801DF91CF911F910F91FB
296:1012700089339105E9F082389105D1F085339105E4 296:10127000089596E0799FF001112494E5899FE00D8F
297:1012800009F44DC067C0833E910581F138F4803E7A 297:10128000F11D1124E60FF11DEE0FFF1FE05EFE4F72
298:101290009105B9F0823E9105D9F05CC0863E91057A 298:1012900085919491803E9105E0F4803C910558F54C
299:1012A00061F1873E9105A1F155C00E94E9060895BC 299:1012A0008133910509F46FC048F48932910509F43E
300:1012B0002091F50120FD02C021FF4CC080EE90E09E 300:1012B00063C08A32910509F46DC072C0893391050B
301:1012C00049C08091F50180FFF9CF89E390E042C0E9 301:1012C000E9F082389105D1F08533910509F44DC0DC
302:1012D0008091F50182FF0EC08091F50184FF03C06B 302:1012D00067C0833E910581F138F4803E9105B9F0F5
303:1012E00080E090E037C083EE90E034C08091F5015B 303:1012E000823E9105D9F05CC0863E910561F1873E52
304:1012F00082FFF2CF82EE90E02DC08091F50183FF56 304:1012F0009105A1F155C00E940F0708952091F501B5
305:101300000BC08091F50184FDEBCF87EE90E022C009 305:1013000020FD02C021FF4CC080EE90E049C08091DA
306:101310008091F50183FFF5CF86EE90E01BC08091B0 306:10131000F50180FFF9CF89E390E042C08091F501AB
307:10132000F50185FF07C089E290E014C08091F501C6 307:1013200082FF0EC08091F50184FF03C080E090E051
308:1013300085FFF9CF85E390E00DC08091F50186FF30 308:1013300037C083EE90E034C08091F50182FFF2CF98
309:1013400007C08AE290E006C08091F50186FFF9CFE0 309:1013400082EE90E02DC08091F50183FF0BC080916B
310:1013500081E390E00E94F906089508950C94AD0988 310:10135000F50184FDEBCF87EE90E022C08091F5018E
311:1013600080916A010895CF93DF9300D01F92CDB78B 311:1013600083FFF5CF86EE90E01BC08091F50185FFED
312:10137000DEB72091EC01243019F523E029839B830B 312:1013700007C089E290E014C08091F50185FFF9CFA4
313:101380008A832093E9008FEF9091E800815095FDCA 313:1013800085E390E00DC08091F50186FF07C08AE2F9
314:1013900006C095ED9A95F1F700008111F5CF809187 314:1013900090E006C08091F50186FFF9CF81E390E0EF
315:1013A000E80085FF0DC040E050E063E070E0CE0152 315:1013A0000E941F07089508950C94D30980916A0143
316:1013B00001960E941D0C8091E8008E778093E800D2 316:1013B0000895CF93DF9300D01F92CDB7DEB7209171
317:1013C0000F900F900F90DF91CF910895CF93DF93FF 317:1013C000EC01243019F523E029839B838A83209341
318:1013D00000D01F92CDB7DEB72091EC01243021F56B 318:1013D000E9008FEF9091E800815095FD06C095EDF2
319:1013E00022E029839B838A8383E08093E9008FEF47 319:1013E0009A95F1F700008111F5CF8091E80085FF13
320:1013F0009091E800815095FD06C095ED9A95F1F722 320:1013F0000DC040E050E063E070E0CE0101960E9435
321:1014000000008111F5CF8091E80085FF0DC040E01C 321:10140000430C8091E8008E778093E8000F900F9056
322:1014100050E063E070E0CE0101960E941D0C8091C7 322:101410000F90DF91CF910895CF93DF9300D01F926B
323:10142000E8008E778093E8000F900F900F90DF9187 323:10142000CDB7DEB72091EC01243021F522E02983ED
324:10143000CF9108952091EC012430F1F422E0209323 324:101430009B838A8383E08093E9008FEF9091E8009B
325:10144000E9002FEF3091E800215035FD06C035ED61 325:10144000815095FD06C095ED9A95F1F70000811148
326:101450003A95F1F700002111F5CF2091E80025FF22 326:10145000F5CF8091E80085FF0DC040E050E063E0EB
327:101460000BC040E050E065E070E00E941D0C8091F0 327:1014600070E0CE0101960E94430C8091E8008E77D7
328:10147000E8008E778093E8000895CF93DF93EC0126 328:101470008093E8000F900F900F90DF91CF91089527
329:101480008091EC01843009F046C090910C019923C1 329:101480002091EC012430F1F422E02093E9002FEFC9
330:10149000D9F090910D019923B9F08093E9008FEF75 330:101490003091E800215035FD06C035ED3A95F1F761
331:1014A0009091E800815095FD06C095E19A95F1F77D 331:1014A00000002111F5CF2091E80025FF0BC040E09E
332:1014B00000008111F5CF8091E80085FF2CC040E04D 332:1014B00050E065E070E00E94430C8091E8008E7778
333:1014C00050E060E170E017C081E08093E9008FEFA9 333:1014C0008093E8000895CF93DF93EC018091EC01C5
334:1014D0009091E800815095FD06C095ED9A95F1F741 334:1014D000843009F046C090910C019923D9F0909185
335:1014E00000008111F5CF8091E80085FF14C040E035 335:1014E0000D019923B9F08093E9008FEF9091E80006
336:1014F00050E068E070E0CE010E941D0C8091E80091 336:1014F000815095FD06C095E19A95F1F700008111A4
337:101500008E778093E80080E1FE01AAE5B1E00190CA 337:10150000F5CF8091E80085FF2CC040E050E060E11D
338:101510000D928A95E1F7DF91CF9108958091EB01CB 338:1015100070E017C081E08093E9008FEF9091E800C0
339:10152000811109C00E94AF0D0E940C0E8091E20053 339:10152000815095FD06C095ED9A95F1F70000811167
340:1015300084608093E20008951092EB01089508956D 340:10153000F5CF8091E80085FF14C040E050E068E0FE
341:101540000C9468230E94DB1C0E946E230E94A91049 341:1015400070E0CE010E94430C8091E8008E7780937A
342:101550000C94AE0942E061EC81E00E94290D42E06A 342:10155000E80080E1FE01AAE5B1E001900D928A95D4
343:1015600061EC82E00E94290D42E061EC83E00E9480 343:10156000E1F7DF91CF9108958091EB01811109C0DE
344:10157000290D42E161EC84E00C94290D8091EE018B 344:101570000E94D50D0E94320E8091E200846080931B
345:10158000833009F455C030F4813071F0823009F4B1 345:10158000E20008951092EB01089508950C948E23C3
346:101590008EC008958A3009F47AC08B3009F460C097 346:101590000E94011D0E9494230E94CF100C94D40934
347:1015A000893009F09CC020C08091ED01813A09F09A 347:1015A00042E061EC81E00E944F0D42E061EC82E09C
348:1015B00096C08091E800877F8093E8008091F101D8 348:1015B0000E944F0D42E061EC83E00E944F0D42E13A
349:1015C0009091F201892B21F060E080E090E003C06F 349:1015C00061EC84E00C944F0D8091EE01833009F4BE
350:1015D00060E18AE591E070E00E94660C8091E8008D 350:1015D00055C030F4813071F0823009F48EC0089526
351:1015E0008B778093E80008958091ED01813209F0B6 351:1015E0008A3009F47AC08B3009F460C0893009F080
352:1015F00076C08091F1019091F201009719F0039764 352:1015F0009CC020C08091ED01813A09F096C0809195
353:1016000009F06DC08091E800877F8093E8008091A9 353:10160000E800877F8093E8008091F1019091F201DA
354:10161000E80082FD05C08091EC018111F8CF5FC028 354:10161000892B21F060E080E090E003C060E18AE582
355:101620008091F10080936A018091E8008B7753C02C 355:1016200091E070E00E948C0C8091E8008B778093B1
356:101630008091ED01813A09F052C08091F1019091C1 356:10163000E80008958091ED01813209F076C0809133
357:10164000F201892B09F04BC08091E800877F8093DD 357:10164000F1019091F201009719F0039709F06DC034
358:10165000E8008091E80080FFFCCF80910C0136C04B 358:101650008091E800877F8093E8008091E80082FD18
359:101660008091ED018132D9F58091F1019091F201E3 359:1016600005C08091EC018111F8CF5FC08091F1003D
360:10167000892BA9F58091E800877F8093E8000E947C 360:1016700080936A018091E8008B7753C08091ED01DF
361:101680005E0D8091EF0180930C010C942C168091DB 361:10168000813A09F052C08091F1019091F201892BC9
362:10169000ED01813221F58091E800877F8093E80099 362:1016900009F04BC08091E800877F8093E80080913B
363:1016A0000E945E0D8091F00180936B0108958091FE 363:1016A000E80080FFFCCF80910C0136C08091ED01F5
364:1016B000ED01813AA1F48091E800877F8093E800F2 364:1016B0008132D9F58091F1019091F201892BA9F540
365:1016C0008091E80080FFFCCF80916B018093F10056 365:1016C0008091E800877F8093E8000E94840D8091DC
366:1016D0008091E8008E778093E8000C945E0D089569 366:1016D000EF0180930C010C9452168091ED01813240
367:1016E00084B7877F84BF88E10FB6F8948093600049 367:1016E00021F58091E800877F8093E8000E94840DB7
368:1016F000109260000FBE90E080E80FB6F8948093DF 368:1016F0008091F00180936B0108958091ED01813A12
369:101700006100909361000FBE0E94F8100E94AF0D1F 369:10170000A1F48091E800877F8093E8008091E80051
370:101710000E940C0E8091E20084608093E200789435 370:1017100080FFFCCF80916B018093F1008091E80005
371:101720000E9487100E94FA1082E091E00E94A410AB 371:101720008E778093E8000C94840D089584B7877FAA
372:101730000E9456238091EC01853069F40E949B1C25 372:1017300084BF88E10FB6F894809360001092600037
373:101740008091EA018823B1F30E94C61C882391F39B 373:101740000FBE90E080E80FB6F8948093610090930C
374:101750000E94070CEFCF0E940011ECCF292F3327F6 374:1017500061000FBE0E941E110E94D50D0E94320E24
375:1017600023303105A9F06CF42130310509F442C071 375:101760008091E20084608093E20078940E94AD1042
376:101770002230310509F043C08DE690E024ED33E0DE 376:101770000E94201182E091E00E94CA100E947C2306
377:1017800042C021323105C9F02232310519F137C08A 377:101780008091EC01853069F40E94C11C8091EA01CE
378:1017900099278130910541F08230910541F0892BE4 378:101790008823B1F30E94EC1C882391F30E942D0C46
379:1017A00071F5E0EDF3E005C0E8EBF3E002C0E0EA3C 379:1017A000EFCF0E942611ECCF292F332723303105AC
380:1017B000F3E0849190E09F0126C0643000F5E62FAD 380:1017B000A9F06CF42130310509F442C02230310522
381:1017C000F0E0EE0FFF1FEE5DFE4F2081318189E0DA 381:1017C00009F043C08DE690E024EF33E042C02132BF
382:1017D00090E019C0643098F4E62FF0E0DF01AA0F22 382:1017D0003105C9F02232310519F137C0992781301E
383:1017E000BB1FA65EBE4F2D913C91EA5EFE4F8081ED 383:1017E000910541F08230910541F0892B71F5E0EFD0
384:1017F00090E009C082E190E021E434E004C080E0A0 384:1017F000F3E005C0E8EDF3E002C0E0ECF3E0849133
385:1018000090E020E030E0FA0131832083089580E108 385:1018000090E09F0126C0643000F5E62FF0E0EE0F77
386:1018100089BD82E189BD09B400FEFDCF8091D80069 386:10181000FF1FEE5DFE4F2081318189E090E019C00D
387:101820008F7D8093D8008091E00082608093E000FB 387:10182000643098F4E62FF0E0DF01AA0FBB1FA65E3C
388:101830008091E00081FDFCCF0895CF92DF92EF927E 388:10183000BE4F2D913C91EA5EFE4F808190E009C041
389:10184000FF920F931F93CF93DF937C018B01EA01EB 389:1018400082E190E021E634E004C080E090E020E016
390:101850000E947F0D811131C0209731F088819981DC 390:1018500030E0FA0131832083089580E189BD82E17F
391:10186000081B190BE80EF91EC12CD12C011511050E 391:1018600089BD09B400FEFDCF8091D8008F7D8093A3
392:1018700019F18091E80085FD14C08091E8008E7711 392:10187000D8008091E00082608093E0008091E000D9
393:101880008093E800209741F0888199818C0D9D1DFF 393:1018800081FDFCCF0895CF92DF92EF92FF920F93EC
394:101890009983888385E011C00E947F0D882331F3EE 394:101890001F93CF93DF937C018B01EA010E94A50D7A
395:1018A0000CC0F70181917F018093F1000150110973 395:1018A000811131C0209731F088819981081B190B73
396:1018B000FFEFCF1ADF0ADACF80E0DF91CF911F91DF 396:1018B000E80EF91EC12CD12C0115110519F18091EA
397:1018C0000F91FF90EF90DF90CF9008952091F3015A 397:1018C000E80085FD14C08091E8008E778093E800E1
398:1018D0003091F4012617370748F06115710539F486 398:1018D000209741F0888199818C0D9D1D9983888383
399:1018E0002091E8002E772093E80001C0B901FC01A7 399:1018E00085E011C00E94A50D882331F30CC0F701DB
400:1018F00020E061157105B9F18091EC01882309F4AC 400:1018F00081917F018093F10001501109FFEFCF1A10
401:1019000040C0853009F43FC08091E80083FD3DC0B0 401:10190000DF0ADACF80E0DF91CF911F910F91FF9036
402:101910008091E80082FF06C08091E80082FF26C027 402:10191000EF90DF90CF9008952091F3013091F40182
403:1019200080E008958091E80080FFE3CF2091F300EC 403:101920002617370748F06115710539F42091E80052
404:101930008091F20090E0922B6115710551F0883092 404:101930002E772093E80001C0B901FC0120E0611579
405:10194000910538F421912093F100615071090196BD 405:101940007105B9F18091EC01882309F440C085301C
406:10195000F3CF21E0089709F020E08091E8008E772E 406:1019500009F43FC08091E80083FD3DC08091E8001C
407:101960008093E800C6CF2111C7CFD6CF8091EC017C 407:1019600082FF06C08091E80082FF26C080E00895D3
408:10197000882339F0853039F08091E80083FFCCCF9F 408:101970008091E80080FFE3CF2091F3008091F20096
409:1019800004C082E0089583E0089581E008952091E5 409:1019800090E0922B6115710551F08830910538F483
410:10199000F3013091F4012617370748F061157105FE 410:1019900021912093F100615071090196F3CF21E06C
411:1019A00039F42091E8002E772093E80001C0B901B6 411:1019A000089709F020E08091E8008E778093E800A6
412:1019B000FC0120E061157105C1F18091EC018823E3 412:1019B000C6CF2111C7CFD6CF8091EC01882339F053
413:1019C00009F441C0853009F440C08091E80083FDEE 413:1019C000853039F08091E80083FFCCCF04C082E0FD
414:1019D0003EC08091E80082FF06C08091E80082FF4F 414:1019D000089583E0089581E008952091F301309106
415:1019E00027C080E008958091E80080FFE3CF209138 415:1019E000F4012617370748F06115710539F4209185
416:1019F000F3008091F20090E0922B6115710559F08F 416:1019F000E8002E772093E80001C0B901FC0120E047
417:101A00008830910540F424912093F1003196615083 417:101A000061157105C1F18091EC01882309F441C091
418:101A100071090196F2CF21E0089709F020E080914A 418:101A1000853009F440C08091E80083FD3EC080918C
419:101A2000E8008E778093E800C5CF2111C6CFD5CFCF 419:101A2000E80082FF06C08091E80082FF27C080E0C6
420:101A30008091EC01882339F0853039F08091E800FD 420:101A300008958091E80080FFE3CF2091F30080912A
421:101A400083FFCBCF04C082E0089583E0089581E056 421:101A4000F20090E0922B6115710559F088309105F4
422:101A50000895982F973058F59093E900981739F02A 422:101A500040F424912093F100319661507109019670
423:101A60007091EC002091ED005091F00003C0242F04 423:101A6000F2CF21E0089709F020E08091E8008E771E
424:101A7000762F50E021FF19C03091EB003E7F30936C 424:101A70008093E800C5CF2111C6CFD5CF8091EC016E
425:101A8000EB003091ED003D7F3093ED003091EB00A5 425:101A8000882339F0853039F08091E80083FFCBCF8F
426:101A900031603093EB007093EC002093ED00509395 426:101A900004C082E0089583E0089581E00895982FBE
427:101AA000F0002091EE0027FF07C09F5FD3CF8F701B 427:101AA000973058F59093E900981739F07091EC0051
428:101AB0008093E90081E0089580E008958091ED0130 428:101AB0002091ED005091F00003C0242F762F50E0CC
429:101AC00087FD05C08091E80080FF0EC012C08091A4 429:101AC00021FF19C03091EB003E7F3093EB00309145
430:101AD000E80082FD05C08091EC018111F8CF0895E6 430:101AD000ED003D7F3093ED003091EB0031603093AD
431:101AE0008091E8008B7708C08091EC018111EACFEA 431:101AE000EB007093EC002093ED005093F0002091F8
432:101AF00008958091E8008E778093E80008958091A2 432:101AF000EE0027FF07C09F5FD3CF8F708093E90070
433:101B0000E4009091E50045E62091EC0020FF21C023 433:101B000081E0089580E008958091ED0187FD05C092
434:101B10002091E80020FD21C02091EC01222389F0D2 434:101B10008091E80080FF0EC012C08091E80082FD35
435:101B2000253089F02091EB0025FD0FC02091E400C5 435:101B200005C08091EC018111F8CF08958091E80003
436:101B30003091E5002817390739F3415041F0C901C8 436:101B30008B7708C08091EC018111EACF08958091E4
437:101B4000E3CF82E0089583E0089581E0089584E082 437:101B4000E8008E778093E80008958091E4009091FA
438:101B500008952091E80022FFDFCF80E008950E94E1 438:101B5000E50045E62091EC0020FF21C02091E8003F
439:101B60001D0E0E94250EE0EEF0E0808181608083F2 439:101B600020FD21C02091EC01222389F0253089F04D
440:101B7000E8EDF0E080818F77808319BCA7EDB0E0BD 440:101B70002091EB0025FD0FC02091E4003091E5009D
441:101B80008C918E7F8C9380818F7E80831092EB016D 441:101B80002817390739F3415041F0C901E3CF82E00A
442:101B900008950F931F93CF93DF930E941D0E0E9411 442:101B9000089583E0089581E0089584E008952091F8
443:101BA000250EC8EDD0E088818F7788838881806892 443:101BA000E80022FFDFCF80E008950E94430E0E94EC
444:101BB000888388818F7D888319BC1092EC011092F4 444:101BB0004B0EE0EEF0E0808181608083E8EDF0E0A4
445:101BC000E8011092EA011092E90100EE10E0F8013C 445:101BC00080818F77808319BCA7EDB0E08C918E7FE8
446:101BD00080818B7F808388818160888342E060E0A0 446:101BD0008C9380818F7E80831092EB0108950F9308
447:101BE00080E00E94290DE1EEF0E080818E7F80830D 447:101BE0001F93CF93DF930E94430E0E944B0EC8EDCC
448:101BF000E2EEF0E080818160808380818860808374 448:101BF000D0E088818F778883888180688883888116
449:101C0000F80180818E7F8083888180618883DF9165 449:101C00008F7D888319BC1092EC011092E80110922C
450:101C1000CF911F910F910895E8EDF0E080818F7EC4 450:101C1000EA011092E90100EE10E0F80180818B7F6B
451:101C20008083E7EDF0E080818160808384E082BF83 451:101C2000808388818160888342E060E080E00E9458
452:101C300081E08093EB010C94C90DE8EDF0E0808128 452:101C30004F0DE1EEF0E080818E7F8083E2EEF0E0F8
453:101C40008E7F80831092E20008951092DA00109245 453:101C4000808181608083808188608083F8018081C9
454:101C5000E10008951F920F920FB60F9211242F9357 454:101C50008E7F8083888180618883DF91CF911F91FF
455:101C60003F934F935F936F937F938F939F93AF9324 455:101C60000F910895E8EDF0E080818F7E8083E7EDAD
456:101C7000BF93EF93FF938091E10082FF0BC08091AF 456:101C7000F0E080818160808384E082BF81E0809396
457:101C8000E20082FF07C08091E1008B7F8093E1003A 457:101C8000EB010C94EF0DE8EDF0E080818E7F808316
458:101C90000E9486108091DA0080FF1FC08091D800DA 458:101C90001092E20008951092DA001092E100089587
459:101CA00080FF1BC08091DA008E7F8093DA008091E4 459:101CA0001F920F920FB60F9211242F933F934F93D1
460:101CB000D90080FF0DC080E189BD82E189BD09B4F2 460:101CB0005F936F937F938F939F93AF93BF93EF93B4
461:101CC00000FEFDCF81E08093EC010E948E0A05C0EA 461:101CC000FF938091E10082FF0BC08091E20082FFD0
462:101CD00019BC1092EC010E949C0A8091E10080FFE7 462:101CD00007C08091E1008B7F8093E1000E94AC10EF
463:101CE00019C08091E20080FF15C08091E2008E7FD4 463:101CE0008091DA0080FF1FC08091D80080FF1BC068
464:101CF0008093E2008091E20080618093E200809115 464:101CF0008091DA008E7F8093DA008091D90080FF96
465:101D0000D80080628093D80019BC85E08093EC01F4 465:101D00000DC080E189BD82E189BD09B400FEFDCF2F
466:101D10000E94A00A8091E10084FF30C08091E2001F 466:101D100081E08093EC010E94B40A05C019BC1092C6
467:101D200084FF2CC080E189BD82E189BD09B400FE39 467:101D2000EC010E94C20A8091E10080FF19C08091FD
468:101D3000FDCF8091D8008F7D8093D8008091E10005 468:101D3000E20080FF15C08091E2008E7F8093E20078
469:101D40008F7E8093E1008091E2008F7E8093E2009D 469:101D40008091E20080618093E2008091D8008062FF
470:101D50008091E20081608093E2008091E801882315 470:101D50008093D80019BC85E08093EC010E94C60AEC
471:101D600011F084E007C08091E30087FF02C083E0A8 471:101D60008091E10084FF30C08091E20084FF2CC0AC
472:101D700001C081E08093EC010E94A20A8091E10001 472:101D700080E189BD82E189BD09B400FEFDCF80917B
473:101D800083FF29C08091E20083FF25C08091E1009C 473:101D8000D8008F7D8093D8008091E1008F7E809372
474:101D9000877F8093E10082E08093EC011092E8015C 474:101D9000E1008091E2008F7E8093E2008091E2007A
475:101DA0008091E1008E7F8093E1008091E2008E7F40 475:101DA00081608093E2008091E801882311F084E053
476:101DB0008093E2008091E20080618093E20042E043 476:101DB00007C08091E30087FF02C083E001C081E09B
477:101DC00060E080E00E94290D8091F000886080939F 477:101DC0008093EC010E94C80A8091E10083FF29C042
478:101DD000F0000E949F0AFF91EF91BF91AF919F91F8 478:101DD0008091E20083FF25C08091E100877F80939E
479:101DE0008F917F916F915F914F913F912F910F90C4 479:101DE000E10082E08093EC011092E8018091E10033
480:101DF0000FBE0F901F9018951F920F920FB60F9263 480:101DF0008E7F8093E1008091E2008E7F8093E200ED
481:101E000011242F933F934F935F936F937F938F93FF 481:101E00008091E20080618093E20042E060E080E047
482:101E10009F93AF93BF93CF93EF93FF93C091E9004C 482:101E10000E944F0D8091F00088608093F0000E9436
483:101E2000CF708091EC001092E9008091F000877FE4 483:101E2000C50AFF91EF91BF91AF919F918F917F91E3
484:101E30008093F00078940E94380F1092E90080910E 484:101E30006F915F914F913F912F910F900FBE0F9037
485:101E4000F00088608093F000C093E900FF91EF916B 485:101E40001F9018951F920F920FB60F9211242F9387
486:101E5000CF91BF91AF919F918F917F916F915F9142 486:101E50003F934F935F936F937F938F939F93AF9332
487:101E60004F913F912F910F900FBE0F901F9018959B 487:101E6000BF93CF93EF93FF93C091E900CF70809120
488:101E70001F93CF93DF93CDB7DEB7AA970FB6F89431 488:101E7000EC001092E9008091F000877F8093F000E1
489:101E8000DEBF0FBECDBFEDEEF1E08091F10081939A 489:101E800078940E945E0F1092E9008091F0008860C3
490:101E900021E0E53FF207C9F70E94BE0A8091E80001 490:101E90008093F000C093E900FF91EF91CF91BF9143
491:101EA00083FF1CC12091ED013091EE01832F90E062 491:101EA000AF919F918F917F916F915F914F913F91F2
492:101EB0008A30910508F012C1FC01E05AFF4F0C94E2 492:101EB0002F910F900FBE0F901F9018951F93CF93E7
493:101EC000F024203881F0223809F008C18091F10116 493:101EC000DF93CDB7DEB7AA970FB6F894DEBF0FBE8B
494:101ED0008F708093E9008091EB0085FB882780F963 494:101ED000CDBFEDEEF1E08091F100819321E0E53F8F
495:101EE0001092E90006C08091E9019091EA019111F8 495:101EE000F207C9F70E94E40A8091E80083FF1CC151
496:101EF00082609091E800977F9093E8008093F100D2 496:101EF0002091ED013091EE01832F90E08A30910521
497:101F00001092F100C5C0822F8D7F09F0E7C0222317 497:101F000008F012C1FC01EC59FF4F0C941625203843
498:101F100019F0223061F0E2C08091EF01813009F0C8 498:101F100081F0223809F008C18091F1018F7080931F
499:101F2000DDC0333009F080E08093EA0128C0809161 499:101F2000E9008091EB0085FB882780F91092E90099
500:101F3000EF01811124C02091F1012F7009F4CEC06E 500:101F300006C08091E9019091EA019111826090912F
501:101F40002093E9008091EB0080FF19C08091EB00A5 501:101F4000E800977F9093E8008093F1001092F100F1
502:101F5000333011F4806211C080618093EB0081E026 502:101F5000C5C0822F8D7F09F0E7C0222319F02230FF
503:101F600090E0022E01C0880F0A94EAF78093EA00FD 503:101F600061F0E2C08091EF01813009F0DDC03330D3
504:101F70001092EA008091EB0088608093EB00109251 504:101F700009F080E08093EA0128C08091EF0181118F
505:101F8000E9008091E800877F86C02111A7C01091E9 505:101F800024C02091F1012F7009F4CEC02093E90004
506:101F9000EF011F778091E3008078812B8093E3002D 506:101F90008091EB0080FF19C08091EB00333011F489
507:101FA0008091E800877F8093E8000E945E0D809119 507:101FA000806211C080618093EB0081E090E0022E9E
508:101FB000E80080FFFCCF8091E30080688093E3001D 508:101FB00001C0880F0A94EAF78093EA001092EA00C1
509:101FC000112311F083E001C082E08093EC0186C010 509:101FC0008091EB0088608093EB001092E900809193
510:101FD0002058223008F082C08091EF019091F001EA 510:101FD000E800877F86C02111A7C01091EF011F770D
511:101FE0008C3D23E0920779F583E08A838AE2898336 511:101FE0008091E3008078812B8093E3008091E8006A
512:101FF0004FB7F894DE01139620E03EE051E2E32F64 512:101FF000877F8093E8000E94840D8091E80080FF35
513:10200000F0E050935700E49120FF03C0E295EF7099 513:10200000FCCF8091E30080688093E300112311F0FE
514:102010003F5FEF708E2F90E0EA3010F0C79601C05E 514:1020100083E001C082E08093EC0186C0205822302A
515:10202000C0968D939D932F5F243149F74FBF8091C8 515:1020200008F082C08091EF019091F0018C3D23E097
516:10203000E800877F8093E8006AE270E0CE010196B5 516:10203000920779F583E08A838AE289834FB7F8941F
517:102040000E94660C14C0AE014F5F5F4F6091F101BA 517:10204000DE01139620E03EE051E2E32FF0E05093F2
518:102050000E94AE0B009709F441C02091E800277F51 518:102050005700E49120FF03C0E295EF703F5FEF70FF
519:102060002093E800BC0189819A810E94C70C80916D 519:102060008E2F90E0EA3010F0C79601C0C0968D9395
520:10207000E8008B778093E80031C0203879F58091B3 520:102070009D932F5F243149F74FBF8091E800877F00
521:10208000E800877F8093E8008091E8018093F10069 521:102080008093E8006AE270E0CE0101960E948C0C19
522:102090008091E8008E778093E8000E945E0D1EC05C 522:1020900014C0AE014F5F5F4F6091F1010E94D40BFD
523:1020A00021111CC09091EF019230C0F48091E800A2 523:1020A000009709F441C02091E800277F2093E800C1
524:1020B000877F8093E8009093E8010E945E0D8091F5 524:1020B000BC0189819A810E94ED0C8091E8008B77A8
525:1020C000E801811104C08091E30087FF02C084E031 525:1020C0008093E80031C0203879F58091E800877F5F
526:1020D00001C081E08093EC010E94AA0A8091E8008F 526:1020D0008093E8008091E8018093F1008091E8000E
527:1020E00083FF0AC08091E800877F8093E800809199 527:1020E0008E778093E8000E94840D1EC021111CC0D1
528:1020F000EB0080628093EB00AA960FB6F894DEBFE7 528:1020F0009091EF019230C0F48091E800877F809347
529:102100000FBECDBFDF91CF911F9108950895CF935A 529:10210000E8009093E8010E94840D8091E80181111C
530:102110008091EC018823B1F08091E9008F7090915B 530:1021100004C08091E30087FF02C084E001C081E039
531:10212000EC0090FF02C090E801C090E0C92FC82BDE 531:102120008093EC010E94D00A8091E80083FF0AC0EE
532:102130001092E9008091E80083FD0E94380FCF7073 532:102130008091E800877F8093E8008091EB008062C7
533:10214000C093E900CF91089590937101809370013D 533:102140008093EB00AA960FB6F894DEBF0FBECDBF0A
534:102150000895E0917001F0917101309721F00190A4 534:10215000DF91CF911F9108950895CF938091EC0165
535:10216000F081E02D099480E00895E0917001F091F4 535:102160008823B1F08091E9008F709091EC0090FF8E
536:102170007101309721F00280F381E02D09940895D8 536:1021700002C090E801C090E0C92FC82B1092E9007E
537:10218000E0917001F0917101309721F00480F581A8 537:102180008091E80083FD0E945E0FCF70C093E9004C
538:10219000E02D0994089520916E0130916F0182170E 538:10219000CF91089590937101809370010895E0911B
539:1021A000930771F090936F0180936E01E09170013D 539:1021A0007001F0917101309721F00190F081E02DE4
540:1021B000F0917101309721F00680F781E02D0994AC 540:1021B000099480E00895E0917001F09171013097E9
541:1021C000089520916C0130916D018217930771F091 541:1021C00021F00280F381E02D09940895E0917001DF
542:1021D00090936D0180936C01E0917001F091710119 542:1021D000F0917101309721F00480F581E02D099490
543:1021E000309721F00084F185E02D09940895089539 543:1021E000089520916E0130916F018217930771F06D
544:1021F0000C94F7100E94E11C0E94CA050C94A71DC4 544:1021F00090936F0180936E01E0917001F0917101F5
545:10220000CF92DF92EF92FF920F931F93CF93DF93C2 545:10220000309721F00680F781E02D09940895209100
546:10221000CDB7DEB72B970FB6F894DEBF0FBECDBF9C 546:102210006C0130916D018217930771F090936D01FD
547:102220000E94E20533E7E32E31E0F32E00E010E0F8 547:1022200080936C01E0917001F0917101309721F081
548:10223000C02E802F0E94CF06F701D1907F01D826B3 548:102230000084F185E02D0994089508950C941D11F2
549:10224000B1F40F5F1F4F0E30110591F78FEF8983A7 549:102240000E94071D0E94F0050C94CD1DCF92DF92D5
550:102250008A831B820E94EA1C8160782F9D838C8375 550:10225000EF92FF920F931F93CF93DF93CDB7DEB72B
551:1022600049815A816B818D810E94A31141C0909157 551:102260002B970FB6F894DEBF0FBECDBF0E940806B5
552:10227000D50191FF04C08B870E94D5068B8520E095 552:1022700033E7E32E31E0F32E00E010E0C02E802F94
553:1022800030E04D2D50E0922FBA01022E02C075951C 553:102280000E94F506F701D1907F01D826B1F40F5FC7
554:1022900067950A94E2F760FF25C02E83CF82EE2473 554:102290001F4F0E30110591F78FEF89838A831B82C0
555:1022A000E394F12C02C0EE0CFF1C9A95E2F790E04B 555:1022A0000E94101D8160782F9D838C8349815A8103
556:1022B0008E219F2121E0892B09F420E028870E94AC 556:1022B0006B818D810E94C91141C09091D50191FF20
557:1022C000EA1C8160782F9A8789874E815F816885B3 557:1022C00004C08B870E94FB068B8520E030E04D2DFB
558:1022D0008A850E94A311F801ED58FE4F80818E255A 558:1022D00050E0922FBA01022E02C0759567950A94BC
559:1022E000808306C02F5F3F4F2630310561F6A9CFAE 559:1022E000E2F760FF25C02E83CF82EE24E394F12C29
560:1022F0000E948B20109172010E94A9101817A1F062 560:1022F00002C0EE0CFF1C9A95E2F790E08E219F2120
561:102300000E94A910809372012B960FB6F894DEBF3D 561:1023000021E0892B09F420E028870E94101D8160BC
562:102310000FBECDBFDF91CF911F910F91FF90EF9036 562:10231000782F9A8789874E815F8168858A850E9498
563:10232000DF90CF900C94AE092B960FB6F894DEBFD9 563:10232000C911F801ED58FE4F80818E25808306C0CB
564:102330000FBECDBFDF91CF911F910F91FF90EF9016 564:102330002F5F3F4F2630310561F6A9CF0E94B120B3
565:10234000DF90CF900895CF93DF93CDB7DEB72B9773 565:10234000109172010E94CF101817A1F00E94CF10B7
566:102350000FB6F894DEBF0FBECDBF4F835887698795 566:10235000809372012B960FB6F894DEBF0FBECDBFEF
567:102360007A878B87DE01119686E0FD0111928A95AE 567:10236000DF91CF911F910F91FF90EF90DF90CF9071
568:10237000E9F785E0FE01379601900D928A95E1F725 568:102370000C94D4092B960FB6F894DEBF0FBECDBFD8
569:1023800049815A816B817C818D819E810E94F818E0 569:10238000DF91CF911F910F91FF90EF90DF90CF9051
570:102390002B960FB6F894DEBF0FBECDBFDF91CF9165 570:102390000895CF93DF93CDB7DEB72B970FB6F894A0
571:1023A00008950895CF93C82F882309F4C1C08238B7 571:1023A000DEBF0FBECDBF4F83588769877A878B8783
572:1023B00059F40E94A91081FDBBC089E30E94A21BB1 572:1023B000DE01119686E0FD0111928A95E9F785E02C
573:1023C0000E946C1C89E30CC0833879F40E94A91028 573:1023C000FE01379601900D928A95E1F749815A8175
574:1023D00080FDAEC083E50E94A21B0E946C1C83E5B9 574:1023D0006B817C818D819E810E941E192B960FB688
575:1023E0000E94E21BCF910C946C1C843859F40E941B 575:1023E000F894DEBF0FBECDBFDF91CF910895089561
576:1023F000A91082FD9DC087E40E94A21B0E946C1C54 576:1023F000CF93C82F882309F4C1C0823859F40E94B2
577:1024000087E4EECF8CEF8C0F813A48F48C2F0E943A 577:10240000CF1081FDBBC089E30E94C81B0E94921CB3
578:10241000BE2281118DC08C2F0E94A21BE3CF80E2CF 578:1024100089E30CC0833879F40E94CF1080FDAEC0F0
579:102420008C0F883048F4C77081E001C0880FCA95CE 579:1024200083E50E94C81B0E94921C83E50E94081C41
580:10243000EAF70E94231CD6CF8BE58C0F833078F40B 580:10243000CF910C94921C843859F40E94CF1082FDE5
581:10244000C53A29F0C63A31F482E890E005C081E847 581:102440009DC087E40E94C81B0E94921C87E4EECFC7
582:1024500090E002C083E890E0CF910C94CB1088E527 582:102450008CEF8C0F813A48F48C2F0E94E42281117A
583:102460008C0F833108F064C0C83A39F1C93A41F1A0 583:102460008DC08C2F0E94C81BE3CF80E28C0F883078
584:10247000CA3A49F1CB3A51F1CC3A59F1CD3A61F12E 584:1024700048F4C77081E001C0880FCA95EAF70E944E
585:10248000C03B69F1CE3A71F1CF3A79F1C13B81F1AC 585:10248000491CD6CF8BE58C0F833078F4C53A29F000
586:10249000C23B89F1C33B91F1C43B99F1C53BA1F12A 586:10249000C63A31F482E890E005C081E890E002C0DD
587:1024A000C63BA9F1C73BB1F1C83BB9F1C93BC1F18A 587:1024A00083E890E0CF910C94F11088E58C0F833194
588:1024B000CA3BC9F58AE292E038C082EE90E035C0AE 588:1024B00008F064C0C83A39F1C93A41F1CA3A49F161
589:1024C00089EE90E032C08AEE90E02FC085EB90E07C 589:1024C000CB3A51F1CC3A59F1CD3A61F1C03B69F1C7
590:1024D0002CC086EB90E029C087EB90E026C08CEC06 590:1024D000CE3A71F1CF3A79F1C13B81F1C23B89F13A
591:1024E00090E023C08DEC90E020C083E891E01DC017 591:1024E000C33B91F1C43B99F1C53BA1F1C63BA9F1B6
592:1024F0008AE891E01AC082E991E017C084E991E08E 592:1024F000C73BB1F1C83BB9F1C93BC1F1CA3BC9F512
593:1025000014C081E292E011C083E292E00EC084E246 593:102500008AE292E038C082EE90E035C089EE90E039
594:1025100092E00BC085E292E008C086E292E005C03E 594:1025100032C08AEE90E02FC085EB90E02CC086EBB5
595:1025200087E292E002C080E090E0CF910C94E1104D 595:1025200090E029C087EB90E026C08CEC90E023C0BF
596:10253000CF910895882309F44BC0823859F40E9442 596:102530008DEC90E020C083E891E01DC08AE891E036
597:10254000A91081FF45C089E30E94A21B0E946C1C58 597:102540001AC082E991E017C084E991E014C081E2E9
598:1025500089E30CC0833871F40E94A91080FF38C051 598:1025500092E011C083E292E00EC084E292E00BC0F0
599:1025600083E50E94A21B0E946C1C83E50E94E21B73 599:1025600085E292E008C086E292E005C087E292E050
600:102570000C946C1C843859F40E94A91082FF28C066 600:1025700002C080E090E0CF910C940711CF910895B4
601:1025800087E40E94A21B0E946C1C87E4EFCF9CEFA3 601:10258000882309F44BC0823859F40E94CF1081FF90
602:10259000980F913A58F390E2980F983050F4877062 602:1025900045C089E30E94C81B0E94921C89E30CC0BD
603:1025A00091E001C0990F8A95EAF7892F0E94291CB2 603:1025A000833871F40E94CF1080FF38C083E50E9409
604:1025B000DFCF9BE5980F933020F480E090E00C94FF 604:1025B000C81B0E94921C83E50E94081C0C94921C6C
605:1025C000CB10885A833120F480E090E00C94E11025 605:1025C000843859F40E94CF1082FF28C087E40E940B
606:1025D0000895882321F00E94231C0C946C1C0895FC 606:1025D000C81B0E94921C87E4EFCF9CEF980F913AA2
607:1025E000882321F00E94291C0C946C1C0895CF9222 607:1025E00058F390E2980F983050F4877091E001C052
608:1025F000DF92EF92FF920F931F93CF93DF93CDB7AC 608:1025F000990F8A95EAF7892F0E944F1CDFCF9BE540
609:10260000DEB728970FB6F894DEBF0FBECDBF8C01A2 609:10260000980F933020F480E090E00C94F110885AF9
610:1026100085E0F801DE01119601900D928A95E1F7AF 610:10261000833120F480E090E00C9407110895882322
611:10262000F801D080E180F280558152955F7023815E 611:1026200021F00E94491C0C94921C0895882321F0EB
612:102630003481232B39F0FFEFEF1206C081E0DF1267 612:102630000E944F1C0C94921C0895CF92DF92EF924F
613:1026400003C003C081E001C080E080FDE2C2C80198 613:10264000FF920F931F93CF93DF93CDB7DEB72897F9
614:102650005F830E94D111D982EA8269817A818F2DAC 614:102650000FB6F894DEBF0FBECDBF8C0185E0F80148
615:102660000E949E1B9E8388870E94521B0E94251AEF 615:10266000DE01119601900D928A95E1F7F801D08074
616:102670004E815F816885FF2029F00E94401C68859B 616:10267000E180F280558152955F7023813481232B54
617:102680005F814E81E42FE295EF70F0E0E659FF4F55 617:1026800039F0FFEFEF1206C081E0DF1203C003C094
618:102690000C94F024842F807F142F1F70882311F056 618:1026900081E001C080E080FDE2C2C8015F830E944A
619:1026A0001295107FFF20B1F0112309F467C280E278 619:1026A000F711D982EA8269817A818F2D0E94C41B39
620:1026B000860F883028F4812F68870E94231C04C06D 620:1026B0009E8388870E94781B0E944B1A4E815F81FF
621:1026C000812F68870E94331C688568870E946C1C74 621:1026C0006885FF2029F00E94661C68855F814E8125
622:1026D000688554C2862F68870E949A1268851123E4 622:1026D000E42FE295EF70F0E0E259FF4F0C941625DD
623:1026E00009F497C2605E812F683018F40E94291C9B 623:1026E000842F807F142F1F70882311F01295107F84
624:1026F00002C00E94391C28960FB6F894DEBF0FBEA8 624:1026F000FF20B1F0112309F467C280E2860F883011
625:10270000CDBFDF91CF911F910F91FF90EF90DF90A0 625:1027000028F4812F68870E94491C04C0812F6887A4
626:10271000CF900C946C1C242F207F842F8F7020323C 626:102710000E94591C688568870E94921C688554C273
627:1027200011F08295807F662319F0613019F12BC07A 627:10272000862F68870E94C0126885112309F497C21A
628:10273000FF20B1F0552309F493C1513009F090C145 628:10273000605E812F683018F40E944F1C02C00E9416
629:1027400028960FB6F894DEBF0FBECDBFDF91CF91B4 629:102740005F1C28960FB6F894DEBF0FBECDBFDF9199
630:102750001F910F91FF90EF90DF90CF900C94531C3E 630:10275000CF911F910F91FF90EF90DF90CF900C944D
631:10276000552319F0513009F454C28E830E94561C2F 631:10276000921C242F207F842F8F70203211F08295AD
632:102770008E8189C1FF2021F0523008F04AC270C119 632:10277000807F662319F0613019F12BC0FF20B1F082
633:10278000511147C280C1FF2021F0552309F468C1CF 633:10278000552309F493C1513009F090C128960FB632
634:10279000F5C1552309F477C105C2242F2695269546 634:10279000F894DEBF0FBECDBFDF91CF911F910F9197
635:1027A000237030E02115310521F021303105C9F0C9 635:1027A000FF90EF90DF90CF900C94791C552319F097
636:1027B00030C2FF2021F0862F942F937002C080E05A 636:1027B000513009F454C28E830E947C1C8E8189C1E1
637:1027C00090E028960FB6F894DEBF0FBECDBFDF9124 637:1027C000FF2021F0523008F04AC270C1511147C2B7
638:1027D000CF911F910F91FF90EF90DF90CF900C94CD 638:1027D00080C1FF2021F0552309F468C1F5C15523BC
639:1027E000CB10FF2021F0862F942F937002C080E041 639:1027E00009F477C105C2242F26952695237030E081
640:1027F00090E028960FB6F894DEBF0FBECDBFDF91F4 640:1027F0002115310521F021303105C9F030C2FF200B
641:10280000CF911F910F91FF90EF90DF90CF900C949C 641:1028000021F0862F942F937002C080E090E02896EC
642:10281000E110862FFF2019F00E94931F02C00E9432 642:102810000FB6F894DEBF0FBECDBFDF91CF911F91F1
643:10282000FB1F28960FB6F894DEBF0FBECDBFDF9119 643:102820000F91FF90EF90DF90CF900C94F110FF206C
644:10283000CF911F910F91FF90EF90DF90CF900C946C 644:1028300021F0862F942F937002C080E090E02896BC
645:102840008020842F837009F076C0F110E2C1262F1A 645:102840000FB6F894DEBF0FBECDBFDF91CF911F91C1
646:10285000229526952770220F220F862F8F70C82E63 646:102850000F91FF90EF90DF90CF900C940711862F8F
647:10286000D12CE12CF12C022E04C0CC0CDD1CEE1C72 647:10286000FF2019F00E94B91F02C00E942120289663
648:10287000FF1C0A94D2F764FF10C06FE070E080E0A4 648:102870000FB6F894DEBF0FBECDBFDF91CF911F9191
649:1028800090E004C0660F771F881F991F2A95D2F722 649:102880000F91FF90EF90DF90CF900C94A620842FB3
650:10289000609570958095909503C060E070E0CB01E5 650:10289000837009F076C0F110E2C1262F22952695AB
651:1028A000242F269526952370422F50E04230510563 651:1028A0002770220F220F862F8F70C82ED12CE12C7B
652:1028B000D1F04330510559F16C297D298E299F298A 652:1028B000F12C022E04C0CC0CDD1CEE1CFF1C0A9473
653:1028C0004130510541F128960FB6F894DEBF0FBE96 653:1028C000D2F764FF10C06FE070E080E090E004C0D9
654:1028D000CDBFDF91CF911F910F91FF90EF90DF90CF 654:1028D000660F771F881F991F2A95D2F7609570950C
655:1028E000CF900C944A1A6C297D298E299F2928960D 655:1028E0008095909503C060E070E0CB01242F269581
656:1028F0000FB6F894DEBF0FBECDBFDF91CF911F9111 656:1028F00026952370422F50E042305105D1F04330ED
657:102900000F91FF90EF90DF90CF900C94641A0E948B 657:10290000510559F16C297D298E299F2941305105A6
658:102910004A1AC701B60128960FB6F894DEBF0FBE5B 658:1029100041F128960FB6F894DEBF0FBECDBFDF9110
659:10292000CDBFDF91CF911F910F91FF90EF90DF907E 659:10292000CF911F910F91FF90EF90DF90CF900C947B
660:10293000CF900C94301AFF2019F0842F817001C0C1 660:10293000701A6C297D298E299F2928960FB6F89444
661:102940008695882309F465C1262F22952695277040 661:10294000DEBF0FBECDBFDF91CF911F910F91FF90E2
662:10295000220F220F862F8F70C82ED12CE12CF12C44 662:10295000EF90DF90CF900C948A1A0E94701AC701F2
663:10296000022E04C0CC0CDD1CEE1CFF1C0A94D2F716 663:10296000B60128960FB6F894DEBF0FBECDBFDF913B
664:1029700064FF10C06FE070E080E090E004C0660F7C 664:10297000CF911F910F91FF90EF90DF90CF900C942B
665:10298000771F881F991F2A95D2F7609570958095BB 665:10298000561AFF2019F0842F817001C08695882384
666:10299000909503C060E070E0CB01242F269526952A 666:1029900009F465C1262F229526952770220F220F54
667:1029A0002370422F50E042305105D1F043305105A1 667:1029A000862F8F70C82ED12CE12CF12C022E04C062
668:1029B00059F16C297D298E299F294130510541F11A 668:1029B000CC0CDD1CEE1CFF1C0A94D2F764FF10C087
669:1029C00028960FB6F894DEBF0FBECDBFDF91CF9132 669:1029C0006FE070E080E090E004C0660F771F881F22
670:1029D0001F910F91FF90EF90DF90CF900C941E1BF2 670:1029D000991F2A95D2F7609570958095909503C0C0
671:1029E0006C297D298E299F2928960FB6F894DEBF81 671:1029E00060E070E0CB01242F269526952370422FBE
672:1029F0000FBECDBFDF91CF911F910F91FF90EF9050 672:1029F00050E042305105D1F04330510559F16C2976
673:102A0000DF90CF900C94381B0E941E1BC701B601AB 673:102A00007D298E299F294130510541F128960FB625
674:102A100028960FB6F894DEBF0FBECDBFDF91CF91E1 674:102A1000F894DEBF0FBECDBFDF91CF911F910F9114
675:102A20001F910F91FF90EF90DF90CF900C94041BBB 675:102A2000FF90EF90DF90CF900C94441B6C297D2990
676:102A3000603FC9F118F4603E50F49BC0623F09F456 676:102A30008E299F2928960FB6F894DEBF0FBECDBF12
677:102A400060C008F44AC0633F09F46FC092C0162FFB 677:102A4000DF91CF911F910F91FF90EF90DF90CF908A
678:102A50001F70842F8F71FF2099F00E949D1A812F83 678:102A50000C945E1B0E94441BC701B60128960FB65A
679:102A600028960FB6F894DEBF0FBECDBFDF91CF9191 679:102A6000F894DEBF0FBECDBFDF91CF911F910F91C4
680:102A70001F910F91FF90EF90DF90CF900C94E9128F 680:102A7000FF90EF90DF90CF900C942A1B603FC9F13C
681:102A80000E94BE1A812F28960FB6F894DEBF0FBEA3 681:102A800018F4603E50F49BC0623F09F460C008F443
682:102A9000CDBFDF91CF911F910F91FF90EF90DF900D 682:102A90004AC0633F09F46FC092C0162F1F70842F85
683:102AA000CF900C94F012FF20A1F05111B2C0842FEE 683:102AA0008F71FF2099F00E94C31A812F28960FB6CC
684:102AB0008F7128960FB6F894DEBF0FBECDBFDF91A1 684:102AB000F894DEBF0FBECDBFDF91CF911F910F9174
685:102AC000CF911F910F91FF90EF90DF90CF900C94DA 685:102AC000FF90EF90DF90CF900C940F130E94E41AC8
686:102AD000E31A523008F09DC0EACFFF20A1F0842F06 686:102AD000812F28960FB6F894DEBF0FBECDBFDF91D1
687:102AE0008F7128960FB6F894DEBF0FBECDBFDF9171 687:102AE000CF911F910F91FF90EF90DF90CF900C94BA
688:102AF000CF911F910F91FF90EF90DF90CF900C94AA 688:102AF0001613FF20A1F05111B2C0842F8F712896B8
689:102B00009D1AFF2061F3842F8F7128960FB6F894D9 689:102B00000FB6F894DEBF0FBECDBFDF91CF911F91FE
690:102B1000DEBF0FBECDBFDF91CF911F910F91FF9010 690:102B10000F91FF90EF90DF90CF900C94091B5230F3
691:102B2000EF90DF90CF900C94BE1AFF2091F0842F8D 691:102B200008F09DC0EACFFF20A1F0842F8F71289676
692:102B30008F7128960FB6F894DEBF0FBECDBFDF9120 692:102B30000FB6F894DEBF0FBECDBFDF91CF911F91CE
693:102B4000CF911F910F91FF90EF90DF90CF900C9459 693:102B40000F91FF90EF90DF90CF900C94C31AFF206D
694:102B5000881A28960FB6F894DEBF0FBECDBFDF915E 694:102B500061F3842F8F7128960FB6F894DEBF0FBEF5
695:102B6000CF911F910F91FF90EF90DF90CF900C9439 695:102B6000CDBFDF91CF911F910F91FF90EF90DF903C
696:102B70007E1AFF20A1F0552309F4B1CF862F2896A5 696:102B7000CF900C94E41AFF2091F0842F8F71289647
697:102B80000FB6F894DEBF0FBECDBFDF91CF911F917E 697:102B80000FB6F894DEBF0FBECDBFDF91CF911F917E
698:102B90000F91FF90EF90DF90CF900C94D2115523BE 698:102B90000F91FF90EF90DF90CF900C94AE1A289693
699:102BA00009F4B1CF862F28960FB6F894DEBF0FBE7A 699:102BA0000FB6F894DEBF0FBECDBFDF91CF911F915E
700:102BB000CDBFDF91CF911F910F91FF90EF90DF90EC 700:102BB0000F91FF90EF90DF90CF900C94A41AFF201C
701:102BC000CF900C949A124F70C8010E940D03289662 701:102BC000A1F0552309F4B1CF862F28960FB6F894BB
702:102BD0000FB6F894DEBF0FBECDBFDF91CF911F912E 702:102BD000DEBF0FBECDBFDF91CF911F910F91FF9050
703:102BE0000F91FF90EF90DF90CF900C94A5194F704C 703:102BE000EF90DF90CF900C94F811552309F4B1CFFA
704:102BF000C80128960FB6F894DEBF0FBECDBFDF9197 704:102BF000862F28960FB6F894DEBF0FBECDBFDF91AB
705:102C0000CF911F910F91FF90EF90DF90CF900C9498 705:102C0000CF911F910F91FF90EF90DF90CF900C9498
706:102C1000D60628960FB6F894DEBF0FBECDBFDF9163 706:102C1000C0124F70C8010E941D0328960FB6F89489
707:102C2000CF911F910F91FF90EF90DF90CF9008957B 707:102C2000DEBF0FBECDBFDF91CF911F910F91FF90FF
708:102C30000E94401C0E94501C0E94151C0E946C1C8B 708:102C3000EF90DF90CF900C94CB194F70C80128967D
709:102C40000E942C210E94802080E090E00E94CB1006 709:102C40000FB6F894DEBF0FBECDBFDF91CF911F91BD
710:102C500080E090E00C94E1100E94301C0C94181657 710:102C50000F91FF90EF90DF90CF900C94FC06289698
711:102C60000E94931B292F22952F7030E02C303105C4 711:102C60000FB6F894DEBF0FBECDBFDF91CF911F919D
712:102C70004CF42A3031056CF42250310922303105F0 712:102C70000F91FF90EF90DF90CF9008950E94661C17
713:102C800090F407C02C30310551F02F30310539F068 713:102C80000E94761C0E943B1C0E94921C0E945221B2
714:102C90000AC0803E10F0803F31F481E0089593FB3C 714:102C90000E94A62080E090E00E94F11080E090E089
715:102CA000882780F9089580E00895CF93DF9300D0BE 715:102CA0000C9407110E94561C0C943E160E94B91BEE
716:102CB00000D01F92CDB7DEB70F900F900F900F90FE 716:102CB000292F22952F7030E02C3031054CF42A302A
717:102CC0000F90DF91CF910895CF93DF9300D000D084 717:102CC00031056CF4225031092230310590F407C0EF
718:102CD00000D0CDB7DEB726960FB6F894DEBF0FBE94 718:102CD0002C30310551F02F30310539F00AC0803EDB
719:102CE000CDBFDF91CF9108951F93CF93DF93C09114 719:102CE00010F0803F31F481E0089593FB882780F94C
720:102CF000810116E080918201C81799F0D0E01C9FF5 720:102CF000089580E00895CF93DF9300D000D01F9215
721:102D0000F0011D9FF00D1124ED57FE4F40815181C0 721:102D0000CDB7DEB70F900F900F900F900F90DF911F
722:102D100062817381848195810E9464162196C770B7 722:102D1000CF910895CF93DF9300D000D000D0CDB7EE
723:102D2000E9CFDF91CF911F9108954091B301509168 723:102D2000DEB726960FB6F894DEBF0FBECDBFDF919B
724:102D3000B4016091B5017091B6018091B701909195 724:102D3000CF9108951F93CF93DF93C091810116E047
725:102D4000B8010C946416CF938091B80182958F706E 725:102D400080918201C81799F0D0E01C9FF0011D9F6F
726:102D500009F05FC08091B501882309F45AC0209121 726:102D5000F00D1124ED57FE4F408151816281738146
727:102D60008101A09182016091B3017091B4018091C1 727:102D6000848195810E948A162196C770E9CFDF91F0
728:102D7000B6019091B70131E06F3F09F030E0B32F19 728:102D7000CF911F9108954091B3015091B40160919A
729:102D8000C6E02A1709F445C0009721F07F3F21F4DF 729:102D8000B5017091B6018091B7019091B8010C9492
730:102D90004B2F03C041E001C040E030E040FD35C0B2 730:102D90008A16CF938091B80182958F7009F05FC039
731:102DA000C29FF001C39FF00D1124ED57FE4F4181EA 731:102DA0008091B501882309F45AC020918101A09136
732:102DB00074132BC04081641328C04281411125C087 732:102DB00082016091B3017091B4018091B60190914C
733:102DC000438154814817590710F441505109481B59 733:102DC000B70131E06F3F09F030E0B32FC6E02A17BA
734:102DD000590B483C5105C8F48091B8018F7080614F 734:102DD00009F445C0009721F07F3F21F44B2F03C039
735:102DE0008093B80186E0829FF001839FF00D11244B 735:102DE00041E001C040E030E040FD35C0C29FF0014D
736:102DF000E857FE4F80818F708061808383EB91E084 736:102DF000C39FF00D1124ED57FE4F418174132BC07A
737:102E00000E94F712CF910C9474162F5F3F4F2770DA 737:102E00004081641328C04281411125C0438154810F
738:102E1000B8CFCF910895CF92DF92EF92FF920F93A8 738:102E10004817590710F441505109481B590B483CB9
739:102E20001F93CF93DF93CDB7DEB762970FB6F894B9 739:102E20005105C8F48091B8018F7080618093B8011A
740:102E3000DEBF0FBECDBF8C0185E0F801DE011D961F 740:102E300086E0829FF001839FF00D1124E857FE4F3A
741:102E400001900D928A95E1F7D8014C9111965C9111 741:102E400080818F708061808383EB91E00E941D13ED
742:102E5000119712966C9112971396ED90FC9014971F 742:102E5000CF910C949A162F5F3F4F2770B8CFCF9128
743:102E60007091B301E091B4012091B6013091B701A6 743:102E60000895CF92DF92EF92FF920F931F93CF932B
744:102E70002115310531F0EF3F31F481E07F3F19F446 744:102E7000DF93CDB7DEB762970FB6F894DEBF0FBE13
745:102E800003C081E001C080E0B82FB170CB2E80FD7F 745:102E8000CDBF8C0185E0F801DE011D9601900D9209
746:102E90006CC1D090B501DD2009F4F5C0F091B80106 746:102E90008A95E1F7D8014C9111965C9111971296A1
747:102EA000E216F30638F0C701821B930B883C9105AC 747:102EA0006C9112971396ED90FC9014977091B3016A
748:102EB00048F09BC0209530952E0D3F1D283C3105D4 748:102EB000E091B4012091B6013091B701211531059F
749:102EC00008F093C08F2F807F09F052C0E51314C023 749:102EC00031F0EF3F31F481E07F3F19F403C081E03E
750:102ED000741312C0D62E61110FC0FF70F061F09311 750:102ED00001C080E0B82FB170CB2E80FD6CC1D090C6
751:102EE000B8010E94951683EB91E00E94F712809141 751:102EE000B501DD2009F4F5C0F091B801E216F30652
752:102EF000B801F80185836CC1EF2831F05F3F31F4F0 752:102EF00038F0C701821B930B883C910548F09BC0BA
753:102F000081E04F3F19F403C081E001C080E080FD03 753:102F0000209530952E0D3F1D283C310508F093C0CB
754:102F100003C081E0862701C080E0F82FF170FF2E0A 754:102F10008F2F807F09F052C0E51314C0741312C0C4
755:102F200080FF1CC0809181012091820136E08217D0 755:102F2000D62E61110FC0FF70F061F093B8010E94BE
756:102F300009F428C190E0389FF001399FF00D112469 756:102F3000BB1683EB91E00E941D138091B801F8014C
757:102F4000ED57FE4F7181571306C07081471303C0C0 757:102F400085836CC1EF2831F05F3F31F481E04F3F62
758:102F50007281671303C001968770E9CFD62E66236E 758:102F500019F403C081E001C080E080FD03C081E07E
759:102F600009F436C18091B80181608093B80153C0E3 759:102F6000862701C080E0F82FF170FF2E80FF1CC083
760:102F7000E51308C0741306C0611104C0D80115968A 760:102F7000809181012091820136E0821709F428C1F5
761:102F8000FC93AEC04D875E878D859E856A8B0E94BF 761:102F800090E0389FF001399FF00D1124ED57FE4F6E
762:102F900030166A89882329F1D62E662311F12091F3 762:102F90007181571306C07081471303C07281671394
763:102FA000B801822F82958F7090E002970CF460C078 763:102FA00003C001968770E9CFD62E662309F436C197
764:102FB0008091B3019091B40198878F831986FB8625 764:102FB0008091B80181608093B80153C0E51308C0C7
765:102FC000EA862C87CE01079651C0E51731F14D876F 765:102FC000741306C0611104C0D8011596FC93AEC0FD
766:102FD0005E878D859E856A8B0E9430166A89811175 766:102FD0004D875E878D859E856A8B0E9456166A890D
767:102FE0002EC0C8010E94F712A4C08F2F807F69F7FE 767:102FE000882329F1D62E662311F12091B801822F72
768:102FF0007E2DF98AE88A89890E94551683EB91E033 768:102FF00082958F7090E002970CF460C08091B301CD
769:103000000E94F712E3EBF1E086E0DF011D928A9562 769:103000009091B40198878F831986FB86EA862C8776
770:10301000E9F70E949516D12CDBC07413D8CF61114B 770:10301000CE01079651C0E51731F14D875E878D854A
771:10302000D6CFD8011596FC93C8010E94F712E3EBA6 771:103020009E856A8B0E9456166A8981112EC0C8013E
772:10303000F1E086E0DF011D928A95E9F7C9C0D62E3E 772:103030000E941D13A4C08F2F807F69F77E2DF98A0F
773:10304000662379F22091B801822F82958F7090E0EB 773:10304000E88A89890E947B1683EB91E00E941D1318
774:10305000029774F08091B3019091B4019A838983AF 774:10305000E3EBF1E086E0DF011D928A95E9F70E943B
775:103060001B82FD82EC822E83CE0101960E94F71214 775:10306000BB16D12CDBC07413D8CF6111D6CFD801D9
776:1030700086E0F801A3EBB1E001900D928A95E1F7AB 776:103070001596FC93C8010E941D13E3EBF1E086E076
777:103080000E94A3166FC0E216F30628F0C701821B48 777:10308000DF011D928A95E9F7C9C0D62E662379F231
778:10309000930B9C0104C0209530952E0D3F1D283CBC 778:103090002091B801822F82958F7090E0029774F092
779:1030A000310508F052C0D62E662309F49ACFE513F5 779:1030A0008091B3019091B4019A8389831B82FD8240
780:1030B0002CC074132AC08091B80180FD1DC0982FC8 780:1030B000EC822E83CE0101960E941D1386E0F8015A
781:1030C00092959F70C9F0D80115968C9315979F30F3 781:1030C000A3EBB1E001900D928A95E1F70E94C91639
782:1030D00039F09F5F9295907F8F70892B15968C9316 782:1030D0006FC0E216F30628F0C701821B930B9C0118
783:1030E000C8010E94F71286E0F801A3EBB1E001905D 783:1030E00004C0209530952E0D3F1D283C310508F079
784:1030F0000D928A95E1F736C086E0F801A3EBB1E0C6 784:1030F00052C0D62E662309F49ACFE5132CC0741360
785:1031000001900D928A95E1F763C04D875E878D85AA 785:103100002AC08091B80180FD1DC0982F92959F70B4
786:103110009E850E943016882379F086E0F801A3EBA3 786:10311000C9F0D80115968C9315979F3039F09F5FB1
787:10312000B1E001900D928A95E1F70E94A3160E94EA 787:103120009295907F8F70892B15968C93C8010E9481
788:103130009516DD24D3944CC08091B80181608093B2 788:103130001D1386E0F801A3EBB1E001900D928A9592
789:10314000B801C8010E94F71243C07E2DF98AE88AAF 789:10314000E1F736C086E0F801A3EBB1E001900D9203
790:1031500089890E945516E3EBF1E086E0DF011D92BC 790:103150008A95E1F763C04D875E878D859E850E94C5
791:103160008A95E9F70E94951633C0662309F439CF92 791:103160005616882379F086E0F801A3EBB1E00190D0
792:103170004D875E878D859E850E943016882309F4D1 792:103170000D928A95E1F70E94C9160E94BB16DD24C4
793:1031800030CFCBCF4D875E878D859E850E94931B68 793:10318000D3944CC08091B80181608093B801C8018C
794:10319000292F22952F7030E0223031052CF49F70BA 794:103190000E941D1343C07E2DF98AE88A89890E9406
795:1031A00041F0811106C00CC0243031052CF49F7011 795:1031A0007B16E3EBF1E086E0DF011D928A95E9F7FB
796:1031B00049F4805E883020F0C8010E94F712CF2CBD 796:1031B0000E94BB1633C0662309F439CF4D875E8762
797:1031C000DC2C06C0D80115969C91907F91F7F8CF22 797:1031C0008D859E850E945616882309F430CFCBCF7B
798:1031D0008D2D62960FB6F894DEBF0FBECDBFDF9186 798:1031D0004D875E878D859E850E94B91B292F22957C
799:1031E000CF911F910F91FF90EF90DF90CF900895B6 799:1031E0002F7030E0223031052CF49F7041F08111B6
800:1031F0001F93CF93DF93CDB7DEB72C970FB6F8941C 800:1031F00006C00CC0243031052CF49F7049F4805E69
801:10320000DEBF0FBECDBF4F83588769877A878B8714 801:10320000883020F0C8010E941D13CF2CDC2C06C092
802:103210009C87CE0107960E940B178823C1F02F814F 802:10321000D80115969C91907F91F7F8CF8D2D6296ED
803:1032200038858A859B85892B31F03F3F11F080E0FE 803:103220000FB6F894DEBF0FBECDBFDF91CF911F91D7
804:1032300003C02F3FE1F781E0811147C04F815885DE 804:103230000F91FF90EF90DF90CF9008951F93CF9361
805:1032400069857A858B859C850E9464163EC086E0E0 805:10324000DF93CDB7DEB72C970FB6F894DEBF0FBE75
806:10325000FE013796DE01119601900D928A95E1F7F5 806:10325000CDBF4F83588769877A878B879C87CE013C
807:10326000FF81E8854A855B854115510531F0EF3FC7 807:1032600007960E9431178823C1F02F8138858A85FF
808:1032700031F481E0FF3F19F403C081E001C080E038 808:103270009B85892B31F03F3F11F080E003C02F3F49
809:1032800080FD23C02091820130E0C9010196877042 809:10328000E1F781E0811147C04F81588569857A85D2
810:1032900099276091810170E086179707F1F1F98312 810:103290008B859C850E948A163EC086E0FE0137968B
811:1032A000EA835D834C8396E0929FD001939FB00D9B 811:1032A000DE01119601900D928A95E1F7FF81E88584
812:1032B0001124AD57BE4FFE01319601900D929A95A3 812:1032B0004A855B854115510531F0EF3F31F481E0DE
813:1032C000E1F7809382010E94741616E080918101DB 813:1032C000FF3F19F403C081E001C080E080FD23C00E
814:1032D00090918201891779F1189FC00111248D57AF 814:1032D0002091820130E0C9010196877099276091A1
815:1032E0009E4F0E940B17882331F1E09181011E9FB0 815:1032E000810170E086179707F1F1F983EA835D8326
816:1032F000F0011124ED57FE4F4081518162817381AD 816:1032F0004C8396E0929FD001939FB00D1124AD575F
817:10330000848195810E9464168091810190E00196EC 817:10330000BE4FFE01319601900D929A95E1F78093A0
818:103310008770992780938101D9CF0E942C16109233 818:1033100082010E949A1616E08091810190918201AB
819:10332000820110928101E3EBF1E086E0DF011D9262 819:10332000891779F1189FC00111248D579E4F0E9473
820:103330008A95E9F7CACF2C960FB6F894DEBF0FBE78 820:103330003117882331F1E09181011E9FF0011124A2
821:10334000CDBFDF91CF911F910895EF92FF920F9320 821:10334000ED57FE4F40815181628173818481958167
822:103350001F93CF93DF93FC01009709F46FC0F12C0A 822:103350000E948A168091810190E0019687709927DA
823:10336000EE24E394EF0121968491843740F4843075 823:1033600080938101D9CF0E9452161092820110924F
824:1033700008F055C0813081F0823021F15FC085377F 824:103370008101E3EBF1E086E0DF011D928A95E9F738
825:1033800009F447C0C0F19CE7980F903708F056C089 825:10338000CACF2C960FB6F894DEBF0FBECDBFDF912B
826:103390008F770E949A1245C08F010E5F1F4FFE016A 826:10339000CF911F910895EF92FF920F931F93CF93B8
827:1033A000849190E2980F983050F48770FE2D01C000 827:1033A000DF93FC01009709F46FC0F12CEE24E39445
828:1033B000FF0F8A95EAF78F2F0E94431C15C00E94C9 828:1033B000EF0121968491843740F4843008F055C0A1
829:1033C000D21114C08F010E5F1F4FFE01849190E255 829:1033C000813081F0823021F15FC0853709F447C038
830:1033D000980F983068F48770FE2D01C0FF0F8A9512 830:1033D000C0F19CE7980F903708F056C08F770E9495
831:1033E000EAF78F2F0E94491C0E946C1CE80119C04B 831:1033E000C01245C08F010E5F1F4FFE01849190E215
832:1033F0000E949A12FBCFCF010296FE01C491CC230A 832:1033F000980F983050F48770FE2D01C0FF0F8A950A
833:1034000061F0EFE9FFE03197F1F700C00000C15033 833:10340000EAF78F2F0E94691C15C00E94F81114C0A2
834:10341000F6CFCF010296FE01F490EC0102C00E94AB 834:103410008F010E5F1F4FFE01849190E2980F98304C
835:10342000D2118F2D882341F0EFE9FFE03197F1F7BA 835:1034200068F48770FE2D01C0FF0F8A95EAF78F2F91
836:1034300000C000008150F6CFFE0194CFDF91CF9104 836:103430000E946F1C0E94921CE80119C00E94C012D9
837:103440001F910F91FF90EF90089508956093BD0133 837:10344000FBCFCF010296FE01C491CC2361F0EFE9DE
838:103450007093BE018093BF019093C0010C94181625 838:10345000FFE03197F1F700C00000C150F6CFCF0177
839:103460000F931F930091BD011091BE012091BF01E8 839:103460000296FE01F490EC0102C00E94F8118F2D2B
840:103470003091C001062B172B282B392B0093BD014F 840:10347000882341F0EFE9FFE03197F1F700C0000049
841:103480001093BE012093BF013093C0011F910F9193 841:103480008150F6CFFE0194CFDF91CF911F910F9124
842:103490000C9418160F931F930091BD011091BE015B 842:10349000FF90EF90089508956093BD017093BE0171
843:1034A0002091BF013091C00106231723282339231F 843:1034A0008093BF019093C0010C943E160F931F931D
844:1034B0000093BD011093BE012093BF013093C00162 844:1034B0000091BD011091BE012091BF013091C0016A
845:1034C0001F910F910C9418160F931F930091BD013B 845:1034C000062B172B282B392B0093BD011093BE011F
846:1034D0001091BE012091BF013091C001062717272E 846:1034D0002093BF013093C0011F910F910C943E16B1
847:1034E000282739270093BD011093BE012093BF0107 847:1034E0000F931F930091BD011091BE012091BF0168
848:1034F0003093C0011F910F910C9418161092B901CE 848:1034F0003091C00106231723282339230093BD01EF
849:103500001092BA011092BB011092BC010C941816D3 849:103500001093BE012093BF013093C0011F910F9112
850:1035100041E050E060E070E004C0440F551F661FBA 850:103510000C943E160F931F930091BD011091BE01B4
851:10352000771F8A95D2F74093B9015093BA016093FF 851:103520002091BF013091C00106271727282739278E
852:10353000BB017093BC010C94181641E050E060E0B0 852:103530000093BD011093BE012093BF013093C001E1
853:1035400070E004C0440F551F661F771F8A95D2F79D 853:103540001F910F910C943E161092B9011092BA017E
854:103550008091B9019091BA01A091BB01B091BC01D9 854:103550001092BB011092BC010C943E1641E050E069
855:10356000842B952BA62BB72B8093B9019093BA018E 855:1035600060E070E004C0440F551F661F771F8A9506
856:10357000A093BB01B093BC010C94181641E050E03D 856:10357000D2F74093B9015093BA016093BB017093A5
857:1035800060E070E004C0440F551F661F771F8A95E6 857:10358000BC010C943E1641E050E060E070E004C0E5
858:10359000D2F740955095609570958091B9019091C2 858:10359000440F551F661F771F8A95D2F78091B90196
859:1035A000BA01A091BB01B091BC0184239523A6234D 859:1035A0009091BA01A091BB01B091BC01842B952BE5
860:1035B000B7238093B9019093BA01A093BB01B09354 860:1035B000A62BB72B8093B9019093BA01A093BB01BE
861:1035C000BC010C94181641E050E060E070E004C0CB 861:1035C000B093BC010C943E1641E050E060E070E026
862:1035D000440F551F661F771F8A95D2F78091B90156 862:1035D00004C0440F551F661F771F8A95D2F7409588
863:1035E0009091BA01A091BB01B091BC0184279527AD 863:1035E0005095609570958091B9019091BA01A09124
864:1035F000A627B7278093B9019093BA01A093BB0186 864:1035F000BB01B091BC0184239523A623B7238093FC
865:10360000B093BC010C9418160F931F930091B9014D 865:10360000B9019093BA01A093BB01B093BC010C9493
866:103610001091BA012091BB013091BC01062B172BF0 866:103610003E1641E050E060E070E004C0440F551FEA
867:10362000282B392B0093B9011093BA012093BB01C9 867:10362000661F771F8A95D2F78091B9019091BA01F0
868:103630003093BC011F910F910C9418160F931F9398 868:10363000A091BB01B091BC0184279527A627B7278D
869:103640000091B9011091BA012091BB013091BC01E8 869:103640008093B9019093BA01A093BB01B093BC01E0
870:1036500006231723282339230093B9011093BA01B5 870:103650000C943E160F931F930091B9011091BA017B
871:103660002093BB013093BC011F910F910C9418164D 871:103660002091BB013091BC01062B172B282B392B45
872:103670000F931F930091B9011091BA012091BB01E2 872:103670000093B9011093BA012093BB013093BC01B0
873:103680003091BC0106271727282739270093B90155 873:103680001F910F910C943E160F931F930091B90157
874:103690001093BA012093BB013093BC011F910F918D 874:103690001091BA012091BB013091BC010623172380
875:1036A0000C9418160895CF92DF92EF92FF920F9329 875:1036A000282339230093B9011093BA012093BB0159
876:1036B0001F93CF93DF93EC01C090BD01D090BE016A 876:1036B0003093BC011F910F910C943E160F931F93F2
877:1036C000E090BF01F090C0018091B9019091BA01E2 877:1036C0000091B9011091BA012091BB013091BC0168
878:1036D000A091BB01B091BC01C82AD92AEA2AFB2AD1 878:1036D00006271727282739270093B9011093BA0125
879:1036E0000FE110E0B701A601002E04C076956795A2 879:1036E0002093BB013093BC011F910F910C943E16A7
880:1036F000579547950A94D2F740FD05C0015011092E 880:1036F0000895CF92DF92EF92FF920F931F93CF9393
881:1037000088F780E007C0BE01802F0E94130901974F 881:10370000DF93EC01C090BD01D090BE01E090BF01FD
882:10371000A9F3802FDF91CF911F910F91FF90EF9030 882:10371000F090C0018091B9019091BA01A091BB01D4
883:10372000DF90CF900895CF93DF93EC010E94531B5D 883:10372000B091BC01C82AD92AEA2AFB2A0FE110E08D
884:10373000BE010E941309DF91CF910895CB010E9431 884:10373000B701A601002E04C0769567955795479569
885:10374000931B089590910C019923D9F090910D014C 885:103740000A94D2F740FD05C00150110988F780E0C6
886:103750009923B9F0982F9695969596959F3088F570 886:1037500007C0BE01802F0E9439090197A9F3802F6D
887:10376000E0910E01F0910F01E90FF11D877021E04A 887:10376000DF91CF911F910F91FF90EF90DF90CF905D
888:1037700030E001C0220F8A95EAF78181822B818394 888:103770000895CF93DF93EC010E94791BBE010E9454
889:10378000089540910E0150910F0120E030E09FEF2D 889:103780003909DF91CF910895CB010E94B91B0895AB
890:10379000FA01E20FF31F6281681799F09F3F19F455 890:1037900090910C019923D9F090910D019923B9F0E2
891:1037A000611101C0922F2F5F3F4F2E30310581F7FD 891:1037A000982F9695969596959F3088F5E0910E0105
892:1037B0009F3F39F0FA01E90FF11D97FDFA958283D9 892:1037B000F0910F01E90FF11D877021E030E001C0A9
893:1037C0000895089590910C019923E1F090910D01D5 893:1037C000220F8A95EAF78181822B818308954091A7
894:1037D0009923C1F0982F9695969596959F3020F550 894:1037D0000E0150910F0120E030E09FEFFA01E20F5F
895:1037E000E0910E01F0910F01E90FF11D877021E0CA 895:1037E000F31F6281681799F09F3F19F4611101C0BE
896:1037F00030E001C0220F8A95EAF7209581812823C5 896:1037F000922F2F5F3F4F2E30310581F79F3F39F0D9
897:103800002183089540910E0150910F0120E030E096 897:10380000FA01E90FF11D97FDFA9582830895089555
898:10381000FA01E20FF31F9281981301C012822F5F09 898:1038100090910C019923E1F090910D019923C1F051
899:103820003F4F2E303105A1F7089581E090E0E091FF 899:10382000982F9695969596959F3020F5E0910E01EC
900:103830000E01F0910F01E80FF91F108201968031FF 900:10383000F0910F01E90FF11D877021E030E001C028
901:103840009105A9F708959091D401982B9093D401F4 901:10384000220F8A95EAF72095818128232183089504
902:10385000089580959091D40198239093D401089570 902:1038500040910E0150910F0120E030E0FA01E20F9B
903:103860001092D40108959091D301982B9093D30195 903:10386000F31F9281981301C012822F5F3F4F2E30B9
904:10387000089580959091D30198239093D301089552 904:103870003105A1F7089581E090E0E0910E01F0910B
905:103880001092D30108959091D201982B9093D20178 905:103880000F01E80FF91F1082019680319105A9F709
906:10389000089580959091D20198239093D201089534 906:1038900008959091D401982B9093D4010895809528
907:1038A0001092D20108958093C10108951092C10130 907:1038A0009091D40198239093D40108951092D4015B
908:1038B000089540910E0150910F0120E030E080E02A 908:1038B00008959091D301982B9093D301089580950A
909:1038C000FA01E20FF31F918191118F5F2F5F3F4F3C 909:1038C0009091D30198239093D30108951092D3013E
910:1038D0002F303105A9F70895E0910E01F0910F0105 910:1038D00008959091D201982B9093D20108958095EC
911:1038E0008091D4018083E0910E01F0910F018081DD 911:1038E0009091D20198239093D20108951092D20121
912:1038F0009091D301892B8083E0910E01F0910F010B 912:1038F00008958093C10108951092C10108954091E7
913:1039000080819091D201892B80839091C10199236C 913:103900000E0150910F0120E030E080E0FA01E20F5B
914:1039100061F0E0910E01F0910F018081892B80838D 914:10391000F31F918191118F5F2F5F3F4F2F30310542
915:103920000E94591C81111092C10180910E01909149 915:10392000A9F70895E0910E01F0910F018091D40163
916:103930000F010C94B5108091EC01843021F11092AC 916:103930008083E0910E01F0910F0180819091D3017D
917:10394000D60120E488E190E00FB6F894A895809322 917:10394000892B8083E0910E01F0910F01808190918D
918:1039500060000FBE2093600080E00E94AE0983B734 918:10395000D201892B80839091C101992361F0E0917C
919:10396000817F846083BF83B7816083BF78948895AB 919:103960000E01F0910F018081892B80830E947F1CC2
920:1039700083B78E7F83BF88E10FB6F8948093600091 920:1039700081111092C10180910E0190910F010C9460
921:10398000109260000FBE089508950895CF930E948D 921:10398000DB108091EC01843021F11092D60120E40B
922:10399000C41C0E94E2050E94C51CC0E08C2F0E943E 922:1039900088E190E00FB6F894A895809360000FBE80
923:1039A000CF06811105C0CF5FCE30C1F780E001C0E6 923:1039A0002093600080E00E94D40983B7817F846007
924:1039B00081E0CF9108950E942C160E94A9100C94CA 924:1039B00083BF83B7816083BF7894889583B78E7FF8
925:1039C000AE0982E084BD93E095BD9AEF97BD8093E8 925:1039C00083BF88E10FB6F894809360001092600086
926:1039D0006E0008952FB7F8948091D7019091D80187 926:1039D0000FBE089508950895CF930E94EA1C0E9497
927:1039E000A091D901B091DA012FBF0895CF92DF9253 927:1039E00008060E94EB1CC0E08C2F0E94F506811196
928:1039F000EF92FF920F931F932FB7F8944091D70146 928:1039F00005C0CF5FCE30C1F780E001C081E0CF913C
929:103A00005091D8016091D9017091DA012FBF6A01FC 929:103A000008950E9452160E94CF100C94D40982E0AF
930:103A10007B01EE24FF248C0120E030E0C016D106AB 930:103A100084BD93E095BD9AEF97BD80936E000895A5
931:103A2000E206F30610F441505109481B590BCA0134 931:103A20002FB7F8948091D7019091D801A091D90136
932:103A30001F910F91FF90EF90DF90CF9008951F920C 932:103A3000B091DA012FBF0895CF92DF92EF92FF92FB
933:103A40000F920FB60F9211248F939F93AF93BF9352 933:103A40000F931F932FB7F8944091D7015091D8014D
934:103A50008091D7019091D801A091D901B091DA015C 934:103A50006091D9017091DA012FBF6A017B01EE24D8
935:103A60000196A11DB11D8093D7019093D801A09319 935:103A6000FF248C0120E030E0C016D106E206F30608
936:103A7000D901B093DA01BF91AF919F918F910F90CF 936:103A700010F441505109481B590BCA011F910F9175
937:103A80000FBE0F901F9018950E94AF0DF8942FEF66 937:103A8000FF90EF90DF90CF9008951F920F920FB6A6
938:103A900087EA91E6215080409040E1F700C00000A5 938:103A90000F9211248F939F93AF93BF938091D7017F
939:103AA00087E090EBDC018093F6019093F701A093FF 939:103AA0009091D801A091D901B091DA010196A11DA0
940:103AB000F801B093F9012CE088E190E00FB6F8949A 940:103AB000B11D8093D7019093D801A093D901B09301
941:103AC000A895809360000FBE20936000FFCFEF9217 941:103AC000DA01BF91AF919F918F910F900FBE0F9030
942:103AD000FF920F931F93CF93DF93E82EF12C8F2D3E 942:103AD0001F9018950E94D50DF8942FEF87EA91E674
943:103AE0000E94CF06C0E0D0E0082F10E098010C2E15 943:103AE000215080409040E1F700C0000087E090EB5B
944:103AF00002C0359527950A94E2F720FD05C021966E 944:103AF000DC018093F6019093F701A093F801B09355
945:103B0000C630D10599F709C06C2F7F2D80E00E9447 945:103B0000F9012CE088E190E00FB6F894A895809335
946:103B1000D706E812F4CF81E005C0F3948EE0F812E6 946:103B100060000FBE20936000FFCFEF92FF920F93E3
947:103B2000DECF80E0DF91CF911F910F91FF90EF905A 947:103B20001F93CF93DF93E82EF12C8F2D0E94F50683
948:103B30000895CF93C82F8CE20E94671D882321F03F 948:103B3000C0E0D0E0082F10E098010C2E02C03595AF
949:103B40008C2FCF910C94671D80E0CF910895CF9377 949:103B400027950A94E2F720FD05C02196C630D105DD
950:103B50000E94EC1E811102C00E94D21EC5E6C15017 950:103B500099F709C06C2F7F2D80E00E94FD06E812C6
951:103B600049F00E94E2058FE39CE90197F1F700C05C 951:103B6000F4CF81E005C0F3948EE0F812DECF80E060
952:103B70000000F5CF89E20E94991D811111C18AE2EE 952:103B7000DF91CF911F910F91FF90EF900895CF9318
953:103B80000E94991D81110E94D21E85E00E94991DFC 953:103B8000C82F8CE20E948D1D882321F08C2FCF91AD
954:103B900081110E94441D0E94F71E8093D50187E089 954:103B90000C948D1D80E0CF910895CF930E94121F49
955:103BA0000E94991D882399F18BE10E94991D882319 955:103BA000811102C00E94F81EC5E6C15049F00E9472
956:103BB00051F09091D50191FB882780F921E082276F 956:103BB00008068FE39CE90197F1F700C00000F5CFFC
957:103BC00080FB91F922C08EE00E94991D882351F05C 957:103BC00089E20E94BF1D811111C18AE20E94BF1DBE
958:103BD0009091D50192FB882780F921E0822780FB14 958:103BD00081110E94F81E85E00E94BF1D81110E9484
959:103BE00092F913C080E10E94991D9091D50188231C 959:103BE0006A1D0E941D1F8093D50187E00E94BF1DA2
960:103BF00041F093FB882780F921E0822780FB93F92D 960:103BF000882399F18BE10E94BF1D882351F0909199
961:103C000004C0892F809580FB90F99093D501809115 961:103C0000D50191FB882780F921E0822780FB91F97B
962:103C1000D5010E94FB1E0E94091F8093F50180EED2 962:103C100022C08EE00E94BF1D882351F09091D501F3
963:103C20000E94991D882341F08091F501982F90956D 963:103C200092FB882780F921E0822780FB92F913C05C
964:103C300090FB80F98093F50189E30E94991D882308 964:103C300080E10E94BF1D9091D501882341F093FB44
965:103C400059F09091F50191FB882780F921E08227B6 965:103C4000882780F921E0822780FB93F904C0892F1F
966:103C500080FB91F99093F50182EE0E94991D8823D3 966:103C5000809580FB90F99093D5018091D5010E94C9
967:103C600059F09091F50192FB882780F921E0822795 967:103C6000211F0E942F1F8093F50180EE0E94BF1D2F
968:103C700080FB92F99093F50186EE0E94991D8823AE 968:103C7000882341F08091F501982F909590FB80F971
969:103C800059F09091F50193FB882780F921E0822774 969:103C80008093F50189E30E94BF1D882359F090912C
970:103C900080FB93F99093F50183EE0E94991D882390 970:103C9000F50191FB882780F921E0822780FB91F9CB
971:103CA00059F09091F50194FB882780F921E0822753 971:103CA0009093F50182EE0E94BF1D882359F09091F8
972:103CB00080FB94F99093F50185E30E94991D882378 972:103CB000F50192FB882780F921E0822780FB92F9A9
973:103CC00059F09091F50195FB882780F921E0822732 973:103CC0009093F50186EE0E94BF1D882359F09091D4
974:103CD00080FB95F99093F50181E30E94991D88235B 974:103CD000F50193FB882780F921E0822780FB93F987
975:103CE00059F09091F50196FB882780F921E0822711 975:103CE0009093F50183EE0E94BF1D882359F09091B7
976:103CF00080FB96F99093F50181E10E94991D88233C 976:103CF000F50194FB882780F921E0822780FB94F965
977:103D000059F09091F50197FB882780F921E08227EF 977:103D00009093F50185E30E94BF1D882359F090919F
978:103D100080FB97F99093F5018091F5010E940D1FAA 978:103D1000F50195FB882780F921E0822780FB95F942
979:103D20008091F50187FB882780F980930D0187E258 979:103D20009093F50181E30E94BF1D882359F0909183
980:103D30000E94991DC82F8EE10E94991D8111C260B9 980:103D3000F50196FB882780F921E0822780FB96F920
981:103D40008FE10E94991D8111C46080E20E94991D3B 981:103D40009093F50181E10E94BF1D882359F0909165
982:103D50008111C86081E20E94991D8111C06182E2D7 982:103D5000F50197FB882780F921E0822780FB97F9FE
983:103D60000E94991D8111C06283E20E94991D8111F8 983:103D60009093F5018091F5010E94331F8091F50138
984:103D7000C06484E20E94991D882311F0C06802C0CB 984:103D700087FB882780F980930D0187E20E94BF1D91
985:103D8000CC2329F08C2F0E94041F6C2F03C00E94AB 985:103D8000C82F8EE10E94BF1D8111C2608FE10E9489
986:103D9000001F682F70E080E090E0CF910C94261A0D 986:103D9000BF1D8111C46080E20E94BF1D8111C860F7
987:103DA000CF9108956DEE7EEF80E090E00E942A258D 987:103DA00081E20E94BF1D8111C06182E20E94BF1D9D
988:103DB00060E082E090E00E94182560E083E090E0FF 988:103DB0008111C06283E20E94BF1D8111C06484E250
989:103DC0000E94182560E084E090E00E94182560E0E1 989:103DC0000E94BF1D882311F0C06802C0CC2329F0D7
990:103DD00085E090E00C94182580E090E00E94122588 990:103DD0008C2F0E942A1F6C2F03C00E94261F682F61
991:103DE00021E08D3E9E4F09F020E0822F089582E071 991:103DE00070E080E090E0CF910C944C1ACF91089550
992:103DF00090E00C940A25682F82E090E00C9418253E 992:103DF0006DEE7EEF80E090E00E94502560E082E072
993:103E000083E090E00C940A25682F83E090E00C9406 993:103E000090E00E943E2560E083E090E00E943E2525
994:103E1000182584E090E00C940A25682F84E090E057 994:103E100060E084E090E00E943E2560E085E090E074
995:103E20000C9418258091DD0180FF0BC06091130177 995:103E20000C943E2580E090E00E94382521E08D3EF4
996:103E300085E0689FB0011124759567957595679524 996:103E30009E4F09F020E0822F089582E090E00C94DC
997:103E40002AC081FF09C06091130185E0689FB0011D 997:103E40003025682F82E090E00C943E2583E090E0DE
998:103E50001124759567951FC082FF07C060911301FB 998:103E50000C943025682F83E090E00C943E2584E09C
999:103E600085E0689FB001112416C04091DE01442313 999:103E600090E00C943025682F84E090E00C943E257F
1000:103E7000C9F060911201461788F72091130185E07F 1000:103E70008091DD0180FF0BC06091130185E0689F98
1001:103E8000289F90011124429FC001439F900D11244F 1001:103E8000B001112475956795759567952AC081FFD6
1002:103E900070E00E94DC246038710540F46115710502 1002:103E900009C06091130185E0689FB00111247595F8
1003:103EA00039F002C065E070E0862F08958FE708952D 1003:103EA00067951FC082FF07C06091130185E0689F7E
1004:103EB00081E008958091DD0180FF08C060911101CB 1004:103EB000B001112416C04091DE014423C9F0609185
1005:103EC00070E0759567957595679521C081FF06C06F 1005:103EC0001201461788F72091130185E0289F900181
1006:103ED0006091110170E07595679519C082FF04C06B 1006:103ED0001124429FC001439F900D112470E00E9465
1007:103EE0006091110170E010C08091DE018823C1F063 1007:103EE00002256038710540F46115710539F002C092
1008:103EF000609110018617A0F790911101989FC00161 1008:103EF00065E070E0862F08958FE7089581E00895CA
1009:103F0000112470E00E94DC246038710528F46115EA 1009:103F00008091DD0180FF08C06091110170E075951E
1010:103F1000710521F0862F08958FE7089581E00895B7 1010:103F100067957595679521C081FF06C06091110175
1011:103F200061E070E0F4CF803F21F40E94121F819580 1011:103F200070E07595679519C082FF04C0609111011A
1012:103F300004C0813F29F40E94121F8093E10108957B 1012:103F300070E010C08091DE018823C1F06091100113
1013:103F4000823F21F40E94121F819504C0833F29F40F 1013:103F40008617A0F790911101989FC001112470E08D
1014:103F50000E94121F8093E0010895893F19F40E9486 1014:103F50000E9402256038710528F46115710521F071
1015:103F60005A1F05C08A3F31F40E945A1F81958093E1 1015:103F6000862F08958FE7089581E0089561E070E05D
1016:103F7000E20108958B3F21F40E945A1F819504C0ED 1016:103F7000F4CF803F21F40E94381F819504C0813F17
1017:103F80008C3F29F40E945A1F8093E3010895843FD7 1017:103F800029F40E94381F8093E1010895823F21F4B3
1018:103F900021F48091DF01816017C0853F21F4809179 1018:103F90000E94381F819504C0833F29F40E94381F76
1019:103FA000DF01826011C0863F21F48091DF018460CF 1019:103FA0008093E0010895893F19F40E94801F05C0A5
1020:103FB0000BC0873F21F48091DF01886005C0883FF6 1020:103FB0008A3F31F40E94801F81958093E201089529
1021:103FC00031F48091DF0180618093DF0108958D3F9E 1021:103FC0008B3F21F40E94801F819504C08C3F29F40F
1022:103FD00021F48091DD0181600BC08E3F21F480913E 1022:103FD0000E94801F8093E3010895843F21F4809123
1023:103FE000DD01826005C08F3F29F48091DD0184608E 1023:103FE000DF01816017C0853F21F48091DF0182608D
1024:103FF0008093DD010895803F39F48091E10187FFCE 1024:103FF00011C0863F21F48091DF0184600BC0873FB0
1025:104000006CC01092E10169C0813F29F48091E10107 1025:1040000021F48091DF01886005C0883F31F4809100
1026:104010001816BCF362C09091E001823F29F497FF2B 1026:10401000DF0180618093DF0108958D3F21F480915D
1027:104020005CC01092E00159C0833F19F41916CCF31B 1027:10402000DD0181600BC08E3F21F48091DD01826053
1028:1040300054C0893F41F48091E20118160CF04DC044 1028:1040300005C08F3F29F48091DD0184608093DD010C
1029:104040001092E2014AC08A3F29F48091E20187FF81 1029:104040000895803F39F48091E10187FF6CC01092A0
1030:1040500044C0F6CF8B3F39F48091E30187FF3DC028 1030:10405000E10169C0813F29F48091E1011816BCF3A8
1031:104060001092E3013AC08C3F29F48091E3011816C5 1031:1040600062C09091E001823F29F497FF5CC01092FA
1032:10407000BCF333C0843F21F48091DF018E7F17C0F1 1032:10407000E00159C0833F19F41916CCF354C0893FAD
1033:10408000853F21F48091DF018D7F11C0863F21F4AF 1033:1040800041F48091E20118160CF04DC01092E2014B
1034:104090008091DF018B7F0BC0873F21F48091DF018E 1034:104090004AC08A3F29F48091E20187FF44C0F6CFED
1035:1040A000877F05C0883F31F48091DF018F7E809348 1035:1040A0008B3F39F48091E30187FF3DC01092E3011B
1036:1040B000DF0113C08D3F21F48091DD018E7F0BC0A5 1036:1040B0003AC08C3F29F48091E3011816BCF333C059
1037:1040C0008E3F21F48091DD018D7F05C08F3F29F463 1037:1040C000843F21F48091DF018E7F17C0853F21F46A
1038:1040D0008091DD018B7F8093DD018091E001811172 1038:1040D0008091DF018D7F11C0863F21F48091DF0147
1039:1040E0000EC08091E10181110AC08091E20181112D 1039:1040E0008B7F0BC0873F21F48091DF01877F05C064
1040:1040F00006C08091E301811102C01092DE01089593 1040:1040F000883F31F48091DF018F7E8093DF0113C010
1041:104100008FED91E00E94C0100E94EA1C9093DC01A8 1041:104100008D3F21F48091DD018E7F0BC08E3F21F425
1042:104110008093DB0108951F93CF93DF938091DB01A0 1042:104110008091DD018D7F05C08F3F29F48091DD0105
1043:104120009091DC010E94F61C4091DE01442321F0B5 1043:104120008B7F8093DD018091E00181110EC0809131
1044:104130002091140130E006C0209115015AE0259F1E 1044:10413000E10181110AC08091E201811106C08091E4
1045:10414000900111248217930708F482C08091E00146 1045:10414000E301811102C01092DE0108958FED91E02C
1046:104150001091E101D091E201C091E301811107C00A 1046:104150000E94E6100E94101D9093DC018093DB0109
1047:10416000111105C0D11103C0CC2309F471C04F3F18 1047:1041600008951F93CF93DF938091DB019091DC0141
1048:1041700019F04F5F4093DE01181624F40E94121FBD 1048:104170000E941C1D4091DE01442321F02091140176
1049:104180008093E0018091E00187FF05C00E94121F2B 1049:1041800030E006C0209115015AE0259F90011124CE
1050:1041900081958093E001111624F40E94121F8093F0 1050:104190008217930708F482C08091E0011091E10139
1051:1041A000E1018091E10187FF05C00E94121F819506 1051:1041A000D091E201C091E301811107C0111105C056
1052:1041B0008093E1016091E001662339F11091E10102 1052:1041B000D11103C0CC2309F471C04F3F19F04F5FF8
1053:1041C000112319F1772767FD7095872F972F0E948C 1053:1041C0004093DE01181624F40E94381F8093E0010A
1054:1041D000ED2323E333E343E35FE30E9451240E9492 1054:1041D0008091E00187FF05C00E94381F8195809380
1055:1041E000BA236093E001612F772767FD7095872FD1 1055:1041E000E001111624F40E94381F8093E1018091B0
1056:1041F000972F0E94ED2323E333E343E35FE30E9421 1056:1041F000E10187FF05C00E94381F81958093E1018E
1057:1042000051240E94BA236093E1011D1624F40E94F8 1057:104200006091E001662339F11091E101112319F168
1058:104210005A1F8093E2018091E20187FF05C00E944E 1058:10421000772767FD7095872F972F0E94132423E33C
1059:104220005A1F81958093E2011C1624F40E945A1FA4 1059:1042200033E343E35FE30E9477240E94E02360933B
1060:104230008093E3018091E30187FF05C00E945A1F2C 1060:10423000E001612F772767FD7095872F972F0E94E8
1061:1042400081958093E301DF91CF911F910C948020A1 1061:10424000132423E333E343E35FE30E9477240E94D4
1062:10425000DF91CF911F910895EFEDF1E085E0DF014F 1062:10425000E0236093E1011D1624F40E94801F8093E7
1063:104260001D928A95E9F71092DE011092DD01089502 1063:10426000E2018091E20187FF05C00E94801F8195D5
1064:10427000833081F128F4813059F08230D1F00895F3 1064:104270008093E2011C1624F40E94801F8093E301C6
1065:10428000853009F449C0B8F1863009F456C0089564 1065:104280008091E30187FF05C00E94801F8195809384
1066:1042900020911501862F90E0820F911D8F3F91058F 1066:10429000E301DF91CF911F910C94A620DF91CF9184
1067:1042A00020F4620F6093150108958FEF809315013C 1067:1042A0001F910895EFEDF1E085E0DF011D928A9501
1068:1042B000089520911401862F90E0820F911D8F3F69 1068:1042B000E9F71092DE011092DD010895833081F15B
1069:1042C000910520F4620F6093140108958FEF80939D 1069:1042C00028F4813059F08230D1F00895853009F416
1070:1042D0001401089520911301862F90E0820F911D03 1070:1042D00049C0B8F1863009F456C0089520911501FF
1071:1042E0008F3F910520F4620F6093130108958FEFC3 1071:1042E000862F90E0820F911D8F3F910520F4620F81
1072:1042F00080931301089520911201862F90E0820F80 1072:1042F0006093150108958FEF809315010895209123
1073:10430000911D8F3F910520F4620F60931201089573 1073:104300001401862F90E0820F911D8F3F910520F4BC
1074:104310008FEF80931201089520911101862F90E074 1074:10431000620F6093140108958FEF80931401089544
1075:10432000820F911D8F3F910520F4620F6093110160 1075:1043200020911301862F90E0820F911D8F3F910500
1076:1043300008958FEF80931101089520911001862F29 1076:1043300020F4620F6093130108958FEF80931301AF
1077:1043400090E0820F911D8F3F910520F4620F6093E2 1077:10434000089520911201862F90E0820F911D8F3FDA
1078:10435000100108958FEF809310010895833011F1BB 1078:10435000910520F4620F6093120108958FEF80930E
1079:1043600028F4813049F0823091F00895853081F150 1079:104360001201089520911101862F90E0820F911D76
1080:1043700020F18630C1F1089580911501681720F46D 1080:104370008F3F910520F4620F6093110108958FEF34
1081:10438000861B809315010895109215010895809160 1081:1043800080931101089520911001862F90E0820FF3
1082:104390001401681720F4861B80931401089510926D 1082:10439000911D8F3F910520F4620F609310010895E5
1083:1043A0001401089580911301681720F4861B8093EF 1083:1043A0008FEF809310010895833011F128F481304C
1084:1043B0001301089510921301089580911201681756 1084:1043B00049F0823091F00895853081F120F1863006
1085:1043C00020F4861B80931201089510921201089523 1085:1043C000C1F1089580911501681720F4861B809330
1086:1043D00080911101681720F4861B809311010895C4 1086:1043D0001501089510921501089580911401681730
1087:1043E00010921101089580911001681720F4861B26 1087:1043E00020F4861B809314010895109214010895FF
1088:1043F0008093100108951092100108958D3109F4F1 1088:1043F00080911301681720F4861B809313010895A0
1089:1044000042C020F58E3009F477C070F4873009F48B 1089:1044000010921301089580911201681720F4861B01
1090:1044100059C018F48630F1F134C0883009F4A8C0CE 1090:104410008093120108951092120108958091110164
1091:104420008B3009F4A5C02DC0863109F4A1C038F441 1091:10442000681720F4861B80931101089510921101E2
1092:10443000803109F472C0813109F479C022C0893118 1092:10443000089580911001681720F4861B8093100165
1093:1044400009F496C08B3109F44DC01BC0853309F4C3 1093:1044400008951092100108958D3109F442C020F5AD
1094:1044500087C048F4873209F483C008F473C08932F6 1094:104450008E3009F477C070F4873009F459C018F42D
1095:1044600009F47EC00EC0833438F48A3308F068C083 1095:104460008630F1F134C0883009F4A8C08B3009F4EB
1096:10447000883309F47DC005C0833409F471C08834E1 1096:10447000A5C02DC0863109F4A1C038F4803109F4FB
1097:1044800099F080E008950E9474230E94A9100E9470 1097:1044800072C0813109F479C022C0893109F496C023
1098:10449000AE096EC08091D501817F8E7F8093D5015A 1098:104490008B3109F44DC01BC0853309F487C048F443
1099:1044A00081E08093E50108950E942C162FEF83EDA3 1099:1044A000873209F483C008F473C0893209F47EC0EE
1100:1044B00090E3215080409040E1F700C000000E944E 1100:1044B0000EC0833438F48A3308F068C0883309F4B6
1101:1044C000441D56C09091D501892F8095817080FB45 1101:1044C0007DC005C0833409F471C0883499F080E060
1102:1044D00090F919F0966098601DC0997F977F90932E 1102:1044D00008950E949A230E94CF100E94D4096EC0B2
1103:1044E000D50146C09091D50191FB882780F921E044 1103:1044E0008091D501817F8E7F8093D50181E080937B
1104:1044F000822780FB91F909C09091D50192FB882712 1104:1044F000E50108950E9452162FEF83ED90E32150BD
1105:1045000080F921E0822780FB92F99093D5018823DE 1105:1045000080409040E1F700C000000E946A1D56C044
1106:1045100079F191609093D50108959091D50193FB25 1106:104510009091D501892F8095817080FB90F919F0D9
1107:10452000882780F921E0822780FB93F9EECF0E9453 1107:10452000966098601DC0997F977F9093D50146C093
1108:104530002C1680910D0191E0892780930D0118C000 1108:104530009091D50191FB882780F921E0822780FBAB
1109:1045400027EC01C023EE280F61E070E080E090E0EE 1109:1045400091F909C09091D50192FB882780F921E06B
1110:1045500004C0660F771F881F991F2A95D2F704C0E1 1110:10455000822780FB92F99093D501882379F19160AD
1111:1045600061E070E080E090E00E94261A0E942C1624 1111:104560009093D50108959091D50193FB882780F908
1112:1045700081E0089580E0089580E00895CF93C82FEA 1112:1045700021E0822780FB93F9EECF0E9452168091B2
1113:104580008091E501813079F018F08230D1F184C05A 1113:104580000D0191E0892780930D0118C027EC01C02F
1114:10459000A0910E01B0910F018C91813169F08232AE 1114:1045900023EE280F61E070E080E090E004C0660F39
1115:1045A00009F07CC009C0A0910E01B0910F018C915F 1115:1045A000771F881F991F2A95D2F704C061E070E039
1116:1045B000813111F0823249F48C2F0E94BA2281118C 1116:1045B00080E090E00E944C1A0E94521681E008951B
1117:1045C0001DC08C2F0E94FE211AC08C2F0E94BC227D 1117:1045C00080E0089580E00895CF93C82F8091E501A1
1118:1045D000811114C0C43179F048F4CB3079F0C03186 1118:1045D000813079F018F08230D1F184C0A0910E01C1
1119:1045E00009F060C082E08093E50108C0C93219F08B 1119:1045E000B0910F018C91813169F0823209F07CC069
1120:1045F000C83321F057C01092E50154C081E08170AA 1120:1045F00009C0A0910E01B0910F018C91813111F091
1121:1046000053C0C93289F118F5C43171F1A8F4C7302B 1121:10460000823249F48C2F0E94E02281111DC08C2F30
1122:1046100009F046C08AE08093150194E1909314015B 1122:104610000E9424221AC08C2F0E94E222811114C011
1123:1046200093E0909313018093120188E0809311012D 1123:10462000C43179F048F4CB3079F0C03109F060C082
1124:1046300088E28093100134C0CE51C63088F5EC2F4B 1124:1046300082E08093E50108C0C93219F0C83321F047
1125:10464000F0E0E65DFE4F80818093E40129C0CE3426 1125:1046400057C01092E50154C081E0817053C0C93257
1126:10465000E9F020F4CB3421F56AE013C0C13579F0DC 1126:1046500089F118F5C43171F1A8F4C73009F046C0EA
1127:10466000C235F1F461E00DC08091E401882319F0B6 1127:104660008AE08093150194E19093140193E0909374
1128:104670001092E40115C081E08093E50115C061E06E 1128:1046700013018093120188E08093110188E28093F6
1129:1046800006C08091E4010E9438210AC06AE080914E 1129:10468000100134C0CE51C63088F5EC2FF0E0E65D65
1130:10469000E4010E94AE2104C01092E50180E004C054 1130:10469000FE4F80818093E40129C0CE34E9F020F4FC
1131:1046A00081E002C080E0ABCFCF910895E1E8F0E077 1131:1046A000CB3421F56AE013C0C13579F0C235F1F49D
1132:1046B0008081886080838081816080838FB7F89457 1132:1046B00061E00DC08091E401882319F01092E401BB
1133:1046C00093E09093890090ED909388008FBF0895B8 1133:1046C00015C081E08093E50115C061E006C08091CE
1134:1046D000EFE6F0E08081826080830895EFE6F0E00D 1134:1046D000E4010E945E210AC06AE08091E4010E9428
1135:1046E00080818D7F80830895EFE6F0E0808192E005 1135:1046E000D42104C01092E50180E004C081E002C042
1136:1046F0008927808308951F920F920FB60F9211247D 1136:1046F00080E0ABCFCF910895E1E8F0E08081886061
1137:104700002F933F934F935F936F937F938F939F93D9 1137:1047000080838081816080838FB7F89493E0909359
1138:10471000AF93BF93EF93FF938091E6019091E701F0 1138:10471000890090ED909388008FBF0895EFE6F0E058
1139:1047200001969093E7018093E601811103C082E036 1139:104720008081826080830895EFE6F0E080818D7F54
1140:104730000E94AE09E091E701E695E695F0E0E25BC4 1140:1047300080830895EFE6F0E0808192E0892780830E
1141:10474000FA4FE4918091E6018E1303C080E00E944D 1141:1047400008951F920F920FB60F9211242F933F934B
1142:10475000AE09FF91EF91BF91AF919F918F917F91A2 1142:104750004F935F936F937F938F939F93AF93BF9389
1143:104760006F915F914F913F912F910F900FBE0F90DE 1143:10476000EF93FF938091E6019091E701019690937A
1144:104770001F90189504D06894B1118DC0089570D021 1144:10477000E7018093E601811103C082E00E94D40921
1145:1047800088F09F5790F0B92F9927B751A0F0D1F03A 1145:10478000E091E701E695E695F0E0E259FA4FE49111
1146:10479000660F771F881F991F1AF0BA95C9F712C0C4 1146:104790008091E6018E1303C080E00E94D409FF914E
1147:1047A000B13081F077D0B1E0089574C0672F782FD1 1147:1047A000EF91BF91AF919F918F917F916F915F91A9
1148:1047B0008827B85F39F0B93FCCF386957795679530 1148:1047B0004F913F912F910F900FBE0F901F90189522
1149:1047C000B395D9F73EF490958095709561957F4F9C 1149:1047C00004D06894B1118DC0089570D088F09F57BF
1150:1047D0008F4F9F4F0895E89409C097FB3EF4909542 1150:1047D00090F0B92F9927B751A0F0D1F0660F771F4D
1151:1047E0008095709561957F4F8F4F9F4F9923A9F0CA 1151:1047E000881F991F1AF0BA95C9F712C0B13081F02D
1152:1047F000F92F96E9BB279395F69587957795679559 1152:1047F00077D0B1E0089574C0672F782F8827B85F0D
1153:10480000B795F111F8CFFAF4BB0F11F460FF1BC09C 1153:1048000039F0B93FCCF3869577956795B395D9F78D
1154:104810006F5F7F4F8F4F9F4F16C0882311F096E92F 1154:104810003EF490958095709561957F4F8F4F9F4F97
1155:1048200011C0772321F09EE8872F762F05C06623DD 1155:104820000895E89409C097FB3EF4909580957095A3
1156:1048300071F096E8862F70E060E02AF09A95660F96 1156:1048300061957F4F8F4F9F4F9923A9F0F92F96E9EC
1157:10484000771F881FDAF7880F9695879597F908954F 1157:10484000BB279395F695879577956795B795F11161
1158:1048500057FD9058440F551F59F05F3F71F0479531 1158:10485000F8CFFAF4BB0F11F460FF1BC06F5F7F4FFE
1159:10486000880F97FB991F61F09F3F79F08795089516 1159:104860008F4F9F4F16C0882311F096E911C0772310
1160:10487000121613061406551FF2CF4695F1DF08C035 1160:1048700021F09EE8872F762F05C0662371F096E819
1161:10488000161617061806991FF1CF86957105610552 1161:10488000862F70E060E02AF09A95660F771F881FE8
1162:1048900008940895E894BB2766277727CB0197F9FA 1162:10489000DAF7880F9695879597F9089557FD905800
1163:1048A00008950BD078C069D028F06ED018F0952309 1163:1048A000440F551F59F05F3F71F04795880F97FBF4
1164:1048B00009F05AC05FC01124EECFCADFA0F3959F64 1164:1048B000991F61F09F3F79F08795089512161306AE
1165:1048C000D1F3950F50E0551F629FF001729FBB27F7 1165:1048C0001406551FF2CF4695F1DF08C016161706DD
1166:1048D000F00DB11D639FAA27F00DB11DAA1F649FA3 1166:1048D0001806991FF1CF8695710561050894089512
1167:1048E0006627B00DA11D661F829F2227B00DA11D56 1167:1048E000E894BB2766277727CB0197F908950BD06B
1168:1048F000621F739FB00DA11D621F839FA00D611DDC 1168:1048F00078C069D028F06ED018F0952309F05AC01E
1169:10490000221F749F3327A00D611D231F849F600DFC 1169:104900005FC01124EECFCADFA0F3959FD1F3950FBE
1170:10491000211D822F762F6A2F11249F5750408AF035 1170:1049100050E0551F629FF001729FBB27F00DB11D43
1171:10492000E1F088234AF0EE0FFF1FBB1F661F771FC1 1171:10492000639FAA27F00DB11DAA1F649F6627B00DD3
1172:10493000881F91505040A9F79E3F510570F014C058 1172:10493000A11D661F829F2227B00DA11D621F739FBC
1173:10494000AACF5F3FECF3983EDCF3869577956795A9 1173:10494000B00DA11D621F839FA00D611D221F749FCA
1174:10495000B795F795E7959F5FC1F7FE2B880F911DDF 1174:104950003327A00D611D231F849F600D211D822F11
1175:104960009695879597F9089597F99F6780E870E085 1175:10496000762F6A2F11249F5750408AF0E1F0882358
1176:1049700060E008959FEF80EC089500240A941616D5 1176:104970004AF0EE0FFF1FBB1F661F771F881F915065
1177:10498000170618060906089500240A94121613063D 1177:104980005040A9F79E3F510570F014C0AACF5F3F79
1178:10499000140605060895092E0394000C11F48823CB 1178:10499000ECF3983EDCF3869577956795B795F79598
1179:1049A00052F0BB0F40F4BF2B11F460FF04C06F5FE7 1179:1049A000E7959F5FC1F7FE2B880F911D9695879520
1180:1049B0007F4F8F4F9F4F089597FB072E16F400945B 1180:1049B00097F9089597F99F6780E870E060E008959F
1181:1049C00007D077FD09D00E94F62407FC05D03EF4FD 1181:1049C0009FEF80EC089500240A9416161706180627
1182:1049D000909581959F4F0895709561957F4F0895AB 1182:1049D0000906089500240A94121613061406050603
1183:1049E000EE0FFF1F0590F491E02D0994AA1BBB1B4D 1183:1049E0000895092E0394000C11F4882352F0BB0F94
1184:1049F00051E107C0AA1FBB1FA617B70710F0A61BDF 1184:1049F00040F4BF2B11F460FF04C06F5F7F4F8F4FF7
1185:104A0000B70B881F991F5A95A9F780959095BC01FF 1185:104A00009F4F089597FB072E16F4009407D077FD6B
1186:104A1000CD010895F999FECF92BD81BDF89A9927ED 1186:104A100009D00E941C2507FC05D03EF49095819595
1187:104A200080B50895A8E1B0E042E050E00C94322552 1187:104A20009F4F0895709561957F4F0895EE0FFF1F7A
1188:104A3000262FF999FECF92BD81BDF89A019700B457 1188:104A30000590F491E02D0994AA1BBB1B51E107C01E
1189:104A4000021639F01FBA20BD0FB6F894FA9AF99AF7 1189:104A4000AA1FBB1FA617B70710F0A61BB70B881F1E
1190:104A50000FBE08950196272F0E9419250C94182542 1190:104A5000991F5A95A9F780959095BC01CD010895AD
1191:104A6000DC01CB01FC01F999FECF06C0F2BDE1BD2E 1191:104A6000F999FECF92BD81BDF89A992780B5089536
1192:104A7000F89A319600B40D9241505040B8F708951D 1192:104A7000A8E1B0E042E050E00C945825262FF999C7
1193:044A8000F894FFCFD8 1193:104A8000FECF92BD81BDF89A019700B4021639F0AD
1194:104A84002002B0093D0A1A0AE609B3090101C2016C 1194:104A90001FBA20BD0FB6F894FA9AF99A0FBE08957E
1195:104A940028080A03140A3F4D36390F05C2048C0452 1195:104AA0000196272F0E943F250C943E25DC01CB0167
1196:104AA4005304E603FF03180431040102030405065A 1196:104AB000FC01F999FECF06C0F2BDE1BDF89A31962E
1197:044AB40007080900E6 1197:104AC00000B40D9241505040B8F70895F894FFCFCC
1198:104AD0002002D609630A400A0C0AD9090101C20161
1199:104AE00028080A03140A3F4D36392F05E204AC04A6
1200:104AF000730406041F04380451040102030405066C
1201:044B00000708090099
1198:00000001FF 1202:00000001FF
diff --git a/keyboard/ergodox_ez/keymaps/ordinary/readme.md b/keyboard/ergodox_ez/keymaps/ordinary/readme.md
index f264dd48f..6465cd79e 100644
--- a/keyboard/ergodox_ez/keymaps/ordinary/readme.md
+++ b/keyboard/ergodox_ez/keymaps/ordinary/readme.md
@@ -55,7 +55,7 @@ Finally, consider the turquoise text-nav keys. Here in the Symbols layer, these
55* The bright green keys are more F-keys 55* The bright green keys are more F-keys
56* The dark yellow keys signal Web and Audio applications 56* The dark yellow keys signal Web and Audio applications
57* The light yellow keys signal the operating system 57* The light yellow keys signal the operating system
58* The uncolored keys do nothing in case you bump them by accident 58* The dark gray keys do nothing in case you bump them by accident
59 59
60![Ordinary media layout](ordinary-media.png) 60![Ordinary media layout](ordinary-media.png)
61 61
@@ -67,16 +67,37 @@ Alas, the yellow keys have at best spotty success with common software. Good luc
67 67
68## Switching Between Layers ## 68## Switching Between Layers ##
69 69
70In addition to Symbols and Media the Ordinary Layout treats the Capitals as a logical layer. Each layer is accessed by a shift key on each edge of the keyboard and corresponds to one of the three LEDs on the keyboard: Capitals (red), Symbols (green), Media (blue). The color of a layer illuminates when the layer is active. 70In addition to Symbols and Media there is the Capitals layer which is exactly the same as pressing the shift key. Each layer is accessed by a shift key on each edge of the keyboard and corresponds to one of the three LEDs on the keyboard: Capitals (red), Symbols (green), Media (blue). The color of a layer illuminates when the layer is active.
71 71
72Shift buttons work in the expected way: press them and all of the keys switch to that layer; release them and the keys switch back to the base layer. Lock layers using the Shift key in conjunction with the Shift Lock key. For instance, the widely and rightly loathed Caps Lock is engaged by pressing the Shift Lock button then Capitals Shift. Or, hold down the Shift key and press the Shift Lock key; it works either way. All the Shift keys work this way. 72Shift buttons work in the expected way: press them and all of the keys switch to that layer; release them and the keys switch back to the base layer. If you press both of a pair of shift keys, the layer will lock on until you press both shift keys again. For instance, the widely and rightly loathed Caps Lock is engaged by pressing both Capitals Shift buttons. All the Shift keys work this way.
73 73
74Multiple layers can be turned on at once but only one controls the keyboard. The order of the LEDs indicates the priority order: Media, Symbols, Capitals. 74Multiple layers can be turned on at once. The Capitals layer will affect characters on other layers to capitalize. Other layers, however, don't 'mix': Symbols blankets the base layout; Media blankets Symbols.
75 75
76## Special Escape & Backspace Sequences ## 76## Special Sequences ##
77 77
78In the Ordinary Layout, the most unsatisfying key location is the Escape key which rightly belongs segregated on its own way up on the top left of the keyboard. The Ergodox does not have a physical button in such a location and the nearest one, in the top left corner, is home to the tilde (er, grave) which is commonly found there. The Escape key is important so it features prominently on the other top corner on the left side of the keyboard, and is always there in all layers. Nevertheless, alas, it isn't Ordinary to put the escape in that different corner! 78![Ordinary special layout](ordinary-special.png)
79 79
80That tilde key has a second function as the Shift Lock key and that makes possible a special feature. To make this layout as Ordinary as possible, the Escape key can *also* be accessed by pressing Shift Lock then the 1 button right next to it. This easy gesture is a way to partially maintain the ease of flicking your wrist to the left and tapping Escape. This gesture works in all layers. 80### Escape ###
81 81
82Finally, because the special Escape sequence is so natural and useful, on the top right corner of the Ergodox EZ you can do the same gesture with the 0 key to produce a Backspace. Users of this keyboard and this layout are well advised to learn to use their thumbs for deleting text, but sometimes you are doing other computery things and just want to flick your digits up to the right and press backspace a bunch times. These special sequences should feel unremarkably mundane but might prove to be remarkably useful. 82The One True Location for the Escape key is segregated way up on the top left of the keyboard. The Ergodox does not have a physical button in such a location and the nearest one is home to the tilde (er, grave) which is commonly found there. In the Ordinary layout the Escape key is found on all layers in the prominent location in the corner next to the 5, whnich is easy to remember, and yet it isn't natural for those of us with muscle memory flicking our wrists up and to the left looking for Escape.
83
84The Ordinary layout offers as a consolation prize a Special sequence for Escape: Special Shift + 1. This is natural so you can tap the top left button, then the button next to it and get Escape. This gesture works in all layers.
85
86### Backspace ###
87
88At the top right corner of the Ergodox EZ you can a gesture similar to the special Escape sequence, using the 0 key, to produce a Backspace. Users of this keyboard and this layout are well advised to learn to use their thumbs for deleting text, but sometimes you are doing other computery things and just want to flick your digits up to the right and press backspace a bunch times.
89
90### RShift ###
91
92The Ordinary Layout locks layers by pressing both of a pair of shift keys. This interferes with the QMK firmware magic sequence, which is LShift+RShift. To work around this, both of the Capitals Shift keys produce a *Left Shift* keystroke. If for some reason a person needs *Right Shift* they can find it by pressing a Special Shift key, then the Capitals Shift key on the right side of the keyboard.
93
94****
95
96The Ordinary Layout for the Ergodox EZ keyboard, v4
97
98Modifications from default by Nicholas Keene ergodoxez@nicholaskeene.com
99
100No rights reserved. This software is in the public domain. Credit me if you are friendly but if you're a jerk don't bother.
101
102Details: readme.md
103 https://github.com/nrrkeene/qmk_firmware/tree/master/keyboard/ergodox_ez/keymaps/ordinary
diff --git a/keyboard/ergodox_ez/keymaps/zweihander-osx/keymap.c b/keyboard/ergodox_ez/keymaps/zweihander-osx/keymap.c
index a9980593f..e9963886b 100644
--- a/keyboard/ergodox_ez/keymaps/zweihander-osx/keymap.c
+++ b/keyboard/ergodox_ez/keymaps/zweihander-osx/keymap.c
@@ -55,11 +55,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
55 * ,--------------------------------------------------. ,--------------------------------------------------. 55 * ,--------------------------------------------------. ,--------------------------------------------------.
56 * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 | 56 * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 |
57 * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| 57 * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
58 * | | ! | @ | { | } | | | | | | / | 7 | 8 | 9 | * | F12 | 58 * | | [ | ] | { | } | | | | | / | 7 | 8 | 9 | * | F12 |
59 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| 59 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
60 * | | # | $ | ( | ) | ` |------| |------| - | 4 | 5 | 6 | + | | 60 * | | < | > | ( | ) | |------| |------| - | 4 | 5 | 6 | + | |
61 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| 61 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
62 * | | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | = | | 62 * | | | | | | | | | | & | 1 | 2 | 3 | = | |
63 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' 63 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
64 * | | | | | | | 0 | . | ← | → | | 64 * | | | | | | | 0 | . | ← | → | |
65 * `----------------------------------' `----------------------------------' 65 * `----------------------------------' `----------------------------------'
@@ -75,9 +75,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
75[SYMB] = KEYMAP( 75[SYMB] = KEYMAP(
76 // left hand 76 // left hand
77 KC_TRNS,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS, 77 KC_TRNS,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS,
78 KC_TRNS,KC_EXLM,KC_AT, KC_LCBR,KC_RCBR,KC_PIPE,KC_TRNS, 78 KC_TRNS,KC_LBRC,KC_RBRC,KC_LCBR,KC_RCBR,KC_TRNS,KC_TRNS,
79 KC_TRNS,KC_HASH,KC_DLR, KC_LPRN,KC_RPRN,KC_GRV, 79 KC_TRNS,KC_LABK,KC_RABK,KC_LPRN,KC_RPRN,KC_TRNS,
80 KC_TRNS,KC_PERC,KC_CIRC,KC_LBRC,KC_RBRC,KC_TILD,KC_TRNS, 80 KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
81 KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, 81 KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
82 KC_TRNS,KC_TRNS, 82 KC_TRNS,KC_TRNS,
83 KC_TRNS, 83 KC_TRNS,
@@ -109,8 +109,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
109 * | | | | | | 109 * | | | | | |
110 * ,------|------|------| |------+------+------. 110 * ,------|------|------| |------+------+------.
111 * | | | | | | | | 111 * | | | | | | | |
112 * | | |------| |------| | | 112 * | | |------| |------| ⌘C | ⌘V |
113 * | | | | | | | | 113 * | | | | | ⌘X | | |
114 * `--------------------' `--------------------' 114 * `--------------------' `--------------------'
115 */ 115 */
116// MEDIA AND MOUSE 116// MEDIA AND MOUSE
@@ -129,9 +129,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
129 LGUI(KC_LBRC), KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_MPLY, 129 LGUI(KC_LBRC), KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_MPLY,
130 KC_TRNS, LSFT(KC_SPC), KC_SPC , KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS, 130 KC_TRNS, LSFT(KC_SPC), KC_SPC , KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS,
131 KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS, 131 KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS,
132 KC_TRNS, KC_TRNS, 132 KC_TRNS, KC_TRNS,
133 KC_TRNS, 133 KC_TRNS,
134 KC_TRNS, KC_TRNS, KC_TRNS 134 LGUI(KC_X), LGUI(KC_C), LGUI(KC_V)
135), 135),
136}; 136};
137 137
diff --git a/keyboard/planck/keymaps/experimental/README.md b/keyboard/planck/keymaps/experimental/README.md
new file mode 100644
index 000000000..de9680b49
--- /dev/null
+++ b/keyboard/planck/keymaps/experimental/README.md
@@ -0,0 +1,2 @@
1# The Default Planck Layout
2
diff --git a/keyboard/planck/keymaps/experimental/keymap.c b/keyboard/planck/keymaps/experimental/keymap.c
new file mode 100644
index 000000000..fc3ac4a97
--- /dev/null
+++ b/keyboard/planck/keymaps/experimental/keymap.c
@@ -0,0 +1,383 @@
1// This is the canonical layout file for the Quantum project. If you want to add another keyboard,
2// this is the style you want to emulate.
3
4#include "planck.h"
5#include "action_layer.h"
6#ifdef AUDIO_ENABLE
7 #include "audio.h"
8#endif
9#include "eeconfig.h"
10
11extern keymap_config_t keymap_config;
12
13// Each layer gets a name for readability, which is then used in the keymap matrix below.
14// The underscores don't mean anything - you can have a layer called STUFF or any other name.
15// Layer names don't all need to be of the same length, obviously, and you can also skip them
16// entirely and just use numbers.
17#define _QWERTY 0
18#define _COLEMAK 1
19#define _DVORAK 2
20#define _LOWER 3
21#define _RAISE 4
22#define _MUSIC 5
23#define _PLOVER 6
24#define _ADJUST 16
25
26// Macro name shortcuts
27#define QWERTY M(_QWERTY)
28#define COLEMAK M(_COLEMAK)
29#define DVORAK M(_DVORAK)
30#define LOWER M(_LOWER)
31#define RAISE M(_RAISE)
32#define M_BL 5
33#define AUD_OFF M(6)
34#define AUD_ON M(7)
35#define MUS_OFF M(8)
36#define MUS_ON M(9)
37#define VC_IN M(10)
38#define VC_DE M(11)
39#define PLOVER M(12)
40#define EXT_PLV M(13)
41
42// Fillers to make layering more clear
43#define _______ KC_TRNS
44#define XXXXXXX KC_NO
45
46const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
47
48/* Qwerty
49 * ,-----------------------------------------------------------------------------------.
50 * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp |
51 * |------+------+------+------+------+-------------+------+------+------+------+------|
52 * | Esc | A | S | D | F | G | H | J | K | L | ; | " |
53 * |------+------+------+------+------+------|------+------+------+------+------+------|
54 * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter |
55 * |------+------+------+------+------+------+------+------+------+------+------+------|
56 * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
57 * `-----------------------------------------------------------------------------------'
58 */
59[_QWERTY] = {
60 {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC},
61 {KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT},
62 {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT },
63 {M(M_BL), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT}
64},
65
66/* Colemak
67 * ,-----------------------------------------------------------------------------------.
68 * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Bksp |
69 * |------+------+------+------+------+-------------+------+------+------+------+------|
70 * | Esc | A | R | S | T | D | H | N | E | I | O | " |
71 * |------+------+------+------+------+------|------+------+------+------+------+------|
72 * | Shift| Z | X | C | V | B | K | M | , | . | / |Enter |
73 * |------+------+------+------+------+------+------+------+------+------+------+------|
74 * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
75 * `-----------------------------------------------------------------------------------'
76 */
77[_COLEMAK] = {
78 {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC},
79 {KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT},
80 {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT },
81 {M(M_BL), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT}
82},
83
84/* Dvorak
85 * ,-----------------------------------------------------------------------------------.
86 * | Tab | " | , | . | P | Y | F | G | C | R | L | Bksp |
87 * |------+------+------+------+------+-------------+------+------+------+------+------|
88 * | Esc | A | O | E | U | I | D | H | T | N | S | / |
89 * |------+------+------+------+------+------|------+------+------+------+------+------|
90 * | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter |
91 * |------+------+------+------+------+------+------+------+------+------+------+------|
92 * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
93 * `-----------------------------------------------------------------------------------'
94 */
95[_DVORAK] = {
96 {KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC},
97 {KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH},
98 {KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT },
99 {M(M_BL), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT}
100},
101
102/* Lower
103 * ,-----------------------------------------------------------------------------------.
104 * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp |
105 * |------+------+------+------+------+-------------+------+------+------+------+------|
106 * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | |
107 * |------+------+------+------+------+------|------+------+------+------+------+------|
108 * | | F7 | F8 | F9 | F10 | F11 | F12 | | | | |Enter |
109 * |------+------+------+------+------+------+------+------+------+------+------+------|
110 * | | | | | | | | Next | Vol- | Vol+ | Play |
111 * `-----------------------------------------------------------------------------------'
112 */
113[_LOWER] = {
114 {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC},
115 {KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE},
116 {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______},
117 {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY}
118},
119
120/* Raise
121 * ,-----------------------------------------------------------------------------------.
122 * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
123 * |------+------+------+------+------+-------------+------+------+------+------+------|
124 * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ |
125 * |------+------+------+------+------+------|------+------+------+------+------+------|
126 * | | F7 | F8 | F9 | F10 | F11 | F12 | | | | |Enter |
127 * |------+------+------+------+------+------+------+------+------+------+------+------|
128 * | | | | | | | | Next | Vol- | Vol+ | Play |
129 * `-----------------------------------------------------------------------------------'
130 */
131[_RAISE] = {
132 {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC},
133 {KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS},
134 {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______},
135 {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY}
136},
137
138/* Music (reserved for process_action_user)
139 *
140 */
141[_MUSIC] = {
142 {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX},
143 {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX},
144 {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX},
145 {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, LOWER, XXXXXXX, XXXXXXX, RAISE, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}
146},
147
148/* Plover layer (http://opensteno.org)
149 * ,-----------------------------------------------------------------------------------.
150 * | # | # | # | # | # | # | # | # | # | # | # | # |
151 * |------+------+------+------+------+-------------+------+------+------+------+------|
152 * | | S | T | P | H | * | * | F | P | L | T | D |
153 * |------+------+------+------+------+------|------+------+------+------+------+------|
154 * | | S | K | W | R | * | * | R | B | G | S | Z |
155 * |------+------+------+------+------+------+------+------+------+------+------+------|
156 * | Exit | | | A | O | | E | U | | | |
157 * `-----------------------------------------------------------------------------------'
158 */
159
160[_PLOVER] = {
161 {KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1 },
162 {XXXXXXX, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC},
163 {XXXXXXX, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT},
164 {EXT_PLV, XXXXXXX, XXXXXXX, KC_C, KC_V, XXXXXXX, XXXXXXX, KC_N, KC_M, XXXXXXX, XXXXXXX, XXXXXXX}
165},
166
167/* Adjust (Lower + Raise)
168 * ,-----------------------------------------------------------------------------------.
169 * | | Reset| | | | | | | | | | Del |
170 * |------+------+------+------+------+-------------+------+------+------+------+------|
171 * | | | |Aud on|Audoff|AGnorm|AGswap|Qwerty|Colemk|Dvorak|Plover| |
172 * |------+------+------+------+------+------|------+------+------+------+------+------|
173 * | |Voice-|Voice+|Mus on|Musoff| | | | | | | |
174 * |------+------+------+------+------+------+------+------+------+------+------+------|
175 * | | | | | | | | | | | |
176 * `-----------------------------------------------------------------------------------'
177 */
178[_ADJUST] = {
179 {_______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL},
180 {_______, _______, _______, AUD_ON, AUD_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, PLOVER, _______},
181 {_______, VC_DE, VC_IN, MUS_ON, MUS_OFF, _______, _______, _______, _______, _______, _______, _______},
182 {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}
183}
184
185
186};
187
188const uint16_t PROGMEM fn_actions[] = {
189
190};
191
192#ifdef AUDIO_ENABLE
193float tone_startup[][2] = {
194 {440.0*pow(2.0,(31)/12.0), 12},
195 {440.0*pow(2.0,(28)/12.0), 8},
196 {440.0*pow(2.0,(19)/12.0), 8},
197 {440.0*pow(2.0,(24)/12.0), 8},
198 {440.0*pow(2.0,(28)/12.0), 20}
199};
200
201float tone_qwerty[][2] = SONG(QWERTY_SOUND);
202float tone_dvorak[][2] = SONG(DVORAK_SOUND);
203float tone_colemak[][2] = SONG(COLEMAK_SOUND);
204float tone_plover[][2] = SONG(PLOVER_SOUND);
205float tone_plover_gb[][2] = SONG(PLOVER_GOODBYE_SOUND);
206
207float music_scale[][2] = SONG(MUSIC_SCALE_SOUND);
208float goodbye[][2] = SONG(GOODBYE_SOUND);
209#endif
210
211
212void persistant_default_layer_set(uint16_t default_layer) {
213 eeconfig_update_default_layer(default_layer);
214 default_layer_set(default_layer);
215}
216
217const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
218{
219 switch(id) {
220 case _QWERTY:
221 if (record->event.pressed) {
222 #ifdef AUDIO_ENABLE
223 PLAY_NOTE_ARRAY(tone_qwerty, false, 0);
224 #endif
225 persistant_default_layer_set(1UL<<_QWERTY);
226 }
227 break;
228 case _COLEMAK:
229 if (record->event.pressed) {
230 #ifdef AUDIO_ENABLE
231 PLAY_NOTE_ARRAY(tone_colemak, false, 0);
232 #endif
233 persistant_default_layer_set(1UL<<_COLEMAK);
234 }
235 break;
236 case _DVORAK:
237 if (record->event.pressed) {
238 #ifdef AUDIO_ENABLE
239 PLAY_NOTE_ARRAY(tone_dvorak, false, 0);
240 #endif
241 persistant_default_layer_set(1UL<<_DVORAK);
242 }
243 break;
244 case _LOWER:
245 if (record->event.pressed) {
246 layer_on(_LOWER);
247 breathing_speed_set(2);
248 breathing_pulse();
249 update_tri_layer(_LOWER, _RAISE, _ADJUST);
250 } else {
251 layer_off(_LOWER);
252 update_tri_layer(_LOWER, _RAISE, _ADJUST);
253 }
254 break;
255 case _RAISE:
256 if (record->event.pressed) {
257 layer_on(_RAISE);
258 breathing_speed_set(2);
259 breathing_pulse();
260 update_tri_layer(_LOWER, _RAISE, _ADJUST);
261 } else {
262 layer_off(_RAISE);
263 update_tri_layer(_LOWER, _RAISE, _ADJUST);
264 }
265 break;
266 case M_BL:
267 if (record->event.pressed) {
268 register_code(KC_RSFT);
269 #ifdef BACKLIGHT_ENABLE
270 backlight_step();
271 #endif
272 } else {
273 unregister_code(KC_RSFT);
274 }
275 break;
276 case 6:
277 if (record->event.pressed) {
278 #ifdef AUDIO_ENABLE
279 audio_off();
280 #endif
281 }
282 break;
283 case 7:
284 if (record->event.pressed) {
285 #ifdef AUDIO_ENABLE
286 audio_on();
287 PLAY_NOTE_ARRAY(tone_startup, false, 0);
288 #endif
289 }
290 break;
291 case 8:
292 if (record->event.pressed) {
293 #ifdef AUDIO_ENABLE
294 layer_off(_MUSIC);
295 stop_all_notes();
296 #endif
297 }
298 break;
299 case 9:
300 if (record->event.pressed) {
301 #ifdef AUDIO_ENABLE
302 PLAY_NOTE_ARRAY(music_scale, false, 0);
303 layer_on(_MUSIC);
304 #endif
305 }
306 break;
307 case 10:
308 if (record->event.pressed) {
309 #ifdef AUDIO_ENABLE
310 voice_iterate();
311 PLAY_NOTE_ARRAY(music_scale, false, 0);
312 #endif
313 }
314 break;
315 case 11:
316 if (record->event.pressed) {
317 #ifdef AUDIO_ENABLE
318 voice_deiterate();
319 PLAY_NOTE_ARRAY(music_scale, false, 0);
320 #endif
321 }
322 break;
323 case 12:
324 if (record->event.pressed) {
325 #ifdef AUDIO_ENABLE
326 stop_all_notes();
327 PLAY_NOTE_ARRAY(tone_plover, false, 0);
328 #endif
329 layer_off(_RAISE);
330 layer_off(_LOWER);
331 layer_off(_ADJUST);
332 layer_off(_MUSIC);
333 layer_on(_PLOVER);
334 if (!eeconfig_is_enabled()) {
335 eeconfig_init();
336 }
337 keymap_config.raw = eeconfig_read_keymap();
338 keymap_config.nkro = 1;
339 eeconfig_update_keymap(keymap_config.raw);
340 }
341 break;
342 case 13:
343 if (record->event.pressed) {
344 #ifdef AUDIO_ENABLE
345 PLAY_NOTE_ARRAY(tone_plover_gb, false, 0);
346 #endif
347 layer_off(_PLOVER);
348 }
349 break;
350
351 }
352 return MACRO_NONE;
353};
354
355void matrix_init_user(void) {
356 #ifdef AUDIO_ENABLE
357 _delay_ms(20); // stops the tick
358 PLAY_NOTE_ARRAY(tone_startup, false, 0);
359 #endif
360}
361
362#ifdef AUDIO_ENABLE
363void play_goodbye_tone()
364{
365 PLAY_NOTE_ARRAY(goodbye, false, 0);
366 _delay_ms(150);
367}
368
369uint8_t starting_note = 0x0C;
370int offset = 0;
371
372void process_action_user(keyrecord_t *record) {
373
374 if (IS_LAYER_ON(_MUSIC)) {
375 if (record->event.pressed) {
376 play_note(((double)220.0)*pow(2.0, -4.0)*pow(2.0,(starting_note + SCALE[record->event.key.col + offset])/12.0+(MATRIX_ROWS - record->event.key.row)), 0xF);
377 } else {
378 stop_note(((double)220.0)*pow(2.0, -4.0)*pow(2.0,(starting_note + SCALE[record->event.key.col + offset])/12.0+(MATRIX_ROWS - record->event.key.row)));
379 }
380 }
381
382}
383#endif
diff --git a/keyboard/planck/keymaps/experimental/makefile.mk b/keyboard/planck/keymaps/experimental/makefile.mk
new file mode 100644
index 000000000..99fbfbd0b
--- /dev/null
+++ b/keyboard/planck/keymaps/experimental/makefile.mk
@@ -0,0 +1,2 @@
1AUDIO_ENABLE = yes
2NKRO_ENABLE = yes \ No newline at end of file
diff --git a/keyboard/planck/keymaps/pvc/keymap.c b/keyboard/planck/keymaps/pvc/keymap.c
index 830b00a4c..177f04484 100644
--- a/keyboard/planck/keymaps/pvc/keymap.c
+++ b/keyboard/planck/keymaps/pvc/keymap.c
@@ -38,6 +38,7 @@
38#define MACRO_AUDIO_OFF 17 38#define MACRO_AUDIO_OFF 17
39#define MACRO_INC_VOICE 18 39#define MACRO_INC_VOICE 18
40#define MACRO_DEC_VOICE 19 40#define MACRO_DEC_VOICE 19
41#define MACRO_BACKLIGHT 20
41 42
42#define M_QWRTY M(MACRO_QWERTY) 43#define M_QWRTY M(MACRO_QWERTY)
43#define M_COLMK M(MACRO_COLEMAK) 44#define M_COLMK M(MACRO_COLEMAK)
@@ -53,6 +54,7 @@
53#define TMPO_UP M(MACRO_TEMPO_U) 54#define TMPO_UP M(MACRO_TEMPO_U)
54#define TMPO_DN M(MACRO_TEMPO_D) 55#define TMPO_DN M(MACRO_TEMPO_D)
55#define TMPO_DF M(MACRO_TONE_DEFAULT) 56#define TMPO_DF M(MACRO_TONE_DEFAULT)
57#define M_BACKL M(MACRO_BACKLIGHT)
56 58
57 59
58#define MUS_ON M(MACRO_MUSIC_ON) 60#define MUS_ON M(MACRO_MUSIC_ON)
@@ -217,7 +219,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
217 [LAYER_ADJUST] = { /* ADJUST */ 219 [LAYER_ADJUST] = { /* ADJUST */
218 { _______, TIMBR_1, TIMBR_2, TIMBR_3, TIMBR_4, TMPO_UP, TMPO_DN, TMPO_DF, MUS_ON, MUS_OFF, AUD_ON, AUD_OFF }, 220 { _______, TIMBR_1, TIMBR_2, TIMBR_3, TIMBR_4, TMPO_UP, TMPO_DN, TMPO_DF, MUS_ON, MUS_OFF, AUD_ON, AUD_OFF },
219 { _______, M_QWRTY, M_COLMK, M_DVORK, _______, _______, _______, _______, _______, _______, _______, _______ }, 221 { _______, M_QWRTY, M_COLMK, M_DVORK, _______, _______, _______, _______, _______, _______, _______, _______ },
220 { _______, _______, _______, _______, _______, RESET, _______, M_MOUSE, _______, _______, _______, _______ }, 222 { _______, _______, _______, _______, M_BACKL, RESET, _______, M_MOUSE, _______, _______, _______, _______ },
221 { _______, _______, _______, _______, _______, _______, _______, _______, VC_UP, VC_DOWN, _______, _______ }, 223 { _______, _______, _______, _______, _______, _______, _______, _______, VC_UP, VC_DOWN, _______, _______ },
222 }, 224 },
223 225
@@ -337,6 +339,15 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
337 } 339 }
338 break; 340 break;
339 341
342
343#ifdef BACKLIGHT_ENABLE
344 case MACRO_BACKLIGHT:
345 if (record->event.pressed)
346 {
347 backlight_step();
348 }
349#endif
350
340#ifdef MOUSEKEY_ENABLE 351#ifdef MOUSEKEY_ENABLE
341 352
342 case MACRO_MOUSE: 353 case MACRO_MOUSE:
diff --git a/keyboard/planck/keymaps/pvc/makefile.mk b/keyboard/planck/keymaps/pvc/makefile.mk
index b3f1b9e51..f7798b09d 100644
--- a/keyboard/planck/keymaps/pvc/makefile.mk
+++ b/keyboard/planck/keymaps/pvc/makefile.mk
@@ -1,12 +1,12 @@
1BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000) 1BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
2MOUSEKEY_ENABLE = yes # Mouse keys(+4700) 2MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
3EXTRAKEY_ENABLE = yes # Audio control and System control(+450) 3EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
4CONSOLE_ENABLE = yes # Console for debug(+400) 4CONSOLE_ENABLE = no # Console for debug(+400)
5COMMAND_ENABLE = yes # Commands for debug and configuration 5COMMAND_ENABLE = yes # Commands for debug and configuration
6NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work 6NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
7BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality 7BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
8MIDI_ENABLE = no # MIDI controls 8MIDI_ENABLE = no # MIDI controls
9AUDIO_ENABLE = no # Audio output on port C6 9AUDIO_ENABLE = yes # Audio output on port C6
10UNICODE_ENABLE = no # Unicode 10UNICODE_ENABLE = no # Unicode
11BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 11BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
12RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. 12RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
diff --git a/keyboard/planck/planck.c b/keyboard/planck/planck.c
index 655850150..446353dbf 100644
--- a/keyboard/planck/planck.c
+++ b/keyboard/planck/planck.c
@@ -9,6 +9,9 @@ void matrix_scan_user(void) {}
9__attribute__ ((weak)) 9__attribute__ ((weak))
10void process_action_user(keyrecord_t *record) {} 10void process_action_user(keyrecord_t *record) {}
11 11
12__attribute__ ((weak))
13void led_set_user(uint8_t usb_led) {}
14
12void matrix_init_kb(void) { 15void matrix_init_kb(void) {
13#ifdef BACKLIGHT_ENABLE 16#ifdef BACKLIGHT_ENABLE
14 backlight_init_ports(); 17 backlight_init_ports();
@@ -33,8 +36,22 @@ void process_action_kb(keyrecord_t *record) {
33 process_action_user(record); 36 process_action_user(record);
34} 37}
35 38
39void led_set_kb(uint8_t usb_led) {
40 // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here
41
42 led_set_user(usb_led);
43}
44
36#ifdef BACKLIGHT_ENABLE 45#ifdef BACKLIGHT_ENABLE
37#define CHANNEL OCR1C 46#define CHANNEL OCR1C
47#define BREATHING_NO_HALT 0
48#define BREATHING_HALT_OFF 1
49#define BREATHING_HALT_ON 2
50
51static uint8_t breath_intensity;
52static uint8_t breath_speed;
53static uint16_t breathing_index;
54static uint8_t breathing_halt;
38 55
39void backlight_init_ports() 56void backlight_init_ports()
40{ 57{
@@ -60,22 +77,22 @@ void backlight_init_ports()
60 TCCR1B = _BV(WGM13) | _BV(WGM12) | _BV(CS10); // = 0b00011001; 77 TCCR1B = _BV(WGM13) | _BV(WGM12) | _BV(CS10); // = 0b00011001;
61 78
62 backlight_init(); 79 backlight_init();
80 breathing_defaults();
63} 81}
64 82
65void backlight_set(uint8_t level) 83void backlight_set(uint8_t level)
66{ 84{
85 // Prevent backlight blink on lowest level
86 PORTB &= ~(_BV(PORTB7));
87
67 if ( level == 0 ) 88 if ( level == 0 )
68 { 89 {
69 // Turn off PWM control on PB7, revert to output low. 90 // Turn off PWM control on PB7, revert to output low.
70 TCCR1A &= ~(_BV(COM1C1)); 91 TCCR1A &= ~(_BV(COM1C1));
71 CHANNEL = 0x0; 92 CHANNEL = 0x0;
72 // Prevent backlight blink on lowest level
73 PORTB &= ~(_BV(PORTB7));
74 } 93 }
75 else if ( level == BACKLIGHT_LEVELS ) 94 else if ( level == BACKLIGHT_LEVELS )
76 { 95 {
77 // Prevent backlight blink on lowest level
78 PORTB &= ~(_BV(PORTB7));
79 // Turn on PWM control of PB7 96 // Turn on PWM control of PB7
80 TCCR1A |= _BV(COM1C1); 97 TCCR1A |= _BV(COM1C1);
81 // Set the brightness 98 // Set the brightness
@@ -83,13 +100,205 @@ void backlight_set(uint8_t level)
83 } 100 }
84 else 101 else
85 { 102 {
86 // Prevent backlight blink on lowest level
87 PORTB &= ~(_BV(PORTB7));
88 // Turn on PWM control of PB7 103 // Turn on PWM control of PB7
89 TCCR1A |= _BV(COM1C1); 104 TCCR1A |= _BV(COM1C1);
90 // Set the brightness 105 // Set the brightness
91 CHANNEL = 0xFFFF >> ((BACKLIGHT_LEVELS - level) * ((BACKLIGHT_LEVELS + 1) / 2)); 106 CHANNEL = 0xFFFF >> ((BACKLIGHT_LEVELS - level) * ((BACKLIGHT_LEVELS + 1) / 2));
92 } 107 }
108 breathing_intensity_default();
109}
110
111
112void breathing_enable(void)
113{
114 if (get_backlight_level() == 0)
115 {
116 breathing_index = 0;
117 }
118 else
119 {
120 // Set breathing_index to be at the midpoint (brightest point)
121 breathing_index = 0x20 << breath_speed;
122 }
123
124 breathing_halt = BREATHING_NO_HALT;
125
126 // Enable breathing interrupt
127 TIMSK1 |= _BV(OCIE1A);
128}
129
130void breathing_pulse(void)
131{
132 if (get_backlight_level() == 0)
133 {
134 breathing_index = 0;
135 }
136 else
137 {
138 // Set breathing_index to be at the midpoint + 1 (brightest point)
139 breathing_index = 0x21 << breath_speed;
140 }
141
142 breathing_halt = BREATHING_HALT_ON;
143
144 // Enable breathing interrupt
145 TIMSK1 |= _BV(OCIE1A);
93} 146}
94 147
148void breathing_disable(void)
149{
150 // Disable breathing interrupt
151 TIMSK1 &= ~_BV(OCIE1A);
152 backlight_set(get_backlight_level());
153}
154
155void breathing_self_disable(void)
156{
157 if (get_backlight_level() == 0)
158 {
159 breathing_halt = BREATHING_HALT_OFF;
160 }
161 else
162 {
163 breathing_halt = BREATHING_HALT_ON;
164 }
165
166 //backlight_set(get_backlight_level());
167}
168
169void breathing_toggle(void)
170{
171 if (!is_breathing())
172 {
173 if (get_backlight_level() == 0)
174 {
175 breathing_index = 0;
176 }
177 else
178 {
179 // Set breathing_index to be at the midpoint + 1 (brightest point)
180 breathing_index = 0x21 << breath_speed;
181 }
182
183 breathing_halt = BREATHING_NO_HALT;
184 }
185
186 // Toggle breathing interrupt
187 TIMSK1 ^= _BV(OCIE1A);
188
189 // Restore backlight level
190 if (!is_breathing())
191 {
192 backlight_set(get_backlight_level());
193 }
194}
195
196bool is_breathing(void)
197{
198 return (TIMSK1 && _BV(OCIE1A));
199}
200
201void breathing_intensity_default(void)
202{
203 //breath_intensity = (uint8_t)((uint16_t)100 * (uint16_t)get_backlight_level() / (uint16_t)BACKLIGHT_LEVELS);
204 breath_intensity = ((BACKLIGHT_LEVELS - get_backlight_level()) * ((BACKLIGHT_LEVELS + 1) / 2));
205}
206
207void breathing_intensity_set(uint8_t value)
208{
209 breath_intensity = value;
210}
211
212void breathing_speed_default(void)
213{
214 breath_speed = 4;
215}
216
217void breathing_speed_set(uint8_t value)
218{
219 bool is_breathing_now = is_breathing();
220 uint8_t old_breath_speed = breath_speed;
221
222 if (is_breathing_now)
223 {
224 // Disable breathing interrupt
225 TIMSK1 &= ~_BV(OCIE1A);
226 }
227
228 breath_speed = value;
229
230 if (is_breathing_now)
231 {
232 // Adjust index to account for new speed
233 breathing_index = (( (uint8_t)( (breathing_index) >> old_breath_speed ) ) & 0x3F) << breath_speed;
234
235 // Enable breathing interrupt
236 TIMSK1 |= _BV(OCIE1A);
237 }
238
239}
240
241void breathing_speed_inc(uint8_t value)
242{
243 if ((uint16_t)(breath_speed - value) > 10 )
244 {
245 breathing_speed_set(0);
246 }
247 else
248 {
249 breathing_speed_set(breath_speed - value);
250 }
251}
252
253void breathing_speed_dec(uint8_t value)
254{
255 if ((uint16_t)(breath_speed + value) > 10 )
256 {
257 breathing_speed_set(10);
258 }
259 else
260 {
261 breathing_speed_set(breath_speed + value);
262 }
263}
264
265void breathing_defaults(void)
266{
267 breathing_intensity_default();
268 breathing_speed_default();
269 breathing_halt = BREATHING_NO_HALT;
270}
271
272/* Breathing Sleep LED brighness(PWM On period) table
273 * (64[steps] * 4[duration]) / 64[PWM periods/s] = 4 second breath cycle
274 *
275 * http://www.wolframalpha.com/input/?i=%28sin%28+x%2F64*pi%29**8+*+255%2C+x%3D0+to+63
276 * (0..63).each {|x| p ((sin(x/64.0*PI)**8)*255).to_i }
277 */
278static const uint8_t breathing_table[64] PROGMEM = {
279 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 4, 6, 10,
280 15, 23, 32, 44, 58, 74, 93, 113, 135, 157, 179, 199, 218, 233, 245, 252,
281255, 252, 245, 233, 218, 199, 179, 157, 135, 113, 93, 74, 58, 44, 32, 23,
282 15, 10, 6, 4, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
283};
284
285ISR(TIMER1_COMPA_vect)
286{
287 // CHANNEL = (pgm_read_byte(&breathing_table[ ( (uint8_t)( (breathing_index++) >> breath_speed ) ) & 0x3F ] )) * breath_intensity;
288
289
290 uint8_t local_index = ( (uint8_t)( (breathing_index++) >> breath_speed ) ) & 0x3F;
291
292 if (((breathing_halt == BREATHING_HALT_ON) && (local_index == 0x20)) || ((breathing_halt == BREATHING_HALT_OFF) && (local_index == 0x3F)))
293 {
294 // Disable breathing interrupt
295 TIMSK1 &= ~_BV(OCIE1A);
296 }
297
298 CHANNEL = (uint16_t)(((uint16_t)pgm_read_byte(&breathing_table[local_index]) * 257)) >> breath_intensity;
299
300}
301
302
303
95#endif \ No newline at end of file 304#endif \ No newline at end of file
diff --git a/keyboard/planck/planck.h b/keyboard/planck/planck.h
index c5b59d999..cfd4956bf 100644
--- a/keyboard/planck/planck.h
+++ b/keyboard/planck/planck.h
@@ -45,4 +45,22 @@ void matrix_init_user(void);
45void matrix_scan_user(void); 45void matrix_scan_user(void);
46void process_action_user(keyrecord_t *record); 46void process_action_user(keyrecord_t *record);
47 47
48void led_set_user(uint8_t usb_led);
49void backlight_init_ports(void);
50
51void breathing_enable(void);
52void breathing_pulse(void);
53void breathing_disable(void);
54void breathing_self_disable(void);
55void breathing_toggle(void);
56bool is_breathing(void);
57
58
59void breathing_defaults(void);
60void breathing_intensity_default(void);
61void breathing_speed_default(void);
62void breathing_speed_set(uint8_t value);
63void breathing_speed_inc(uint8_t value);
64void breathing_speed_dec(uint8_t value);
65
48#endif 66#endif
diff --git a/quantum/audio/audio.c b/quantum/audio/audio.c
index 3a7f0f556..27b64f8c9 100644
--- a/quantum/audio/audio.c
+++ b/quantum/audio/audio.c
@@ -374,6 +374,10 @@ bool is_playing_notes(void) {
374 return playing_notes; 374 return playing_notes;
375} 375}
376 376
377bool is_audio_on(void) {
378 return (audio_config.enable != 0);
379}
380
377void audio_toggle(void) { 381void audio_toggle(void) {
378 audio_config.enable ^= 1; 382 audio_config.enable ^= 1;
379 eeconfig_update_audio(audio_config.raw); 383 eeconfig_update_audio(audio_config.raw);
diff --git a/quantum/audio/audio.h b/quantum/audio/audio.h
index 3d706587a..4ba879bbb 100644
--- a/quantum/audio/audio.h
+++ b/quantum/audio/audio.h
@@ -25,6 +25,7 @@ typedef union {
25 }; 25 };
26} audio_config_t; 26} audio_config_t;
27 27
28bool is_audio_on(void);
28void audio_toggle(void); 29void audio_toggle(void);
29void audio_on(void); 30void audio_on(void);
30void audio_off(void); 31void audio_off(void);
@@ -71,11 +72,11 @@ void stop_note(float freq);
71void stop_all_notes(void); 72void stop_all_notes(void);
72void play_notes(float (*np)[][2], uint16_t n_count, bool n_repeat, float n_rest); 73void play_notes(float (*np)[][2], uint16_t n_count, bool n_repeat, float n_rest);
73 74
74#define SCALE (int []){ 0 + (12*0), 2 + (12*0), 4 + (12*0), 5 + (12*0), 7 + (12*0), 9 + (12*0), 11 + (12*0), \ 75#define SCALE (int8_t []){ 0 + (12*0), 2 + (12*0), 4 + (12*0), 5 + (12*0), 7 + (12*0), 9 + (12*0), 11 + (12*0), \
75 0 + (12*1), 2 + (12*1), 4 + (12*1), 5 + (12*1), 7 + (12*1), 9 + (12*1), 11 + (12*1), \ 76 0 + (12*1), 2 + (12*1), 4 + (12*1), 5 + (12*1), 7 + (12*1), 9 + (12*1), 11 + (12*1), \
76 0 + (12*2), 2 + (12*2), 4 + (12*2), 5 + (12*2), 7 + (12*2), 9 + (12*2), 11 + (12*2), \ 77 0 + (12*2), 2 + (12*2), 4 + (12*2), 5 + (12*2), 7 + (12*2), 9 + (12*2), 11 + (12*2), \
77 0 + (12*3), 2 + (12*3), 4 + (12*3), 5 + (12*3), 7 + (12*3), 9 + (12*3), 11 + (12*3), \ 78 0 + (12*3), 2 + (12*3), 4 + (12*3), 5 + (12*3), 7 + (12*3), 9 + (12*3), 11 + (12*3), \
78 0 + (12*4), 2 + (12*4), 4 + (12*4), 5 + (12*4), 7 + (12*4), 9 + (12*4), 11 + (12*4), } 79 0 + (12*4), 2 + (12*4), 4 + (12*4), 5 + (12*4), 7 + (12*4), 9 + (12*4), 11 + (12*4), }
79 80
80// These macros are used to allow play_notes to play an array of indeterminate 81// These macros are used to allow play_notes to play an array of indeterminate
81// length. This works around the limitation of C's sizeof operation on pointers. 82// length. This works around the limitation of C's sizeof operation on pointers.
diff --git a/quantum/keymap_common.c b/quantum/keymap_common.c
index 5e78d1157..8f00f9cc3 100644
--- a/quantum/keymap_common.c
+++ b/quantum/keymap_common.c
@@ -272,6 +272,14 @@ static action_t keycode_to_action(uint16_t keycode)
272 // Set default layer 272 // Set default layer
273 int layer = keycode & 0xFF; 273 int layer = keycode & 0xFF;
274 action.code = ACTION_LAYER_TOGGLE(layer); 274 action.code = ACTION_LAYER_TOGGLE(layer);
275 } else if (type == 0x5) {
276 // OSL(layer) - One-shot layer
277 int layer = keycode & 0xFF;
278 action.code = ACTION_LAYER_ONESHOT(layer);
279 } else if (type == 0x6) {
280 // OSM(mod) - One-shot mod
281 int mod = keycode & 0xFF;
282 action.code = ACTION_MODS_ONESHOT(mod);
275 } 283 }
276 break; 284 break;
277 #ifdef MIDI_ENABLE 285 #ifdef MIDI_ENABLE
diff --git a/quantum/keymap_common.h b/quantum/keymap_common.h
index 0ede0296b..322fda498 100644
--- a/quantum/keymap_common.h
+++ b/quantum/keymap_common.h
@@ -67,6 +67,9 @@ extern const uint16_t fn_actions[];
67#define MEH(kc) kc | 0x0700 67#define MEH(kc) kc | 0x0700
68#define LCAG(kc) kc | 0x0D00 // Modifier Ctrl Alt and GUI 68#define LCAG(kc) kc | 0x0D00 // Modifier Ctrl Alt and GUI
69 69
70#define MOD_HYPR 0xf
71#define MOD_MEH 0x7
72
70#define RCTL(kc) kc | 0x1100 73#define RCTL(kc) kc | 0x1100
71#define RSFT(kc) kc | 0x1200 74#define RSFT(kc) kc | 0x1200
72#define RALT(kc) kc | 0x1400 75#define RALT(kc) kc | 0x1400
@@ -84,8 +87,11 @@ extern const uint16_t fn_actions[];
84#define KC_EXCLAIM KC_EXLM 87#define KC_EXCLAIM KC_EXLM
85 88
86#define KC_AT LSFT(KC_2) // @ 89#define KC_AT LSFT(KC_2) // @
90
91
87#define KC_HASH LSFT(KC_3) // # 92#define KC_HASH LSFT(KC_3) // #
88 93
94
89#define KC_DLR LSFT(KC_4) // $ 95#define KC_DLR LSFT(KC_4) // $
90#define KC_DOLLAR KC_DLR 96#define KC_DOLLAR KC_DLR
91 97
@@ -107,22 +113,43 @@ extern const uint16_t fn_actions[];
107#define KC_RPRN LSFT(KC_0) // ) 113#define KC_RPRN LSFT(KC_0) // )
108#define KC_RIGHT_PAREN KC_RPRN 114#define KC_RIGHT_PAREN KC_RPRN
109 115
116
110#define KC_UNDS LSFT(KC_MINS) // _ 117#define KC_UNDS LSFT(KC_MINS) // _
111#define KC_UNDERSCORE KC_UNDS 118#define KC_UNDERSCORE KC_UNDS
112 119
113#define KC_PLUS LSFT(KC_EQL) // + 120#define KC_PLUS LSFT(KC_EQL) // +
114 121
122
115#define KC_LCBR LSFT(KC_LBRC) // { 123#define KC_LCBR LSFT(KC_LBRC) // {
116#define KC_LEFT_CURLY_BRACE KC_LCBR 124#define KC_LEFT_CURLY_BRACE KC_LCBR
117 125
118#define KC_RCBR LSFT(KC_RBRC) // } 126#define KC_RCBR LSFT(KC_RBRC) // }
119#define KC_RIGHT_CURLY_BRACE KC_RCBR 127#define KC_RIGHT_CURLY_BRACE KC_RCBR
120 128
129#define KC_LABK LSFT(KC_COMM) // <
130#define KC_LEFT_ANGLE_BRACKET KC_LABK
131
132#define KC_RABK LSFT(KC_DOT) // >
133#define KC_RIGHT_ANGLE_BRACKET KC_RABK
134
121#define KC_COLN LSFT(KC_SCLN) // : 135#define KC_COLN LSFT(KC_SCLN) // :
122#define KC_COLON KC_COLN 136#define KC_COLON KC_COLN
123 137
124#define KC_PIPE LSFT(KC_BSLS) // | 138#define KC_PIPE LSFT(KC_BSLS) // |
125 139
140#define KC_LT LSFT(KC_COMM) // <
141
142
143#define KC_GT LSFT(KC_DOT) // >
144
145
146#define KC_QUES LSFT(KC_SLSH) // ?
147#define KC_QUESTION KC_QUES
148
149
150#define KC_DQT LSFT(KC_QUOT) // "
151#define KC_DOUBLE_QUOTE KC_DQT
152
126#define KC_DELT KC_DELETE // Del key (four letter code) 153#define KC_DELT KC_DELETE // Del key (four letter code)
127 154
128// Alias for function layers than expand past FN31 155// Alias for function layers than expand past FN31
@@ -205,6 +232,12 @@ extern const uint16_t fn_actions[];
205// Toggle to layer - 256 layer max 232// Toggle to layer - 256 layer max
206#define TG(layer) (layer | 0x5400) 233#define TG(layer) (layer | 0x5400)
207 234
235// One-shot layer - 256 layer max
236#define OSL(layer) (layer | 0x5500)
237
238// One-shot mod
239#define OSM(layer) (layer | 0x5600)
240
208// M-od, T-ap - 256 keycode max 241// M-od, T-ap - 256 keycode max
209#define MT(mod, kc) (kc | 0x7000 | ((mod & 0xF) << 8)) 242#define MT(mod, kc) (kc | 0x7000 | ((mod & 0xF) << 8))
210#define CTL_T(kc) MT(0x1, kc) 243#define CTL_T(kc) MT(0x1, kc)
diff --git a/quantum/keymap_midi.h b/quantum/keymap_midi.h
index 795f26380..3a2bf3aff 100644
--- a/quantum/keymap_midi.h
+++ b/quantum/keymap_midi.h
@@ -25,11 +25,11 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
25 25
26#define CHNL(note, channel) (note + (channel << 8)) 26#define CHNL(note, channel) (note + (channel << 8))
27 27
28#define SCALE (int []){ 0 + (12*0), 2 + (12*0), 4 + (12*0), 5 + (12*0), 7 + (12*0), 9 + (12*0), 11 + (12*0), \ 28#define SCALE (int8_t []){ 0 + (12*0), 2 + (12*0), 4 + (12*0), 5 + (12*0), 7 + (12*0), 9 + (12*0), 11 + (12*0), \
29 0 + (12*1), 2 + (12*1), 4 + (12*1), 5 + (12*1), 7 + (12*1), 9 + (12*1), 11 + (12*1), \ 29 0 + (12*1), 2 + (12*1), 4 + (12*1), 5 + (12*1), 7 + (12*1), 9 + (12*1), 11 + (12*1), \
30 0 + (12*2), 2 + (12*2), 4 + (12*2), 5 + (12*2), 7 + (12*2), 9 + (12*2), 11 + (12*2), \ 30 0 + (12*2), 2 + (12*2), 4 + (12*2), 5 + (12*2), 7 + (12*2), 9 + (12*2), 11 + (12*2), \
31 0 + (12*3), 2 + (12*3), 4 + (12*3), 5 + (12*3), 7 + (12*3), 9 + (12*3), 11 + (12*3), \ 31 0 + (12*3), 2 + (12*3), 4 + (12*3), 5 + (12*3), 7 + (12*3), 9 + (12*3), 11 + (12*3), \
32 0 + (12*4), 2 + (12*4), 4 + (12*4), 5 + (12*4), 7 + (12*4), 9 + (12*4), 11 + (12*4), } 32 0 + (12*4), 2 + (12*4), 4 + (12*4), 5 + (12*4), 7 + (12*4), 9 + (12*4), 11 + (12*4), }
33 33
34#define N_CN1 (0x600C + (12 * -1) + 0 ) 34#define N_CN1 (0x600C + (12 * -1) + 0 )
35#define N_CN1S (0x600C + (12 * -1) + 1 ) 35#define N_CN1S (0x600C + (12 * -1) + 1 )
diff --git a/quantum/matrix.c b/quantum/matrix.c
index 2dab6ae94..7d70f728d 100644
--- a/quantum/matrix.c
+++ b/quantum/matrix.c
@@ -42,6 +42,13 @@ static matrix_row_t matrix_debouncing[MATRIX_ROWS];
42 static matrix_row_t matrix_reversed_debouncing[MATRIX_COLS]; 42 static matrix_row_t matrix_reversed_debouncing[MATRIX_COLS];
43#endif 43#endif
44 44
45
46#if MATRIX_COLS > 16
47 #define SHIFTER 1UL
48#else
49 #define SHIFTER 1
50#endif
51
45static matrix_row_t read_cols(void); 52static matrix_row_t read_cols(void);
46static void init_cols(void); 53static void init_cols(void);
47static void unselect_rows(void); 54static void unselect_rows(void);
@@ -235,15 +242,15 @@ static matrix_row_t read_cols(void)
235#endif 242#endif
236 243
237 if ((col & 0xF0) == 0x20) { 244 if ((col & 0xF0) == 0x20) {
238 result |= (PINB&(1<<(col & 0x0F)) ? 0 : (1<<x)); 245 result |= (PINB&(1<<(col & 0x0F)) ? 0 : (SHIFTER<<x));
239 } else if ((col & 0xF0) == 0x30) { 246 } else if ((col & 0xF0) == 0x30) {
240 result |= (PINC&(1<<(col & 0x0F)) ? 0 : (1<<x)); 247 result |= (PINC&(1<<(col & 0x0F)) ? 0 : (SHIFTER<<x));
241 } else if ((col & 0xF0) == 0x40) { 248 } else if ((col & 0xF0) == 0x40) {
242 result |= (PIND&(1<<(col & 0x0F)) ? 0 : (1<<x)); 249 result |= (PIND&(1<<(col & 0x0F)) ? 0 : (SHIFTER<<x));
243 } else if ((col & 0xF0) == 0x50) { 250 } else if ((col & 0xF0) == 0x50) {
244 result |= (PINE&(1<<(col & 0x0F)) ? 0 : (1<<x)); 251 result |= (PINE&(1<<(col & 0x0F)) ? 0 : (SHIFTER<<x));
245 } else if ((col & 0xF0) == 0x60) { 252 } else if ((col & 0xF0) == 0x60) {
246 result |= (PINF&(1<<(col & 0x0F)) ? 0 : (1<<x)); 253 result |= (PINF&(1<<(col & 0x0F)) ? 0 : (SHIFTER<<x));
247 } 254 }
248 } 255 }
249 return result; 256 return result;
diff --git a/quantum/quantum.mk b/quantum/quantum.mk
index 4a076eca4..5f4c2f045 100644
--- a/quantum/quantum.mk
+++ b/quantum/quantum.mk
@@ -28,8 +28,9 @@ ifeq ($(strip $(MIDI_ENABLE)), yes)
28endif 28endif
29 29
30ifeq ($(strip $(AUDIO_ENABLE)), yes) 30ifeq ($(strip $(AUDIO_ENABLE)), yes)
31 SRC += $(QUANTUM_DIR)/audio/audio.c $(QUANTUM_DIR)/audio/voices.c 31 SRC += $(QUANTUM_DIR)/audio/audio.c
32 SRC += $(QUANTUM_DIR)/audio/audio.c $(QUANTUM_DIR)/audio/luts.c 32 SRC += $(QUANTUM_DIR)/audio/voices.c
33 SRC += $(QUANTUM_DIR)/audio/luts.c
33endif 34endif
34 35
35ifeq ($(strip $(UNICODE_ENABLE)), yes) 36ifeq ($(strip $(UNICODE_ENABLE)), yes)
diff --git a/quantum/tools/README.md b/quantum/tools/README.md
index 070214423..5f355256d 100644
--- a/quantum/tools/README.md
+++ b/quantum/tools/README.md
@@ -1,6 +1,6 @@
1`eeprom_reset.hex` is to reset the eeprom on the Atmega32u4, like this: 1`eeprom_reset.hex` is to reset the eeprom on the Atmega32u4, like this:
2 2
3 dfu-programmer atmega32u4 erase 3 dfu-programmer atmega32u4 erase
4 dfu-programmer atmega32u4 flash --eeprom eeprom-reset.bin 4 dfu-programmer atmega32u4 flash --eeprom eeprom_reset.hex
5 5
6 You'll need to reflash afterwards, because DFU requires the flash to be erased before messing with the eeprom. \ No newline at end of file 6 You'll need to reflash afterwards, because DFU requires the flash to be erased before messing with the eeprom.
diff --git a/tmk_core/common/action.c b/tmk_core/common/action.c
index f9e6c17dc..081e90b2d 100644
--- a/tmk_core/common/action.c
+++ b/tmk_core/common/action.c
@@ -74,6 +74,7 @@ void process_action_kb(keyrecord_t *record) {}
74 74
75void process_action(keyrecord_t *record) 75void process_action(keyrecord_t *record)
76{ 76{
77 bool do_release_oneshot = false;
77 keyevent_t event = record->event; 78 keyevent_t event = record->event;
78#ifndef NO_ACTION_TAPPING 79#ifndef NO_ACTION_TAPPING
79 uint8_t tap_count = record->tap.count; 80 uint8_t tap_count = record->tap.count;
@@ -81,6 +82,13 @@ void process_action(keyrecord_t *record)
81 82
82 if (IS_NOEVENT(event)) { return; } 83 if (IS_NOEVENT(event)) { return; }
83 84
85#if (defined(ONESHOT_TIMEOUT) && (ONESHOT_TIMEOUT > 0))
86 if (has_oneshot_layer_timed_out()) {
87 dprintf("Oneshot layer: timeout\n");
88 clear_oneshot_layer_state(ONESHOT_OTHER_KEY_PRESSED);
89 }
90#endif
91
84 process_action_kb(record); 92 process_action_kb(record);
85 93
86 action_t action = store_or_get_action(event.pressed, event.key); 94 action_t action = store_or_get_action(event.pressed, event.key);
@@ -95,6 +103,15 @@ void process_action(keyrecord_t *record)
95 // clear the potential weak mods left by previously pressed keys 103 // clear the potential weak mods left by previously pressed keys
96 clear_weak_mods(); 104 clear_weak_mods();
97 } 105 }
106
107#ifndef NO_ACTION_ONESHOT
108 // notice we only clear the one shot layer if the pressed key is not a modifier.
109 if (is_oneshot_layer_active() && event.pressed && !IS_MOD(action.key.code)) {
110 clear_oneshot_layer_state(ONESHOT_OTHER_KEY_PRESSED);
111 do_release_oneshot = !is_oneshot_layer_active();
112 }
113#endif
114
98 switch (action.kind.id) { 115 switch (action.kind.id) {
99 /* Key and Mods */ 116 /* Key and Mods */
100 case ACT_LMODS: 117 case ACT_LMODS:
@@ -139,24 +156,37 @@ void process_action(keyrecord_t *record)
139 // Oneshot modifier 156 // Oneshot modifier
140 if (event.pressed) { 157 if (event.pressed) {
141 if (tap_count == 0) { 158 if (tap_count == 0) {
159 dprint("MODS_TAP: Oneshot: 0\n");
142 register_mods(mods); 160 register_mods(mods);
143 } 161 } else if (tap_count == 1) {
144 else if (tap_count == 1) {
145 dprint("MODS_TAP: Oneshot: start\n"); 162 dprint("MODS_TAP: Oneshot: start\n");
146 set_oneshot_mods(mods); 163 set_oneshot_mods(mods);
147 } 164 #if defined(ONESHOT_TAP_TOGGLE) && ONESHOT_TAP_TOGGLE > 1
148 else { 165 } else if (tap_count == ONESHOT_TAP_TOGGLE) {
166 dprint("MODS_TAP: Toggling oneshot");
167 clear_oneshot_mods();
168 set_oneshot_locked_mods(mods);
169 register_mods(mods);
170 #endif
171 } else {
149 register_mods(mods); 172 register_mods(mods);
150 } 173 }
151 } else { 174 } else {
152 if (tap_count == 0) { 175 if (tap_count == 0) {
153 clear_oneshot_mods(); 176 clear_oneshot_mods();
154 unregister_mods(mods); 177 unregister_mods(mods);
155 } 178 } else if (tap_count == 1) {
156 else if (tap_count == 1) {
157 // Retain Oneshot mods 179 // Retain Oneshot mods
158 } 180 #if defined(ONESHOT_TAP_TOGGLE) && ONESHOT_TAP_TOGGLE > 1
159 else { 181 if (mods & get_mods()) {
182 clear_oneshot_locked_mods();
183 clear_oneshot_mods();
184 unregister_mods(mods);
185 }
186 } else if (tap_count == ONESHOT_TAP_TOGGLE) {
187 // Toggle Oneshot Layer
188 #endif
189 } else {
160 clear_oneshot_mods(); 190 clear_oneshot_mods();
161 unregister_mods(mods); 191 unregister_mods(mods);
162 } 192 }
@@ -309,6 +339,44 @@ void process_action(keyrecord_t *record)
309 event.pressed ? layer_move(action.layer_tap.val) : 339 event.pressed ? layer_move(action.layer_tap.val) :
310 layer_clear(); 340 layer_clear();
311 break; 341 break;
342 #ifndef NO_ACTION_ONESHOT
343 case OP_ONESHOT:
344 // Oneshot modifier
345 #if defined(ONESHOT_TAP_TOGGLE) && ONESHOT_TAP_TOGGLE > 1
346 do_release_oneshot = false;
347 if (event.pressed) {
348 del_mods(get_oneshot_locked_mods());
349 if (get_oneshot_layer_state() == ONESHOT_TOGGLED) {
350 reset_oneshot_layer();
351 layer_off(action.layer_tap.val);
352 break;
353 } else if (tap_count < ONESHOT_TAP_TOGGLE) {
354 layer_on(action.layer_tap.val);
355 set_oneshot_layer(action.layer_tap.val, ONESHOT_START);
356 }
357 } else {
358 add_mods(get_oneshot_locked_mods());
359 if (tap_count >= ONESHOT_TAP_TOGGLE) {
360 reset_oneshot_layer();
361 clear_oneshot_locked_mods();
362 set_oneshot_layer(action.layer_tap.val, ONESHOT_TOGGLED);
363 } else {
364 clear_oneshot_layer_state(ONESHOT_PRESSED);
365 }
366 }
367 #else
368 if (event.pressed) {
369 layer_on(action.layer_tap.val);
370 set_oneshot_layer(action.layer_tap.val, ONESHOT_START);
371 } else {
372 clear_oneshot_layer_state(ONESHOT_PRESSED);
373 if (tap_count > 1) {
374 clear_oneshot_layer_state(ONESHOT_OTHER_KEY_PRESSED);
375 }
376 }
377 #endif
378 break;
379 #endif
312 default: 380 default:
313 /* tap key */ 381 /* tap key */
314 if (event.pressed) { 382 if (event.pressed) {
@@ -372,6 +440,18 @@ void process_action(keyrecord_t *record)
372 default: 440 default:
373 break; 441 break;
374 } 442 }
443
444#ifndef NO_ACTION_ONESHOT
445 /* Because we switch layers after a oneshot event, we need to release the
446 * key before we leave the layer or no key up event will be generated.
447 */
448 if (do_release_oneshot && !(get_oneshot_layer_state() & ONESHOT_PRESSED ) ) {
449 record->event.pressed = false;
450 layer_on(get_oneshot_layer());
451 process_action(record);
452 layer_off(get_oneshot_layer());
453 }
454#endif
375} 455}
376 456
377 457
@@ -560,6 +640,7 @@ bool is_tap_key(keypos_t key)
560 switch (action.layer_tap.code) { 640 switch (action.layer_tap.code) {
561 case 0x00 ... 0xdf: 641 case 0x00 ... 0xdf:
562 case OP_TAP_TOGGLE: 642 case OP_TAP_TOGGLE:
643 case OP_ONESHOT:
563 return true; 644 return true;
564 } 645 }
565 return false; 646 return false;
diff --git a/tmk_core/common/action_code.h b/tmk_core/common/action_code.h
index 2b0b0b077..ca729aaec 100644
--- a/tmk_core/common/action_code.h
+++ b/tmk_core/common/action_code.h
@@ -76,7 +76,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
76 * 101E|LLLL|1111 0001 On/Off (0xF1) [NOT TAP] 76 * 101E|LLLL|1111 0001 On/Off (0xF1) [NOT TAP]
77 * 101E|LLLL|1111 0010 Off/On (0xF2) [NOT TAP] 77 * 101E|LLLL|1111 0010 Off/On (0xF2) [NOT TAP]
78 * 101E|LLLL|1111 0011 Set/Clear (0xF3) [NOT TAP] 78 * 101E|LLLL|1111 0011 Set/Clear (0xF3) [NOT TAP]
79 * 101E|LLLL|1111 xxxx Reserved (0xF4-FF) 79 * 101E|LLLL|1111 0100 One Shot Layer (0xF4) [TAP]
80 * 101E|LLLL|1111 xxxx Reserved (0xF5-FF)
80 * ELLLL: layer 0-31(E: extra bit for layer 16-31) 81 * ELLLL: layer 0-31(E: extra bit for layer 16-31)
81 * 82 *
82 * 83 *
@@ -250,6 +251,7 @@ enum layer_pram_tap_op {
250 OP_ON_OFF, 251 OP_ON_OFF,
251 OP_OFF_ON, 252 OP_OFF_ON,
252 OP_SET_CLEAR, 253 OP_SET_CLEAR,
254 OP_ONESHOT,
253}; 255};
254#define ACTION_LAYER_BITOP(op, part, bits, on) (ACT_LAYER<<12 | (op)<<10 | (on)<<8 | (part)<<5 | ((bits)&0x1f)) 256#define ACTION_LAYER_BITOP(op, part, bits, on) (ACT_LAYER<<12 | (op)<<10 | (on)<<8 | (part)<<5 | ((bits)&0x1f))
255#define ACTION_LAYER_TAP(layer, key) (ACT_LAYER_TAP<<12 | (layer)<<8 | (key)) 257#define ACTION_LAYER_TAP(layer, key) (ACT_LAYER_TAP<<12 | (layer)<<8 | (key))
@@ -266,6 +268,7 @@ enum layer_pram_tap_op {
266#define ACTION_LAYER_ON_OFF(layer) ACTION_LAYER_TAP((layer), OP_ON_OFF) 268#define ACTION_LAYER_ON_OFF(layer) ACTION_LAYER_TAP((layer), OP_ON_OFF)
267#define ACTION_LAYER_OFF_ON(layer) ACTION_LAYER_TAP((layer), OP_OFF_ON) 269#define ACTION_LAYER_OFF_ON(layer) ACTION_LAYER_TAP((layer), OP_OFF_ON)
268#define ACTION_LAYER_SET_CLEAR(layer) ACTION_LAYER_TAP((layer), OP_SET_CLEAR) 270#define ACTION_LAYER_SET_CLEAR(layer) ACTION_LAYER_TAP((layer), OP_SET_CLEAR)
271#define ACTION_LAYER_ONESHOT(layer) ACTION_LAYER_TAP((layer), OP_ONESHOT)
269#define ACTION_LAYER_MODS(layer, mods) ACTION_LAYER_TAP((layer), 0xe0 | ((mods)&0x0f)) 272#define ACTION_LAYER_MODS(layer, mods) ACTION_LAYER_TAP((layer), 0xe0 | ((mods)&0x0f))
270/* With Tapping */ 273/* With Tapping */
271#define ACTION_LAYER_TAP_KEY(layer, key) ACTION_LAYER_TAP((layer), (key)) 274#define ACTION_LAYER_TAP_KEY(layer, key) ACTION_LAYER_TAP((layer), (key))
diff --git a/tmk_core/common/action_util.c b/tmk_core/common/action_util.c
index a2d6577b2..61ff202be 100644
--- a/tmk_core/common/action_util.c
+++ b/tmk_core/common/action_util.c
@@ -18,6 +18,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
18#include "report.h" 18#include "report.h"
19#include "debug.h" 19#include "debug.h"
20#include "action_util.h" 20#include "action_util.h"
21#include "action_layer.h"
21#include "timer.h" 22#include "timer.h"
22 23
23static inline void add_key_byte(uint8_t code); 24static inline void add_key_byte(uint8_t code);
@@ -47,11 +48,70 @@ report_keyboard_t *keyboard_report = &(report_keyboard_t){};
47 48
48#ifndef NO_ACTION_ONESHOT 49#ifndef NO_ACTION_ONESHOT
49static int8_t oneshot_mods = 0; 50static int8_t oneshot_mods = 0;
51static int8_t oneshot_locked_mods = 0;
52int8_t get_oneshot_locked_mods(void) { return oneshot_locked_mods; }
53void set_oneshot_locked_mods(int8_t mods) { oneshot_locked_mods = mods; }
54void clear_oneshot_locked_mods(void) { oneshot_locked_mods = 0; }
50#if (defined(ONESHOT_TIMEOUT) && (ONESHOT_TIMEOUT > 0)) 55#if (defined(ONESHOT_TIMEOUT) && (ONESHOT_TIMEOUT > 0))
51static int16_t oneshot_time = 0; 56static int16_t oneshot_time = 0;
57inline bool has_oneshot_mods_timed_out() {
58 return TIMER_DIFF_16(timer_read(), oneshot_time) >= ONESHOT_TIMEOUT;
59}
52#endif 60#endif
53#endif 61#endif
54 62
63/* oneshot layer */
64#ifndef NO_ACTION_ONESHOT
65/* oneshot_layer_data bits
66* LLLL LSSS
67* where:
68* L => are layer bits
69* S => oneshot state bits
70*/
71static int8_t oneshot_layer_data = 0;
72
73inline uint8_t get_oneshot_layer(void) { return oneshot_layer_data >> 3; }
74inline uint8_t get_oneshot_layer_state(void) { return oneshot_layer_data & 0b111; }
75
76#if (defined(ONESHOT_TIMEOUT) && (ONESHOT_TIMEOUT > 0))
77static int16_t oneshot_layer_time = 0;
78inline bool has_oneshot_layer_timed_out() {
79 return TIMER_DIFF_16(timer_read(), oneshot_layer_time) >= ONESHOT_TIMEOUT &&
80 !(get_oneshot_layer_state() & ONESHOT_TOGGLED);
81}
82#endif
83
84/* Oneshot layer */
85void set_oneshot_layer(uint8_t layer, uint8_t state)
86{
87 oneshot_layer_data = layer << 3 | state;
88 layer_on(layer);
89#if (defined(ONESHOT_TIMEOUT) && (ONESHOT_TIMEOUT > 0))
90 oneshot_layer_time = timer_read();
91#endif
92}
93void reset_oneshot_layer(void) {
94 oneshot_layer_data = 0;
95#if (defined(ONESHOT_TIMEOUT) && (ONESHOT_TIMEOUT > 0))
96 oneshot_layer_time = 0;
97#endif
98}
99void clear_oneshot_layer_state(oneshot_fullfillment_t state)
100{
101 uint8_t start_state = oneshot_layer_data;
102 oneshot_layer_data &= ~state;
103 if (!get_oneshot_layer_state() && start_state != oneshot_layer_data) {
104 layer_off(get_oneshot_layer());
105#if (defined(ONESHOT_TIMEOUT) && (ONESHOT_TIMEOUT > 0))
106 oneshot_layer_time = 0;
107#endif
108 }
109}
110bool is_oneshot_layer_active(void)
111{
112 return get_oneshot_layer_state();
113}
114#endif
55 115
56void send_keyboard_report(void) { 116void send_keyboard_report(void) {
57 keyboard_report->mods = real_mods; 117 keyboard_report->mods = real_mods;
@@ -60,7 +120,7 @@ void send_keyboard_report(void) {
60#ifndef NO_ACTION_ONESHOT 120#ifndef NO_ACTION_ONESHOT
61 if (oneshot_mods) { 121 if (oneshot_mods) {
62#if (defined(ONESHOT_TIMEOUT) && (ONESHOT_TIMEOUT > 0)) 122#if (defined(ONESHOT_TIMEOUT) && (ONESHOT_TIMEOUT > 0))
63 if (TIMER_DIFF_16(timer_read(), oneshot_time) >= ONESHOT_TIMEOUT) { 123 if (has_oneshot_mods_timed_out()) {
64 dprintf("Oneshot: timeout\n"); 124 dprintf("Oneshot: timeout\n");
65 clear_oneshot_mods(); 125 clear_oneshot_mods();
66 } 126 }
@@ -70,6 +130,7 @@ void send_keyboard_report(void) {
70 clear_oneshot_mods(); 130 clear_oneshot_mods();
71 } 131 }
72 } 132 }
133
73#endif 134#endif
74 host_keyboard_send(keyboard_report); 135 host_keyboard_send(keyboard_report);
75} 136}
@@ -143,11 +204,12 @@ void clear_oneshot_mods(void)
143 oneshot_time = 0; 204 oneshot_time = 0;
144#endif 205#endif
145} 206}
207uint8_t get_oneshot_mods(void)
208{
209 return oneshot_mods;
210}
146#endif 211#endif
147 212
148
149
150
151/* 213/*
152 * inspect keyboard state 214 * inspect keyboard state
153 */ 215 */
diff --git a/tmk_core/common/action_util.h b/tmk_core/common/action_util.h
index 1a95cec10..dd0c4c2bf 100644
--- a/tmk_core/common/action_util.h
+++ b/tmk_core/common/action_util.h
@@ -56,10 +56,30 @@ void clear_macro_mods(void);
56 56
57/* oneshot modifier */ 57/* oneshot modifier */
58void set_oneshot_mods(uint8_t mods); 58void set_oneshot_mods(uint8_t mods);
59uint8_t get_oneshot_mods(void);
59void clear_oneshot_mods(void); 60void clear_oneshot_mods(void);
60void oneshot_toggle(void); 61void oneshot_toggle(void);
61void oneshot_enable(void); 62void oneshot_enable(void);
62void oneshot_disable(void); 63void oneshot_disable(void);
64bool has_oneshot_mods_timed_out(void);
65
66int8_t get_oneshot_locked_mods(void);
67void set_oneshot_locked_mods(int8_t mods);
68void clear_oneshot_locked_mods(void);
69
70typedef enum {
71 ONESHOT_PRESSED = 0b01,
72 ONESHOT_OTHER_KEY_PRESSED = 0b10,
73 ONESHOT_START = 0b11,
74 ONESHOT_TOGGLED = 0b100
75} oneshot_fullfillment_t;
76void set_oneshot_layer(uint8_t layer, uint8_t state);
77uint8_t get_oneshot_layer(void);
78void clear_oneshot_layer_state(oneshot_fullfillment_t state);
79void reset_oneshot_layer(void);
80bool is_oneshot_layer_active(void);
81uint8_t get_oneshot_layer_state(void);
82bool has_oneshot_layer_timed_out(void);
63 83
64/* inspect */ 84/* inspect */
65uint8_t has_anykey(void); 85uint8_t has_anykey(void);
diff --git a/tmk_core/common/backlight.c b/tmk_core/common/backlight.c
index 2f6fc1cd6..c9e8fd3fd 100644
--- a/tmk_core/common/backlight.c
+++ b/tmk_core/common/backlight.c
@@ -83,3 +83,8 @@ void backlight_level(uint8_t level)
83 eeconfig_update_backlight(backlight_config.raw); 83 eeconfig_update_backlight(backlight_config.raw);
84 backlight_set(backlight_config.level); 84 backlight_set(backlight_config.level);
85} 85}
86
87uint8_t get_backlight_level(void)
88{
89 return backlight_config.level;
90} \ No newline at end of file
diff --git a/tmk_core/common/backlight.h b/tmk_core/common/backlight.h
index 525ec8bbe..f57309267 100644
--- a/tmk_core/common/backlight.h
+++ b/tmk_core/common/backlight.h
@@ -36,5 +36,6 @@ void backlight_toggle(void);
36void backlight_step(void); 36void backlight_step(void);
37void backlight_set(uint8_t level); 37void backlight_set(uint8_t level);
38void backlight_level(uint8_t level); 38void backlight_level(uint8_t level);
39uint8_t get_backlight_level(void);
39 40
40#endif 41#endif
diff --git a/tmk_core/common/command.c b/tmk_core/common/command.c
index f06abaf7f..9edcc42a0 100644
--- a/tmk_core/common/command.c
+++ b/tmk_core/common/command.c
@@ -357,9 +357,11 @@ static bool command_common(uint8_t code)
357 clear_keyboard(); // clear to prevent stuck keys 357 clear_keyboard(); // clear to prevent stuck keys
358 print("\n\nJumping to bootloader... "); 358 print("\n\nJumping to bootloader... ");
359 #ifdef AUDIO_ENABLE 359 #ifdef AUDIO_ENABLE
360 stop_all_notes();
360 play_goodbye_tone(); 361 play_goodbye_tone();
362 #else
363 _delay_ms(1000);
361 #endif 364 #endif
362 _delay_ms(1000);
363 bootloader_jump(); // not return 365 bootloader_jump(); // not return
364 break; 366 break;
365 367
diff --git a/tmk_core/common/nodebug.h b/tmk_core/common/nodebug.h
index 93309ada4..5e18656e5 100644
--- a/tmk_core/common/nodebug.h
+++ b/tmk_core/common/nodebug.h
@@ -16,10 +16,14 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
16*/ 16*/
17 17
18#ifndef NODEBUG_H 18#ifndef NODEBUG_H
19#define NODEBUG_H 1 19#define NODEBUG_H
20 20
21#define NO_DEBUG 21#ifndef NO_DEBUG
22#include "debug.h" 22 #define NO_DEBUG
23#undef NO_DEBUG 23 #include "debug.h"
24 #undef NO_DEBUG
25#else
26 #include "debug.h"
27#endif
24 28
25#endif 29#endif
diff --git a/tmk_core/doc/keymap.md b/tmk_core/doc/keymap.md
index d4a129b20..4d42fbe5c 100644
--- a/tmk_core/doc/keymap.md
+++ b/tmk_core/doc/keymap.md
@@ -528,14 +528,20 @@ This is a feature to assign both toggle layer and momentary switch layer action
528 528
529 529
530### 4.3 Oneshot Modifier 530### 4.3 Oneshot Modifier
531This runs onetime effects which modify only on just one following key. It works as normal modifier key when holding down while oneshot modifier when tapping. 531This runs onetime effects which modify only on just one following key. It works as normal modifier key when holding down while oneshot modifier when tapping. The behavior of oneshot modifiers is similar to the [sticky keys](https://en.wikipedia.org/wiki/StickyKeys) functionality found in most operating systems.
532 532
533 ACTION_MODS_ONESHOT(MOD_LSFT) 533 ACTION_MODS_ONESHOT(MOD_LSFT)
534 534
535Oneshot layer key:
536
537 ACTION_LAYER_ONESHOT(MY_LAYER)
538
535Say you want to type 'The', you have to push and hold Shift key before type 't' then release it before type 'h' and 'e', otherwise you'll get 'THe' or 'the' unintentionally. With Oneshot Modifier you can tap Shift then type 't', 'h' and 'e' normally, you don't need to holding Shift key properly here. This mean you can release Shift before 't' is pressed down. 539Say you want to type 'The', you have to push and hold Shift key before type 't' then release it before type 'h' and 'e', otherwise you'll get 'THe' or 'the' unintentionally. With Oneshot Modifier you can tap Shift then type 't', 'h' and 'e' normally, you don't need to holding Shift key properly here. This mean you can release Shift before 't' is pressed down.
536 540
537Oneshot effect is cancel unless following key is pressed down within `ONESHOT_TIMEOUT` of `config.h`. No timeout when it is `0` or not defined. 541Oneshot effect is cancel unless following key is pressed down within `ONESHOT_TIMEOUT` of `config.h`. No timeout when it is `0` or not defined.
538 542
543Most implementations of sticky keys allow you to lock a modifier by double tapping the modifier. The layer then remains locked untill the modifier is tapped again. To enable this behaviour for oneshot modifiers set `ONESHOT_TAP_TOGGLE` to the number taps required. The feature is disabled if `ONESHOT_TAP_TOGGLE<2` or not defined.
544
539 545
540### 4.4 Tap Toggle Mods 546### 4.4 Tap Toggle Mods
541Similar to layer tap toggle, this works as a momentary modifier when holding, but toggles on with several taps. A single tap will 'unstick' the modifier again. 547Similar to layer tap toggle, this works as a momentary modifier when holding, but toggles on with several taps. A single tap will 'unstick' the modifier again.
diff --git a/tmk_core/rules.mk b/tmk_core/rules.mk
index 860fc1a93..69c7985b4 100644
--- a/tmk_core/rules.mk
+++ b/tmk_core/rules.mk
@@ -142,6 +142,9 @@ CFLAGS += $(CSTANDARD)
142ifdef CONFIG_H 142ifdef CONFIG_H
143 CFLAGS += -include $(CONFIG_H) 143 CFLAGS += -include $(CONFIG_H)
144endif 144endif
145ifdef CONFIG_USER_H
146 CFLAGS += -include $(CONFIG_USER_H)
147endif
145 148
146 149
147#---------------- Compiler Options C++ ---------------- 150#---------------- Compiler Options C++ ----------------
@@ -176,6 +179,9 @@ CPPFLAGS += $(patsubst %,-I%,$(EXTRAINCDIRS))
176ifdef CONFIG_H 179ifdef CONFIG_H
177 CPPFLAGS += -include $(CONFIG_H) 180 CPPFLAGS += -include $(CONFIG_H)
178endif 181endif
182ifdef CONFIG_USER_H
183 CPPFLAGS += -include $(CONFIG_USER_H)
184endif
179 185
180 186
181#---------------- Assembler Options ---------------- 187#---------------- Assembler Options ----------------
@@ -192,6 +198,9 @@ ASFLAGS += $(patsubst %,-I%,$(EXTRAINCDIRS))
192ifdef CONFIG_H 198ifdef CONFIG_H
193 ASFLAGS += -include $(CONFIG_H) 199 ASFLAGS += -include $(CONFIG_H)
194endif 200endif
201ifdef CONFIG_USER_H
202 ASFLAGS += -include $(CONFIG_USER_H)
203endif
195 204
196 205
197#---------------- Library Options ---------------- 206#---------------- Library Options ----------------