summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorErez Zukerman <ezuk@madmimi.com>2016-05-24 22:37:25 -0400
committerErez Zukerman <ezuk@madmimi.com>2016-05-24 22:37:38 -0400
commitf4a426a0b1817dcf865cb5303184cd693074e9b3 (patch)
treecf26a71b1cc4c77d501f5f5a78e8496274af6afb
parent287eb7ad148abc8fe3fb014218d71e205fd9131d (diff)
[Erez & Jack] Documents new Leader key functionality
-rw-r--r--README.md56
-rw-r--r--keyboard/ergodox_ez/ergodox_ez.h6
-rw-r--r--keyboard/ergodox_ez/keymaps/erez_experimental/erez_experimental.hex2200
-rw-r--r--keyboard/ergodox_ez/keymaps/erez_experimental/keymap.c79
-rw-r--r--keyboard/ergodox_ez/keymaps/erez_experimental/readme.md6
5 files changed, 1217 insertions, 1130 deletions
diff --git a/README.md b/README.md
index 4e53569a8e..3925cf8d9a 100644
--- a/README.md
+++ b/README.md
@@ -118,6 +118,42 @@ We've added shortcuts to make common modifier/tap (mod-tap) mappings more compac
* `LCAG_T(kc)` - is CtrlAltGui when held and *kc* when tapped
* `MEH_T(kc)` - is like Hyper, but not as cool -- does not include the Cmd/Win key, so just sends Alt+Ctrl+Shift.
+### The Leader key: A new kind of modifier
+
+If you've ever used Vim, you know what a Leader key is. If not, you're about to discover a wonderful concept. :) Instead of hitting Alt+Shift+W for example (holding down three keys at the same time), what if you could hit a _sequence_ of keys instead? So you'd hit our special modifier (the Leader key), followed by W and then C (just a rapid succession of keys), and something would happen.
+
+That's what `KC_LEAD` does. Here's an example:
+
+1. Pick a key on your keyboard you want to use as the Leader key. Assign it the keycode `KC_LEAD`. This key would be dedicated just for this -- it's a single action key, can't be used for anything else.
+2. Include the line `#define LEADER_TIMEOUT 300` somewhere in your keymap.c file, probably near the top. The 300 there is 300ms -- that's how long you have for the sequence of keys following the leader. You can tweak this value for comfort, of course.
+3. Within your `matrix_scan_user` function, do something like this:
+
+```
+void matrix_scan_user(void) {
+ LEADER_DICTIONARY() {
+ leading = false;
+ leader_end();
+
+ SEQ_ONE_KEY(KC_F) {
+ register_code(KC_S);
+ unregister_code(KC_S);
+ }
+ SEQ_TWO_KEYS(KC_A, KC_S) {
+ register_code(KC_H);
+ unregister_code(KC_H);
+ }
+ SEQ_THREE_KEYS(KC_A, KC_S, KC_D) {
+ register_code(KC_LGUI);
+ register_code(KC_S);
+ unregister_code(KC_S);
+ unregister_code(KC_LGUI);
+ }
+ }
+}
+```
+
+As you can see, you have three function. you can use - `SEQ_ONE_KEY` for single-key sequences (Leader followed by just one key), and `SEQ_TWO_KEYS` and `SEQ_THREE_.EYS` for longer sequences. Each of these accepts one or more keycodes as arguments. This is an important point: You can use keycodes from **any layer on your keyboard**. That layer would need to be active for the leader macro to fire, obviously.
+
### Temporarily setting the default layer
`DF(layer)` - sets default layer to *layer*. The default layer is the one at the "bottom" of the layer stack - the ultimate fallback layer. This currently does not persist over power loss. When you plug the keyboard back in, layer 0 will always be the default. It is theoretically possible to work around that, but that's not what `DF` does.
@@ -258,7 +294,7 @@ if (timer_elapsed(key_timer) < 100) {
}
```
-It's best to declare the `static uint16_t key_timer;` outside of the macro block (top of file, etc).
+It's best to declare the `static uint16_t key_timer;` outside of the macro block (top of file, etc).
#### Example 1: Single-key copy/paste (hold to copy, tap to paste)
@@ -276,7 +312,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
case 0: {
if (record->event.pressed) {
key_timer = timer_read(); // if the key is being pressed, we start the timer.
- }
+ }
else { // this means the key was just released, so we can figure out how long it was pressed for (tap or "held down").
if (timer_elapsed(key_timer) > 150) { // 150 being 150ms, the threshhold we pick for counting something as a tap.
return MACRO( D(LCTL), T(C), U(LCTL), END );
@@ -312,7 +348,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
key_timer = timer_read(); // if the key is being pressed, we start the timer.
register_code(KC_LSFT); // we're now holding down Shift.
} else { // this means the key was just released, so we can figure out how long it was pressed for (tap or "held down").
- if (timer_elapsed(key_timer) < 150) { // 150 being 150ms, the threshhold we pick for counting something as a tap.
+ if (timer_elapsed(key_timer) < 150) { // 150 being 150ms, the threshhold we pick for counting something as a tap.
register_code(KC_9); // sending 9 while Shift is held down gives us an opening paren
unregister_code(KC_9); // now let's let go of that key
}
@@ -323,13 +359,13 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
case 1: {
if (record->event.pressed) {
key_timer = timer_read(); // Now we're doing the same thing, only for the right shift/close paren key
- register_code(KC_RSFT);
- } else {
- if (timer_elapsed(key_timer) < 150) {
- register_code(KC_0);
- unregister_code(KC_0);
+ register_code(KC_RSFT);
+ } else {
+ if (timer_elapsed(key_timer) < 150) {
+ register_code(KC_0);
+ unregister_code(KC_0);
}
- unregister_code(KC_RSFT);
+ unregister_code(KC_RSFT);
}
break;
}
@@ -510,4 +546,4 @@ what things are (and likely aren't) too risky.
- EEPROM has around a 100000 write cycle. You shouldn't rewrite the
firmware repeatedly and continually; that'll burn the EEPROM
eventually.
-
+
diff --git a/keyboard/ergodox_ez/ergodox_ez.h b/keyboard/ergodox_ez/ergodox_ez.h
index 1e446baf6f..402abc167b 100644
--- a/keyboard/ergodox_ez/ergodox_ez.h
+++ b/keyboard/ergodox_ez/ergodox_ez.h
@@ -1,13 +1,9 @@
#ifndef ERGODOX_EZ_H
#define ERGODOX_EZ_H
-#include "matrix.h"
-#include "keymap_common.h"
-#include "backlight.h"
-#include <stddef.h>
+#include "quantum.h"
#include <stdint.h>
#include <stdbool.h>
-#include <avr/io.h>
#include "i2cmaster.h"
#include <util/delay.h>
diff --git a/keyboard/ergodox_ez/keymaps/erez_experimental/erez_experimental.hex b/keyboard/ergodox_ez/keymaps/erez_experimental/erez_experimental.hex
index bdd707165f..4bbda7e973 100644
--- a/keyboard/ergodox_ez/keymaps/erez_experimental/erez_experimental.hex
+++ b/keyboard/ergodox_ez/keymaps/erez_experimental/erez_experimental.hex
@@ -1,31 +1,31 @@
:100000000C945C020C94A0020C94A0020C94A0022C
:100010000C94A0020C94A0020C94A0020C94A002D8
-:100020000C94A0020C94A0020C94970C0C94690DF3
-:100030000C94D61B0C94A0020C94A0020C94A00269
+:100020000C94A0020C94A0020C94900D0C94620EFF
+:100030000C94AB1C0C94A0020C94A0020C94A00293
:100040000C94A0020C94A0020C94A0020C94A002A8
-:100050000C94A0020C943D1C0C94A0020C94A002E1
+:100050000C94A0020C94121D0C94A0020C94A0020B
:100060000C94A0020C94A0020C94A0020C94A00288
:100070000C94A0020C94A0020C94A0020C94A00278
:100080000C94A0020C94A0020C94A0020C94A00268
:100090000C94A0020C94A0020C94A0020C94A00258
-:1000A0000C94A0020C94A0020C94A002CE0DF00DB2
-:1000B000DB0EF00DDB0E320E550EDB0EAA0EBD0E62
-:1000C000CC11CC11FB11FB1146126812CF13CF13C8
-:1000D0007312CF131C131C13C013CF13CF13C913E8
-:1000E0002913291329132913291329132913291330
-:1000F0002913291329132913291329132913291320
-:100100003A1348134F13561360130000F0A100C8B0
-:1001100001C82E004C002A000030358100001E006E
+:1000A0000C94A0020C94A0020C94A002C70EE90EBE
+:1000B000D40FE90ED40F2B0F4E0FD40FA30FB60F92
+:1000C0008D128D12BC12BC12031325137D147D14E6
+:1000D00030137D14D713D7136E147D147D14771449
+:1000E000E413E413E413E413E413E413E413E41358
+:1000F000E413E413E413E413E413E413E413E41348
+:10010000F61303140A1411141B140000F0A100C804
+:1001100001C82E004C002A000030354100001E00AE
:10012000140004001D7134004D001F001A00160059
-:100130001B00E104C1002000080007000600500079
+:100130001B00E104145020000800070006005000D6
:100140002C0021001500090019004F004A00220070
:1001500017000A00050000006574500001540000FB
:100160002F7F0000E3004F000154000030770000B3
:10017000E20023001C000B00110000002971240084
:1001800018000D74100052004B0025000C000E00EA
:10019000360051002800260012000F0037002F0003
-:1001A0002B81270013003382387130004E002D0060
-:1001B0003100347801302D81000001000100010080
+:1001A0002B41270013003342387130004E002D00E0
+:1001B0003100347801302D410000010001000100C0
:1001C0000100010000003A0001001E0023000100B0
:1001D00001003B0001001F002400010001003C0061
:1001E0000100200025004B0101003D00010021001D
@@ -74,1083 +74,1109 @@
:100490000175088101050819012905950575019166
:1004A000029501750391010507190029FF15002523
:1004B000FF950675088100C011241FBECFEFDAE05A
-:1004C000DEBFCDBF04B603FE24C08091F20190913F
-:1004D000F301A091F401B091F5018730904BA74052
-:1004E000B04BB9F41092F2011092F3011092F401A2
-:1004F0001092F50114BE84B7877F84BF88E10FB6E0
+:1004C000DEBFCDBF04B603FE24C08091FC01909135
+:1004D000FD01A091FE01B091FF018730904BA74034
+:1004E000B04BB9F41092FC011092FD011092FE0184
+:1004F0001092FF0114BE84B7877F84BF88E10FB6D6
:10050000F89480936000109260000FBEE0E0FFE37B
-:10051000099511E0A0E0B1E0EAEEF7E402C0059031
+:10051000099511E0A0E0B1E0E0E9F9E402C005903E
:100520000D92A433B107D9F711E0A4E3B1E001C003
-:100530001D92A23FB107E1F70E94DF090C94F3235B
+:100530001D92AC3FB107E1F70E94D80A0C94C62483
:100540000C940000CF93DF93EC01662319F0613027
-:1005500079F031C08A818823C9F082E00E94561167
+:1005500079F031C08A818823C9F082E00E94451277
:100560008D81982F907F71F080FD0CC086E21BC0BA
-:100570008A818823D9F082E00E9456118D81982FBC
+:100570008A818823D9F082E00E9445128D81982FCC
:10058000907F71F48D818F708D8315C08D81807FF8
-:1005900019F086E20E94071182E00E945D110BC0F3
-:1005A00080FDF0CF87E20E943F1005C08D81807FE3
+:1005900019F086E20E94F61182E00E944C120BC014
+:1005A00080FDF0CF87E20E942E1105C08D81807FF3
:1005B00099F387E2EFCF80E090E0DF91CF9108954B
-:1005C00008956091B1017091B2018091B301909151
-:1005D000B4010E943D1B56985E9825982D98269848
-:1005E0002E9827982F98813019F0823021F00895A5
-:1005F000259A2D9A0895269A2E9A08950C94E10230
-:1006000056985E9825982D9826982E9827982F987A
-:100610008FEF90E0909389008093880090938B00F7
-:1006200080938A0090938D0080938C00259A2D9A58
-:100630002FEF80E792E0215080409040E1F700C02A
-:100640000000269A2E9A2FEF80E792E021508040FA
-:100650009040E1F700C00000279A2F9A2FEF80E723
-:1006600092E0215080409040E1F700C000002598C2
-:100670002D982FEF80E792E0215080409040E1F7E5
-:1006800000C0000026982E982FEF80E792E02150BE
-:1006900080409040E1F700C0000027982F985698BE
-:1006A0005E9825982D9826982E9827982F9808952B
-:1006B00089EA8093800089E08093810024982C98B7
-:1006C0003F988AB18F748AB96E98479A8BB1806BC4
-:1006D0008BB9769A0E9400030C94E00280E280932A
-:1006E00000018091340181110EC00E94BD0381E0A0
-:1006F000809334012FEF83ED90E3215080409040B0
-:10070000E1F700C0000080E40E94C3038093000171
-:1007100081112EC00E94ED0380930001811128C039
-:100720000E94ED0380930001811122C08FE30E949B
-:10073000ED038093000181111BC00E94E50380E45A
-:100740000E94C30380930001811112C08CE00E94BB
-:10075000ED038093000181110BC00E94ED03809393
-:100760000001811105C08FE30E94ED038093000119
-:100770000E94E5038091000108951092B9008AE07B
-:100780008093B800089594EA9093BC009091BC00C7
-:1007900097FFFCCF9091B900987F983021F090316D
-:1007A00011F081E008958093BB0084E88093BC0041
-:1007B0008091BC0087FFFCCF8091B900887F883191
-:1007C00011F0803471F780E0089584E98093BC00D3
-:1007D0008091BC0084FDFCCF08958093BB0084E829
-:1007E0008093BC008091BC0087FFFCCF9091B90042
-:1007F000987F81E0983209F480E0089584E880933E
-:10080000BC008091BC0087FFFCCF8091BB000895A5
-:1008100080910001811115C080E40E94C303809380
-:10082000000181110CC082E10E94ED038093000160
-:10083000811105C08FEF0E94ED03809300010E949B
-:10084000E50384B1807F84B985B1807F85B98AB1A1
-:10085000837F8AB98BB1837F8BB93E984698089580
-:100860000E946E03809300010E94080480B38C7084
-:1008700080BB81B3836F81BBE4E4F1E0A6E3B1E028
-:1008800011921D9281E0E235F807D1F70C945803DC
-:10089000BF92CF92DF92EF92FF920F931F93CF936D
-:1008A000DF9380910001882379F0809135018F5F7B
-:1008B00080933501811108C00E946E03809300016E
-:1008C000811102C00E94000306E311E0C0E0D0E005
-:1008D000DD24D39482E0C82EEE24E394F12CC730BB
-:1008E00000F580910001811162C080E40E94C30381
-:1008F00080930001811112C082E10E94ED03809378
-:10090000000181110BC0C7010C2E01C0880F0A9491
-:10091000EAF780950E94ED03809300010E94E503B1
-:1009200046C0CA30A1F028F4C83059F0C93061F08F
-:1009300005C0CC3089F070F0CD3089F0209A28982D
-:1009400010C0219A29980DC0229A2A980AC0239A89
-:100950002B9807C0529A01C0539A5B9802C03E9AE6
-:100960004698E0EAEA95F1F78FB179995AC092E09A
-:1009700081708D25892B7C9B02C090E001C094E0A2
-:10098000892B7D9B02C090E001C098E0892B7E9B63
-:1009900002C090E001C090E1892B9FB19095991F12
-:1009A0009927991F9295990F907E892B0FC080915E
-:1009B000000181114BC080E40E94C30380930001B9
-:1009C000882389F1B12C0E94E5038B2DF8019081D9
-:1009D000981719F08083C09201010E9408042196A3
-:1009E0000F5F1F4FCE30D10509F079CF8091010103
-:1009F000882371F1815080930101882339F08FE9B8
-:100A00009FE00197F1F700C0000022C0A4E4B1E02C
-:100A1000E6E3F1E081918D9391E0E434F907D1F7B9
-:100A200017C090E0A5CF83E10E94ED038093000101
-:100A30008111C8CF81E40E94C3038093000181111A
-:100A4000C1CF0E94FE03B82EB094BDCF80E0BECFD0
-:100A50000E94FE0281E0DF91CF911F910F91FF90E4
-:100A6000EF90DF90CF90BF900895E82FF0E0EC5B1F
-:100A7000FE4F808108950895089596E0799FF001D2
-:100A8000112494E5899FE00DF11D1124E60FF11D5D
-:100A9000EE0FFF1FEE5EFE4F859194910895880F33
-:100AA000991F86579040FC01859194910895880F75
-:100AB000991F865F9E4FFC018591949108950F9335
-:100AC0001F93CF93DF93EC01811520E3920730F55C
-:100AD000811530E2930708F0B1C08B3B910588F493
-:100AE000883A910508F058C0853A910508F049C048
-:100AF0008430910508F043C08130910509F4C2C1EA
-:100B0000BEC18F3F910509F0D0F5803F910508F0F7
-:100B100092C0805E9109089790F1B1C1C11581E53D
-:100B2000D807A8F4C23090E5D90708F09FC0C115D6
-:100B300020E5D20709F486C008F092C0C11580E410
-:100B4000D80708F09CC18E011127106CDCC1C115BB
-:100B500090E8D90758F4C11520E7D20708F08BC1F7
-:100B6000C11530E6D30708F423C189C1C11580E956
-:100B7000D80708F084C18E011F70106AC4C18E01AD
-:100B8000C2C1853A910509F480C1863A910509F4FC
-:100B90007FC103E810E4B7C1883A910509F47BC12D
-:100BA000893A910509F47AC18A3A910509F479C123
-:100BB0008B3A910509F478C18C3A910509F477C113
-:100BC0008D3A910509F476C1803B910509F475C110
-:100BD0008E3A910509F474C18F3A910509F473C1F5
-:100BE000813B910509F472C1823B910509F471C101
-:100BF000833B910509F470C1843B910509F46FC1F1
-:100C0000853B910509F46EC1863B910509F46DC1E0
-:100C1000873B910509F46CC1883B910509F46BC1D0
-:100C2000893B910509F46AC18A3B910509F069C1C4
-:100C30000AE216E468C18C01106565C19F700E94CC
-:100C4000570562C10E9419149FEF24E33CE09150C4
-:100C500020403040E1F700C000000E94621C53C1F8
-:100C60008091D30181608093D3014DC10E940A1EFF
-:100C7000811102C00E94F01D0E94271E90E09093F7
-:100C8000F2018093F101C23080E5D80721F4809110
-:100C9000F101816086C0C43090E5D90721F48091CC
-:100CA000F10182607EC0C63020E5D20721F4809138
-:100CB000F101846076C0C83030E5D30719F4809123
-:100CC000F10127C0CA3080E5D80721F48091F101F5
-:100CD000806167C0CC3090E5D90721F48091F101A3
-:100CE00080625FC0CE3020E5D20721F48091F1010F
-:100CF000806457C0C03130E5D30721F48091F10101
-:100D000080684FC0C23180E5D80729F48091F10195
-:100D10008460886046C0C33090E5D90721F4809193
-:100D2000F1018E7F3EC0C53020E5D20721F48091CD
-:100D3000F1018D7F36C0C73030E5D30721F48091B3
-:100D4000F1018B7F2EC0C93080E5D80719F480915E
-:100D5000F10126C0CB3090E5D90721F48091F10153
-:100D60008F7E1FC0CD3020E5D20721F48091F101A4
-:100D70008F7D17C0CF3030E5D30721F48091F1018A
-:100D80008F7B0FC0C13180E5D80721F48091F1013C
-:100D90008F7707C0C331D04531F48091F1018B7F4B
-:100DA000877F8093F1018091F1010E942B1EABC0DF
-:100DB0008D2F99278F70992781309105E9F48E0145
-:100DC000037011279C0102C0220F331F0A95E2F71E
-:100DD00089011C68CE01E4E0880F991FEA95E1F7CC
-:100DE00088279370082B192BF3E0CC0FDD1FFA95A1
-:100DF000E1F7C076DD272CC08230910529F41C2F45
-:100E00000027016F106A7FC08330910561F4CE0125
-:100E10008370992701E010E002C0000F111F8A952E
-:100E2000E2F71C680EC084309105A9F4CE018370EE
-:100E3000992701E010E002C0000F111F8A95E2F728
-:100E40001A6863E0CC0FDD1F6A95E1F7C07ED770AA
-:100E50000C2B1D2B58C08530910529F41C2F002721
-:100E6000046F106A50C0069709F04DC0CF71DD279E
-:100E70001C2F002702C08E011F70106244C000E0CA
-:100E800010E041C001E010E03EC001E810E43BC0CA
-:100E900002E810E438C002EE14E435C009EE14E4B0
-:100EA00032C00AEE14E42FC005EB14E42CC006EBAC
-:100EB00014E429C007EB14E426C00CEC14E423C0AE
-:100EC0000DEC14E420C003E815E41DC00AE815E4A5
-:100ED0001AC002E915E417C004E915E414C001E2E0
-:100EE00016E411C003E216E40EC004E216E40BC0DF
-:100EF00005E216E408C006E216E405C007E216E4BF
-:100F000002C000E014E4C801DF91CF911F910F915E
-:100F1000089596E0799FF001112494E5899FE00DF2
-:100F2000F11D1124E60FF11DEE0FFF1FEE5EFE4FC7
-:100F300085919491803E9105E0F4803C910558F5AF
-:100F40008133910509F46FC048F48932910509F4A1
-:100F500063C08A32910509F46DC072C0893391056E
-:100F6000E9F082389105D1F08533910509F44DC03F
-:100F700067C0833E910581F138F4803E9105B9F058
-:100F8000823E9105D9F05CC0863E910561F1873EB5
-:100F90009105A1F155C00E944F0508952091F101DE
-:100FA00020FD02C021FF4CC080EE90E049C080913E
-:100FB000F10180FFF9CF89E390E042C08091F10117
-:100FC00082FF0EC08091F10184FF03C080E090E0B9
-:100FD00037C083EE90E034C08091F10182FFF2CF00
-:100FE00082EE90E02DC08091F10183FF0BC08091D3
-:100FF000F10184FDEBCF87EE90E022C08091F101FA
-:1010000083FFF5CF86EE90E01BC08091F10185FF54
-:1010100007C089E290E014C08091F10185FFF9CF0B
-:1010200085E390E00DC08091F10186FF07C08AE260
-:1010300090E006C08091F10186FFF9CF81E390E056
-:101040000E945F05089508950C9423088091620121
-:101050000895CF93DF9300D01F92CDB7DEB72091D4
-:10106000E801243019F523E029839B838A832093A8
-:10107000E9008FEF9091E800815095FD06C095ED55
-:101080009A95F1F700008111F5CF8091E80085FF76
-:101090000DC040E050E063E070E0CE0101960E9498
-:1010A0008A0A8091E8008E778093E8000F900F9075
-:1010B0000F90DF91CF910895CF93DF9300D01F92CF
-:1010C000CDB7DEB72091E801243021F522E0298355
-:1010D0009B838A8383E08093E9008FEF9091E800FF
-:1010E000815095FD06C095ED9A95F1F700008111AC
-:1010F000F5CF8091E80085FF0DC040E050E063E04F
-:1011000070E0CE0101960E948A0A8091E8008E77F5
-:101110008093E8000F900F900F90DF91CF9108958A
-:101120002091E8012430F1F422E02093E9002FEF30
-:101130003091E800215035FD06C035ED3A95F1F7C4
-:1011400000002111F5CF2091E80025FF0BC040E001
-:1011500050E065E070E00E948A0A8091E8008E7796
-:101160008093E8000895CF93DF93EC018091E8012C
-:10117000843009F046C090910C019923D9F09091E8
-:101180000D019923B9F08093E9008FEF9091E80069
-:10119000815095FD06C095E19A95F1F70000811107
-:1011A000F5CF8091E80085FF2CC040E050E060E181
-:1011B00070E017C081E08093E9008FEF9091E80024
-:1011C000815095FD06C095ED9A95F1F700008111CB
-:1011D000F5CF8091E80085FF14C040E050E068E062
-:1011E00070E0CE010E948A0A8091E8008E77809399
-:1011F000E80080E1FE01A2E5B1E001900D928A9540
-:10120000E1F7DF91CF9108958091E701811109C045
-:101210000E941C0C0E94790C8091E20084608093F3
-:10122000E20008951092E7010895089508950C943E
-:10123000D01B42E061EC81E00E94960B42E061EC41
-:1012400082E00E94960B42E061EC83E00E94960BE4
-:1012500042E161EC84E00C94960B8091EA018330CA
-:1012600009F455C030F4813071F0823009F48EC039
-:1012700008958A3009F47AC08B3009F460C089304F
-:1012800009F09CC020C08091E901813A09F096C024
-:101290008091E800877F8093E8008091ED01909134
-:1012A000EE01892B21F060E080E090E003C060E176
-:1012B00082E591E070E00E94D30A8091E8008B778C
-:1012C0008093E80008958091E901813209F076C0A9
-:1012D0008091ED019091EE01009719F0039709F0CC
-:1012E0006DC08091E800877F8093E8008091E800DE
-:1012F00082FD05C08091E8018111F8CF5FC0809127
-:10130000F100809362018091E8008B7753C0809157
-:10131000E901813A09F052C08091ED019091EE010E
-:10132000892B09F04BC08091E800877F8093E8000B
-:101330008091E80080FFFCCF80910C0136C0809145
-:10134000E9018132D9F58091ED019091EE01892B6F
-:10135000A9F58091E800877F8093E8000E94CB0B7D
-:101360008091EB0180930C010C9419148091E90198
-:10137000813221F58091E800877F8093E8000E9408
-:10138000CB0B8091EC018093630108958091E9017A
-:10139000813AA1F48091E800877F8093E8008091F2
-:1013A000E80080FFFCCF809163018093F100809181
-:1013B000E8008E778093E8000C94CB0B089584B7F7
-:1013C000877F84BF88E10FB6F89480936000109205
-:1013D00060000FBE90E080E80FB6F8948093610043
-:1013E000909361000FBE0E94650F0E941C0C0E942A
-:1013F000790C8091E20084608093E20078940E94EE
-:10140000F40E0E94670F82E091E00E94110F80911C
-:10141000E801853069F40E94901B8091E6018823E1
-:10142000B1F30E94BB1B882391F30E94740AEFCF93
-:101430000E946D0FECCF292F332723303105A9F0FF
-:101440006CF42130310509F442C02230310509F035
-:1014500043C08DE690E02EE333E042C021323105F7
-:10146000C9F02232310519F137C099278130910531
-:1014700041F08230910541F0892B71F5EAE3F3E008
-:1014800005C0E2E2F3E002C0EAE0F3E0849190E01C
-:101490009F0126C0643000F5E62FF0E0EE0FFF1F3D
-:1014A000EE5DFE4F2081318189E090E019C064300B
-:1014B00098F4E62FF0E0DF01AA0FBB1FA65EBE4F37
-:1014C0002D913C91EA5EFE4F808190E009C082E15F
-:1014D00090E02BEA33E004C080E090E020E030E0D0
-:1014E000FA0131832083089580E189BD82E189BDBD
-:1014F00009B400FEFDCF8091D8008F7D8093D80085
-:101500008091E00082608093E0008091E00081FDA6
-:10151000FCCF0895CF92DF92EF92FF920F931F932B
-:10152000CF93DF937C018B01EA010E94EC0B8111C8
-:1015300031C0209731F088819981081B190BE80E82
-:10154000F91EC12CD12C0115110519F18091E8006B
-:1015500085FD14C08091E8008E778093E800209785
-:1015600041F0888199818C0D9D1D9983888385E048
-:1015700011C00E94EC0B882331F30CC0F70181915C
-:101580007F018093F10001501109FFEFCF1ADF0AAC
-:10159000DACF80E0DF91CF911F910F91FF90EF9014
-:1015A000DF90CF9008952091EF013091F001261740
-:1015B000370748F06115710539F42091E8002E775E
-:1015C0002093E80001C0B901FC0120E0611571051C
-:1015D000B9F18091E801882309F440C0853009F40D
-:1015E0003FC08091E80083FD3DC08091E80082FF0C
-:1015F00006C08091E80082FF26C080E008958091B7
-:10160000E80080FFE3CF2091F3008091F20090E0AA
-:10161000922B6115710551F08830910538F42191B4
-:101620002093F100615071090196F3CF21E00897F2
-:1016300009F020E08091E8008E778093E800C6CF23
-:101640002111C7CFD6CF8091E801882339F08530AA
-:1016500039F08091E80083FFCCCF04C082E0089588
-:1016600083E0089581E008952091EF013091F00129
-:101670002617370748F06115710539F42091E80005
-:101680002E772093E80001C0B901FC0120E061152C
-:101690007105C1F18091E801882309F441C08530CA
-:1016A00009F440C08091E80083FD3EC08091E800CD
-:1016B00082FF06C08091E80082FF27C080E0089585
-:1016C0008091E80080FFE3CF2091F3008091F20049
-:1016D00090E0922B6115710559F08830910540F426
-:1016E00024912093F1003196615071090196F2CF57
-:1016F00021E0089709F020E08091E8008E77809340
-:10170000E800C5CF2111C6CFD5CF8091E80188234D
-:1017100039F0853039F08091E80083FFCBCF04C0E9
-:1017200082E0089583E0089581E00895982F97302E
-:1017300058F59093E900981739F07091EC002091DA
-:10174000ED005091F00003C0242F762F50E021FFD0
-:1017500019C03091EB003E7F3093EB003091ED00EB
-:101760003D7F3093ED003091EB0031603093EB0022
-:101770007093EC002093ED005093F0002091EE0068
-:1017800027FF07C09F5FD3CF8F708093E90081E070
-:10179000089580E008958091E90187FD05C080915A
-:1017A000E80080FF0EC012C08091E80082FD05C0F5
-:1017B0008091E8018111F8CF08958091E8008B773E
-:1017C00008C08091E8018111EACF08958091E80076
-:1017D0008E778093E80008958091E4009091E50071
-:1017E00045E62091EC0020FF21C02091E80020FD7B
-:1017F00021C02091E801222389F0253089F0209131
-:10180000EB0025FD0FC02091E4003091E500281782
-:10181000390739F3415041F0C901E3CF82E008951F
-:1018200083E0089581E0089584E008952091E80020
-:1018300022FFDFCF80E008950E948A0C0E94920C64
-:10184000E0EEF0E0808181608083E8EDF0E080816F
-:101850008F77808319BCA7EDB0E08C918E7F8C933D
-:1018600080818F7E80831092E70108950F931F93EC
-:10187000CF93DF930E948A0C0E94920CC8EDD0E0B7
-:1018800088818F77888388818068888388818F7D2D
-:10189000888319BC1092E8011092E4011092E601CD
-:1018A0001092E50100EE10E0F80180818B7F8083CB
-:1018B00088818160888342E060E080E00E94960B2E
-:1018C000E1EEF0E080818E7F8083E2EEF0E08081C7
-:1018D00081608083808188608083F80180818E7F31
-:1018E0008083888180618883DF91CF911F910F91E0
-:1018F0000895E8EDF0E080818F7E8083E7EDF0E0F1
-:1019000080818160808384E082BF81E08093E701F1
-:101910000C94360CE8EDF0E080818E7F808310928D
-:10192000E20008951092DA001092E10008951F92EB
-:101930000F920FB60F9211242F933F934F935F9303
-:101940006F937F938F939F93AF93BF93EF93FF9387
-:101950008091E10082FF0BC08091E20082FF07C00E
-:101960008091E1008B7F8093E1000E94F30E8091D3
-:10197000DA0080FF1FC08091D80080FF1BC08091DB
-:10198000DA008E7F8093DA008091D90080FF0DC04D
-:1019900080E189BD82E189BD09B400FEFDCF81E00F
-:1019A0008093E8010E94040905C019BC1092E80167
-:1019B0000E9412098091E10080FF19C08091E2002D
-:1019C00080FF15C08091E2008E7F8093E2008091BD
-:1019D000E20080618093E2008091D8008062809371
-:1019E000D80019BC85E08093E8010E941609809117
-:1019F000E10084FF30C08091E20084FF2CC080E1D0
-:101A000089BD82E189BD09B400FEFDCF8091D80077
-:101A10008F7D8093D8008091E1008F7E8093E100DC
-:101A20008091E2008F7E8093E2008091E2008160ED
-:101A30008093E2008091E401882311F084E007C0E4
-:101A40008091E30087FF02C083E001C081E08093C2
-:101A5000E8010E9417098091E10083FF29C080916D
-:101A6000E20083FF25C08091E100877F8093E10041
-:101A700082E08093E8011092E4018091E1008E7F82
-:101A80008093E1008091E2008E7F8093E20080915C
-:101A9000E20080618093E20042E060E080E00E942A
-:101AA000960B8091F00088608093F0000E941509E9
-:101AB000FF91EF91BF91AF919F918F917F916F9126
-:101AC0005F914F913F912F910F900FBE0F901F90FC
-:101AD00018951F920F920FB60F9211242F933F93D8
-:101AE0004F935F936F937F938F939F93AF93BF9326
-:101AF000CF93EF93FF93C091E900CF708091EC00FA
-:101B00001092E9008091F000877F8093F000789434
-:101B10000E94A50D1092E9008091F00088608093EA
-:101B2000F000C093E900FF91EF91CF91BF91AF9189
-:101B30009F918F917F916F915F914F913F912F91E5
-:101B40000F900FBE0F901F9018951F93CF93DF93A8
-:101B5000CDB7DEB7AA970FB6F894DEBF0FBECDBFE4
-:101B6000E9EEF1E08091F100819321E0E13FF2079D
-:101B7000C9F70E942D098091E80083FF1CC12091C4
-:101B8000E9013091EA01832F90E08A30910508F055
-:101B900012C1FC01EA5AFF4F0C94A323203881F0B4
-:101BA000223809F008C18091ED018F708093E9001F
-:101BB0008091EB0085FB882780F91092E90006C030
-:101BC0008091E5019091E601911182609091E80089
-:101BD000977F9093E8008093F1001092F100C5C0C8
-:101BE000822F8D7F09F0E7C0222319F0223061F0A7
-:101BF000E2C08091EB01813009F0DDC0333009F0A3
-:101C000080E08093E60128C08091EB01811124C01F
-:101C10002091ED012F7009F4CEC02093E90080914E
-:101C2000EB0080FF19C08091EB00333011F480622B
-:101C300011C080618093EB0081E090E0022E01C032
-:101C4000880F0A94EAF78093EA001092EA008091E4
-:101C5000EB0088608093EB001092E9008091E8002F
-:101C6000877F86C02111A7C01091EB011F7780915B
-:101C7000E3008078812B8093E3008091E800877FE8
-:101C80008093E8000E94CB0B8091E80080FFFCCF9E
-:101C90008091E30080688093E300112311F083E0DA
-:101CA00001C082E08093E80186C02058223008F00D
-:101CB00082C08091EB019091EC018C3D23E0920772
-:101CC00079F583E08A838AE289834FB7F894DE014D
-:101CD000139620E03EE051E2E32FF0E050935700EE
-:101CE000E49120FF03C0E295EF703F5FEF708E2F0D
-:101CF00090E0EA3010F0C79601C0C0968D939D9396
-:101D00002F5F243149F74FBF8091E800877F809390
-:101D1000E8006AE270E0CE0101960E94D30A14C086
-:101D2000AE014F5F5F4F6091ED010E941B0A00976B
-:101D300009F441C02091E800277F2093E800BC010E
-:101D400089819A810E94340B8091E8008B7780937F
-:101D5000E80031C0203879F58091E800877F8093D2
-:101D6000E8008091E4018093F1008091E8008E7793
-:101D70008093E8000E94CB0B1EC021111CC09091E3
-:101D8000EB019230C0F48091E800877F8093E800F7
-:101D90009093E4010E94CB0B8091E401811104C077
-:101DA0008091E30087FF02C084E001C081E080935E
-:101DB000E8010E9419098091E80083FF0AC0809120
-:101DC000E800877F8093E8008091EB008062809339
-:101DD000EB00AA960FB6F894DEBF0FBECDBFDF9121
-:101DE000CF911F9108950895CF938091E8018823A2
-:101DF000B1F08091E9008F709091EC0090FF02C0EB
-:101E000090E801C090E0C92FC82B1092E9008091A2
-:101E1000E80083FD0E94A50DCF70C093E900CF912B
-:101E2000089590936901809368010895E091680195
-:101E3000F0916901309721F00190F081E02D099433
-:101E400080E00895E0916801F0916901309721F0F8
-:101E50000280F381E02D09940895E0916801F091EA
-:101E60006901309721F00480F581E02D09940895EF
-:101E700020916601309167018217930771F090936A
-:101E8000670180936601E0916801F09169013097E4
-:101E900021F00680F781E02D0994089520916401D6
-:101EA000309165018217930771F0909365018093DB
-:101EB0006401E0916801F0916901309721F000849C
-:101EC000F185E02D0994089508950C94640F0E9403
-:101ED000FF1B0E9430040C94C51CCF92DF92EF923E
-:101EE000FF920F931F93CF93DF93CDB7DEB72B975E
-:101EF0000FB6F894DEBF0FBECDBF0E9448043BE68C
-:101F0000E32E31E0F32E00E010E0C02E802F0E947F
-:101F10003505F701D1907F01D826B1F40F5F1F4F2F
-:101F20000E30110591F78FEF89838A831B820E94FF
-:101F3000081C8160782F9D838C8349815A816B8135
-:101F40008D810E94101041C09091D30191FF04C077
-:101F50008B870E943B058B8520E030E04D2D50E0C3
-:101F6000922FBA01022E02C0759567950A94E2F786
-:101F700060FF25C02E83CF82EE24E394F12C02C0B3
-:101F8000EE0CFF1C9A95E2F790E08E219F2121E054
-:101F9000892B09F420E028870E94081C8160782F93
-:101FA0009A8789874E815F8168858A850E94101093
-:101FB000F801E559FE4F80818E25808306C02F5F92
-:101FC0003F4F2630310561F6A9CF0E94A91F10911D
-:101FD0006A010E94160F1817A1F00E94160F809335
-:101FE0006A012B960FB6F894DEBF0FBECDBFDF910E
-:101FF000CF911F910F91FF90EF90DF90CF900C94B5
-:1020000024082B960FB6F894DEBF0FBECDBFDF912C
-:10201000CF911F910F91FF90EF90DF90CF90089597
-:10202000CF93DF93CDB7DEB72B970FB6F894DEBF13
-:102030000FBECDBF4F83588769877A878B87DE01B4
-:10204000119686E0FD0111928A95E9F785E0FE017F
-:10205000379601900D928A95E1F749815A816B81FB
-:102060007C818D819E810E94E9162B960FB6F89493
-:10207000DEBF0FBECDBFDF91CF9108950895CF93FE
-:10208000C82F882309F4C1C0823859F40E94160F62
-:1020900081FDBBC089E30E94301A0E94071B89E3BF
-:1020A0000CC0833879F40E94160F80FDAEC083E522
-:1020B0000E94301A0E94071B83E50E94701ACF917C
-:1020C0000C94071B843859F40E94160F82FD9DC0A2
-:1020D00087E40E94301A0E94071B87E4EECF8CEF42
-:1020E0008C0F813A48F48C2F0E94D52181118DC02C
-:1020F0008C2F0E94301AE3CF80E28C0F883048F496
-:10210000C77081E001C0880FCA95EAF70E94B41A2F
-:10211000D6CF8BE58C0F833078F4C53A29F0C63AD8
-:1021200031F482E890E005C081E890E002C083E8E5
-:1021300090E0CF910C94380F88E58C0F833108F034
-:1021400064C0C83A39F1C93A41F1CA3A49F1CB3AC7
-:1021500051F1CC3A59F1CD3A61F1C03B69F1CE3A37
-:1021600071F1CF3A79F1C13B81F1C23B89F1C33BB7
-:1021700091F1C43B99F1C53BA1F1C63BA9F1C73B25
-:10218000B1F1C83BB9F1C93BC1F1CA3BC9F58AE21B
-:1021900092E038C082EE90E035C089EE90E032C027
-:1021A0008AEE90E02FC085EB90E02CC086EB90E0AB
-:1021B00029C087EB90E026C08CEC90E023C08DEC2A
-:1021C00090E020C083E891E01DC08AE891E01AC049
-:1021D00082E991E017C084E991E014C081E292E0C5
-:1021E00011C083E292E00EC084E292E00BC085E26F
-:1021F00092E008C086E292E005C087E292E002C069
-:1022000080E090E0CF910C944E0FCF9108958823F9
-:1022100009F44BC0823859F40E94160F81FF45C063
-:1022200089E30E94301A0E94071B89E30CC083389F
-:1022300071F40E94160F80FF38C083E50E94301AA7
-:102240000E94071B83E50E94701A0C94071B8438B8
-:1022500059F40E94160F82FF28C087E40E94301AAA
-:102260000E94071B87E4EFCF9CEF980F913A58F339
-:1022700090E2980F983050F4877091E001C0990F68
-:102280008A95EAF7892F0E94BA1ADFCF9BE5980F4B
-:10229000933020F480E090E00C94380F885A83311A
-:1022A00020F480E090E00C944E0F0895882321F0F4
-:1022B0000E94B41A0C94071B0895882321F00E94F1
-:1022C000BA1A0C94071B08958F929F92AF92BF92F7
-:1022D000CF92DF92EF92FF920F931F93CF93DF93F2
-:1022E00000D000D01F92CDB7DEB77C0185E0F701AA
-:1022F000DE01119601900D928A95E1F7F701D080E9
-:1023000011810281B580B2942FE0B2222381348101
-:10231000232B39F01F3F39F481E0FFEFDF1203C0B8
-:1023200003C081E001C080E080FD5DC20E94CB1946
-:10233000882319F082E00E940E1AC7010E943E1005
-:10234000D9821A8369817A81802F0E949119182F6E
-:10235000C92E0E9445190E94181801110E94D11A15
-:102360000E94291A882379F0002369F080E2810F06
-:10237000883048F082E00E940E1A0E94291ADD245B
-:10238000D394D82601C0D12CEC2DE295EF70F0E06B
-:10239000E05AFF4F0C94A3238C2D807F9C2D9F70BF
-:1023A000B92E882319F0B29490EFB922002389F056
-:1023B000BB2009F4DAC180E2810F883020F48B2D34
-:1023C0000E94B41A03C08B2D0E94C41A0E94071BDE
-:1023D000CCC1812F0E940711BB2009F4E0C1105E1F
-:1023E0008B2D183018F40E94BA1A02C00E94CA1A23
-:1023F0000E94071BD4C18C2D807F9C2D9F70A92E1D
-:10240000803219F0A29480EFA822112319F0113024
-:1024100049F132C0002391F0BB2091F181E0B81264
-:1024200004C08A2D0E94E41ABAC192E0B91228C0F1
-:102430000E94ED1A8A2D0E94981922C0BB2079F0C3
-:10244000E1E0BE1208C00E94B11A8A2109F4A7C1B6
-:102450000E949B1904C0F2E0BF1609F4A0C10E94BB
-:10246000ED1A12C0002329F081E08B1508F497C102
-:1024700007C0B11094C108C0002321F0B11075C18C
-:102480008A2DEFC0B11078C18A2DF1C02C2D269570
-:102490002695237030E02115310521F021303105DA
-:1024A00061F07DC1002321F0812F9C2D937002C02B
-:1024B00080E090E00E94380F72C1002321F0812F4C
-:1024C0009C2D937002C080E090E00E944E0F67C187
-:1024D000812F002319F00E94B11E02C00E94191F13
-:1024E0000E949E1F5CC18C2D837009F04FC00111AA
-:1024F00056C1212F229526952770220F220F812F5A
-:102500008F70882E912CA12CB12C022E04C0880C27
-:10251000991CAA1CBB1C0A94D2F714FF10C06FE0D0
-:1025200070E080E090E004C0660F771F881F991F5D
-:102530002A95D2F7609570958095909503C060E0DC
-:1025400070E0CB012C2D269526952370422F50E06C
-:102550004230510569F04330510589F068297929E5
-:102560008A299B294130510571F00E943D1817C1FD
-:10257000682979298A299B290E94571810C10E942D
-:102580003D18C501B4010E94231809C1002319F0A8
-:102590008C2D817001C08695882309F400C1212FFC
-:1025A000229526952770220F220F812F8F70882E5B
-:1025B000912CA12CB12C022E04C0880C991CAA1CB1
-:1025C000BB1C0A94D2F714FF10C06FE070E080E0EB
-:1025D00090E004C0660F771F881F991F2A95D2F7D5
-:1025E000609570958095909503C060E070E0CB0198
-:1025F0002C2D269526952370422F50E04230510510
-:1026000069F04330510589F0682979298A299B2985
-:102610004130510571F00E941119C1C06829792912
-:102620008A299B290E942B19BAC00E941119C50141
-:10263000B4010E94F718B3C0412F50E0FA01E05EE8
-:10264000F109E531F10508F08BC0E059FF4F0C941A
-:10265000A3231F708C2D8F71002331F00E949018DE
-:10266000812F0E9456119BC00E94B118812F0E9499
-:102670005D1195C0002339F0B11091C08C2D8F7180
-:102680000E94D6188CC091E09B1508F488C0F6CF44
-:10269000002339F08C2D8F710E94901880C0002388
-:1026A000C9F38C2D8F710E94B11879C0002329F0D5
-:1026B0008C2D8F710E947B1872C00E9471186FC0A0
-:1026C0000023C9F00E9495190E94BA1A0E94C719E6
-:1026D000843029F40E94071A8C2D8F7171C0E1E0BB
-:1026E000EB1508F480C01C2D1F71812F0E949018DB
-:1026F00063E0812F0EC00E9495190E94B41AF1E088
-:10270000FB15D0F40E94071A0E949B1964E08C2DDF
-:102710008F710F900F900F900F900F90DF91CF91CE
-:102720001F910F91FF90EF90DF90CF90BF90AF90EF
-:102730009F908F900C94F71981E00F900F900F905D
-:102740000F900F90DF91CF911F910F91FF90EF901D
-:10275000DF90CF90BF90AF909F908F900C940E1A07
-:10276000002339F0BB2009F495CF812F0E943F1040
-:1027700016C0BB2009F495CF812F0E9407110FC00E
-:102780004C2D4F70612FC7010E94A2020E94961724
-:1027900006C04C2D4F70612FC7010E943C05DD2003
-:1027A00011F10E94C71980FD1EC0F70112820E941C
-:1027B000C1190E949018C7010E9464110E94C1199A
-:1027C0000F900F900F900F900F90DF91CF911F916E
-:1027D0000F91FF90EF90DF90CF90BF90AF909F90C0
-:1027E0008F900C94B1180F900F900F900F900F9046
-:1027F000DF91CF911F910F91FF90EF90DF90CF90DD
-:10280000BF90AF909F908F9008950E94D11A0E9420
-:10281000E11A0E94A31A0E94071B0E944A200E94EC
-:102820009E1F80E090E00E94380F80E090E00C94C2
-:102830004E0F0E94C11A0C9405140E948619292F6C
-:1028400022952F7030E02C3031054CF42A303105C0
-:102850006CF42250310922303105B0F407C02C301D
-:10286000310571F02F30310559F00EC0803F31F045
-:1028700018F4803E48F402C0843F31F481E00895AA
-:1028800093FB882780F9089580E00895CF93DF9324
-:1028900000D000D01F92CDB7DEB70F900F900F90F1
-:1028A0000F900F90DF91CF910895CF93DF9300D0D9
-:1028B00000D000D0CDB7DEB726960FB6F894DEBFB5
-:1028C0000FBECDBFDF91CF9108951F93CF93DF93BC
-:1028D000C091790116E080917A01C81799F0D0E093
-:1028E0001C9FF0011D9FF00D1124E558FE4F408103
-:1028F000518162817381848195810E945514219652
-:10290000C770E9CFDF91CF911F9108954091AB013E
-:102910005091AC016091AD017091AE018091AF0119
-:102920009091B0010C945514CF938091B001829591
-:102930008F7009F05FC08091AD01882309F45AC0FF
-:1029400020917901A0917A016091AB017091AC0165
-:102950008091AE019091AF0131E06F3F09F030E01E
-:10296000B32FC6E02A1709F445C0009721F07F3F36
-:1029700021F44B2F03C041E001C040E030E040FDB6
-:1029800035C0C29FF001C39FF00D1124E558FE4FE2
-:10299000418174132BC04081641328C042814111CE
-:1029A00025C0438154814817590710F441505109FB
-:1029B000481B590B483C5105C8F48091B0018F70F9
-:1029C00080618093B00186E0829FF001839FF00DCB
-:1029D0001124E058FE4F80818F70806180838BEAE4
-:1029E00091E00E946411CF910C9465142F5F3F4FCA
-:1029F0002770B8CFCF910895CF92DF92EF92FF92D8
-:102A00000F931F93CF93DF93CDB7DEB762970FB6C7
-:102A1000F894DEBF0FBECDBF8C0185E0F801DE016A
-:102A20001D9601900D928A95E1F7D8014C9111966F
-:102A30005C91119712966C9112971396ED90FC9001
-:102A400014977091AB01E091AC012091AE013091EF
-:102A5000AF012115310531F0EF3F31F481E07F3FC7
-:102A600019F403C081E001C080E0B82FB170CB2E13
-:102A700080FD6CC1D090AD01DD2009F4F5C0F0916E
-:102A8000B001E216F30638F0C701821B930B883CB5
-:102A9000910548F09BC0209530952E0D3F1D283C98
-:102AA000310508F093C08F2F807F09F052C0E513E5
-:102AB00014C0741312C0D62E61110FC0FF70F061E4
-:102AC000F093B0010E9486148BEA91E00E94641199
-:102AD0008091B001F80185836CC1EF2831F05F3F30
-:102AE00031F481E04F3F19F403C081E001C080E080
-:102AF00080FD03C081E0862701C080E0F82FF170DF
-:102B0000FF2E80FF1CC08091790120917A0136E070
-:102B1000821709F428C190E0389FF001399FF00D29
-:102B20001124E558FE4F7181571306C07081471379
-:102B300003C07281671303C001968770E9CFD62E58
-:102B4000662309F436C18091B00181608093B001A1
-:102B500053C0E51308C0741306C0611104C0D80146
-:102B60001596FC93AEC04D875E878D859E856A8BDA
-:102B70000E941D146A89882329F1D62E662311F13B
-:102B80002091B001822F82958F7090E002970CF413
-:102B900060C08091AB019091AC0198878F831986BA
-:102BA000FB86EA862C87CE01079651C0E51731F1E6
-:102BB0004D875E878D859E856A8B0E941D146A896C
-:102BC00081112EC0C8010E946411A4C08F2F807F84
-:102BD00069F77E2DF98AE88A89890E9446148BEA72
-:102BE00091E00E946411EBEAF1E086E0DF011D92C2
-:102BF0008A95E9F70E948614D12CDBC07413D8CFD4
-:102C00006111D6CFD8011596FC93C8010E946411BA
-:102C1000EBEAF1E086E0DF011D928A95E9F7C9C091
-:102C2000D62E662379F22091B001822F82958F7083
-:102C300090E0029774F08091AB019091AC019A837F
-:102C400089831B82FD82EC822E83CE0101960E9435
-:102C5000641186E0F801ABEAB1E001900D928A952B
-:102C6000E1F70E9494146FC0E216F30628F0C70142
-:102C7000821B930B9C0104C0209530952E0D3F1DA7
-:102C8000283C310508F052C0D62E662309F49ACFAD
-:102C9000E5132CC074132AC08091B00180FD1DC0C3
-:102CA000982F92959F70C9F0D80115968C9315971F
-:102CB0009F3039F09F5F9295907F8F70892B15968A
-:102CC0008C93C8010E94641186E0F801ABEAB1E080
-:102CD00001900D928A95E1F736C086E0F801ABEAE3
-:102CE000B1E001900D928A95E1F763C04D875E8750
-:102CF0008D859E850E941D14882379F086E0F80159
-:102D0000ABEAB1E001900D928A95E1F70E9494142C
-:102D10000E948614DD24D3944CC08091B001816060
-:102D20008093B001C8010E94641143C07E2DF98ACE
-:102D3000E88A89890E944614EBEAF1E086E0DF0127
-:102D40001D928A95E9F70E94861433C0662309F420
-:102D500039CF4D875E878D859E850E941D148823FF
-:102D600009F430CFCBCF4D875E878D859E850E943D
-:102D70008619292F22952F7030E0223031052CF44E
-:102D80009F7041F0811106C00CC0243031052CF435
-:102D90009F7049F4805E883020F0C8010E9464