diff --git a/.gitignore b/.gitignore index bae2658b00..8b8c45169d 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ +keyboard/planck/dfu-programmer.exe .dep *.o *.eep @@ -12,3 +13,11 @@ tags *~ build/ *.bak +.vagrant/ +.DS_STORE + +# Eclipse Settings +.cproject +.project +.settings/ + diff --git a/1-setup-path-win.bat b/1-setup-path-win.bat new file mode 100644 index 0000000000..f612d0f4a7 --- /dev/null +++ b/1-setup-path-win.bat @@ -0,0 +1,77 @@ +@SETLOCAL ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION +@ECHO OFF +SET CMDLINERUNSTR=%SystemRoot%\system32\cmd.exe + +SET NEWPATH1="C:\MinGW\msys\1.0\bin" +SET NEWPATH2="C:\MinGW\bin" + +:: Make sure we're running with administrator privileges +NET SESSION >nul 2>&1 +IF ERRORLEVEL 1 ( + ECHO FAILED. Run this script with administrator privileges. + GOTO ExitBatch +) + +:: Make sure the second path exists. The first path won't be created until the second script is run +IF NOT EXIST !NEWPATH2! (ECHO Path not found: %NEWPATH2% && GOTO ExitBatch) + +:: Add paths +CALL :AddPath %NEWPATH1% +CALL :AddPath %NEWPATH2% + +:: Branch to UpdateEnv if we need to update +IF DEFINED UPDATE (GOTO UpdateEnv) + +GOTO ExitBatch + +:: ----------------------------------------------------------------------------- + +:UpdateEnv +ECHO Making updated PATH go live . . . +REG delete HKCU\Environment /F /V TEMPVAR > nul 2>&1 +setx TEMPVAR 1 > nul 2>&1 +REG delete HKCU\Environment /F /V TEMPVAR > nul 2>&1 +IF NOT !cmdcmdline! == !CMDLINERUNSTR! (CALL :KillExplorer) +GOTO ExitBatch + +:: ----------------------------------------------------------------------------- + +:ExitBatch +ENDLOCAL +PAUSE +EXIT /b + +:: ----------------------------------------------------------------------------- + +:AddPath +ECHO %PATH% | FINDSTR /C:"%~1" > nul +IF ERRORLEVEL 1 ( + REG add "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /f /v PATH /t REG_SZ /d "%PATH%;%~1" > nul 2>&1 + IF ERRORLEVEL 0 ( + ECHO Adding %1 . . . Success! + SET "PATH=%PATH%;%~1" + SET UPDATE=1 + ) ELSE ( + ECHO Adding %1 . . . FAILED. Run this script with administrator privileges. + ) +) ELSE ( + ECHO Skipping %1 - Already in PATH + ) +EXIT /b + +:: ----------------------------------------------------------------------------- + +:KillExplorer + +ECHO Your desktop is being restarted, please wait. . . +ping -n 5 127.0.0.1 > NUL 2>&1 +ECHO Killing process Explorer.exe. . . +taskkill /f /im explorer.exe +ECHO. +ECHO Your desktop is now loading. . . +ping -n 5 127.0.0.1 > NUL 2>&1 +ECHO. +ping -n 5 127.0.0.1 > NUL 2>&1 +START explorer.exe +START explorer.exe %CD% +EXIT /b \ No newline at end of file diff --git a/2-setup-environment-win.bat b/2-setup-environment-win.bat new file mode 100644 index 0000000000..905338087a --- /dev/null +++ b/2-setup-environment-win.bat @@ -0,0 +1,63 @@ +@SETLOCAL ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION +@ECHO OFF + +SET STARTINGDIR=%CD% + +:: Check for admin privilages +SETX /M test test > nul 2>&1 +IF NOT ["%ERRORLEVEL%"]==["0"] ( + ECHO FAILED. Rerun with administrator privileges. + GOTO ExitBatch +) + +:: Make sure path to MinGW exists - if so, CD to it +SET MINGWPATH="C:\MinGW\bin" +IF NOT EXIST !MINGWPATH! (ECHO Path not found: %MINGWPATH% && GOTO ExitBatch) +CD /D %MINGWPATH% + + +ECHO ------------------------------------------ +ECHO Installing wget and unzip +ECHO ------------------------------------------ +mingw-get install msys-wget-bin msys-unzip-bin + +MKDIR temp +CD temp + +ECHO ------------------------------------------ +ECHO Installing dfu-programmer. +ECHO ------------------------------------------ +wget http://iweb.dl.sourceforge.net/project/dfu-programmer/dfu-programmer/0.7.2/dfu-programmer-win-0.7.2.zip +unzip dfu-programmer-win-0.7.2.zip +COPY dfu-programmer.exe .. + +ECHO ------------------------------------------ +ECHO Downloading driver +ECHO ------------------------------------------ +wget http://iweb.dl.sourceforge.net/project/libusb-win32/libusb-win32-releases/1.2.6.0/libusb-win32-bin-1.2.6.0.zip +unzip libusb-win32-bin-1.2.6.0.zip +COPY libusb-win32-bin-1.2.6.0\bin\x86\libusb0_x86.dll ../libusb0.dll + +ECHO ------------------------------------------ +ECHO Installing driver. Accept prompt. +ECHO ------------------------------------------ +IF EXIST "%WinDir%\System32\PnPUtil.exe" (%WinDir%\System32\PnPUtil.exe -i -a dfu-prog-usb-1.2.2\atmel_usb_dfu.inf && GOTO PNPUTILFOUND) +IF EXIST "%WinDir%\Sysnative\PnPUtil.exe" (%WinDir%\Sysnative\PnPUtil.exe -i -a dfu-prog-usb-1.2.2\atmel_usb_dfu.inf && GOTO PNPUTILFOUND) + +ECHO FAILED. Could not find PnPUtil.exe in "%WinDir%\System32" or "%WinDir%\Sysnative". + +:PNPUTILFOUND + +:: Wait then delete directory +ping -n 5 127.0.0.1 > NUL 2>&1 +CD .. +RD /s /q temp + +ECHO ------------------------------------------ +ECHO Finished! + +:ExitBatch +CD /D %STARTINGDIR% +ENDLOCAL +PAUSE +EXIT /b \ No newline at end of file diff --git a/BUILD_GUIDE.md b/BUILD_GUIDE.md new file mode 100644 index 0000000000..f7a57d2fc9 --- /dev/null +++ b/BUILD_GUIDE.md @@ -0,0 +1,60 @@ +# Build Guide + +## Build Environment Setup + +### Windows +1. If you have ever installed WinAVR, uninstall it. +2. Install [MHV AVR Tools](https://infernoembedded.com/sites/default/files/project/MHV_AVR_Tools_20131101.exe). Disable smatch, but **be sure to leave the option to add the tools to the PATH checked**. +3. Install [MinGW](https://sourceforge.net/projects/mingw/files/Installer/mingw-get-setup.exe/download). During installation, uncheck the option to install a graphical user interface. **DO NOT change the default installation folder.** The scripts depend on the default location. +4. Clone this repository. [This link will download it as a zip file, which you'll need to extract.](https://github.com/jackhumbert/qmk_firmware/archive/master.zip) Open the extracted folder in Windows Explorer. +5. Right-click on the 1-setup-path-win batch script, select "Run as administrator", and accept the User Account Control prompt. Press the spacebar to dismiss the success message in the command prompt that pops up. +6. Right-click on the 2-setup-environment-win batch script, select "Run as administrator", and accept the User Account Control prompt. This part may take a couple of minutes, and you'll need to approve a driver installation, but once it finishes, your environment is complete! +7. Future build commands should be run from the standard Windows command prompt, which you can find by searching for "command prompt" from the start menu or start screen. Ignore the "MHV AVR Shell". + +### Mac +If you're using [homebrew,](http://brew.sh/) you can use the following commands: + + brew tap osx-cross/avr + brew install avr-libc + brew install dfu-programmer + +This is the recommended method. If you don't have homebrew, [install it!](http://brew.sh/) It's very much worth it for anyone who works in the command line. + +You can also try these instructions: + +1. Install Xcode from the App Store. +2. Install the Command Line Tools from `Xcode->Preferences->Downloads`. +3. Install [DFU-Programmer][dfu-prog]. + +### Linux +Install AVR GCC, AVR libc, and dfu-progammer with your favorite package manager. + +Debian/Ubuntu example: + + sudo apt-get update + sudo apt-get install gcc-avr avr-libc dfu-programmer + +### Vagrant +If you have any problems building the firmware, you can try using a tool called Vagrant. It will set up a virtual computer with a known configuration that's ready-to-go for firmware building. OLKB does NOT host the files for this virtual computer. Details on how to set up Vagrant are in the [VAGRANT_GUIDE file](VAGRANT_GUIDE.md). + +## Verify Your Installation +1. If you haven't already, obtain this repository ([https://github.com/jackhumbert/qmk_firmware](https://github.com/jackhumbert/qmk_firmware)). You can either download it as a zip file and extract it, or clone it using the command line tool git or the Github Desktop application. +2. Open up a terminal or command prompt and navigate to the qmk_firmware folder using the `cd` command. The command prompt will typically open to your home directory. If, for example, you cloned the repository to your Documents folder, then you would type `cd Documents/qmk_firmware`. If you extracted the file from a zip, then it may be named `qmk_firmware-master` instead. +3. To confirm that you're in the correct location, you can display the contents of your current folder using the `dir` command on Windows, or the `ls` command on Linux or Mac. You should see several files, including `README.md` and a `quantum` folder. From here, you need to navigate to the appropriate folder under `keyboard/`. For example, if you're building for a Planck, run `cd keyboard/planck`. +4. Once you're in the correct keyboard-specific folder, run the `make` command. This should output a lot of information about the build process. + +## Customizing, Building, and Deploying Your Firmware + +Note: 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. + +1. 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. +2. To build a keymap other than the default, type `KEYMAP=` after `make`. So if I've named my keymap jack.c, the full command would be `make KEYMAP=jack`. +3. 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= dfu` to both build and deploy the firmware. If you're using a Teensy, you'll probably need to take the .hex file that make produces in the keyboard's folder, and deploy it using the [Teensy Loader.](https://www.pjrc.com/teensy/loader.html) + +## Helpful Tips +1. On Linux or OS X, you can run `sleep 5; make KEYMAP= dfu` to delay building/deploying the firmware until for 5 seconds, giving you a chance to put the firmware into bootloader mode. You can change the 5 to any number of seconds. + +## Troubleshooting +1. Try running `make clean` if the make command fails. + + WIP diff --git a/HAND_WIRE.md b/HAND_WIRE.md new file mode 100644 index 0000000000..3f4d75b272 --- /dev/null +++ b/HAND_WIRE.md @@ -0,0 +1,323 @@ +# Quantum Hand-wiring Guide + +Parts list: +* *x* keyswitches (MX, Matias, Gateron, etc) +* *x* diodes +* Keyboard plate (metal, plastic, cardboard, etc) +* Wire (strained for wiring to the Teensy, anything for the rows/columns) +* Soldering iron set at 600ºF or 315ºC (if temperature-controlled) +* Resin-cored solder (leaded or lead-free) +* Adequate ventilation/a fan +* Tweezers (optional) +* Wire cutters/snippers + +## How the matrix works (why we need diodes) + +The microcontroller (in this case, the Teensy 2.0) will be setup up via the firmware to send a logical 1 to the columns, one at a time, and read from the rows, all at once - this process is called matrix scanning. The matrix is a bunch of open switches that, by default, don't allow any current to pass through - the firmware will read this as no keys being pressed. As soon as you press one key down, the logical 1 that was coming from the column the keyswitch is attached to gets passed through the switch and to the corresponding row - check out the following 2x2 example: + + Column 0 being scanned Column 1 being scanned + x x + col0 col1 col0 col1 + | | | | + row0 ---(key0)---(key1) row0 ---(key0)---(key1) + | | | | + row1 ---(key2)---(key3) row1 ---(key2)---(key3) + +The `x` represents that the column/row associated has a value of 1, or is HIGH. Here, we see that no keys are being pressed, so no rows get an `x`. For one keyswitch, keep in mind that one side of the contacts is connected to its row, and the other, its column. + +When we press `key0`, `col0` gets connected to `row0`, so the values that the firmware receives for that row is `0b01` (the `0b` here means that this is a bit value, meaning all of the following digits are bits - 0 or 1 - and represent the keys in that column). We'll use this notation to show when a keyswitch has been pressed, to show that the column and row are being connected: + + Column 0 being scanned Column 1 being scanned + x x + col0 col1 col0 col1 + | | | | + x row0 ---(-+-0)---(key1) row0 ---(-+-0)---(key1) + | | | | + row1 ---(key2)---(key3) row1 ---(key2)---(key3) + +We can now see that `row0` has an `x`, so has the value of 1. As a whole, the data the firmware receives when `key0` is pressed is + + col0: 0b01 + col1: 0b00 + │└row0 + └row1 + +A problem arises when you start pressing more than one key at a time. Looking at our matrix again, it should become pretty obvious: + + Column 0 being scanned Column 1 being scanned + x x + col0 col1 col0 col1 + | | | | + x row0 ---(-+-0)---(-+-1) x row0 ---(-+-0)---(-+-1) + | | | | + x row1 ---(key2)---(-+-3) x row1 ---(key2)---(-+-3) + + Remember that this ^ is still connected to row1 + +The data we get from that is: + + col0: 0b11 + col1: 0b11 + │└row0 + └row1 + +Which isn't accurate, since we only have 3 keys pressed down, not all 4. This behavior is called ghosting, and only happens in odd scenarios like this, but can be much more common on a bigger keyboard. The way we can get around this is by placing a diode after the keyswitch, but before it connects to its row. A diode only allows current to pass through one way, which will protect our other columns/rows from being activated in the previous example. We'll represent a dioded matrix like this; + + Column 0 being scanned Column 1 being scanned + x x + col0 col1 col0 col1 + │ │ | │ + (key0) (key1) (key0) (key1) + ! │ ! │ ! | ! │ + row0 ─────┴────────┘ │ row0 ─────┴────────┘ │ + │ │ | │ + (key2) (key3) (key2) (key3) + ! ! ! ! + row1 ─────┴────────┘ row1 ─────┴────────┘ + +In practical applications, the black line of the diode will be placed facing the row, and away from the keyswitch - the `!` in this case is the diode, where the gap represents the black line. A good way to remember this is to think of this symbol: `>|` + +Now when we press the three keys, invoking what would be a ghosting scenario: + + Column 0 being scanned Column 1 being scanned + x x + col0 col1 col0 col1 + │ │ │ │ + (┌─┤0) (┌─┤1) (┌─┤0) (┌─┤1) + ! │ ! │ ! │ ! │ + x row0 ─────┴────────┘ │ x row0 ─────┴────────┘ │ + │ │ │ │ + (key2) (┌─┘3) (key2) (┌─┘3) + ! ! ! ! + row1 ─────┴────────┘ x row1 ─────┴────────┘ + +Things act as they should! Which will get us the following data: + + col0: 0b01 + col1: 0b11 + │└row0 + └row1 + +The firmware can then use this correct data to detect what it should do, and eventually, what signals it needs to send to the OS. + +## The actual hand-wiring + +### Getting things in place + +When starting this, you should have all of your stabilisers and keyswitches already installed (and optionally keycaps). If you're using a Cherry-type stabiliser (plate-mounted only, obviously), you'll need to install that before your keyswitches. If you're using Costar ones, you can installed them afterwards. + +To make things easier on yourself, make sure all of the keyswitches are oriented the same way (if they can be - not all layouts support this). Despite this, it's important to remember that the contacts on the keyswitches are completely symmetrical. We'll be using the keyswitch's left side contact for wiring the rows, and the right side one for wiring the columns. + +Get your soldering iron heated-up and collect the rest of the materials from the part list at the beginning of the guide. Place your keyboard so that the bottoms of the keyswitches are accessible - it may be a good idea to place it on a cloth to protect your keyswitches/keycaps. + +Before continuing, plan out where you're going to place your Teensy. If you're working with a board that has a large (6.25u) spacebar, it may be a good idea to place it in-between switches against the plate. Otherwise, you may want to trim some of the leads on the keyswitches where you plan on putting it - this will make it a little harder to solder the wire/diodes, but give you more room to place the Teensy. + +### Preparing the diodes + +It's a little easier to solder the diodes in place if you bend them at a 90º angle immediately after the black line - this will help to make sure you put them on the right way (direction matters), and in the correct position. The diodes will look like this when bent (with longer leads): + + ┌─────┬─┐ + ───┤ │ ├─┐ + └─────┴─┘ │ + │ + +We'll be using the long lead at the bent end to connect it to the elbow (bent part) of the next diode, creating the row. + +### Soldering the diodes + +Starting at the top-left switch, place the diode (with tweezers if you have them) on the switch so that the diode itself is vertically aligned, and the black line is facing toward you. The straight end of the diode should be touching the left contact on the switch, and the bent end should be facing to the right and resting on the switch there, like this: + + │o + ┌┴┐ o + │ │ O + ├─┤ + └┬┘ + └───────────── + +Letting the diode rest, grab your solder, and touch both it and the soldering iron to the left contact at the same time - the rosin in the solder should make it easy for the solder to flow over both the diode and the keyswitch contact. The diode may move a little, and if it does, carefully position it back it place by grabbing the bent end of the diode - the other end will become hot very quickly. If you find that it's moving too much, using needle-nose pliers of some sort may help to keep the diode still when soldering. + +The smoke that the rosin releases is harmful, so be careful not to breath it or get it in your eyes/face. + +After soldering things in place, it may be helpful to blow on the joint to push the smoke away from your face, and cool the solder quicker. You should see the solder develop a matte (not shiney) surface as it solidifies. Keep in mind that it will still be very hot afterwards, and will take a couple minutes to be cool to touch. Blow on it will accelerate this process. + +When the first diode is complete, the next one will need to be soldered to both the keyswitch, and the previous diode at the new elbow. That will look something like this: + + │o │o + ┌┴┐ o ┌┴┐ o + │ │ O │ │ O + ├─┤ ├─┤ + └┬┘ └┬┘ + └────────────────┴───────────── + +After completing a row, use the wire cutters to trim the excess wire from the tops of the diodes, and from the right side on the final switch. This process will need to completed for each row you have. + +When all of the diodes are completely soldered, it's a good idea to quickly inspect each one to ensure that your solder joints are solid and sturdy - repairing things after this is possible, but more difficult. + +### Soldering the columns + +You'll have some options in the next process - it's a good idea to insulate the column wires (since the diodes aren't), but if you're careful enough, you can use exposed wires for the columns - it's not recommended, though. If you're using single-cored wire, stripping the plastic off of the whole wire and feeding it back on is probably the best option, but can be difficult depending on the size and materials. You'll want to leave parts of the wire exposed where you're going to be solder it onto the keyswitch. + +If you're using stranded wire, it's probably easiest to just use a lot of small wires to connect each keyswitch along the column. It's possible to use one and melt through the insulation, but this isn't recommended, will produce even more harmful fumes, and can ruin your soldering iron. + +Before beginning to solder, it helps to have your wire pre-bent (if using single-cored), or at least have an idea of how you're going to route the column (especially if you're making a staggered board). Where you go in particular doesn't matter too much, as we'll be basing our keymap definitions on how it was wired - just make sure every key in a particular row is in a unique column, and that they're in order from left to right. + +If you're not using any insulation, you can try to keep the column wires elevated, and solder them near the tips of the keyswitch contacts - if the wires are sturdy enough, they won't short out to the row wiring an diodes. + +### Wiring things to the Teensy + +Now that the matrix itself is complete, it's time to connect what you've done to the Teensy. You'll be needing the number of pins equal to your number of columns + your number of rows. There are some pins on the Teensy that are special, like D6 (the LED on the chip), or some of the UART, SPI, I2C, or PWM channels, but only avoid those if you're planning something in addition to a keyboard. If you're unsure about wanting to add something later, you should have enough pins in total to avoid a couple. + +The pins you'll absolutely have to avoid are: GND, VCC, AREF, and RST - all the others are usable and accessible in the firmware. + +Place the Teensy where you plan to put it - you'll have to cut wires to length in the next step, and you'll want to make sure they reach. + +Starting with the first column on the right side, measure out how much wire you'll need to connect it to the first pin on the Teensy - it helps to pick a side that you'll be able to work down, to keep the wires from overlapping too much. It may help to leave a little bit of slack so things aren't too tight. Cut the piece of wire, and solder it to the Teensy, and then the column - you can solder it anywhere along the column, but it may be easiest at the keyswitch. Just be sure the wire doesn't separate from the keyswitch when soldering. + +As you move from column to column, it'll be helpful to write the locations of the pins down. We'll use this data to setup the matrix in the future. + +When you're done with the columns, start with the rows in the same process, from top to bottom, and write them all down. Again, you can solder anywhere along the row, as long as it's after the diode - soldering before the diode (on the keyswitch side) will cause that row not to work. + +As you move along, be sure that the Teensy is staying in place - recutting and soldering the wires is a pain! + +### Getting some basic firmware set-up + +From here, you should have a working keyboard with the correct firmware. Before we attach the Teensy permanently to the keyboard, let's quickly get some firmware loaded onto the Teensy so we can test each keyswitch. + +To start out, download [the firmware](https://github.com/jackhumbert/qmk_firmware/) - we'll be using my (Jack's) fork of TMK called QMK/Quantum. We'll be doing a lot from the Terminal/command prompt, so get that open, along with a decent text editor like [Sublime Text](http://www.sublimetext.com/). + +The first thing we're going to do is create a new project using the script in the root directory of the firmware. In your terminal, run this command with `` replaced by the name of your project - it'll need to be different from any other project in the `keyboard/` folder: + + ./new_project.sh + +You'll want to navigate to the `keyboard//` folder by typing, like the print-out from the script specifies: + + cd keyboard/ + +#### config.h + +The first thing we're going to want to modify is the `config.h` file. On line 32 and 33, you'll see `MATRIX_ROWS` and `MATRIX_COLS` - set both these variables to however many rows and columns you have on your keyboard. + +On line 38 and 39 you'll see the `COLS` and `ROWS` definitions - this is where you'll enter the pins you used, in order (left-to-right when looking at the top of the keyboard, but right-to-left when looking at the bottom). + +There are some other variables that you'll be able to modify (lines 23-29), but it's not necessary to do that now (or ever, really). + +#### \.h + +The next file you'll want to look at is `.h`. You're going to want to rewrite the `KEYMAP` definition - the format and syntax here is extremely important, so pay attention to how things are setup. The first half of the definition are considered the arguments - this is the format that you'll be following in your keymap later on, so you'll want to have as many k*xy* variables here as you do keys. The second half is the part that the firmware actually looks at, and will contain gaps depending on how you wired your matrix. + +We'll dive into how this will work with the following example. Say we have a keyboard like this: + + ┌───┬───┬───┐ + │ │ │ │ + ├───┴─┬─┴───┤ + │ │ │ + └─────┴─────┘ + +This can be described by saying the top row is 3 1u keys, and the bottom row is 2 1.5u keys. The difference between the two rows is important, because the bottom row has an unused column spot (3 v 2). Let's say that this is how we wired the columns: + + ┌───┬───┬───┐ + │ ┋ │ ┋ │ ┋ │ + ├─┋─┴─┬─┴─┋─┤ + │ ┋ │ ┋ │ + └─────┴─────┘ + +The middle column is unused on the bottom row in this example. Our `KEYMAP` definition would look like this: + + #define KEYMAP( \ + k00, k01, k02, \ + k10, k11, \ + ) \ + { \ + { k00, k01, k02 }, \ + { k10, KC_NO, k11 }, \ + } + +Notice how the top half is spaced to resemble our physical layout - this helps us understand which keys are associated with which columns. The bottom half uses the keycode `KC_NO` where there is no keyswitch wired in. It's easiest to keep the bottom half aligned in a grid to help us make sense of how the firmware actually sees the wiring. + +Let's say that instead, we wired our keyboard like this (a fair thing to do): + + ┌───┬───┬───┐ + │ ┋ │ ┋│ ┋ │ + ├─┋─┴─┬┋┴───┤ + │ ┋ │┋ │ + └─────┴─────┘ + +This would require our `KEYMAP` definition to look like this: + + #define KEYMAP( \ + k00, k01, k02, \ + k10, k11, \ + ) \ + { \ + { k00, k01, k02 }, \ + { k10, k11, KC_NO }, \ + } + +Notice how the `k11` and `KC_NO` switched places to represent the wiring, and the unused final column on the bottom row. Sometimes it'll make more sense to put a keyswitch on a particular column, but in the end, it won't matter, as long as all of them are accounted for. You can use this process to write out the `KEYMAP` for your entire keyboard - be sure to remember that your keyboard is actually backwards when looking at the underside of it. + +#### keymaps/default.c + +This is the actual keymap for your keyboard, and the main place you'll make changes as you perfect your layout. `default.c` is the file that gets pull by default when typing `make`, but you can make other files as well, and specify them by typing `make KEYMAP=`, which will pull `keymaps/.c`. + +The basis of a keymap is its layers - by default, layer 0 is active. You can activate other layers, the highest of which will be referenced first. Let's start with our base layer. + +Using our previous example, let's say we want to create the following layout: + + ┌───┬───┬───┐ + │ A │ 1 │ H │ + ├───┴─┬─┴───┤ + │ TAB │ SPC │ + └─────┴─────┘ + +This can be accomplished by using the following `keymaps` definition: + + const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = KEYMAP( /* Base */ + KC_A, KC_1, KC_H, \ + KC_TAB, KC_SPC \ + ), + }; + +Note that the layout of the keycodes is similar to the physical layout of our keyboard - this make it much easier to see what's going on. A lot of the keycodes should be fairly obvious, but for a full list of them, check out [tmk_code/doc/keycode.txt](https://github.com/jackhumbert/qmk_firmware/blob/master/tmk_core/doc/keycode.txt) - there are also a lot of aliases to condense your keymap file. + +It's also important to use the `KEYMAP` function we defined earlier - this is what allows the firmware to associate our intended readable keymap with the actual wiring. + +#### Compiling your firmware + +After you've written out your entire keymap, you're ready to get the firmware compiled and onto your Teensy. Before compiling, you'll need to get your [development environment set-up](https://github.com/jackhumbert/qmk_firmware/blob/master/keyboard/planck/PCB_GUIDE.md#setting-up-the-environment) - you can skip the dfu-programmer instructions, but you'll need to download and install the [Teensy Loader](https://www.pjrc.com/teensy/loader.html) to get the firmware on your Teensy. + +Once everything is installed, running `make` in the terminal should get you some output, and eventually a `.hex` file in that folder. If you're having trouble with this step, see the end of the guide for the trouble-shooting section. + +Once you have your `.hex` file, open up the Teensy loader application, and click the file icon. From here, navigate to your `QMK/keyboard//` folder, and select the `.hex` file. Plug in your keyboard and press the button on the Teensy - you should see the LED on the device turn off once you do. The Teensy Loader app will change a little, and the buttons should be clickable - click the download button (down arrow), and then the reset button (right arrow), and your keyboard should be ready to go! + +#### Testing your firmware + +Carefully flip your keyboard over, open up a new text document, and try typing - you should get the characters that you put into your keymap. Test each key, and note the ones that aren't working. Here's a quick trouble-shooting guide for non-working keys: + +0. Flip the keyboard back over and short the keyswitch's contacts with a piece wire - this will eliminate the possibility of the keyswitch being bad and needing to be replaced. +1. Check the solder points on the keyswitch - these need to be plump and whole. If you touch it with a moderate amount of force and it comes apart, it's not strong enough. +2. Check the solder joints on the diode - if the diode is loose, part of your row may register, while the other may not. +3. Check the solder joints on the columns - if your column wiring is loose, part or all of the column may not work. +4. Check the solder joints on both sides of the wires going to/from the Teensy - the wires need to be fully soldered and connect to both sides. +5. Check the .h file for errors and incorrectly placed `KC_NO`s - if you're unsure where they should be, instead duplicate a k*xy* variable. +6. Check to make sure you actually compiled the firmware and flashed the Teensy correctly. Unless you got error messages in the terminal, or a pop-up during flashing, you probably did everything correctly. + +If you've done all of these things, keep in mind that sometimes you might have had multiple things affecting the keyswitch, so it doesn't hurt to test the keyswitch by shorting it out at the end. + +#### Securing the Teensy, finishing your hardware, getting fancier firmware + +Now that you have a working board, it's time to get things in their permanent positions. I've often used liberal amounts of hot glue to secure and insulate things, so if that's your style, start spreading that stuff like butter. Otherwise, double-sided tape is always an elegant solution, and electrical tape is a distant second. Due to the nature of these builds, a lot of this part is up to you and how you planned (or didn't plan) things out. + +There are a lot of possibilities inside the firmware - check out the [README](https://github.com/jackhumbert/qmk_firmware/blob/master/README.md) for a full feature list, and dive into the different project (Planck, Ergodox EZ, etc) to see how people use all of them. You can always stop by [the OLKB subreddit for help!](http://reddit.com/r/olkb) + +## Trouble-shooting compiling + +### Windows + +#### fork: Resource temporarily unavailable + +http://www.avrfreaks.net/forum/windows-81-compilation-error + +### Mac + +### Linux diff --git a/README.md b/README.md index 55fb76798b..613bdcf42b 100644 --- a/README.md +++ b/README.md @@ -12,16 +12,25 @@ The documentation below explains QMK customizations and elaborates on some of th ## Getting started -* **If you're looking to customize a keyboard that currently runs QMK or TMK** , find your keyboard's directory under `/keyboard/` and read the README file. This will get you all set up. +* [BUILD_GUIDE.md](BUILD_GUIDE.md) contains instructions to set up a build environment, build the firmware, and deploy it to a keyboard. Once your build environment has been set up, all `make` commands to actually build the firmware must be run from a folder in `keyboard/`. +* If you're looking to customize a keyboard that currently runs QMK or TMK, find your keyboard's directory under `keyboard/` and run the make commands from there. * If you're looking to apply this firmware to an entirely new hardware project (a new kind of keyboard), you can create your own Quantum-based project by using `./new_project.sh `, which will create `/keyboard/` with all the necessary components for a Quantum project. +### Makefile Options + You have access to a bunch of goodies! Check out the Makefile to enable/disable some of the features. Uncomment the `#` to enable them. Setting them to `no` does nothing and will only confuse future you. BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality MIDI_ENABLE = yes # MIDI controls - # UNICODE_ENABLE = yes # Unicode support - this is commented out, just as an example. You have to use #, not // + UNICODE_ENABLE = no # <-- This is how you disable an option, just set it to "no" BLUETOOTH_ENABLE = yes # Enable Bluetooth with the Adafruit EZ-Key HID +### Customizing Makefile options on a per-keymap basis + +If your keymap directory has a file called `makefile.mk` (note the lowercase filename, and the `.mk` extension), any Makefile options you set in that file will take precedence over other Makefile options (those set for Quantum as a whole or for your particular keyboard). + +So 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`. + ## Quick aliases to common actions Your keymap can include shortcuts to common operations (called "function actions" in tmk). @@ -46,6 +55,7 @@ Your keymap can include shortcuts to common operations (called "function actions * `RGUI(kc)` - applies right GUI (command/win) to *kc* * `HYPR(kc)` - applies Hyper (all modifiers) to *kc* * `MEH(kc)` - applies Meh (all modifiers except Win/Cmd) to *kc* +* `LCAG(kc)` - applies CtrlAltGui to *kc* You can also chain these, like this: @@ -71,7 +81,7 @@ The following shortcuts automatically add `LSFT()` to keycodes to get commonly u KC_PIPE | KC_COLN : -`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. +`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. These are the values you can use for the `mod` in `MT()` (right-hand modifiers are not available): @@ -84,17 +94,39 @@ These can also be combined like `MOD_LCTL | MOD_LSFT` e.g. `MT(MOD_LCTL | MOD_LS We've added shortcuts to make common modifier/tap (mod-tap) mappings more compact: - * `CTL_T(kc)` - is LCTL when held and *kc* when tapped - * `SFT_T(kc)` - is LSFT when held and *kc* when tapped - * `ALT_T(kc)` - is LALT when held and *kc* when tapped - * `GUI_T(kc)` - is LGUI when held and *kc* when tapped + * `CTL_T(kc)` - is LCTL when held and *kc* when tapped + * `SFT_T(kc)` - is LSFT when held and *kc* when tapped + * `ALT_T(kc)` - is LALT when held and *kc* when tapped + * `GUI_T(kc)` - is LGUI when held and *kc* when tapped * `ALL_T(kc)` - is Hyper (all mods) when held and *kc* when tapped. To read more about what you can do with a Hyper key, see [this blog post by Brett Terpstra](http://brettterpstra.com/2012/12/08/a-useful-caps-lock-key/) + * `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. -### Temporarily setting the default layer +### 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. +### Prevent stuck modifiers + +Consider the following scenario: + +1. Layer 0 has a key defined as Shift. +2. The same key is defined on layer 1 as the letter A. +3. User presses Shift. +4. User switches to layer 1 for whatever reason. +5. User releases Shift, or rather the letter A. +6. User switches back to layer 0. + +Shift was actually never released and is still considered pressed. + +If such situation bothers you add this to your `config.h`: + + #define PREVENT_STUCK_MODIFIERS + +This option uses 5 bytes of memory per every 8 keys on the keyboard +rounded up (5 bits per key). For example on Planck (48 keys) it uses +(48/8)\*5 = 30 bytes. + ### Remember: These are just aliases These functions work the same way that their `ACTION_*` functions do - they're just quick aliases. To dig into all of the tmk ACTION_* functions, please see the [TMK documentation](https://github.com/jackhumbert/qmk_firmware/blob/master/tmk_core/doc/keymap.md#2-action). @@ -112,7 +144,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) // case 0: // this would trigger when you hit a key mapped as M(0) if (record->event.pressed) { return MACRO( I(255), T(H), T(E), T(L), T(L), W(255), T(O), END ); // this sends the string 'hello' when the macro executes - } + } break; } return MACRO_NONE; @@ -129,20 +161,84 @@ A macro can include the following commands: So above you can see the stroke interval changed to 255ms between each keystroke, then a bunch of keys being typed, waits a while, then the macro ends. -Note: Using macros to have your keyboard send passwords for you is a bad idea. +Note: Using macros to have your keyboard send passwords for you is possible, but a bad idea. -### Additional keycode aliases for software-implemented layouts (Colemak, Dvorak, etc) +### Advanced macro functions + +To get more control over the keys/actions your keyboard takes, the following functions are available to you in the `action_get_macro` function block: + +* `record->event.pressed` + +This is a boolean value that can be tested to see if the switch is being pressed or released. An example of this is + +```c +if (record->event.pressed) { + // on keydown +} else { + // on keyup +} +``` + +* `register_code();` + +This sends the `` keydown event to the computer. Some examples would be `KC_ESC`, `KC_C`, `KC_4`, and even modifiers such as `KC_LSFT` and `KC_LGUI`. + +* `unregister_code();` + +Parallel to `register_code` function, this sends the `` keyup event to the computer. If you don't use this, the key will be held down until it's sent. + +* `layer_on();` + +This will turn on the layer `` - the higher layer number will always take priority. Make sure you have `KC_TRNS` for the key you're pressing on the layer you're switching to, or you'll get stick there unless you have another plan. + +* `layer_off();` + +This will turn off the layer ``. + +* `clear_keyboard();` + +This will clear all mods and keys currently pressed. + +* `clear_mods();` + +This will clear all mods currently pressed. + +* `clear_keyboard_but_mods();` + +This will clear all keys besides the mods currently pressed. + +* `update_tri_layer(layer_1, layer_2, layer_3);` + +If the user attempts to activate layer 1 AND layer 2 at the same time (for example, by hitting their respective layer keys), layer 3 will be activated. Layers 1 and 2 will _also_ be activated, for the purposes of fallbacks (so a given key will fall back from 3 to 2, to 1 -- and only then to 0). + +#### Timer functionality + +It's possible to start timers and read values for time-specific events - here's an example: + +```c +static uint16_t key_timer; +key_timer = timer_read(); +if (timer_elapsed(key_timer) < 100) { + // do something if less than 100ms have passed +} else { + // do something if 100ms or more have passed +} +``` + +It's best to declare the `static uint16_t key_timer;` outside of the macro block (top of file, etc). + +## Additional keycode aliases for software-implemented layouts (Colemak, Dvorak, etc) Everything is assuming you're in Qwerty (in software) by default, but there is built-in support for using a Colemak or Dvorak layout by including this at the top of your keymap: - #include "keymap_.h" + #include + +If you use Dvorak, use `keymap_dvorak.h` instead of `keymap_colemak.h` for this line. After including this line, you will get access to: -Where is "colemak" or "dvorak". After including this line, you will get access to: - * `CM_*` for all of the Colemak-equivalent characters * `DV_*` for all of the Dvorak-equivalent characters - -These implementations assume you're using Colemak or Dvorak on your OS, not on your keyboard - this is referred to as a software-implemented layout. If your computer is in Qwerty and your keymap is in Colemak or Dvorak, this is referred to as a firmware-implemented layout, and you won't need these features. + +These implementations assume you're using Colemak or Dvorak on your OS, not on your keyboard - this is referred to as a software-implemented layout. If your computer is in Qwerty and your keymap is in Colemak or Dvorak, this is referred to as a firmware-implemented layout, and you won't need these features. To give an example, if you're using software-implemented Colemak, and want to get an `F`, you would use `CM_F` - `KC_F` under these same circumstances would result in `T`. @@ -175,3 +271,75 @@ This is still a WIP, but check out `quantum/keymap_midi.c` to see what's happeni ## Bluetooth functionality This requires [some hardware changes](https://www.reddit.com/r/MechanicalKeyboards/comments/3psx0q/the_planck_keyboard_with_bluetooth_guide_and/?ref=search_posts), but can be enabled via the Makefile. The firmware will still output characters via USB, so be aware of this when charging via a computer. It would make sense to have a switch on the Bluefruit to turn it off at will. + +## International Characters on Windows + +[AutoHotkey](https://autohotkey.com) allows Windows users to create custom hotkeys amont others. + +The method does not require Unicode support in the keyboard itself but depends instead of AutoHotkey running in the background. + +First you need to select a modifier combination that is not in use by any of your programs. +CtrlAltWin is not used very widely and should therefore be perfect for this. +There is a macro defined for a mod-tab combo `LCAG_T`. +Add this mod-tab combo to a key on your keyboard, e.g.: `LCAG_T(KC_TAB)`. +This makes the key behave like a tab key if pressed and released immediately but changes it to the modifier if used with another key. + +In the default script of AutoHotkey you can define custom hotkeys. + + <^ + +// This a shortcut to help you visually see your layout. +// The following is an example using the Planck MIT layout +// The first section contains all of the arguements +// The second converts the arguments into a two-dimensional array +#define KEYMAP( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38 \ +) \ +{ \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, KC_NO, K2A }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B }, \ + { K30, K31, K32, KC_NO, K33, KC_NO, K34, KC_NO, K35, K36, K37, K38 }, \ +} + +void matrix_init_user(void); +void matrix_scan_user(void); + +#endif diff --git a/keyboard/Bantam44/Makefile b/keyboard/Bantam44/Makefile new file mode 100644 index 0000000000..e7dea9f602 --- /dev/null +++ b/keyboard/Bantam44/Makefile @@ -0,0 +1,139 @@ +#---------------------------------------------------------------------------- +# On command line: +# +# make all = Make software. +# +# make clean = Clean out built project files. +# +# make coff = Convert ELF to AVR COFF. +# +# make extcoff = Convert ELF to AVR Extended COFF. +# +# make program = Download the hex file to the device. +# Please customize your programmer settings(PROGRAM_CMD) +# +# make teensy = Download the hex file to the device, using teensy_loader_cli. +# (must have teensy_loader_cli installed). +# +# make dfu = Download the hex file to the device, using dfu-programmer (must +# have dfu-programmer installed). +# +# make flip = Download the hex file to the device, using Atmel FLIP (must +# have Atmel FLIP installed). +# +# make dfu-ee = Download the eeprom file to the device, using dfu-programmer +# (must have dfu-programmer installed). +# +# make flip-ee = Download the eeprom file to the device, using Atmel FLIP +# (must have Atmel FLIP installed). +# +# make debug = Start either simulavr or avarice as specified for debugging, +# with avr-gdb or avr-insight as the front end for debugging. +# +# make filename.s = Just compile filename.c into the assembler code only. +# +# make filename.i = Create a preprocessed source file for use in submitting +# bug reports to the GCC project. +# +# To rebuild project do "make clean" then "make all". +#---------------------------------------------------------------------------- + +# Target file name (without extension). +TARGET = Bantam44 + + +# Directory common source filess exist +TOP_DIR = ../.. +TMK_DIR = ../../tmk_core + +# Directory keyboard dependent files exist +TARGET_DIR = . + +# # project specific files +SRC = Bantam44.c + +ifdef KEYMAP + SRC := keymaps/$(KEYMAP).c $(SRC) +else + SRC := keymaps/default.c $(SRC) +endif + +CONFIG_H = config.h + +# MCU name +#MCU = at90usb1287 +MCU = atmega32u4 + +# Processor frequency. +# This will define a symbol, F_CPU, in all source code files equal to the +# processor frequency in Hz. You can then use this symbol in your source code to +# calculate timings. Do NOT tack on a 'UL' at the end, this will be done +# automatically to create a 32-bit value in your source code. +# +# This will be an integer division of F_USB below, as it is sourced by +# F_USB after it has run through any CPU prescalers. Note that this value +# does not *change* the processor frequency - it should merely be updated to +# reflect the processor speed set externally so that the code can use accurate +# software delays. +F_CPU = 16000000 + + +# +# LUFA specific +# +# Target architecture (see library "Board Types" documentation). +ARCH = AVR8 + +# Input clock frequency. +# This will define a symbol, F_USB, in all source code files equal to the +# input clock frequency (before any prescaling is performed) in Hz. This value may +# differ from F_CPU if prescaling is used on the latter, and is required as the +# raw input clock is fed directly to the PLL sections of the AVR for high speed +# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' +# at the end, this will be done automatically to create a 32-bit value in your +# source code. +# +# If no clock division is performed on the input clock inside the AVR (via the +# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. +F_USB = $(F_CPU) + +# Interrupt driven control endpoint task(+60) +OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT + + +# Boot Section Size in *bytes* +# Teensy halfKay 512 +# Teensy++ halfKay 1024 +# Atmel DFU loader 4096 +# LUFA bootloader 4096 +# USBaspLoader 2048 +OPT_DEFS += -DBOOTLOADER_SIZE=512 + + +# Build Options +# comment out to disable the options. +# +BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = yes # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = yes # Console for debug(+400) +COMMAND_ENABLE = yes # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +# SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend +# NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +# BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +# MIDI_ENABLE = YES # MIDI controls +# UNICODE_ENABLE = YES # Unicode +# BLUETOOTH_ENABLE = yes # Enable Bluetooth with the Adafruit EZ-Key HID + + +# Optimize size but this may cause error "relocation truncated to fit" +#EXTRALDFLAGS = -Wl,--relax + +# Search Path +VPATH += $(TARGET_DIR) +VPATH += $(TOP_DIR) +VPATH += $(TMK_DIR) + +include $(TOP_DIR)/quantum/quantum.mk + diff --git a/keyboard/Bantam44/README.md b/keyboard/Bantam44/README.md new file mode 100644 index 0000000000..cd059a66c9 --- /dev/null +++ b/keyboard/Bantam44/README.md @@ -0,0 +1,24 @@ +Bantam44 keyboard firmware +====================== + +## Quantum MK Firmware + +For the full Quantum feature list, see [the parent README.md](/README.md). + +## Building + +Download or clone the whole firmware and navigate to the keyboard/Bantam44 folder. Once your dev env is setup, you'll be able to type `make` to generate your .hex - you can then use the Teensy Loader to program your .hex file. + +Depending on which keymap you would like to use, you will have to compile slightly differently. + +### Default +To build with the default keymap, simply run `make`. + +### Other Keymaps +Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create file named `.c` and see keymap document (you can find in top README.md) and existent keymap files. + +To build the firmware binary hex file with a keymap just do `make` with `KEYMAP` option like: +``` +$ make KEYMAP=[default|jack|] +``` +Keymaps follow the format **__\.c__** and are stored in the `keymaps` folder. \ No newline at end of file diff --git a/keyboard/Bantam44/config.h b/keyboard/Bantam44/config.h new file mode 100644 index 0000000000..26d680704d --- /dev/null +++ b/keyboard/Bantam44/config.h @@ -0,0 +1,81 @@ +/* +Copyright 2012 Jun Wako + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#ifndef CONFIG_H +#define CONFIG_H + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x6060 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Bantam Keyboards +#define PRODUCT Bantam44 +#define DESCRIPTION A custom keyboard + +/* key matrix size */ +#define MATRIX_ROWS 4 +#define MATRIX_COLS 12 + +// Planck PCB default pin-out +// Change this to how you wired your keyboard +// COLS: Left to right, ROWS: Top to bottom +#define COLS (int []){ B0, B1, B2, B3, B7, D0, B6, F7, F6, F5, F4, F1 } +#define ROWS (int []){ F0, D6, D4, D5 } + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* define if matrix has ghost */ +//#define MATRIX_HAS_GHOST + +/* number of backlight levels */ +#define BACKLIGHT_LEVELS 3 + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* key combination for command */ +#define IS_COMMAND() ( \ + keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ +) + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION + +#endif diff --git a/keyboard/Bantam44/keymaps/default.c b/keyboard/Bantam44/keymaps/default.c new file mode 100644 index 0000000000..17ade6241f --- /dev/null +++ b/keyboard/Bantam44/keymaps/default.c @@ -0,0 +1,30 @@ +#include "Bantam44.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = { /* Base */ + {KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC }, + {KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_NO, KC_ENT }, + {KC_CAPS, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_RSFT }, + {KC_LCTL, KC_LGUI, KC_LALT, KC_NO, MO(1), KC_NO, KC_SPC, KC_NO, MO(2), KC_SCLN, KC_QUOT, KC_SLSH } + }, + [1] = { /* LOWER */ + {KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DELT }, + {KC_TAB, KC_MPRV, KC_MPLY, KC_MNXT, KC_GRV, KC_BSLS, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_NO, KC_ENT }, + {KC_CAPS, KC_LSFT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_NO, KC_HOME, KC_PGUP, KC_RSFT }, + {KC_LCTL, KC_LGUI, KC_LALT, KC_NO, KC_TRNS, KC_NO, KC_SPC, KC_NO, KC_TRNS, KC_END, KC_PGDN, KC_EXLM } + }, + [2] = { /* RAISE */ + {KC_ESC, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DELT }, + {KC_TAB, KC_MUTE, KC_VOLD, KC_VOLU, KC_TILD, KC_PIPE, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_NO, KC_ENT }, + {KC_CAPS, KC_LSFT, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NO, KC_NO, KC_UP, KC_RSFT }, + {KC_LCTL, KC_LGUI, KC_LALT, KC_NO, KC_TRNS, KC_NO, KC_SPC, KC_NO, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT } + } +}; + +const uint16_t PROGMEM fn_actions[] = { +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) // MACRODOWN only works in this function +{ + return MACRO_NONE; +}; \ No newline at end of file diff --git a/keyboard/alps64/Makefile b/keyboard/alps64/Makefile index e90dcedb67..7634c4280e 100644 --- a/keyboard/alps64/Makefile +++ b/keyboard/alps64/Makefile @@ -53,9 +53,9 @@ SRC = keymap_common.c \ led.c ifdef KEYMAP - SRC := keymap_$(KEYMAP).c $(SRC) + SRC := keymaps/$(KEYMAP).c $(SRC) else - SRC := keymap_plain.c $(SRC) + SRC := keymaps/default.c $(SRC) endif CONFIG_H = config.h diff --git a/keyboard/alps64/keymap_plain.c b/keyboard/alps64/keymaps/default.c similarity index 100% rename from keyboard/alps64/keymap_plain.c rename to keyboard/alps64/keymaps/default.c diff --git a/keyboard/alps64/keymap_hasu.c b/keyboard/alps64/keymaps/hasu.c similarity index 100% rename from keyboard/alps64/keymap_hasu.c rename to keyboard/alps64/keymaps/hasu.c diff --git a/keyboard/atomic/Makefile b/keyboard/atomic/Makefile index e678b4efa8..20cf4fff18 100644 --- a/keyboard/atomic/Makefile +++ b/keyboard/atomic/Makefile @@ -54,9 +54,9 @@ SRC = atomic.c \ backlight.c ifdef KEYMAP - SRC := keymaps/keymap_$(KEYMAP).c $(SRC) + SRC := keymaps/$(KEYMAP).c $(SRC) else - SRC := keymaps/keymap_default.c $(SRC) + SRC := keymaps/default.c $(SRC) endif CONFIG_H = config.h @@ -114,19 +114,19 @@ OPT_DEFS += -DBOOTLOADER_SIZE=4096 # Build Options # comment out to disable the options. # -BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000) -MOUSEKEY_ENABLE = yes # Mouse keys(+4700) -EXTRAKEY_ENABLE = yes # Audio control and System control(+450) -CONSOLE_ENABLE = yes # Console for debug(+400) -COMMAND_ENABLE = yes # Commands for debug and configuration -# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE -# SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend -# NKRO_ENABLE = yes # USB Nkey Rollover - not yet supported in LUFA -BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality -# MIDI_ENABLE = YES # MIDI controls -# UNICODE_ENABLE = YES # Unicode -# BLUETOOTH_ENABLE = yes # Enable Bluetooth with the Adafruit EZ-Key HID +BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = yes # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = yes # Console for debug(+400) +COMMAND_ENABLE = yes # Commands for debug and configuration +#NKRO_ENABLE = yes # USB Nkey Rollover - not yet supported in LUFA +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +#MIDI_ENABLE = yes # MIDI controls +#UNICODE_ENABLE = yes # Unicode +#BLUETOOTH_ENABLE = yes # Enable Bluetooth with the Adafruit EZ-Key HID +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +#SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend # Optimize size but this may cause error "relocation truncated to fit" #EXTRALDFLAGS = -Wl,--relax @@ -137,4 +137,3 @@ VPATH += $(TOP_DIR) VPATH += $(TMK_DIR) include $(TOP_DIR)/quantum/quantum.mk - diff --git a/keyboard/atomic/README.md b/keyboard/atomic/README.md index 7c30958438..0e42370ba6 100644 --- a/keyboard/atomic/README.md +++ b/keyboard/atomic/README.md @@ -4,163 +4,7 @@ DIY/Assembled ortholinear 60% keyboard by [Ortholinear Keyboards](http://ortholi ## Quantum MK Firmware -You have access to a bunch of goodies! Check out the Makefile to enable/disable some of the features. Uncomment the `#` to enable them. Setting them to `no` does nothing and will only confuse future you. - - BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality - MIDI_ENABLE = yes # MIDI controls - # UNICODE_ENABLE = yes # Unicode support - this is commented out, just as an example. You have to use #, not // - BLUETOOTH_ENABLE = yes # Enable Bluetooth with the Adafruit EZ-Key HID - -## Quick aliases to common actions - -Your keymap can include shortcuts to common operations (called "function actions" in tmk). - -### Switching and toggling layers - -`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. - -`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). - -`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. - -### Fun with modifier keys - -* `LSFT(kc)` - applies left Shift to *kc* (keycode) - `S(kc)` is an alias -* `RSFT(kc)` - applies right Shift to *kc* -* `LCTL(kc)` - applies left Control to *kc* -* `RCTL(kc)` - applies right Control to *kc* -* `LALT(kc)` - applies left Alt to *kc* -* `RALT(kc)` - applies right Alt to *kc* -* `LGUI(kc)` - applies left GUI (command/win) to *kc* -* `RGUI(kc)` - applies right GUI (command/win) to *kc* - -You can also chain these, like this: - - LALT(LCTL(KC_DEL)) -- this makes a key that sends Alt, Control, and Delete in a single keypress. - -The following shortcuts automatically add `LSFT()` to keycodes to get commonly used symbols. Their long names are also available and documented in `/quantum/keymap_common.h`. - - KC_TILD ~ - KC_EXLM ! - KC_AT @ - KC_HASH # - KC_DLR $ - KC_PERC % - KC_CIRC ^ - KC_AMPR & - KC_ASTR * - KC_LPRN ( - KC_RPRN ) - KC_UNDS _ - KC_PLUS + - KC_LCBR { - KC_RCBR } - KC_PIPE | - KC_COLN : - -`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. - -These are the values you can use for the `mod` in `MT()` (right-hand modifiers are not available): - - * MOD_LCTL - * MOD_LSFT - * MOD_LALT - * MOD_LGUI - -These 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. - -We've added shortcuts to make common modifier/tap (mod-tap) mappings more compact: - - * `CTL_T(kc)` - is LCTL when held and *kc* when tapped - * `SFT_T(kc)` - is LSFT when held and *kc* when tapped - * `ALT_T(kc)` - is LALT when held and *kc* when tapped - * `GUI_T(kc)` - is LGUI when held and *kc* when tapped - * `ALL_T(kc)` - is Hyper (all mods) when held and *kc* when tapped. To read more about what you can do with a Hyper key, see [this blog post by Brett Terpstra](http://brettterpstra.com/2012/12/08/a-useful-caps-lock-key/) - -### 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. - -### Remember: These are just aliases - -These functions work the same way that their `ACTION_*` functions do - they're just quick aliases. To dig into all of the tmk ACTION_* functions, please see the [TMK documentation](https://github.com/jackhumbert/qmk_firmware/blob/master/tmk_core/doc/keymap.md#2-action). - -Instead of using `FNx` when defining `ACTION_*` functions, you can use `F(x)` - the benefit here is being able to use more than 32 function actions (up to 4096), if you happen to need them. - -## Macro shortcuts: Send a whole string when pressing just one key - -Instead of using the `ACTION_MACRO` function, you can simply use `M(n)` to access macro *n* - *n* will get passed into the `action_get_macro` as the `id`, and you can use a switch statement to trigger it. This gets called on the keydown and keyup, so you'll need to use an if statement testing `record->event.pressed` (see keymap_default.c). - -```c -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) // this is the function signature -- just copy/paste it into your keymap file as it is. -{ - switch(id) { - case 0: // this would trigger when you hit a key mapped as M(0) - if (record->event.pressed) { - return MACRO( I(255), T(H), T(E), T(L), T(L), W(255), T(O), END ); // this sends the string 'hello' when the macro executes - } - break; - } - return MACRO_NONE; -}; -``` -A macro can include the following commands: - -* I() change interval of stroke in milliseconds. -* D() press key. -* U() release key. -* T() type key(press and release). -* W() wait (milliseconds). -* END end mark. - -So above you can see the stroke interval changed to 255ms between each keystroke, then a bunch of keys being typed, waits a while, then the macro ends. - -Note: Using macros to have your keyboard send passwords for you is a bad idea. - -### Additional keycode aliases for software-implemented layouts (Colemak, Dvorak, etc) - -Everything is assuming you're in Qwerty (in software) by default, but there is built-in support for using a Colemak or Dvorak layout by including this at the top of your keymap: - - #include "keymap_.h" - -Where is "colemak" or "dvorak". After including this line, you will get access to: - - * `CM_*` for all of the Colemak-equivalent characters - * `DV_*` for all of the Dvorak-equivalent characters - -These implementations assume you're using Colemak or Dvorak on your OS, not on your keyboard - this is referred to as a software-implemented layout. If your computer is in Qwerty and your keymap is in Colemak or Dvorak, this is referred to as a firmware-implemented layout, and you won't need these features. - -To give an example, if you're using software-implemented Colemak, and want to get an `F`, you would use `CM_F` - `KC_F` under these same circumstances would result in `T`. - -## Additional language support - -In `quantum/keymap_extras/`, you'll see various language files - these work the same way as the alternative layout ones do. Most are defined by their two letter country/language code followed by an underscore and a 4-letter abbreviation of its name. `FR_UGRV` which will result in a `ù` when using a software-implemented AZERTY layout. It's currently difficult to send such characters in just the firmware (but it's being worked on - see Unicode support). - -## Unicode support - -You can currently send 4 hex digits with your OS-specific modifier key (RALT for OSX with the "Unicode Hex Input" layout) - this is currently limited to supporting one OS at a time, and requires a recompile for switching. 8 digit hex codes are being worked on. The keycode function is `UC(n)`, where *n* is a 4 digit hexidecimal. Enable from the Makefile. - -## Other firmware shortcut keycodes - -* `RESET` - puts the MCU in DFU mode for flashing new firmware (with `make dfu`) -* `DEBUG` - the firmware into debug mode - you'll need hid_listen to see things -* `BL_ON` - turns the backlight on -* `BL_OFF` - turns the backlight off -* `BL_` - sets the backlight to level *n* -* `BL_INC` - increments the backlight level by one -* `BL_DEC` - decrements the backlight level by one -* `BL_TOGG` - toggles the backlight -* `BL_STEP` - steps through the backlight levels - -Enable the backlight from the Makefile. - -## MIDI functionalty - -This is still a WIP, but check out `quantum/keymap_midi.c` to see what's happening. Enable from the Makefile. - -## Bluetooth functionality - -This requires [some hardware changes](https://www.reddit.com/r/MechanicalKeyboards/comments/3psx0q/the_planck_keyboard_with_bluetooth_guide_and/?ref=search_posts), but can be enabled via the Makefile. The firmware will still output characters via USB, so be aware of this when charging via a computer. It would make sense to have a switch on the Bluefruit to turn it off at will. +For the full Quantum feature list, see [the parent README.md](/README.md). ## Building @@ -172,10 +16,10 @@ Depending on which keymap you would like to use, you will have to compile slight To build with the default keymap, simply run `make`. ### Other Keymaps -Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create file named `keymap_.c` and see keymap document (you can find in top README.md) and existent keymap files. +Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create a file in the keymaps folder named `.c` and see keymap document (you can find in top README.md) and existent keymap files. To build the firmware binary hex file with a keymap just do `make` with `KEYMAP` option like: ``` $ make KEYMAP=[default|jack|] ``` -Keymaps follow the format **__keymap\_\.c__** and are stored in the `keymaps` folder. +Keymaps follow the format **__\.c__** and are stored in the `keymaps` folder. diff --git a/keyboard/atomic/atomic.c b/keyboard/atomic/atomic.c index fa66266a4c..30e8122893 100644 --- a/keyboard/atomic/atomic.c +++ b/keyboard/atomic/atomic.c @@ -1,16 +1,16 @@ #include "atomic.h" __attribute__ ((weak)) -void * matrix_init_user(void) { +void matrix_init_user(void) { // leave these blank -}; +} __attribute__ ((weak)) -void * matrix_scan_user(void) { +void matrix_scan_user(void) { // leave these blank -}; +} -void * matrix_init_kb(void) { +void matrix_init_kb(void) { // put your keyboard start-up code here // runs once when the firmware starts up @@ -25,16 +25,12 @@ void * matrix_init_kb(void) { DDRE |= (1<<6); PORTE |= (1<<6); - if (matrix_init_user) { - (*matrix_init_user)(); - } -}; + matrix_init_user(); +} -void * matrix_scan_kb(void) { +void matrix_scan_kb(void) { // put your looping keyboard code here // runs every cycle (a lot) - if (matrix_scan_user) { - (*matrix_scan_user)(); - } -}; \ No newline at end of file + matrix_scan_user(); +} \ No newline at end of file diff --git a/keyboard/atomic/atomic.h b/keyboard/atomic/atomic.h index 95982ecad1..d5461e424d 100644 --- a/keyboard/atomic/atomic.h +++ b/keyboard/atomic/atomic.h @@ -24,7 +24,10 @@ { K40, K41, KC_NO, K43, KC_NO, KC_NO, K46, KC_NO, KC_NO, KC_NO, K4A, K4B, K4C, K4D, K4E } \ } -void * matrix_init_user(void); -void * matrix_scan_user(void); +void matrix_init_user(void); +void matrix_scan_user(void); +void process_action_user(keyrecord_t *record); +void led_set_user(uint8_t usb_led); +void backlight_init_ports(void); #endif \ No newline at end of file diff --git a/keyboard/atomic/backlight.c b/keyboard/atomic/backlight.c index f69364b2af..647b57e718 100644 --- a/keyboard/atomic/backlight.c +++ b/keyboard/atomic/backlight.c @@ -1,6 +1,8 @@ #include #include "backlight.h" +#include "atomic.h" + #define CHANNEL OCR1C diff --git a/keyboard/atomic/config.h b/keyboard/atomic/config.h index 149aed4714..f30a9e6cc4 100644 --- a/keyboard/atomic/config.h +++ b/keyboard/atomic/config.h @@ -32,36 +32,109 @@ along with this program. If not, see . #define MATRIX_ROWS 5 #define MATRIX_COLS 15 -// Planck PCB default pin-out -// Change this to how you wired your keyboard -// COLS: Left to right, ROWS: Top to bottom +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * +*/ #define COLS (int []){ F1, F0, B0, C7, F4, F5, F6, F7, D4, D6, B4, D7, D3, D2, D1 } #define ROWS (int []){ D0, D5, B5, B6, C6 } /* COL2ROW or ROW2COL */ #define DIODE_DIRECTION COL2ROW -/* define if matrix has ghost */ +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* define if matrix has ghost (lacks anti-ghosting diodes) */ //#define MATRIX_HAS_GHOST /* number of backlight levels */ -/* NOTE: this is the max value of 0..BACKLIGHT_LEVELS so really 16 levels. */ #define BACKLIGHT_LEVELS 3 -/* Set 0 if debouncing isn't needed */ -#define DEBOUNCE 5 - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -/* key combination for command */ +/* + * Force NKRO + * + * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved + * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the + * makefile for this to work.) + * + * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) + * until the next keyboard reset. + * + * NKRO may prevent your keystrokes from being detected in the BIOS, but it is + * fully operational during normal computer usage. + * + * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) + * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by + * bootmagic, NKRO mode will always be enabled until it is toggled again during a + * power-up. + * + */ +//#define FORCE_NKRO + +/* + * Magic Key Options + * + * Magic keys are hotkey commands that allow control over firmware functions of + * the keyboard. They are best used in combination with the HID Listen program, + * found here: https://www.pjrc.com/teensy/hid_listen.html + * + * The options below allow the magic key functionality to be changed. This is + * useful if your keyboard/keypad is missing keys and you want magic key support. + * + */ + +/* key combination for magic key command */ #define IS_COMMAND() ( \ keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ ) +/* control how magic key switches layers */ +//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true +//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true +//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false +/* override magic key keymap */ +//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS +//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS +//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM +//#define MAGIC_KEY_HELP1 H +//#define MAGIC_KEY_HELP2 SLASH +//#define MAGIC_KEY_DEBUG D +//#define MAGIC_KEY_DEBUG_MATRIX X +//#define MAGIC_KEY_DEBUG_KBD K +//#define MAGIC_KEY_DEBUG_MOUSE M +//#define MAGIC_KEY_VERSION V +//#define MAGIC_KEY_STATUS S +//#define MAGIC_KEY_CONSOLE C +//#define MAGIC_KEY_LAYER0_ALT1 ESC +//#define MAGIC_KEY_LAYER0_ALT2 GRAVE +//#define MAGIC_KEY_LAYER0 0 +//#define MAGIC_KEY_LAYER1 1 +//#define MAGIC_KEY_LAYER2 2 +//#define MAGIC_KEY_LAYER3 3 +//#define MAGIC_KEY_LAYER4 4 +//#define MAGIC_KEY_LAYER5 5 +//#define MAGIC_KEY_LAYER6 6 +//#define MAGIC_KEY_LAYER7 7 +//#define MAGIC_KEY_LAYER8 8 +//#define MAGIC_KEY_LAYER9 9 +//#define MAGIC_KEY_BOOTLOADER PAUSE +//#define MAGIC_KEY_LOCK CAPS +//#define MAGIC_KEY_EEPROM E +//#define MAGIC_KEY_NKRO N +//#define MAGIC_KEY_SLEEP_LED Z /* * Feature disable options diff --git a/keyboard/atomic/keymaps/keymap_abienz.c b/keyboard/atomic/keymaps/abienz.c similarity index 100% rename from keyboard/atomic/keymaps/keymap_abienz.c rename to keyboard/atomic/keymaps/abienz.c diff --git a/keyboard/atomic/keymaps/default.c b/keyboard/atomic/keymaps/default.c new file mode 100644 index 0000000000..0ede363a1f --- /dev/null +++ b/keyboard/atomic/keymaps/default.c @@ -0,0 +1,234 @@ +#include "atomic.h" + +// Fillers to make layering more clear +#define _______ KC_TRNS +#define ___T___ KC_TRNS +#define XXXXXXX KC_NO + +// Layer shorthand +#define _QW 0 +#define _CM 1 +#define _DV 2 +#define _LW 3 +#define _RS 4 +#define _FN 5 + +/* ROW 1 OPTIONS + * .--------------------------------------------------------------------------------------------------------------------------------------. + * | | | | | | | | | | | | | | | | + * '--------------------------------------------------------------------------------------------------------------------------------------' + * .- 2u ------------. + * | KEY . XXXXXX | + * '-----------------' + */ + +/* ROW 2 OPTIONS + * .--------------------------------------------------------------------------------------------------------------------------------------. + * | | | | | | | | | | | | | | | | + * '--------------------------------------------------------------------------------------------------------------------------------------' + * .- 2u ------------. .- 2u ------------. + * | KEY . XXXXXX | | KEY . XXXXXX | + * '-----------------' '-----------------' + */ + +/* ROW 3 OPTIONS + * .--------------------------------------------------------------------------------------------------------------------------------------. + * | | | | | | | | | | | | | | | | + * '--------------------------------------------------------------------------------------------------------------------------------------' + * .- 2u ------------. .- 2u ------------. + * | KEY . XXXXXX | | X | + * '-----------------' '-----------------' + * .- 2u ------------. + * | X | + * '-----------------' + */ + +/* ROW 4 OPTIONS + * .--------------------------------------------------------------------------------------------------------------------------------------. + * | | | | | | | | | | | | | | | | + * '--------------------------------------------------------------------------------------------------------------------------------------' + * .- 2u ------------. + * | KEY . XXXXXX | + * '-----------------' + * .- 2u ------------. .- 2u ------------. + * | KEY . XXXXXX | | KEY . XXXXXX | + * '-----------------' '-----------------' + * .- 2u ------------. + * | KEY . XXXXXX | + * '-----------------' + */ + +/* ROW 5 OPTIONS + * .--------------------------------------------------------------------------------------------------------------------------------------. + * | | | | | | | | | | | | | | | | + * '--------------------------------------------------------------------------------------------------------------------------------------' + * .- 1.25u --+ 1.25u ------- 1.25u +--- 1.25u --- 2u -------------- 1.25u ---- 1.25u ------ 1.25u +---- 1.25u . + * | X | X | X | X | X | X | X | X | X | + * '-----------------------------------------------------------------------------------------------------------' + * .- 2u ------------. + * | X | + * '-----------------' + * .--------------------- 6.25u ----------------------------. + * | X | + * '--------------------------------------------------------' + * .----------------------- 6.25u ---------------------------- 1.25u ---- 1.25u ---- 1.25u ------ 1.25u +-- 1.25u --. + * | X | X | X | X | X | X | + * '----------------------------------------------------------------------------------------------------------------' + */ + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* QWERTY - MIT ENHANCED / GRID COMPATIBLE + * .---------------------------------------------------------------------------------------------------------------------- 2u ------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | XXXXXX . BACKSP | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------| + * | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | DEL | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ------------+--------| + * | ESC | A | S | D | F | G | H | J | K | L | ; | ' | XXXXXX . ENTER | PG UP | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ---------------------+--------| + * | LSHIFT | Z | X | C | V | B | N | M | , | . | / | XXXXXX . RSHIFT | UP | PG DN | + * |--------+--------+--------+--------+--------+- 2u ------------+--------+--------+--------+--------+-----------------+--------+--------| + * | BRITE | LCTRL | LALT | LGUI | RAISE | XXXXXX . SPACE | LOWER | RGUI | RALT | RCTRL | FN | LEFT | DOWN | RIGHT | + * '--------------------------------------------------------------------------------------------------------------------------------------' + */ + + [_QW] = { /* QWERTY */ + { KC_GRV, 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 }, + { 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 }, + { KC_ESC, 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 }, + { 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 }, + { M(0), KC_LCTL, KC_LALT, KC_LGUI, MO(_RS), KC_SPC, KC_SPC, MO(_LW), KC_RGUI, KC_RALT, KC_RCTL, MO(_FN), KC_LEFT, KC_DOWN, KC_RGHT }, + }, + +/* COLEMAK - MIT ENHANCED / GRID COMPATIBLE + * .---------------------------------------------------------------------------------------------------------------------- 2u ------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | XXXXXX . BACKSP | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------| + * | TAB | Q | W | F | P | G | J | L | U | Y | ; | [ | ] | \ | DEL | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ------------+--------| + * | ESC | A | R | S | T | D | H | N | E | I | O | ' | XXXXXX . ENTER | PG UP | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ---------------------+--------| + * | LSHIFT | Z | X | C | V | B | K | M | , | . | / | XXXXXX . RSHIFT | UP | PG DN | + * |--------+--------+--------+--------+--------+- 2u ------------+--------+--------+--------+--------+-----------------+--------+--------| + * | BRITE | LCTRL | LALT | LGUI | RAISE | XXXXXX . SPACE | LOWER | RGUI | RALT | RCTRL | FN | LEFT | DOWN | RIGHT | + * '--------------------------------------------------------------------------------------------------------------------------------------' + */ + + [_CM] = { /* COLEMAK */ + { KC_GRV, 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 }, + { 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 }, + { KC_ESC, 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 }, + { 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 }, + { M(0), KC_LCTL, KC_LALT, KC_LGUI, MO(_RS), KC_SPC, KC_SPC, MO(_LW), KC_RGUI, KC_RALT, KC_RCTL, MO(_FN), KC_LEFT, KC_DOWN, KC_RGHT }, + }, + +/* DVORAK - MIT ENHANCED / GRID COMPATIBLE + * .---------------------------------------------------------------------------------------------------------------------- 2u ------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | XXXXXX . BACKSP | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------| + * | TAB | ' | , | . | P | Y | F | G | C | R | L | [ | ] | \ | DEL | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ------------+--------| + * | ESC | A | O | E | U | I | D | H | T | N | S | / | XXXXXX . ENTER | PG UP | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ---------------------+--------| + * | LSHIFT | ; | Q | J | K | X | B | M | W | V | Z | XXXXXX . RSHIFT | UP | PG DN | + * |--------+--------+--------+--------+--------+- 2u ------------+--------+--------+--------+--------+-----------------+--------+--------| + * | BRITE | LCTRL | LALT | LGUI | RAISE | XXXXXX . SPACE | LOWER | RGUI | RALT | RCTRL | FN | LEFT | DOWN | RIGHT | + * '--------------------------------------------------------------------------------------------------------------------------------------' + */ + + [_DV] = { /* DVORAK */ + { KC_GRV, 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 }, + { KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL }, + { KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH, KC_ENT, KC_ENT, KC_PGUP }, + { 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 }, + { M(0), KC_LCTL, KC_LALT, KC_LGUI, MO(_RS), KC_SPC, KC_SPC, MO(_LW), KC_RGUI, KC_RALT, KC_RCTL, MO(_FN), KC_LEFT, KC_DOWN, KC_RGHT }, + }, + +/* LOWERED + * .---------------------------------------------------------------------------------------------------------------------- 2u ------------. + * | | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | XXXXXX . | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------| + * | | ! | @ | # | $ | % | ^ | & | * | ( | ) | | | | INS | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ------------+--------| + * | | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | XXXXXX . | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ---------------------+--------| + * | | F7 | F8 | F9 | F10 | F11 | F12 | | | | | XXXXXX . | | | + * |--------+--------+--------+--------+--------+- 2u ------------+--------+--------+--------+--------+-----------------+--------+--------| + * | | | | | | XXXXXX . | | | | | | | | | + * '--------------------------------------------------------------------------------------------------------------------------------------' + */ + + [_LW] = { /* LOWERED */ + { _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, ___T___, ___T___ }, + { _______, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______, _______, _______, KC_INS }, + { _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, ___T___, ___T___, _______ }, + { _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, ___T___, ___T___, _______, _______ }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, + }, + +/* RAISED + * .---------------------------------------------------------------------------------------------------------------------- 2u ------------. + * | | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | XXXXXX . | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------| + * | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | | | | INS | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ------------+--------| + * | | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | XXXXXX . | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ---------------------+--------| + * | | F7 | F8 | F9 | F10 | F11 | F12 | | | | | XXXXXX . | | | + * |--------+--------+--------+--------+--------+- 2u ------------+--------+--------+--------+--------+-----------------+--------+--------| + * | | | | | | XXXXXX . | | | | | | | | | + * '--------------------------------------------------------------------------------------------------------------------------------------' + */ + + [_RS] = { /* RAISED */ + { _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, ___T___, ___T___ }, + { _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______, _______, _______, KC_INS }, + { _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, ___T___, ___T___, _______ }, + { _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, ___T___, ___T___, _______, _______ }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, + }, + +/* FUNCTION + * .---------------------------------------------------------------------------------------------------------------------- 2u ------------. + * | NUM LK | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | XXXXXX . | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------| + * | SCR LK | F13 | F14 | F15 | F16 | F17 | F18 | F19 | F20 | F21 | F22 | F23 | F24 | PAUSE | PR SCR | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ------------+--------| + * | CAP LK | MS BT5 | MS BT4 | MS BT3 | MS BT2 | SLOW M | FAST M | NEXT | VOL+ | VOL- | PLAY | | XXXXXX . | WHEEL+ | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ---------------------+--------| + * | | | QWERTY | COLEMK | DVORAK | | | | | | | XXXXXX . | MOUS U | WHEEL- | + * |--------+--------+--------+--------+--------+- 2u ------------+--------+--------+--------+--------+-----------------+--------+--------| + * | | | | | | XXXXXX . MS BT1 | | | | | | MOUS L | MOUS D | MOUS R | + * '--------------------------------------------------------------------------------------------------------------------------------------' + */ + + [_FN] = { /* FUNCTION */ + { 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, ___T___, ___T___ }, + { 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, KC_PSCR }, + { KC_CAPS, KC_BTN5, KC_BTN4, KC_BTN3, KC_BTN2, KC_ACL0, KC_ACL2, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY, _______, ___T___, ___T___, KC_WH_U }, + { _______, _______, DF(_QW), DF(_CM), DF(_DV), _______, _______, _______, _______, _______, _______, ___T___, ___T___, KC_MS_U, KC_WH_D }, + { _______, _______, _______, _______, _______, KC_BTN1, KC_BTN1, _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R }, + }, +}; + +const uint16_t PROGMEM fn_actions[] = { + +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch(id) { + case 0: + if (record->event.pressed) { + register_code(KC_RSFT); + #ifdef BACKLIGHT_ENABLE + backlight_step(); + #endif + } else { + unregister_code(KC_RSFT); + } + break; + } + return MACRO_NONE; +}; diff --git a/keyboard/atomic/keymaps/keymap_default.c b/keyboard/atomic/keymaps/keymap_default.c deleted file mode 100644 index f37d9d9a51..0000000000 --- a/keyboard/atomic/keymaps/keymap_default.c +++ /dev/null @@ -1,79 +0,0 @@ -#include "atomic.h" - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = { /* Qwerty */ - { KC_GRV, 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_DEL }, -// ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐ -// │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -// └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘ -// ┌─ 2u ────────────┐ -// │ X │ -// └─────────────────┘ - { 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 }, -// ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐ -// │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -// └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘ -// ┌─ 2u ────────────┐ ┌─ 2u ────────────┐ -// │ X │ │ X │ -// └─────────────────┘ └─────────────────┘ - { KC_ESC, 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 }, -// ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐ -// │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -// └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘ -// ┌─ 2u ────────────┐ ┌─ 2u ────────────┐ -// │ X │ │ X │ -// └─────────────────┘ └─────────────────┘ -// ┌─ 2u ────────────┐ -// │ X │ -// └─────────────────┘ - { 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 }, -// ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐ -// │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -// └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘ -// ┌─ 2u ────────────┐ -// │ X │ -// └─────────────────┘ -// ┌─ 2u ────────────┐ ┌─ 2u ────────────┐ -// │ X │ │ X │ -// └─────────────────┘ └─────────────────┘ -// ┌─ 2u ────────────┐ -// │ X │ -// └─────────────────┘ - { BL_STEP, KC_LCTL, KC_LALT, KC_LGUI, KC_LGUI, KC_SPC, KC_SPC, KC_RGUI, KC_RGUI, KC_RALT, KC_RCTL, BL_STEP, KC_LEFT, KC_DOWN, KC_RGHT }, -// ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐ -// │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -// └────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘ -// ┌─ 1.25u ──┬ 1.25u ───┬─── 1.25u ┬─── 1.25u ─┬─ 2u ────────────┬─ 1.25u ──┬─ 1.25u ──┬─── 1.25u ┬──── 1.25u ┐ -// │ X │ X │ X │ X │ X │ X │ X │ X │ X │ -// └──────────┴──────────┴──────────┴───────────┴─────────────────┴──────────┴──────────┴──────────┴───────────┘ -// ┌─ 2u ────────────┐ -// │ X │ -// └─────────────────┘ -// ┌───────────────────── 6.25u ────────────────────────────┐ -// │ X │ -// └────────────────────────────────────────────────────────┘ -// ┌─────────────────────── 6.25u ──────────────────────────┬─ 1.25u ──┬─ 1.25u ──┬─ 1.25u ──┬─── 1.25u ┬── 1.25u ──┐ -// │ X │ X │ X │ X │ X │ X │ -// └────────────────────────────────────────────────────────┴──────────┴──────────┴──────────┴──────────┴───────────┘ - } -}; - -const uint16_t PROGMEM fn_actions[] = { - [1] = ACTION_LAYER_MOMENTARY(2), // to RAISE - [2] = ACTION_LAYER_MOMENTARY(3), // to LOWER - - [3] = ACTION_DEFAULT_LAYER_SET(0), - [4] = ACTION_DEFAULT_LAYER_SET(1), - -}; - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - // MACRODOWN only works in this function - switch(id) { - case 0: - return MACRODOWN(TYPE(KC_T), END); - break; - } - return MACRO_NONE; -}; diff --git a/keyboard/atomic/keymaps/keymap_michelle.c b/keyboard/atomic/keymaps/michelle.c similarity index 100% rename from keyboard/atomic/keymaps/keymap_michelle.c rename to keyboard/atomic/keymaps/michelle.c diff --git a/keyboard/atomic/keymaps/pc_atomic.c b/keyboard/atomic/keymaps/pc_atomic.c new file mode 100644 index 0000000000..bdf575046b --- /dev/null +++ b/keyboard/atomic/keymaps/pc_atomic.c @@ -0,0 +1,75 @@ +#include "atomic.h" + +#define _QW 0 +#define _LW 1 +#define _RS 2 +#define _FN 3 + +#define _______ KC_TRNS +#define ___T___ KC_TRNS +#define XXXXXXX KC_NO + +/* + * .---------------------------------------------------------------------------------------------------------------------- 2u ------------. + * | ESC | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | XXXXXX . BACKSP | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------| + * | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | DEL | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ------------+--------| + * | CAPS | A | S | D | F | G | H | J | K | L | ; | ' | XXXXXX . ENTER | PG UP | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ---------------------+--------| + * | LSHIFT | Z | X | C | V | B | N | M | , | . | / | XXXXXX . RSHIFT | UP | PG DN | + * |--------+--------+--------+--------+--------+- 2u ------------+--------+--------+--------+--------+-----------------+--------+--------| + * | LCTRL | LWIN | FN | LALT | RAISED | XXXXXX . SPACE | LOWER | RALT | HOME | END | RCTRL | LEFT | DOWN | RIGHT | + * '--------------------------------------------------------------------------------------------------------------------------------------' + */ + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_QW] = { /* QWERTY */ + { 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, XXXXXXX }, + { 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 }, + { 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, XXXXXXX, KC_PGUP }, + { KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, XXXXXXX, KC_UP, KC_PGDN }, + { KC_LCTL, KC_LGUI, MO(_FN), KC_LALT, MO(_RS), KC_SPC, XXXXXXX, MO(_LW), KC_RALT, KC_HOME, KC_END, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT }, + }, + [_LW] = { /* LOWERED */ + { 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, ___T___, ___T___ }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_INS }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___T___, ___T___, _______ }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___T___, ___T___, _______, _______ }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, + }, + [_RS] = { /* RAISED */ + { KC_TILD, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, ___T___, ___T___ }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_INS }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___T___, ___T___, _______ }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___T___, ___T___, _______, _______ }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, + }, + [_FN] = { /* FUNCTION */ + { 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, ___T___, ___T___ }, + { 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, KC_PSCR }, + { KC_CAPS, KC_BTN5, KC_BTN4, KC_BTN3, KC_BTN2, KC_ACL0, KC_ACL2, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY, _______, ___T___, ___T___, KC_WH_U }, + { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ___T___, ___T___, KC_MS_U, KC_WH_D }, + { _______, _______, _______, _______, _______, KC_BTN1, KC_BTN1, _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R }, + }, +}; + +const uint16_t PROGMEM fn_actions[] = { + [1] = ACTION_LAYER_MOMENTARY(2), // to RAISE + [2] = ACTION_LAYER_MOMENTARY(3), // to LOWER + + [3] = ACTION_DEFAULT_LAYER_SET(0), + [4] = ACTION_DEFAULT_LAYER_SET(1), + +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch(id) { + case 0: + return MACRODOWN(TYPE(KC_T), END); + break; + } + return MACRO_NONE; +}; diff --git a/keyboard/atreus/Makefile b/keyboard/atreus/Makefile new file mode 100644 index 0000000000..a6fddd70d2 --- /dev/null +++ b/keyboard/atreus/Makefile @@ -0,0 +1,152 @@ +#---------------------------------------------------------------------------- +# On command line: +# +# make all = Make software. +# +# make clean = Clean out built project files. +# +# make coff = Convert ELF to AVR COFF. +# +# make extcoff = Convert ELF to AVR Extended COFF. +# +# make program = Download the hex file to the device. +# Please customize your programmer settings(PROGRAM_CMD) +# +# make teensy = Download the hex file to the device, using teensy_loader_cli. +# (must have teensy_loader_cli installed). +# +# make dfu = Download the hex file to the device, using dfu-programmer (must +# have dfu-programmer installed). +# +# make flip = Download the hex file to the device, using Atmel FLIP (must +# have Atmel FLIP installed). +# +# make dfu-ee = Download the eeprom file to the device, using dfu-programmer +# (must have dfu-programmer installed). +# +# make flip-ee = Download the eeprom file to the device, using Atmel FLIP +# (must have Atmel FLIP installed). +# +# make debug = Start either simulavr or avarice as specified for debugging, +# with avr-gdb or avr-insight as the front end for debugging. +# +# make filename.s = Just compile filename.c into the assembler code only. +# +# make filename.i = Create a preprocessed source file for use in submitting +# bug reports to the GCC project. +# +# To rebuild project do "make clean" then "make all". +#---------------------------------------------------------------------------- + +# Target file name (without extension). +TARGET = atreus + + +# Directory common source filess exist +TOP_DIR = ../.. +TMK_DIR = ../../tmk_core + +# Directory keyboard dependent files exist +TARGET_DIR = . + +# # project specific files +SRC = atreus.c + +ifdef KEYMAP + SRC := keymaps/$(KEYMAP).c $(SRC) +else + SRC := keymaps/default.c $(SRC) +endif + +ifdef TEENSY2 + OPT_DEFS += -DATREUS_TEENSY2 + ATRUES_UPLOAD_COMMAND = teensy_loader_cli -w -mmcu=$(MCU) $(TARGET).hex +else + OPT_DEFS += -DATREUS_ASTAR + ATRUES_UPLOAD_COMMAND = while [ ! -r $(USB) ]; do sleep 1; done; \ + avrdude -p $(MCU) -c avr109 -U flash:w:$(TARGET).hex -P $(USB) +endif + +CONFIG_H = config.h + +# MCU name +#MCU = at90usb1287 +MCU = atmega32u4 + +# Processor frequency. +# This will define a symbol, F_CPU, in all source code files equal to the +# processor frequency in Hz. You can then use this symbol in your source code to +# calculate timings. Do NOT tack on a 'UL' at the end, this will be done +# automatically to create a 32-bit value in your source code. +# +# This will be an integer division of F_USB below, as it is sourced by +# F_USB after it has run through any CPU prescalers. Note that this value +# does not *change* the processor frequency - it should merely be updated to +# reflect the processor speed set externally so that the code can use accurate +# software delays. +F_CPU = 16000000 + + +# +# LUFA specific +# +# Target architecture (see library "Board Types" documentation). +ARCH = AVR8 + +# Input clock frequency. +# This will define a symbol, F_USB, in all source code files equal to the +# input clock frequency (before any prescaling is performed) in Hz. This value may +# differ from F_CPU if prescaling is used on the latter, and is required as the +# raw input clock is fed directly to the PLL sections of the AVR for high speed +# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' +# at the end, this will be done automatically to create a 32-bit value in your +# source code. +# +# If no clock division is performed on the input clock inside the AVR (via the +# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. +F_USB = $(F_CPU) + +# Interrupt driven control endpoint task(+60) +OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT + + +# Boot Section Size in *bytes* +# Teensy halfKay 512 +# Teensy++ halfKay 1024 +# Atmel DFU loader 4096 +# LUFA bootloader 4096 +# USBaspLoader 2048 +OPT_DEFS += -DBOOTLOADER_SIZE=4096 + + +# Build Options +# comment out to disable the options. +# +#BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = yes # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = yes # Console for debug(+400) +COMMAND_ENABLE = yes # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +# SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend +NKRO_ENABLE = yes # USB Nkey Rollover - not yet supported in LUFA +# BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +# MIDI_ENABLE = YES # MIDI controls +UNICODE_ENABLE = YES # Unicode +# BLUETOOTH_ENABLE = yes # Enable Bluetooth with the Adafruit EZ-Key HID + + +# Optimize size but this may cause error "relocation truncated to fit" +#EXTRALDFLAGS = -Wl,--relax + +# Search Path +VPATH += $(TARGET_DIR) +VPATH += $(TOP_DIR) +VPATH += $(TMK_DIR) + +include $(TOP_DIR)/quantum/quantum.mk + +USB ?= /dev/cu.usbmodem1411 + +upload: build + $(ATRUES_UPLOAD_COMMAND) diff --git a/keyboard/atreus/README.md b/keyboard/atreus/README.md new file mode 100644 index 0000000000..aacf2841f4 --- /dev/null +++ b/keyboard/atreus/README.md @@ -0,0 +1,186 @@ +atreus keyboard firmware +====================== + +## Quantum MK Firmware + +You have access to a bunch of goodies! Check out the Makefile to enable/disable some of the features. Uncomment the `#` to enable them. Setting them to `no` does nothing and will only confuse future you. + + BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality + MIDI_ENABLE = yes # MIDI controls + # UNICODE_ENABLE = yes # Unicode support - this is commented out, just as an example. You have to use #, not // + BLUETOOTH_ENABLE = yes # Enable Bluetooth with the Adafruit EZ-Key HID + +## Atreus specific information + +These configuration files are specifically for the Atreus keyboards created by Phil Hagelberg (@technomancy). This keyboard is available in two variants: one powered by a Teensy 2, one powered by an A-Star. This repository currently assumes that you have an A-Star powered Atreus. If you are using a Teensy2, specify that by adding `TEENSY2=yes` to your `make` commands. + +If you are coming from the [atreus-firmware](https://github.com/technomancy/atreus-firmware), we've also brought forward the `make upload` command for you to use. + +## Quick aliases to common actions + +Your keymap can include shortcuts to common operations (called "function actions" in tmk). + +### Switching and toggling layers + +`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. + +`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). + +`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. + +### Fun with modifier keys + +* `LSFT(kc)` - applies left Shift to *kc* (keycode) - `S(kc)` is an alias +* `RSFT(kc)` - applies right Shift to *kc* +* `LCTL(kc)` - applies left Control to *kc* +* `RCTL(kc)` - applies right Control to *kc* +* `LALT(kc)` - applies left Alt to *kc* +* `RALT(kc)` - applies right Alt to *kc* +* `LGUI(kc)` - applies left GUI (command/win) to *kc* +* `RGUI(kc)` - applies right GUI (command/win) to *kc* + +You can also chain these, like this: + + LALT(LCTL(KC_DEL)) -- this makes a key that sends Alt, Control, and Delete in a single keypress. + +The following shortcuts automatically add `LSFT()` to keycodes to get commonly used symbols. Their long names are also available and documented in `/quantum/keymap_common.h`. + + KC_TILD ~ + KC_EXLM ! + KC_AT @ + KC_HASH # + KC_DLR $ + KC_PERC % + KC_CIRC ^ + KC_AMPR & + KC_ASTR * + KC_LPRN ( + KC_RPRN ) + KC_UNDS _ + KC_PLUS + + KC_LCBR { + KC_RCBR } + KC_PIPE | + KC_COLN : + +`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. + +These are the values you can use for the `mod` in `MT()` (right-hand modifiers are not available): + + * MOD_LCTL + * MOD_LSFT + * MOD_LALT + * MOD_LGUI + +These 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. + +We've added shortcuts to make common modifier/tap (mod-tap) mappings more compact: + + * `CTL_T(kc)` - is LCTL when held and *kc* when tapped + * `SFT_T(kc)` - is LSFT when held and *kc* when tapped + * `ALT_T(kc)` - is LALT when held and *kc* when tapped + * `GUI_T(kc)` - is LGUI when held and *kc* when tapped + * `ALL_T(kc)` - is Hyper (all mods) when held and *kc* when tapped. To read more about what you can do with a Hyper key, see [this blog post by Brett Terpstra](http://brettterpstra.com/2012/12/08/a-useful-caps-lock-key/) + +### 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. + +### Remember: These are just aliases + +These functions work the same way that their `ACTION_*` functions do - they're just quick aliases. To dig into all of the tmk ACTION_* functions, please see the [TMK documentation](https://github.com/jackhumbert/qmk_firmware/blob/master/tmk_core/doc/keymap.md#2-action). + +Instead of using `FNx` when defining `ACTION_*` functions, you can use `F(x)` - the benefit here is being able to use more than 32 function actions (up to 4096), if you happen to need them. + +## Macro shortcuts: Send a whole string when pressing just one key + +Instead of using the `ACTION_MACRO` function, you can simply use `M(n)` to access macro *n* - *n* will get passed into the `action_get_macro` as the `id`, and you can use a switch statement to trigger it. This gets called on the keydown and keyup, so you'll need to use an if statement testing `record->event.pressed` (see keymap_default.c). + +```c +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) // this is the function signature -- just copy/paste it into your keymap file as it is. +{ + switch(id) { + case 0: // this would trigger when you hit a key mapped as M(0) + if (record->event.pressed) { + return MACRO( I(255), T(H), T(E), T(L), T(L), W(255), T(O), END ); // this sends the string 'hello' when the macro executes + } + break; + } + return MACRO_NONE; +}; +``` +A macro can include the following commands: + +* I() change interval of stroke in milliseconds. +* D() press key. +* U() release key. +* T() type key(press and release). +* W() wait (milliseconds). +* END end mark. + +So above you can see the stroke interval changed to 255ms between each keystroke, then a bunch of keys being typed, waits a while, then the macro ends. + +Note: Using macros to have your keyboard send passwords for you is a bad idea. + +### Additional keycode aliases for software-implemented layouts (Colemak, Dvorak, etc) + +Everything is assuming you're in Qwerty (in software) by default, but there is built-in support for using a Colemak or Dvorak layout by including this at the top of your keymap: + + #include "keymap_.h" + +Where is "colemak" or "dvorak". After including this line, you will get access to: + + * `CM_*` for all of the Colemak-equivalent characters + * `DV_*` for all of the Dvorak-equivalent characters + +These implementations assume you're using Colemak or Dvorak on your OS, not on your keyboard - this is referred to as a software-implemented layout. If your computer is in Qwerty and your keymap is in Colemak or Dvorak, this is referred to as a firmware-implemented layout, and you won't need these features. + +To give an example, if you're using software-implemented Colemak, and want to get an `F`, you would use `CM_F` - `KC_F` under these same circumstances would result in `T`. + +## Additional language support + +In `quantum/keymap_extras/`, you'll see various language files - these work the same way as the alternative layout ones do. Most are defined by their two letter country/language code followed by an underscore and a 4-letter abbreviation of its name. `FR_UGRV` which will result in a `ù` when using a software-implemented AZERTY layout. It's currently difficult to send such characters in just the firmware (but it's being worked on - see Unicode support). + +## Unicode support + +You can currently send 4 hex digits with your OS-specific modifier key (RALT for OSX with the "Unicode Hex Input" layout) - this is currently limited to supporting one OS at a time, and requires a recompile for switching. 8 digit hex codes are being worked on. The keycode function is `UC(n)`, where *n* is a 4 digit hexidecimal. Enable from the Makefile. + +## Other firmware shortcut keycodes + +* `RESET` - puts the MCU in DFU mode for flashing new firmware (with `make dfu`) +* `DEBUG` - the firmware into debug mode - you'll need hid_listen to see things +* `BL_ON` - turns the backlight on +* `BL_OFF` - turns the backlight off +* `BL_` - sets the backlight to level *n* +* `BL_INC` - increments the backlight level by one +* `BL_DEC` - decrements the backlight level by one +* `BL_TOGG` - toggles the backlight +* `BL_STEP` - steps through the backlight levels + +Enable the backlight from the Makefile. + +## MIDI functionalty + +This is still a WIP, but check out `quantum/keymap_midi.c` to see what's happening. Enable from the Makefile. + +## Bluetooth functionality + +This requires [some hardware changes](https://www.reddit.com/r/MechanicalKeyboards/comments/3psx0q/the_planck_keyboard_with_bluetooth_guide_and/?ref=search_posts), but can be enabled via the Makefile. The firmware will still output characters via USB, so be aware of this when charging via a computer. It would make sense to have a switch on the Bluefruit to turn it off at will. + +## Building + +Download or clone the whole firmware and navigate to the keyboard/planck folder. Once your dev env is setup, you'll be able to type `make` to generate your .hex - you can then use `make dfu` to program your PCB once you hit the reset button. + +Depending on which keymap you would like to use, you will have to compile slightly differently. + +### Default +To build with the default keymap, simply run `make`. + +### Other Keymaps +Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create file named `.c` and see keymap document (you can find in top README.md) and existent keymap files. + +To build the firmware binary hex file with a keymap just do `make` with `KEYMAP` option like: +``` +$ make KEYMAP=[default|jack|] +``` +Keymaps follow the format **__\.c__** and are stored in the `keymaps` folder. diff --git a/keyboard/atreus/atreus.c b/keyboard/atreus/atreus.c new file mode 100644 index 0000000000..9d1de631bb --- /dev/null +++ b/keyboard/atreus/atreus.c @@ -0,0 +1,29 @@ +#include "atreus.h" + +__attribute__ ((weak)) +void matrix_init_user(void) { + // leave these blank +}; + +__attribute__ ((weak)) +void matrix_scan_user(void) { + // leave these blank +}; + +void matrix_init_kb(void) { + // put your keyboard start-up code here + // runs once when the firmware starts up + + if (matrix_init_user) { + (*matrix_init_user)(); + } +}; + +void matrix_scan_kb(void) { + // put your looping keyboard code here + // runs every cycle (a lot) + + if (matrix_scan_user) { + (*matrix_scan_user)(); + } +}; diff --git a/keyboard/atreus/atreus.h b/keyboard/atreus/atreus.h new file mode 100644 index 0000000000..8d5989e442 --- /dev/null +++ b/keyboard/atreus/atreus.h @@ -0,0 +1,28 @@ +#ifndef ATREUS_H +#define ATREUS_H + +#include "matrix.h" +#include "keymap_common.h" +#include "backlight.h" +#include + +// This a shortcut to help you visually see your layout. +// The first section contains all of the arguements +// The second converts the arguments into a two-dimensional array +#define KEYMAP( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a \ +) \ +{ \ + { k00, k01, k02, k03, k04, KC_NO, k05, k06, k07, k08, k09 }, \ + { k10, k11, k12, k13, k14, KC_NO, k15, k16, k17, k18, k19 }, \ + { k20, k21, k22, k23, k24, k35, k25, k26, k27, k28, k29 }, \ + { k2a, k30, k31, k32, k33, k34, k36, k37, k38, k39, k3a } \ +} + +void matrix_init_user(void); +void matrix_scan_user(void); + +#endif diff --git a/keyboard/atreus/config.h b/keyboard/atreus/config.h new file mode 100644 index 0000000000..ca0cd7e47a --- /dev/null +++ b/keyboard/atreus/config.h @@ -0,0 +1,86 @@ +/* +Copyright 2012 Jun Wako + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#ifndef CONFIG_H +#define CONFIG_H + +#include "config_common.h" + +/* USB Device descriptor parameter */ + +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x6060 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Technomancy +#define PRODUCT Atreus +#define DESCRIPTION q.m.k. keyboard firmware for Atreus + +/* key matrix size */ +#define MATRIX_ROWS 4 +#define MATRIX_COLS 11 + +// Change this to how you wired your keyboard +// COLS: Left to right, ROWS: Top to bottom +#if defined(ATREUS_ASTAR) + #define COLS (int []){ B7, D6, F7, F6, B6, D4, E6, B4, B5, C6, D7 } + #define ROWS (int []){ D0, D1, D3, D2 } +#elif defined(ATREUS_TEENSY2) + #define COLS (int []){ F6, F5, F4, B7, B6, B5, B4, B3, B2, B1, B0} + #define ROWS (int []){ D0, D1, D2, D3 } +#endif + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* define if matrix has ghost */ +//#define MATRIX_HAS_GHOST + +/* number of backlight levels */ +//#define BACKLIGHT_LEVELS 3 + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* key combination for command */ +#define IS_COMMAND() ( \ + keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ +) + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION + +#endif diff --git a/keyboard/atreus/keymaps/default.c b/keyboard/atreus/keymaps/default.c new file mode 100644 index 0000000000..1c4280ff56 --- /dev/null +++ b/keyboard/atreus/keymaps/default.c @@ -0,0 +1,51 @@ +// this is the style you want to emulate. +// This is the canonical layout file for the Quantum project. If you want to add another keyboard, + +#include "atreus.h" + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +#define _QW 0 +#define _RS 1 +#define _LW 2 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[_QW] = { /* Qwerty */ + {KC_Q, KC_W, KC_E, KC_R, KC_T, KC_TRNS, KC_Y, KC_U, KC_I, KC_O, KC_P }, + {KC_A, KC_S, KC_D, KC_F, KC_G, KC_TRNS, KC_H, KC_J, KC_K, KC_L, KC_SCLN }, + {KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LALT, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH }, + {KC_ESC, KC_TAB, KC_LGUI, KC_LSFT, KC_BSPC, KC_LCTL, KC_SPC, MO(_RS), KC_MINS, KC_QUOT, KC_ENT } +}, +[_RS] = { /* [> RAISE <] */ + {KC_EXLM, KC_AT, KC_LCBR, KC_RCBR, KC_PIPE, KC_TRNS, KC_PGUP, KC_7, KC_8, KC_9, KC_ASTR}, + {KC_HASH, KC_DLR, KC_LPRN, KC_RPRN, KC_GRV, KC_TRNS, KC_PGDN, KC_4, KC_5, KC_6, KC_PLUS}, + {KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, KC_TILD, KC_LALT, KC_AMPR, KC_1, KC_2, KC_3, KC_BSLS}, + {TG(_LW), KC_INS, KC_LGUI, KC_LSFT, KC_BSPC, KC_LCTL, KC_SPC, KC_TRNS, KC_DOT, KC_0, KC_EQL} +}, +[_LW] = { /* [> LOWER <] */ + {KC_INS, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_TRNS, KC_UP, KC_F7, KC_F8, KC_F9, KC_F10}, + {KC_DELT, KC_LEFT, KC_DOWN, KC_RGHT, KC_DOWN, KC_TRNS, KC_DOWN, KC_F4, KC_F5, KC_F6, KC_F11}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LALT, KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F12}, + {KC_TRNS, KC_TRNS, KC_LGUI, KC_LSFT, KC_BSPC, KC_LCTL, KC_SPC, DF(_QW), KC_TRNS, KC_TRNS, RESET} +}}; + +const uint16_t PROGMEM fn_actions[] = { + +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch(id) { + case 0: + if (record->event.pressed) { + register_code(KC_RSFT); + } else { + unregister_code(KC_RSFT); + } + break; + } + return MACRO_NONE; +}; diff --git a/keyboard/atreus/keymaps/gerb.c b/keyboard/atreus/keymaps/gerb.c new file mode 100644 index 0000000000..1ba3942e3b --- /dev/null +++ b/keyboard/atreus/keymaps/gerb.c @@ -0,0 +1,66 @@ +// This is the personal keymap of Chris Gerber (@gerbercj). I haven't worked out the kinks +// with the Colemak and Dvorak support yet, but everything else works nicely. + +#include "atreus.h" + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +#define _QW 0 +#define _CM 1 +#define _DV 2 +#define _L1 3 +#define _L2 4 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_QW] = { /* Qwerty */ + {KC_Q, KC_W, KC_E, KC_R, KC_T, KC_NO, KC_Y, KC_U, KC_I, KC_O, KC_P }, + {KC_A, KC_S, KC_D, KC_F, KC_G, KC_NO, KC_H, KC_J, KC_K, KC_L, KC_SCLN}, + {KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LALT, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH}, + {KC_ESC, KC_TAB, KC_LGUI, KC_LSFT, KC_BSPC, KC_RCTL, KC_SPC, MO(_L1), KC_MINS, KC_QUOT, KC_ENT } + }, + [_CM] = { /* Colemak */ + {KC_Q, KC_W, KC_F, KC_P, KC_G, KC_NO, KC_J, KC_L, KC_U, KC_Y, KC_SCLN}, + {KC_A, KC_R, KC_S, KC_T, KC_D, KC_NO, KC_H, KC_N, KC_E, KC_I, KC_O }, + {KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LALT, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH}, + {KC_ESC, KC_TAB, KC_LGUI, KC_LSFT, KC_BSPC, KC_RCTL, KC_SPC, MO(_L1), KC_MINS, KC_QUOT, KC_ENT } + }, + [_DV] = { /* Dvorak */ + {KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_NO, KC_F, KC_G, KC_C, KC_R, KC_L }, + {KC_A, KC_O, KC_E, KC_U, KC_I, KC_NO, KC_D, KC_H, KC_T, KC_N, KC_S }, + {KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_LALT, KC_B, KC_M, KC_W, KC_V, KC_Z }, + {KC_ESC, KC_TAB, KC_LGUI, KC_LSFT, KC_BSPC, KC_RCTL, KC_SPC, MO(_L1), KC_MINS, KC_SLSH, KC_ENT } + }, + [_L1] = { /* LAYER 1 */ + {KC_INS, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_NO, KC_VOLU, KC_7, KC_8, KC_9, KC_LBRC}, + {KC_DEL, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_NO, KC_VOLD, KC_4, KC_5, KC_6, KC_RBRC}, + {KC_GRV, KC_MPRV, KC_MPLY, KC_MNXT, KC_MINS, KC_LALT, KC_MUTE, KC_1, KC_2, KC_3, KC_BSLS}, + {TG(_L2), KC_APP, KC_LGUI, KC_LSFT, KC_BSPC, KC_RCTL, KC_SPC, KC_TRNS, KC_DOT, KC_0, KC_EQL } + }, + [_L2] = { /* LAYER 2 */ + {KC_TRNS, KC_WH_L, KC_MS_U, KC_WH_R, KC_WH_U, KC_NO, DF(_QW), KC_F7, KC_F8, KC_F9, KC_F10 }, + {KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_D, KC_NO, DF(_CM), KC_F6, KC_F5, KC_F6, KC_F11 }, + {KC_BTN4, KC_BTN1, KC_BTN2, KC_BTN3, KC_BTN4, KC_LALT, DF(_DV), KC_F1, KC_F2, KC_F3, KC_F12 }, + {KC_TRNS, KC_TRNS, KC_LGUI, KC_LSFT, KC_BSPC, KC_RCTL, KC_SPC, KC_TRNS, KC_TRNS, KC_TRNS, RESET } + } +}; + +const uint16_t PROGMEM fn_actions[] = { + +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch(id) { + case 0: + if (record->event.pressed) { + register_code(KC_RSFT); + } else { + unregister_code(KC_RSFT); + } + break; + } + return MACRO_NONE; +}; diff --git a/keyboard/ergodox_ez/190hotfix.sh b/keyboard/ergodox_ez/190hotfix.sh new file mode 100755 index 0000000000..bdc3adce22 --- /dev/null +++ b/keyboard/ergodox_ez/190hotfix.sh @@ -0,0 +1,19 @@ +#!/bin/bash +#a tool to fix broken keymaps as a result of pull request #190 +#changing the declaration of matrix_scan_user() and matrix_init_user() +# +#This script will save a copy of the specified keymap as keymap.c.bak +#and then create a new keymap.c with the definion corrected. +#this script must be run from the ergodox_ez directory +if [ $# -ne 1 ]; then + echo $0: usage: ./190hotfix keymap_name + exit 1 +fi + +echo Saving backup as ./keymaps/$1/keymap.c.bak ... +mv ./keymaps/$1/keymap.c ./keymaps/$1/keymap.c.bak + +echo Modifying ./keymaps/$1/keymap.c ... +cat ./keymaps/$1/keymap.c.bak | sed -r 's/^void \* matrix_/void matrix_/'>./keymaps/$1/keymap.c + +echo Complete! diff --git a/keyboard/ergodox_ez/Makefile b/keyboard/ergodox_ez/Makefile index 03c806131d..5dfcca2c80 100644 --- a/keyboard/ergodox_ez/Makefile +++ b/keyboard/ergodox_ez/Makefile @@ -31,15 +31,14 @@ SRC = ergodox_ez.c \ matrix.c ifdef KEYMAP - SRC := keymaps/keymap_$(KEYMAP).c $(SRC) + SRC := keymaps/$(KEYMAP)/keymap.c $(SRC) else - SRC := keymaps/keymap_default.c $(SRC) + SRC := keymaps/default/keymap.c $(SRC) endif CONFIG_H = config.h # MCU name -#MCU = at90usb1287 MCU = atmega32u4 # Processor frequency. @@ -94,7 +93,7 @@ OPT_DEFS += -DBOOTLOADER_SIZE=512 BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000) MOUSEKEY_ENABLE = yes # Mouse keys(+4700) EXTRAKEY_ENABLE = yes # Audio control and System control(+450) -CONSOLE_ENABLE = no # Console for debug(+400) +# CONSOLE_ENABLE = yes # Console for debug(+400) COMMAND_ENABLE = yes # Commands for debug and configuration CUSTOM_MATRIX = yes # Custom matrix file for the ErgoDox EZ SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend diff --git a/keyboard/ergodox_ez/README.md b/keyboard/ergodox_ez/README.md deleted file mode 100644 index 51f1e2aa5a..0000000000 --- a/keyboard/ergodox_ez/README.md +++ /dev/null @@ -1,34 +0,0 @@ -# Getting started - -There are two main ways you could customize the ErgoDox EZ. - -## The Easy Way: Use an existing firmware file and just flash it - -1. Download and install the [Teensy Loader](https://www.pjrc.com/teensy/loader.html) -2. Find a firmware file you like. You can find a few if these in the keymaps subdirectory right here. The file you need ends with .hex, and you can look at its .c counterpart (or its PNG image) to see what you'll be getting. You can also use the [Massdrop configurator](https://keyboard-configurator.massdrop.com/ext/ergodox) to create a firmware Hex file you like. -3. Download the firmware file -4. Connect the keyboard, press its Reset button (gently insert a paperclip into the hole in the top-right corner) and flash it using the Teensy loader you installed on step 1 and the firmware you downloaded. - -## More technical: create your own totally custom firmware by editing the source files. - -This requires a little bit of familiarity with coding. - -1. Go to https://github.com/jackhumbert/qmk_firmware and read the Readme at the base of this repository, top to bottom. Then come back here :) -2. Clone the repository (download it) -3. Set up a build environment as per [pjrc.com/teensy/gcc.html](https://www.pjrc.com/teensy/gcc.html) - - Using a Mac and have homebrew? just run `brew tap osx-cross/avr && brew install avr-libc` -4. Copy `keymaps/keymap_default.c` into `keymaps/keymap_your_name.c` (for example, `keymaps/keymap_german.c`) -5. Edit this file, changing keycodes to your liking (see "Finding the keycodes you need" below). Try to edit the comments as well, so the "text graphics" represent your layout correctly. -6. Compile your firmware by running `make clean` followed by `make KEYMAP=your_name`. Note that you must omit the `keymap_` prefix for your filename in this command -- for example, `make KEYMAP=german`. This will result in a hex file, which will always be called `ergodox_ez.hex`, regardless of your keymap name. -6. Flash this hex file using the [Teensy loader](https://www.pjrc.com/teensy/loader.html) as described in step 4 in the "Easy Way" above. -7. Submit your work as a pull request to this repository, so others can also use it. :) - -Good luck! :) - -## Finding the keycodes you need - -Let's say you want a certain key in your layout to send a colon; to figure out what keycode to use to make it do that, you're going to need `quantum/keymap_common.h`. - -That file contains a big list of all of the special, fancy keys (like, being able to shend % on its own and whatnot). - -If you want to send a plain vanilla key, you can look up its code under `doc/keycode.txt`. That's where all the boring keys hang out. diff --git a/keyboard/ergodox_ez/config.h b/keyboard/ergodox_ez/config.h index 825997ba05..6a391ffb54 100644 --- a/keyboard/ergodox_ez/config.h +++ b/keyboard/ergodox_ez/config.h @@ -38,6 +38,8 @@ along with this program. If not, see . #define MOUSEKEY_MAX_SPEED 3 #define MOUSEKEY_TIME_TO_MAX 10 +#define TAPPING_TOGGLE 1 + #define COLS (int []){ F1, F0, B0, C7, F4, F5, F6, F7, D4, D6, B4, D7 } #define ROWS (int []){ D0, D5, B5, B6 } diff --git a/keyboard/ergodox_ez/ergodox_ez.c b/keyboard/ergodox_ez/ergodox_ez.c index d0eaf33923..97e6de1ee3 100644 --- a/keyboard/ergodox_ez/ergodox_ez.c +++ b/keyboard/ergodox_ez/ergodox_ez.c @@ -5,16 +5,16 @@ bool i2c_initialized = 0; uint8_t mcp23018_status = 0x20; __attribute__ ((weak)) -void * matrix_init_user(void) { - return NULL; -}; +void matrix_init_user(void) { + +} __attribute__ ((weak)) -void * matrix_scan_user(void) { - return NULL; -}; +void matrix_scan_user(void) { -void * matrix_init_kb(void) { +} + +void matrix_init_kb(void) { // keyboard LEDs (see "PWM on ports OC1(A|B|C)" in "teensy-2-0.md") TCCR1A = 0b10101001; // set and configure fast PWM TCCR1B = 0b00001001; // set and configure fast PWM @@ -34,21 +34,12 @@ void * matrix_init_kb(void) { ergodox_blink_all_leds(); - if (matrix_init_user) { - (*matrix_init_user)(); - } + matrix_init_user(); +} - return NULL; -}; - -void * matrix_scan_kb(void) { - - if (matrix_scan_user) { - (*matrix_scan_user)(); - } - - return NULL; -}; +void matrix_scan_kb(void) { + matrix_scan_user(); +} void ergodox_blink_all_leds(void) diff --git a/keyboard/ergodox_ez/ergodox_ez.h b/keyboard/ergodox_ez/ergodox_ez.h index aceb7ed9c3..1e446baf6f 100644 --- a/keyboard/ergodox_ez/ergodox_ez.h +++ b/keyboard/ergodox_ez/ergodox_ez.h @@ -123,8 +123,8 @@ inline void ergodox_led_all_set(uint8_t n) { k0D, k1D, k2D, k3D, k4D, KC_NO } \ } -void * matrix_init_user(void); -void * matrix_scan_user(void); +void matrix_init_user(void); +void matrix_scan_user(void); diff --git a/keyboard/ergodox_ez/keymaps/alexjj/keymap.c b/keyboard/ergodox_ez/keymaps/alexjj/keymap.c new file mode 100644 index 0000000000..448f62da02 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/alexjj/keymap.c @@ -0,0 +1,238 @@ +#include "ergodox_ez.h" +#include "debug.h" +#include "action_layer.h" + +#define BASE 0 // default layer +#define SYMB 1 // symbols +#define MDIA 2 // media keys +#define UNIC 3 // unicode entry layer + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Keymap 0: Basic layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | ESC | 1! | 2@ | 3# | 4$ | 5% | 6^ | | 7& | 8* | 9( | 0) | -_ | += | BkSp | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | Tab | Q | W | E | R | T | { | | } | Y | U | I | O | P | |\ | + * |--------+------+------+------+------+------| [ | | ] |------+------+------+------+------+--------| + * | Win | A | S | D | F | G |------| |------| H | J | K | L | :; | '" | + * |--------+------+------+------+------+------| Home | | End |------+------+------+------+------+--------| + * | LShift |Z/Alt | X | C | V | B | | | | N | M | , | . | Alt | RShift | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * |LCtrl | COPY | PASTE| Left | Right| | Down | Up |Hyper | `~ | RCtrl | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * Hyper = Ctrl+Super+Alt+Shift | ~L3 | F5 | | F2 | ~L2 | + * ,------|------|------| |------+------+------. + * | | | PgUp | | Ins | | | + * | Enter| BkSp |------| |------| ~L1 |Space | + * | | | PgDn | | Del | | | + * `--------------------' `--------------------' + */ +// If it accepts an argument (i.e, is a function), it doesn't need KC_. +// Otherwise, it needs KC_* +[BASE] = KEYMAP( // layer 0 : default + // left hand + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC, + KC_LGUI, KC_A, KC_S, KC_D, KC_F, KC_G, + KC_LSFT, ALT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_HOME, + KC_LCTRL, LCTL(KC_C), LCTL(KC_V), KC_LEFT,KC_RGHT, + KC_FN3, KC_F5, + KC_PGUP, + KC_ENT,KC_BSPC,KC_PGDN, + // right hand + KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, + KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, + KC_H, KC_J, KC_K, KC_L, KC_SCLN,KC_QUOT, + KC_END, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT, + KC_DOWN,KC_UP, ALL_T(KC_NO),KC_GRV, KC_RCTRL, + KC_F2, KC_FN2, + KC_INS, + KC_DELT,KC_FN1, KC_SPC + ), +/* Keymap 1: Symbol Layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 |PrintScr| + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | ! | @ | { | } | | | | | | Up | 7 | 8 | 9 | * | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | # | $ | ( | ) | ` |------| |------| Down | 4 | 5 | 6 | + | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | \ | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | £ | | | | | | . | 0 | = |Alt+F4| + * `----------------------------------' `----------------------------------' + * ↑ ,-------------. ,-------------. + * THERE! | | | | | | + * ,------|------|------| |------+------+------. + * CAD = Ctrl + Alt + Delete | | | | | | | | + * | | |------| |------| | | + * | | | | | CAD | | | + * `--------------------' `--------------------' + */ +// SYMBOLS +[SYMB] = KEYMAP( + // left hand + KC_TRNS,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, + KC_TRNS,KC_EXLM,KC_AT, KC_LCBR,KC_RCBR,KC_PIPE,KC_TRNS, + KC_TRNS,KC_HASH,KC_DLR, KC_LPRN,KC_RPRN,KC_GRV, + KC_TRNS,KC_PERC,KC_CIRC,KC_LBRC,KC_RBRC,KC_TILD,KC_TRNS, + KC_TRNS,M(3),KC_TRNS,KC_TRNS,KC_TRNS, + KC_TRNS,KC_TRNS, + KC_TRNS, + KC_TRNS,KC_TRNS,KC_TRNS, + // right hand + KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, + KC_TRNS, KC_UP, KC_7, KC_8, KC_9, KC_ASTR, KC_TRNS, + KC_DOWN, KC_4, KC_5, KC_6, KC_PLUS, KC_TRNS, + KC_TRNS, KC_AMPR, KC_1, KC_2, KC_3, KC_BSLS, KC_TRNS, + KC_TRNS,KC_DOT, KC_0, KC_EQL, LALT(KC_F4), + KC_TRNS, KC_TRNS, + KC_TRNS, + LCTL(LALT(KC_DEL)), KC_TRNS, KC_TRNS +), +/* Keymap 2: Media and mouse keys + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | TEENSY | | | | | | | | | | | | | | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | | MsUp | | | | | | | | | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | |MsLeft|MsDown|MsRght| |------| |------| | | | | | Play | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | | | | | | | Prev | Next | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | Lclk | Rclk | |VolDn |VolUp | Mute | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | |Brwser| + * | | |------| |------| |Back | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// MEDIA AND MOUSE +[MDIA] = KEYMAP( + RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, + // right hand + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, + KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS, + KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_WBAK +), +/* Keymap 3: Unicode Entry + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | Alt | 1 | 2 | 3 | 4 | 5 | 6 | | 7 | 8 | 9 | 0 | + | + | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | Alt | | | E | | | | | | | 7 | 8 | 9 | + | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | Alt | A | | D | F | |------| |------| | 4 | 5 | 6 | + | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | Alt | | | C | | B | | | | | 1 | 2 | 3 | + | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | Alt | Alt | Alt | | | | 0 | 0 | 0 | + | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * WINDOWS ONLY SETUP!! | ~L3 | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | Alt | Alt |------| |------| Alt | Alt | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// If it accepts an argument (i.e, is a function), it doesn't need KC_. +// Otherwise, it needs KC_* +[UNIC] = KEYMAP( // layer 3 : Unicode Entry + // left hand + KC_LALT, KC_P1, KC_P2, KC_P3, KC_P4, KC_P5, KC_P6, + KC_LALT, KC_TRNS, KC_TRNS, KC_E, KC_TRNS, KC_TRNS, KC_TRNS, + KC_LALT, KC_A, KC_TRNS, KC_D, KC_F, KC_TRNS, + KC_LALT, KC_TRNS, KC_TRNS, KC_C, KC_TRNS, KC_B, KC_TRNS, + KC_LALT, KC_LALT, KC_LALT, KC_TRNS,KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_LALT,KC_LALT, KC_TRNS, + // right hand + KC_P7, KC_P8, KC_P9, KC_P0, KC_PPLS,KC_PPLS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_P7, KC_P8, KC_P9, KC_PPLS, KC_TRNS, + KC_TRNS, KC_P4, KC_P5, KC_P6, KC_PPLS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_P1, KC_P2, KC_P3, KC_PPLS, KC_TRNS, + KC_P0, KC_P0, KC_P0, KC_PPLS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS,KC_LALT, KC_LALT + ), +}; + + +const uint16_t PROGMEM fn_actions[] = { + [1] = ACTION_LAYER_TAP_TOGGLE(SYMB), // FN1 - Momentary Layer 1 (Symbols) + [2] = ACTION_LAYER_TAP_TOGGLE(MDIA), // FN2 - Momentary Layer 2 (Media) + [3] = ACTION_LAYER_TAP_TOGGLE(UNIC) // FN3 - Momentary Layer 3 (Unicode entry) +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch(id) { + case 0: + if (record->event.pressed) { + register_code(KC_RSFT); + } else { + unregister_code(KC_RSFT); + } + case 3: // this would trigger when you hit a key mapped as M(3) + if (record->event.pressed) { + return MACRO( I(255), D(LALT), T(P1), T(P5), T(P6), U(LALT), END ); + } + break; + } + return MACRO_NONE; +}; + +// Runs just one time when the keyboard initializes. +void matrix_init_user(void) { + +}; + +// Runs constantly in the background, in a loop. +void matrix_scan_user(void) { + + uint8_t layer = biton32(layer_state); + + ergodox_board_led_off(); + ergodox_right_led_1_off(); + ergodox_right_led_2_off(); + ergodox_right_led_3_off(); + switch (layer) { + // TODO: Make this relevant to the ErgoDox EZ. + case 1: + ergodox_right_led_1_on(); + break; + case 2: + ergodox_right_led_2_on(); + break; + case 3: + ergodox_right_led_3_on(); + break; + default: + // none + break; + } + +}; diff --git a/keyboard/ergodox_ez/keymaps/alexjj/keymap.hex b/keyboard/ergodox_ez/keymaps/alexjj/keymap.hex new file mode 100644 index 0000000000..13338a8922 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/alexjj/keymap.hex @@ -0,0 +1,1141 @@ +:100000000C94C5020C940C030C940C030C940C037C +:100010000C940C030C940C030C940C030C940C0324 +:100020000C940C030C940C030C94380C0C940A0DD7 +:100030000C940C030C940C030C940C030C940C0304 +:100040000C940C030C94AC210C940C030C940C0336 +:100050000C940C030C94381B0C940C030C940C03A0 +:100060000C940C030C940C030C940C030C940C03D4 +:100070000C940C030C940C030C940C030C940C03C4 +:100080000C940C030C940C030C940C030C940C03B4 +:100090000C940C030C940C030C940C030C940C03A4 +:1000A0000C940C030C940C030C940C03770D990D19 +:1000B0008C0E990D8C0EDE0D010E8C0E560E690EF7 +:1000C0005D115D118C118C11CF11091216141614CB +:1000D0002212161417131713EA1316141614011408 +:1000E00075FF01E201590259015D025D015E025E88 +:1000F00002E2000000F0A1F0A2F0A329002B00E32F +:1001000000E100E00000001E00140004001D740661 +:10011000014E001F001A0016001B0019012A0020C2 +:100120000008000700060050002800210015000903 +:100130000019004F004B00220017000A00050000C4 +:1001400000C30023002F0000004A0000003E0024EE +:1001500000300000004D0000003B0025001C000B9B +:100160000011000000C200260018000D0010005110 +:1001700000490027000C000E00360052002C002D14 +:100180000012000F003700007FC1002E0013003363 +:1001900000380035004C002A0031003400E500E44E +:1001A0000000000100010001000100010000003A10 +:1001B000001E0220022202033001003B001F022128 +:1001C000022302010001003C002F0226022F000141 +:1001D0000001003D00300227023000010001003E16 +:1001E00000310235003502000001003F000100002F +:1001F00000010000000100400001000000010000BB +:1002000000010041005200510024020000010042A0 +:1002100000240021001E00010001004300250022EF +:10022000001F0037000100440026002300200027A3 +:10023000000100450025022E0231002E004C05462B +:10024000000100010001003D040000005001000118 +:100250000001000100000001000100010001000197 +:1002600000010001000100F2000100010001000195 +:1002700000F000F1000100F400010001000100F3B2 +:10028000000100F500010001000100010001000073 +:100290000001000100010000000100000001000158 +:1002A0000001000000010000000100010001000148 +:1002B000000100000001000100010001000100AA8E +:1002C000000100010001000100AC00A900B600011E +:1002D0000001000100AB00A80001000100010001C5 +:1002E0000001000100010001000100AE0001000159 +:1002F000000000E200E200E200E200E2000000593B +:1003000000010004000100E20001005A00010001A8 +:10031000000100E200E2005B0008000700060001A7 +:1003200000E2005C00010009000100010001005D25 +:1003300000010001000500000001005E0001000056 +:10034000000100000001005F00010000000100004A +:1003500000010060000100010001000000010061D7 +:10036000005F005C00590062000100620060005DF7 +:10037000005A006200E200570061005E005B00620C +:1003800000E20057005700570057005700010001D6 +:100390000001000100010001000000160345007289 +:1003A0000067006F0044006F007800200045005A8D +:1003B00000000016034500720067006F0044006FE4 +:1003C000007800200045005A0000000403090409D9 +:1003D000026D00040100A0FA0904000001030101FC +:1003E00000092111010001223F00070581030800D7 +:1003F0000A090401000103010200092111010001A1 +:10040000224D000705820308000A090402000103C7 +:1004100000000009211101000122360007058303B5 +:1004200008000A090403000103000000092111016A +:100430000001223900070584031000011201100198 +:1004400000000008EDFE0713010001020001050194 +:100450000906A101050719E029E7150025019508FE +:10046000750181020508190129059505750191029B +:1004700095017503910105071900297715002501DC +:10048000957875018102C005010980A101850216D8 +:10049000010026B7001A01002AB7007510950181E6 +:1004A00000C0050C0901A1018503160100269C026C +:1004B0001A01002A9C02751095018100C0050109EE +:1004C00002A1010901A1000509190129051500254D +:1004D00001950575018102950175038101050109E9 +:1004E0003009311581257F95027508810609381577 +:1004F00081257F950175088106050C0A3802158152 +:10050000257F950175088106C0C005010906A10176 +:10051000050719E029E715002501950875018102F5 +:1005200095017508810105081901290595057501D1 +:1005300091029501750391010507190029FF150026 +:1005400025FF950675088100C0000000000000002E +:1005500000000000010204060A0F17202C3A4A5D31 +:1005600071879DB3C7DAE9F5FCFFFCF5E9DAC7B39B +:100570009D87715D4A3A2C20170F0A06040201007C +:100580000000000000000000000011241FBECFEF9B +:10059000DAE0DEBFCDBF04B603FE27C08091EE01D6 +:1005A0009091EF01A091F001B091F1018730904B53 +:1005B000A740B04BD1F41092EE011092EF011092CF +:1005C000F0011092F10114BE84B7877F84BF0FB68B +:1005D000F894A895809160008861809360001092E3 +:1005E00060000FBEE0E0FFE3099511E0A0E0B1E09C +:1005F000EAEFF6E402C005900D92A433B107D9F7F3 +:1006000021E0A4E3B1E001C01D92AE3EB207E1F7E4 +:100610000E947F090C947B230C940000CF93DF93FE +:10062000EC01662319F0633059F00DC08A818823EC +:1006300021F085EE0E94EE0F03C085EE0E94B610F9 +:100640008A81811103C080E090E002C080EE90E0DA +:10065000DF91CF91089508956091B1017091B20139 +:100660008091B3019091B4010E94621A56985E98ED +:1006700025982D9826982E9827982F98823039F013 +:10068000833041F0813041F4259A2D9A0895269ABD +:100690002E9A0895279A2F9A08950C942C03569811 +:1006A0005E9825982D9826982E9827982F988FEF4A +:1006B00090E0909389008093880090938B008093C2 +:1006C0008A0090938D0080938C00259A2D9A2FEFAD +:1006D00080E792E0215080409040E1F700C00000A8 +:1006E000269A2E9A2FEF80E792E02150804090408A +:1006F000E1F700C00000279A2F9A2FEF80E792E0E1 +:10070000215080409040E1F700C0000025982D98CE +:100710002FEF80E792E0215080409040E1F700C049 +:10072000000026982E982FEF80E792E0215080401D +:100730009040E1F700C0000027982F9856985E98E7 +:1007400025982D9826982E9827982F98089589EA0D +:100750008093800089E08093810024982C983F98B2 +:100760008AB18F748AB96E98479A8BB1806B8BB9B6 +:10077000769A0E944F030C942B0380E28093000131 +:100780008091340181110EC00E940C0481E080939D +:1007900034012FEF83ED90E3215080409040E1F74A +:1007A00000C0000080E40E941204809300018111C7 +:1007B0002EC00E943C0480930001811128C00E9439 +:1007C0003C0480930001811122C08FE30E943C040D +:1007D0008093000181111BC00E94340480E40E94B8 +:1007E000120480930001811112C08CE00E943C042D +:1007F0008093000181110BC00E943C048093000192 +:10080000811105C08FE30E943C04809300010E9487 +:1008100034048091000108951092B9008AE0809319 +:10082000B800089594EA9093BC009091BC0097FFA3 +:10083000FCCF9091B900987F983021F0903111F061 +:1008400081E008958093BB0084E88093BC00809190 +:10085000BC0087FFFCCF8091B900887F883111F000 +:10086000803471F780E0089584E98093BC00809122 +:10087000BC0084FDFCCF08958093BB0084E8809386 +:10088000BC008091BC0087FFFCCF9091B900987F9D +:1008900081E0983209F480E0089584E88093BC00F8 +:1008A0008091BC0087FFFCCF8091BB0008958091B0 +:1008B0000001811115C080E40E94120480930001A0 +:1008C00081110CC082E10E943C04809300018111DF +:1008D00005C08FEF0E943C04809300010E94340405 +:1008E00084B1807F84B985B1807F85B98AB1837FE7 +:1008F0008AB98BB1837F8BB93E98469808950E9440 +:10090000BD03809300010E94570480B38C7080BBAC +:1009100081B3836F81BBE4E4F1E0A6E3B1E011921F +:100920001D9281E0E235F807D1F70C94A7039F925E +:10093000AF92BF92CF92DF92EF92FF920F931F93ED +:10094000CF93DF9380910001882379F08091350166 +:100950008F5F80933501811108C00E94BD03809391 +:100960000001811102C00E944F0386E3E82E81E05E +:10097000F82E8701C0E0D0E0BB24B39492E0A92E0A +:10098000CC24C394D12CC730D10500F5809100014F +:10099000811164C080E40E941204809300018111DF +:1009A00012C082E10E943C048093000181110BC0BF +:1009B000C6010C2E01C0880F0A94EAF780950E94A8 +:1009C0003C04809300010E94340448C0CA30A1F066 +:1009D00028F4C83059F0C93061F005C0CC3089F036 +:1009E00070F0CD3089F0209A289810C0219A29986B +:1009F0000DC0229A2A980AC0239A2B9807C0529AAF +:100A000001C0539A5B9802C03E9A4698E0EAEA9584 +:100A1000F1F78FB181708B25799902C032E001C066 +:100A200030E0832B7C9902C034E001C030E0832B9E +:100A30007D9902C028E001C020E0822B7E9902C08F +:100A400090E101C090E0892B9FB19095991F992763 +:100A5000991F9295990F907E892B0FC0809100016C +:100A600081114AC080E40E9412048093000188230F +:100A700081F1912C0E943404892DD8019C91981702 +:100A800019F08C93A09201010E94570421960F5FE8 +:100A90001F4FCE30D10509F076CF80910101882318 +:100AA00069F1815080930101882339F0EFE9FFE07B +:100AB0003197F1F700C0000021C0E4E4F1E0D70174 +:100AC0008D917D018193B4E4EB16B1E0FB06B9F79B +:100AD00015C083E10E943C04809300018111C9CFBD +:100AE00081E40E941204809300018111C2CF0E9410 +:100AF0004D04982E9094BECF80E0BFCF0E944D034E +:100B000081E0DF91CF911F910F91FF90EF90DF90E7 +:100B1000CF90BF90AF909F900895E82FF0E0EC5BEE +:100B2000FE4F8081089508958B3B910580F4883AAB +:100B3000910548F5853A9105D8F48430910508F07F +:100B4000B2C0019709F06EC081E090E00895803E48 +:100B5000910508F467C0883E910508F4A4C09C0183 +:100B6000205F31092031310508F05CC0906508959F +:100B7000853A910509F459C0863A910509F058C0A3 +:100B800082E890E40895883A910509F454C0893ABE +:100B9000910509F453C08A3A910509F452C08B3A81 +:100BA000910509F451C08C3A910509F450C08D3A71 +:100BB000910509F44FC0803B910509F44EC08E3A6F +:100BC000910509F44DC08F3A910509F44CC0813B61 +:100BD000910509F44BC0823B910509F44AC0833B5F +:100BE000910509F449C0843B910509F448C0853B4F +:100BF000910509F447C0863B910509F446C0873B3F +:100C0000910509F445C0883B910509F444C0893B2E +:100C1000910509F443C08A3B910509F442C080E084 +:100C200094E4089580E090E0089581E890E40895C8 +:100C300083E890E4089582EE94E4089589EE94E4C4 +:100C400008958AEE94E4089585EB94E4089586EB84 +:100C500094E4089587EB94E408958CEC94E408956B +:100C60008DEC94E4089583E895E408958AE895E48A +:100C7000089582E995E4089584E995E4089581E270 +:100C800096E4089583E296E4089584E296E4089554 +:100C900085E296E4089586E296E4089587E296E474 +:100CA00008958AE296E40895089524E5829FC0019C +:100CB0001124FC0126E0729FE00DF11D1124E60FC6 +:100CC000F11DEE0FFF1FE550FF4F859194910895A0 +:100CD000880F991FFC01ED58F0408591949108957B +:100CE000880F991FFC01ED50FF4F85919491089555 +:100CF00024E5829FC0011124FC0146E0749FE00DB1 +:100D0000F11D1124E60FF11DEE0FFF1FE550FF4FFF +:100D1000859194919C013A9521154FE1340708F48F +:100D200027C13F512115304120F49F700E94700669 +:100D300008959C0130532115304118F49927906C87 +:100D40000895811520E5920771F40E943A144FEF3F +:100D500084E39CE0415080409040E1F700C00000F7 +:100D60000E945D1B05C1813020E5920731F480911E +:100D7000CD0181608093CD01FBC09C0130552115D0 +:100D8000304108F05CC0292F33272F7033272130E2 +:100D90003105E9F4AC0164E0440F551F6A95E1F7B1 +:100DA00044275370BC016370772702C0220F331FA2 +:100DB0006A95E2F73C68242B352B73E0880F991F66 +:100DC0007A95E1F780769927822B932B089522302C +:100DD000310529F4982F8827816F906A0895233070 +:100DE0003105A1F4AC0133E0440F551F3A95E1F70A +:100DF000407E57708370992721E030E002C0220FB7 +:100E0000331F8A95E2F7C9019C6816C0243031056A +:100E100031F5AC0123E0440F551F2A95E1F7407EE0 +:100E200057708370992721E030E002C0220F331FF2 +:100E30008A95E2F7C9019A68842B952B08959C0145 +:100E400030572115304118F49F70906208959C012D +:100E500030582115304118F49F70906A0895803EF3 +:100E60009105E0F4803C910558F58133910509F432 +:100E70006FC048F48932910509F463C08A32910544 +:100E800009F46DC072C089339105E9F0823891058B +:100E9000D1F08533910509F44DC067C0833E9105BB +:100EA00081F138F4803E9105B9F0823E9105D9F088 +:100EB0005CC0863E910561F1873E9105A1F155C068 +:100EC0000E94680608952091DF0120FD02C021FFE5 +:100ED0004CC080EE90E049C08091DF0180FFF9CFE7 +:100EE00089E390E042C08091DF0182FF0EC08091D3 +:100EF000DF0184FF03C080E090E037C083EE90E024 +:100F000034C08091DF0182FFF2CF82EE90E02DC0ED +:100F10008091DF0183FF0BC08091DF0184FDEBCF67 +:100F200087EE90E022C08091DF0183FFF5CF86EE4F +:100F300090E01BC08091DF0185FF07C089E290E04F +:100F400014C08091DF0185FFF9CF85E390E00DC0EB +:100F50008091DF0186FF07C08AE290E006C08091A1 +:100F6000DF0186FFF9CF81E390E00E9494050895A8 +:100F7000089508950C94B907809162010895CF9364 +:100F8000DF9300D01F92CDB7DEB79C018091E501C1 +:100F9000843019F593E099833B832A839093E90089 +:100FA0008FEF9091E800815095FD06C095ED9A95E0 +:100FB000F1F700008111F5CF8091E80085FF0DC0A9 +:100FC00040E050E063E070E0CE0101960E942C0A00 +:100FD0008091E8008E778093E8000F900F900F903B +:100FE000DF91CF910895CF93DF9300D01F92CDB7BB +:100FF000DEB72091E501243021F522E029839B838F +:101000008A8383E08093E9008FEF9091E80081501C +:1010100095FD06C095ED9A95F1F700008111F5CF89 +:101020008091E80085FF0DC040E050E063E070E093 +:10103000CE0101960E942C0A8091E8008E77809361 +:10104000E8000F900F900F90DF91CF9108959C01D1 +:101050008091E5018430F9F482E08093E9009FEF0C +:101060008091E800915085FD06C085ED8A95F1F7E5 +:1010700000009111F5CF8091E80085FF0CC040E0A1 +:1010800050E065E070E0C9010E942C0A8091E80000 +:101090008E778093E8000895CF93DF93EC018091E1 +:1010A000E501843009F046C090910C019923D9F0F4 +:1010B00090910D019923B9F08093E9008FEF909101 +:1010C000E800815095FD06C095E19A95F1F7000082 +:1010D0008111F5CF8091E80085FF2CC040E050E001 +:1010E00060E170E017C081E08093E9008FEF90919C +:1010F000E800815095FD06C095ED9A95F1F7000046 +:101100008111F5CF8091E80085FF14C040E050E0E8 +:1011100068E070E0CE010E942C0A8091E8008E7792 +:101120008093E80080E1FE01A2E5B1E001900D921C +:101130008A95E1F7DF91CF9108958091E4018111C3 +:1011400009C00E94BD0B0E941A0C8091E2008460CD +:101150008093E20008951092E401089508950C949C +:1011600099210E94F31A0E949F210E94C50E0C949F +:10117000BA0742E061EC81E00E94360B42E061EC8C +:1011800082E00E94360B42E061EC83E00E94360B65 +:1011900042E161EC84E00C94360B8091E7018330EE +:1011A00009F455C030F4813071F0823009F48EC0FA +:1011B00008958A3009F47AC08B3009F460C0893010 +:1011C00009F09CC020C08091E601813A09F096C0E8 +:1011D0008091E800877F8093E8008091EA019091F8 +:1011E000EB01892B21F460E182E591E003C060E02E +:1011F00080E090E070E00E94770A8091E8008B77B1 +:101200008093E80008958091E601813209F076C06C +:101210008091EA019091EB01009719F0039709F092 +:101220006DC08091E800877F8093E8008091E8009E +:1012300082FD05C08091E5018111F8CF5FC08091EA +:10124000F100809362018091E8008B7753C0809118 +:10125000E601813A09F052C08091EA019091EB01D8 +:10126000892B09F04BC08091E800877F8093E800CC +:101270008091E80080FFFCCF80910C0136C0809106 +:10128000E6018132D9F58091EA019091EB01892B39 +:10129000A9F58091E800877F8093E8000E946B0B9E +:1012A0008091E80180930C010C943A148091E6013E +:1012B000813221F58091E800877F8093E8000E94C9 +:1012C0006B0B8091E9018093630108958091E601A1 +:1012D000813AA1F48091E800877F8093E8008091B3 +:1012E000E80080FFFCCF809163018093F100809142 +:1012F000E8008E778093E8000C946B0B089584B718 +:10130000877F84BF0FB6F894A895809160008861AC +:1013100080936000109260000FBE90E080E80FB6EE +:10132000F89480936100909361000FBE0E94140FA7 +:101330000E94BD0B0E941A0C8091E2008460809391 +:10134000E20078940E94A50E0E94160F82E091E0C0 +:101350000E94C00E0E9487218091E501853069F4CA +:101360000E94B21A8091E3018823B1F30E94DF1A30 +:10137000882391F30E94160AEFCF0E941C0FECCF36 +:10138000292F332723303105C9F060F4213031058E +:1013900081F02230310509F041C08DE690E02FEC5C +:1013A00033E040C021323105E1F02232310531F124 +:1013B00035C082E190E02CE334E034C099278130DD +:1013C000910549F028F0029749F5EBE9F3E005C0F3 +:1013D000EBECF3E002C0E3EBF3E0849190E09F01DB +:1013E00021C06430D8F4E62FF0E0EE0FFF1FEE5D71 +:1013F000FE4F2081318189E090E014C0643070F4A8 +:1014000070E0FB01EE0FFF1FE65EFE4F2081318191 +:10141000FB01EA5EFE4F808190E004C080E090E036 +:1014200020E030E0FA0131832083089580E189BD16 +:1014300082E189BD09B400FEFDCF8091D8008F7D87 +:101440008093D8008091E00082608093E0008091DA +:10145000E00081FDFCCF0895CF92DF92EF92FF92E2 +:101460000F931F93CF93DF93EC018B016A010E94CE +:101470008A0B811133C0C114D10439F0F601808187 +:101480009181081B190BC80FD91FE12CF12C0115F4 +:10149000110519F18091E80085FD16C08091E800E2 +:1014A0008E778093E800C114D10449F0F601808161 +:1014B0009181E80EF91EF182E08285E00FC00E9462 +:1014C0008A0B882321F30AC089918093F10001508F +:1014D0001109FFEFEF1AFF0ADACF80E0DF91CF9119 +:1014E0001F910F91FF90EF90DF90CF900895209182 +:1014F000EC013091ED012617370748F061157105B1 +:1015000039F42091E8002E772093E80001C0B9015A +:10151000FC0120E06115710579F18091E5018823D6 +:10152000F1F18530F1F18091E80083FD3CC08091BC +:10153000E80082FD2EC08091E80080FFEBCF209173 +:10154000F3008091F20090E0922B6115710551F04B +:101550008830910538F421912093F1006150710990 +:101560000196F3CF21E0089709F020E08091E80090 +:101570008E778093E800CECF2111CFCF0AC0809123 +:10158000E501882361F0853061F08091E80083FDFA +:101590000AC08091E80082FFF2CF80E0089582E0E7 +:1015A000089583E0089581E008952091EC01309141 +:1015B000ED012617370748F06115710539F42091C0 +:1015C000E8002E772093E80001C0B901FC0120E07B +:1015D0006115710591F18091E501882309F440C0FE +:1015E000853009F43FC08091E80083FD3DC08091C3 +:1015F000E80082FD2FC08091E80080FFE9CF2091B4 +:10160000F3008091F20090E0922B6115710559F082 +:101610008830910540F424912093F1003196615077 +:1016200071090196F2CF21E0089709F020E080913E +:10163000E8008E778093E800CBCF2111CCCF0AC091 +:101640008091E501882361F0853061F08091E800A8 +:1016500083FD0AC08091E80082FFF2CF80E0089508 +:1016600082E0089583E0089581E00895982F9730EF +:1016700068F59093E900981739F07091EC0020918B +:10168000ED005091F00003C0242F762F50E021FD93 +:1016900002C09F5FECCF3091EB003E7F3093EB00B8 +:1016A0003091ED003D7F3093ED003091EB003160E3 +:1016B0003093EB007093EC002093ED005093F0001A +:1016C0002091EE0027FDE5CF80E008958F70809394 +:1016D000E90081E008958091E60187FF11C08091C3 +:1016E000E80082FD05C08091E5018111F8CF11C0AD +:1016F0008091E8008B770BC08091E501882349F049 +:101700008091E80080FFF8CF8091E8008E77809389 +:10171000E80008952091E4003091E50095E64091BD +:10172000EC00842F817040FF23C08091E80080FD91 +:101730001DC08091E501882399F0853099F0809152 +:10174000EB0085FD11C04091E4005091E5002417A5 +:10175000350729F3915011F09A01E1CF84E0089503 +:1017600082E0089583E0089581E0089580E008957F +:101770004091E80042FFDDCF08950E942B0C0E94AB +:10178000330CE0EEF0E0808181608083E8EDF0E0F2 +:1017900080818F77808319BCA7EDB0E08C918E7F1C +:1017A0008C9380818F7E80831092E40108950F9343 +:1017B0001F93CF93DF930E942B0C0E94330CC8ED34 +:1017C000D0E088818F77888388818068888388814A +:1017D0008F7D888319BC1092E5011092E10110926F +:1017E000E3011092E20100EE10E0F80180818B7FAE +:1017F000808388818160888342E060E080E00E948D +:10180000360BE1EEF0E080818E7F8083E2EEF0E047 +:10181000808181608083808188608083F8018081FD +:101820008E7F8083888180618883DF91CF911F9133 +:101830000F910895E8EDF0E080818F7E8083E7EDE1 +:10184000F0E080818160808384E082BF81E08093CA +:10185000E4010C94D70BE8EDF0E080818E7F80836B +:101860001092E20008951092DA001092E1000895BB +:101870001F920F920FB60F9211242F933F934F9305 +:101880005F936F937F938F939F93AF93BF93EF93E8 +:10189000FF938091E10082FF0BC08091E20082FF04 +:1018A00007C08091E1008B7F8093E1000E94A40E2D +:1018B0008091DA0080FF1FC08091D80080FF1BC09C +:1018C0008091DA008E7F8093DA008091D90080FFCA +:1018D0000DC080E189BD82E189BD09B400FEFDCF64 +:1018E00081E08093E5010E949D0805C019BC10921B +:1018F000E5010E94AB088091E10080FF19C0809152 +:10190000E20080FF15C08091E2008E7F8093E200AC +:101910008091E20080618093E2008091D800806233 +:101920008093D80019BC85E08093E5010E94AF0840 +:101930008091E10084FF30C08091E20084FF2CC0E0 +:1019400080E189BD82E189BD09B400FEFDCF8091AF +:10195000D8008F7D8093D8008091E1008F7E8093A6 +:10196000E1008091E2008F7E8093E2008091E200AE +:1019700081608093E2008091E101882311F084E08E +:1019800007C08091E30087FD02C081E001C083E0D1 +:101990008093E5010E94B1088091E10083FF29C096 +:1019A0008091E20083FF25C08091E100877F8093D2 +:1019B000E10082E08093E5011092E1018091E10075 +:1019C0008E7F8093E1008091E2008E7F8093E20021 +:1019D0008091E20080618093E20042E060E080E07C +:1019E0000E94360B8091F00088608093F0000E9486 +:1019F000AE08FF91EF91BF91AF919F918F917F9131 +:101A00006F915F914F913F912F910F900FBE0F906B +:101A10001F9018951F920F920FB60F9211242F93BB +:101A20003F934F935F936F937F938F939F93AF9366 +:101A3000BF93CF93DF93EF93FF93C091E900CF70F3 +:101A40008091EC00D82FD17080FDD0E81092E90091 +:101A50008091F000877F8093F00078940E944E0D73 +:101A60001092E9008091F00088608093F000CD2B07 +:101A7000CF70C093E900FF91EF91DF91CF91BF91BB +:101A8000AF919F918F917F916F915F914F913F9116 +:101A90002F910F900FBE0F901F9018951F93CF930B +:101AA000DF93CDB7DEB7AA970FB6F894DEBF0FBEAF +:101AB000CDBFE6EEF1E08091F100819321E0EE3EB2 +:101AC000F207C9F70E94CD088091E80083FF24C186 +:101AD0008091E6019091E701492F50E04A3051058D +:101AE00008F01AC1FA01EA5AFF4F0C9430238038EB +:101AF00081F0823809F010C18091EA018F708093E3 +:101B0000E9008091EB0085FB882780F91092E900BD +:101B100006C08091E2019091E30191118260909161 +:101B2000E800977F9093E8008093F1001092F10015 +:101B3000C8C0282F2D7F09F0EFC0882319F082300C +:101B400061F0EAC08091E801813009F0E5C093308E +:101B500009F080E08093E3012BC08091E8018111BE +:101B600027C08091EA018F7009F4D6C08093E90004 +:101B70002091EB0020FF1CC0933021F48091EB00FA +:101B8000806214C09091EB0090619093EB0021E093 +:101B900030E0A90102C0440F551F8A95E2F7409337 +:101BA000EA001092EA008091EB0088608093EB00DD +:101BB0001092E9008091E800877F86C08111ACC057 +:101BC0001091E8011F778091E3008078812B80934A +:101BD000E3008091E800877F8093E8000E946B0B10 +:101BE0008091E80080FFFCCF8091E30080688093C3 +:101BF000E300111102C082E001C083E08093E5019F +:101C00008BC08058823008F087C08091E8019091A5 +:101C1000E9018C3D53E0950779F583E08A838AE2F8 +:101C200089834FB7F894DE01139620E03EE051E23D +:101C3000E32FF0E050935700E49120FF03C0E295BA +:101C4000EF703F5FEF708E2F90E0EA3010F0C79694 +:101C500001C0C0968D939D932F5F243149F74FBFEC +:101C60008091E800877F8093E8006AE270E0CE010F +:101C700001960E94770A14C0AE014F5F5F4F6091DA +:101C8000EA010E94C009BC01892B09F445C090916A +:101C9000E800977F9093E80089819A810E94D50A95 +:101CA0008091E8008B778093E80036C08038A1F5FA +:101CB0008091E800877F8093E8008091E101809324 +:101CC000F1008091E8008E778093E8000E946B0B12 +:101CD00023C0811121C08091E8019091E9019927E9 +:101CE0000297D4F48091E800877F8093E800809188 +:101CF000E8018093E1010E946B0B8091E101811169 +:101D000006C08091E30087FD02C081E001C084E04D +:101D10008093E5010E94B9088091E80083FF0AC022 +:101D20008091E800877F8093E8008091EB008062DB +:101D30008093EB00AA960FB6F894DEBF0FBECDBF1E +:101D4000DF91CF911F9108950895CF938091E50180 +:101D50008823A1F0C091E900CF709091EC00892F09 +:101D6000817090FD80E8C82B1092E9008091E80016 +:101D700083FD0E944E0DCF70C093E900CF9108956E +:101D800090936901809368010895E0916801F09152 +:101D90006901309721F00190F081E02D099480E0F5 +:101DA0000895E0916801F0916901309721F0028077 +:101DB000F381E02D09940895E0916801F0916901A3 +:101DC000309721F00480F581E02D09940895209149 +:101DD0006601309167012817390771F09093670108 +:101DE00080936601E0916801F0916901309721F0DC +:101DF0000680F781E02D09940895209164013091C7 +:101E000065012817390771F090936501809364018B +:101E1000E0916801F0916901309721F00084F1852B +:101E2000E02D0994089508950C94130F0E94F91A57 +:101E30000E947F040C94BF1BCF92DF92EF92FF921F +:101E40000F931F93CF93DF93CDB7DEB72B970FB6CA +:101E5000F894DEBF0FBECDBF0E9497048BE6C82E5C +:101E600081E0D82E00E010E0E02E802F0E948D054A +:101E7000F60141916F01F82EF426B1F40F5F1F4F68 +:101E80000E30110589F78FEF89838A831B820E94A8 +:101E9000021B8160782F9D838C8349815A816B81DD +:101EA0008D810E94BF0F40C09091CD0191FF04C071 +:101EB0008B870E9493058B8520E030E04F2D50E00A +:101EC000922FBA01022E02C0759567950A94E2F727 +:101ED00060FF24C02E83EF8221E030E0690102C060 +:101EE000CC0CDD1C9A95E2F790E08C219D21892B8A +:101EF00009F420E028870E94021B8160782F9A87CE +:101F000089874E815F8168858A850E94BF0FF801AD +:101F1000E559FE4F8081C826C08206C02F5F3F4F23 +:101F20002630310569F6AACF0E94A61E0E94C50E72 +:101F300090916A018917A1F00E94C50E80936A01F1 +:101F40002B960FB6F894DEBF0FBECDBFDF91CF91B9 +:101F50001F910F91FF90EF90DF90CF900C94BA07F4 +:101F60002B960FB6F894DEBF0FBECDBFDF91CF9199 +:101F70001F910F91FF90EF90DF90CF900895CF9336 +:101F8000DF93CDB7DEB72B970FB6F894DEBF0FBE49 +:101F9000CDBF4F83588769877A878B87DE0111967B +:101FA00086E0FD0111928A95E9F785E0FE013796FA +:101FB00001900D928A95E1F749815A816B817C816C +:101FC0008D819E810E94CE162B960FB6F894DEBFAF +:101FD0000FBECDBFDF91CF9108950895CF93C82F45 +:101FE000882309F4C1C0823859F40E94C50E81FDCE +:101FF000BBC089E30E946B190E94331A89E30CC0AD +:10200000833879F40E94C50E80FDAEC083E50E943E +:102010006B190E94331A83E50E94AA19CF910C9480 +:10202000331A843859F40E94C50E82FD9DC087E49E +:102030000E946B190E94331A87E4EECF8CEF8C0F4D +:10204000813A48F48C2F0E94EC2081118DC08C2F96 +:102050000E946B19E3CF80E28C0F883048F4C77080 +:1020600081E001C0880FCA95EAF70E94EC19D6CF2B +:102070008BE58C0F833078F4C53A29F0C63A31F0FD +:1020800083E890E005C081E890E002C082E890E03B +:10209000CF910C94E70E88E58C0F833108F064C073 +:1020A000C83A39F1C93A41F1CA3A49F1CB3A51F14A +:1020B000CC3A59F1CD3A61F1C03B69F1CE3A71F1B8 +:1020C000CF3A79F1C13B81F1C23B89F1C33B91F138 +:1020D000C43B99F1C53BA1F1C63BA9F1C73BB1F1A6 +:1020E000C83BB9F1C93BC1F1CA3BC9F180E090E0FE +:1020F00038C082EE90E035C089EE90E032C08AEEC2 +:1021000090E02FC085EB90E02CC086EB90E029C0DA +:1021100087EB90E026C08CEC90E023C08DEC90E043 +:1021200020C083E891E01DC08AE891E01AC082E9EE +:1021300091E017C084E991E014C081E292E011C0FF +:1021400083E292E00EC084E292E00BC085E292E06E +:1021500008C086E292E005C087E292E002C08AE20F +:1021600092E0CF910C94FD0ECF910895882309F44D +:102170004BC0823859F40E94C50E81FF45C089E3E7 +:102180000E946B190E94331A89E30CC0833871F4E2 +:102190000E94C50E80FF38C083E50E946B190E9423 +:1021A000331A83E50E94AA190C94331A843859F41F +:1021B0000E94C50E82FF28C087E40E946B190E940E +:1021C000331A87E4EFCF9CEF980F913A58F390E2DF +:1021D000980F983050F4877091E001C0990F8A955C +:1021E000EAF7892F0E94F219DFCF9BE5980F933011 +:1021F00020F480E090E00C94E70E885A833120F4BC +:1022000080E090E00C94FD0E0895882321F00E9458 +:10221000EC190C94331A0895882321F00E94F219C6 +:102220000C94331A0895BF92CF92DF92EF92FF92EF +:102230000F931F93CF93DF9300D000D000D0CDB782 +:10224000DEB77C0185E0F701DE01119601900D9269 +:102250008A95E1F7F70183819481892B09F4E6C21D +:10226000D08011811F3F21F4FFEFDF1609F4DEC299 +:10227000F7010281258122952F70C7012E830E94CC +:10228000ED0FD9821A8389819A810E942A19182F09 +:10229000B92E0E9429190E94F0172E81002319F0EF +:1022A0000E94091A2E81EB2DE295EF704E2F50E01F +:1022B000FA01E05AFF4F0C9430238B2D807F9B2D29 +:1022C0009F70F92E882319F0F29480EFF8220023F2 +:1022D00049F0FF2009F457C28F2D0E94FC190E947B +:1022E000331A51C2812F0E94B610FF2009F49EC2FA +:1022F0008F2D0E94021A26960FB6F894DEBF0FBEED +:10230000CDBFDF91CF911F910F91FF90EF90DF90A4 +:10231000CF90BF900C94331A3B2D307F8B2D8F7054 +:10232000303211F08295807F112319F0113021F1A4 +:102330002CC00023B9F0222309F490C1213009F008 +:102340008DC126960FB6F894DEBF0FBECDBFDF91CC +:10235000CF911F910F91FF90EF90DF90CF90BF90A2 +:102360000C941C1A222319F0213009F45FC28E83C9 +:102370000E941F1A8E8186C1002321F0223008F0AE +:1023800055C26CC1211152C27DC1002321F022230C +:1023900009F464C1F8C1222309F474C109C28B2D68 +:1023A00086958695837019F08130D1F03FC2002365 +:1023B00021F0812F9B2D937002C080E090E0269643 +:1023C0000FB6F894DEBF0FBECDBFDF91CF911F9146 +:1023D0000F91FF90EF90DF90CF90BF900C94E70E9D +:1023E000002321F0812F9B2D937002C080E090E0AC +:1023F00026960FB6F894DEBF0FBECDBFDF91CF910A +:102400001F910F91FF90EF90DF90CF90BF900C94B1 +:10241000FD0E812F002319F00E94AE1D02C00E9404 +:10242000161E26960FB6F894DEBF0FBECDBFDF9105 +:10243000CF911F910F91FF90EF90DF90CF90BF90C1 +:102440000C949B1E8B2D837009F075C00111EEC199 +:10245000812F829586958770880F880F912F9F70A6 +:10246000C92ED12CE12CF12C082E04C0CC0CDD1C83 +:10247000EE1CFF1C0A94D2F714FF12C00FE010E00C +:1024800020E030E004C0000F111F221F331F8A9587 +:10249000D2F7C901B801609570958095909503C0F9 +:1024A00060E070E0CB014B2D46954695437042307D +:1024B000C1F060F56C297D298E299F29413051F1A9 +:1024C00026960FB6F894DEBF0FBECDBFDF91CF9139 +:1024D0001F910F91FF90EF90DF90CF90BF900C94E1 +:1024E00017186C297D298E299F2926960FB6F894F6 +:1024F000DEBF0FBECDBFDF91CF911F910F91FF9037 +:10250000EF90DF90CF90BF900C9433180E94171873 +:10251000C701B60126960FB6F894DEBF0FBECDBF39 +:10252000DF91CF911F910F91FF90EF90DF90CF90AF +:10253000BF900C94FB17002319F08B2D817001C004 +:102540008695882309F472C1812F829586958770BC +:10255000880F880F912F9F70C92ED12CE12CF12C60 +:10256000082E04C0CC0CDD1CEE1CFF1C0A94D2F714 +:1025700014FF12C00FE010E020E030E004C0000FB4 +:10258000111F221F331F8A95D2F7C901B801609528 +:1025900070958095909503C060E070E0CB014B2D65 +:1025A0004695469543704230C1F060F56C297D290F +:1025B0008E299F29413051F126960FB6F894DEBF3F +:1025C0000FBECDBFDF91CF911F910F91FF90EF9084 +:1025D000DF90CF90BF900C94F1186C297D298E2943 +:1025E0009F2926960FB6F894DEBF0FBECDBFDF91B0 +:1025F000CF911F910F91FF90EF90DF90CF90BF9000 +:102600000C940D190E94F118C701B60126960FB659 +:10261000F894DEBF0FBECDBFDF91CF911F910F9118 +:10262000FF90EF90DF90CF90BF900C94D518103FA3 +:10263000D1F118F4103E50F4A1C0123F09F463C068 +:1026400008F44CC0133F09F473C098C01F708B2D61 +:102650008F710023A1F00E946E18812F26960FB66D +:10266000F894DEBF0FBECDBFDF91CF911F910F91C8 +:10267000FF90EF90DF90CF90BF900C9405110E94D7 +:102680008F18812F26960FB6F894DEBF0FBECDBFF0 +:10269000DF91CF911F910F91FF90EF90DF90CF903E +:1026A000BF900C940C110023A9F02111BFC08B2DF9 +:1026B0008F7126960FB6F894DEBF0FBECDBFDF91A7 +:1026C000CF911F910F91FF90EF90DF90CF90BF902F +:1026D0000C94B418223008F0A9C0E9CF0023A9F067 +:1026E0008B2D8F7126960FB6F894DEBF0FBECDBF2F +:1026F000DF91CF911F910F91FF90EF90DF90CF90DE +:10270000BF900C946E18002359F38B2D8F71269671 +:102710000FB6F894DEBF0FBECDBFDF91CF911F91F2 +:102720000F91FF90EF90DF90CF90BF900C948F1897 +:10273000002399F08B2D8F7126960FB6F894DEBF8B +:102740000FBECDBFDF91CF911F910F91FF90EF9002 +:10275000DF90CF90BF900C94591826960FB6F8943E +:10276000DEBF0FBECDBFDF91CF911F910F91FF90C4 +:10277000EF90DF90CF90BF900C944F180023A9F0FA +:10278000222309F4ADCF812F26960FB6F894DEBF31 +:102790000FBECDBFDF91CF911F910F91FF90EF90B2 +:1027A000DF90CF90BF900C94EE0F222309F4ADCFB1 +:1027B000812F26960FB6F894DEBF0FBECDBFDF91F6 +:1027C000CF911F910F91FF90EF90DF90CF90BF902E +:1027D0000C94B6104B2D4F70612FC7010E940E0351 +:1027E00026960FB6F894DEBF0FBECDBFDF91CF9116 +:1027F0001F910F91FF90EF90DF90CF90BF900C94BE +:1028000073174B2D4F70612FC70126960FB6F894A2 +:10281000DEBF0FBECDBFDF91CF911F910F91FF9013 +:10282000EF90DF90CF90BF900C94540626960FB691 +:10283000F894DEBF0FBECDBFDF91CF911F910F91F6 +:10284000FF90EF90DF90CF90BF9008950E94091AFB +:102850000E94191A0E94DE190E94331A0E944B1F0F +:102860000E949B1E80E090E00E94E70E80E090E0D6 +:102870000C94FD0E0E94F9190C9426140E942A193A +:10288000292F22952F702C3030F42A3048F4225012 +:10289000223078F405C02C3041F02F3031F009C0DF +:1028A000803E48F0803F29F406C093FB882780F9DA +:1028B000089580E0089581E00895CF93DF9300D0DC +:1028C00000D01F92CDB7DEB70F900F900F900F90F2 +:1028D0000F90DF91CF910895CF93DF9300D000D078 +:1028E00000D0CDB7DEB726960FB6F894DEBF0FBE88 +:1028F000CDBFDF91CF9108951F93CF93DF93C09108 +:10290000790116E080917A01C81799F0D0E01C9FF8 +:10291000F0011D9FF00D1124E558FE4F40815181BB +:1029200062817381848195810E946C142196C770A5 +:10293000E9CFDF91CF911F9108954091AB01509164 +:10294000AC016091AD017091AE018091AF019091A9 +:10295000B0010C946C148091B00182958F7009F0D5 +:1029600054C08091AD01882309F44FC08091790152 +:10297000A0917A014091AE015091AF016091AB01FD +:102980007091AC01B6E08A1709F43FC090E04115A0 +:102990005105C1F17F3F11F46F3FA1F1B89FF001E4 +:1029A000B99FF00D1124E558FE4F218127132AC04D +:1029B0002081261327C02281211124C02381348144 +:1029C0002417350710F421503109241B350B283CFE +:1029D0003105C0F42091B0012F7020612093B00127 +:1029E00026E0289FF001299FF00D1124E058FE4FAA +:1029F00080818F70806180838BEA91E00E94131147 +:102A00000C947C1401968770BECF0895CF92DF920C +:102A1000EF92FF920F931F93CF93DF93CDB7DEB763 +:102A200062970FB6F894DEBF0FBECDBF8C0185E074 +:102A3000F801DE011D9601900D928A95E1F7D8010B +:102A40004C9111965C91119712966C918091AE0108 +:102A50009091AF01009709F475C13091AB0170916D +:102A6000AC017F3F19F43F3F09F46CC1F801C3800A +:102A7000D480E090AD01EE2009F4BEC02091B001F9 +:102A8000C816D90628F0D601A81BB90BCD0104C081 +:102A9000809590958C0D9D1DFF24F394883C9105A5 +:102AA00078F0F12C207F09F0C4C07C2DD98AC88A27 +:102AB00089890E945D148BEA91E00E941311AFC0D6 +:102AC000822F807F09F045C0571313C0431311C0F4 +:102AD00061110FC02F7020612093B0010E949D14DE +:102AE0008BEA91E00E9413118091B001F801858377 +:102AF0002EC0CD2819F15F3F11F44F3FF9F0F62EAB +:102B000061111CC08091790120917A0136E0821711 +:102B100009F45BC090E0389FF001399FF00D11245B +:102B2000E558FE4F7181571306C07081471303C0EB +:102B30007281711103C001968770E9CFF62E66236A +:102B400009F41CC18091B00181608093B001F12C27 +:102B500015C1571309C0431307C0611105C0809107 +:102B6000B001F8018583C8C04D875E878D859E853D +:102B70006A8B0E943E146A898823D1F16623C1F1D1 +:102B80002091B001822F82958F7090E0029774F0AF +:102B90008091AB019091AC0198878F831986DB8679 +:102BA000CA862C87CE0107960E94131186E0F80191 +:102BB000ABEAB1E001900D928A95E1F70E94AB1467 +:102BC0000E949D14FF24F394D9C04D875E878D85A4 +:102BD0009E850E942A19292F22952F70223008F0F5 +:102BE000C1C09F7009F0BBC0805E883008F4C6C0C9 +:102BF000C8010E941311E6CFC816D90608F453C0C5 +:102C0000F601E81BF90BCF01883C910508F450C090 +:102C1000F12C7C2DD98AC88A89890E945D14EBEA3F +:102C2000F1E086E0DF011D928A95E9F70E949D148C +:102C3000A5C0571314C0431312C0611110C0809176 +:102C4000B001F8018583C8010E94131186E0EBEA08 +:102C5000F1E0DF011D928A95E9F7FE2C8FC04D87C8 +:102C60005E878D859E856A8B0E943E146A898823C3 +:102C700009F4BECF662309F4BBCF2091B001822FA7 +:102C800082958F7090E002970CF490CF8091AB0109 +:102C90009091AC019A8389831B82DD82CC822E8342 +:102CA000CE01019681CF809590958C0D9D1DACCF66 +:102CB000F62E662309F49CCF571333C0431331C05B +:102CC0002091B00120FD24C0822F82958F70482F63 +:102CD00050E041155105E1F0D80115962C93159758 +:102CE0004F30510549F08F5F982F9295907F822F3A +:102CF0008F70892B15968C93C8010E94131186E062 +:102D0000F801ABEAB1E001900D928A95E1F78ECF20 +:102D100086E0F801ABEAB1E001900D928A95E1F707 +:102D20002DC04D875E878D859E850E943E14811142 +:102D30003DCF8091B00181608093B001C8010E94B5 +:102D400013111CC0662309F453CF4D875E878D8510 +:102D50009E850E943E14882309F44ACF27CF811113 +:102D600043CF0CC0243008F043CF9F7009F43CCF10 +:102D7000D80115969C91907F09F036CF8F2D6296E1 +:102D80000FB6F894DEBF0FBECDBFDF91CF911F917C +:102D90000F91FF90EF90DF90CF9008951F93CF9306 +:102DA000DF93CDB7DEB72C970FB6F894DEBF0FBE1A +:102DB000CDBF4F83588769877A878B879C87CE01E1 +:102DC00007960E940615882371F08A859B85892BBA +:102DD00009F441C088858F3F09F065C08F818F3F1E +:102DE00009F061C038C086E0FE013796DE01119619 +:102DF00001900D928A95E1F76A857B8561157105D1 +:102E000051F1FF81E885EF3F11F4FF3F21F120915F +:102E10007A0130E0C90101968770992740917901C4 +:102E200050E08417950709F447C0F983EA837D834E +:102E30006C8396E0929FD001939FB00D1124A5580A +:102E4000BE4FFE01319601900D929A95E1F7809365 +:102E50007A010E947C1416E08091790190917A01A8 +:102E60008917B9F1189FC001112485589E4F0E94FF +:102E70000615882371F1E09179011E9FF00111245C +:102E8000E558FE4F40815181628173818481958133 +:102E90000E946C148091790190E0019687709927C7 +:102EA00080937901D9CF4F81588569857A858B8543 +:102EB0009C850E946C14CFCF0E943A1410927A0124 +:102EC00010927901EBEAF1E086E0DF011D928A952C +:102ED000E9F72C960FB6F894DEBF0FBECDBFDF9199 +:102EE000CF911F910895EF92FF920F931F93CF936D +:102EF000DF938C01892B09F46CC0F12CEE24E39450 +:102F0000E8012196F8018491843740F4843008F078 +:102F100051C0813081F0823019F15BC0853709F4EE +:102F200044C0A8F19CE7980F903708F052C08F7703 +:102F30000E94B61041C00E5F1F4FFE01849190E2C7 +:102F4000980F983050F48770FE2D01C0FF0F8A95BE +:102F5000EAF78F2F0E940C1A14C00E94EE0F2DC0AA +:102F60000E5F1F4FFE01849190E2980F983060F43D +:102F70008770FE2D01C0FF0F8A95EAF78F2F0E9400 +:102F8000121A0E94331A19C00E94B61016C00E5FA2 +:102F90001F4FFE01C491CC2381F08FE99FE0019780 +:102FA000F1F700C00000C150F6CF0E5F1F4FFE01C9 +:102FB000F49003C00E94EE0F8E018F2D882309F438 +:102FC0009FCFEFE9FFE03197F1F700C0000081509B +:102FD000F5CFDF91CF911F910F91FF90EF90089562 +:102FE00008956093B5017093B6018093B7019093F3 +:102FF000B8010C9426140F931F930091B501109102 +:10300000B6012091B7013091B801DC01CB01802BD2 +:10301000912BA22BB32B8093B5019093B601A09373 +:10302000B701B093B8011F910F910C9426140F9320 +:103030001F930091B5011091B6012091B701309115 +:10304000B801DC01CB0180239123A223B323809319 +:10305000B5019093B601A093B701B093B8011F9149 +:103060000F910C9426140F931F930091B5011091AA +:10307000B6012091B7013091B801DC01CB01802766 +:103080009127A227B3278093B5019093B601A0930F +:10309000B701B093B8011F910F910C9426141092B0 +:1030A000B1011092B2011092B3011092B4010C94CC +:1030B000261441E050E060E070E004C0440F551F6A +:1030C000661F771F8A95D2F74093B1015093B201E2 +:1030D0006093B3017093B4010C94261441E050E066 +:1030E00060E070E004C0440F551F661F771F8A958B +:1030F000D2F78091B1019091B201A091B301B0914A +:10310000B401482B592B6A2B7B2B4093B101509370 +:10311000B2016093B3017093B4010C94261441E0A2 +:1031200050E060E070E004C0440F551F661F771F39 +:103130008A95D2F740955095609570958091B10130 +:103140009091B201A091B301B091B40148235923E9 +:103150006A237B234093B1015093B2016093B30182 +:103160007093B4010C94261441E050E060E070E0EC +:1031700004C0440F551F661F771F8A95D2F78091B0 +:10318000B1019091B201A091B301B091B40148276F +:1031900059276A277B274093B1015093B20160936E +:1031A000B3017093B4010C9426140F931F930091F4 +:1031B000B1011091B2012091B3013091B401DC0151 +:1031C000CB01802B912BA22BB32B8093B101909339 +:1031D000B201A093B301B093B4011F910F910C946D +:1031E00026140F931F930091B1011091B201209109 +:1031F000B3013091B401DC01CB0180239123A223E0 +:10320000B3238093B1019093B201A093B301B09323 +:10321000B4011F910F910C9426140F931F930091EA +:10322000B1011091B2012091B3013091B401DC01E0 +:10323000CB0180279127A227B3278093B1019093D8 +:10324000B201A093B301B093B4011F910F910C94FC +:1032500026140895CF92DF92EF92FF920F931F935F +:10326000CF93DF938C01C090B101D090B201E09078 +:10327000B301F090B4018091B5019091B601A09195 +:10328000B701B091B801C82AD92AEA2AFB2ACFE1AE +:10329000D0E0D701C6010C2E04C0B695A79597952E +:1032A00087950A94D2F780FF07C0B8018C2F0E943F +:1032B00078068130910531F4219758F7B80180E004 +:1032C0000E947806DF91CF911F910F91FF90EF90B0 +:1032D000DF90CF90089590910C019923F1F0909197 +:1032E0000D019923D1F0982F9695969596959F303C +:1032F00080F5E0910E01F0910F01E90FF11D87704B +:1033000021E030E0A90102C0440F551F8A95E2F781 +:10331000CA019181892B8183089520910E013091FA +:103320000F01F90132969FEF40E05191851789F026 +:103330009F3F19F4511101C0942F4F5F4E30A9F7F0 +:103340009F3F39F0F901E90FF11D97FDFA9582834E +:103350000895089590910C019923F9F090910D0131 +:103360009923D9F0982F9695969596959F3028F5A4 +:10337000E0910E01F0910F01E90FF11D877021E03E +:1033800030E0A90102C0440F551F8A95E2F7CA0137 +:103390008095918189238183089520910E01309138 +:1033A0000F01F9013296205F3F4F9081891301C0D0 +:1033B00010823196E217F307C1F7089581E090E09B +:1033C000E0910E01F0910F01E80FF91F10820196B4 +:1033D00080319105A9F708959091CC01892B8093B4 +:1033E000CC01089580959091CC0189238093CC01E4 +:1033F00008951092CC0108959091CB01892B809370 +:10340000CB01089580959091CB0189238093CB01C6 +:1034100008951092CB0108959091CA01892B809351 +:10342000CA01089580959091CA0189238093CA01A9 +:1034300008951092CA0108958093B90108951092D9 +:10344000B901089580910E0190910F01FC01319610 +:103450009C01205F3F4F80E0919191118F5FE217B7 +:10346000F307D1F70895E0910E01F0910F018091DB +:10347000CC018083E0910E01F0910F019081809149 +:10348000CB01892B8083E0910E01F0910F01908197 +:103490008091CA01892B80838091B901882361F0D2 +:1034A000E0910E01F0910F019081892B80830E94A1 +:1034B000221A81111092B90180910E0190910F0191 +:1034C0000C94D10ECF92DF92EF92FF926C01EE241A +:1034D000FF24C114D104E104F10421F0C701B601B5 +:1034E00020E101C020E0C72ED82EE92EFF24C11410 +:1034F000D104E104F10419F0285FC701B6016B01A2 +:103500007C0154E0F694E794D794C7945A95D1F788 +:10351000C114D104E104F10419F02C5FC701B60114 +:103520006B017C0142E0F694E794D794C7944A95E6 +:10353000D1F7C114D104E104F10419F02E5FC701E1 +:10354000B601DC01CB01B695A79597958795892B98 +:103550008A2B8B2B09F02F5F822FFF90EF90DF904B +:10356000CF9008958091E501843029F120E488E12D +:1035700090E00FB6F894A895809360000FBE20935A +:10358000600080E00E94BA0783B7817F846083BFB8 +:1035900083B7816083BF7894889583B78E7F83BF1C +:1035A0000FB6F894A89580916000886180936000C0 +:1035B000109260000FBE089508950C94DC1ACF930A +:1035C0000E94DD1A0E9497040E94DC1AC0E08C2F32 +:1035D0000E948D05811104C0CF5FCE30C1F701C0BC +:1035E00081E0CF9108950E943A140E94C50E0C9478 +:1035F000BA0782E084BD93E095BD9AEF97BD8093B2 +:103600006E0008952FB7F8948091CE019091CF016C +:10361000A091D001B091D1012FBF0895CF92DF9238 +:10362000EF92FF920F931F932FB7F8944091CE0122 +:103630005091CF016091D0017091D1012FBF6A01EB +:103640007B01EE24FF248C0120E030E0C016D1067F +:10365000E206F30610F4415051099A01281B390B78 +:10366000C9011F910F91FF90EF90DF90CF900895C7 +:103670001F920F920FB60F9211248F939F93AF93C7 +:10368000BF938091CE019091CF01A091D001B091D4 +:10369000D1010196A11DB11D8093CE019093CF0160 +:1036A000A093D001B093D101BF91AF919F918F9121 +:1036B0000F900FBE0F901F9018950E94BD0BF894AD +:1036C0002FEF87EA91E6215080409040E1F700C05B +:1036D000000087E090EBDC018093EE019093EF0116 +:1036E000A093F001B093F1019CE088E10FB6F8944B +:1036F000A895809360000FBE90936000FFCFEF927B +:10370000FF920F931F93CF93DF93D82FC0E08C2F9E +:103710000E948D0500E010E0E82EF12CC701002E7C +:1037200002C0959587950A94E2F780FD06C00F5F69 +:103730001F4F0630110591F709C0602F7C2F80E0E4 +:103740000E9455068D13F3CF81E004C0CF5FCE30C9 +:10375000F1F680E0DF91CF911F910F91FF90EF90F4 +:103760000895CF93C82F8CE20E947F1B882321F0FD +:103770008C2FCF910C947F1B80E0CF910895CF9335 +:103780000E94061D811102C00E94EC1CC5E6C150BA +:1037900049F00E9497048FE39CE90197F1F700C07C +:1037A0000000F5CF89E20E94B11B811113C18AE2AA +:1037B0000E94B11B81110E94EC1C85E00E94B11B8C +:1037C00081110E945D1B0E94111D8093CD0187E035 +:1037D0000E94B11B8823A9F18BE10E94B11B8823B1 +:1037E00051F08091CD0181FB222720F991E09227B1 +:1037F00090FB81F90EC08EE00E94B11B882361F01E +:103800008091CD0182FB222720F991E0922790FB45 +:1038100082F98093CD0115C080E10E94B11B909187 +:10382000CD01882341F093FB222720F981E08227F4 +:1038300080FB93F904C0892F809580FB90F99093C9 +:10384000CD018091CD010E94151D0E94231D809302 +:10385000DF0180EE0E94B11B882341F08091DF01DF +:10386000982F909590FB80F98093DF0189E30E9467 +:10387000B11B882359F08091DF0181FB222720F9B9 +:1038800091E0922790FB81F98093DF0182EE0E9404 +:10389000B11B882359F08091DF0182FB222720F998 +:1038A00091E0922790FB82F98093DF0186EE0E94DF +:1038B000B11B882359F08091DF0183FB222720F977 +:1038C00091E0922790FB83F98093DF0183EE0E94C1 +:1038D000B11B882359F08091DF0184FB222720F956 +:1038E00091E0922790FB84F98093DF0185E30E94A9 +:1038F000B11B882359F08091DF0185FB222720F935 +:1039000091E0922790FB85F98093DF0181E30E948B +:10391000B11B882359F08091DF0186FB222720F913 +:1039200091E0922790FB86F98093DF0181E10E946C +:10393000B11B882359F08091DF0187FB222720F9F2 +:1039400091E0922790FB87F98093DF018091DF015E +:103950000E94271D8091DF0187FB882780F98093D3 +:103960000D0187E20E94B11BC82F8EE10E94B11B9E +:103970008111C2608FE10E94B11B8111C46080E29D +:103980000E94B11B8111C86081E20E94B11B8111AC +:10399000C06182E20E94B11B8111C06283E20E9479 +:1039A000B11B8111C06484E20E94B11B882311F015 +:1039B000C06802C0CC2329F08C2F0E941E1D6C2FE2 +:1039C00003C00E941A1D682F70E080E090E0CF9144 +:1039D0000C94F117CF9108956DEE7EEF80E090E0AA +:1039E0000E94662360E082E090E00E94582360E03D +:1039F00083E090E00E94582360E084E090E00E9421 +:103A0000582360E085E090E00C94582380E090E03B +:103A10000E94522321E08D3E9E4F09F020E0822F2C +:103A2000089582E090E00C944A23682F82E090E0B1 +:103A30000C94582383E090E00C944A23682F83E091 +:103A400090E00C94582384E090E00C944A23682F73 +:103A500084E090E00C9458238091D40180FF0BC047 +:103A60006091130185E0689FB001112475956795F9 +:103A7000759567952BC081FF09C06091130185E0A2 +:103A8000689FB00111247595679520C082FF07C01B +:103A90006091130185E0689FB001112417C09091D7 +:103AA000D5019923D1F060911201961788F72091E2 +:103AB000130185E0289F90011124929FA001939FFC +:103AC000500D112470E0CA010E941C23603871055A +:103AD00040F46115710519F406C065E070E0862FA9 +:103AE00008958FE7089581E008958091D40180FFC3 +:103AF00008C06091110170E075956795759567959F +:103B000021C081FF06C06091110170E07595679535 +:103B100019C082FF04C06091110170E010C0909143 +:103B2000D501992399F0609110019617A0F7809123 +:103B30001101899FC001112470E00E941C2360388C +:103B4000710540F46115710519F406C061E070E07B +:103B5000862F08958FE7089581E00895803F21F42E +:103B60000E942C1D819504C0813F29F40E942C1DC8 +:103B70008093D8010895823F21F40E942C1D8195E5 +:103B800004C0833F29F40E942C1D8093D70108951F +:103B9000893F19F40E94751D05C08A3F31F40E94C7 +:103BA000751D81958093D90108958B3F21F40E9462 +:103BB000751D819504C08C3F29F40E94751D80936A +:103BC000DA010895843F21F48091D601816017C005 +:103BD000853F21F48091D601826011C0863F21F497 +:103BE0008091D60184600BC0873F21F48091D6017B +:103BF000886005C0883F31F48091D6018061809350 +:103C0000D60108958D3F21F48091D40181600BC0CD +:103C10008E3F21F48091D401826005C08F3F29F44A +:103C20008091D40184608093D4010895803F39F459 +:103C30008091D80187FF6CC01092D80169C0813F84 +:103C400029F48091D8011816BCF362C09091D70175 +:103C5000823F29F497FF5CC01092D70159C0833F7F +:103C600019F41916CCF354C0893F41F48091D9015D +:103C700018160CF04DC01092D9014AC08A3F29F4A1 +:103C80008091D90187FF44C0F6CF8B3F39F48091F2 +:103C9000DA0187FF3DC01092DA013AC08C3F29F467 +:103CA0008091DA011816BCF333C0843F21F480916F +:103CB000D6018E7F17C0853F21F48091D6018D7F7C +:103CC00011C0863F21F48091D6018B7F0BC0873FC6 +:103CD00021F48091D601877F05C0883F31F480911F +:103CE000D6018F7E8093D60113C08D3F21F4809141 +:103CF000D4018E7F0BC08E3F21F48091D4018D7F43 +:103D000005C08F3F29F48091D4018B7F8093D4012B +:103D10008091D70181110EC08091D80181110AC014 +:103D20008091D901811106C08091DA01811102C010 +:103D30001092D501089586ED91E00E94DC0E0E945C +:103D4000021B9093D3018093D20108951F93CF93C8 +:103D5000DF938091D2019091D3010E940E1BAC01A0 +:103D60009091D501992321F02091140130E006C0F3 +:103D7000209115018AE0289F9001112442175307D2 +:103D800008F485C08091D701C091D801D091D901A4 +:103D90001091DA01811107C0C11175C0D11173C032 +:103DA000111171C074C09F3F19F09F5F9093D501AE +:103DB000181624F40E942C1D8093D7018091D701FE +:103DC00087FF05C00E942C1D81958093D7011C168A +:103DD00024F40E942C1D8093D8018091D80187FF84 +:103DE00005C00E942C1D81958093D8016091D70158 +:103DF000662331F1C091D801CC2311F1062E000CBD +:103E0000770B880B990B0E94232223E333E343E3D0 +:103E10005FE30E9487220E94EB216093D7016C2F01 +:103E2000CC0F770B880B990B0E94232223E333E3FB +:103E300043E35FE30E9487220E94EB216093D80155 +:103E40001D1624F40E94751D8093D9018091D9011B +:103E500087FF05C00E94751D81958093D9011116B9 +:103E600024F40E94751D8093DA018091DA0187FFA6 +:103E700005C00E94751D81958093DA01DF91CF9175 +:103E80001F910C949B1E9F3F09F08FCFA0CFDF9115 +:103E9000CF911F910895E6EDF1E085E0DF011D92DD +:103EA0008A95E9F71092D5011092D40108958330D4 +:103EB00081F128F4813059F08230D1F008958530B5 +:103EC00009F449C0B8F1863009F456C008958091CC +:103ED0001501262F30E0280F311D2F3F310524F426 +:103EE000680F6093150108958FEF80931501089571 +:103EF00080911401262F30E0280F311D2F3F31050E +:103F000024F4680F6093140108958FEF80931401D7 +:103F1000089580911301262F30E0280F311D2F3F87 +:103F2000310524F4680F6093130108958FEF809397 +:103F30001301089580911201262F30E0280F311DC2 +:103F40002F3F310524F4680F6093120108958FEF1D +:103F500080931201089580911101262F30E0280FDF +:103F6000311D2F3F310524F4680F6093110108952E +:103F70008FEF80931101089580911001262F30E07A +:103F8000280F311D2F3F310524F4680F6093100175 +:103F900008958FEF809310010895833011F128F474 +:103FA000813049F0823091F00895853081F120F11F +:103FB0008630C1F1089580911501681720F4861BA1 +:103FC00080931501089510921501089580911401B0 +:103FD000681720F4861B8093140108951092140131 +:103FE000089580911301681720F4861B80931301B4 +:103FF000089510921301089580911201681720F41A +:10400000861B8093120108951092120108958091E9 +:104010001101681720F4861B8093110108951092F6 +:104020001101089580911001681720F4861B809378 +:10403000100108951092100108950F931F938D3170 +:1040400009F46AC008F03FC08E3009F484C0C0F49F +:10405000873009F46DC068F4863009F0B5C08091EE +:10406000CD01817F8E7F8093CD0181E08093DC0143 +:10407000ACC0883009F457C08B3009F46AC0A4C0C2 +:10408000863109F466C078F4803109F477C0813153 +:1040900009F09AC00E943A1490910D0181E089279D +:1040A00080930D0156C0893109F453C08B3109F05A +:1040B0008BC08091CD0181FB222720F991E09227CE +:1040C00090FB81F951C0853309F475C048F48732FB +:1040D00009F471C008F45EC0893209F46CC074C080 +:1040E000833430F48A3308F053C0883391F16CC0C4 +:1040F000833409F460C0883409F066C00E943A1421 +:104100000FEF13ED20E3015010402040E1F700C015 +:1041100000000E945D1B1DC00E94A5210E94C50ECB +:104120000E94BA0716C00E94111D0E94231D11C0D3 +:104130009091CD01892F8095817080FB90F929F0B5 +:10414000966098609093CD0140C0997F977F90933F +:10415000CD0181E03AC08091CD0182FB222720F978 +:1041600091E0922790FB82F98093CD01992389F306 +:104170008091CD0181608093CD01EBCF8091CD0105 +:1041800083FB222720F991E0922790FB83F9ECCF63 +:10419000895301C08D5141E050E060E070E08A0138 +:1041A0009B0104C0000F111F221F331F8A95D2F7F5 +:1041B000C901B80104C061E070E080E090E00E94B5 +:1041C000F1170E943A14C5CF80E01F910F91089516 +:1041D00080E008950C94E820CF93C82F8091DC01F3 +:1041E000813079F018F08230E9F187C0E0910E015A +:1041F000F0910F018081813169F0823209F07FC036 +:1042000009C0E0910E01F0910F018081813111F020 +:10421000823261F48C2F0E94EA20811104C08C2F1D +:104220000E941D201DC081E090E01AC08C2F0E94CA +:10423000E820811114C0C43179F048F4CB3079F012 +:10424000C03109F060C082E08093DC0108C0C9324F +:1042500019F0C83321F057C01092DC0154C081E03E +:10426000817053C0C93289F118F5C43171F1A8F4D5 +:10427000C73009F046C08AE08093150194E190931D +:10428000140193E0909313018093120188E08093CE +:10429000110188E28093100134C0CE51C63088F5F8 +:1042A000EC2FF0E0E65DFE4F80818093DB0129C0BA +:1042B000CE34E9F020F4CB3421F56AE013C0C135E7 +:1042C00079F0C235F1F461E00DC08091DB01882303 +:1042D00019F01092DB0115C081E08093DC0115C05C +:1042E00061E006C08091DB010E94571F0AC06AE0AE +:1042F0008091DB010E94CD1F04C01092DC0180E0A0 +:1043000004C081E002C080E0ABCFCF910895E1E826 +:10431000F0E08081886080838081816080838FB7B6 +:10432000F89493E09093890090ED909388008FBF6C +:104330000895EFE6F0E08081826080830895EFE6E3 +:10434000F0E080818D7F80830895EFE6F0E090813A +:1043500082E08927808308951F920F920FB60F92F3 +:1043600011242F933F934F935F936F937F938F937A +:104370009F93AF93BF93EF93FF938091DD01909153 +:10438000DE0101969093DE018093DD01811103C06F +:1043900082E00E94BA07E091DE01E695E695F0E042 +:1043A000E75BFA4FE4918091DD018E1303C080E05A +:1043B0000E94BA07FF91EF91BF91AF919F918F91AA +:1043C0007F916F915F914F913F912F910F900FBE11 +:1043D0000F901F9018950E94F2216894B1110C94CF +:1043E000812208950E94662288F09F5798F0B92F85 +:1043F0009927B751B0F0E1F0660F771F881F991F1A +:104400001AF0BA95C9F714C0B13091F00E94802219 +:10441000B1E008950C948022672F782F8827B85F29 +:1044200039F0B93FCCF3869577956795B395D9F771 +:104430003EF490958095709561957F4F8F4F9F4F7B +:104440000895E89409C097FB3EF490958095709587 +:1044500061957F4F8F4F9F4F9923A9F0F92F96E9D0 +:10446000BB279395F695879577956795B795F11145 +:10447000F8CFFAF4BB0F11F460FF1BC06F5F7F4FE2 +:104480008F4F9F4F16C0882311F096E911C07723F4 +:1044900021F09EE8872F762F05C0662371F096E8FD +:1044A000862F70E060E02AF09A95660F771F881FCC +:1044B000DAF7880F9695879597F9089557FD9058E4 +:1044C000440F551F59F05F3F71F04795880F97FBD8 +:1044D000991F61F09F3F79F0879508951216130692 +:1044E0001406551FF2CF4695F1DF08C016161706C1 +:1044F0001806991FF1CF86957105610508940895F6 +:10450000E894BB2766277727CB0197F908950E9487 +:104510009A220C940B230E94FD2238F00E9404235F +:1045200020F0952311F00C94F4220C94FA2211241B +:104530000C9481220E945E2270F3959FC1F3950F27 +:1045400050E0551F629FF001729FBB27F00DB11D17 +:10455000639FAA27F00DB11DAA1F649F6627B00DA7 +:10456000A11D661F829F2227B00DA11D621F739F90 +:10457000B00DA11D621F839FA00D611D221F749F9E +:104580003327A00D611D231F849F600D211D822FE5 +:10459000762F6A2F11249F5750409AF0F1F088230C +:1045A0004AF0EE0FFF1FBB1F661F771F881F915039 +:1045B0005040A9F79E3F510580F00C94F4220C94D2 +:1045C00081225F3FE4F3983ED4F386957795679513 +:1045D000B795F795E7959F5FC1F7FE2B880F911D63 +:1045E0009695879597F9089597F99F6780E870E009 +:1045F00060E008959FEF80EC089500240A94161659 +:10460000170618060906089500240A9412161306C0 +:10461000140605060895092E0394000C11F488234E +:1046200052F0BB0F40F4BF2B11F460FF04C06F5F6A +:104630007F4F8F4F9F4F089597FB072E16F40094DE +:1046400007D077FD09D00E94362307FC05D03EF441 +:10465000909581959F4F0895709561957F4F08952E +:10466000EE0FFF1F0590F491E02D0994AA1BBB1BD0 +:1046700051E107C0AA1FBB1FA617B70710F0A61B62 +:10468000B70B881F991F5A95A9F780959095BC0183 +:10469000CD010895F999FECF92BD81BDF89A992771 +:1046A00080B50895A8E1B0E042E050E00C946D239D +:1046B000262FF999FECF1FBA92BD81BD20BD0FB63E +:1046C000F894FA9AF99A0FBE019608950E94582319 +:1046D000272F0C945923DC01CB01FC01F999FECF63 +:1046E00006C0F2BDE1BDF89A319600B40D9241507A +:0A46F0005040B8F70895F894FFCF8A +:1046FA002002BC074C082708F307BF070101BA01CB +:10470A0028080A03140A3F4D36390A05BD048704EE +:10471A004E04E103FA0313042C0401020304050600 +:04472A000708090073 +:00000001FF diff --git a/keyboard/ergodox_ez/keymaps/alexjj/readme.md b/keyboard/ergodox_ez/keymaps/alexjj/readme.md new file mode 100644 index 0000000000..239e32d399 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/alexjj/readme.md @@ -0,0 +1,179 @@ +Englishman in New York +=========================== + +:microphone: :tea: + +About +------ + +After using the massdrop configurator to get the basics, I wanted to add a +little extra to my ergodox. Notably the Hyper hotkey, the press and hold, +and a way to have my beloved £ :pound: symbol available[1](#unicode). Why not switch to a GB +layout? Well the computers I use are US keymap'd and I can't always change +that. Plus I've got used to 2/@ and 3/# and moving to the ergodox was hard +enough. :sweat_smile: + +I started from the default and edited from there as I needed. It's somewhat +similar to a regular layout, particularly R1 and shift/controls. I ended up +with a few keys that were blank, so I'm testing out some shortcuts. Alt+F4 for +quitting things in Windows, is one example, but I felt it was better placed on +the 1st layer - in case of fat fingers. + +Layout +------- + +![Layout](rl-layout.jpg "Isn't it lovely") + +### Base Layer + +``` +,--------------------------------------------------. ,--------------------------------------------------. +| ESC | 1! | 2@ | 3# | 4$ | 5% | 6^ | | 7& | 8* | 9( | 0) | -_ | += | BkSp | +|--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| +| Tab | Q | W | E | R | T | { | | } | Y | U | I | O | P | |\ | +|--------+------+------+------+------+------| [ | | ] |------+------+------+------+------+--------| +| Win | A | S | D | F | G |------| |------| H | J | K | L | :; | '" | +|--------+------+------+------+------+------| Home | | End |------+------+------+------+------+--------| +| LShift |Z/Alt | X | C | V | B | | | | N | M | , | . | Alt | RShift | +`--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + |LCtrl | COPY | PASTE| Left | Right| | Down | Up |Hyper | `~ | RCtrl | + `----------------------------------' `----------------------------------' + ,-------------. ,-------------. + Hyper = Ctrl+Super+Alt+Shift | ~L3 | F5 | | F2 | ~L2 | + ,------|------|------| |------+------+------. + | | | PgUp | | Ins | | | + | Enter| BkSp |------| |------| ~L1 |Space | + | | | PgDn | | Del | | | + `--------------------' `--------------------' +``` + +### Symbol Layer + +``` +,--------------------------------------------------. ,--------------------------------------------------. +| | F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 |PrintScr| +|--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| +| | ! | @ | { | } | | | | | | Up | 7 | 8 | 9 | * | | +|--------+------+------+------+------+------| | | |------+------+------+------+------+--------| +| | # | $ | ( | ) | ` |------| |------| Down | 4 | 5 | 6 | + | | +|--------+------+------+------+------+------| | | |------+------+------+------+------+--------| +| | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | \ | | +`--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + | | £ | | | | | | . | 0 | = |Alt+F4| + `----------------------------------' `----------------------------------' + ↑ ,-------------. ,-------------. + THERE! | | | | | | + ,------|------|------| |------+------+------. + CAD = Ctrl + Alt + Delete | | | | | | | | + | | |------| |------| | | + | | | | | CAD | | | + `--------------------' `--------------------' +``` +### Media Layer + +Not touched this, not used either. + +``` +,--------------------------------------------------. ,--------------------------------------------------. +| TEENSY | | | | | | | | | | | | | | | +|--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| +| | | | MsUp | | | | | | | | | | | | +|--------+------+------+------+------+------| | | |------+------+------+------+------+--------| +| | |MsLeft|MsDown|MsRght| |------| |------| | | | | | Play | +|--------+------+------+------+------+------| | | |------+------+------+------+------+--------| +| | | | | | | | | | | | Prev | Next | | | +`--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + | | | | Lclk | Rclk | |VolDn |VolUp | Mute | | | + `----------------------------------' `----------------------------------' + ,-------------. ,-------------. + | | | | | | + ,------|------|------| |------+------+------. + | | | | | | |Brwser| + | | |------| |------| |Back | + | | | | | | | | + `--------------------' `--------------------' +``` +### Unicode Layer + +Used to enter/test unicode input on Windows. All numbers are numpad keys. + +``` +,--------------------------------------------------. ,--------------------------------------------------. +| Alt | 1 | 2 | 3 | 4 | 5 | 6 | | 7 | 8 | 9 | 0 | + | + | | +|--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| +| Alt | | | E | | | | | | | 7 | 8 | 9 | + | | +|--------+------+------+------+------+------| | | |------+------+------+------+------+--------| +| Alt | A | | D | F | |------| |------| | 4 | 5 | 6 | + | | +|--------+------+------+------+------+------| | | |------+------+------+------+------+--------| +| Alt | | | C | | B | | | | | 1 | 2 | 3 | + | | +`--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + | Alt | Alt | Alt | | | | 0 | 0 | 0 | + | | + `----------------------------------' `----------------------------------' + ,-------------. ,-------------. + WINDOWS ONLY SETUP!! | ~L3 | | | | | + ,------|------|------| |------+------+------. + | | | | | | | | + | Alt | Alt |------| |------| Alt | Alt | + | | | | | | | | + `--------------------' `--------------------' +``` + + +Usage +------ + +~L1 / L2 / L3 will momentarily switch to a layer if held and another key is pressed. +If pressed and released will remain on layer until pressed again. + +### Unicode + +This layout is for Windows only. To enter a character Press and Hold Alt, type + and hex code then release Alt. + +Changelog +----------- + +### [0.2.1] - 2016-04-05 + +* Changed £ to alt code in Windows. Windows sucks at unicode. + +### [0.2.0] - 2016-03-27 + +* Added unicode layer +* Moved Copy/Paste to left hand side +* Switched Enter and Space (again) +* Added L3 (unicode layer) toggle +* Removed Press and Hold for Alt on right hand size (/) +* Swapped Volume Up/Down to match arrows +* Tried fixing £ macro +* Removed * in the matrix function things (upstream change) + +### [0.1.1] - 2016-03-23 + +* Changed £ input to a macro + + +### [0.1.0] - 2016-03-22 + +After actually using the keyboard, I've made some changes: + +* Swapped Enter and Space +* Moved backspace to thumb keys (top right still remains) +* Added Ctrl+Alt+Delete +* Added Teensy Reset on 2nd layer +* Switched Up and Down +* Changed copy/paste to be Ctrl+c and Ctrl+v as KC_COPY/PASTE didn't work (in Windows) +* Moved ~L2 to replace +L1 after learning how the function works (notes above) +* Hopefully fixed GBP symbol (unicode enabled in MakeFile) + +### [0.0.1] - 2016-03-21 + +First version + + +Issues +------- + +Space for feedback and notes for future improvements + +---- +1: For Windows only, and you have to edit the [registry](https://en.wikipedia.org/wiki/Unicode_input#Hexadecimal_code_input). diff --git a/keyboard/ergodox_ez/keymaps/alexjj/rl-layout.jpg b/keyboard/ergodox_ez/keymaps/alexjj/rl-layout.jpg new file mode 100644 index 0000000000..e4e92bf464 Binary files /dev/null and b/keyboard/ergodox_ez/keymaps/alexjj/rl-layout.jpg differ diff --git a/keyboard/ergodox_ez/keymaps/andrew_osx/andrew_osx.hex b/keyboard/ergodox_ez/keymaps/andrew_osx/andrew_osx.hex new file mode 100644 index 0000000000..fc0876d844 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/andrew_osx/andrew_osx.hex @@ -0,0 +1,1121 @@ +:100000000C9465020C94AC020C94AC020C94AC02FF +:100010000C94AC020C94AC020C94AC020C94AC02A8 +:100020000C94AC020C94AC020C94C30B0C94950C85 +:100030000C94AC020C94AC020C94AC020C94AC0288 +:100040000C94AC020C9409210C94AC020C94AC02FC +:100050000C94AC020C949B1A0C94AC020C94AC0261 +:100060000C94AC020C94AC020C94AC020C94AC0258 +:100070000C94AC020C94AC020C94AC020C94AC0248 +:100080000C94AC020C94AC020C94AC020C94AC0238 +:100090000C94AC020C94AC020C94AC020C94AC0228 +:1000A0000C94AC020C94AC020C94AC02020D240D26 +:1000B000170E240D170E690D8C0D170EE10DF40DA2 +:1000C000DE10DE100D110D1150118A1197139713C8 +:1000D000A3119713981298126B1397139713821307 +:1000E0000000F0A12E002B002971E10035810000F5 +:1000F0001E00140004001D71E20027021F001A00F8 +:1001000016001B00E104E3002000080007000600C1 +:1001100050002C0021001500090019004F00260294 +:10012000220017000A000500000065743400C100B9 +:100130000000007F0000E3003400C10000000077F1 +:100140000000290023001C000B0011000000297191 +:10015000240018000D00100052002F0225000C0092 +:100160000E00360051002800260012000F00370054 +:100170002F00E7002700130033823871300030026F +:100180002A002D003100E5000154000001000100AB +:1001900001000100010000003A001E0220022202BC +:1001A000010001003B001F022102230201000100A7 +:1001B0003C002F0226022F00010001003D0030020A +:1001C00027023000010001003E00310235003502F7 +:1001D000000001000100010000000100000001001A +:1001E0000100010000000100000001003F0052007A +:1001F00051002402000001004000240021001E00E4 +:10020000010001004100250022001F00370001000D +:1002100042002600230020002700010043002502A1 +:100220002E0231002E0001004400450001000100B3 +:1002300001000000010001000100010001000000B8 +:1002400001000100010001000100010001000100A6 +:10025000F2000100010001000100F000F1000100C6 +:10026000F400010001000100F3000100F5000100AD +:100270000100010001000100000001000100010077 +:100280000000010000000100010001000000010069 +:100290000000010001000100010001000000010058 +:1002A0000100010001000100A9000100010001009E +:1002B0000100AC00AA00B600010001000100AB0083 +:1002C000A80001000100010001000100010001007F +:1002D00001000100AE00010001000000160345000E +:1002E000720067006F0044006F0078002000450036 +:1002F0005A00000016034500720067006F004400BA +:100300006F007800200045005A0000000403090433 +:1003100009026D00040100A0FA09040000010301B4 +:100320000100092111010001223F00070581030896 +:10033000000A090401000103010200092111010062 +:1003400001224D000705820308000A09040200018A +:100350000300000009211101000122360007058376 +:100360000308000A09040300010300000009211129 +:100370000100012239000705840310000112011059 +:100380000100000008EDFE07130100010200010555 +:10039000010906A101050719E029E71500250195C6 +:1003A0000875018102050819012905950575019156 +:1003B000029501750391010507190029771500259C +:1003C00001957875018102C005010980A1018502AE +:1003D00016010026B7001A01002AB7007510950112 +:1003E0008100C0050C0901A1018503160100269CAE +:1003F000021A01002A9C02751095018100C00501B6 +:100400000902A1010901A100050919012905150029 +:10041000250195057501810295017503810105018D +:10042000093009311581257F950275088106093843 +:100430001581257F950175088106050C0A3802157E +:1004400081257F950175088106C0C005010906A1B7 +:1004500001050719E029E7150025019508750181B7 +:100460000295017508810105081901290595057591 +:100470000191029501750391010507190029FF15E6 +:100480000025FF950675088100C0000000000000EF +:100490000000000000010204060A0F17202C3A4A4F +:1004A0005D71879DB3C7DAE9F5FCFFFCF5E9DAC7B2 +:1004B000B39D87715D4A3A2C20170F0A060402018A +:1004C0000000000000000000000011241FBECFEF5C +:1004D000DAE0DEBFCDBF04B603FE27C08091ED0198 +:1004E0009091EE01A091EF01B091F0018730904B17 +:1004F000A740B04BD1F41092ED011092EE01109292 +:10050000EF011092F00114BE84B7877F84BF0FB64D +:10051000F894A895809160008861809360001092A3 +:1005200060000FBEE0E0FFE3099511E0A0E0B1E05C +:10053000E4EBF5E402C005900D92A433B107D9F7BE +:1005400021E0A4E3B1E001C01D92AD3EB207E1F7A6 +:100550000E940A090C94D8220C94000061110BC06F +:10056000FC018281882321F085EE0E94780F03C070 +:1005700085EE0E94401080E090E00895089560911B +:10058000B1017091B2018091B3019091B4010E94C8 +:10059000C81956985E9825982D9826982E982798D1 +:1005A0002F98813019F0823021F00895259A2D9AE4 +:1005B0000895269A2E9A08950C94BF0256985E9834 +:1005C00025982D9826982E9827982F988FEF90E0B1 +:1005D000909389008093880090938B0080938A0089 +:1005E00090938D0080938C00259A2D9A2FEF80E7B1 +:1005F00092E0215080409040E1F700C00000269A30 +:100600002E9A2FEF80E792E0215080409040E1F752 +:1006100000C00000279A2F9A2FEF80E792E0215028 +:1006200080409040E1F700C0000025982D982FEF02 +:1006300080E792E0215080409040E1F700C0000048 +:1006400026982E982FEF80E792E02150804090402E +:10065000E1F700C0000027982F9856985E982598DB +:100660002D9826982E9827982F98089589EA809398 +:10067000800089E08093810024982C983F988AB16B +:100680008F748AB96E98479A8BB1806B8BB9769AC2 +:100690000E94DE020C94BE0280E2809300018091F1 +:1006A000340181110EC00E949B0381E080933401CC +:1006B0002FEF83ED90E3215080409040E1F700C0A0 +:1006C000000080E40E94A1038093000181112EC0EC +:1006D0000E94CB0380930001811128C00E94CB03AC +:1006E00080930001811122C08FE30E94CB0380938D +:1006F000000181111BC00E94C30380E40E94A1037A +:1007000080930001811112C08CE00E94CB03809382 +:10071000000181110BC00E94CB0380930001811165 +:1007200005C08FE30E94CB03809300010E94C303A6 +:100730008091000108951092B9008AE08093B8007A +:10074000089594EA9093BC009091BC0097FFFCCF71 +:100750009091B900987F983021F0903111F081E0AC +:1007600008958093BB0084E88093BC008091BC0016 +:1007700087FFFCCF8091B900887F883111F08034E9 +:1007800071F780E0089584E98093BC008091BC00FB +:1007900084FDFCCF08958093BB0084E88093BC0067 +:1007A0008091BC0087FFFCCF9091B900987F81E0D9 +:1007B000983209F480E0089584E88093BC00809129 +:1007C000BC0087FFFCCF8091BB00089580910001A1 +:1007D000811115C080E40E94A10380930001811162 +:1007E0000CC082E10E94CB0380930001811105C0FF +:1007F0008FEF0E94CB03809300010E94C30384B15A +:10080000807F84B985B1807F85B98AB1837F8AB9B9 +:100810008BB1837F8BB93E98469808950E944C0314 +:10082000809300010E94E60380B38C7080BB81B38B +:10083000836F81BBE4E4F1E0A6E3B1E011921D9285 +:1008400081E0E235F807D1F70C9436039F92AF921E +:10085000BF92CF92DF92EF92FF920F931F93CF93AD +:10086000DF9380910001882379F0809135018F5FBB +:1008700080933501811108C00E944C0380930001D0 +:10088000811102C00E94DE0286E3E82E81E0F82E8C +:100890008701C0E0D0E0BB24B39492E0A92ECC2421 +:1008A000C394D12CC730D10500F58091000181118E +:1008B00064C080E40E94A10380930001811112C0F2 +:1008C00082E10E94CB038093000181110BC0C6011D +:1008D0000C2E01C0880F0A94EAF780950E94CB0382 +:1008E000809300010E94C30348C0CA30A1F028F4DD +:1008F000C83059F0C93061F005C0CC3089F070F0D3 +:10090000CD3089F0209A289810C0219A29980DC0DE +:10091000229A2A980AC0239A2B9807C0529A01C09B +:10092000539A5B9802C03E9A4698E0EAEA95F1F73E +:100930008FB181708B25799902C032E001C030E01F +:10094000832B7C9902C034E001C030E0832B7D9979 +:1009500002C028E001C020E0822B7E9902C090E115 +:1009600001C090E0892B9FB19095991F9927991FFD +:100970009295990F907E892B0FC080910001811173 +:100980004AC080E40E94A10380930001882381F182 +:10099000912C0E94C303892DD8019C91981719F0BE +:1009A0008C93A09201010E94E60321960F5F1F4FD6 +:1009B000CE30D10509F076CF80910101882369F10D +:1009C000815080930101882339F0EFE9FFE03197EE +:1009D000F1F700C0000021C0E4E4F1E0D7018D91FF +:1009E0007D018193B4E4EB16B1E0FB06B9F715C0C5 +:1009F00083E10E94CB03809300018111C9CF81E480 +:100A00000E94A103809300018111C2CF0E94DC03E8 +:100A1000982E9094BECF80E0BFCF0E94DC0281E090 +:100A2000DF91CF911F910F91FF90EF90DF90CF90CA +:100A3000BF90AF909F900895E82FF0E0EC5BFE4FE1 +:100A40008081089508958B3B910580F4883A910543 +:100A500048F5853A9105D8F48430910508F0B2C084 +:100A6000019709F06EC081E090E00895803E910505 +:100A700008F467C0883E910508F4A4C09C01205F7B +:100A800031092031310508F05CC090650895853A40 +:100A9000910509F459C0863A910509F058C082E8D9 +:100AA00090E40895883A910509F454C0893A910573 +:100AB00009F453C08A3A910509F452C08B3A910562 +:100AC00009F451C08C3A910509F450C08D3A910552 +:100AD00009F44FC0803B910509F44EC08E3A910550 +:100AE00009F44DC08F3A910509F44CC0813B910542 +:100AF00009F44BC0823B910509F44AC0833B910540 +:100B000009F449C0843B910509F448C0853B91052F +:100B100009F447C0863B910509F446C0873B91051F +:100B200009F445C0883B910509F444C0893B91050F +:100B300009F443C08A3B910509F442C080E094E483 +:100B4000089580E090E0089581E890E4089583E8B6 +:100B500090E4089582EE94E4089589EE94E4089573 +:100B60008AEE94E4089585EB94E4089586EB94E48A +:100B7000089587EB94E408958CEC94E408958DEC4B +:100B800094E4089583E895E408958AE895E4089547 +:100B900082E995E4089584E995E4089581E296E474 +:100BA000089583E296E4089584E296E4089585E248 +:100BB00096E4089586E296E4089587E296E408951F +:100BC0008AE296E40895089524E5829FC0011124E5 +:100BD000FC0126E0729FE00DF11D1124E60FF11DCE +:100BE000EE0FFF1FEC51FF4F859194910895880FF0 +:100BF000991FFC01E05AF040859194910895880F67 +:100C0000991FFC01E052FF4F85919491089524E5CE +:100C1000829FC0011124FC0146E0749FE00DF11D8C +:100C20001124E60FF11DEE0FFF1FEC51FF4F8591D0 +:100C300094919C013A9521154FE1340708F425C1A0 +:100C40003F512115304120F49F700E94FF05089507 +:100C50009C0130532115304118F49927906C089568 +:100C6000811520E5920769F40E94B9134FEF84E3E0 +:100C70009CE0415080409040E1F700C000000C949F +:100C8000C01A813020E5920731F48091CC01816057 +:100C90008093CC0108959C0130552115304108F016 +:100CA0005CC0292F33272F70332721303105E9F419 +:100CB000AC0164E0440F551F6A95E1F74427537077 +:100CC000BC016370772702C0220F331F6A95E2F7D9 +:100CD0003C68242B352B73E0880F991F7A95E1F738 +:100CE00080769927822B932B08952230310529F4A1 +:100CF000982F8827816F906A089523303105A1F4D9 +:100D0000AC0133E0440F551F3A95E1F7407E577030 +:100D10008370992721E030E002C0220F331F8A95AB +:100D2000E2F7C9019C6816C02430310531F5AC01E9 +:100D300023E0440F551F2A95E1F7407E57708370DA +:100D4000992721E030E002C0220F331F8A95E2F795 +:100D5000C9019A68842B952B08959C013057211561 +:100D6000304118F49F70906208959C01305821150D +:100D7000304118F49F70906A0895803E9105E0F428 +:100D8000803C910558F58133910509F46FC048F412 +:100D90008932910509F463C08A32910509F46DC066 +:100DA00072C089339105E9F082389105D1F085331D +:100DB000910509F44DC067C0833E910581F138F477 +:100DC000803E9105B9F0823E9105D9F05CC0863E27 +:100DD000910561F1873E9105A1F155C00E94F7058B +:100DE00008952091DE0120FD02C021FF4CC080EE5D +:100DF00090E049C08091DE0180FFF9CF89E390E067 +:100E000042C08091DE0182FF0EC08091DE0184FF2E +:100E100003C080E090E037C083EE90E034C0809162 +:100E2000DE0182FFF2CF82EE90E02DC08091DE01E4 +:100E300083FF0BC08091DE0184FDEBCF87EE90E055 +:100E400022C08091DE0183FFF5CF86EE90E01BC0CB +:100E50008091DE0185FF07C089E290E014C0809197 +:100E6000DE0185FFF9CF85E390E00DC08091DE01C2 +:100E700086FF07C08AE290E006C08091DE0186FF0F +:100E8000F9CF81E390E00E942305089508958091B1 +:100E900062010895CF93DF9300D01F92CDB7DEB7E4 +:100EA0009C018091E401843019F593E099833B83A0 +:100EB0002A839093E9008FEF9091E800815095FD8F +:100EC00006C095ED9A95F1F700008111F5CF80915C +:100ED000E80085FF0DC040E050E063E070E0CE0127 +:100EE00001960E94B7098091E8008E778093E80010 +:100EF0000F900F900F90DF91CF910895CF93DF93D4 +:100F000000D01F92CDB7DEB72091E401243021F547 +:100F100022E029839B838A8383E08093E9008FEF1B +:100F20009091E800815095FD06C095ED9A95F1F7F6 +:100F300000008111F5CF8091E80085FF0DC040E0F1 +:100F400050E063E070E0CE0101960E94B709809105 +:100F5000E8008E778093E8000F900F900F90DF915C +:100F6000CF9108959C018091E4018430F9F482E0EE +:100F70008093E9009FEF8091E800915085FD06C0C5 +:100F800085ED8A95F1F700009111F5CF8091E80089 +:100F900085FF0CC040E050E065E070E0C9010E94B0 +:100FA000B7098091E8008E778093E8000895CF9389 +:100FB000DF93EC018091E401843009F046C0909108 +:100FC0000C019923D9F090910D019923B9F08093E8 +:100FD000E9008FEF9091E800815095FD06C095E102 +:100FE0009A95F1F700008111F5CF8091E80085FF17 +:100FF0002CC040E050E060E170E017C081E08093D9 +:10100000E9008FEF9091E800815095FD06C095EDC5 +:101010009A95F1F700008111F5CF8091E80085FFE6 +:1010200014C040E050E068E070E0CE010E94B709D3 +:101030008091E8008E778093E80080E1FE01A2E5D0 +:10104000B1E001900D928A95E1F7DF91CF9108957B +:101050008091E301811109C00E94480B0E94A50BF9 +:101060008091E20084608093E20008951092E30191 +:10107000089508950C94F6200E94561A0E94FC20B0 +:101080000E94500E0C94460742E061EC81E00E9401 +:10109000C10A42E061EC82E00E94C10A42E061ECD8 +:1010A00083E00E94C10A42E161EC84E00C94C10A31 +:1010B0008091E601833009F455C030F4813071F03D +:1010C000823009F48EC008958A3009F47AC08B30DA +:1010D00009F460C0893009F09CC020C08091E5010E +:1010E000813A09F096C08091E800877F8093E800FC +:1010F0008091E9019091EA01892B21F460E182E578 +:1011000091E003C060E080E090E070E00E94020A9D +:101110008091E8008B778093E80008958091E50145 +:10112000813209F076C08091E9019091EA0100973F +:1011300019F0039709F06DC08091E800877F8093D4 +:10114000E8008091E80082FD05C08091E4018111F2 +:10115000F8CF5FC08091F100809362018091E80038 +:101160008B7753C08091E501813A09F052C080919C +:10117000E9019091EA01892B09F04BC08091E800C8 +:10118000877F8093E8008091E80080FFFCCF80910A +:101190000C0136C08091E5018132D9F58091E901D9 +:1011A0009091EA01892BA9F58091E800877F8093CF +:1011B000E8000E94F60A8091E70180930C010C94EC +:1011C000B9138091E501813221F58091E800877F94 +:1011D0008093E8000E94F60A8091E8018093630101 +:1011E00008958091E501813AA1F48091E800877F1C +:1011F0008093E8008091E80080FFFCCF809163013C +:101200008093F1008091E8008E778093E8000C9441 +:10121000F60A089584B7877F84BF0FB6F894A8951F +:1012200080916000886180936000109260000FBE22 +:1012300090E080E80FB6F89480936100909361008D +:101240000FBE0E949F0E0E94480B0E94A50B80912A +:10125000E20084608093E20078940E94300E0E9445 +:10126000A10E82E091E00E944B0E0E94E42080914A +:10127000E401853069F40E94181A8091E201882304 +:10128000B1F30E94421A882391F30E94A109EFCF83 +:101290000E94A70EECCF292F332723303105C9F048 +:1012A00060F42130310581F02230310509F041C070 +:1012B0008DE690E020E133E040C021323105E1F0DD +:1012C0002232310531F135C082E190E02DE733E083 +:1012D00034C099278130910549F028F0029749F5EB +:1012E000ECEDF2E005C0ECE0F3E002C0E4EFF2E088 +:1012F000849190E09F0121C06430D8F4E62FF0E0A3 +:10130000EE0FFF1FEE5DFE4F2081318189E090E0FE +:1013100014C0643070F470E0FB01EE0FFF1FE65E56 +:10132000FE4F20813181FB01EA5EFE4F808190E01B +:1013300004C080E090E020E030E0FA0131832083B7 +:10134000089580E189BD82E189BD09B400FEFDCF29 +:101350008091D8008F7D8093D8008091E0008260DA +:101360008093E0008091E00081FDFCCF0895CF9252 +:10137000DF92EF92FF920F931F93CF93DF93EC01D5 +:101380008B016A010E94150B811133C0C114D10475 +:1013900039F0F60180819181081B190BC80FD91F04 +:1013A000E12CF12C0115110519F18091E80085FD62 +:1013B00016C08091E8008E778093E800C114D104B4 +:1013C00049F0F60180819181E80EF91EF182E082F8 +:1013D00085E00FC00E94150B882321F30AC0899174 +:1013E0008093F10001501109FFEFEF1AFF0ADACFE5 +:1013F00080E0DF91CF911F910F91FF90EF90DF90F0 +:10140000CF9008952091EB013091EC01261737071A +:1014100048F06115710539F42091E8002E7720938A +:10142000E80001C0B901FC0120E06115710579F106 +:101430008091E4018823F1F18530F1F18091E80099 +:1014400083FD3CC08091E80082FD2EC08091E800C1 +:1014500080FFEBCF2091F3008091F20090E0922B7F +:101460006115710551F08830910538F42191209370 +:10147000F100615071090196F3CF21E0089709F05E +:1014800020E08091E8008E778093E800CECF211194 +:10149000CFCF0AC08091E401882361F0853061F0EC +:1014A0008091E80083FD0AC08091E80082FFF2CFBE +:1014B00080E0089582E0089583E0089581E0089532 +:1014C0002091EB013091EC012617370748F06115A8 +:1014D000710539F42091E8002E772093E80001C0CF +:1014E000B901FC0120E06115710591F18091E401E1 +:1014F000882309F440C0853009F43FC08091E8009A +:1015000083FD3DC08091E80082FD2FC08091E800FE +:1015100080FFE9CF2091F3008091F20090E0922BC0 +:101520006115710559F08830910540F4249120939C +:10153000F1003196615071090196F2CF21E00897D0 +:1015400009F020E08091E8008E778093E800CBCF0F +:101550002111CCCF0AC08091E401882361F085304D +:1015600061F08091E80083FD0AC08091E80082FF6D +:10157000F2CF80E0089582E0089583E0089581E04D +:101580000895982F973068F59093E900981739F0EF +:101590007091EC002091ED005091F00003C0242FD9 +:1015A000762F50E021FD02C09F5FECCF3091EB0021 +:1015B0003E7F3093EB003091ED003D7F3093ED00A6 +:1015C0003091EB0031603093EB007093EC0020938E +:1015D000ED005093F0002091EE0027FDE5CF80E074 +:1015E00008958F708093E90081E008958091E5016E +:1015F00087FF11C08091E80082FD05C08091E40161 +:101600008111F8CF11C08091E8008B770BC08091D9 +:10161000E401882349F08091E80080FFF8CF8091B1 +:10162000E8008E778093E80008952091E4003091DF +:10163000E50095E64091EC00842F817040FF23C0C7 +:101640008091E80080FD1DC08091E401882399F01D +:10165000853099F08091EB0085FD11C04091E40048 +:101660005091E5002417350729F3915011F09A01A4 +:10167000E1CF84E0089582E0089583E0089581E059 +:10168000089580E008954091E80042FFDDCF08957D +:101690000E94B60B0E94BE0BE0EEF0E080818160FC +:1016A0008083E8EDF0E080818F77808319BCA7ED1F +:1016B000B0E08C918E7F8C9380818F7E808310929E +:1016C000E30108950F931F93CF93DF930E94B60B0E +:1016D0000E94BE0BC8EDD0E088818F778883888117 +:1016E0008068888388818F7D888319BC1092E4018B +:1016F0001092E0011092E2011092E10100EE10E080 +:10170000F80180818B7F808388818160888342E0BB +:1017100060E080E00E94C10AE1EEF0E080818E7F0F +:101720008083E2EEF0E08081816080838081886048 +:101730008083F80180818E7F8083888180618883A7 +:10174000DF91CF911F910F910895E8EDF0E0808136 +:101750008F7E8083E7EDF0E080818160808384E08C +:1017600082BF81E08093E3010C94620BE8EDF0E02E +:1017700080818E7F80831092E20008951092DA00BB +:101780001092E10008951F920F920FB60F9211244C +:101790002F933F934F935F936F937F938F939F9379 +:1017A000AF93BF93EF93FF938091E10082FF0BC053 +:1017B0008091E20082FF07C08091E1008B7F8093DF +:1017C000E1000E942F0E8091DA0080FF1FC08091FF +:1017D000D80080FF1BC08091DA008E7F8093DA00F2 +:1017E0008091D90080FF0DC080E189BD82E189BD73 +:1017F00009B400FEFDCF81E08093E4010E94280837 +:1018000005C019BC1092E4010E9436088091E100E5 +:1018100080FF19C08091E20080FF15C08091E20036 +:101820008E7F8093E2008091E20080618093E200ED +:101830008091D80080628093D80019BC85E08093A5 +:10184000E4010E943A088091E10084FF30C0809159 +:10185000E20084FF2CC080E189BD82E189BD09B42A +:1018600000FEFDCF8091D8008F7D8093D8008091BD +:10187000E1008F7E8093E1008091E2008F7E809373 +:10188000E2008091E20081608093E2008091E001BB +:10189000882311F084E007C08091E30087FD02C037 +:1018A00081E001C083E08093E4010E943C088091C4 +:1018B000E10083FF29C08091E20083FF25C0809171 +:1018C000E100877F8093E10082E08093E401109241 +:1018D000E0018091E1008E7F8093E1008091E20041 +:1018E0008E7F8093E2008091E20080618093E2002D +:1018F00042E060E080E00E94C10A8091F0008860D0 +:101900008093F0000E943908FF91EF91BF91AF9151 +:101910009F918F917F916F915F914F913F912F9107 +:101920000F900FBE0F901F9018951F920F920FB639 +:101930000F9211242F933F934F935F936F937F9355 +:101940008F939F93AF93BF93CF93DF93EF93FF93C7 +:10195000C091E900CF708091EC00D82FD17080FD4C +:10196000D0E81092E9008091F000877F8093F0002A +:1019700078940E94D90C1092E9008091F000886060 +:101980008093F000CD2BCF70C093E900FF91EF91D1 +:10199000DF91CF91BF91AF919F918F917F916F9187 +:1019A0005F914F913F912F910F900FBE0F901F901D +:1019B00018951F93CF93DF93CDB7DEB7AA970FB6D5 +:1019C000F894DEBF0FBECDBFE5EEF1E08091F100EF +:1019D000819321E0ED3EF207C9F70E9458088091FB +:1019E000E80083FF24C18091E5019091E601492F31 +:1019F00050E04A30510508F01AC1FA01EA5AFF4F87 +:101A00000C948D22803881F0823809F010C18091C9 +:101A1000E9018F708093E9008091EB0085FB8827B6 +:101A200080F91092E90006C08091E1019091E201F5 +:101A3000911182609091E800977F9093E8008093E5 +:101A4000F1001092F100C8C0282F2D7F09F0EFC0DF +:101A5000882319F0823061F0EAC08091E70181307B +:101A600009F0E5C0933009F080E08093E2012BC0DB +:101A70008091E701811127C08091E9018F7009F4FD +:101A8000D6C08093E9002091EB0020FF1CC093306A +:101A900021F48091EB00806214C09091EB00906182 +:101AA0009093EB0021E030E0A90102C0440F551FE4 +:101AB0008A95E2F74093EA001092EA008091EB00E9 +:101AC00088608093EB001092E9008091E800877FA6 +:101AD00086C08111ACC01091E7011F778091E300AF +:101AE0008078812B8093E3008091E800877F80934A +:101AF000E8000E94F60A8091E80080FFFCCF809108 +:101B0000E30080688093E300111102C082E001C00D +:101B100083E08093E4018BC08058823008F087C056 +:101B20008091E7019091E8018C3D53E0950779F5AC +:101B300083E08A838AE289834FB7F894DE011396A3 +:101B400020E03EE051E2E32FF0E050935700E491B3 +:101B500020FF03C0E295EF703F5FEF708E2F90E0A3 +:101B6000EA3010F0C79601C0C0968D939D932F5F09 +:101B7000243149F74FBF8091E800877F8093E800C8 +:101B80006AE270E0CE0101960E94020A14C0AE0122 +:101B90004F5F5F4F6091E9010E944B09BC01892BA7 +:101BA00009F445C09091E800977F9093E8008981FF +:101BB0009A810E94600A8091E8008B778093E80008 +:101BC00036C08038A1F58091E800877F8093E800D7 +:101BD0008091E0018093F1008091E8008E778093FE +:101BE000E8000E94F60A23C0811121C08091E7011C +:101BF0009091E80199270297D4F48091E800877FBB +:101C00008093E8008091E7018093E0010E94F60A4A +:101C10008091E001811106C08091E30087FD02C040 +:101C200081E001C084E08093E4010E944408809137 +:101C3000E80083FF0AC08091E800877F8093E80076 +:101C40008091EB0080628093EB00AA960FB6F89427 +:101C5000DEBF0FBECDBFDF91CF911F9108950895D4 +:101C6000CF938091E4018823A1F0C091E900CF7067 +:101C70009091EC00892F817090FD80E8C82B109224 +:101C8000E9008091E80083FD0E94D90CCF70C093D9 +:101C9000E900CF91089590936901809368010895B8 +:101CA000E0916801F0916901309721F00190F08195 +:101CB000E02D099480E00895E0916801F0916901B8 +:101CC000309721F00280F381E02D09940895E0918E +:101CD0006801F0916901309721F00480F581E02DD1 +:101CE00009940895209166013091670128173907FA +:101CF00071F09093670180936601E0916801F09123 +:101D00006901309721F00680F781E02D099408954C +:101D100020916401309165012817390771F0909383 +:101D2000650180936401E0916801F0916901309749 +:101D300021F00084F185E02D0994089508950C9414 +:101D40009E0E0E945C1A0E940E040C94221BCF92DD +:101D5000DF92EF92FF920F931F93CF93DF93CDB754 +:101D6000DEB72B970FB6F894DEBF0FBECDBF0E9433 +:101D700026048BE6C82E81E0D82E00E010E0E02E8D +:101D8000802F0E941C05F60141916F01F82EF42668 +:101D9000B1F40F5F1F4F0E30110589F78FEF898364 +:101DA0008A831B820E94651A8160782F9D838C83B1 +:101DB00049815A816B818D810E944A0F40C0909168 +:101DC000CC0191FF04C08B870E9422058B8520E007 +:101DD00030E04F2D50E0922FBA01022E02C07595CF +:101DE00067950A94E2F760FF24C02E83EF8221E01A +:101DF00030E0690102C0CC0CDD1C9A95E2F790E05E +:101E00008C219D21892B09F420E028870E94651AE6 +:101E10008160782F9A8789874E815F8168858A855E +:101E20000E944A0FF801E559FE4F8081C826C08202 +:101E300006C02F5F3F4F2630310569F6AACF0E94BA +:101E4000091E0E94500E90916A018917A1F00E940C +:101E5000500E80936A012B960FB6F894DEBF0FBE2A +:101E6000CDBFDF91CF911F910F91FF90EF90DF9049 +:101E7000CF900C9446072B960FB6F894DEBF0FBE9A +:101E8000CDBFDF91CF911F910F91FF90EF90DF9029 +:101E9000CF900895CF93DF93CDB7DEB72B970FB6D2 +:101EA000F894DEBF0FBECDBF4F83588769877A870E +:101EB0008B87DE01119686E0FD0111928A95E9F784 +:101EC00085E0FE01379601900D928A95E1F74981F0 +:101ED0005A816B817C818D819E810E944D162B964B +:101EE0000FB6F894DEBF0FBECDBFDF91CF9108953E +:101EF000CF93C82F882309F4C1C0823859F40E94B7 +:101F0000500E81FDBBC089E30E94EA180E94A2190D +:101F100089E30CC0833879F40E94500E80FDAEC076 +:101F200083E50E94EA180E94A21983E50E942919FC +:101F3000CF910C94A219843859F40E94500E82FD5E +:101F40009DC087E40E94EA180E94A21987E4EECFA0 +:101F50008CEF8C0F813A48F48C2F0E94492081111C +:101F60008DC08C2F0E94EA18E3CF80E28C0F88305E +:101F700048F4C77081E001C0880FCA95EAF70E9453 +:101F80006B19D6CF8BE58C0F833078F4C53A29F0E6 +:101F9000C63A31F083E890E005C081E890E002C0E5 +:101FA00082E890E0CF910C94720E88E58C0F83311B +:101FB00008F064C0C83A39F1C93A41F1CA3A49F166 +:101FC000CB3A51F1CC3A59F1CD3A61F1C03B69F1CC +:101FD000CE3A71F1CF3A79F1C13B81F1C23B89F13F +:101FE000C33B91F1C43B99F1C53BA1F1C63BA9F1BB +:101FF000C73BB1F1C83BB9F1C93BC1F1CA3BC9F11B +:1020000080E090E038C082EE90E035C089EE90E04C +:1020100032C08AEE90E02FC085EB90E02CC086EBBA +:1020200090E029C087EB90E026C08CEC90E023C0C4 +:102030008DEC90E020C083E891E01DC08AE891E03B +:102040001AC082E991E017C084E991E014C081E2EE +:1020500092E011C083E292E00EC084E292E00BC0F5 +:1020600085E292E008C086E292E005C087E292E055 +:1020700002C08AE292E0CF910C94880ECF9108952D +:10208000882309F44BC0823859F40E94500E81FF16 +:1020900045C089E30E94EA180E94A21989E30CC096 +:1020A000833871F40E94500E80FF38C083E50E948F +:1020B000EA180E94A21983E50E9429190C94A2191A +:1020C000843859F40E94500E82FF28C087E40E9491 +:1020D000EA180E94A21987E4EFCF9CEF980F913A7B +:1020E00058F390E2980F983050F4877091E001C057 +:1020F000990F8A95EAF7892F0E947119DFCF9BE526 +:10210000980F933020F480E090E00C94720E885A7F +:10211000833120F480E090E00C94880E08958823A9 +:1021200021F00E946B190C94A2190895882321F0C4 +:102130000E9471190C94A2190895BF92CF92DF9258 +:10214000EF92FF920F931F93CF93DF9300D000D0B5 +:1021500000D0CDB7DEB77C0185E0F701DE01119636 +:1021600001900D928A95E1F7F70183819481892B83 +:1021700009F4DDC2908181818F3F19F49F3F09F4FA +:10218000D6C2F7010281258122952F7099838A8317 +:1021900089819A812E830E94A918182FB92E0E9436 +:1021A000A8180E946F17EB2DE295EF704E2F50E0AC +:1021B000FA01E05AFF4F2E810C948D228B2D807FE7 +:1021C0009B2D9F70F92E882319F0F29480EFF8224E +:1021D000002349F0FF2009F457C28F2D0E947B197C +:1021E0000E94A21951C2812F0E944010FF2009F4C1 +:1021F0009EC28F2D0E94811926960FB6F894DEBFDD +:102200000FBECDBFDF91CF911F910F91FF90EF9047 +:10221000DF90CF90BF900C94A2193B2D307F8B2D77 +:102220008F70303211F08295807F112319F01130B8 +:1022300021F12CC00023B9F0222309F490C12130F0 +:1022400009F08DC126960FB6F894DEBF0FBECDBF44 +:10225000DF91CF911F910F91FF90EF90DF90CF9082 +:10226000BF900C948B19222319F0213009F45FC21E +:102270008E830E948E198E8186C1002321F0223028 +:1022800008F055C26CC1211152C27DC1002321F05A +:10229000222309F464C1F8C1222309F474C109C2DC +:1022A0008B2D86958695837019F08130D1F03FC2D1 +:1022B000002321F0812F9B2D937002C080E090E0DD +:1022C00026960FB6F894DEBF0FBECDBFDF91CF913B +:1022D0001F910F91FF90EF90DF90CF90BF900C94E3 +:1022E000720E002321F0812F9B2D937002C080E09D +:1022F00090E026960FB6F894DEBF0FBECDBFDF91FB +:10230000CF911F910F91FF90EF90DF90CF90BF90F2 +:102310000C94880E812F002319F00E94111D02C019 +:102320000E94791D26960FB6F894DEBF0FBECDBF72 +:10233000DF91CF911F910F91FF90EF90DF90CF90A1 +:10234000BF900C94FE1D8B2D837009F075C0011198 +:10235000EEC1812F829586958770880F880F912F07 +:102360009F70C92ED12CE12CF12C082E04C0CC0C6E +:10237000DD1CEE1CFF1C0A94D2F714FF12C00FE004 +:1023800010E020E030E004C0000F111F221F331FB7 +:102390008A95D2F7C901B80160957095809590959E +:1023A00003C060E070E0CB014B2D4695469543702D +:1023B0004230C1F060F56C297D298E299F2941307A +:1023C00051F126960FB6F894DEBF0FBECDBFDF9158 +:1023D000CF911F910F91FF90EF90DF90CF90BF9022 +:1023E0000C9496176C297D298E299F2926960FB665 +:1023F000F894DEBF0FBECDBFDF91CF911F910F913B +:10240000FF90EF90DF90CF90BF900C94B2170E9496 +:102410009617C701B60126960FB6F894DEBF0FBE19 +:10242000CDBFDF91CF911F910F91FF90EF90DF9083 +:10243000CF90BF900C947A17002319F08B2D8170E8 +:1024400001C08695882309F472C1812F82958695F3 +:102450008770880F880F912F9F70C92ED12CE12C87 +:10246000F12C082E04C0CC0CDD1CEE1CFF1C0A94C1 +:10247000D2F714FF12C00FE010E020E030E004C0FB +:10248000000F111F221F331F8A95D2F7C901B8010F +:10249000609570958095909503C060E070E0CB01E9 +:1024A0004B2D4695469543704230C1F060F56C293E +:1024B0007D298E299F29413051F126960FB6F89437 +:1024C000DEBF0FBECDBFDF91CF911F910F91FF9067 +:1024D000EF90DF90CF90BF900C9470186C297D29FD +:1024E0008E299F2926960FB6F894DEBF0FBECDBF6A +:1024F000DF91CF911F910F91FF90EF90DF90CF90E0 +:10250000BF900C948C180E947018C701B6012696D3 +:102510000FB6F894DEBF0FBECDBFDF91CF911F91F4 +:102520000F91FF90EF90DF90CF90BF900C945418D4 +:10253000103FD1F118F4103E50F4A1C0123F09F43D +:1025400063C008F44CC0133F09F473C098C01F70F7 +:102550008B2D8F710023A1F00E94ED17812F2696FD +:102560000FB6F894DEBF0FBECDBFDF91CF911F91A4 +:102570000F91FF90EF90DF90CF90BF900C948F1051 +:102580000E940E18812F26960FB6F894DEBF0FBE5C +:10259000CDBFDF91CF911F910F91FF90EF90DF9012 +:1025A000CF90BF900C9496100023A9F02111BFC0CA +:1025B0008B2D8F7126960FB6F894DEBF0FBECDBF60 +:1025C000DF91CF911F910F91FF90EF90DF90CF900F +:1025D000BF900C943318223008F0A9C0E9CF002333 +:1025E000A9F08B2D8F7126960FB6F894DEBF0FBE23 +:1025F000CDBFDF91CF911F910F91FF90EF90DF90B2 +:10260000CF90BF900C94ED17002359F38B2D8F7151 +:1026100026960FB6F894DEBF0FBECDBFDF91CF91E7 +:102620001F910F91FF90EF90DF90CF90BF900C948F +:102630000E18002399F08B2D8F7126960FB6F89403 +:10264000DEBF0FBECDBFDF91CF911F910F91FF90E5 +:10265000EF90DF90CF90BF900C94D81726960FB6CE +:10266000F894DEBF0FBECDBFDF91CF911F910F91C8 +:10267000FF90EF90DF90CF90BF900C94CE17002387 +:10268000A9F0222309F4ADCF812F26960FB6F89436 +:10269000DEBF0FBECDBFDF91CF911F910F91FF9095 +:1026A000EF90DF90CF90BF900C94780F222309F425 +:1026B000ADCF812F26960FB6F894DEBF0FBECDBFEB +:1026C000DF91CF911F910F91FF90EF90DF90CF900E +:1026D000BF900C9440104B2D4F70612FC7010E948A +:1026E000AE0226960FB6F894DEBF0FBECDBFDF91C7 +:1026F000CF911F910F91FF90EF90DF90CF90BF90FF +:102700000C94F2164B2D4F70612FC70126960FB611 +:10271000F894DEBF0FBECDBFDF91CF911F910F9117 +:10272000FF90EF90DF90CF90BF900C94E30526963A +:102730000FB6F894DEBF0FBECDBFDF91CF911F91D2 +:102740000F91FF90EF90DF90CF90BF9008950E947F +:1027500088190E945D190E94A2190E94AE1E0E9453 +:10276000FE1D80E090E00E94720E80E090E00C94EC +:10277000880E0E9478190C94A7130E94A918292F7B +:1027800022952F702C3030F42A3048F42250223019 +:1027900078F405C02C3041F02F3031F009C0803E74 +:1027A00048F0803F29F406C093FB882780F90895FC +:1027B00080E0089581E00895CF93DF9300D000D0AA +:1027C0001F92CDB7DEB70F900F900F900F900F9024 +:1027D000DF91CF910895CF93DF9300D000D000D048 +:1027E000CDB7DEB726960FB6F894DEBF0FBECDBFCD +:1027F000DF91CF9108951F93CF93DF93C09179011B +:1028000016E080917A01C81799F0D0E01C9FF00182 +:102810001D9FF00D1124E558FE4F408151816281CA +:102820007381848195810E94EB132196C770E9CF53 +:10283000DF91CF911F9108954091AB015091AC0170 +:102840006091AD017091AE018091AF019091B001A6 +:102850000C94EB138091B00182958F7009F054C0F5 +:102860008091AD01882309F44FC080917901A09136 +:102870007A014091AE015091AF016091AB0170912E +:10288000AC01B6E08A1709F43FC090E0411551054C +:10289000C1F17F3F11F46F3FA1F1B89FF001B99FE3 +:1028A000F00D1124E558FE4F218127132AC0208105 +:1028B000261327C02281211124C0238134812417AB +:1028C000350710F421503109241B350B283C310504 +:1028D000C0F42091B0012F7020612093B00126E058 +:1028E000289FF001299FF00D1124E058FE4F8081B0 +:1028F0008F70806180838BEA91E00E949D100C9420 +:10290000FB1301968770BECF0895CF92DF92EF92AE +:10291000FF920F931F93CF93DF93CDB7DEB76297EC +:102920000FB6F894DEBF0FBECDBF8C0185E0F80175 +:10293000DE011D9601900D928A95E1F7D8014C9128 +:1029400011965C91119712966C918091AE019091C5 +:10295000AF01009709F475C13091AB017091AC01E2 +:102960007F3F19F43F3F09F46CC1F801C380D48064 +:10297000E090AD01EE2009F4BEC02091B001C81670 +:10298000D90628F0D601A81BB90BCD0104C080954B +:1029900090958C0D9D1DFF24F394883C910578F053 +:1029A000F12C207F09F0C4C07C2DD98AC88A89897E +:1029B0000E94DC138BEA91E00E949D10AFC0822F31 +:1029C000807F09F045C0571313C0431311C0611134 +:1029D0000FC02F7020612093B0010E941C148BEA5D +:1029E00091E00E949D108091B001F80185832EC076 +:1029F000CD2819F15F3F11F44F3FF9F0F62E611128 +:102A00001CC08091790120917A0136E0821709F487 +:102A10005BC090E0389FF001399FF00D1124E5581C +:102A2000FE4F7181571306C07081471303C0728136 +:102A3000711103C001968770E9CFF62E662309F461 +:102A40001CC18091B00181608093B001F12C15C14F +:102A5000571309C0431307C0611105C08091B0012D +:102A6000F8018583C8C04D875E878D859E856A8BFA +:102A70000E94BD136A898823D1F16623C1F1209198 +:102A8000B001822F82958F7090E0029774F0809150 +:102A9000AB019091AC0198878F831986DB86CA863B +:102AA0002C87CE0107960E949D1086E0F801ABEAC4 +:102AB000B1E001900D928A95E1F70E942A140E94DC +:102AC0001C14FF24F394D9C04D875E878D859E85A5 +:102AD0000E94A918292F22952F70223008F0C1C01A +:102AE0009F7009F0BBC0805E883008F4C6C0C80182 +:102AF0000E949D10E6CFC816D90608F453C0F6010F +:102B0000E81BF90BCF01883C910508F450C0F12C6B +:102B10007C2DD98AC88A89890E94DC13EBEAF1E00E +:102B200086E0DF011D928A95E9F70E941C14A5C07A +:102B3000571314C0431312C0611110C08091B0012B +:102B4000F8018583C8010E949D1086E0EBEAF1E060 +:102B5000DF011D928A95E9F7FE2C8FC04D875E87B5 +:102B60008D859E856A8B0E94BD136A89882309F42E +:102B7000BECF662309F4BBCF2091B001822F82958E +:102B80008F7090E002970CF490CF8091AB01909100 +:102B9000AC019A8389831B82DD82CC822E83CE0195 +:102BA000019681CF809590958C0D9D1DACCFF62E12 +:102BB000662309F49CCF571333C0431331C02091CF +:102BC000B00120FD24C0822F82958F70482F50E0E5 +:102BD00041155105E1F0D80115962C9315974F300A +:102BE000510549F08F5F982F9295907F822F8F70BB +:102BF000892B15968C93C8010E949D1086E0F801E0 +:102C0000ABEAB1E001900D928A95E1F78ECF86E0B4 +:102C1000F801ABEAB1E001900D928A95E1F72DC081 +:102C20004D875E878D859E850E94BD1381113DCFA6 +:102C30008091B00181608093B001C8010E949D1015 +:102C40001CC0662309F453CF4D875E878D859E8512 +:102C50000E94BD13882309F44ACF27CF811143CFA7 +:102C60000CC0243008F043CF9F7009F43CCFD8014A +:102C700015969C91907F09F036CF8F2D62960FB6F6 +:102C8000F894DEBF0FBECDBFDF91CF911F910F91A2 +:102C9000FF90EF90DF90CF9008951F93CF93DF9335 +:102CA000CDB7DEB72C970FB6F894DEBF0FBECDBF01 +:102CB0004F83588769877A878B879C87CE010796D1 +:102CC0000E948514882371F08A859B85892B09F4DD +:102CD00041C088858F3F09F065C08F818F3F09F023 +:102CE00061C038C086E0FE013796DE011196019082 +:102CF0000D928A95E1F76A857B856115710551F121 +:102D0000FF81E885EF3F11F4FF3F21F120917A0127 +:102D100030E0C9010196877099274091790150E010 +:102D20008417950709F447C0F983EA837D836C8390 +:102D300096E0929FD001939FB00D1124A558BE4FED +:102D4000FE01319601900D929A95E1F780937A01F8 +:102D50000E94FB1316E08091790190917A01891706 +:102D6000B9F1189FC001112485589E4F0E94851407 +:102D7000882371F1E09179011E9FF0011124E5583B +:102D8000FE4F4081518162817381848195810E94CF +:102D9000EB138091790190E00196877099278093D9 +:102DA0007901D9CF4F81588569857A858B859C8536 +:102DB0000E94EB13CFCF0E94B91310927A011092A8 +:102DC0007901EBEAF1E086E0DF011D928A95E9F7EF +:102DD0002C960FB6F894DEBF0FBECDBFDF91CF911A +:102DE0001F910895EF92FF920F931F93CF93DF935C +:102DF0008C01892B09F46CC0F12CEE24E394E801DA +:102E00002196F8018491843740F4843008F051C051 +:102E1000813081F0823019F15BC0853709F444C0FC +:102E2000A8F19CE7980F903708F052C08F770E9466 +:102E3000401041C00E5F1F4FFE01849190E2980F39 +:102E4000983050F48770FE2D01C0FF0F8A95EAF785 +:102E50008F2F0E947B1914C00E94780F2DC00E5F27 +:102E60001F4FFE01849190E2980F983060F48770B4 +:102E7000FE2D01C0FF0F8A95EAF78F2F0E9481195E +:102E80000E94A21919C00E94401016C00E5F1F4F69 +:102E9000FE01C491CC2381F08FE99FE00197F1F707 +:102EA00000C00000C150F6CF0E5F1F4FFE01F4902E +:102EB00003C00E94780F8E018F2D882309F49FCFC5 +:102EC000EFE9FFE03197F1F700C000008150F5CF46 +:102ED000DF91CF911F910F91FF90EF90089508958A +:102EE0006093B5017093B6018093B7019093B801D8 +:102EF0000C94A7130F931F930091B5011091B60185 +:102F00002091B7013091B801DC01CB01802B912BCE +:102F1000A22BB32B8093B5019093B601A093B70178 +:102F2000B093B8011F910F910C94A7130F931F93A7 +:102F30000091B5011091B6012091B7013091B8010F +:102F4000DC01CB0180239123A223B3238093B5011D +:102F50009093B601A093B701B093B8011F910F9160 +:102F60000C94A7130F931F930091B5011091B60114 +:102F70002091B7013091B801DC01CB018027912766 +:102F8000A227B3278093B5019093B601A093B70110 +:102F9000B093B8011F910F910C94A7131092B10137 +:102FA0001092B2011092B3011092B4010C94A713C5 +:102FB00041E050E060E070E004C0440F551F661F20 +:102FC000771F8A95D2F74093B1015093B201609375 +:102FD000B3017093B4010C94A71341E050E060E09A +:102FE00070E004C0440F551F661F771F8A95D2F703 +:102FF0008091B1019091B201A091B301B091B4015F +:10300000482B592B6A2B7B2B4093B1015093B20173 +:103010006093B3017093B4010C94A71341E050E0A6 +:1030200060E070E004C0440F551F661F771F8A954B +:10303000D2F740955095609570958091B10190912F +:10304000B201A091B301B091B401482359236A237E +:103050007B234093B1015093B2016093B30170930D +:10306000B4010C94A71341E050E060E070E004C0AC +:10307000440F551F661F771F8A95D2F78091B101C3 +:103080009091B201A091B301B091B40148275927A2 +:103090006A277B274093B1015093B2016093B3013B +:1030A0007093B4010C94A7130F931F930091B10177 +:1030B0001091B2012091B3013091B401DC01CB0138 +:1030C000802B912BA22BB32B8093B1019093B20153 +:1030D000A093B301B093B4011F910F910C94A71367 +:1030E0000F931F930091B1011091B2012091B30190 +:1030F0003091B401DC01CB0180239123A223B323BF +:103100008093B1019093B201A093B301B093B40145 +:103110001F910F910C94A7130F931F930091B1016E +:103120001091B2012091B3013091B401DC01CB01C7 +:1031300080279127A227B3278093B1019093B201F2 +:10314000A093B301B093B4011F910F910C94A713F6 +:103150000895CF92DF92EF92FF920F931F93CF9338 +:10316000DF938C01C090B101D090B201E090B30127 +:10317000F090B4018091B5019091B601A091B70192 +:10318000B091B801C82AD92AEA2AFB2ACFE1D0E0B7 +:10319000D701C6010C2E04C0B695A79597958795C3 +:1031A0000A94D2F780FF07C0B8018C2F0E9407064F +:1031B0008130910531F4219758F7B80180E00E94E1 +:1031C0000706DF91CF911F910F91FF90EF90DF9055 +:1031D000CF90089590910C019923F1F090910D01F9 +:1031E0009923D1F0982F9695969596959F3080F5D6 +:1031F000E0910E01F0910F01E90FF11D877021E0C0 +:1032000030E0A90102C0440F551F8A95E2F7CA01B8 +:103210009181892B8183089520910E0130910F01B6 +:10322000F90132969FEF40E05191851789F09F3F59 +:1032300019F4511101C0942F4F5F4E30A9F79F3FF1 +:1032400039F0F901E90FF11D97FDFA958283089590 +:10325000089590910C019923F9F090910D01992313 +:10326000D9F0982F9695969596959F3028F5E091F0 +:103270000E01F0910F01E90FF11D877021E030E0A0 +:10328000A90102C0440F551F8A95E2F7CA01809533 +:10329000918189238183089520910E0130910F013E +:1032A000F9013296205F3F4F9081891301C010824F +:1032B0003196E217F307C1F7089581E090E0E091BD +:1032C0000E01F0910F01E80FF91F10820196803175 +:1032D0009105A9F708959091CB01892B8093CB019B +:1032E000089580959091CB0189238093CB01089517 +:1032F0001092CB0108959091CA01892B8093CA0145 +:10330000089580959091CA0189238093CA010895F8 +:103310001092CA0108958093B90108951092B901DD +:10332000089580910E0190910F01FC0131969C014E +:10333000205F3F4F80E0919191118F5FE217F3077B +:10334000D1F70895E0910E01F0910F018091CB012A +:103350008083E0910E01F0910F0190818091CA016C +:10336000892B80838091B901882361F0E0910E015F +:10337000F0910F019081892B80830E949119811116 +:103380001092B90180910E0190910F010C945C0E86 +:10339000CF92DF92EF92FF926C01EE24FF24C114D2 +:1033A000D104E104F10421F0C701B60120E101C01C +:1033B00020E0C72ED82EE92EFF24C114D104E10449 +:1033C000F10419F0285FC701B6016B017C0154E0DC +:1033D000F694E794D794C7945A95D1F7C114D104C1 +:1033E000E104F10419F02C5FC701B6016B017C0107 +:1033F00042E0F694E794D794C7944A95D1F7C11464 +:10340000D104E104F10419F02E5FC701B601DC011B +:10341000CB01B695A79597958795892B8A2B8B2BF2 +:1034200009F02F5F822FFF90EF90DF90CF900895EB +:103430008091E401843011F120E488E190E00FB63E +:10344000F894A895809360000FBE2093600083B726 +:10345000817F846083BF83B7816083BF78948895C0 +:1034600083B78E7F83BF0FB6F894A89580916000D4 +:10347000886180936000109260000FBE08950895E7 +:103480000C943F1ACF930E94401A0E9426040E9477 +:103490003F1AC0E08C2F0E941C05811104C0CF5F31 +:1034A000CE30C1F701C081E0CF9108950E94B913D9 +:1034B0000E94500E0C94460782E084BD93E095BDB7 +:1034C0009AEF97BD80936E0008952FB7F89480917E +:1034D000CD019091CE01A091CF01B091D0012FBF2D +:1034E0000895CF92DF92EF92FF920F931F932FB721 +:1034F000F8944091CD015091CE016091CF0170912F +:10350000D0012FBF6A017B01EE24FF248C0120E053 +:1035100030E0C016D106E206F30610F4415051091E +:103520009A01281B390BC9011F910F91FF90EF9051 +:10353000DF90CF9008951F920F920FB60F92112433 +:103540008F939F93AF93BF938091CD019091CE01C4 +:10355000A091CF01B091D0010196A11DB11D809322 +:10356000CD019093CE01A093CF01B093D001BF9134 +:10357000AF919F918F910F900FBE0F901F90189554 +:103580000E94480BF8942FEF87EA91E62150804083 +:103590009040E1F700C0000087E090EBDC018093F1 +:1035A000ED019093EE01A093EF01B093F0019CE048 +:1035B00088E10FB6F894A895809360000FBE9093B1 +:1035C0006000FFCFEF92FF920F931F93CF93DF9393 +:1035D000D82FC0E08C2F0E941C0500E010E0E82EE0 +:1035E000F12CC701002E02C0959587950A94E2F749 +:1035F00080FD06C00F5F1F4F0630110591F709C00F +:10360000602F7C2F80E00E94E4058D13F3CF81E0D2 +:1036100004C0CF5FCE30F1F680E0DF91CF911F91F3 +:103620000F91FF90EF900895CF93C82F8CE20E94E6 +:10363000E21A882321F08C2FCF910C94E21A80E0BB +:10364000CF910895CF930E94691C811102C00E94FE +:103650004F1CC5E6C15049F00E9426048FE39CE947 +:103660000197F1F700C00000F5CF89E20E94141B1A +:10367000811113C18AE20E94141B81110E944F1C08 +:1036800085E00E94141B81110E94C01A0E94741CC4 +:103690008093CC0187E00E94141B8823A9F18BE161 +:1036A0000E94141B882351F08091CC0181FB2227BA +:1036B00020F991E0922790FB81F90EC08EE00E94E4 +:1036C000141B882361F08091CC0182FB222720F912 +:1036D00091E0922790FB82F98093CC0115C080E1A4 +:1036E0000E94141B9091CC01882341F093FB222768 +:1036F00020F981E0822780FB93F904C0892F80950F +:1037000080FB90F99093CC018091CC010E94781CB1 +:103710000E94861C8093DE0180EE0E94141B882389 +:1037200041F08091DE01982F909590FB80F9809375 +:10373000DE0189E30E94141B882359F08091DE0189 +:1037400081FB222720F991E0922790FB81F9809359 +:10375000DE0182EE0E94141B882359F08091DE0165 +:1037600082FB222720F991E0922790FB82F9809337 +:10377000DE0186EE0E94141B882359F08091DE0141 +:1037800083FB222720F991E0922790FB83F9809315 +:10379000DE0183EE0E94141B882359F08091DE0124 +:1037A00084FB222720F991E0922790FB84F98093F3 +:1037B000DE0185E30E94141B882359F08091DE010D +:1037C00085FB222720F991E0922790FB85F98093D1 +:1037D000DE0181E30E94141B882359F08091DE01F1 +:1037E00086FB222720F991E0922790FB86F98093AF +:1037F000DE0181E10E94141B882359F08091DE01D3 +:1038000087FB222720F991E0922790FB87F980938C +:10381000DE018091DE010E948A1C8091DE0187FB1F +:10382000882780F980930D0187E20E94141BC82F1E +:103830008EE10E94141B8111C2608FE10E94141B53 +:103840008111C46080E20E94141B8111C86081E272 +:103850000E94141B8111C06182E20E94141B81111D +:10386000C06283E20E94141B8111C06484E20E9442 +:10387000141B882311F0C06802C0CC2329F08C2FC0 +:103880000E94811C6C2F03C00E947D1C682F70E079 +:1038900080E090E0CF910C947017CF9108956DEE79 +:1038A0007EEF80E090E00E94C32260E082E090E042 +:1038B0000E94B52260E083E090E00E94B52260E0C3 +:1038C00084E090E00E94B52260E085E090E00C94F6 +:1038D000B52280E090E00E94AF2221E08D3E9E4F15 +:1038E00009F020E0822F089582E090E00C94A72256 +:1038F000682F82E090E00C94B52283E090E00C9475 +:10390000A722682F83E090E00C94B52284E090E039 +:103910000C94A722682F84E090E00C94B52280914B +:10392000D30180FF0BC06091130185E0689FB00157 +:10393000112475956795759567952BC081FF09C012 +:103940006091130185E0689FB0011124759567951A +:1039500020C082FF07C06091130185E0689FB0011D +:10396000112417C09091D4019923D1F060911201D4 +:10397000961788F72091130185E0289F9001112464 +:10398000929FA001939F500D112470E0CA010E94E4 +:1039900079226038710540F46115710519F406C08B +:1039A00065E070E0862F08958FE7089581E008951F +:1039B0008091D30180FF08C06091110170E075957E +:1039C00067957595679521C081FF06C060911101CB +:1039D00070E07595679519C082FF04C06091110170 +:1039E00070E010C09091D401992399F0609110017A +:1039F0009617A0F780911101899FC001112470E0F2 +:103A00000E9479226038710540F46115710519F43E +:103A100006C061E070E0862F08958FE7089581E089 +:103A20000895803F21F40E948F1C819504C0813F3E +:103A300029F40E948F1C8093D7010895823F21F4BE +:103A40000E948F1C819504C0833F29F40E948F1C23 +:103A50008093D6010895893F19F40E94D81C05C0AF +:103A60008A3F31F40E94D81C81958093D801089533 +:103A70008B3F21F40E94D81C819504C08C3F29F40F +:103A80000E94D81C8093D9010895843F21F480912D +:103A9000D501816017C0853F21F48091D5018260F6 +:103AA00011C0863F21F48091D50184600BC0873F0F +:103AB00021F48091D501886005C0883F31F4809160 +:103AC000D50180618093D50108958D3F21F48091C7 +:103AD000D30181600BC08E3F21F48091D3018260BD +:103AE00005C08F3F29F48091D30184608093D30176 +:103AF0000895803F39F48091D70187FF6CC0109200 +:103B0000D70169C0813F29F48091D7011816BCF311 +:103B100062C09091D601823F29F497FF5CC0109259 +:103B2000D60159C0833F19F41916CCF354C0893F0C +:103B300041F48091D80118160CF04DC01092D801B4 +:103B40004AC08A3F29F48091D80187FF44C0F6CF4C +:103B50008B3F39F48091D90187FF3DC01092D90184 +:103B60003AC08C3F29F48091D9011816BCF333C0B8 +:103B7000843F21F48091D5018E7F17C0853F21F4C9 +:103B80008091D5018D7F11C0863F21F48091D501B0 +:103B90008B7F0BC0873F21F48091D501877F05C0C3 +:103BA000883F31F48091D5018F7E8093D50113C079 +:103BB0008D3F21F48091D3018E7F0BC08E3F21F485 +:103BC0008091D3018D7F05C08F3F29F48091D3016F +:103BD0008B7F8093D3018091D60181110EC080919B +:103BE000D70181110AC08091D801811106C080914E +:103BF000D901811102C01092D401089585ED91E0A0 +:103C00000E94670E0E94651A9093D2018093D101A1 +:103C100008951F93CF93DF938091D1019091D201AA +:103C20000E94711AAC019091D401992321F0209146 +:103C3000140130E006C0209115018AE0289F900110 +:103C400011244217530708F485C08091D601C09112 +:103C5000D701D091D8011091D901811107C0C111AC +:103C600075C0D11173C0111171C074C09F3F19F09C +:103C70009F5F9093D401181624F40E948F1C8093A8 +:103C8000D6018091D60187FF05C00E948F1C8195C7 +:103C90008093D6011C1624F40E948F1C8093D701B8 +:103CA0008091D70187FF05C00E948F1C819580936A +:103CB000D7016091D601662331F1C091D701CC23A1 +:103CC00011F1062E000C770B880B990B0E948021B6 +:103CD00023E333E343E35FE30E94E4210E944821AE +:103CE0006093D6016C2FCC0F770B880B990B0E9439 +:103CF000802123E333E343E35FE30E94E4210E9456 +:103D000048216093D7011D1624F40E94D81C80938B +:103D1000D8018091D80187FF05C00E94D81C8195E9 +:103D20008093D801111624F40E94D81C8093D901E5 +:103D30008091D90187FF05C00E94D81C819580938E +:103D4000D901DF91CF911F910C94FE1D9F3F09F087 +:103D50008FCFA0CFDF91CF911F910895E5EDF1E0D6 +:103D600085E0DF011D928A95E9F71092D401109247 +:103D7000D3010895833081F128F4813059F08230E5 +:103D8000D1F00895853009F449C0B8F1863009F4BE +:103D900056C0089580911501262F30E0280F311D5F +:103DA0002F3F310524F4680F6093150108958FEFBC +:103DB00080931501089580911401262F30E0280F7B +:103DC000311D2F3F310524F4680F609314010895CD +:103DD0008FEF80931401089580911301262F30E016 +:103DE000280F311D2F3F310524F4680F6093130114 +:103DF00008958FEF80931301089580911201262F6B +:103E000030E0280F311D2F3F310524F4680F6093F7 +:103E1000120108958FEF809312010895809111018E +:103E2000262F30E0280F311D2F3F310524F4680F75 +:103E30006093110108958FEF80931101089580918F +:103E40001001262F30E0280F311D2F3F310524F4BB +:103E5000680F6093100108958FEF8093100108950B +:103E6000833011F128F4813049F0823091F00895C7 +:103E7000853081F120F18630C1F1089580911501DE +:103E8000681720F4861B8093150108951092150180 +:103E9000089580911401681720F4861B8093140103 +:103EA000089510921401089580911301681720F469 +:103EB000861B809313010895109213010895809139 +:103EC0001201681720F4861B809312010895109246 +:103ED0001201089580911101681720F4861B8093C8 +:103EE0001101089510921101089580911001681731 +:103EF00020F4861B809310010895109210010895FC +:103F00000F931F938D3109F46BC008F03FC08E30C2 +:103F100009F47DC0C0F4873009F46EC068F48630BF +:103F200009F0AFC08091CC01817F8E7F8093CC015E +:103F300081E08093DB01A6C0883009F458C08B3043 +:103F400009F49BC09EC0863109F497C078F4803193 +:103F500009F470C0813109F094C00E94B9139091A6 +:103F60000D0181E0892780930D0187C0893109F413 +:103F700084C08B3109F085C08091CC0181FB222760 +:103F800020F991E0922790FB81F94AC0853309F42A +:103F90005BC048F4873209F457C008F45AC089322C +:103FA00009F452C06EC0833438F48A3308F067C015 +:103FB000883309F462C065C0833409F445C088348D +:103FC00009F05FC00E94B9130FEF13ED20E3015019 +:103FD00010402040E1F700C000000E94C01A4DC010 +:103FE0000E9402210E94500E0E94460746C00E9475 +:103FF000741C0E94861C41C09091CC01892F817055 +:1040000090FF12C0917F9E7F9093CC013BC0809126 +:10401000CC0182FB222720F991E0922790FB82F9C4 +:104020008093CC01992349F18091CC0181608093E8 +:10403000CC0123C08091CC0183FB222720F991E0A1 +:10404000922790FB83F9ECCF61E070E080E090E094 +:1040500010C08D5141E050E060E070E08A019B01AA +:1040600004C0000F111F221F331F8A95D2F7C90108 +:10407000B8010E9470170E94B91381E003C08953F0 +:10408000E9CF80E01F910F91089580E008950C948E +:104090004520CF93C82F8091DB01813079F018F053 +:1040A0008230E9F187C0E0910E01F0910F0180812B +:1040B000813169F0823209F07FC009C0E0910E01C0 +:1040C000F0910F018081813111F0823261F48C2FE7 +:1040D0000E944720811104C08C2F0E94801F1DC0A8 +:1040E00081E090E01AC08C2F0E944520811114C0FD +:1040F000C43179F048F4CB3079F0C03109F060C0B8 +:1041000082E08093DB0108C0C93219F0C83321F086 +:1041100057C01092DB0154C081E0817053C0C93296 +:1041200089F118F5C43171F1A8F4C73009F046C01F +:104130008AE08093150194E19093140193E09093A9 +:1041400013018093120188E08093110188E280932B +:10415000100134C0CE51C63088F5EC2FF0E0E65D9A +:10416000FE4F80818093DA0129C0CE34E9F020F43B +:10417000CB3421F56AE013C0C13579F0C235F1F4D2 +:1041800061E00DC08091DA01882319F01092DA0104 +:1041900015C081E08093DB0115C061E006C080910D +:1041A000DA010E94BA1E0AC06AE08091DA010E9418 +:1041B000301F04C01092DB0180E004C081E002C027 +:1041C00080E0ABCFCF910895E1E8F0E08081886096 +:1041D00080838081816080838FB7F89493E090938F +:1041E000890090ED909388008FBF0895EFE6F0E08E +:1041F0008081826080830895EFE6F0E080818D7F8A +:1042000080830895EFE6F0E0908182E08927808343 +:1042100008951F920F920FB60F9211242F933F9380 +:104220004F935F936F937F938F939F93AF93BF93BE +:10423000EF93FF938091DC019091DD0101969093C3 +:10424000DD018093DC01811103C082E00E944607FA +:10425000E091DD01E695E695F0E0E657FB4FE4914D +:104260008091DC018E1303C080E00E944607FF911D +:10427000EF91BF91AF919F918F917F916F915F91DE +:104280004F913F912F910F900FBE0F901F90189557 +:104290000E944F216894B1110C94DE2108950E9470 +:1042A000C32188F09F5798F0B92F9927B751B0F0E4 +:1042B000E1F0660F771F881F991F1AF0BA95C9F7AA +:1042C00014C0B13091F00E94DD21B1E008950C944A +:1042D000DD21672F782F8827B85F39F0B93FCCF3FD +:1042E000869577956795B395D9F73EF49095809527 +:1042F000709561957F4F8F4F9F4F0895E89409C047 +:1043000097FB3EF490958095709561957F4F8F4F08 +:104310009F4F9923A9F0F92F96E9BB279395F6951E +:10432000879577956795B795F111F8CFFAF4BB0F9C +:1043300011F460FF1BC06F5F7F4F8F4F9F4F16C000 +:10434000882311F096E911C0772321F09EE8872F8A +:10435000762F05C0662371F096E8862F70E060E046 +:104360002AF09A95660F771F881FDAF7880F9695BF +:10437000879597F9089557FD9058440F551F59F0A8 +:104380005F3F71F04795880F97FB991F61F09F3F42 +:1043900079F087950895121613061406551FF2CF6B +:1043A0004695F1DF08C0161617061806991FF1CFBB +:1043B00086957105610508940895E894BB276627E2 +:1043C0007727CB0197F908950E94F7210C94682272 +:1043D0000E945A2238F00E94612220F0952311F0A9 +:1043E0000C9451220C94572211240C94DE210E942B +:1043F000BB2170F3959FC1F3950F50E0551F629F4D +:10440000F001729FBB27F00DB11D639FAA27F00D2D +:10441000B11DAA1F649F6627B00DA11D661F829F54 +:104420002227B00DA11D621F739FB00DA11D621F39 +:10443000839FA00D611D221F749F3327A00D611D56 +:10444000231F849F600D211D822F762F6A2F112438 +:104450009F5750409AF0F1F088234AF0EE0FFF1F6B +:10446000BB1F661F771F881F91505040A9F79E3FC2 +:10447000510580F00C9451220C94DE215F3FE4F34F +:10448000983ED4F3869577956795B795F795E79518 +:104490009F5FC1F7FE2B880F911D9695879597F921 +:1044A000089597F99F6780E870E060E008959FEFB6 +:1044B00080EC089500240A941616170618060906BB +:1044C000089500240A94121613061406050608958A +:1044D000092E0394000C11F4882352F0BB0F40F412 +:1044E000BF2B11F460FF04C06F5F7F4F8F4F9F4F52 +:1044F000089597FB072E16F4009407D077FD09D096 +:104500000E94932207FC05D03EF4909581959F4F21 +:104510000895709561957F4F0895EE0FFF1F0590E8 +:10452000F491E02D0994AA1BBB1B51E107C0AA1FFF +:10453000BB1FA617B70710F0A61BB70B881F991F44 +:104540005A95A9F780959095BC01CD010895F999E8 +:10455000FECF92BD81BDF89A992780B50895A8E154 +:10456000B0E042E050E00C94CA22262FF999FECF29 +:104570001FBA92BD81BD20BD0FB6F894FA9AF99A80 +:104580000FBE019608950E94B522272F0C94B622E3 +:10459000DC01CB01FC01F999FECF06C0F2BDE1BD03 +:1045A000F89A319600B40D9241505040B8F70895F2 +:0445B000F894FFCFAD +:1045B40020024707D707B2077E074A070101BA015D +:1045C40028080A03140A3F4D36394B04FE03C80376 +:1045D4008F0322033B0354036D0301020304050606 +:0445E40007080900BB +:00000001FF diff --git a/keyboard/ergodox_ez/keymaps/keymap_andrew_osx.c b/keyboard/ergodox_ez/keymaps/andrew_osx/keymap.c similarity index 99% rename from keyboard/ergodox_ez/keymaps/keymap_andrew_osx.c rename to keyboard/ergodox_ez/keymaps/andrew_osx/keymap.c index 48f8c5d2ff..48257d23a3 100644 --- a/keyboard/ergodox_ez/keymaps/keymap_andrew_osx.c +++ b/keyboard/ergodox_ez/keymaps/andrew_osx/keymap.c @@ -158,12 +158,12 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) }; // Runs just one time when the keyboard initializes. -void * matrix_init_user(void) { +void matrix_init_user(void) { }; // Runs constantly in the background, in a loop. -void * matrix_scan_user(void) { +void matrix_scan_user(void) { uint8_t layer = biton32(layer_state); diff --git a/keyboard/ergodox_ez/keymaps/coderkun_neo2/coderkun_neo2.hex b/keyboard/ergodox_ez/keymaps/coderkun_neo2/coderkun_neo2.hex new file mode 100644 index 0000000000..f14a11fb57 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/coderkun_neo2/coderkun_neo2.hex @@ -0,0 +1,1143 @@ +:100000000C9410030C9457030C9457030C9457034F +:100010000C9457030C9457030C9457030C945703F8 +:100020000C9457030C9457030C94750C0C94470DC7 +:100030000C9457030C9457030C9457030C945703D8 +:100040000C9457030C94BB210C9457030C94570346 +:100050000C9457030C944D1B0C9457030C945703AA +:100060000C9457030C9457030C9457030C945703A8 +:100070000C9457030C9457030C9457030C94570398 +:100080000C9457030C9457030C9457030C94570388 +:100090000C9457030C9457030C9457030C94570378 +:1000A0000C9457030C9457030C945703B40DD60DBE +:1000B000C90ED60DC90E1B0E3E0EC90E930EA60E0E +:1000C00090119011BF11BF1102123C124914491432 +:1000D000551249144A134A131D144914491434146F +:1000E00000F001F002F0F0A3F0A42B00340039007E +:1000F000E100E00000001E00140004001D00E2000A +:10010000007F1F001A0016001B0003522800200069 +:10011000080007000600E3002C002100150009007C +:10012000190064002D00220017000A0005000000DD +:1001300050002E004A0000000154000052002E0022 +:100140004D00000002540000510023001C000B0071 +:10015000110000004F00240018000D001000E60000 +:100160002D0025000C000E003600E7002C002600B4 +:1001700012000F003700035228002700130033003D +:100180003800E60000772A002F003100E500E40087 +:1001900000002B0006003900E100E00000001E0016 +:1001A000130007003400E200007F1F0017000B005F +:1001B0001400035228002000090033001500E3005A +:1001C0002C0021000E0012001A0004522D00220003 +:1001D0000F000C001100000050002E004A0000002B +:1001E0000100000052002E004D0000000100000040 +:1001F00051002300050018000D0000004F002400EE +:1002000004003800100004522D00250016001C00C8 +:100210003600E7002C0026000A00080037000352D1 +:100220002800270019001B002D00E60000772A0097 +:100230001D003100E500E40000002B001D0000005F +:10024000E100E00000001E001B0018002F00E2008B +:10025000007F1F0019000C0033000352280020000B +:100260000F0004003400E3002C0021000600080009 +:10027000130004522D0022001A0012001C0000007E +:1002800050002E004A0000000100000052002E0025 +:100290004D00000001000000510023000E00160078 +:1002A000050000004F0024000B0011001000045254 +:1002B0002D0025000A0015003600E7002C0026005E +:1002C0000900170037000352280027001400070018 +:1002D0000D00E60000772A002D000000E500E40094 +:1002E0000000010001000100010001000000010008 +:1002F00001000100010001000100010001000100F6 +:1003000001000100010001000100010001000100E5 +:100310000100010013A715A701000100F40001006E +:100320000100010001000000F200010001000000D6 +:1003300001000000F00001000100000001000000C9 +:10034000F10001000100010001000000F3000100C4 +:1003500042003E003A000100F500010043003F006A +:100360003B00010001000100440040003C0001008E +:1003700001000100450041003D00010001000100B5 +:100380000100010001000100000000000000000069 +:1003900000000000000000004B004A00290000009F +:1003A000000000002A0050002B00010000000000A7 +:1003B0005200510049000000000000004C004F00B6 +:1003C00028000100000000004E004D007A000000EF +:1003D000000000000000000001000000000000001C +:1003E000000000000100000000000000000000000C +:1003F0000000000000000000240021001E00010099 +:1004000000000000250022001F0000000000000086 +:10041000260023002000010000000000300036000C +:10042000000000000000000038003700000000005D +:10043000000016034500720067006F0044006F0063 +:100440007800200045005A000000160345007200A5 +:1004500067006F0044006F007800200045005A00DC +:1004600000000403090409026D00040100A0FA0958 +:100470000400000103010100092111010001223FD4 +:10048000000705810308000A0904010001030102B5 +:1004900000092111010001224D0007058203080017 +:1004A0000A090402000103000000092111010001F2 +:1004B0002236000705830308000A0904030001032C +:1004C0000000000921110100012239000705840301 +:1004D0001000011201100100000008EDFE071301D9 +:1004E000000102000105010906A101050719E02923 +:1004F000E7150025019508750181020508190129F4 +:10050000059505750191029501750391010507197E +:1005100000297715002501957875018102C0050134 +:100520000980A101850216010026B7001A01002AE0 +:10053000B700751095018100C0050C0901A1018566 +:1005400003160100269C021A01002A9C02751095D0 +:10055000018100C005010902A1010901A1000509ED +:1005600019012905150025019505750181029501DF +:10057000750381010501093009311581257F950237 +:100580007508810609381581257F95017508810652 +:10059000050C0A38021581257F950175088106C072 +:1005A000C005010906A101050719E029E715002585 +:1005B00001950875018102950175088101050819E9 +:1005C00001290595057501910295017503910105B4 +:1005D00007190029FF150025FF950675088100C041 +:1005E0000000000000000000000000010204060AF4 +:1005F0000F17202C3A4A5D71879DB3C7DAE9F5FCE5 +:10060000FFFCF5E9DAC7B39D87715D4A3A2C2017E4 +:100610000F0A0604020100000000000000000000B4 +:1006200011241FBECFEFDAE0DEBFCDBF04B603FE5C +:1006300027C08091ED019091EE01A091EF01B09162 +:10064000F0018730904BA740B04BD1F41092ED01F0 +:100650001092EE011092EF011092F00114BE84B7D7 +:10066000877F84BF0FB6F894A89580916000886159 +:1006700080936000109260000FBEE0E0FFE30995F8 +:1006800011E0A0E0B1E0E8E1F7E402C005900D92CE +:10069000A433B107D9F721E0A4E3B1E001C01D9272 +:1006A000AD3EB207E1F70E94BC090C948A230C947A +:1006B000000061110BC0FC018281882321F085EECE +:1006C0000E942A1003C085EE0E94F21080E090E0A4 +:1006D000089508956091B1017091B2018091B301C4 +:1006E0009091B4010E947A1A56985E9825982D9898 +:1006F00026982E9827982F98823051F0833029F031 +:10070000813049F4269A2E9A0895259A2D9A0895B3 +:10071000279A2F9A089556985E9808950C946A0324 +:1007200056985E9825982D9826982E9827982F9859 +:100730008FEF90E0909389008093880090938B00D6 +:1007400080938A0090938D0080938C00259A2D9A37 +:100750002FEF80E792E0215080409040E1F700C009 +:100760000000269A2E9A2FEF80E792E021508040D9 +:100770009040E1F700C00000279A2F9A2FEF80E702 +:1007800092E0215080409040E1F700C000002598A1 +:100790002D982FEF80E792E0215080409040E1F7C4 +:1007A00000C0000026982E982FEF80E792E021509D +:1007B00080409040E1F700C0000027982F9856989D +:1007C0005E9825982D9826982E9827982F9808950A +:1007D00089EA8093800089E08093810024982C9896 +:1007E0003F988AB18F748AB96E98479A8BB1806BA3 +:1007F0008BB9769A0E9490030C94690380E28093EF +:1008000000018091340181110EC00E944D0481E0ED +:10081000809334012FEF83ED90E32150804090408E +:10082000E1F700C0000080E40E94530480930001BF +:1008300081112EC00E947D0480930001811128C087 +:100840000E947D0480930001811122C08FE30E94E9 +:100850007D048093000181111BC00E94750480E417 +:100860000E94530480930001811112C08CE00E9409 +:100870007D048093000181110BC00E947D04809350 +:100880000001811105C08FE30E947D048093000167 +:100890000E9475048091000108951092B9008AE0C9 +:1008A0008093B800089594EA9093BC009091BC00A6 +:1008B00097FFFCCF9091B900987F983021F090314C +:1008C00011F081E008958093BB0084E88093BC0020 +:1008D0008091BC0087FFFCCF8091B900887F883170 +:1008E00011F0803471F780E0089584E98093BC00B2 +:1008F0008091BC0084FDFCCF08958093BB0084E808 +:100900008093BC008091BC0087FFFCCF9091B90020 +:10091000987F81E0983209F480E0089584E880931C +:10092000BC008091BC0087FFFCCF8091BB00089584 +:1009300080910001811115C080E40E9453048093CE +:10094000000181110CC082E10E947D0480930001AE +:10095000811105C08FEF0E947D04809300010E94E9 +:10096000750484B1807F84B985B1807F85B98AB1EF +:10097000837F8AB98BB1837F8BB93E98469808955F +:100980000E94FE03809300010E94980480B38C7043 +:1009900080BB81B3836F81BBE4E4F1E0A6E3B1E007 +:1009A00011921D9281E0E235F807D1F70C94E8032B +:1009B0009F92AF92BF92CF92DF92EF92FF920F93EE +:1009C0001F93CF93DF9380910001882379F080916A +:1009D00035018F5F80933501811108C00E94FE03AD +:1009E00080930001811102C00E94900386E3E82EEB +:1009F00081E0F82E8701C0E0D0E0BB24B39492E000 +:100A0000A92ECC24C394D12CC730D10500F58091F8 +:100A10000001811164C080E40E94530480930001AE +:100A2000811112C082E10E947D0480930001811136 +:100A30000BC0C6010C2E01C0880F0A94EAF78095FE +:100A40000E947D04809300010E94750448C0CA3052 +:100A5000A1F028F4C83059F0C93061F005C0CC309D +:100A600089F070F0CD3089F0209A289810C0219A32 +:100A700029980DC0229A2A980AC0239A2B9807C059 +:100A8000529A01C0539A5B9802C03E9A4698E0EA97 +:100A9000EA95F1F78FB181708B25799902C032E028 +:100AA00001C030E0832B7C9902C034E001C030E00B +:100AB000832B7D9902C028E001C020E0822B7E9923 +:100AC00002C090E101C090E0892B9FB19095991FE1 +:100AD0009927991F9295990F907E892B0FC080912D +:100AE000000181114AC080E40E94530480930001F8 +:100AF000882381F1912C0E947504892DD8019C9145 +:100B0000981719F08C93A09201010E9498042196E5 +:100B10000F5F1F4FCE30D10509F076CF80910101D4 +:100B2000882369F1815080930101882339F0EFE92E +:100B3000FFE03197F1F700C0000021C0E4E4F1E0EC +:100B4000D7018D917D018193B4E4EB16B1E0FB06F2 +:100B5000B9F715C083E10E947D04809300018111E3 +:100B6000C9CF81E40E945304809300018111C2CF58 +:100B70000E948E04982E9094BECF80E0BFCF0E943A +:100B80008E0381E0DF91CF911F910F91FF90EF9045 +:100B9000DF90CF90BF90AF909F900895E82FF0E046 +:100BA000EC5BFE4F8081089508958B3B910580F4A6 +:100BB000883A910548F5853A9105D8F48430910535 +:100BC00008F0B2C0019709F06EC081E090E008958E +:100BD000803E910508F467C0883E910508F4A4C0E2 +:100BE0009C01205F31092031310508F05CC090651F +:100BF0000895853A910509F459C0863A910509F09E +:100C000058C082E890E40895883A910509F454C0E8 +:100C1000893A910509F453C08A3A910509F452C002 +:100C20008B3A910509F451C08C3A910509F450C0F2 +:100C30008D3A910509F44FC0803B910509F44EC0EF +:100C40008E3A910509F44DC08F3A910509F44CC0D4 +:100C5000813B910509F44BC0823B910509F44AC0E0 +:100C6000833B910509F449C0843B910509F448C0D0 +:100C7000853B910509F447C0863B910509F446C0C0 +:100C8000873B910509F445C0883B910509F444C0B0 +:100C9000893B910509F443C08A3B910509F442C0A0 +:100CA00080E094E4089580E090E0089581E890E485 +:100CB000089583E890E4089582EE94E4089589EE1F +:100CC00094E408958AEE94E4089585EB94E40895FD +:100CD00086EB94E4089587EB94E408958CEC94E417 +:100CE00008958DEC94E4089583E895E408958AE8E6 +:100CF00095E4089582E995E4089584E995E40895DA +:100D000081E296E4089583E296E4089584E296E40D +:100D1000089585E296E4089586E296E4089587E2D0 +:100D200096E408958AE296E40895089524E5829F62 +:100D3000C0011124FC0126E0729FE00DF11D112479 +:100D4000E60FF11DEE0FFF1FE651FF4F85919491C5 +:100D50000895880F991FFC01E05AF0408591949105 +:100D60000895880F991FFC01E052FF4F85919491DF +:100D7000089524E5829FC0011124FC0146E0749F80 +:100D8000E00DF11D1124E60FF11DEE0FFF1FE651DE +:100D9000FF4F859194919C013A9521154FE13407BD +:100DA00008F425C13F512115304120F49F700E9465 +:100DB000B10608959C0130532115304118F499274C +:100DC000906C0895811520E5920769F40E946B14D8 +:100DD0004FEF84E39CE0415080409040E1F700C039 +:100DE00000000C94721B813020E5920731F4809151 +:100DF000CC0181608093CC0108959C013055211570 +:100E0000304108F05CC0292F33272F703327213061 +:100E10003105E9F4AC0164E0440F551F6A95E1F730 +:100E200044275370BC016370772702C0220F331F21 +:100E30006A95E2F73C68242B352B73E0880F991FE5 +:100E40007A95E1F780769927822B932B08952230AB +:100E5000310529F4982F8827816F906A08952330EF +:100E60003105A1F4AC0133E0440F551F3A95E1F789 +:100E7000407E57708370992721E030E002C0220F36 +:100E8000331F8A95E2F7C9019C6816C024303105EA +:100E900031F5AC0123E0440F551F2A95E1F7407E60 +:100EA00057708370992721E030E002C0220F331F72 +:100EB0008A95E2F7C9019A68842B952B08959C01C5 +:100EC00030572115304118F49F70906208959C01AD +:100ED00030582115304118F49F70906A0895803E73 +:100EE0009105E0F4803C910558F58133910509F4B2 +:100EF0006FC048F48932910509F463C08A329105C4 +:100F000009F46DC072C089339105E9F0823891050A +:100F1000D1F08533910509F44DC067C0833E91053A +:100F200081F138F4803E9105B9F0823E9105D9F007 +:100F30005CC0863E910561F1873E9105A1F155C0E7 +:100F40000E94A90608952091DE0120FD02C021FF24 +:100F50004CC080EE90E049C08091DE0180FFF9CF67 +:100F600089E390E042C08091DE0182FF0EC0809153 +:100F7000DE0184FF03C080E090E037C083EE90E0A4 +:100F800034C08091DE0182FFF2CF82EE90E02DC06E +:100F90008091DE0183FF0BC08091DE0184FDEBCFE9 +:100FA00087EE90E022C08091DE0183FFF5CF86EED0 +:100FB00090E01BC08091DE0185FF07C089E290E0D0 +:100FC00014C08091DE0185FFF9CF85E390E00DC06C +:100FD0008091DE0186FF07C08AE290E006C0809122 +:100FE000DE0186FFF9CF81E390E00E94D5050895E8 +:100FF0000895809162010895CF93DF9300D01F92EE +:10100000CDB7DEB79C018091E401843019F593E0FF +:1010100099833B832A839093E9008FEF9091E800B6 +:10102000815095FD06C095ED9A95F1F7000081116C +:10103000F5CF8091E80085FF0DC040E050E063E00F +:1010400070E0CE0101960E94690A8091E8008E77D7 +:101050008093E8000F900F900F90DF91CF9108954B +:10106000CF93DF9300D01F92CDB7DEB72091E4017C +:10107000243021F522E029839B838A8383E08093B7 +:10108000E9008FEF9091E800815095FD06C095ED45 +:101090009A95F1F700008111F5CF8091E80085FF66 +:1010A0000DC040E050E063E070E0CE0101960E9488 +:1010B000690A8091E8008E778093E8000F900F9086 +:1010C0000F90DF91CF9108959C018091E4018430CD +:1010D000F9F482E08093E9009FEF8091E80091505D +:1010E00085FD06C085ED8A95F1F700009111F5CFD9 +:1010F0008091E80085FF0CC040E050E065E070E0C2 +:10110000C9010E94690A8091E8008E778093E80007 +:101110000895CF93DF93EC018091E401843009F0CE +:1011200046C090910C019923D9F090910D0199231B +:10113000B9F08093E9008FEF9091E800815095FD20 +:1011400006C095E19A95F1F700008111F5CF8091E5 +:10115000E80085FF2CC040E050E060E170E017C07F +:1011600081E08093E9008FEF9091E800815095FD38 +:1011700006C095ED9A95F1F700008111F5CF8091A9 +:10118000E80085FF14C040E050E068E070E0CE0168 +:101190000E94690A8091E8008E778093E80080E1E0 +:1011A000FE01A2E5B1E001900D928A95E1F7DF9191 +:1011B000CF9108958091E301811109C00E94FA0B3B +:1011C0000E94570C8091E20084608093E2000895B1 +:1011D0001092E301089508950C94A8210E94081B21 +:1011E0000E94AE210E94020F0C94F80742E061ECCD +:1011F00081E00E94730B42E061EC82E00E94730B7D +:1012000042E061EC83E00E94730B42E161EC84E018 +:101210000C94730B8091E601833009F455C030F4CF +:10122000813071F0823009F48EC008958A3009F45B +:101230007AC08B3009F460C0893009F09CC020C0AE +:101240008091E501813A09F096C08091E800877F9E +:101250008093E8008091E9019091EA01892B21F4C3 +:1012600060E182E591E003C060E080E090E070E042 +:101270000E94B40A8091E8008B778093E80008957B +:101280008091E501813209F076C08091E901909169 +:10129000EA01009719F0039709F06DC08091E8000A +:1012A000877F8093E8008091E80082FD05C08091EF +:1012B000E4018111F8CF5FC08091F1008093620159 +:1012C0008091E8008B7753C08091E501813A09F065 +:1012D00052C08091E9019091EA01892B09F04BC03D +:1012E0008091E800877F8093E8008091E80080FF8C +:1012F000FCCF80910C0136C08091E5018132D9F597 +:101300008091E9019091EA01892BA9F58091E8008B +:10131000877F8093E8000E94A80B8091E70180936B +:101320000C010C946B148091E501813221F58091C0 +:10133000E800877F8093E8000E94A80B8091E80175 +:101340008093630108958091E501813AA1F4809131 +:10135000E800877F8093E8008091E80080FFFCCF61 +:10136000809163018093F1008091E8008E778093F3 +:10137000E8000C94A80B089584B7877F84BF0FB64C +:10138000F894A89580916000886180936000109225 +:1013900060000FBE90E080E80FB6F8948093610083 +:1013A000909361000FBE0E94510F0E94FA0B0E94A1 +:1013B000570C8091E20084608093E20078940E9450 +:1013C000E20E0E94530F82E091E00E94FD0E0E9407 +:1013D00096218091E401853069F40E94CA1A8091B7 +:1013E000E2018823B1F30E94F41A882391F30E944A +:1013F000530AEFCF0E94590FECCF292F3327233008 +:101400003105C9F060F42130310581F02230310519 +:1014100009F041C08DE690E026E634E040C021327C +:101420003105E1F02232310531F135C082E190E041 +:1014300023ED34E034C099278130910549F028F03C +:10144000029749F5E2E3F4E005C0E2E6F4E002C009 +:10145000EAE4F4E0849190E09F0121C06430D8F484 +:10146000E62FF0E0EE0FFF1FEE5DFE4F2081318191 +:1014700089E090E014C0643070F470E0FB01EE0F7E +:10148000FF1FE65EFE4F20813181FB01EA5EFE4FC9 +:10149000808190E004C080E090E020E030E0FA013C +:1014A00031832083089580E189BD82E189BD09B43B +:1014B00000FEFDCF8091D8008F7D8093D800809171 +:1014C000E00082608093E0008091E00081FDFCCF2D +:1014D0000895CF92DF92EF92FF920F931F93CF93D5 +:1014E000DF93EC018B016A010E94C70B811133C0AD +:1014F000C114D10439F0F60180819181081B190BC8 +:10150000C80FD91FE12CF12C0115110519F180919B +:10151000E80085FD16C08091E8008E778093E80092 +:10152000C114D10449F0F60180819181E80EF91EC1 +:10153000F182E08285E00FC00E94C70B882321F36F +:101540000AC089918093F10001501109FFEFEF1A51 +:10155000FF0ADACF80E0DF91CF911F910F91FF90CA +:10156000EF90DF90CF9008952091EB013091EC0146 +:101570002617370748F06115710539F42091E80006 +:101580002E772093E80001C0B901FC0120E061152D +:10159000710579F18091E4018823F1F18530F1F151 +:1015A0008091E80083FD3CC08091E80082FD2EC060 +:1015B0008091E80080FFEBCF2091F3008091F20052 +:1015C00090E0922B6115710551F08830910538F447 +:1015D00021912093F100615071090196F3CF21E030 +:1015E000089709F020E08091E8008E778093E8006A +:1015F000CECF2111CFCF0AC08091E401882361F0C2 +:10160000853061F08091E80083FD0AC08091E80098 +:1016100082FFF2CF80E0089582E0089583E008958C +:1016200081E008952091EB013091EC0126173707F6 +:1016300048F06115710539F42091E8002E77209368 +:10164000E80001C0B901FC0120E06115710591F1CC +:101650008091E401882309F440C0853009F43FC03B +:101660008091E80083FD3DC08091E80082FD2FC09D +:101670008091E80080FFE9CF2091F3008091F20093 +:1016800090E0922B6115710559F08830910540F476 +:1016900024912093F1003196615071090196F2CFA7 +:1016A00021E0089709F020E08091E8008E77809390 +:1016B000E800CBCF2111CCCF0AC08091E401882370 +:1016C00061F0853061F08091E80083FD0AC080916F +:1016D000E80082FFF2CF80E0089582E0089583E081 +:1016E000089581E00895982F973068F59093E90068 +:1016F000981739F07091EC002091ED005091F000B6 +:1017000003C0242F762F50E021FD02C09F5FECCF55 +:101710003091EB003E7F3093EB003091ED003D7F48 +:101720003093ED003091EB0031603093EB0070931B +:10173000EC002093ED005093F0002091EE0027FD87 +:10174000E5CF80E008958F708093E90081E00895EF +:101750008091E50187FF11C08091E80082FD05C0FE +:101760008091E4018111F8CF11C08091E8008B775E +:101770000BC08091E401882349F08091E80080FF4C +:10178000F8CF8091E8008E778093E800089520914B +:10179000E4003091E50095E64091EC00842F8170E3 +:1017A00040FF23C08091E80080FD1DC08091E401CE +:1017B000882399F0853099F08091EB0085FD11C068 +:1017C0004091E4005091E5002417350729F391502A +:1017D00011F09A01E1CF84E0089582E0089583E05A +:1017E000089581E0089580E008954091E80042FF67 +:1017F000DDCF08950E94680C0E94700CE0EEF0E0CE +:10180000808181608083E8EDF0E080818F77808344 +:1018100019BCA7EDB0E08C918E7F8C9380818F7E78 +:1018200080831092E30108950F931F93CF93DF936A +:101830000E94680C0E94700CC8EDD0E088818F7700 +:10184000888388818068888388818F7D888319BC9C +:101850001092E4011092E0011092E2011092E10175 +:1018600000EE10E0F80180818B7F808388818160A9 +:10187000888342E060E080E00E94730BE1EEF0E0DC +:1018800080818E7F8083E2EEF0E0808181608083C2 +:10189000808188608083F80180818E7F8083888149 +:1018A00080618883DF91CF911F910F910895E8EDBA +:1018B000F0E080818F7E8083E7EDF0E080818160C1 +:1018C000808384E082BF81E08093E3010C94140C58 +:1018D000E8EDF0E080818E7F80831092E200089531 +:1018E0001092DA001092E10008951F920F920FB645 +:1018F0000F9211242F933F934F935F936F937F9396 +:101900008F939F93AF93BF93EF93FF938091E100E9 +:1019100082FF0BC08091E20082FF07C08091E1004E +:101920008B7F8093E1000E94E10E8091DA0080FFBE +:101930001FC08091D80080FF1BC08091DA008E7F8D +:101940008093DA008091D90080FF0DC080E189BDCD +:1019500082E189BD09B400FEFDCF81E08093E401FE +:101960000E94DA0805C019BC1092E4010E94E80840 +:101970008091E10080FF19C08091E20080FF15C0D6 +:101980008091E2008E7F8093E2008091E20080618E +:101990008093E2008091D80080628093D80019BCC7 +:1019A00085E08093E4010E94EC088091E10084FFCF +:1019B00030C08091E20084FF2CC080E189BD82E1CB +:1019C00089BD09B400FEFDCF8091D8008F7D809342 +:1019D000D8008091E1008F7E8093E1008091E20049 +:1019E0008F7E8093E2008091E20081608093E2002C +:1019F0008091E001882311F084E007C08091E3002A +:101A000087FD02C081E001C083E08093E4010E9471 +:101A1000EE088091E10083FF29C08091E20083FFFE +:101A200025C08091E100877F8093E10082E0809370 +:101A3000E4011092E0018091E1008E7F8093E1004B +:101A40008091E2008E7F8093E2008091E2008061CD +:101A50008093E20042E060E080E00E94730B80919E +:101A6000F00088608093F0000E94EB08FF91EF91F6 +:101A7000BF91AF919F918F917F916F915F914F91A6 +:101A80003F912F910F900FBE0F901F9018951F92AE +:101A90000F920FB60F9211242F933F934F935F93A2 +:101AA0006F937F938F939F93AF93BF93CF93DF9366 +:101AB000EF93FF93C091E900CF708091EC00D82F95 +:101AC000D17080FDD0E81092E9008091F000877F0E +:101AD0008093F00078940E948B0D1092E900809121 +:101AE000F00088608093F000CD2BCF70C093E900A8 +:101AF000FF91EF91DF91CF91BF91AF919F918F9126 +:101B00007F916F915F914F913F912F910F900FBEF9 +:101B10000F901F9018951F93CF93DF93CDB7DEB72B +:101B2000AA970FB6F894DEBF0FBECDBFE5EEF1E089 +:101B30008091F100819321E0ED3EF207C9F70E9408 +:101B40000A098091E80083FF24C18091E50190910A +:101B5000E601492F50E04A30510508F01AC1FA0158 +:101B6000EA5AFF4F0C943F23803881F0823809F005 +:101B700010C18091E9018F708093E9008091EB00A2 +:101B800085FB882780F91092E90006C08091E10169 +:101B90009091E201911182609091E800977F90937B +:101BA000E8008093F1001092F100C8C0282F2D7F2B +:101BB00009F0EFC0882319F0823061F0EAC080910B +:101BC000E701813009F0E5C0933009F080E08093AF +:101BD000E2012BC08091E701811127C08091E901CA +:101BE0008F7009F4D6C08093E9002091EB0020FFAC +:101BF0001CC0933021F48091EB00806214C090915E +:101C0000EB0090619093EB0021E030E0A90102C06D +:101C1000440F551F8A95E2F74093EA001092EA00BC +:101C20008091EB0088608093EB001092E900809136 +:101C3000E800877F86C08111ACC01091E7011F7753 +:101C40008091E3008078812B8093E3008091E8000D +:101C5000877F8093E8000E94A80B8091E80080FFB6 +:101C6000FCCF8091E30080688093E300111102C0F3 +:101C700082E001C083E08093E4018BC08058823011 +:101C800008F087C08091E7019091E8018C3D53E016 +:101C9000950779F583E08A838AE289834FB7F894C0 +:101CA000DE01139620E03EE051E2E32FF0E0509396 +:101CB0005700E49120FF03C0E295EF703F5FEF70A3 +:101CC0008E2F90E0EA3010F0C79601C0C0968D9339 +:101CD0009D932F5F243149F74FBF8091E800877FA4 +:101CE0008093E8006AE270E0CE0101960E94B40A97 +:101CF00014C0AE014F5F5F4F6091E9010E94FD0982 +:101D0000BC01892B09F445C09091E800977F90931E +:101D1000E80089819A810E94120B8091E8008B77FC +:101D20008093E80036C08038A1F58091E800877F75 +:101D30008093E8008091E0018093F1008091E800B9 +:101D40008E778093E8000E94A80B23C0811121C0E8 +:101D50008091E7019091E80199270297D4F480914E +:101D6000E800877F8093E8008091E7018093E0019D +:101D70000E94A80B8091E001811106C08091E300D0 +:101D800087FD02C081E001C084E08093E4010E94ED +:101D9000F6088091E80083FF0AC08091E800877F01 +:101DA0008093E8008091EB0080628093EB00AA961C +:101DB0000FB6F894DEBF0FBECDBFDF91CF911F915C +:101DC00008950895CF938091E4018823A1F0C091F4 +:101DD000E900CF709091EC00892F817090FD80E830 +:101DE000C82B1092E9008091E80083FD0E948B0DC2 +:101DF000CF70C093E900CF910895909369018093CB +:101E000068010895E0916801F0916901309721F02F +:101E10000190F081E02D099480E00895E09168013F +:101E2000F0916901309721F00280F381E02D09944F +:101E30000895E0916801F0916901309721F00480E4 +:101E4000F581E02D09940895209166013091670194 +:101E50002817390771F09093670180936601E0912C +:101E60006801F0916901309721F00680F781E02D3B +:101E7000099408952091640130916501281739076C +:101E800071F09093650180936401E0916801F09195 +:101E90006901309721F00084F185E02D09940895BF +:101EA00008950C94500F0E940E1B0E94C0040C94C5 +:101EB000D41BCF92DF92EF92FF920F931F93CF9399 +:101EC000DF93CDB7DEB72B970FB6F894DEBF0FBE0A +:101ED000CDBF0E94D8048BE6C82E81E0D82E00E04A +:101EE00010E0E02E802F0E94CE05F60141916F0197 +:101EF000F82EF426B1F40F5F1F4F0E30110589F74D +:101F00008FEF89838A831B820E94171B8160782F41 +:101F10009D838C8349815A816B818D810E94FC0F46 +:101F200040C09091CC0191FF04C08B870E94D405E2 +:101F30008B8520E030E04F2D50E0922FBA01022E29 +:101F400002C0759567950A94E2F760FF24C02E835E +:101F5000EF8221E030E0690102C0CC0CDD1C9A95D3 +:101F6000E2F790E08C219D21892B09F420E028875D +:101F70000E94171B8160782F9A8789874E815F8125 +:101F800068858A850E94FC0FF801E559FE4F808123 +:101F9000C826C08206C02F5F3F4F2630310569F644 +:101FA000AACF0E94BB1E0E94020F90916A0189175E +:101FB000A1F00E94020F80936A012B960FB6F8944D +:101FC000DEBF0FBECDBFDF91CF911F910F91FF906C +:101FD000EF90DF90CF900C94F8072B960FB6F89403 +:101FE000DEBF0FBECDBFDF91CF911F910F91FF904C +:101FF000EF90DF90CF900895CF93DF93CDB7DEB70A +:102000002B970FB6F894DEBF0FBECDBF4F83588716 +:1020100069877A878B87DE01119686E0FD01119230 +:102020008A95E9F785E0FE01379601900D928A9531 +:10203000E1F749815A816B817C818D819E810E946B +:10204000FF162B960FB6F894DEBF0FBECDBFDF9103 +:10205000CF910895CF93C82F882309F4C1C0823847 +:1020600059F40E94020F81FDBBC089E30E949C19B4 +:102070000E94541A89E30CC0833879F40E94020F3D +:1020800080FDAEC083E50E949C190E94541A83E52E +:102090000E94DB19CF910C94541A843859F40E9491 +:1020A000020F82FD9DC087E40E949C190E94541A71 +:1020B00087E4EECF8CEF8C0F813A48F48C2F0E948E +:1020C000FB2081118DC08C2F0E949C19E3CF80E2F0 +:1020D0008C0F883048F4C77081E001C0880FCA9522 +:1020E000EAF70E941D1AD6CF8BE58C0F833078F467 +:1020F000C53A29F0C63A31F083E890E005C081E89E +:1021000090E002C082E890E0CF910C94240F88E523 +:102110008C0F833108F064C0C83A39F1C93A41F1F3 +:10212000CA3A49F1CB3A51F1CC3A59F1CD3A61F181 +:10213000C03B69F1CE3A71F1CF3A79F1C13B81F1FF +:10214000C23B89F1C33B91F1C43B99F1C53BA1F17D +:10215000C63BA9F1C73BB1F1C83BB9F1C93BC1F1DD +:10216000CA3BC9F180E090E038C082EE90E035C013 +:1021700089EE90E032C08AEE90E02FC085EB90E0CF +:102180002CC086EB90E029C087EB90E026C08CEC59 +:1021900090E023C08DEC90E020C083E891E01DC06A +:1021A0008AE891E01AC082E991E017C084E991E0E1 +:1021B00014C081E292E011C083E292E00EC084E29A +:1021C00092E00BC085E292E008C086E292E005C092 +:1021D00087E292E002C08AE292E0CF910C943A0F3B +:1021E000CF910895882309F44BC0823859F40E9496 +:1021F000020F81FF45C089E30E949C190E94541A76 +:1022000089E30CC0833871F40E94020F80FF38C04C +:1022100083E50E949C190E94541A83E50E94DB19F1 +:102220000C94541A843859F40E94020F82FF28C07B +:1022300087E40E949C190E94541A87E4EFCF9CEF18 +:10224000980F913A58F390E2980F983050F48770B5 +:1022500091E001C0990F8A95EAF7892F0E94231A0D +:10226000DFCF9BE5980F933020F480E090E00C9452 +:10227000240F885A833120F480E090E00C943A0FC8 +:102280000895882321F00E941D1A0C94541A089571 +:10229000882321F00E94231A0C94541A0895BF92A7 +:1022A000CF92DF92EF92FF920F931F93CF93DF9322 +:1022B00000D000D000D0CDB7DEB77C0185E0F701BB +:1022C000DE01119601900D928A95E1F7F701838165 +:1022D0009481892B09F4DDC2908181818F3F19F4AB +:1022E0009F3F09F4D6C2F7010281258122952F7004 +:1022F00099838A8389819A812E830E945B19182F82 +:10230000B92E0E945A190E942118EB2DE295EF7008 +:102310004E2F50E0FA01E05AFF4F2E810C943F23DC +:102320008B2D807F9B2D9F70F92E882319F0F294BE +:1023300080EFF822002349F0FF2009F457C28F2DC7 +:102340000E942D1A0E94541A51C2812F0E94F2102D +:10235000FF2009F49EC28F2D0E94331A26960FB6D5 +:10236000F894DEBF0FBECDBFDF91CF911F910F91CB +:10237000FF90EF90DF90CF90BF900C94541A3B2DBC +:10238000307F8B2D8F70303211F08295807F11233A +:1023900019F0113021F12CC00023B9F0222309F4E7 +:1023A00090C1213009F08DC126960FB6F894DEBF9A +:1023B0000FBECDBFDF91CF911F910F91FF90EF9096 +:1023C000DF90CF90BF900C943D1A222319F021305A +:1023D00009F45FC28E830E94401A8E8186C1002359 +:1023E00021F0223008F055C26CC1211152C27DC1CA +:1023F000002321F0222309F464C1F8C1222309F447 +:1024000074C109C28B2D86958695837019F0813031 +:10241000D1F03FC2002321F0812F9B2D937002C089 +:1024200080E090E026960FB6F894DEBF0FBECDBFD9 +:10243000DF91CF911F910F91FF90EF90DF90CF90A0 +:10244000BF900C94240F002321F0812F9B2D9370BB +:1024500002C080E090E026960FB6F894DEBF0FBE73 +:10246000CDBFDF91CF911F910F91FF90EF90DF9043 +:10247000CF90BF900C943A0F812F002319F00E9447 +:10248000C31D02C00E942B1E26960FB6F894DEBF15 +:102490000FBECDBFDF91CF911F910F91FF90EF90B5 +:1024A000DF90CF90BF900C94B01E8B2D837009F0FD +:1024B00075C00111EEC1812F829586958770880FB6 +:1024C000880F912F9F70C92ED12CE12CF12C082E52 +:1024D00004C0CC0CDD1CEE1CFF1C0A94D2F714FFC8 +:1024E00012C00FE010E020E030E004C0000F111F28 +:1024F000221F331F8A95D2F7C901B80160957095E4 +:102500008095909503C060E070E0CB014B2D46951F +:10251000469543704230C1F060F56C297D298E29C3 +:102520009F29413051F126960FB6F894DEBF0FBEB9 +:10253000CDBFDF91CF911F910F91FF90EF90DF9072 +:10254000CF90BF900C9448186C297D298E299F2923 +:1025500026960FB6F894DEBF0FBECDBFDF91CF91A8 +:102560001F910F91FF90EF90DF90CF90BF900C9450 +:1025700064180E944818C701B60126960FB6F89451 +:10258000DEBF0FBECDBFDF91CF911F910F91FF90A6 +:10259000EF90DF90CF90BF900C942C18002319F08F +:1025A0008B2D817001C08695882309F472C1812F1B +:1025B000829586958770880F880F912F9F70C92EFE +:1025C000D12CE12CF12C082E04C0CC0CDD1CEE1C0F +:1025D000FF1C0A94D2F714FF12C00FE010E020E0B5 +:1025E00030E004C0000F111F221F331F8A95D2F75D +:1025F000C901B801609570958095909503C060E021 +:1026000070E0CB014B2D4695469543704230C1F0AA +:1026100060F56C297D298E299F29413051F126963C +:102620000FB6F894DEBF0FBECDBFDF91CF911F91E3 +:102630000F91FF90EF90DF90CF90BF900C942219F4 +:102640006C297D298E299F2926960FB6F894DEBF26 +:102650000FBECDBFDF91CF911F910F91FF90EF90F3 +:10266000DF90CF90BF900C943E190E942219C701B1 +:10267000B60126960FB6F894DEBF0FBECDBFDF9130 +:10268000CF911F910F91FF90EF90DF90CF90BF906F +:102690000C940619103FD1F118F4103E50F4A1C06B +:1026A000123F09F463C008F44CC0133F09F473C02F +:1026B00098C01F708B2D8F710023A1F00E949F186E +:1026C000812F26960FB6F894DEBF0FBECDBFDF91E7 +:1026D000CF911F910F91FF90EF90DF90CF90BF901F +:1026E0000C9441110E94C018812F26960FB6F894C1 +:1026F000DEBF0FBECDBFDF91CF911F910F91FF9035 +:10270000EF90DF90CF90BF900C9448110023A9F078 +:102710002111BFC08B2D8F7126960FB6F894DEBFA6 +:102720000FBECDBFDF91CF911F910F91FF90EF9022 +:10273000DF90CF90BF900C94E518223008F0A9C02C +:10274000E9CF0023A9F08B2D8F7126960FB6F89450 +:10275000DEBF0FBECDBFDF91CF911F910F91FF90D4 +:10276000EF90DF90CF90BF900C949F18002359F307 +:102770008B2D8F7126960FB6F894DEBF0FBECDBF9E +:10278000DF91CF911F910F91FF90EF90DF90CF904D +:10279000BF900C94C018002399F08B2D8F71269652 +:1027A0000FB6F894DEBF0FBECDBFDF91CF911F9162 +:1027B0000F91FF90EF90DF90CF90BF900C948A180C +:1027C00026960FB6F894DEBF0FBECDBFDF91CF9136 +:1027D0001F910F91FF90EF90DF90CF90BF900C94DE +:1027E00080180023A9F0222309F4ADCF812F26966B +:1027F0000FB6F894DEBF0FBECDBFDF91CF911F9112 +:102800000F91FF90EF90DF90CF90BF900C942A1023 +:10281000222309F4ADCF812F26960FB6F894DEBFA0 +:102820000FBECDBFDF91CF911F910F91FF90EF9021 +:10283000DF90CF90BF900C94F2104B2D4F70612F12 +:10284000C7010E94590326960FB6F894DEBF0FBE4B +:10285000CDBFDF91CF911F910F91FF90EF90DF904F +:10286000CF90BF900C94A4174B2D4F70612FC701D0 +:1028700026960FB6F894DEBF0FBECDBFDF91CF9185 +:102880001F910F91FF90EF90DF90CF90BF900C942D +:10289000950626960FB6F894DEBF0FBECDBFDF912A +:1028A000CF911F910F91FF90EF90DF90CF90BF904D +:1028B00008950E943A1A0E940F1A0E94541A0E9408 +:1028C000601F0E94B01E80E090E00E94240F80E014 +:1028D00090E00C943A0F0E942A1A0C9459140E940A +:1028E0005B19292F22952F702C3030F42A3048F4B0 +:1028F0002250223078F405C02C3041F02F3031F0D6 +:1029000009C0803E48F0803F29F406C093FB882729 +:1029100080F9089580E0089581E00895CF93DF93D2 +:1029200000D000D01F92CDB7DEB70F900F900F9060 +:102930000F900F90DF91CF910895CF93DF9300D048 +:1029400000D000D0CDB7DEB726960FB6F894DEBF24 +:102950000FBECDBFDF91CF9108951F93CF93DF932B +:10296000C091790116E080917A01C81799F0D0E002 +:102970001C9FF0011D9FF00D1124E558FE4F408172 +:10298000518162817381848195810E949D14219679 +:10299000C770E9CFDF91CF911F9108954091AB01AE +:1029A0005091AC016091AD017091AE018091AF0189 +:1029B0009091B0010C949D148091B00182958F701C +:1029C00009F054C08091AD01882309F44FC0809173 +:1029D0007901A0917A014091AE015091AF016091CF +:1029E000AB017091AC01B6E08A1709F43FC090E0EA +:1029F00041155105C1F17F3F11F46F3FA1F1B89F1F +:102A0000F001B99FF00D1124E558FE4F21812713E5 +:102A10002AC02081261327C02281211124C02381AE +:102A200034812417350710F421503109241B350B4C +:102A3000283C3105C0F42091B0012F702061209313 +:102A4000B00126E0289FF001299FF00D1124E058E5 +:102A5000FE4F80818F70806180838BEA91E00E94BD +:102A60004F110C94AD1401968770BECF0895CF928C +:102A7000DF92EF92FF920F931F93CF93DF93CDB727 +:102A8000DEB762970FB6F894DEBF0FBECDBF8C01E4 +:102A900085E0F801DE011D9601900D928A95E1F71F +:102AA000D8014C9111965C91119712966C9180917E +:102AB000AE019091AF01009709F475C13091AB015F +:102AC0007091AC017F3F19F43F3F09F46CC1F801EC +:102AD000C380D480E090AD01EE2009F4BEC0209107 +:102AE000B001C816D90628F0D601A81BB90BCD0134 +:102AF00004C0809590958C0D9D1DFF24F394883C17 +:102B0000910578F0F12C207F09F0C4C07C2DD98A82 +:102B1000C88A89890E948E148BEA91E00E944F1125 +:102B2000AFC0822F807F09F045C0571313C04313F5 +:102B300011C061110FC02F7020612093B0010E945D +:102B4000CE148BEA91E00E944F118091B001F80100 +:102B500085832EC0CD2819F15F3F11F44F3FF9F066 +:102B6000F62E61111CC08091790120917A0136E026 +:102B7000821709F45BC090E0389FF001399FF00D97 +:102B80001124E558FE4F7181571306C07081471319 +:102B900003C07281711103C001968770E9CFF62ED0 +:102BA000662309F41CC18091B00181608093B0015B +:102BB000F12C15C1571309C0431307C0611105C09B +:102BC0008091B001F8018583C8C04D875E878D85EF +:102BD0009E856A8B0E946F146A898823D1F16623CF +:102BE000C1F12091B001822F82958F7090E0029701 +:102BF00074F08091AB019091AC0198878F83198616 +:102C0000DB86CA862C87CE0107960E944F1186E08C +:102C1000F801ABEAB1E001900D928A95E1F70E94CC +:102C2000DC140E94CE14FF24F394D9C04D875E8734 +:102C30008D859E850E945B19292F22952F70223049 +:102C400008F0C1C09F7009F0BBC0805E883008F4F6 +:102C5000C6C0C8010E944F11E6CFC816D90608F4B5 +:102C600053C0F601E81BF90BCF01883C910508F42D +:102C700050C0F12C7C2DD98AC88A89890E948E1473 +:102C8000EBEAF1E086E0DF011D928A95E9F70E9408 +:102C9000CE14A5C0571314C0431312C0611110C045 +:102CA0008091B001F8018583C8010E944F1186E030 +:102CB000EBEAF1E0DF011D928A95E9F7FE2C8FC067 +:102CC0004D875E878D859E856A8B0E946F146A8909 +:102CD000882309F4BECF662309F4BBCF2091B0014D +:102CE000822F82958F7090E002970CF490CF8091A4 +:102CF000AB019091AC019A8389831B82DD82CC82E7 +:102D00002E83CE01019681CF809590958C0D9D1DCF +:102D1000ACCFF62E662309F49CCF571333C0431370 +:102D200031C02091B00120FD24C0822F82958F7088 +:102D3000482F50E041155105E1F0D80115962C932C +:102D400015974F30510549F08F5F982F9295907FDE +:102D5000822F8F70892B15968C93C8010E944F117A +:102D600086E0F801ABEAB1E001900D928A95E1F7B7 +:102D70008ECF86E0F801ABEAB1E001900D928A9522 +:102D8000E1F72DC04D875E878D859E850E946F146B +:102D900081113DCF8091B00181608093B001C80165 +:102DA0000E944F111CC0662309F453CF4D875E87E4 +:102DB0008D859E850E946F14882309F44ACF27CF02 +:102DC000811143CF0CC0243008F043CF9F7009F429 +:102DD0003CCFD80115969C91907F09F036CF8F2D6E +:102DE00062960FB6F894DEBF0FBECDBFDF91CF91D4 +:102DF0001F910F91FF90EF90DF90CF9008951F9358 +:102E0000CF93DF93CDB7DEB72C970FB6F894DEBF24 +:102E10000FBECDBF4F83588769877A878B879C8782 +:102E2000CE0107960E943715882371F08A859B850D +:102E3000892B09F441C088858F3F09F065C08F81D7 +:102E40008F3F09F061C038C086E0FE013796DE0191 +:102E5000119601900D928A95E1F76A857B8561153F +:102E6000710551F1FF81E885EF3F11F4FF3F21F13A +:102E700020917A0130E0C90101968770992740912D +:102E8000790150E08417950709F447C0F983EA8374 +:102E90007D836C8396E0929FD001939FB00D1124A7 +:102EA000A558BE4FFE01319601900D929A95E1F71B +:102EB00080937A010E94AD1416E08091790190917F +:102EC0007A018917B9F1189FC001112485589E4FC6 +:102ED0000E943715882371F1E09179011E9FF0015E +:102EE0001124E558FE4F40815181628173818481B4 +:102EF00095810E949D148091790190E001968770E0 +:102F0000992780937901D9CF4F81588569857A8532 +:102F10008B859C850E949D14CFCF0E946B141092CC +:102F20007A0110927901EBEAF1E086E0DF011D926F +:102F30008A95E9F72C960FB6F894DEBF0FBECDBF89 +:102F4000DF91CF911F910895EF92FF920F931F93FE +:102F5000CF93DF938C01892B09F46CC0F12CEE2404 +:102F6000E394E8012196F8018491843740F4843099 +:102F700008F051C0813081F0823019F15BC0853793 +:102F800009F444C0A8F19CE7980F903708F052C0AC +:102F90008F770E94F21041C00E5F1F4FFE01849197 +:102FA00090E2980F983050F48770FE2D01C0FF0F0B +:102FB0008A95EAF78F2F0E942D1A14C00E942A10BA +:102FC0002DC00E5F1F4FFE01849190E2980F983044 +:102FD00060F48770FE2D01C0FF0F8A95EAF78F2FEE +:102FE0000E94331A0E94541A19C00E94F21016C08F +:102FF0000E5F1F4FFE01C491CC2381F08FE99FE04B +:103000000197F1F700C00000C150F6CF0E5F1F4FCF +:10301000FE01F49003C00E942A108E018F2D882398 +:1030200009F49FCFEFE9FFE03197F1F700C000000E +:103030008150F5CFDF91CF911F910F91FF90EF90CD +:10304000089508956093B5017093B6018093B70118 +:103050009093B8010C9459140F931F930091B501EC +:103060001091B6012091B7013091B801DC01CB017C +:10307000802B912BA22BB32B8093B5019093B6019B +:10308000A093B701B093B8011F910F910C945914FC +:103090000F931F930091B5011091B6012091B701D4 +:1030A0003091B801DC01CB0180239123A223B3230B +:1030B0008093B5019093B601A093B701B093B80186 +:1030C0001F910F910C9459140F931F930091B50108 +:1030D0001091B6012091B7013091B801DC01CB010C +:1030E00080279127A227B3278093B5019093B6013B +:1030F000A093B701B093B8011F910F910C9459148C +:103100001092B1011092B2011092B3011092B40169 +:103110000C94591441E050E060E070E004C0440FAA +:10312000551F661F771F8A95D2F74093B1015093C0 +:10313000B2016093B3017093B4010C94591441E04F +:1031400050E060E070E004C0440F551F661F771F19 +:103150008A95D2F78091B1019091B201A091B3010B +:10316000B091B401482B592B6A2B7B2B4093B101B2 +:103170005093B2016093B3017093B4010C9459144D +:1031800041E050E060E070E004C0440F551F661F4E +:10319000771F8A95D2F740955095609570958091EC +:1031A000B1019091B201A091B301B091B401482353 +:1031B00059236A237B234093B1015093B20160935A +:1031C000B3017093B4010C94591441E050E060E0F5 +:1031D00070E004C0440F551F661F771F8A95D2F711 +:1031E0008091B1019091B201A091B301B091B4016D +:1031F000482759276A277B274093B1015093B20192 +:103200006093B3017093B4010C9459140F931F93FE +:103210000091B1011091B2012091B3013091B4013C +:10322000DC01CB01802B912BA22BB32B8093B1011E +:103230009093B201A093B301B093B4011F910F9189 +:103240000C9459140F931F930091B1011091B20186 +:103250002091B3013091B401DC01CB018023912393 +:10326000A223B3238093B1019093B201A093B30141 +:10327000B093B4011F910F910C9459140F931F93A5 +:103280000091B1011091B2012091B3013091B401CC +:10329000DC01CB0180279127A227B3278093B101BE +:1032A0009093B201A093B301B093B4011F910F9119 +:1032B0000C9459140895CF92DF92EF92FF920F93DE +:1032C0001F93CF93DF938C01C090B101D090B201D6 +:1032D000E090B301F090B4018091B5019091B601F6 +:1032E000A091B701B091B801C82AD92AEA2AFB2ACD +:1032F000CFE1D0E0D701C6010C2E04C0B695A7954A +:10330000979587950A94D2F780FF07C0B8018C2F54 +:103310000E94B9068130910531F4219758F7B80120 +:1033200080E00E94B906DF91CF911F910F91FF902D +:10333000EF90DF90CF90089590910C019923F1F0D8 +:1033400090910D019923D1F0982F96959695969589 +:103350009F3080F5E0910E01F0910F01E90FF11D12 +:10336000877021E030E0A90102C0440F551F8A9503 +:10337000E2F7CA019181892B8183089520910E0182 +:1033800030910F01F90132969FEF40E0519185177E +:1033900089F09F3F19F4511101C0942F4F5F4E30B7 +:1033A000A9F79F3F39F0F901E90FF11D97FDFA9553 +:1033B00082830895089590910C019923F9F09091DA +:1033C0000D019923D9F0982F9695969596959F3053 +:1033D00028F5E0910E01F0910F01E90FF11D8770C2 +:1033E00021E030E0A90102C0440F551F8A95E2F7A1 +:1033F000CA018095918189238183089520910E01CE +:1034000030910F01F9013296205F3F4F908189136F +:1034100001C010823196E217F307C1F7089581E0E9 +:1034200090E0E0910E01F0910F01E80FF91F10827A +:10343000019680319105A9F708959091CB01892BD0 +:103440008093CB01089580959091CB01892380933F +:10345000CB0108951092CB0108959091CA01892B58 +:103460008093CA01089580959091CA018923809321 +:10347000CA0108951092CA0108958093B901089570 +:103480001092B901089580910E0190910F01FC01F5 +:1034900031969C01205F3F4F80E0919191118F5FA9 +:1034A000E217F307D1F70895E0910E01F0910F01B3 +:1034B0008091CB018083E0910E01F0910F0190810A +:1034C0008091CA01892B80838091B901882361F0A2 +:1034D000E0910E01F0910F019081892B80830E9471 +:1034E000431A81111092B90180910E0190910F0140 +:1034F0000C940E0FCF92DF92EF92FF926C01EE24AC +:10350000FF24C114D104E104F10421F0C701B60184 +:1035100020E101C020E0C72ED82EE92EFF24C114DF +:10352000D104E104F10419F0285FC701B6016B0171 +:103530007C0154E0F694E794D794C7945A95D1F758 +:10354000C114D104E104F10419F02C5FC701B601E4 +:103550006B017C0142E0F694E794D794C7944A95B6 +:10356000D1F7C114D104E104F10419F02E5FC701B1 +:10357000B601DC01CB01B695A79597958795892B68 +:103580008A2B8B2B09F02F5F822FFF90EF90DF901B +:10359000CF9008958091E401843011F120E488E116 +:1035A00090E00FB6F894A895809360000FBE20932A +:1035B000600083B7817F846083BF83B7816083BFEE +:1035C0007894889583B78E7F83BF0FB6F894A895BB +:1035D00080916000886180936000109260000FBE4F +:1035E000089508950C94F11ACF930E94F21A0E9444 +:1035F000D8040E94F11AC0E08C2F0E94CE058111E0 +:1036000004C0CF5FCE30C1F701C081E0CF910895F3 +:103610000E946B140E94020F0C94F80782E084BD94 +:1036200093E095BD9AEF97BD80936E0008952FB7F4 +:10363000F8948091CD019091CE01A091CF01B091ED +:10364000D0012FBF0895CF92DF92EF92FF920F9398 +:103650001F932FB7F8944091CD015091CE01609106 +:10366000CF017091D0012FBF6A017B01EE24FF24AE +:103670008C0120E030E0C016D106E206F30610F41B +:10368000415051099A01281B390BC9011F910F9113 +:10369000FF90EF90DF90CF9008951F920F920FB69A +:1036A0000F9211248F939F93AF93BF938091CD017D +:1036B0009091CE01A091CF01B091D0010196A11DB2 +:1036C000B11D8093CD019093CE01A093CF01B09313 +:1036D000D001BF91AF919F918F910F900FBE0F902E +:1036E0001F9018950E94FA0BF8942FEF87EA91E645 +:1036F000215080409040E1F700C0000087E090EB4F +:10370000DC018093ED019093EE01A093EF01B09363 +:10371000F0019CE088E10FB6F894A89580936000D2 +:103720000FBE90936000FFCFEF92FF920F931F9315 +:10373000CF93DF93D82FC0E08C2F0E94CE0500E0FE +:1037400010E0E82EF12CC701002E02C09595879558 +:103750000A94E2F780FD06C00F5F1F4F0630110587 +:1037600091F709C0602F7C2F80E00E9496068D1390 +:10377000F3CF81E004C0CF5FCE30F1F680E0DF917F +:10378000CF911F910F91FF90EF900895CF93C82F85 +:103790008CE20E94941B882321F08C2FCF910C94F3 +:1037A000941B80E0CF910895CF930E941B1D81113F +:1037B00002C00E94011DC5E6C15049F00E94D80414 +:1037C0008FE39CE90197F1F700C00000F5CF89E293 +:1037D0000E94C61B811113C18AE20E94C61B81117F +:1037E0000E94011D85E00E94C61B81110E94721B70 +:1037F0000E94261D8093CC0187E00E94C61B88236F +:10380000A9F18BE10E94C61B882351F08091CC0165 +:1038100081FB222720F991E0922790FB81F90EC0CD +:103820008EE00E94C61B882361F08091CC0182FB50 +:10383000222720F991E0922790FB82F98093CC0116 +:1038400015C080E10E94C61B9091CC01882341F0F5 +:1038500093FB222720F981E0822780FB93F904C0A3 +:10386000892F809580FB90F99093CC018091CC01B9 +:103870000E942A1D0E94381D8093DE0180EE0E9466 +:10388000C61B882341F08091DE01982F909590FB14 +:1038900080F98093DE0189E30E94C61B882359F0DA +:1038A0008091DE0181FB222720F991E0922790FB95 +:1038B00081F98093DE0182EE0E94C61B882359F0B5 +:1038C0008091DE0182FB222720F991E0922790FB74 +:1038D00082F98093DE0186EE0E94C61B882359F090 +:1038E0008091DE0183FB222720F991E0922790FB53 +:1038F00083F98093DE0183EE0E94C61B882359F072 +:103900008091DE0184FB222720F991E0922790FB31 +:1039100084F98093DE0185E30E94C61B882359F059 +:103920008091DE0185FB222720F991E0922790FB10 +:1039300085F98093DE0181E30E94C61B882359F03C +:103940008091DE0186FB222720F991E0922790FBEF +:1039500086F98093DE0181E10E94C61B882359F01D +:103960008091DE0187FB222720F991E0922790FBCE +:1039700087F98093DE018091DE010E943C1D8091D9 +:10398000DE0187FB882780F980930D0187E20E9482 +:10399000C61BC82F8EE10E94C61B8111C2608FE139 +:1039A0000E94C61B8111C46080E20E94C61B811167 +:1039B000C86081E20E94C61B8111C06182E20E9440 +:1039C000C61B8111C06283E20E94C61B8111C064C4 +:1039D00084E20E94C61B882311F0C06802C0CC2379 +:1039E00029F08C2F0E94331D6C2F03C00E942F1DC5 +:1039F000682F70E080E090E0CF910C942218CF9176 +:103A000008956DEE7EEF80E090E00E94752360E007 +:103A100082E090E00E94672360E083E090E00E94F3 +:103A2000672360E084E090E00E94672360E085E027 +:103A300090E00C94672380E090E00E94612321E0F5 +:103A40008D3E9E4F09F020E0822F089582E090E0A5 +:103A50000C945923682F82E090E00C94672383E054 +:103A600090E00C945923682F83E090E00C94672336 +:103A700084E090E00C945923682F84E090E00C944B +:103A800067238091D30180FF0BC06091130185E013 +:103A9000689FB001112475956795759567952BC042 +:103AA00081FF09C06091130185E0689FB001112476 +:103AB0007595679520C082FF07C06091130185E06E +:103AC000689FB001112417C09091D4019923D1F0BF +:103AD00060911201961788F72091130185E0289FC5 +:103AE00090011124929FA001939F500D112470E02A +:103AF000CA010E942B236038710540F461157105DD +:103B000019F406C065E070E0862F08958FE70895E8 +:103B100081E008958091D30180FF08C06091110178 +:103B200070E0759567957595679521C081FF06C012 +:103B30006091110170E07595679519C082FF04C00E +:103B40006091110170E010C09091D401992399F017 +:103B5000609110019617A0F780911101899FC00113 +:103B6000112470E00E942B236038710540F4611528 +:103B7000710519F406C061E070E0862F08958FE7A3 +:103B8000089581E00895803F21F40E94411D8195B0 +:103B900004C0813F29F40E94411D8093D7010895FC +:103BA000823F21F40E94411D819504C0833F29F486 +:103BB0000E94411D8093D6010895893F19F40E9407 +:103BC0008A1D05C08A3F31F40E948A1D8195809329 +:103BD000D80108958B3F21F40E948A1D819504C06D +:103BE0008C3F29F40E948A1D8093D9010895843F57 +:103BF00021F48091D501816017C0853F21F4809127 +:103C0000D501826011C0863F21F48091D501846086 +:103C10000BC0873F21F48091D501886005C0883FA3 +:103C200031F48091D50180618093D50108958D3F55 +:103C300021F48091D30181600BC08E3F21F48091EB +:103C4000D301826005C08F3F29F48091D301846045 +:103C50008093D3010895803F39F48091D70187FF85 +:103C60006CC01092D70169C0813F29F48091D701BF +:103C70001816BCF362C09091D601823F29F497FFD9 +:103C80005CC01092D60159C0833F19F41916CCF3C9 +:103C900054C0893F41F48091D80118160CF04DC0F2 +:103CA0001092D8014AC08A3F29F48091D80187FF39 +:103CB00044C0F6CF8B3F39F48091D90187FF3DC0D6 +:103CC0001092D9013AC08C3F29F48091D90118167D +:103CD000BCF333C0843F21F48091D5018E7F17C09F +:103CE000853F21F48091D5018D7F11C0863F21F45D +:103CF0008091D5018B7F0BC0873F21F48091D50146 +:103D0000877F05C0883F31F48091D5018F7E8093F5 +:103D1000D50113C08D3F21F48091D3018E7F0BC05C +:103D20008E3F21F48091D3018D7F05C08F3F29F410 +:103D30008091D3018B7F8093D3018091D601811133 +:103D40000EC08091D70181110AC08091D8018111E4 +:103D500006C08091D901811102C01092D40108954A +:103D600085ED91E00E94190F0E94171B9093D201DC +:103D70008093D10108951F93CF93DF938091D10158 +:103D80009091D2010E94231BAC019091D401992300 +:103D900021F02091140130E006C0209115018AE045 +:103DA000289F900111244217530708F485C0809181 +:103DB000D601C091D701D091D8011091D9018111BC +:103DC00007C0C11175C0D11173C0111171C074C089 +:103DD0009F3F19F09F5F9093D401181624F40E941E +:103DE000411D8093D6018091D60187FF05C00E94B6 +:103DF000411D81958093D6011C1624F40E94411D1B +:103E00008093D7018091D70187FF05C00E94411D93 +:103E100081958093D7016091D601662331F1C091DD +:103E2000D701CC2311F1062E000C770B880B990BD0 +:103E30000E94322223E333E343E35FE30E949622AE +:103E40000E94FA216093D6016C2FCC0F770B880B60 +:103E5000990B0E94322223E333E343E35FE30E94A2 +:103E600096220E94FA216093D7011D1624F40E9425 +:103E70008A1D8093D8018091D80187FF05C00E94D8 +:103E80008A1D81958093D801111624F40E948A1D01 +:103E90008093D9018091D90187FF05C00E948A1DB6 +:103EA00081958093D901DF91CF911F910C94B01E21 +:103EB0009F3F09F08FCFA0CFDF91CF911F91089541 +:103EC000E5EDF1E085E0DF011D928A95E9F71092BA +:103ED000D4011092D3010895833081F128F4813008 +:103EE00059F08230D1F00895853009F449C0B8F115 +:103EF000863009F456C0089580911501262F30E0D0 +:103F0000280F311D2F3F310524F4680F60931501F0 +:103F100008958FEF80931501089580911401262F45 +:103F200030E0280F311D2F3F310524F4680F6093D6 +:103F3000140108958FEF8093140108958091130167 +:103F4000262F30E0280F311D2F3F310524F4680F54 +:103F50006093130108958FEF80931301089580916A +:103F60001201262F30E0280F311D2F3F310524F498 +:103F7000680F6093120108958FEF809312010895E6 +:103F800080911101262F30E0280F311D2F3F310580 +:103F900024F4680F6093110108958FEF809311014D +:103FA000089580911001262F30E0280F311D2F3FFA +:103FB000310524F4680F6093100108958FEF80930A +:103FC00010010895833011F128F4813049F08230D6 +:103FD00091F00895853081F120F18630C1F1089586 +:103FE00080911501681720F4861B809315010895B0 +:103FF00010921501089580911401681720F4861B12 +:104000008093140108951092140108958091130172 +:10401000681720F4861B80931301089510921301F2 +:10402000089580911201681720F4861B8093120175 +:10403000089510921201089580911101681720F4DB +:10404000861B8093110108951092110108958091AB +:104050001001681720F4861B8093100108951092B8 +:10406000100108950F931F938D3109F46BC008F070 +:104070003FC08E3009F47DC0C0F4873009F46EC0B3 +:1040800068F4863009F0AFC08091CC01817F8E7FCB +:104090008093CC0181E08093DB01A6C0883009F4D5 +:1040A00058C08B3009F49BC09EC0863109F497C07C +:1040B00078F4803109F470C0813109F094C00E9415 +:1040C0006B1490910D0181E0892780930D0187C0C9 +:1040D000893109F484C08B3109F085C08091CC010D +:1040E00081FB222720F991E0922790FB81F94AC0B9 +:1040F000853309F45BC048F4873209F457C008F4EB +:104100005AC0893209F452C06EC0833438F48A33FD +:1041100008F067C0883309F462C065C0833409F4CD +:1041200045C0883409F05FC00E946B140FEF13ED97 +:1041300020E3015010402040E1F700C000000E9441 +:10414000721B4DC00E94B4210E94020F0E94F8070A +:1041500046C00E94261D0E94381D41C09091CC018E +:10416000892F817090FF12C0917F9E7F9093CC0128 +:104170003BC08091CC0182FB222720F991E092275D +:1041800090FB82F98093CC01992349F18091CC0175 +:1041900081608093CC0123C08091CC0183FB2227D6 +:1041A00020F991E0922790FB83F9ECCF61E070E079 +:1041B00080E090E010C08D5141E050E060E070E0A0 +:1041C0008A019B0104C0000F111F221F331F8A9513 +:1041D000D2F7C901B8010E9422180E946B1481E035 +:1041E00003C08953E9CF80E01F910F91089580E0CB +:1041F00008950C94F720CF93C82F8091DB01813074 +:1042000079F018F08230E9F187C0E0910E01F09169 +:104210000F018081813169F0823209F07FC009C0CD +:10422000E0910E01F0910F018081813111F0823215 +:1042300061F48C2F0E94F920811104C08C2F0E9400 +:1042400032201DC081E090E01AC08C2F0E94F72020 +:10425000811114C0C43179F048F4CB3079F0C03109 +:1042600009F060C082E08093DB0108C0C93219F018 +:10427000C83321F057C01092DB0154C081E0817037 +:1042800053C0C93289F118F5C43171F1A8F4C730AF +:1042900009F046C08AE08093150194E190931401DF +:1042A00093E0909313018093120188E080931101B1 +:1042B00088E28093100134C0CE51C63088F5EC2FCF +:1042C000F0E0E65DFE4F80818093DA0129C0CE34B4 +:1042D000E9F020F4CB3421F56AE013C0C13579F060 +:1042E000C235F1F461E00DC08091DA01882319F044 +:1042F0001092DA0115C081E08093DB0115C061E006 +:1043000006C08091DA010E946C1F0AC06AE08091A9 +:10431000DA010E94E21F04C01092DB0180E004C0B9 +:1043200081E002C080E0ABCFCF910895E1E8F0E0FA +:104330008081886080838081816080838FB7F894DA +:1043400093E09093890090ED909388008FBF08953B +:10435000EFE6F0E08081826080830895EFE6F0E090 +:1043600080818D7F80830895EFE6F0E0908182E088 +:104370008927808308951F920F920FB60F92112400 +:104380002F933F934F935F936F937F938F939F935D +:10439000AF93BF93EF93FF938091DC019091DD0188 +:1043A00001969093DD018093DC01811103C082E0CE +:1043B0000E94F807E091DD01E695E695F0E0E05215 +:1043C000FA4FE4918091DC018E1303C080E00E94DB +:1043D000F807FF91EF91BF91AF919F918F917F91DE +:1043E0006F915F914F913F912F910F900FBE0F9062 +:1043F0001F9018950E9401226894B1110C9490228C +:1044000008950E94752288F09F5798F0B92F992738 +:10441000B751B0F0E1F0660F771F881F991F1AF0AF +:10442000BA95C9F714C0B13091F00E948F22B1E063 +:1044300008950C948F22672F782F8827B85F39F062 +:10444000B93FCCF3869577956795B395D9F73EF448 +:1044500090958095709561957F4F8F4F9F4F0895F0 +:10446000E89409C097FB3EF490958095709561950E +:104470007F4F8F4F9F4F9923A9F0F92F96E9BB27C4 +:104480009395F695879577956795B795F111F8CF40 +:10449000FAF4BB0F11F460FF1BC06F5F7F4F8F4FAB +:1044A0009F4F16C0882311F096E911C0772321F0A1 +:1044B0009EE8872F762F05C0662371F096E8862F39 +:1044C00070E060E02AF09A95660F771F881FDAF790 +:1044D000880F9695879597F9089557FD9058440F42 +:1044E000551F59F05F3F71F04795880F97FB991F53 +:1044F00061F09F3F79F08795089512161306140610 +:10450000551FF2CF4695F1DF08C01616170618069C +:10451000991FF1CF86957105610508940895E89477 +:10452000BB2766277727CB0197F908950E94A92218 +:104530000C941A230E940C2338F00E94132320F0BD +:10454000952311F00C9403230C94092311240C944B +:1045500090220E946D2270F3959FC1F3950F50E059 +:10456000551F629FF001729FBB27F00DB11D639F25 +:10457000AA27F00DB11DAA1F649F6627B00DA11DCB +:10458000661F829F2227B00DA11D621F739FB00D71 +:10459000A11D621F839FA00D611D221F749F3327E1 +:1045A000A00D611D231F849F600D211D822F762F7A +:1045B0006A2F11249F5750409AF0F1F088234AF057 +:1045C000EE0FFF1FBB1F661F771F881F91505040C3 +:1045D000A9F79E3F510580F00C9403230C94902280 +:1045E0005F3FE4F3983ED4F3869577956795B7954A +:1045F000F795E7959F5FC1F7FE2B880F911D969564 +:10460000879597F9089597F99F6780E870E060E0D3 +:1046100008959FEF80EC089500240A94161617065B +:1046200018060906089500240A94121613061406A3 +:1046300005060895092E0394000C11F4882352F006 +:10464000BB0F40F4BF2B11F460FF04C06F5F7F4FBE +:104650008F4F9F4F089597FB072E16F4009407D0B5 +:1046600077FD09D00E94452307FC05D03EF49095C4 +:1046700081959F4F0895709561957F4F0895EE0F36 +:10468000FF1F0590F491E02D0994AA1BBB1B51E17B +:1046900007C0AA1FBB1FA617B70710F0A61BB70BB2 +:1046A000881F991F5A95A9F780959095BC01CD0157 +:1046B0000895F999FECF92BD81BDF89A992780B5EA +:1046C0000895A8E1B0E042E050E00C947C23262F4E +:1046D000F999FECF1FBA92BD81BD20BD0FB6F894E7 +:1046E000FA9AF99A0FBE019608950E946723272F20 +:1046F0000C946823DC01CB01FC01F999FECF06C0C4 +:10470000F2BDE1BDF89A319600B40D92415050408F +:08471000B8F70895F894FFCFFB +:104718002002F907890864083008FC070101BA017A +:1047280028080A03140A3F4D3639A10554051E0509 +:10473800E50478049104AA04C304010203040506ED +:044748000708090055 +:00000001FF diff --git a/keyboard/ergodox_ez/keymaps/coderkun_neo2/keymap.c b/keyboard/ergodox_ez/keymaps/coderkun_neo2/keymap.c new file mode 100644 index 0000000000..25ab0ff18d --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/coderkun_neo2/keymap.c @@ -0,0 +1,274 @@ +#include "ergodox_ez.h" +#include "debug.h" +#include "action_layer.h" +#include "keymap_extras/keymap_neo2.h" + +// Layer names +#define BASE 0 // default layer +#define PMQ 1 // poor man’s QWERTZ +#define PMN 2 // poor man’s Neo +#define FMU 3 // FMU layer +#define NHL 4 // Neo’s software layer 4 rebuilt in Hardware + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Layer 0: default + * ┌───────┬─────┬─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┬─────┬───────┐ + * │ TAB │ 1 │ 2 │ 3 │ 4 │ 5 │ ` │ │ ´ │ 6 │ 7 │ 8 │ 9 │ 0 │ BKSPC │ + * ├───────┼─────┼─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┼─────┼─────┼───────┤ + * │ Y │ X │ V │ L │ C │ W │ HOM │ │ END │ K │ H │ G │ F │ Q │ ß │ + * ├───────┼─────┼─────┼─────╆─────╅─────┤ E │ │ ├─────╆─────╅─────┼─────┼─────┼───────┤ + * │ Mod3 │ U │ I │ A │ E │ O ├─────┤ ├─────┤ S │ N │ R │ T │ D │ Mod3 │ + * ├───────┼─────┼─────┼─────╄─────╃─────┤ TL2 │ │ TL3 ├─────╄─────╃─────┼─────┼─────┼───────┤ + * │ LSHFT │ Ü │ Ö │ Ä │ P │ Z │ │ │ │ B │ M │ , │ . │ J │ Shift │ + * └─┬─────┼─────┼─────┼─────┼─────┼─────┴─────┘ └─────┴─────┼─────┼─────┼─────┼─────┼─────┬─┘ + * │ CTL │ ALT │ MO1 │ Win │ Mod4│ │ Mod4│ Win │ MO1 │ Alt │ CTL │ + * └─────┴─────┴─────┴─────┴─────┘ ┌─────┬─────┐ ┌─────┬─────┐ └─────┴─────┴─────┴─────┴─────┘ + * │ ← │ ↑ │ │ ↓ │ → │ + * ┌─────┼─────┼─────┤ ├─────┼─────┼─────┐ + * │ │ │ ─ │ │ ─ │ │ │ + * │ SPC │ RTN ├─────┤ ├─────┤ RTN │ SPC │ + * │ │ │ HYP │ │ MEH │ │ │ + * └─────┴─────┴─────┘ └─────┴─────┴─────┘ + */ +[BASE] = KEYMAP( + // left hand + KC_TAB, KC_1, KC_2, KC_3, KC_4, KC_5, KC_EQL, + NEO_Y, NEO_X, NEO_V, NEO_L, NEO_C, NEO_W, KC_HOME, + NEO_L1_L, NEO_U, NEO_I, NEO_A, NEO_E, NEO_O, + KC_LSFT, NEO_UE, NEO_OE, NEO_AE, NEO_P, NEO_Z, TG(PMQ), + KC_LCTL, KC_LALT,MO(FMU),KC_LGUI,NEO_L2_L, + KC_LEFT, KC_UP, + KC_MINS, + KC_SPC, KC_ENT, ALL_T(KC_NO), + // right hand + DE_ACUT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + KC_END, NEO_K, NEO_H, NEO_G, NEO_F, NEO_Q, NEO_SS, + NEO_S, NEO_N, NEO_R, NEO_T, NEO_D, NEO_L1_R, + TG(PMN), NEO_B, NEO_M, KC_COMM,KC_DOT, NEO_J, KC_RSFT, + NEO_L2_R,KC_RGUI,MO(FMU),KC_RALT,KC_RCTL, + KC_DOWN, KC_RGHT, + KC_MINS, + MEH_T(KC_NO),KC_ENT,KC_SPC + ), + +/* Layer 1: poor man’s QWERTZ + * based on kaimi’s layout + * ┌───────┬─────┬─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┬─────┬───────┐ + * │ TAB │ 1 │ 2 │ 3 │ 4 │ 5 │ ` │ │ ´ │ 6 │ 7 │ 8 │ 9 │ 0 │ BKSPC │ + * ├───────┼─────┼─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┼─────┼─────┼───────┤ + * │ C │ P │ T │ F │ K │ L │ HOM │ │ END │ B │ A │ S │ G │ V │ Y │ + * ├───────┼─────┼─────┼─────╆─────╅─────┤ E │ │ ├─────╆─────╅─────┼─────┼─────┼───────┤ + * │ Mod3 │ D │ H │ Ö │ O │ I ├─────┤ ├─────┤ U │ - │ Z │ E │ X │ Mod3 │ + * ├───────┼─────┼─────┼─────╄─────╃─────┤(TL2)│ │(TL3)├─────╄─────╃─────┼─────┼─────┼───────┤ + * │ LSHFT │ Ä │ Q │ R │ W │ N │ │ │ │ J │ M │ , │ . │ ẞ │ Shift │ + * └─┬─────┼─────┼─────┼─────┼─────┼─────┴─────┘ └─────┴─────┼─────┼─────┼─────┼─────┼─────┬─┘ + * │ CTL │ ALT │ MO1 │ Win │ MO4 │ │ M04 │ Win │ MO1 │ Alt │ CTL │ + * └─────┴─────┴─────┴─────┴─────┘ ┌─────┬─────┐ ┌─────┬─────┐ └─────┴─────┴─────┴─────┴─────┘ + * │ ← │ ↑ │ │ ↓ │ → │ + * ┌─────┼─────┼─────┤ ├─────┼─────┼─────┐ + * │ │ │ ─ │ │ ─ │ │ │ + * │ SPC │ RTN ├─────┤ ├─────┤ RTN │ SPC │ + * │ │ │ HYP │ │ MEH │ │ │ + * └─────┴─────┴─────┘ └─────┴─────┴─────┘ + */ +[PMQ] = KEYMAP( + // left hand + KC_TAB, KC_1, KC_2, KC_3, KC_4, KC_5, KC_EQL, + DE_C, DE_P, DE_T, DE_F, DE_K, DE_L, KC_HOME, + NEO_L1_L, DE_D, DE_H, DE_OE, DE_O, DE_I, + KC_LSFT, DE_AE, DE_Q, DE_R, DE_W, DE_N, KC_TRNS, + KC_LCTL, KC_LALT,MO(FMU),KC_LGUI,MO(NHL), + KC_LEFT, KC_UP, + KC_MINS, + KC_SPC, KC_ENT, ALL_T(KC_NO), + // right hand + DE_ACUT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + KC_END, DE_B, DE_A, DE_S, DE_G, DE_V, DE_Y, + DE_U, DE_MINS,DE_Z, DE_E, DE_X, NEO_L1_R, + KC_TRNS, DE_J, DE_M, DE_COMM,DE_DOT, DE_SS, KC_RSFT, + MO(NHL),KC_RGUI,MO(FMU),KC_RALT,KC_RCTL, + KC_DOWN, KC_RGHT, + KC_MINS, + MEH_T(KC_NO),KC_ENT,KC_SPC + ), + +/* Layer 2: poor man’s Neo + * based on kaimi’s layout + * ┌───────┬─────┬─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┬─────┬───────┐ + * │ TAB │ 1 │ 2 │ 3 │ 4 │ 5 │ ` │ │ ´ │ 6 │ 7 │ 8 │ 9 │ 0 │ BKSPC │ + * ├───────┼─────┼─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┼─────┼─────┼───────┤ + * │ Y │ X │ V │ L │ C │ W │ HOM │ │ END │ K │ H │ G │ F │ Q │ ß │ + * ├───────┼─────┼─────┼─────╆─────╅─────┤ E │ │ ├─────╆─────╅─────┼─────┼─────┼───────┤ + * │ Mod3 │ U │ I │ A │ E │ O ├─────┤ ├─────┤ S │ N │ R │ T │ D │ Mod3 │ + * ├───────┼─────┼─────┼─────╄─────╃─────┤(TL2)│ │(TL3)├─────╄─────╃─────┼─────┼─────┼───────┤ + * │ LSHFT │ Ü │ Ö │ Ä │ P │ Z │ │ │ │ B │ M │ , │ . │ J │ Shift │ + * └─┬─────┼─────┼─────┼─────┼─────┼─────┴─────┘ └─────┴─────┼─────┼─────┼─────┼─────┼─────┬─┘ + * │ CTL │ ALT │ MO1 │ Win │ MO4 │ │ M04 │ Win │ MO1 │ Alt │ CTL │ + * └─────┴─────┴─────┴─────┴─────┘ ┌─────┬─────┐ ┌─────┬─────┐ └─────┴─────┴─────┴─────┴─────┘ + * │ ← │ ↑ │ │ ↓ │ → │ + * ┌─────┼─────┼─────┤ ├─────┼─────┼─────┐ + * │ │ │ ─ │ │ ─ │ │ │ + * │ SPC │ RTN ├─────┤ ├─────┤ RTN │ SPC │ + * │ │ │ HYP │ │ MEH │ │ │ + * └─────┴─────┴─────┘ └─────┴─────┴─────┘ + */ +[PMN] = KEYMAP( + KC_TAB, KC_1, KC_2, KC_3, KC_4, KC_5, KC_EQL, + DE_Y, DE_X, DE_V, DE_L, DE_C, DE_W, KC_HOME, + KC_NO, DE_U, DE_I, DE_A, DE_E, DE_O, + KC_LSFT, DE_UE, DE_OE, DE_AE, DE_P, DE_Z, KC_TRNS, + KC_LCTL, KC_LALT,MO(FMU),KC_LGUI,MO(NHL), + KC_LEFT, KC_UP, + KC_MINS, + KC_SPC, KC_ENT, ALL_T(KC_NO), + // right hand + DE_ACUT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + KC_END, DE_K, DE_H, DE_G, DE_F, DE_Q, DE_SS, + DE_S, DE_N, DE_R, DE_T, DE_D, KC_NO, + KC_TRNS, DE_B, DE_M, KC_COMM,KC_DOT, DE_J, KC_RSFT, + MO(NHL),KC_RGUI,MO(FMU),KC_RALT,KC_RCTL, + KC_DOWN, KC_RGHT, + KC_MINS, + MEH_T(KC_NO),KC_ENT,KC_SPC + ), + +/* Layer 3: F-keys, Mouse and Unicode + * ┌───────┬─────┬─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┬─────┬───────┐ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├───────┼─────┼─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┼─────┼─────┼───────┤ + * │ │ │ │ │ ✕ │ │ │ │ │ │ F9 │ F10 │ F11 │ F12 │ │ + * ├───────┼─────┼─────┼─────╆─────╅─────┤ │ │ ├─────╆─────╅─────┼─────┼─────┼───────┤ + * │ │ │ │ │ ✓ │ ├─────┤ ├─────┤ │ F5 │ F6 │ F7 │ F8 │ │ + * ├───────┼─────┼─────┼─────╄─────╃─────┤ │ │ ├─────╄─────╃─────┼─────┼─────┼───────┤ + * │ │ │ │ │ │ │ │ │ │ │ F1 │ F2 │ F3 │ F4 │ │ + * └─┬─────┼─────┼─────┼─────┼─────┼─────┴─────┘ └─────┴─────┼─────┼─────┼─────┼─────┼─────┬─┘ + * │ │ │(MO1)│ │ │ │ │ │(MO1)│ │ │ + * └─────┴─────┴─────┴─────┴─────┘ ┌─────┬─────┐ ┌─────┬─────┐ └─────┴─────┴─────┴─────┴─────┘ + * │ Ms← │ Ms↑ │ │ Ms↓ │ Ms→ │ + * ┌─────┼─────┼─────┤ ├─────┼─────┼─────┐ + * │ │ │ MLC │ │ MRC │ │ │ + * │ │ ├─────┤ ├─────┤ │ │ + * │ │ │ │ │ │ │ │ + * └─────┴─────┴─────┘ └─────┴─────┴─────┘ + */ +[FMU] = KEYMAP( + // left hand + KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, + KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,UC(0x2713),KC_TRNS,KC_TRNS, + KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,UC(0x2715),KC_TRNS, + KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, + KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, + KC_MS_L, KC_MS_U, + KC_BTN1, + KC_TRNS,KC_TRNS, KC_TRNS, + // right hand + KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, + KC_TRNS, KC_TRNS,KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, + KC_TRNS,KC_F5, KC_F6, KC_F7, KC_F8, KC_TRNS, + KC_TRNS, KC_TRNS,KC_F1, KC_F2, KC_F3, KC_F4, KC_TRNS, + KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, + KC_MS_D, KC_MS_R, + KC_BTN2, + KC_TRNS, KC_TRNS,KC_TRNS + ), + +/* Layer 4: Neo’s software layer 4 rebuilt in Hardware + * based on kaimi’s layout + * ┌───────┬─────┬─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┬─────┬───────┐ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├───────┼─────┼─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┼─────┼─────┼───────┤ + * │ │ PgUp│ BSpc│ ↑ │ Del │ PgDn│ │ │ │ │ 7 │ 8 │ 9 │ + │ − │ + * ├───────┼─────┼─────┼─────╆─────╅─────┤ │ │ ├─────╆─────╅─────┼─────┼─────┼───────┤ + * │ │ Home│ ← │ ↓ │ → │ End ├─────┤ ├─────┤ │ 4 │ 5 │ 6 │ , │ . │ + * ├───────┼─────┼─────┼─────╄─────╃─────┤(TL2)│ │(TL3)├─────╄─────╃─────┼─────┼─────┼───────┤ + * │ │ Esc │ Tab │ Ins │ Ret │ Undo│ │ │ │ │ 1 │ 2 │ 3 │ │ │ + * └─┬─────┼─────┼─────┼─────┼─────┼─────┴─────┘ └─────┴─────┼─────┼─────┼─────┼─────┼─────┬─┘ + * │ │ │(MO1)│ │(MO4)│ │(MO4)│ │(MO1)│ │ │ + * └─────┴─────┴─────┴─────┴─────┘ ┌─────┬─────┐ ┌─────┬─────┐ └─────┴─────┴─────┴─────┴─────┘ + * │ │ │ │ │ │ + * ┌─────┼─────┼─────┤ ├─────┼─────┼─────┐ + * │ │ │ │ │ │ │ │ + * │ │ ├─────┤ ├─────┤ │ │ + * │ │ │ │ │ │ │ │ + * └─────┴─────┴─────┘ └─────┴─────┴─────┘ + */ +[NHL] = KEYMAP( + // left hand + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_PGUP,KC_BSPC,KC_UP, KC_DELT,KC_PGDN,KC_NO, + KC_NO, KC_HOME,KC_LEFT,KC_DOWN,KC_RGHT,KC_END, + KC_NO, KC_ESC, KC_TAB, KC_INS, KC_ENT, KC_UNDO,KC_TRNS, + KC_NO, KC_NO, KC_TRNS,KC_NO, KC_TRNS, + KC_NO, KC_NO, + KC_NO, + KC_NO, KC_NO, KC_NO, + // right hand + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_7, KC_8, KC_9, DE_PLUS,DE_MINS, + KC_NO, KC_4, KC_5, KC_6, KC_COMM,KC_DOT, + KC_TRNS, KC_NO, KC_1, KC_2, KC_3, KC_NO, KC_NO, + KC_TRNS,KC_NO, KC_TRNS,KC_NO, KC_NO, + KC_NO, KC_NO, + KC_NO, + KC_NO, KC_NO, KC_NO + ), +}; + +const uint16_t PROGMEM fn_actions[] = { + [BASE] = ACTION_FUNCTION(BASE), + [PMQ] = ACTION_FUNCTION(PMQ), + [PMN] = ACTION_FUNCTION(PMN), + [FMU] = ACTION_LAYER_TAP_TOGGLE(FMU), + [NHL] = ACTION_LAYER_TAP_TOGGLE(NHL) +}; + + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch(id) { + case 0: + if (record->event.pressed) { + register_code(KC_RSFT); + } + else { + unregister_code(KC_RSFT); + } + break; + } + + return MACRO_NONE; +}; + + +// Runs just one time when the keyboard initializes. +void matrix_init_user(void) { +}; + + +// Runs constantly in the background, in a loop. +void matrix_scan_user(void) +{ + uint8_t layer = biton32(layer_state); + + ergodox_board_led_off(); + ergodox_right_led_1_off(); + ergodox_right_led_2_off(); + ergodox_right_led_3_off(); + switch (layer) { + case FMU: + ergodox_right_led_1_on(); + break; + case PMQ: + ergodox_right_led_2_on(); + break; + case PMN: + ergodox_right_led_3_on(); + break; + default: + ergodox_board_led_off(); + break; + } + +}; diff --git a/keyboard/ergodox_ez/keymaps/coderkun_neo2/readme.md b/keyboard/ergodox_ez/keymaps/coderkun_neo2/readme.md new file mode 100644 index 0000000000..2a4d3a535b --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/coderkun_neo2/readme.md @@ -0,0 +1,31 @@ +# coderkun’s Neo2 layout for the ErgoDox EZ + +The idea of this layout is to use it for [Neo2](http://www.neo-layout.org) but also provide layers to use QWERTZ with activated Neo driver and to use (basic) Neo when no driver is available (standard QWERTZ driver is active) (e. g. on other computers, in virtual machines) and to make heavily use of thumb keys. + +The main goal of the default layer is to provide a complete symmetric layout with each modifier equally placed for both hands (mirror, of course). + +It also features a layer for additional keys like F-keys (F1 – F12), some mouse keys and (hopefully in the near future) some useful Unicode symbols. + + +## Layers + +0. Default layer for Neo2 +1. Poor man’s QWERTZ +2. Poor man’s Neo +3. F-keys, mouse keys und Unicode symbols +4. Neo’s software layers 4 rebuilt in hardware + + +## Build + +1. Enable Unicode in Makefile + + ``` + UNICODE_ENABLE = yes + ``` +2. Build as usual + + ``` + make clean + make KEYMAP=coderkun_neo2 + ``` diff --git a/keyboard/ergodox_ez/keymaps/colemak/colemak.hex b/keyboard/ergodox_ez/keymaps/colemak/colemak.hex new file mode 100644 index 0000000000..0f5bba3b5f --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/colemak/colemak.hex @@ -0,0 +1,1121 @@ +:100000000C9465020C94AC020C94AC020C94AC02FF +:100010000C94AC020C94AC020C94AC020C94AC02A8 +:100020000C94AC020C94AC020C94C30B0C94950C85 +:100030000C94AC020C94AC020C94AC020C94AC0288 +:100040000C94AC020C9409210C94AC020C94AC02FC +:100050000C94AC020C949B1A0C94AC020C94AC0261 +:100060000C94AC020C94AC020C94AC020C94AC0258 +:100070000C94AC020C94AC020C94AC020C94AC0248 +:100080000C94AC020C94AC020C94AC020C94AC0238 +:100090000C94AC020C94AC020C94AC020C94AC0228 +:1000A0000C94AC020C94AC020C94AC02020D240D26 +:1000B000170E240D170E690D8C0D170EE10DF40DA2 +:1000C000DE10DE100D110D1150118A1197139713C8 +:1000D000A3119713981298126B1397139713821307 +:1000E0000000F0A12E004C002A00E1003581000044 +:1000F0001E00140004001D7134004D001F001A0082 +:1001000015001B00E1042A0020000900160006006B +:1001100050002C0021001300170019004F004A0066 +:1001200022000A0007000500000065745000015419 +:100130000000007F0000E3004F0001540000007742 +:100140000000E20023000D000B000E0000002971EA +:1001500024000F001100100052004B002500180071 +:10016000080036005100280026001C000C00370053 +:100170002F002B00270033001282387130004E0010 +:100180002D0031003400E500C10000000100010035 +:1001900001000100010000003A001E0220022202BC +:1001A000010001003B001F022102230201000100A7 +:1001B0003C002F0226022F00010001003D0030020A +:1001C00027023000010001003E00310235003502F7 +:1001D000000001000100010000000100000001001A +:1001E0000100010000000100000001003F0052007A +:1001F00051002402000001004000240021001E00E4 +:10020000010001004100250022001F00370001000D +:1002100042002600230020002700010043002502A1 +:100220002E0231002E0001004400450001000100B3 +:1002300001000000010001000100010001000000B8 +:1002400001000100010001000100010001000100A6 +:10025000F2000100010001000100F000F1000100C6 +:10026000F400010001000100F3000100F5000100AD +:100270000100010001000100000001000100010077 +:100280000000010000000100010001000000010069 +:100290000000010001000100010001000000010058 +:1002A0000100010001000100A9000100010001009E +:1002B0000100AC00AA00B600010001000100AB0083 +:1002C000A80001000100010001000100010001007F +:1002D00001000100AE00010001000000160345000E +:1002E000720067006F0044006F0078002000450036 +:1002F0005A00000016034500720067006F004400BA +:100300006F007800200045005A0000000403090433 +:1003100009026D00040100A0FA09040000010301B4 +:100320000100092111010001223F00070581030896 +:10033000000A090401000103010200092111010062 +:1003400001224D000705820308000A09040200018A +:100350000300000009211101000122360007058376 +:100360000308000A09040300010300000009211129 +:100370000100012239000705840310000112011059 +:100380000100000008EDFE07130100010200010555 +:10039000010906A101050719E029E71500250195C6 +:1003A0000875018102050819012905950575019156 +:1003B000029501750391010507190029771500259C +:1003C00001957875018102C005010980A1018502AE +:1003D00016010026B7001A01002AB7007510950112 +:1003E0008100C0050C0901A1018503160100269CAE +:1003F000021A01002A9C02751095018100C00501B6 +:100400000902A1010901A100050919012905150029 +:10041000250195057501810295017503810105018D +:10042000093009311581257F950275088106093843 +:100430001581257F950175088106050C0A3802157E +:1004400081257F950175088106C0C005010906A1B7 +:1004500001050719E029E7150025019508750181B7 +:100460000295017508810105081901290595057591 +:100470000191029501750391010507190029FF15E6 +:100480000025FF950675088100C0000000000000EF +:100490000000000000010204060A0F17202C3A4A4F +:1004A0005D71879DB3C7DAE9F5FCFFFCF5E9DAC7B2 +:1004B000B39D87715D4A3A2C20170F0A060402018A +:1004C0000000000000000000000011241FBECFEF5C +:1004D000DAE0DEBFCDBF04B603FE27C08091ED0198 +:1004E0009091EE01A091EF01B091F0018730904B17 +:1004F000A740B04BD1F41092ED011092EE01109292 +:10050000EF011092F00114BE84B7877F84BF0FB64D +:10051000F894A895809160008861809360001092A3 +:1005200060000FBEE0E0FFE3099511E0A0E0B1E05C +:10053000E4EBF5E402C005900D92A433B107D9F7BE +:1005400021E0A4E3B1E001C01D92AD3EB207E1F7A6 +:100550000E940A090C94D8220C94000061110BC06F +:10056000FC018281882321F085EE0E94780F03C070 +:1005700085EE0E94401080E090E00895089560911B +:10058000B1017091B2018091B3019091B4010E94C8 +:10059000C81956985E9825982D9826982E982798D1 +:1005A0002F98813019F0823021F00895259A2D9AE4 +:1005B0000895269A2E9A08950C94BF0256985E9834 +:1005C00025982D9826982E9827982F988FEF90E0B1 +:1005D000909389008093880090938B0080938A0089 +:1005E00090938D0080938C00259A2D9A2FEF80E7B1 +:1005F00092E0215080409040E1F700C00000269A30 +:100600002E9A2FEF80E792E0215080409040E1F752 +:1006100000C00000279A2F9A2FEF80E792E0215028 +:1006200080409040E1F700C0000025982D982FEF02 +:1006300080E792E0215080409040E1F700C0000048 +:1006400026982E982FEF80E792E02150804090402E +:10065000E1F700C0000027982F9856985E982598DB +:100660002D9826982E9827982F98089589EA809398 +:10067000800089E08093810024982C983F988AB16B +:100680008F748AB96E98479A8BB1806B8BB9769AC2 +:100690000E94DE020C94BE0280E2809300018091F1 +:1006A000340181110EC00E949B0381E080933401CC +:1006B0002FEF83ED90E3215080409040E1F700C0A0 +:1006C000000080E40E94A1038093000181112EC0EC +:1006D0000E94CB0380930001811128C00E94CB03AC +:1006E00080930001811122C08FE30E94CB0380938D +:1006F000000181111BC00E94C30380E40E94A1037A +:1007000080930001811112C08CE00E94CB03809382 +:10071000000181110BC00E94CB0380930001811165 +:1007200005C08FE30E94CB03809300010E94C303A6 +:100730008091000108951092B9008AE08093B8007A +:10074000089594EA9093BC009091BC0097FFFCCF71 +:100750009091B900987F983021F0903111F081E0AC +:1007600008958093BB0084E88093BC008091BC0016 +:1007700087FFFCCF8091B900887F883111F08034E9 +:1007800071F780E0089584E98093BC008091BC00FB +:1007900084FDFCCF08958093BB0084E88093BC0067 +:1007A0008091BC0087FFFCCF9091B900987F81E0D9 +:1007B000983209F480E0089584E88093BC00809129 +:1007C000BC0087FFFCCF8091BB00089580910001A1 +:1007D000811115C080E40E94A10380930001811162 +:1007E0000CC082E10E94CB0380930001811105C0FF +:1007F0008FEF0E94CB03809300010E94C30384B15A +:10080000807F84B985B1807F85B98AB1837F8AB9B9 +:100810008BB1837F8BB93E98469808950E944C0314 +:10082000809300010E94E60380B38C7080BB81B38B +:10083000836F81BBE4E4F1E0A6E3B1E011921D9285 +:1008400081E0E235F807D1F70C9436039F92AF921E +:10085000BF92CF92DF92EF92FF920F931F93CF93AD +:10086000DF9380910001882379F0809135018F5FBB +:1008700080933501811108C00E944C0380930001D0 +:10088000811102C00E94DE0286E3E82E81E0F82E8C +:100890008701C0E0D0E0BB24B39492E0A92ECC2421 +:1008A000C394D12CC730D10500F58091000181118E +:1008B00064C080E40E94A10380930001811112C0F2 +:1008C00082E10E94CB038093000181110BC0C6011D +:1008D0000C2E01C0880F0A94EAF780950E94CB0382 +:1008E000809300010E94C30348C0CA30A1F028F4DD +:1008F000C83059F0C93061F005C0CC3089F070F0D3 +:10090000CD3089F0209A289810C0219A29980DC0DE +:10091000229A2A980AC0239A2B9807C0529A01C09B +:10092000539A5B9802C03E9A4698E0EAEA95F1F73E +:100930008FB181708B25799902C032E001C030E01F +:10094000832B7C9902C034E001C030E0832B7D9979 +:1009500002C028E001C020E0822B7E9902C090E115 +:1009600001C090E0892B9FB19095991F9927991FFD +:100970009295990F907E892B0FC080910001811173 +:100980004AC080E40E94A10380930001882381F182 +:10099000912C0E94C303892DD8019C91981719F0BE +:1009A0008C93A09201010E94E60321960F5F1F4FD6 +:1009B000CE30D10509F076CF80910101882369F10D +:1009C000815080930101882339F0EFE9FFE03197EE +:1009D000F1F700C0000021C0E4E4F1E0D7018D91FF +:1009E0007D018193B4E4EB16B1E0FB06B9F715C0C5 +:1009F00083E10E94CB03809300018111C9CF81E480 +:100A00000E94A103809300018111C2CF0E94DC03E8 +:100A1000982E9094BECF80E0BFCF0E94DC0281E090 +:100A2000DF91CF911F910F91FF90EF90DF90CF90CA +:100A3000BF90AF909F900895E82FF0E0EC5BFE4FE1 +:100A40008081089508958B3B910580F4883A910543 +:100A500048F5853A9105D8F48430910508F0B2C084 +:100A6000019709F06EC081E090E00895803E910505 +:100A700008F467C0883E910508F4A4C09C01205F7B +:100A800031092031310508F05CC090650895853A40 +:100A9000910509F459C0863A910509F058C082E8D9 +:100AA00090E40895883A910509F454C0893A910573 +:100AB00009F453C08A3A910509F452C08B3A910562 +:100AC00009F451C08C3A910509F450C08D3A910552 +:100AD00009F44FC0803B910509F44EC08E3A910550 +:100AE00009F44DC08F3A910509F44CC0813B910542 +:100AF00009F44BC0823B910509F44AC0833B910540 +:100B000009F449C0843B910509F448C0853B91052F +:100B100009F447C0863B910509F446C0873B91051F +:100B200009F445C0883B910509F444C0893B91050F +:100B300009F443C08A3B910509F442C080E094E483 +:100B4000089580E090E0089581E890E4089583E8B6 +:100B500090E4089582EE94E4089589EE94E4089573 +:100B60008AEE94E4089585EB94E4089586EB94E48A +:100B7000089587EB94E408958CEC94E408958DEC4B +:100B800094E4089583E895E408958AE895E4089547 +:100B900082E995E4089584E995E4089581E296E474 +:100BA000089583E296E4089584E296E4089585E248 +:100BB00096E4089586E296E4089587E296E408951F +:100BC0008AE296E40895089524E5829FC0011124E5 +:100BD000FC0126E0729FE00DF11D1124E60FF11DCE +:100BE000EE0FFF1FEC51FF4F859194910895880FF0 +:100BF000991FFC01E05AF040859194910895880F67 +:100C0000991FFC01E052FF4F85919491089524E5CE +:100C1000829FC0011124FC0146E0749FE00DF11D8C +:100C20001124E60FF11DEE0FFF1FEC51FF4F8591D0 +:100C300094919C013A9521154FE1340708F425C1A0 +:100C40003F512115304120F49F700E94FF05089507 +:100C50009C0130532115304118F49927906C089568 +:100C6000811520E5920769F40E94B9134FEF84E3E0 +:100C70009CE0415080409040E1F700C000000C949F +:100C8000C01A813020E5920731F48091CC01816057 +:100C90008093CC0108959C0130552115304108F016 +:100CA0005CC0292F33272F70332721303105E9F419 +:100CB000AC0164E0440F551F6A95E1F74427537077 +:100CC000BC016370772702C0220F331F6A95E2F7D9 +:100CD0003C68242B352B73E0880F991F7A95E1F738 +:100CE00080769927822B932B08952230310529F4A1 +:100CF000982F8827816F906A089523303105A1F4D9 +:100D0000AC0133E0440F551F3A95E1F7407E577030 +:100D10008370992721E030E002C0220F331F8A95AB +:100D2000E2F7C9019C6816C02430310531F5AC01E9 +:100D300023E0440F551F2A95E1F7407E57708370DA +:100D4000992721E030E002C0220F331F8A95E2F795 +:100D5000C9019A68842B952B08959C013057211561 +:100D6000304118F49F70906208959C01305821150D +:100D7000304118F49F70906A0895803E9105E0F428 +:100D8000803C910558F58133910509F46FC048F412 +:100D90008932910509F463C08A32910509F46DC066 +:100DA00072C089339105E9F082389105D1F085331D +:100DB000910509F44DC067C0833E910581F138F477 +:100DC000803E9105B9F0823E9105D9F05CC0863E27 +:100DD000910561F1873E9105A1F155C00E94F7058B +:100DE00008952091DE0120FD02C021FF4CC080EE5D +:100DF00090E049C08091DE0180FFF9CF89E390E067 +:100E000042C08091DE0182FF0EC08091DE0184FF2E +:100E100003C080E090E037C083EE90E034C0809162 +:100E2000DE0182FFF2CF82EE90E02DC08091DE01E4 +:100E300083FF0BC08091DE0184FDEBCF87EE90E055 +:100E400022C08091DE0183FFF5CF86EE90E01BC0CB +:100E50008091DE0185FF07C089E290E014C0809197 +:100E6000DE0185FFF9CF85E390E00DC08091DE01C2 +:100E700086FF07C08AE290E006C08091DE0186FF0F +:100E8000F9CF81E390E00E942305089508958091B1 +:100E900062010895CF93DF9300D01F92CDB7DEB7E4 +:100EA0009C018091E401843019F593E099833B83A0 +:100EB0002A839093E9008FEF9091E800815095FD8F +:100EC00006C095ED9A95F1F700008111F5CF80915C +:100ED000E80085FF0DC040E050E063E070E0CE0127 +:100EE00001960E94B7098091E8008E778093E80010 +:100EF0000F900F900F90DF91CF910895CF93DF93D4 +:100F000000D01F92CDB7DEB72091E401243021F547 +:100F100022E029839B838A8383E08093E9008FEF1B +:100F20009091E800815095FD06C095ED9A95F1F7F6 +:100F300000008111F5CF8091E80085FF0DC040E0F1 +:100F400050E063E070E0CE0101960E94B709809105 +:100F5000E8008E778093E8000F900F900F90DF915C +:100F6000CF9108959C018091E4018430F9F482E0EE +:100F70008093E9009FEF8091E800915085FD06C0C5 +:100F800085ED8A95F1F700009111F5CF8091E80089 +:100F900085FF0CC040E050E065E070E0C9010E94B0 +:100FA000B7098091E8008E778093E8000895CF9389 +:100FB000DF93EC018091E401843009F046C0909108 +:100FC0000C019923D9F090910D019923B9F08093E8 +:100FD000E9008FEF9091E800815095FD06C095E102 +:100FE0009A95F1F700008111F5CF8091E80085FF17 +:100FF0002CC040E050E060E170E017C081E08093D9 +:10100000E9008FEF9091E800815095FD06C095EDC5 +:101010009A95F1F700008111F5CF8091E80085FFE6 +:1010200014C040E050E068E070E0CE010E94B709D3 +:101030008091E8008E778093E80080E1FE01A2E5D0 +:10104000B1E001900D928A95E1F7DF91CF9108957B +:101050008091E301811109C00E94480B0E94A50BF9 +:101060008091E20084608093E20008951092E30191 +:10107000089508950C94F6200E94561A0E94FC20B0 +:101080000E94500E0C94460742E061EC81E00E9401 +:10109000C10A42E061EC82E00E94C10A42E061ECD8 +:1010A00083E00E94C10A42E161EC84E00C94C10A31 +:1010B0008091E601833009F455C030F4813071F03D +:1010C000823009F48EC008958A3009F47AC08B30DA +:1010D00009F460C0893009F09CC020C08091E5010E +:1010E000813A09F096C08091E800877F8093E800FC +:1010F0008091E9019091EA01892B21F460E182E578 +:1011000091E003C060E080E090E070E00E94020A9D +:101110008091E8008B778093E80008958091E50145 +:10112000813209F076C08091E9019091EA0100973F +:1011300019F0039709F06DC08091E800877F8093D4 +:10114000E8008091E80082FD05C08091E4018111F2 +:10115000F8CF5FC08091F100809362018091E80038 +:101160008B7753C08091E501813A09F052C080919C +:10117000E9019091EA01892B09F04BC08091E800C8 +:10118000877F8093E8008091E80080FFFCCF80910A +:101190000C0136C08091E5018132D9F58091E901D9 +:1011A0009091EA01892BA9F58091E800877F8093CF +:1011B000E8000E94F60A8091E70180930C010C94EC +:1011C000B9138091E501813221F58091E800877F94 +:1011D0008093E8000E94F60A8091E8018093630101 +:1011E00008958091E501813AA1F48091E800877F1C +:1011F0008093E8008091E80080FFFCCF809163013C +:101200008093F1008091E8008E778093E8000C9441 +:10121000F60A089584B7877F84BF0FB6F894A8951F +:1012200080916000886180936000109260000FBE22 +:1012300090E080E80FB6F89480936100909361008D +:101240000FBE0E949F0E0E94480B0E94A50B80912A +:10125000E20084608093E20078940E94300E0E9445 +:10126000A10E82E091E00E944B0E0E94E42080914A +:10127000E401853069F40E94181A8091E201882304 +:10128000B1F30E94421A882391F30E94A109EFCF83 +:101290000E94A70EECCF292F332723303105C9F048 +:1012A00060F42130310581F02230310509F041C070 +:1012B0008DE690E020E133E040C021323105E1F0DD +:1012C0002232310531F135C082E190E02DE733E083 +:1012D00034C099278130910549F028F0029749F5EB +:1012E000ECEDF2E005C0ECE0F3E002C0E4EFF2E088 +:1012F000849190E09F0121C06430D8F4E62FF0E0A3 +:10130000EE0FFF1FEE5DFE4F2081318189E090E0FE +:1013100014C0643070F470E0FB01EE0FFF1FE65E56 +:10132000FE4F20813181FB01EA5EFE4F808190E01B +:1013300004C080E090E020E030E0FA0131832083B7 +:10134000089580E189BD82E189BD09B400FEFDCF29 +:101350008091D8008F7D8093D8008091E0008260DA +:101360008093E0008091E00081FDFCCF0895CF9252 +:10137000DF92EF92FF920F931F93CF93DF93EC01D5 +:101380008B016A010E94150B811133C0C114D10475 +:1013900039F0F60180819181081B190BC80FD91F04 +:1013A000E12CF12C0115110519F18091E80085FD62 +:1013B00016C08091E8008E778093E800C114D104B4 +:1013C00049F0F60180819181E80EF91EF182E082F8 +:1013D00085E00FC00E94150B882321F30AC0899174 +:1013E0008093F10001501109FFEFEF1AFF0ADACFE5 +:1013F00080E0DF91CF911F910F91FF90EF90DF90F0 +:10140000CF9008952091EB013091EC01261737071A +:1014100048F06115710539F42091E8002E7720938A +:10142000E80001C0B901FC0120E06115710579F106 +:101430008091E4018823F1F18530F1F18091E80099 +:1014400083FD3CC08091E80082FD2EC08091E800C1 +:1014500080FFEBCF2091F3008091F20090E0922B7F +:101460006115710551F08830910538F42191209370 +:10147000F100615071090196F3CF21E0089709F05E +:1014800020E08091E8008E778093E800CECF211194 +:10149000CFCF0AC08091E401882361F0853061F0EC +:1014A0008091E80083FD0AC08091E80082FFF2CFBE +:1014B00080E0089582E0089583E0089581E0089532 +:1014C0002091EB013091EC012617370748F06115A8 +:1014D000710539F42091E8002E772093E80001C0CF +:1014E000B901FC0120E06115710591F18091E401E1 +:1014F000882309F440C0853009F43FC08091E8009A +:1015000083FD3DC08091E80082FD2FC08091E800FE +:1015100080FFE9CF2091F3008091F20090E0922BC0 +:101520006115710559F08830910540F4249120939C +:10153000F1003196615071090196F2CF21E00897D0 +:1015400009F020E08091E8008E778093E800CBCF0F +:101550002111CCCF0AC08091E401882361F085304D +:1015600061F08091E80083FD0AC08091E80082FF6D +:10157000F2CF80E0089582E0089583E0089581E04D +:101580000895982F973068F59093E900981739F0EF +:101590007091EC002091ED005091F00003C0242FD9 +:1015A000762F50E021FD02C09F5FECCF3091EB0021 +:1015B0003E7F3093EB003091ED003D7F3093ED00A6 +:1015C0003091EB0031603093EB007093EC0020938E +:1015D000ED005093F0002091EE0027FDE5CF80E074 +:1015E00008958F708093E90081E008958091E5016E +:1015F00087FF11C08091E80082FD05C08091E40161 +:101600008111F8CF11C08091E8008B770BC08091D9 +:10161000E401882349F08091E80080FFF8CF8091B1 +:10162000E8008E778093E80008952091E4003091DF +:10163000E50095E64091EC00842F817040FF23C0C7 +:101640008091E80080FD1DC08091E401882399F01D +:10165000853099F08091EB0085FD11C04091E40048 +:101660005091E5002417350729F3915011F09A01A4 +:10167000E1CF84E0089582E0089583E0089581E059 +:10168000089580E008954091E80042FFDDCF08957D +:101690000E94B60B0E94BE0BE0EEF0E080818160FC +:1016A0008083E8EDF0E080818F77808319BCA7ED1F +:1016B000B0E08C918E7F8C9380818F7E808310929E +:1016C000E30108950F931F93CF93DF930E94B60B0E +:1016D0000E94BE0BC8EDD0E088818F778883888117 +:1016E0008068888388818F7D888319BC1092E4018B +:1016F0001092E0011092E2011092E10100EE10E080 +:10170000F80180818B7F808388818160888342E0BB +:1017100060E080E00E94C10AE1EEF0E080818E7F0F +:101720008083E2EEF0E08081816080838081886048 +:101730008083F80180818E7F8083888180618883A7 +:10174000DF91CF911F910F910895E8EDF0E0808136 +:101750008F7E8083E7EDF0E080818160808384E08C +:1017600082BF81E08093E3010C94620BE8EDF0E02E +:1017700080818E7F80831092E20008951092DA00BB +:101780001092E10008951F920F920FB60F9211244C +:101790002F933F934F935F936F937F938F939F9379 +:1017A000AF93BF93EF93FF938091E10082FF0BC053 +:1017B0008091E20082FF07C08091E1008B7F8093DF +:1017C000E1000E942F0E8091DA0080FF1FC08091FF +:1017D000D80080FF1BC08091DA008E7F8093DA00F2 +:1017E0008091D90080FF0DC080E189BD82E189BD73 +:1017F00009B400FEFDCF81E08093E4010E94280837 +:1018000005C019BC1092E4010E9436088091E100E5 +:1018100080FF19C08091E20080FF15C08091E20036 +:101820008E7F8093E2008091E20080618093E200ED +:101830008091D80080628093D80019BC85E08093A5 +:10184000E4010E943A088091E10084FF30C0809159 +:10185000E20084FF2CC080E189BD82E189BD09B42A +:1018600000FEFDCF8091D8008F7D8093D8008091BD +:10187000E1008F7E8093E1008091E2008F7E809373 +:10188000E2008091E20081608093E2008091E001BB +:10189000882311F084E007C08091E30087FD02C037 +:1018A00081E001C083E08093E4010E943C088091C4 +:1018B000E10083FF29C08091E20083FF25C0809171 +:1018C000E100877F8093E10082E08093E401109241 +:1018D000E0018091E1008E7F8093E1008091E20041 +:1018E0008E7F8093E2008091E20080618093E2002D +:1018F00042E060E080E00E94C10A8091F0008860D0 +:101900008093F0000E943908FF91EF91BF91AF9151 +:101910009F918F917F916F915F914F913F912F9107 +:101920000F900FBE0F901F9018951F920F920FB639 +:101930000F9211242F933F934F935F936F937F9355 +:101940008F939F93AF93BF93CF93DF93EF93FF93C7 +:10195000C091E900CF708091EC00D82FD17080FD4C +:10196000D0E81092E9008091F000877F8093F0002A +:1019700078940E94D90C1092E9008091F000886060 +:101980008093F000CD2BCF70C093E900FF91EF91D1 +:10199000DF91CF91BF91AF919F918F917F916F9187 +:1019A0005F914F913F912F910F900FBE0F901F901D +:1019B00018951F93CF93DF93CDB7DEB7AA970FB6D5 +:1019C000F894DEBF0FBECDBFE5EEF1E08091F100EF +:1019D000819321E0ED3EF207C9F70E9458088091FB +:1019E000E80083FF24C18091E5019091E601492F31 +:1019F00050E04A30510508F01AC1FA01EA5AFF4F87 +:101A00000C948D22803881F0823809F010C18091C9 +:101A1000E9018F708093E9008091EB0085FB8827B6 +:101A200080F91092E90006C08091E1019091E201F5 +:101A3000911182609091E800977F9093E8008093E5 +:101A4000F1001092F100C8C0282F2D7F09F0EFC0DF +:101A5000882319F0823061F0EAC08091E70181307B +:101A600009F0E5C0933009F080E08093E2012BC0DB +:101A70008091E701811127C08091E9018F7009F4FD +:101A8000D6C08093E9002091EB0020FF1CC093306A +:101A900021F48091EB00806214C09091EB00906182 +:101AA0009093EB0021E030E0A90102C0440F551FE4 +:101AB0008A95E2F74093EA001092EA008091EB00E9 +:101AC00088608093EB001092E9008091E800877FA6 +:101AD00086C08111ACC01091E7011F778091E300AF +:101AE0008078812B8093E3008091E800877F80934A +:101AF000E8000E94F60A8091E80080FFFCCF809108 +:101B0000E30080688093E300111102C082E001C00D +:101B100083E08093E4018BC08058823008F087C056 +:101B20008091E7019091E8018C3D53E0950779F5AC +:101B300083E08A838AE289834FB7F894DE011396A3 +:101B400020E03EE051E2E32FF0E050935700E491B3 +:101B500020FF03C0E295EF703F5FEF708E2F90E0A3 +:101B6000EA3010F0C79601C0C0968D939D932F5F09 +:101B7000243149F74FBF8091E800877F8093E800C8 +:101B80006AE270E0CE0101960E94020A14C0AE0122 +:101B90004F5F5F4F6091E9010E944B09BC01892BA7 +:101BA00009F445C09091E800977F9093E8008981FF +:101BB0009A810E94600A8091E8008B778093E80008 +:101BC00036C08038A1F58091E800877F8093E800D7 +:101BD0008091E0018093F1008091E8008E778093FE +:101BE000E8000E94F60A23C0811121C08091E7011C +:101BF0009091E80199270297D4F48091E800877FBB +:101C00008093E8008091E7018093E0010E94F60A4A +:101C10008091E001811106C08091E30087FD02C040 +:101C200081E001C084E08093E4010E944408809137 +:101C3000E80083FF0AC08091E800877F8093E80076 +:101C40008091EB0080628093EB00AA960FB6F89427 +:101C5000DEBF0FBECDBFDF91CF911F9108950895D4 +:101C6000CF938091E4018823A1F0C091E900CF7067 +:101C70009091EC00892F817090FD80E8C82B109224 +:101C8000E9008091E80083FD0E94D90CCF70C093D9 +:101C9000E900CF91089590936901809368010895B8 +:101CA000E0916801F0916901309721F00190F08195 +:101CB000E02D099480E00895E0916801F0916901B8 +:101CC000309721F00280F381E02D09940895E0918E +:101CD0006801F0916901309721F00480F581E02DD1 +:101CE00009940895209166013091670128173907FA +:101CF00071F09093670180936601E0916801F09123 +:101D00006901309721F00680F781E02D099408954C +:101D100020916401309165012817390771F0909383 +:101D2000650180936401E0916801F0916901309749 +:101D300021F00084F185E02D0994089508950C9414 +:101D40009E0E0E945C1A0E940E040C94221BCF92DD +:101D5000DF92EF92FF920F931F93CF93DF93CDB754 +:101D6000DEB72B970FB6F894DEBF0FBECDBF0E9433 +:101D700026048BE6C82E81E0D82E00E010E0E02E8D +:101D8000802F0E941C05F60141916F01F82EF42668 +:101D9000B1F40F5F1F4F0E30110589F78FEF898364 +:101DA0008A831B820E94651A8160782F9D838C83B1 +:101DB00049815A816B818D810E944A0F40C0909168 +:101DC000CC0191FF04C08B870E9422058B8520E007 +:101DD00030E04F2D50E0922FBA01022E02C07595CF +:101DE00067950A94E2F760FF24C02E83EF8221E01A +:101DF00030E0690102C0CC0CDD1C9A95E2F790E05E +:101E00008C219D21892B09F420E028870E94651AE6 +:101E10008160782F9A8789874E815F8168858A855E +:101E20000E944A0FF801E559FE4F8081C826C08202 +:101E300006C02F5F3F4F2630310569F6AACF0E94BA +:101E4000091E0E94500E90916A018917A1F00E940C +:101E5000500E80936A012B960FB6F894DEBF0FBE2A +:101E6000CDBFDF91CF911F910F91FF90EF90DF9049 +:101E7000CF900C9446072B960FB6F894DEBF0FBE9A +:101E8000CDBFDF91CF911F910F91FF90EF90DF9029 +:101E9000CF900895CF93DF93CDB7DEB72B970FB6D2 +:101EA000F894DEBF0FBECDBF4F83588769877A870E +:101EB0008B87DE01119686E0FD0111928A95E9F784 +:101EC00085E0FE01379601900D928A95E1F74981F0 +:101ED0005A816B817C818D819E810E944D162B964B +:101EE0000FB6F894DEBF0FBECDBFDF91CF9108953E +:101EF000CF93C82F882309F4C1C0823859F40E94B7 +:101F0000500E81FDBBC089E30E94EA180E94A2190D +:101F100089E30CC0833879F40E94500E80FDAEC076 +:101F200083E50E94EA180E94A21983E50E942919FC +:101F3000CF910C94A219843859F40E94500E82FD5E +:101F40009DC087E40E94EA180E94A21987E4EECFA0 +:101F50008CEF8C0F813A48F48C2F0E94492081111C +:101F60008DC08C2F0E94EA18E3CF80E28C0F88305E +:101F700048F4C77081E001C0880FCA95EAF70E9453 +:101F80006B19D6CF8BE58C0F833078F4C53A29F0E6 +:101F9000C63A31F083E890E005C081E890E002C0E5 +:101FA00082E890E0CF910C94720E88E58C0F83311B +:101FB00008F064C0C83A39F1C93A41F1CA3A49F166 +:101FC000CB3A51F1CC3A59F1CD3A61F1C03B69F1CC +:101FD000CE3A71F1CF3A79F1C13B81F1C23B89F13F +:101FE000C33B91F1C43B99F1C53BA1F1C63BA9F1BB +:101FF000C73BB1F1C83BB9F1C93BC1F1CA3BC9F11B +:1020000080E090E038C082EE90E035C089EE90E04C +:1020100032C08AEE90E02FC085EB90E02CC086EBBA +:1020200090E029C087EB90E026C08CEC90E023C0C4 +:102030008DEC90E020C083E891E01DC08AE891E03B +:102040001AC082E991E017C084E991E014C081E2EE +:1020500092E011C083E292E00EC084E292E00BC0F5 +:1020600085E292E008C086E292E005C087E292E055 +:1020700002C08AE292E0CF910C94880ECF9108952D +:10208000882309F44BC0823859F40E94500E81FF16 +:1020900045C089E30E94EA180E94A21989E30CC096 +:1020A000833871F40E94500E80FF38C083E50E948F +:1020B000EA180E94A21983E50E9429190C94A2191A +:1020C000843859F40E94500E82FF28C087E40E9491 +:1020D000EA180E94A21987E4EFCF9CEF980F913A7B +:1020E00058F390E2980F983050F4877091E001C057 +:1020F000990F8A95EAF7892F0E947119DFCF9BE526 +:10210000980F933020F480E090E00C94720E885A7F +:10211000833120F480E090E00C94880E08958823A9 +:1021200021F00E946B190C94A2190895882321F0C4 +:102130000E9471190C94A2190895BF92CF92DF9258 +:10214000EF92FF920F931F93CF93DF9300D000D0B5 +:1021500000D0CDB7DEB77C0185E0F701DE01119636 +:1021600001900D928A95E1F7F70183819481892B83 +:1021700009F4DDC2908181818F3F19F49F3F09F4FA +:10218000D6C2F7010281258122952F7099838A8317 +:1021900089819A812E830E94A918182FB92E0E9436 +:1021A000A8180E946F17EB2DE295EF704E2F50E0AC +:1021B000FA01E05AFF4F2E810C948D228B2D807FE7 +:1021C0009B2D9F70F92E882319F0F29480EFF8224E +:1021D000002349F0FF2009F457C28F2D0E947B197C +:1021E0000E94A21951C2812F0E944010FF2009F4C1 +:1021F0009EC28F2D0E94811926960FB6F894DEBFDD +:102200000FBECDBFDF91CF911F910F91FF90EF9047 +:10221000DF90CF90BF900C94A2193B2D307F8B2D77 +:102220008F70303211F08295807F112319F01130B8 +:1022300021F12CC00023B9F0222309F490C12130F0 +:1022400009F08DC126960FB6F894DEBF0FBECDBF44 +:10225000DF91CF911F910F91FF90EF90DF90CF9082 +:10226000BF900C948B19222319F0213009F45FC21E +:102270008E830E948E198E8186C1002321F0223028 +:1022800008F055C26CC1211152C27DC1002321F05A +:10229000222309F464C1F8C1222309F474C109C2DC +:1022A0008B2D86958695837019F08130D1F03FC2D1 +:1022B000002321F0812F9B2D937002C080E090E0DD +:1022C00026960FB6F894DEBF0FBECDBFDF91CF913B +:1022D0001F910F91FF90EF90DF90CF90BF900C94E3 +:1022E000720E002321F0812F9B2D937002C080E09D +:1022F00090E026960FB6F894DEBF0FBECDBFDF91FB +:10230000CF911F910F91FF90EF90DF90CF90BF90F2 +:102310000C94880E812F002319F00E94111D02C019 +:102320000E94791D26960FB6F894DEBF0FBECDBF72 +:10233000DF91CF911F910F91FF90EF90DF90CF90A1 +:10234000BF900C94FE1D8B2D837009F075C0011198 +:10235000EEC1812F829586958770880F880F912F07 +:102360009F70C92ED12CE12CF12C082E04C0CC0C6E +:10237000DD1CEE1CFF1C0A94D2F714FF12C00FE004 +:1023800010E020E030E004C0000F111F221F331FB7 +:102390008A95D2F7C901B80160957095809590959E +:1023A00003C060E070E0CB014B2D4695469543702D +:1023B0004230C1F060F56C297D298E299F2941307A +:1023C00051F126960FB6F894DEBF0FBECDBFDF9158 +:1023D000CF911F910F91FF90EF90DF90CF90BF9022 +:1023E0000C9496176C297D298E299F2926960FB665 +:1023F000F894DEBF0FBECDBFDF91CF911F910F913B +:10240000FF90EF90DF90CF90BF900C94B2170E9496 +:102410009617C701B60126960FB6F894DEBF0FBE19 +:10242000CDBFDF91CF911F910F91FF90EF90DF9083 +:10243000CF90BF900C947A17002319F08B2D8170E8 +:1024400001C08695882309F472C1812F82958695F3 +:102450008770880F880F912F9F70C92ED12CE12C87 +:10246000F12C082E04C0CC0CDD1CEE1CFF1C0A94C1 +:10247000D2F714FF12C00FE010E020E030E004C0FB +:10248000000F111F221F331F8A95D2F7C901B8010F +:10249000609570958095909503C060E070E0CB01E9 +:1024A0004B2D4695469543704230C1F060F56C293E +:1024B0007D298E299F29413051F126960FB6F89437 +:1024C000DEBF0FBECDBFDF91CF911F910F91FF9067 +:1024D000EF90DF90CF90BF900C9470186C297D29FD +:1024E0008E299F2926960FB6F894DEBF0FBECDBF6A +:1024F000DF91CF911F910F91FF90EF90DF90CF90E0 +:10250000BF900C948C180E947018C701B6012696D3 +:102510000FB6F894DEBF0FBECDBFDF91CF911F91F4 +:102520000F91FF90EF90DF90CF90BF900C945418D4 +:10253000103FD1F118F4103E50F4A1C0123F09F43D +:1025400063C008F44CC0133F09F473C098C01F70F7 +:102550008B2D8F710023A1F00E94ED17812F2696FD +:102560000FB6F894DEBF0FBECDBFDF91CF911F91A4 +:102570000F91FF90EF90DF90CF90BF900C948F1051 +:102580000E940E18812F26960FB6F894DEBF0FBE5C +:10259000CDBFDF91CF911F910F91FF90EF90DF9012 +:1025A000CF90BF900C9496100023A9F02111BFC0CA +:1025B0008B2D8F7126960FB6F894DEBF0FBECDBF60 +:1025C000DF91CF911F910F91FF90EF90DF90CF900F +:1025D000BF900C943318223008F0A9C0E9CF002333 +:1025E000A9F08B2D8F7126960FB6F894DEBF0FBE23 +:1025F000CDBFDF91CF911F910F91FF90EF90DF90B2 +:10260000CF90BF900C94ED17002359F38B2D8F7151 +:1026100026960FB6F894DEBF0FBECDBFDF91CF91E7 +:102620001F910F91FF90EF90DF90CF90BF900C948F +:102630000E18002399F08B2D8F7126960FB6F89403 +:10264000DEBF0FBECDBFDF91CF911F910F91FF90E5 +:10265000EF90DF90CF90BF900C94D81726960FB6CE +:10266000F894DEBF0FBECDBFDF91CF911F910F91C8 +:10267000FF90EF90DF90CF90BF900C94CE17002387 +:10268000A9F0222309F4ADCF812F26960FB6F89436 +:10269000DEBF0FBECDBFDF91CF911F910F91FF9095 +:1026A000EF90DF90CF90BF900C94780F222309F425 +:1026B000ADCF812F26960FB6F894DEBF0FBECDBFEB +:1026C000DF91CF911F910F91FF90EF90DF90CF900E +:1026D000BF900C9440104B2D4F70612FC7010E948A +:1026E000AE0226960FB6F894DEBF0FBECDBFDF91C7 +:1026F000CF911F910F91FF90EF90DF90CF90BF90FF +:102700000C94F2164B2D4F70612FC70126960FB611 +:10271000F894DEBF0FBECDBFDF91CF911F910F9117 +:10272000FF90EF90DF90CF90BF900C94E30526963A +:102730000FB6F894DEBF0FBECDBFDF91CF911F91D2 +:102740000F91FF90EF90DF90CF90BF9008950E947F +:1027500088190E945D190E94A2190E94AE1E0E9453 +:10276000FE1D80E090E00E94720E80E090E00C94EC +:10277000880E0E9478190C94A7130E94A918292F7B +:1027800022952F702C3030F42A3048F42250223019 +:1027900078F405C02C3041F02F3031F009C0803E74 +:1027A00048F0803F29F406C093FB882780F90895FC +:1027B00080E0089581E00895CF93DF9300D000D0AA +:1027C0001F92CDB7DEB70F900F900F900F900F9024 +:1027D000DF91CF910895CF93DF9300D000D000D048 +:1027E000CDB7DEB726960FB6F894DEBF0FBECDBFCD +:1027F000DF91CF9108951F93CF93DF93C09179011B +:1028000016E080917A01C81799F0D0E01C9FF00182 +:102810001D9FF00D1124E558FE4F408151816281CA +:102820007381848195810E94EB132196C770E9CF53 +:10283000DF91CF911F9108954091AB015091AC0170 +:102840006091AD017091AE018091AF019091B001A6 +:102850000C94EB138091B00182958F7009F054C0F5 +:102860008091AD01882309F44FC080917901A09136 +:102870007A014091AE015091AF016091AB0170912E +:10288000AC01B6E08A1709F43FC090E0411551054C +:10289000C1F17F3F11F46F3FA1F1B89FF001B99FE3 +:1028A000F00D1124E558FE4F218127132AC0208105 +:1028B000261327C02281211124C0238134812417AB +:1028C000350710F421503109241B350B283C310504 +:1028D000C0F42091B0012F7020612093B00126E058 +:1028E000289FF001299FF00D1124E058FE4F8081B0 +:1028F0008F70806180838BEA91E00E949D100C9420 +:10290000FB1301968770BECF0895CF92DF92EF92AE +:10291000FF920F931F93CF93DF93CDB7DEB76297EC +:102920000FB6F894DEBF0FBECDBF8C0185E0F80175 +:10293000DE011D9601900D928A95E1F7D8014C9128 +:1029400011965C91119712966C918091AE019091C5 +:10295000AF01009709F475C13091AB017091AC01E2 +:102960007F3F19F43F3F09F46CC1F801C380D48064 +:10297000E090AD01EE2009F4BEC02091B001C81670 +:10298000D90628F0D601A81BB90BCD0104C080954B +:1029900090958C0D9D1DFF24F394883C910578F053 +:1029A000F12C207F09F0C4C07C2DD98AC88A89897E +:1029B0000E94DC138BEA91E00E949D10AFC0822F31 +:1029C000807F09F045C0571313C0431311C0611134 +:1029D0000FC02F7020612093B0010E941C148BEA5D +:1029E00091E00E949D108091B001F80185832EC076 +:1029F000CD2819F15F3F11F44F3FF9F0F62E611128 +:102A00001CC08091790120917A0136E0821709F487 +:102A10005BC090E0389FF001399FF00D1124E5581C +:102A2000FE4F7181571306C07081471303C0728136 +:102A3000711103C001968770E9CFF62E662309F461 +:102A40001CC18091B00181608093B001F12C15C14F +:102A5000571309C0431307C0611105C08091B0012D +:102A6000F8018583C8C04D875E878D859E856A8BFA +:102A70000E94BD136A898823D1F16623C1F1209198 +:102A8000B001822F82958F7090E0029774F0809150 +:102A9000AB019091AC0198878F831986DB86CA863B +:102AA0002C87CE0107960E949D1086E0F801ABEAC4 +:102AB000B1E001900D928A95E1F70E942A140E94DC +:102AC0001C14FF24F394D9C04D875E878D859E85A5 +:102AD0000E94A918292F22952F70223008F0C1C01A +:102AE0009F7009F0BBC0805E883008F4C6C0C80182 +:102AF0000E949D10E6CFC816D90608F453C0F6010F +:102B0000E81BF90BCF01883C910508F450C0F12C6B +:102B10007C2DD98AC88A89890E94DC13EBEAF1E00E +:102B200086E0DF011D928A95E9F70E941C14A5C07A +:102B3000571314C0431312C0611110C08091B0012B +:102B4000F8018583C8010E949D1086E0EBEAF1E060 +:102B5000DF011D928A95E9F7FE2C8FC04D875E87B5 +:102B60008D859E856A8B0E94BD136A89882309F42E +:102B7000BECF662309F4BBCF2091B001822F82958E +:102B80008F7090E002970CF490CF8091AB01909100 +:102B9000AC019A8389831B82DD82CC822E83CE0195 +:102BA000019681CF809590958C0D9D1DACCFF62E12 +:102BB000662309F49CCF571333C0431331C02091CF +:102BC000B00120FD24C0822F82958F70482F50E0E5 +:102BD00041155105E1F0D80115962C9315974F300A +:102BE000510549F08F5F982F9295907F822F8F70BB +:102BF000892B15968C93C8010E949D1086E0F801E0 +:102C0000ABEAB1E001900D928A95E1F78ECF86E0B4 +:102C1000F801ABEAB1E001900D928A95E1F72DC081 +:102C20004D875E878D859E850E94BD1381113DCFA6 +:102C30008091B00181608093B001C8010E949D1015 +:102C40001CC0662309F453CF4D875E878D859E8512 +:102C50000E94BD13882309F44ACF27CF811143CFA7 +:102C60000CC0243008F043CF9F7009F43CCFD8014A +:102C700015969C91907F09F036CF8F2D62960FB6F6 +:102C8000F894DEBF0FBECDBFDF91CF911F910F91A2 +:102C9000FF90EF90DF90CF9008951F93CF93DF9335 +:102CA000CDB7DEB72C970FB6F894DEBF0FBECDBF01 +:102CB0004F83588769877A878B879C87CE010796D1 +:102CC0000E948514882371F08A859B85892B09F4DD +:102CD00041C088858F3F09F065C08F818F3F09F023 +:102CE00061C038C086E0FE013796DE011196019082 +:102CF0000D928A95E1F76A857B856115710551F121 +:102D0000FF81E885EF3F11F4FF3F21F120917A0127 +:102D100030E0C9010196877099274091790150E010 +:102D20008417950709F447C0F983EA837D836C8390 +:102D300096E0929FD001939FB00D1124A558BE4FED +:102D4000FE01319601900D929A95E1F780937A01F8 +:102D50000E94FB1316E08091790190917A01891706 +:102D6000B9F1189FC001112485589E4F0E94851407 +:102D7000882371F1E09179011E9FF0011124E5583B +:102D8000FE4F4081518162817381848195810E94CF +:102D9000EB138091790190E00196877099278093D9 +:102DA0007901D9CF4F81588569857A858B859C8536 +:102DB0000E94EB13CFCF0E94B91310927A011092A8 +:102DC0007901EBEAF1E086E0DF011D928A95E9F7EF +:102DD0002C960FB6F894DEBF0FBECDBFDF91CF911A +:102DE0001F910895EF92FF920F931F93CF93DF935C +:102DF0008C01892B09F46CC0F12CEE24E394E801DA +:102E00002196F8018491843740F4843008F051C051 +:102E1000813081F0823019F15BC0853709F444C0FC +:102E2000A8F19CE7980F903708F052C08F770E9466 +:102E3000401041C00E5F1F4FFE01849190E2980F39 +:102E4000983050F48770FE2D01C0FF0F8A95EAF785 +:102E50008F2F0E947B1914C00E94780F2DC00E5F27 +:102E60001F4FFE01849190E2980F983060F48770B4 +:102E7000FE2D01C0FF0F8A95EAF78F2F0E9481195E +:102E80000E94A21919C00E94401016C00E5F1F4F69 +:102E9000FE01C491CC2381F08FE99FE00197F1F707 +:102EA00000C00000C150F6CF0E5F1F4FFE01F4902E +:102EB00003C00E94780F8E018F2D882309F49FCFC5 +:102EC000EFE9FFE03197F1F700C000008150F5CF46 +:102ED000DF91CF911F910F91FF90EF90089508958A +:102EE0006093B5017093B6018093B7019093B801D8 +:102EF0000C94A7130F931F930091B5011091B60185 +:102F00002091B7013091B801DC01CB01802B912BCE +:102F1000A22BB32B8093B5019093B601A093B70178 +:102F2000B093B8011F910F910C94A7130F931F93A7 +:102F30000091B5011091B6012091B7013091B8010F +:102F4000DC01CB0180239123A223B3238093B5011D +:102F50009093B601A093B701B093B8011F910F9160 +:102F60000C94A7130F931F930091B5011091B60114 +:102F70002091B7013091B801DC01CB018027912766 +:102F8000A227B3278093B5019093B601A093B70110 +:102F9000B093B8011F910F910C94A7131092B10137 +:102FA0001092B2011092B3011092B4010C94A713C5 +:102FB00041E050E060E070E004C0440F551F661F20 +:102FC000771F8A95D2F74093B1015093B201609375 +:102FD000B3017093B4010C94A71341E050E060E09A +:102FE00070E004C0440F551F661F771F8A95D2F703 +:102FF0008091B1019091B201A091B301B091B4015F +:10300000482B592B6A2B7B2B4093B1015093B20173 +:103010006093B3017093B4010C94A71341E050E0A6 +:1030200060E070E004C0440F551F661F771F8A954B +:10303000D2F740955095609570958091B10190912F +:10304000B201A091B301B091B401482359236A237E +:103050007B234093B1015093B2016093B30170930D +:10306000B4010C94A71341E050E060E070E004C0AC +:10307000440F551F661F771F8A95D2F78091B101C3 +:103080009091B201A091B301B091B40148275927A2 +:103090006A277B274093B1015093B2016093B3013B +:1030A0007093B4010C94A7130F931F930091B10177 +:1030B0001091B2012091B3013091B401DC01CB0138 +:1030C000802B912BA22BB32B8093B1019093B20153 +:1030D000A093B301B093B4011F910F910C94A71367 +:1030E0000F931F930091B1011091B2012091B30190 +:1030F0003091B401DC01CB0180239123A223B323BF +:103100008093B1019093B201A093B301B093B40145 +:103110001F910F910C94A7130F931F930091B1016E +:103120001091B2012091B3013091B401DC01CB01C7 +:1031300080279127A227B3278093B1019093B201F2 +:10314000A093B301B093B4011F910F910C94A713F6 +:103150000895CF92DF92EF92FF920F931F93CF9338 +:10316000DF938C01C090B101D090B201E090B30127 +:10317000F090B4018091B5019091B601A091B70192 +:10318000B091B801C82AD92AEA2AFB2ACFE1D0E0B7 +:10319000D701C6010C2E04C0B695A79597958795C3 +:1031A0000A94D2F780FF07C0B8018C2F0E9407064F +:1031B0008130910531F4219758F7B80180E00E94E1 +:1031C0000706DF91CF911F910F91FF90EF90DF9055 +:1031D000CF90089590910C019923F1F090910D01F9 +:1031E0009923D1F0982F9695969596959F3080F5D6 +:1031F000E0910E01F0910F01E90FF11D877021E0C0 +:1032000030E0A90102C0440F551F8A95E2F7CA01B8 +:103210009181892B8183089520910E0130910F01B6 +:10322000F90132969FEF40E05191851789F09F3F59 +:1032300019F4511101C0942F4F5F4E30A9F79F3FF1 +:1032400039F0F901E90FF11D97FDFA958283089590 +:10325000089590910C019923F9F090910D01992313 +:10326000D9F0982F9695969596959F3028F5E091F0 +:103270000E01F0910F01E90FF11D877021E030E0A0 +:10328000A90102C0440F551F8A95E2F7CA01809533 +:10329000918189238183089520910E0130910F013E +:1032A000F9013296205F3F4F9081891301C010824F +:1032B0003196E217F307C1F7089581E090E0E091BD +:1032C0000E01F0910F01E80FF91F10820196803175 +:1032D0009105A9F708959091CB01892B8093CB019B +:1032E000089580959091CB0189238093CB01089517 +:1032F0001092CB0108959091CA01892B8093CA0145 +:10330000089580959091CA0189238093CA010895F8 +:103310001092CA0108958093B90108951092B901DD +:10332000089580910E0190910F01FC0131969C014E +:10333000205F3F4F80E0919191118F5FE217F3077B +:10334000D1F70895E0910E01F0910F018091CB012A +:103350008083E0910E01F0910F0190818091CA016C +:10336000892B80838091B901882361F0E0910E015F +:10337000F0910F019081892B80830E949119811116 +:103380001092B90180910E0190910F010C945C0E86 +:10339000CF92DF92EF92FF926C01EE24FF24C114D2 +:1033A000D104E104F10421F0C701B60120E101C01C +:1033B00020E0C72ED82EE92EFF24C114D104E10449 +:1033C000F10419F0285FC701B6016B017C0154E0DC +:1033D000F694E794D794C7945A95D1F7C114D104C1 +:1033E000E104F10419F02C5FC701B6016B017C0107 +:1033F00042E0F694E794D794C7944A95D1F7C11464 +:10340000D104E104F10419F02E5FC701B601DC011B +:10341000CB01B695A79597958795892B8A2B8B2BF2 +:1034200009F02F5F822FFF90EF90DF90CF900895EB +:103430008091E401843011F120E488E190E00FB63E +:10344000F894A895809360000FBE2093600083B726 +:10345000817F846083BF83B7816083BF78948895C0 +:1034600083B78E7F83BF0FB6F894A89580916000D4 +:10347000886180936000109260000FBE08950895E7 +:103480000C943F1ACF930E94401A0E9426040E9477 +:103490003F1AC0E08C2F0E941C05811104C0CF5F31 +:1034A000CE30C1F701C081E0CF9108950E94B913D9 +:1034B0000E94500E0C94460782E084BD93E095BDB7 +:1034C0009AEF97BD80936E0008952FB7F89480917E +:1034D000CD019091CE01A091CF01B091D0012FBF2D +:1034E0000895CF92DF92EF92FF920F931F932FB721 +:1034F000F8944091CD015091CE016091CF0170912F +:10350000D0012FBF6A017B01EE24FF248C0120E053 +:1035100030E0C016D106E206F30610F4415051091E +:103520009A01281B390BC9011F910F91FF90EF9051 +:10353000DF90CF9008951F920F920FB60F92112433 +:103540008F939F93AF93BF938091CD019091CE01C4 +:10355000A091CF01B091D0010196A11DB11D809322 +:10356000CD019093CE01A093CF01B093D001BF9134 +:10357000AF919F918F910F900FBE0F901F90189554 +:103580000E94480BF8942FEF87EA91E62150804083 +:103590009040E1F700C0000087E090EBDC018093F1 +:1035A000ED019093EE01A093EF01B093F0019CE048 +:1035B00088E10FB6F894A895809360000FBE9093B1 +:1035C0006000FFCFEF92FF920F931F93CF93DF9393 +:1035D000D82FC0E08C2F0E941C0500E010E0E82EE0 +:1035E000F12CC701002E02C0959587950A94E2F749 +:1035F00080FD06C00F5F1F4F0630110591F709C00F +:10360000602F7C2F80E00E94E4058D13F3CF81E0D2 +:1036100004C0CF5FCE30F1F680E0DF91CF911F91F3 +:103620000F91FF90EF900895CF93C82F8CE20E94E6 +:10363000E21A882321F08C2FCF910C94E21A80E0BB +:10364000CF910895CF930E94691C811102C00E94FE +:103650004F1CC5E6C15049F00E9426048FE39CE947 +:103660000197F1F700C00000F5CF89E20E94141B1A +:10367000811113C18AE20E94141B81110E944F1C08 +:1036800085E00E94141B81110E94C01A0E94741CC4 +:103690008093CC0187E00E94141B8823A9F18BE161 +:1036A0000E94141B882351F08091CC0181FB2227BA +:1036B00020F991E0922790FB81F90EC08EE00E94E4 +:1036C000141B882361F08091CC0182FB222720F912 +:1036D00091E0922790FB82F98093CC0115C080E1A4 +:1036E0000E94141B9091CC01882341F093FB222768 +:1036F00020F981E0822780FB93F904C0892F80950F +:1037000080FB90F99093CC018091CC010E94781CB1 +:103710000E94861C8093DE0180EE0E94141B882389 +:1037200041F08091DE01982F909590FB80F9809375 +:10373000DE0189E30E94141B882359F08091DE0189 +:1037400081FB222720F991E0922790FB81F9809359 +:10375000DE0182EE0E94141B882359F08091DE0165 +:1037600082FB222720F991E0922790FB82F9809337 +:10377000DE0186EE0E94141B882359F08091DE0141 +:1037800083FB222720F991E0922790FB83F9809315 +:10379000DE0183EE0E94141B882359F08091DE0124 +:1037A00084FB222720F991E0922790FB84F98093F3 +:1037B000DE0185E30E94141B882359F08091DE010D +:1037C00085FB222720F991E0922790FB85F98093D1 +:1037D000DE0181E30E94141B882359F08091DE01F1 +:1037E00086FB222720F991E0922790FB86F98093AF +:1037F000DE0181E10E94141B882359F08091DE01D3 +:1038000087FB222720F991E0922790FB87F980938C +:10381000DE018091DE010E948A1C8091DE0187FB1F +:10382000882780F980930D0187E20E94141BC82F1E +:103830008EE10E94141B8111C2608FE10E94141B53 +:103840008111C46080E20E94141B8111C86081E272 +:103850000E94141B8111C06182E20E94141B81111D +:10386000C06283E20E94141B8111C06484E20E9442 +:10387000141B882311F0C06802C0CC2329F08C2FC0 +:103880000E94811C6C2F03C00E947D1C682F70E079 +:1038900080E090E0CF910C947017CF9108956DEE79 +:1038A0007EEF80E090E00E94C32260E082E090E042 +:1038B0000E94B52260E083E090E00E94B52260E0C3 +:1038C00084E090E00E94B52260E085E090E00C94F6 +:1038D000B52280E090E00E94AF2221E08D3E9E4F15 +:1038E00009F020E0822F089582E090E00C94A72256 +:1038F000682F82E090E00C94B52283E090E00C9475 +:10390000A722682F83E090E00C94B52284E090E039 +:103910000C94A722682F84E090E00C94B52280914B +:10392000D30180FF0BC06091130185E0689FB00157 +:10393000112475956795759567952BC081FF09C012 +:103940006091130185E0689FB0011124759567951A +:1039500020C082FF07C06091130185E0689FB0011D +:10396000112417C09091D4019923D1F060911201D4 +:10397000961788F72091130185E0289F9001112464 +:10398000929FA001939F500D112470E0CA010E94E4 +:1039900079226038710540F46115710519F406C08B +:1039A00065E070E0862F08958FE7089581E008951F +:1039B0008091D30180FF08C06091110170E075957E +:1039C00067957595679521C081FF06C060911101CB +:1039D00070E07595679519C082FF04C06091110170 +:1039E00070E010C09091D401992399F0609110017A +:1039F0009617A0F780911101899FC001112470E0F2 +:103A00000E9479226038710540F46115710519F43E +:103A100006C061E070E0862F08958FE7089581E089 +:103A20000895803F21F40E948F1C819504C0813F3E +:103A300029F40E948F1C8093D7010895823F21F4BE +:103A40000E948F1C819504C0833F29F40E948F1C23 +:103A50008093D6010895893F19F40E94D81C05C0AF +:103A60008A3F31F40E94D81C81958093D801089533 +:103A70008B3F21F40E94D81C819504C08C3F29F40F +:103A80000E94D81C8093D9010895843F21F480912D +:103A9000D501816017C0853F21F48091D5018260F6 +:103AA00011C0863F21F48091D50184600BC0873F0F +:103AB00021F48091D501886005C0883F31F4809160 +:103AC000D50180618093D50108958D3F21F48091C7 +:103AD000D30181600BC08E3F21F48091D3018260BD +:103AE00005C08F3F29F48091D30184608093D30176 +:103AF0000895803F39F48091D70187FF6CC0109200 +:103B0000D70169C0813F29F48091D7011816BCF311 +:103B100062C09091D601823F29F497FF5CC0109259 +:103B2000D60159C0833F19F41916CCF354C0893F0C +:103B300041F48091D80118160CF04DC01092D801B4 +:103B40004AC08A3F29F48091D80187FF44C0F6CF4C +:103B50008B3F39F48091D90187FF3DC01092D90184 +:103B60003AC08C3F29F48091D9011816BCF333C0B8 +:103B7000843F21F48091D5018E7F17C0853F21F4C9 +:103B80008091D5018D7F11C0863F21F48091D501B0 +:103B90008B7F0BC0873F21F48091D501877F05C0C3 +:103BA000883F31F48091D5018F7E8093D50113C079 +:103BB0008D3F21F48091D3018E7F0BC08E3F21F485 +:103BC0008091D3018D7F05C08F3F29F48091D3016F +:103BD0008B7F8093D3018091D60181110EC080919B +:103BE000D70181110AC08091D801811106C080914E +:103BF000D901811102C01092D401089585ED91E0A0 +:103C00000E94670E0E94651A9093D2018093D101A1 +:103C100008951F93CF93DF938091D1019091D201AA +:103C20000E94711AAC019091D401992321F0209146 +:103C3000140130E006C0209115018AE0289F900110 +:103C400011244217530708F485C08091D601C09112 +:103C5000D701D091D8011091D901811107C0C111AC +:103C600075C0D11173C0111171C074C09F3F19F09C +:103C70009F5F9093D401181624F40E948F1C8093A8 +:103C8000D6018091D60187FF05C00E948F1C8195C7 +:103C90008093D6011C1624F40E948F1C8093D701B8 +:103CA0008091D70187FF05C00E948F1C819580936A +:103CB000D7016091D601662331F1C091D701CC23A1 +:103CC00011F1062E000C770B880B990B0E948021B6 +:103CD00023E333E343E35FE30E94E4210E944821AE +:103CE0006093D6016C2FCC0F770B880B990B0E9439 +:103CF000802123E333E343E35FE30E94E4210E9456 +:103D000048216093D7011D1624F40E94D81C80938B +:103D1000D8018091D80187FF05C00E94D81C8195E9 +:103D20008093D801111624F40E94D81C8093D901E5 +:103D30008091D90187FF05C00E94D81C819580938E +:103D4000D901DF91CF911F910C94FE1D9F3F09F087 +:103D50008FCFA0CFDF91CF911F910895E5EDF1E0D6 +:103D600085E0DF011D928A95E9F71092D401109247 +:103D7000D3010895833081F128F4813059F08230E5 +:103D8000D1F00895853009F449C0B8F1863009F4BE +:103D900056C0089580911501262F30E0280F311D5F +:103DA0002F3F310524F4680F6093150108958FEFBC +:103DB00080931501089580911401262F30E0280F7B +:103DC000311D2F3F310524F4680F609314010895CD +:103DD0008FEF80931401089580911301262F30E016 +:103DE000280F311D2F3F310524F4680F6093130114 +:103DF00008958FEF80931301089580911201262F6B +:103E000030E0280F311D2F3F310524F4680F6093F7 +:103E1000120108958FEF809312010895809111018E +:103E2000262F30E0280F311D2F3F310524F4680F75 +:103E30006093110108958FEF80931101089580918F +:103E40001001262F30E0280F311D2F3F310524F4BB +:103E5000680F6093100108958FEF8093100108950B +:103E6000833011F128F4813049F0823091F00895C7 +:103E7000853081F120F18630C1F1089580911501DE +:103E8000681720F4861B8093150108951092150180 +:103E9000089580911401681720F4861B8093140103 +:103EA000089510921401089580911301681720F469 +:103EB000861B809313010895109213010895809139 +:103EC0001201681720F4861B809312010895109246 +:103ED0001201089580911101681720F4861B8093C8 +:103EE0001101089510921101089580911001681731 +:103EF00020F4861B809310010895109210010895FC +:103F00000F931F938D3109F46BC008F03FC08E30C2 +:103F100009F47DC0C0F4873009F46EC068F48630BF +:103F200009F0AFC08091CC01817F8E7F8093CC015E +:103F300081E08093DB01A6C0883009F458C08B3043 +:103F400009F49BC09EC0863109F497C078F4803193 +:103F500009F470C0813109F094C00E94B9139091A6 +:103F60000D0181E0892780930D0187C0893109F413 +:103F700084C08B3109F085C08091CC0181FB222760 +:103F800020F991E0922790FB81F94AC0853309F42A +:103F90005BC048F4873209F457C008F45AC089322C +:103FA00009F452C06EC0833438F48A3308F067C015 +:103FB000883309F462C065C0833409F445C088348D +:103FC00009F05FC00E94B9130FEF13ED20E3015019 +:103FD00010402040E1F700C000000E94C01A4DC010 +:103FE0000E9402210E94500E0E94460746C00E9475 +:103FF000741C0E94861C41C09091CC01892F817055 +:1040000090FF12C0917F9E7F9093CC013BC0809126 +:10401000CC0182FB222720F991E0922790FB82F9C4 +:104020008093CC01992349F18091CC0181608093E8 +:10403000CC0123C08091CC0183FB222720F991E0A1 +:10404000922790FB83F9ECCF61E070E080E090E094 +:1040500010C08D5141E050E060E070E08A019B01AA +:1040600004C0000F111F221F331F8A95D2F7C90108 +:10407000B8010E9470170E94B91381E003C08953F0 +:10408000E9CF80E01F910F91089580E008950C948E +:104090004520CF93C82F8091DB01813079F018F053 +:1040A0008230E9F187C0E0910E01F0910F0180812B +:1040B000813169F0823209F07FC009C0E0910E01C0 +:1040C000F0910F018081813111F0823261F48C2FE7 +:1040D0000E944720811104C08C2F0E94801F1DC0A8 +:1040E00081E090E01AC08C2F0E944520811114C0FD +:1040F000C43179F048F4CB3079F0C03109F060C0B8 +:1041000082E08093DB0108C0C93219F0C83321F086 +:1041100057C01092DB0154C081E0817053C0C93296 +:1041200089F118F5C43171F1A8F4C73009F046C01F +:104130008AE08093150194E19093140193E09093A9 +:1041400013018093120188E08093110188E280932B +:10415000100134C0CE51C63088F5EC2FF0E0E65D9A +:10416000FE4F80818093DA0129C0CE34E9F020F43B +:10417000CB3421F56AE013C0C13579F0C235F1F4D2 +:1041800061E00DC08091DA01882319F01092DA0104 +:1041900015C081E08093DB0115C061E006C080910D +:1041A000DA010E94BA1E0AC06AE08091DA010E9418 +:1041B000301F04C01092DB0180E004C081E002C027 +:1041C00080E0ABCFCF910895E1E8F0E08081886096 +:1041D00080838081816080838FB7F89493E090938F +:1041E000890090ED909388008FBF0895EFE6F0E08E +:1041F0008081826080830895EFE6F0E080818D7F8A +:1042000080830895EFE6F0E0908182E08927808343 +:1042100008951F920F920FB60F9211242F933F9380 +:104220004F935F936F937F938F939F93AF93BF93BE +:10423000EF93FF938091DC019091DD0101969093C3 +:10424000DD018093DC01811103C082E00E944607FA +:10425000E091DD01E695E695F0E0E657FB4FE4914D +:104260008091DC018E1303C080E00E944607FF911D +:10427000EF91BF91AF919F918F917F916F915F91DE +:104280004F913F912F910F900FBE0F901F90189557 +:104290000E944F216894B1110C94DE2108950E9470 +:1042A000C32188F09F5798F0B92F9927B751B0F0E4 +:1042B000E1F0660F771F881F991F1AF0BA95C9F7AA +:1042C00014C0B13091F00E94DD21B1E008950C944A +:1042D000DD21672F782F8827B85F39F0B93FCCF3FD +:1042E000869577956795B395D9F73EF49095809527 +:1042F000709561957F4F8F4F9F4F0895E89409C047 +:1043000097FB3EF490958095709561957F4F8F4F08 +:104310009F4F9923A9F0F92F96E9BB279395F6951E +:10432000879577956795B795F111F8CFFAF4BB0F9C +:1043300011F460FF1BC06F5F7F4F8F4F9F4F16C000 +:10434000882311F096E911C0772321F09EE8872F8A +:10435000762F05C0662371F096E8862F70E060E046 +:104360002AF09A95660F771F881FDAF7880F9695BF +:10437000879597F9089557FD9058440F551F59F0A8 +:104380005F3F71F04795880F97FB991F61F09F3F42 +:1043900079F087950895121613061406551FF2CF6B +:1043A0004695F1DF08C0161617061806991FF1CFBB +:1043B00086957105610508940895E894BB276627E2 +:1043C0007727CB0197F908950E94F7210C94682272 +:1043D0000E945A2238F00E94612220F0952311F0A9 +:1043E0000C9451220C94572211240C94DE210E942B +:1043F000BB2170F3959FC1F3950F50E0551F629F4D +:10440000F001729FBB27F00DB11D639FAA27F00D2D +:10441000B11DAA1F649F6627B00DA11D661F829F54 +:104420002227B00DA11D621F739FB00DA11D621F39 +:10443000839FA00D611D221F749F3327A00D611D56 +:10444000231F849F600D211D822F762F6A2F112438 +:104450009F5750409AF0F1F088234AF0EE0FFF1F6B +:10446000BB1F661F771F881F91505040A9F79E3FC2 +:10447000510580F00C9451220C94DE215F3FE4F34F +:10448000983ED4F3869577956795B795F795E79518 +:104490009F5FC1F7FE2B880F911D9695879597F921 +:1044A000089597F99F6780E870E060E008959FEFB6 +:1044B00080EC089500240A941616170618060906BB +:1044C000089500240A94121613061406050608958A +:1044D000092E0394000C11F4882352F0BB0F40F412 +:1044E000BF2B11F460FF04C06F5F7F4F8F4F9F4F52 +:1044F000089597FB072E16F4009407D077FD09D096 +:104500000E94932207FC05D03EF4909581959F4F21 +:104510000895709561957F4F0895EE0FFF1F0590E8 +:10452000F491E02D0994AA1BBB1B51E107C0AA1FFF +:10453000BB1FA617B70710F0A61BB70B881F991F44 +:104540005A95A9F780959095BC01CD010895F999E8 +:10455000FECF92BD81BDF89A992780B50895A8E154 +:10456000B0E042E050E00C94CA22262FF999FECF29 +:104570001FBA92BD81BD20BD0FB6F894FA9AF99A80 +:104580000FBE019608950E94B522272F0C94B622E3 +:10459000DC01CB01FC01F999FECF06C0F2BDE1BD03 +:1045A000F89A319600B40D9241505040B8F70895F2 +:0445B000F894FFCFAD +:1045B40020024707D707B2077E074A070101BA015D +:1045C40028080A03140A3F4D36394B04FE03C80376 +:1045D4008F0322033B0354036D0301020304050606 +:0445E40007080900BB +:00000001FF diff --git a/keyboard/ergodox_ez/keymaps/colemak/keymap.c b/keyboard/ergodox_ez/keymaps/colemak/keymap.c new file mode 100644 index 0000000000..9601726f7b --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/colemak/keymap.c @@ -0,0 +1,184 @@ +#include "ergodox_ez.h" +#include "debug.h" +#include "action_layer.h" + +#define BASE 0 // default layer +#define SYMB 1 // symbols +#define MDIA 2 // media keys + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Keymap 0: Basic layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | = | 1 | 2 | 3 | 4 | 5 | LEFT | | RIGHT| 6 | 7 | 8 | 9 | 0 | - | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | Del | Q | W | F | P | G | L1 | | L1 | J | L | U | Y | ; | \ | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | BkSp | A | R | S | T | D |------| |------| H | N | E | I |O / L2| ' | + * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------| + * | LShift |Z/Ctrl| X | C | V | B | | | | K | M | , | . |//Ctrl| RShift | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * |Grv/L1| '" |AltShf| Left | Right| | Up | Down | [ | ] | ~L1 | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | App | LGui | | Alt |Ctrl/Esc| + * ,------|------|------| |------+--------+------. + * | | | Home | | PgUp | | | + * | Space|Backsp|------| |------| Tab |Enter | + * | |ace | End | | PgDn | | | + * `--------------------' `----------------------' + */ +// If it accepts an argument (i.e, is a function), it doesn't need KC_. +// Otherwise, it needs KC_* +[BASE] = KEYMAP( // layer 0 : default + // left hand + KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LEFT, + KC_DELT, KC_Q, KC_W, KC_F, KC_P, KC_G, TG(SYMB), + KC_BSPC, KC_A, KC_R, KC_S, KC_T, KC_D, + KC_LSFT, CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, ALL_T(KC_NO), + LT(SYMB,KC_GRV),KC_QUOT, LALT(KC_LSFT), KC_LEFT,KC_RGHT, + ALT_T(KC_APP), KC_LGUI, + KC_HOME, + KC_SPC,KC_BSPC,KC_END, + // right hand + KC_RGHT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + TG(SYMB), KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSLS, + KC_H, KC_N, KC_E, KC_I, LT(MDIA, KC_O), KC_QUOT, + MEH_T(KC_NO),KC_K, KC_M, KC_COMM,KC_DOT, CTL_T(KC_SLSH), KC_RSFT, + KC_UP, KC_DOWN,KC_LBRC,KC_RBRC, KC_FN1, + KC_LALT, CTL_T(KC_ESC), + KC_PGUP, + KC_PGDN,KC_TAB, KC_ENT + ), +/* Keymap 1: Symbol Layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | ! | @ | { | } | | | | | | Up | 7 | 8 | 9 | * | F12 | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | # | $ | ( | ) | ` |------| |------| Down | 4 | 5 | 6 | + | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | \ | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | | . | 0 | = | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// SYMBOLS +[SYMB] = KEYMAP( + // left hand + KC_TRNS,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS, + KC_TRNS,KC_EXLM,KC_AT, KC_LCBR,KC_RCBR,KC_PIPE,KC_TRNS, + KC_TRNS,KC_HASH,KC_DLR, KC_LPRN,KC_RPRN,KC_GRV, + KC_TRNS,KC_PERC,KC_CIRC,KC_LBRC,KC_RBRC,KC_TILD,KC_TRNS, + KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, + KC_TRNS,KC_TRNS, + KC_TRNS, + KC_TRNS,KC_TRNS,KC_TRNS, + // right hand + KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + KC_TRNS, KC_UP, KC_7, KC_8, KC_9, KC_ASTR, KC_F12, + KC_DOWN, KC_4, KC_5, KC_6, KC_PLUS, KC_TRNS, + KC_TRNS, KC_AMPR, KC_1, KC_2, KC_3, KC_BSLS, KC_TRNS, + KC_TRNS,KC_DOT, KC_0, KC_EQL, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS +), +/* Keymap 2: Media and mouse keys + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | | MsUp | | | | | | | | | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | |MsLeft|MsDown|MsRght| |------| |------| | | | | | Play | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | | | | | | | Prev | Next | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | Lclk | Rclk | |VolUp |VolDn | Mute | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | |Brwser| + * | | |------| |------| |Back | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// MEDIA AND MOUSE +[MDIA] = KEYMAP( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, + // right hand + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, + KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS, + KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_WBAK +), +}; + +const uint16_t PROGMEM fn_actions[] = { + [1] = ACTION_LAYER_TAP_TOGGLE(SYMB) // FN1 - Momentary Layer 1 (Symbols) +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch(id) { + case 0: + if (record->event.pressed) { + register_code(KC_RSFT); + } else { + unregister_code(KC_RSFT); + } + break; + } + return MACRO_NONE; +}; + +// Runs just one time when the keyboard initializes. +void matrix_init_user(void) { + +}; + +// Runs constantly in the background, in a loop. +void matrix_scan_user(void) { + + uint8_t layer = biton32(layer_state); + + ergodox_board_led_off(); + ergodox_right_led_1_off(); + ergodox_right_led_2_off(); + ergodox_right_led_3_off(); + switch (layer) { + // TODO: Make this relevant to the ErgoDox EZ. + case 1: + ergodox_right_led_1_on(); + break; + case 2: + ergodox_right_led_2_on(); + break; + default: + // none + break; + } + +}; diff --git a/keyboard/ergodox_ez/keymaps/colemak/readme.md b/keyboard/ergodox_ez/keymaps/colemak/readme.md new file mode 100644 index 0000000000..e28b2f0856 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/colemak/readme.md @@ -0,0 +1,4 @@ +# ErgoDox EZ Colemak Configuration + +Colemak layout with same layers as default ergodox ez keymap. + diff --git a/keyboard/ergodox_ez/keymaps/colemak_osx_pc_no/colemak_osx_pc_no.hex b/keyboard/ergodox_ez/keymaps/colemak_osx_pc_no/colemak_osx_pc_no.hex new file mode 100644 index 0000000000..1d87acd143 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/colemak_osx_pc_no/colemak_osx_pc_no.hex @@ -0,0 +1,1142 @@ +:100000000C944C030C9493030C9493030C9493035F +:100010000C9493030C9493030C9493030C94930308 +:100020000C9493030C9493030C94BB0C0C948D0DC3 +:100030000C9493030C9493030C9493030C949303E8 +:100040000C9493030C94B1210C9493030C9493039C +:100050000C9493030C94431B0C9493030C94930300 +:100060000C9493030C9493030C9493030C949303B8 +:100070000C9493030C9493030C9493030C949303A8 +:100080000C9493030C9493030C9493030C94930398 +:100090000C9493030C9493030C9493030C94930388 +:1000A0000C9493030C9493030C949303A103A60361 +:1000B000AB03B003B503BA03BF03C403C903FA0D0E +:1000C0001C0E0F0F1C0E0F0F610E840E0F0FD90E9A +:1000D000EC0ED611D61105120512481282128F1499 +:1000E0008F149B128F149013901363148F148F141A +:1000F0007A14012E022E012C022C0001E10135029E +:100100003502E100013502350001E1012E022E0128 +:100110002C022C02E10001E6012E022E02E6012C47 +:10012000022C0001E10130023002E1012C022C001E +:1001300001E10164026402E100016402640001E67D +:100140000130023002E6012C022C000000002200E7 +:10015000C001C002C003C004C005C006C007C0087B +:10016000C02E002D0237021E020452000025141476 +:100170000004001D00F400387426141A0015001B3A +:1001800000F500377124140900160006002B00C189 +:1001900000271413001700190036782D0031020AC9 +:1001A00000070005000000230201541F0200003672 +:1001B0000200003500C5003200000027020000499F +:1001C0000021140D000B000E000000240225020F78 +:1001D000001100100050004C002602180008004FCB +:1001E0000029002C00C3001C000C005100C700288F +:1001F00000C4002F001200520020022A001F1434F5 +:1002000000330038020252000024160100010001F0 +:1002100000010000000100010001000100010001D7 +:1002200000010001000100010001003778251601DE +:10023000000100010001000100261601000100017B +:100240000036710100010001000100010000000101 +:1002500000010001000000010000002414010064FE +:100260000000000100000001002102010001000166 +:100270000000000100010001000100010001000177 +:1002800000010001000100010001000100C800019F +:1002900000010001002E140100C90001000100014D +:1002A00000010001003100010001000100035200C3 +:1002B0000001000100010001000100000001000137 +:1002C000002000010001000100010001001F0001E9 +:1002D0000001000100010001001E000100010001F9 +:1002E000000100220227002100010001000100019D +:1002F00000010001000000010001000100000001F8 +:1003000000000001000100010000000100000001E8 +:10031000000100010001004A00000001000100C2CC +:1003200000220026004A0001000100C60023004D03 +:1003300000010001000100010024004E0001000145 +:10034000000100010025004B000100010001000137 +:100350000001000100010000000100010001000196 +:100360000001000000010001002000010001000167 +:1003700000010001001F0001000100010001000157 +:10038000001E0001000100010001002202270021DF +:100390000001000100010001000100010000000156 +:1003A0000001000100000001000000010001000147 +:1003B0000000000100000001000100010001004AEE +:1003C00000000001000100C200220026004A0001D6 +:1003D000000100CA0023004D0001000100010001DE +:1003E0000024004E00010001000100010025004B27 +:1003F00000010001000100010001000100010000F6 +:1004000000220001000100010001000000010001C4 +:10041000003C00010001000100010001003B00015F +:100420000001000100010001003A0001000100018B +:10043000000100010001003D000100010001000178 +:1004400000010001000000010001000100000001A6 +:100450000000000100010001000000010000000197 +:100460000001000100010030140000010001000142 +:10047000003E00420001000100010001003F004376 +:1004800000010001000100010040004400010001E2 +:1004900000010001004100450001000100010001D0 +:1004A0000001000100010000001603450072006712 +:1004B000006F0044006F007800200045005A0000E3 +:1004C0000016034500720067006F0044006F00785B +:1004D00000200045005A0000000403090409026DD1 +:1004E00000040100A0FA0904000001030101000951 +:1004F0002111010001223F000705810308000A09BC +:100500000401000103010200092111010001224D33 +:10051000000705820308000A090402000103000025 +:10052000000921110100012236000705830308009C +:100530000A09040300010300000009211101000160 +:100540002239000705840310000112011001000088 +:100550000008EDFE07130100010200010501090674 +:10056000A101050719E029E7150025019508750186 +:10057000810205081901290595057501910295016A +:100580007503910105071900297715002501957854 +:1005900075018102C005010980A1018502160100D3 +:1005A00026B7001A01002AB700751095018100C016 +:1005B000050C0901A1018503160100269C021A0100 +:1005C000002A9C02751095018100C005010902A155 +:1005D000010901A100050919012905150025019549 +:1005E0000575018102950175038101050109300935 +:1005F000311581257F9502750881060938158125F9 +:100600007F950175088106050C0A38021581257F42 +:10061000950175088106C0C005010906A1010507FD +:1006200019E029E71500250195087501810295015A +:1006300075088101050819012905950575019102C3 +:100640009501750391010507190029FF150025FF84 +:10065000950675088100C000000000000000000041 +:100660000000010204060A0F17202C3A4A5D718728 +:100670009DB3C7DAE9F5FCFFFCF5E9DAC7B39D875E +:10068000715D4A3A2C20170F0A060402010000008F +:10069000000000000000000011241FBECFEFDAE0D0 +:1006A000DEBFCDBF04B603FE27C08091ED0190915F +:1006B000EE01A091EF01B091F0018730904BA7407F +:1006C000B04BD1F41092ED011092EE011092EF01B7 +:1006D0001092F00114BE84B7877F84BF0FB6F894E0 +:1006E000A8958091600088618093600010926000FE +:1006F0000FBEE0E0FFE3099511E0A0E0B1E0E4E027 +:10070000F7E402C005900D92A433B107D9F721E0B8 +:10071000A4E3B1E001C01D92AD3EB207E1F70E9433 +:10072000020A0C9480230C940000FC018281462F65 +:1007300050E04930510590F5FA01EA5AFF4F0C9408 +:100740003523882359F18EE391E00895882331F110 +:1007500089E391E00895882309F180E391E0089509 +:100760008823E1F083E291E008958823B9F086E1DF +:1007700091E00895882391F089E091E0089588231D +:1007800069F084E091E00895882341F08BEF90E0D8 +:100790000895882319F082EF90E0089580E090E0BA +:1007A000089508950C94D1030C94D10356985E9843 +:1007B00025982D9826982E9827982F988FEF90E0BF +:1007C000909389008093880090938B0080938A0097 +:1007D00090938D0080938C00259A2D9A2FEF80E7BF +:1007E00092E0215080409040E1F700C00000269A3E +:1007F0002E9A2FEF80E792E0215080409040E1F761 +:1008000000C00000279A2F9A2FEF80E792E0215036 +:1008100080409040E1F700C0000025982D982FEF10 +:1008200080E792E0215080409040E1F700C0000056 +:1008300026982E982FEF80E792E02150804090403C +:10084000E1F700C0000027982F9856985E982598E9 +:100850002D9826982E9827982F98089589EA8093A6 +:10086000800089E08093810024982C983F988AB179 +:100870008F748AB96E98479A8BB1806B8BB9769AD0 +:100880000E94D6030C94D20380E2809300018091F1 +:10089000340181110EC00E94930481E080933401E1 +:1008A0002FEF83ED90E3215080409040E1F700C0AE +:1008B000000080E40E9499048093000181112EC001 +:1008C0000E94C30480930001811128C00E94C304C8 +:1008D00080930001811122C08FE30E94C3048093A2 +:1008E000000181111BC00E94BB0480E40E94990496 +:1008F00080930001811112C08CE00E94C304809398 +:10090000000181110BC00E94C3048093000181117A +:1009100005C08FE30E94C304809300010E94BB04C2 +:100920008091000108951092B9008AE08093B80088 +:10093000089594EA9093BC009091BC0097FFFCCF7F +:100940009091B900987F983021F0903111F081E0BA +:1009500008958093BB0084E88093BC008091BC0024 +:1009600087FFFCCF8091B900887F883111F08034F7 +:1009700071F780E0089584E98093BC008091BC0009 +:1009800084FDFCCF08958093BB0084E88093BC0075 +:100990008091BC0087FFFCCF9091B900987F81E0E7 +:1009A000983209F480E0089584E88093BC00809137 +:1009B000BC0087FFFCCF8091BB00089580910001AF +:1009C000811115C080E40E94990480930001811177 +:1009D0000CC082E10E94C30480930001811105C014 +:1009E0008FEF0E94C304809300010E94BB0484B176 +:1009F000807F84B985B1807F85B98AB1837F8AB9C8 +:100A00008BB1837F8BB93E98469808950E94440429 +:100A1000809300010E94DE0480B38C7080BB81B3A0 +:100A2000836F81BBE4E4F1E0A6E3B1E011921D9293 +:100A300081E0E235F807D1F70C942E049F92AF9233 +:100A4000BF92CF92DF92EF92FF920F931F93CF93BB +:100A5000DF9380910001882379F0809135018F5FC9 +:100A600080933501811108C00E94440480930001E5 +:100A7000811102C00E94D60386E3E82E81E0F82EA1 +:100A80008701C0E0D0E0BB24B39492E0A92ECC242F +:100A9000C394D12CC730D10500F58091000181119C +:100AA00064C080E40E94990480930001811112C007 +:100AB00082E10E94C3048093000181110BC0C60132 +:100AC0000C2E01C0880F0A94EAF780950E94C30497 +:100AD000809300010E94BB0448C0CA30A1F028F4F2 +:100AE000C83059F0C93061F005C0CC3089F070F0E1 +:100AF000CD3089F0209A289810C0219A29980DC0ED +:100B0000229A2A980AC0239A2B9807C0529A01C0A9 +:100B1000539A5B9802C03E9A4698E0EAEA95F1F74C +:100B20008FB181708B25799902C032E001C030E02D +:100B3000832B7C9902C034E001C030E0832B7D9987 +:100B400002C028E001C020E0822B7E9902C090E123 +:100B500001C090E0892B9FB19095991F9927991F0B +:100B60009295990F907E892B0FC080910001811181 +:100B70004AC080E40E94990480930001882381F197 +:100B8000912C0E94BB04892DD8019C91981719F0D3 +:100B90008C93A09201010E94DE0421960F5F1F4FEB +:100BA000CE30D10509F076CF80910101882369F11B +:100BB000815080930101882339F0EFE9FFE03197FC +:100BC000F1F700C0000021C0E4E4F1E0D7018D910D +:100BD0007D018193B4E4EB16B1E0FB06B9F715C0D3 +:100BE00083E10E94C304809300018111C9CF81E495 +:100BF0000E949904809300018111C2CF0E94D40405 +:100C0000982E9094BECF80E0BFCF0E94D40381E0A5 +:100C1000DF91CF911F910F91FF90EF90DF90CF90D8 +:100C2000BF90AF909F900895E82FF0E0EC5BFE4FEF +:100C30008081089508958B3B910580F4883A910551 +:100C400048F5853A9105D8F48430910508F0B2C092 +:100C5000019709F06EC081E090E00895803E910513 +:100C600008F467C0883E910508F4A4C09C01205F89 +:100C700031092031310508F05CC090650895853A4E +:100C8000910509F459C0863A910509F058C082E8E7 +:100C900090E40895883A910509F454C0893A910581 +:100CA00009F453C08A3A910509F452C08B3A910570 +:100CB00009F451C08C3A910509F450C08D3A910560 +:100CC00009F44FC0803B910509F44EC08E3A91055E +:100CD00009F44DC08F3A910509F44CC0813B910550 +:100CE00009F44BC0823B910509F44AC0833B91054E +:100CF00009F449C0843B910509F448C0853B91053E +:100D000009F447C0863B910509F446C0873B91052D +:100D100009F445C0883B910509F444C0893B91051D +:100D200009F443C08A3B910509F442C080E094E491 +:100D3000089580E090E0089581E890E4089583E8C4 +:100D400090E4089582EE94E4089589EE94E4089581 +:100D50008AEE94E4089585EB94E4089586EB94E498 +:100D6000089587EB94E408958CEC94E408958DEC59 +:100D700094E4089583E895E408958AE895E4089555 +:100D800082E995E4089584E995E4089581E296E482 +:100D9000089583E296E4089584E296E4089585E256 +:100DA00096E4089586E296E4089587E296E408952D +:100DB0008AE296E40895089524E5829FC0011124F3 +:100DC000FC0126E0729FE00DF11D1124E60FF11DDC +:100DD000EE0FFF1FEF59FE4F859194910895880FF4 +:100DE000991FFC01E553F040859194910895880F77 +:100DF000991FFC01E55BFE4F85919491089524E5D0 +:100E0000829FC0011124FC0146E0749FE00DF11D9A +:100E10001124E60FF11DEE0FFF1FEF59FE4F8591D4 +:100E200094919C013A9521154FE1340708F425C1AE +:100E30003F512115304120F49F700E94F70608951C +:100E40009C0130532115304118F49927906C089576 +:100E5000811520E5920769F40E94B1144FEF84E3F5 +:100E60009CE0415080409040E1F700C000000C94AD +:100E7000681B813020E5920731F48091CC018160BC +:100E80008093CC0108959C0130552115304108F024 +:100E90005CC0292F33272F70332721303105E9F427 +:100EA000AC0164E0440F551F6A95E1F74427537085 +:100EB000BC016370772702C0220F331F6A95E2F7E7 +:100EC0003C68242B352B73E0880F991F7A95E1F746 +:100ED00080769927822B932B08952230310529F4AF +:100EE000982F8827816F906A089523303105A1F4E7 +:100EF000AC0133E0440F551F3A95E1F7407E57703F +:100F00008370992721E030E002C0220F331F8A95B9 +:100F1000E2F7C9019C6816C02430310531F5AC01F7 +:100F200023E0440F551F2A95E1F7407E57708370E8 +:100F3000992721E030E002C0220F331F8A95E2F7A3 +:100F4000C9019A68842B952B08959C01305721156F +:100F5000304118F49F70906208959C01305821151B +:100F6000304118F49F70906A0895803E9105E0F436 +:100F7000803C910558F58133910509F46FC048F420 +:100F80008932910509F463C08A32910509F46DC074 +:100F900072C089339105E9F082389105D1F085332B +:100FA000910509F44DC067C0833E910581F138F485 +:100FB000803E9105B9F0823E9105D9F05CC0863E35 +:100FC000910561F1873E9105A1F155C00E94EF06A0 +:100FD00008952091DE0120FD02C021FF4CC080EE6B +:100FE00090E049C08091DE0180FFF9CF89E390E075 +:100FF00042C08091DE0182FF0EC08091DE0184FF3D +:1010000003C080E090E037C083EE90E034C0809170 +:10101000DE0182FFF2CF82EE90E02DC08091DE01F2 +:1010200083FF0BC08091DE0184FDEBCF87EE90E063 +:1010300022C08091DE0183FFF5CF86EE90E01BC0D9 +:101040008091DE0185FF07C089E290E014C08091A5 +:10105000DE0185FFF9CF85E390E00DC08091DE01D0 +:1010600086FF07C08AE290E006C08091DE0186FF1D +:10107000F9CF81E390E00E941B06089508958091C6 +:1010800062010895CF93DF9300D01F92CDB7DEB7F2 +:101090009C018091E401843019F593E099833B83AE +:1010A0002A839093E9008FEF9091E800815095FD9D +:1010B00006C095ED9A95F1F700008111F5CF80916A +:1010C000E80085FF0DC040E050E063E070E0CE0135 +:1010D00001960E94AF0A8091E8008E778093E80025 +:1010E0000F900F900F90DF91CF910895CF93DF93E2 +:1010F00000D01F92CDB7DEB72091E401243021F556 +:1011000022E029839B838A8383E08093E9008FEF29 +:101110009091E800815095FD06C095ED9A95F1F704 +:1011200000008111F5CF8091E80085FF0DC040E0FF +:1011300050E063E070E0CE0101960E94AF0A80911A +:10114000E8008E778093E8000F900F900F90DF916A +:10115000CF9108959C018091E4018430F9F482E0FC +:101160008093E9009FEF8091E800915085FD06C0D3 +:1011700085ED8A95F1F700009111F5CF8091E80097 +:1011800085FF0CC040E050E065E070E0C9010E94BE +:10119000AF0A8091E8008E778093E8000895CF939E +:1011A000DF93EC018091E401843009F046C0909116 +:1011B0000C019923D9F090910D019923B9F08093F6 +:1011C000E9008FEF9091E800815095FD06C095E110 +:1011D0009A95F1F700008111F5CF8091E80085FF25 +:1011E0002CC040E050E060E170E017C081E08093E7 +:1011F000E9008FEF9091E800815095FD06C095EDD4 +:101200009A95F1F700008111F5CF8091E80085FFF4 +:1012100014C040E050E068E070E0CE010E94AF0AE8 +:101220008091E8008E778093E80080E1FE01A2E5DE +:10123000B1E001900D928A95E1F7DF91CF91089589 +:101240008091E301811109C00E94400C0E949D0C15 +:101250008091E20084608093E20008951092E3019F +:10126000089508950C949E210E94FE1A0E94A421C4 +:101270000E94480F0C943E0842E061EC81E00E941D +:10128000B90B42E061EC82E00E94B90B42E061ECF4 +:1012900083E00E94B90B42E161EC84E00C94B90B4D +:1012A0008091E601833009F455C030F4813071F04B +:1012B000823009F48EC008958A3009F47AC08B30E8 +:1012C00009F460C0893009F09CC020C08091E5011C +:1012D000813A09F096C08091E800877F8093E8000A +:1012E0008091E9019091EA01892B21F460E182E586 +:1012F00091E003C060E080E090E070E00E94FA0AB4 +:101300008091E8008B778093E80008958091E50153 +:10131000813209F076C08091E9019091EA0100974D +:1013200019F0039709F06DC08091E800877F8093E2 +:10133000E8008091E80082FD05C08091E401811100 +:10134000F8CF5FC08091F100809362018091E80046 +:101350008B7753C08091E501813A09F052C08091AA +:10136000E9019091EA01892B09F04BC08091E800D6 +:10137000877F8093E8008091E80080FFFCCF809118 +:101380000C0136C08091E5018132D9F58091E901E7 +:101390009091EA01892BA9F58091E800877F8093DD +:1013A000E8000E94EE0B8091E70180930C010C9401 +:1013B000B1148091E501813221F58091E800877FA9 +:1013C0008093E8000E94EE0B8091E8018093630116 +:1013D00008958091E501813AA1F48091E800877F2A +:1013E0008093E8008091E80080FFFCCF809163014A +:1013F0008093F1008091E8008E778093E8000C9450 +:10140000EE0B089584B7877F84BF0FB6F894A89534 +:1014100080916000886180936000109260000FBE30 +:1014200090E080E80FB6F89480936100909361009B +:101430000FBE0E94970F0E94400C0E949D0C80914D +:10144000E20084608093E20078940E94280F0E945A +:10145000990F82E091E00E94430F0E948C218091BD +:10146000E401853069F40E94C01A8091E20188236A +:10147000B1F30E94EA1A882391F30E94990AEFCFF0 +:101480000E949F0FECCF292F332723303105C9F05D +:1014900060F42130310581F02230310509F041C07E +:1014A0008DE690E02DED34E040C021323105E1F0D1 +:1014B0002232310531F135C082E190E02AE435E095 +:1014C00034C099278130910549F028F0029749F5F9 +:1014D000E9EAF4E005C0E9EDF4E002C0E1ECF4E093 +:1014E000849190E09F0121C06430D8F4E62FF0E0B1 +:1014F000EE0FFF1FEE5DFE4F2081318189E090E00D +:1015000014C0643070F470E0FB01EE0FFF1FE65E64 +:10151000FE4F20813181FB01EA5EFE4F808190E029 +:1015200004C080E090E020E030E0FA0131832083C5 +:10153000089580E189BD82E189BD09B400FEFDCF37 +:101540008091D8008F7D8093D8008091E0008260E8 +:101550008093E0008091E00081FDFCCF0895CF9260 +:10156000DF92EF92FF920F931F93CF93DF93EC01E3 +:101570008B016A010E940D0C811133C0C114D1048A +:1015800039F0F60180819181081B190BC80FD91F12 +:10159000E12CF12C0115110519F18091E80085FD70 +:1015A00016C08091E8008E778093E800C114D104C2 +:1015B00049F0F60180819181E80EF91EF182E08206 +:1015C00085E00FC00E940D0C882321F30AC0899189 +:1015D0008093F10001501109FFEFEF1AFF0ADACFF3 +:1015E00080E0DF91CF911F910F91FF90EF90DF90FE +:1015F000CF9008952091EB013091EC012617370729 +:1016000048F06115710539F42091E8002E77209398 +:10161000E80001C0B901FC0120E06115710579F114 +:101620008091E4018823F1F18530F1F18091E800A7 +:1016300083FD3CC08091E80082FD2EC08091E800CF +:1016400080FFEBCF2091F3008091F20090E0922B8D +:101650006115710551F08830910538F4219120937E +:10166000F100615071090196F3CF21E0089709F06C +:1016700020E08091E8008E778093E800CECF2111A2 +:10168000CFCF0AC08091E401882361F0853061F0FA +:101690008091E80083FD0AC08091E80082FFF2CFCC +:1016A00080E0089582E0089583E0089581E0089540 +:1016B0002091EB013091EC012617370748F06115B6 +:1016C000710539F42091E8002E772093E80001C0DD +:1016D000B901FC0120E06115710591F18091E401EF +:1016E000882309F440C0853009F43FC08091E800A8 +:1016F00083FD3DC08091E80082FD2FC08091E8000D +:1017000080FFE9CF2091F3008091F20090E0922BCE +:101710006115710559F08830910540F424912093AA +:10172000F1003196615071090196F2CF21E00897DE +:1017300009F020E08091E8008E778093E800CBCF1D +:101740002111CCCF0AC08091E401882361F085305B +:1017500061F08091E80083FD0AC08091E80082FF7B +:10176000F2CF80E0089582E0089583E0089581E05B +:101770000895982F973068F59093E900981739F0FD +:101780007091EC002091ED005091F00003C0242FE7 +:10179000762F50E021FD02C09F5FECCF3091EB002F +:1017A0003E7F3093EB003091ED003D7F3093ED00B4 +:1017B0003091EB0031603093EB007093EC0020939C +:1017C000ED005093F0002091EE0027FDE5CF80E082 +:1017D00008958F708093E90081E008958091E5017C +:1017E00087FF11C08091E80082FD05C08091E4016F +:1017F0008111F8CF11C08091E8008B770BC08091E8 +:10180000E401882349F08091E80080FFF8CF8091BF +:10181000E8008E778093E80008952091E4003091ED +:10182000E50095E64091EC00842F817040FF23C0D5 +:101830008091E80080FD1DC08091E401882399F02B +:10184000853099F08091EB0085FD11C04091E40056 +:101850005091E5002417350729F3915011F09A01B2 +:10186000E1CF84E0089582E0089583E0089581E067 +:10187000089580E008954091E80042FFDDCF08958B +:101880000E94AE0C0E94B60CE0EEF0E08081816018 +:101890008083E8EDF0E080818F77808319BCA7ED2D +:1018A000B0E08C918E7F8C9380818F7E80831092AC +:1018B000E30108950F931F93CF93DF930E94AE0C23 +:1018C0000E94B60CC8EDD0E088818F77888388812C +:1018D0008068888388818F7D888319BC1092E40199 +:1018E0001092E0011092E2011092E10100EE10E08E +:1018F000F80180818B7F808388818160888342E0CA +:1019000060E080E00E94B90BE1EEF0E080818E7F24 +:101910008083E2EEF0E08081816080838081886056 +:101920008083F80180818E7F8083888180618883B5 +:10193000DF91CF911F910F910895E8EDF0E0808144 +:101940008F7E8083E7EDF0E080818160808384E09A +:1019500082BF81E08093E3010C945A0CE8EDF0E043 +:1019600080818E7F80831092E20008951092DA00C9 +:101970001092E10008951F920F920FB60F9211245A +:101980002F933F934F935F936F937F938F939F9387 +:10199000AF93BF93EF93FF938091E10082FF0BC061 +:1019A0008091E20082FF07C08091E1008B7F8093ED +:1019B000E1000E94270F8091DA0080FF1FC0809114 +:1019C000D80080FF1BC08091DA008E7F8093DA0000 +:1019D0008091D90080FF0DC080E189BD82E189BD81 +:1019E00009B400FEFDCF81E08093E4010E9420094C +:1019F00005C019BC1092E4010E942E098091E100FB +:101A000080FF19C08091E20080FF15C08091E20044 +:101A10008E7F8093E2008091E20080618093E200FB +:101A20008091D80080628093D80019BC85E08093B3 +:101A3000E4010E9432098091E10084FF30C080916E +:101A4000E20084FF2CC080E189BD82E189BD09B438 +:101A500000FEFDCF8091D8008F7D8093D8008091CB +:101A6000E1008F7E8093E1008091E2008F7E809381 +:101A7000E2008091E20081608093E2008091E001C9 +:101A8000882311F084E007C08091E30087FD02C045 +:101A900081E001C083E08093E4010E9434098091D9 +:101AA000E10083FF29C08091E20083FF25C080917F +:101AB000E100877F8093E10082E08093E40110924F +:101AC000E0018091E1008E7F8093E1008091E2004F +:101AD0008E7F8093E2008091E20080618093E2003B +:101AE00042E060E080E00E94B90B8091F0008860E5 +:101AF0008093F0000E943109FF91EF91BF91AF9167 +:101B00009F918F917F916F915F914F913F912F9115 +:101B10000F900FBE0F901F9018951F920F920FB647 +:101B20000F9211242F933F934F935F936F937F9363 +:101B30008F939F93AF93BF93CF93DF93EF93FF93D5 +:101B4000C091E900CF708091EC00D82FD17080FD5A +:101B5000D0E81092E9008091F000877F8093F00038 +:101B600078940E94D10D1092E9008091F000886075 +:101B70008093F000CD2BCF70C093E900FF91EF91DF +:101B8000DF91CF91BF91AF919F918F917F916F9195 +:101B90005F914F913F912F910F900FBE0F901F902B +:101BA00018951F93CF93DF93CDB7DEB7AA970FB6E3 +:101BB000F894DEBF0FBECDBFE5EEF1E08091F100FD +:101BC000819321E0ED3EF207C9F70E945009809110 +:101BD000E80083FF24C18091E5019091E601492F3F +:101BE00050E04A30510508F01AC1FA01E15AFF4F9E +:101BF0000C943523803881F0823809F010C180912F +:101C0000E9018F708093E9008091EB0085FB8827C4 +:101C100080F91092E90006C08091E1019091E20103 +:101C2000911182609091E800977F9093E8008093F3 +:101C3000F1001092F100C8C0282F2D7F09F0EFC0ED +:101C4000882319F0823061F0EAC08091E701813089 +:101C500009F0E5C0933009F080E08093E2012BC0E9 +:101C60008091E701811127C08091E9018F7009F40B +:101C7000D6C08093E9002091EB0020FF1CC0933078 +:101C800021F48091EB00806214C09091EB00906190 +:101C90009093EB0021E030E0A90102C0440F551FF2 +:101CA0008A95E2F74093EA001092EA008091EB00F7 +:101CB00088608093EB001092E9008091E800877FB4 +:101CC00086C08111ACC01091E7011F778091E300BD +:101CD0008078812B8093E3008091E800877F809358 +:101CE000E8000E94EE0B8091E80080FFFCCF80911D +:101CF000E30080688093E300111102C082E001C01C +:101D000083E08093E4018BC08058823008F087C064 +:101D10008091E7019091E8018C3D53E0950779F5BA +:101D200083E08A838AE289834FB7F894DE011396B1 +:101D300020E03EE051E2E32FF0E050935700E491C1 +:101D400020FF03C0E295EF703F5FEF708E2F90E0B1 +:101D5000EA3010F0C79601C0C0968D939D932F5F17 +:101D6000243149F74FBF8091E800877F8093E800D6 +:101D70006AE270E0CE0101960E94FA0A14C0AE0138 +:101D80004F5F5F4F6091E9010E94430ABC01892BBC +:101D900009F445C09091E800977F9093E80089810D +:101DA0009A810E94580B8091E8008B778093E8001D +:101DB00036C08038A1F58091E800877F8093E800E5 +:101DC0008091E0018093F1008091E8008E7780930C +:101DD000E8000E94EE0B23C0811121C08091E70131 +:101DE0009091E80199270297D4F48091E800877FC9 +:101DF0008093E8008091E7018093E0010E94EE0B60 +:101E00008091E001811106C08091E30087FD02C04E +:101E100081E001C084E08093E4010E943C0980914C +:101E2000E80083FF0AC08091E800877F8093E80084 +:101E30008091EB0080628093EB00AA960FB6F89435 +:101E4000DEBF0FBECDBFDF91CF911F9108950895E2 +:101E5000CF938091E4018823A1F0C091E900CF7075 +:101E60009091EC00892F817090FD80E8C82B109232 +:101E7000E9008091E80083FD0E94D10DCF70C093EE +:101E8000E900CF91089590936901809368010895C6 +:101E9000E0916801F0916901309721F00190F081A3 +:101EA000E02D099480E00895E0916801F0916901C6 +:101EB000309721F00280F381E02D09940895E0919C +:101EC0006801F0916901309721F00480F581E02DDF +:101ED0000994089520916601309167012817390708 +:101EE00071F09093670180936601E0916801F09131 +:101EF0006901309721F00680F781E02D099408955B +:101F000020916401309165012817390771F0909391 +:101F1000650180936401E0916801F0916901309757 +:101F200021F00084F185E02D0994089508950C9422 +:101F3000960F0E94041B0E9406050C94CA1BCF92A8 +:101F4000DF92EF92FF920F931F93CF93DF93CDB762 +:101F5000DEB72B970FB6F894DEBF0FBECDBF0E9441 +:101F60001E058BE6C82E81E0D82E00E010E0E02EA2 +:101F7000802F0E941406F60141916F01F82EF4267D +:101F8000B1F40F5F1F4F0E30110589F78FEF898372 +:101F90008A831B820E940D1B8160782F9D838C8316 +:101FA00049815A816B818D810E94421040C090917D +:101FB000CC0191FF04C08B870E941A068B8520E01C +:101FC00030E04F2D50E0922FBA01022E02C07595DD +:101FD00067950A94E2F760FF24C02E83EF8221E028 +:101FE00030E0690102C0CC0CDD1C9A95E2F790E06C +:101FF0008C219D21892B09F420E028870E940D1B4C +:102000008160782F9A8789874E815F8168858A856C +:102010000E944210F801E559FE4F8081C826C08217 +:1020200006C02F5F3F4F2630310569F6AACF0E94C8 +:10203000B11E0E94480F90916A018917A1F00E9479 +:10204000480F80936A012B960FB6F894DEBF0FBE3F +:10205000CDBFDF91CF911F910F91FF90EF90DF9057 +:10206000CF900C943E082B960FB6F894DEBF0FBEAF +:10207000CDBFDF91CF911F910F91FF90EF90DF9037 +:10208000CF900895CF93DF93CDB7DEB72B970FB6E0 +:10209000F894DEBF0FBECDBF4F83588769877A871C +:1020A0008B87DE01119686E0FD0111928A95E9F792 +:1020B00085E0FE01379601900D928A95E1F74981FE +:1020C0005A816B817C818D819E810E9445172B9660 +:1020D0000FB6F894DEBF0FBECDBFDF91CF9108954C +:1020E000CF93C82F882309F4C1C0823859F40E94C5 +:1020F000480F81FDBBC089E30E94E2190E949A1A31 +:1021000089E30CC0833879F40E94480F80FDAEC08B +:1021100083E50E94E2190E949A1A83E50E94211A1F +:10212000CF910C949A1A843859F40E94480F82FD7A +:102130009DC087E40E94E2190E949A1A87E4EECFBC +:102140008CEF8C0F813A48F48C2F0E94F120811182 +:102150008DC08C2F0E94E219E3CF80E28C0F883073 +:1021600048F4C77081E001C0880FCA95EAF70E9461 +:10217000631AD6CF8BE58C0F833078F4C53A29F0FB +:10218000C63A31F083E890E005C081E890E002C0F3 +:1021900082E890E0CF910C946A0F88E58C0F833130 +:1021A00008F064C0C83A39F1C93A41F1CA3A49F174 +:1021B000CB3A51F1CC3A59F1CD3A61F1C03B69F1DA +:1021C000CE3A71F1CF3A79F1C13B81F1C23B89F14D +:1021D000C33B91F1C43B99F1C53BA1F1C63BA9F1C9 +:1021E000C73BB1F1C83BB9F1C93BC1F1CA3BC9F129 +:1021F00080E090E038C082EE90E035C089EE90E05B +:1022000032C08AEE90E02FC085EB90E02CC086EBC8 +:1022100090E029C087EB90E026C08CEC90E023C0D2 +:102220008DEC90E020C083E891E01DC08AE891E049 +:102230001AC082E991E017C084E991E014C081E2FC +:1022400092E011C083E292E00EC084E292E00BC003 +:1022500085E292E008C086E292E005C087E292E063 +:1022600002C08AE292E0CF910C94800FCF91089542 +:10227000882309F44BC0823859F40E94480F81FF2B +:1022800045C089E30E94E2190E949A1A89E30CC0B2 +:10229000833871F40E94480F80FF38C083E50E94A4 +:1022A000E2190E949A1A83E50E94211A0C949A1A44 +:1022B000843859F40E94480F82FF28C087E40E94A6 +:1022C000E2190E949A1A87E4EFCF9CEF980F913A97 +:1022D00058F390E2980F983050F4877091E001C065 +:1022E000990F8A95EAF7892F0E94691ADFCF9BE53B +:1022F000980F933020F480E090E00C946A0F885A95 +:10230000833120F480E090E00C94800F08958823BE +:1023100021F00E94631A0C949A1A0895882321F0E0 +:102320000E94691A0C949A1A0895BF92CF92DF9274 +:10233000EF92FF920F931F93CF93DF9300D000D0C3 +:1023400000D0CDB7DEB77C0185E0F701DE01119644 +:1023500001900D928A95E1F7F70183819481892B91 +:1023600009F4DDC2908181818F3F19F49F3F09F408 +:10237000D6C2F7010281258122952F7099838A8325 +:1023800089819A812E830E94A119182FB92E0E944B +:10239000A0190E946718EB2DE295EF704E2F50E0C8 +:1023A000FA01E759FF4F2E810C9435238B2D807F46 +:1023B0009B2D9F70F92E882319F0F29480EFF8225C +:1023C000002349F0FF2009F457C28F2D0E94731A91 +:1023D0000E949A1A51C2812F0E943811FF2009F4DD +:1023E0009EC28F2D0E94791A26960FB6F894DEBFF2 +:1023F0000FBECDBFDF91CF911F910F91FF90EF9056 +:10240000DF90CF90BF900C949A1A3B2D307F8B2D8C +:102410008F70303211F08295807F112319F01130C6 +:1024200021F12CC00023B9F0222309F490C12130FE +:1024300009F08DC126960FB6F894DEBF0FBECDBF52 +:10244000DF91CF911F910F91FF90EF90DF90CF9090 +:10245000BF900C94831A222319F0213009F45FC233 +:102460008E830E94861A8E8186C1002321F022303D +:1024700008F055C26CC1211152C27DC1002321F068 +:10248000222309F464C1F8C1222309F474C109C2EA +:102490008B2D86958695837019F08130D1F03FC2DF +:1024A000002321F0812F9B2D937002C080E090E0EB +:1024B00026960FB6F894DEBF0FBECDBFDF91CF9149 +:1024C0001F910F91FF90EF90DF90CF90BF900C94F1 +:1024D0006A0F002321F0812F9B2D937002C080E0B2 +:1024E00090E026960FB6F894DEBF0FBECDBFDF9109 +:1024F000CF911F910F91FF90EF90DF90CF90BF9001 +:102500000C94800F812F002319F00E94B91D02C086 +:102510000E94211E26960FB6F894DEBF0FBECDBFD7 +:10252000DF91CF911F910F91FF90EF90DF90CF90AF +:10253000BF900C94A61E8B2D837009F075C00111FD +:10254000EEC1812F829586958770880F880F912F15 +:102550009F70C92ED12CE12CF12C082E04C0CC0C7C +:10256000DD1CEE1CFF1C0A94D2F714FF12C00FE012 +:1025700010E020E030E004C0000F111F221F331FC5 +:102580008A95D2F7C901B8016095709580959095AC +:1025900003C060E070E0CB014B2D4695469543703B +:1025A0004230C1F060F56C297D298E299F29413088 +:1025B00051F126960FB6F894DEBF0FBECDBFDF9166 +:1025C000CF911F910F91FF90EF90DF90CF90BF9030 +:1025D0000C948E186C297D298E299F2926960FB67A +:1025E000F894DEBF0FBECDBFDF91CF911F910F9149 +:1025F000FF90EF90DF90CF90BF900C94AA180E94AC +:102600008E18C701B60126960FB6F894DEBF0FBE2E +:10261000CDBFDF91CF911F910F91FF90EF90DF9091 +:10262000CF90BF900C947218002319F08B2D8170FD +:1026300001C08695882309F472C1812F8295869501 +:102640008770880F880F912F9F70C92ED12CE12C95 +:10265000F12C082E04C0CC0CDD1CEE1CFF1C0A94CF +:10266000D2F714FF12C00FE010E020E030E004C009 +:10267000000F111F221F331F8A95D2F7C901B8011D +:10268000609570958095909503C060E070E0CB01F7 +:102690004B2D4695469543704230C1F060F56C294C +:1026A0007D298E299F29413051F126960FB6F89445 +:1026B000DEBF0FBECDBFDF91CF911F910F91FF9075 +:1026C000EF90DF90CF90BF900C9468196C297D2912 +:1026D0008E299F2926960FB6F894DEBF0FBECDBF78 +:1026E000DF91CF911F910F91FF90EF90DF90CF90EE +:1026F000BF900C9484190E946819C701B6012696F0 +:102700000FB6F894DEBF0FBECDBFDF91CF911F9102 +:102710000F91FF90EF90DF90CF90BF900C944C19E9 +:10272000103FD1F118F4103E50F4A1C0123F09F44B +:1027300063C008F44CC0133F09F473C098C01F7005 +:102740008B2D8F710023A1F00E94E518812F269612 +:102750000FB6F894DEBF0FBECDBFDF91CF911F91B2 +:102760000F91FF90EF90DF90CF90BF900C94871166 +:102770000E940619812F26960FB6F894DEBF0FBE71 +:10278000CDBFDF91CF911F910F91FF90EF90DF9020 +:10279000CF90BF900C948E110023A9F02111BFC0DF +:1027A0008B2D8F7126960FB6F894DEBF0FBECDBF6E +:1027B000DF91CF911F910F91FF90EF90DF90CF901D +:1027C000BF900C942B19223008F0A9C0E9CF002348 +:1027D000A9F08B2D8F7126960FB6F894DEBF0FBE31 +:1027E000CDBFDF91CF911F910F91FF90EF90DF90C0 +:1027F000CF90BF900C94E518002359F38B2D8F7167 +:1028000026960FB6F894DEBF0FBECDBFDF91CF91F5 +:102810001F910F91FF90EF90DF90CF90BF900C949D +:102820000619002399F08B2D8F7126960FB6F89418 +:10283000DEBF0FBECDBFDF91CF911F910F91FF90F3 +:10284000EF90DF90CF90BF900C94D01826960FB6E3 +:10285000F894DEBF0FBECDBFDF91CF911F910F91D6 +:10286000FF90EF90DF90CF90BF900C94C61800239C +:10287000A9F0222309F4ADCF812F26960FB6F89444 +:10288000DEBF0FBECDBFDF91CF911F910F91FF90A3 +:10289000EF90DF90CF90BF900C947010222309F43A +:1028A000ADCF812F26960FB6F894DEBF0FBECDBFF9 +:1028B000DF91CF911F910F91FF90EF90DF90CF901C +:1028C000BF900C9438114B2D4F70612FC7010E949F +:1028D000950326960FB6F894DEBF0FBECDBFDF91ED +:1028E000CF911F910F91FF90EF90DF90CF90BF900D +:1028F0000C94EA174B2D4F70612FC70126960FB627 +:10290000F894DEBF0FBECDBFDF91CF911F910F9125 +:10291000FF90EF90DF90CF90BF900C94DB0626964F +:102920000FB6F894DEBF0FBECDBFDF91CF911F91E0 +:102930000F91FF90EF90DF90CF90BF9008950E948D +:10294000801A0E94551A0E949A1A0E94561F0E94CD +:10295000A61E80E090E00E946A0F80E090E00C9458 +:10296000800F0E94701A0C949F140E94A119292FA5 +:1029700022952F702C3030F42A3048F42250223027 +:1029800078F405C02C3041F02F3031F009C0803E82 +:1029900048F0803F29F406C093FB882780F908950A +:1029A00080E0089581E00895CF93DF9300D000D0B8 +:1029B0001F92CDB7DEB70F900F900F900F900F9032 +:1029C000DF91CF910895CF93DF9300D000D000D056 +:1029D000CDB7DEB726960FB6F894DEBF0FBECDBFDB +:1029E000DF91CF9108951F93CF93DF93C091790129 +:1029F00016E080917A01C81799F0D0E01C9FF00191 +:102A00001D9FF00D1124E558FE4F408151816281D8 +:102A10007381848195810E94E3142196C770E9CF68 +:102A2000DF91CF911F9108954091AB015091AC017E +:102A30006091AD017091AE018091AF019091B001B4 +:102A40000C94E3148091B00182958F7009F054C00A +:102A50008091AD01882309F44FC080917901A09144 +:102A60007A014091AE015091AF016091AB0170913C +:102A7000AC01B6E08A1709F43FC090E0411551055A +:102A8000C1F17F3F11F46F3FA1F1B89FF001B99FF1 +:102A9000F00D1124E558FE4F218127132AC0208113 +:102AA000261327C02281211124C0238134812417B9 +:102AB000350710F421503109241B350B283C310512 +:102AC000C0F42091B0012F7020612093B00126E066 +:102AD000289FF001299FF00D1124E058FE4F8081BE +:102AE0008F70806180838BEA91E00E9495110C9435 +:102AF000F31401968770BECF0895CF92DF92EF92C4 +:102B0000FF920F931F93CF93DF93CDB7DEB76297FA +:102B10000FB6F894DEBF0FBECDBF8C0185E0F80183 +:102B2000DE011D9601900D928A95E1F7D8014C9136 +:102B300011965C91119712966C918091AE019091D3 +:102B4000AF01009709F475C13091AB017091AC01F0 +:102B50007F3F19F43F3F09F46CC1F801C380D48072 +:102B6000E090AD01EE2009F4BEC02091B001C8167E +:102B7000D90628F0D601A81BB90BCD0104C0809559 +:102B800090958C0D9D1DFF24F394883C910578F061 +:102B9000F12C207F09F0C4C07C2DD98AC88A89898C +:102BA0000E94D4148BEA91E00E949511AFC0822F4D +:102BB000807F09F045C0571313C0431311C0611142 +:102BC0000FC02F7020612093B0010E9414158BEA72 +:102BD00091E00E9495118091B001F80185832EC08B +:102BE000CD2819F15F3F11F44F3FF9F0F62E611136 +:102BF0001CC08091790120917A0136E0821709F496 +:102C00005BC090E0389FF001399FF00D1124E5582A +:102C1000FE4F7181571306C07081471303C0728144 +:102C2000711103C001968770E9CFF62E662309F46F +:102C30001CC18091B00181608093B001F12C15C15D +:102C4000571309C0431307C0611105C08091B0013B +:102C5000F8018583C8C04D875E878D859E856A8B08 +:102C60000E94B5146A898823D1F16623C1F12091AD +:102C7000B001822F82958F7090E0029774F080915E +:102C8000AB019091AC0198878F831986DB86CA8649 +:102C90002C87CE0107960E94951186E0F801ABEAD9 +:102CA000B1E001900D928A95E1F70E9422150E94F1 +:102CB0001415FF24F394D9C04D875E878D859E85BA +:102CC0000E94A119292F22952F70223008F0C1C02F +:102CD0009F7009F0BBC0805E883008F4C6C0C80190 +:102CE0000E949511E6CFC816D90608F453C0F60124 +:102CF000E81BF90BCF01883C910508F450C0F12C7A +:102D00007C2DD98AC88A89890E94D414EBEAF1E023 +:102D100086E0DF011D928A95E9F70E941415A5C08F +:102D2000571314C0431312C0611110C08091B00139 +:102D3000F8018583C8010E94951186E0EBEAF1E075 +:102D4000DF011D928A95E9F7FE2C8FC04D875E87C3 +:102D50008D859E856A8B0E94B5146A89882309F443 +:102D6000BECF662309F4BBCF2091B001822F82959C +:102D70008F7090E002970CF490CF8091AB0190910E +:102D8000AC019A8389831B82DD82CC822E83CE01A3 +:102D9000019681CF809590958C0D9D1DACCFF62E20 +:102DA000662309F49CCF571333C0431331C02091DD +:102DB000B00120FD24C0822F82958F70482F50E0F3 +:102DC00041155105E1F0D80115962C9315974F3018 +:102DD000510549F08F5F982F9295907F822F8F70C9 +:102DE000892B15968C93C8010E94951186E0F801F5 +:102DF000ABEAB1E001900D928A95E1F78ECF86E0C3 +:102E0000F801ABEAB1E001900D928A95E1F72DC08F +:102E10004D875E878D859E850E94B51481113DCFBB +:102E20008091B00181608093B001C8010E9495112A +:102E30001CC0662309F453CF4D875E878D859E8520 +:102E40000E94B514882309F44ACF27CF811143CFBC +:102E50000CC0243008F043CF9F7009F43CCFD80158 +:102E600015969C91907F09F036CF8F2D62960FB604 +:102E7000F894DEBF0FBECDBFDF91CF911F910F91B0 +:102E8000FF90EF90DF90CF9008951F93CF93DF9343 +:102E9000CDB7DEB72C970FB6F894DEBF0FBECDBF0F +:102EA0004F83588769877A878B879C87CE010796DF +:102EB0000E947D15882371F08A859B85892B09F4F2 +:102EC00041C088858F3F09F065C08F818F3F09F031 +:102ED00061C038C086E0FE013796DE011196019090 +:102EE0000D928A95E1F76A857B856115710551F12F +:102EF000FF81E885EF3F11F4FF3F21F120917A0136 +:102F000030E0C9010196877099274091790150E01E +:102F10008417950709F447C0F983EA837D836C839E +:102F200096E0929FD001939FB00D1124A558BE4FFB +:102F3000FE01319601900D929A95E1F780937A0106 +:102F40000E94F31416E08091790190917A0189171B +:102F5000B9F1189FC001112485589E4F0E947D151C +:102F6000882371F1E09179011E9FF0011124E55849 +:102F7000FE4F4081518162817381848195810E94DD +:102F8000E3148091790190E00196877099278093EE +:102F90007901D9CF4F81588569857A858B859C8544 +:102FA0000E94E314CFCF0E94B11410927A011092C4 +:102FB0007901EBEAF1E086E0DF011D928A95E9F7FD +:102FC0002C960FB6F894DEBF0FBECDBFDF91CF9128 +:102FD0001F910895EF92FF920F931F93CF93DF936A +:102FE0008C01892B09F46CC0F12CEE24E394E801E8 +:102FF0002196F8018491843740F4843008F051C060 +:10300000813081F0823019F15BC0853709F444C00A +:10301000A8F19CE7980F903708F052C08F770E9474 +:10302000381141C00E5F1F4FFE01849190E2980F4E +:10303000983050F48770FE2D01C0FF0F8A95EAF793 +:103040008F2F0E94731A14C00E9470102DC00E5F43 +:103050001F4FFE01849190E2980F983060F48770C2 +:10306000FE2D01C0FF0F8A95EAF78F2F0E94791A73 +:103070000E949A1A19C00E94381116C00E5F1F4F85 +:10308000FE01C491CC2381F08FE99FE00197F1F715 +:1030900000C00000C150F6CF0E5F1F4FFE01F4903C +:1030A00003C00E9470108E018F2D882309F49FCFDA +:1030B000EFE9FFE03197F1F700C000008150F5CF54 +:1030C000DF91CF911F910F91FF90EF900895089598 +:1030D0006093B5017093B6018093B7019093B801E6 +:1030E0000C949F140F931F930091B5011091B6019A +:1030F0002091B7013091B801DC01CB01802B912BDD +:10310000A22BB32B8093B5019093B601A093B70186 +:10311000B093B8011F910F910C949F140F931F93BC +:103120000091B5011091B6012091B7013091B8011D +:10313000DC01CB0180239123A223B3238093B5012B +:103140009093B601A093B701B093B8011F910F916E +:103150000C949F140F931F930091B5011091B60129 +:103160002091B7013091B801DC01CB018027912774 +:10317000A227B3278093B5019093B601A093B7011E +:10318000B093B8011F910F910C949F141092B1014C +:103190001092B2011092B3011092B4010C949F14DA +:1031A00041E050E060E070E004C0440F551F661F2E +:1031B000771F8A95D2F74093B1015093B201609383 +:1031C000B3017093B4010C949F1441E050E060E0AF +:1031D00070E004C0440F551F661F771F8A95D2F711 +:1031E0008091B1019091B201A091B301B091B4016D +:1031F000482B592B6A2B7B2B4093B1015093B20182 +:103200006093B3017093B4010C949F1441E050E0BB +:1032100060E070E004C0440F551F661F771F8A9559 +:10322000D2F740955095609570958091B10190913D +:10323000B201A091B301B091B401482359236A238C +:103240007B234093B1015093B2016093B30170931B +:10325000B4010C949F1441E050E060E070E004C0C1 +:10326000440F551F661F771F8A95D2F78091B101D1 +:103270009091B201A091B301B091B40148275927B0 +:103280006A277B274093B1015093B2016093B30149 +:103290007093B4010C949F140F931F930091B1018C +:1032A0001091B2012091B3013091B401DC01CB0146 +:1032B000802B912BA22BB32B8093B1019093B20161 +:1032C000A093B301B093B4011F910F910C949F147C +:1032D0000F931F930091B1011091B2012091B3019E +:1032E0003091B401DC01CB0180239123A223B323CD +:1032F0008093B1019093B201A093B301B093B40154 +:103300001F910F910C949F140F931F930091B10183 +:103310001091B2012091B3013091B401DC01CB01D5 +:1033200080279127A227B3278093B1019093B20100 +:10333000A093B301B093B4011F910F910C949F140B +:103340000895CF92DF92EF92FF920F931F93CF9346 +:10335000DF938C01C090B101D090B201E090B30135 +:10336000F090B4018091B5019091B601A091B701A0 +:10337000B091B801C82AD92AEA2AFB2ACFE1D0E0C5 +:10338000D701C6010C2E04C0B695A79597958795D1 +:103390000A94D2F780FF07C0B8018C2F0E94FF0665 +:1033A0008130910531F4219758F7B80180E00E94EF +:1033B000FF06DF91CF911F910F91FF90EF90DF906B +:1033C000CF90089590910C019923F1F090910D0107 +:1033D0009923D1F0982F9695969596959F3080F5E4 +:1033E000E0910E01F0910F01E90FF11D877021E0CE +:1033F00030E0A90102C0440F551F8A95E2F7CA01C7 +:103400009181892B8183089520910E0130910F01C4 +:10341000F90132969FEF40E05191851789F09F3F67 +:1034200019F4511101C0942F4F5F4E30A9F79F3FFF +:1034300039F0F901E90FF11D97FDFA95828308959E +:10344000089590910C019923F9F090910D01992321 +:10345000D9F0982F9695969596959F3028F5E091FE +:103460000E01F0910F01E90FF11D877021E030E0AE +:10347000A90102C0440F551F8A95E2F7CA01809541 +:10348000918189238183089520910E0130910F014C +:10349000F9013296205F3F4F9081891301C010825D +:1034A0003196E217F307C1F7089581E090E0E091CB +:1034B0000E01F0910F01E80FF91F10820196803183 +:1034C0009105A9F708959091CB01892B8093CB01A9 +:1034D000089580959091CB0189238093CB01089525 +:1034E0001092CB0108959091CA01892B8093CA0153 +:1034F000089580959091CA0189238093CA01089507 +:103500001092CA0108958093B90108951092B901EB +:10351000089580910E0190910F01FC0131969C015C +:10352000205F3F4F80E0919191118F5FE217F30789 +:10353000D1F70895E0910E01F0910F018091CB0138 +:103540008083E0910E01F0910F0190818091CA017A +:10355000892B80838091B901882361F0E0910E016D +:10356000F0910F019081892B80830E94891A81112B +:103570001092B90180910E0190910F010C94540F9B +:103580008091E401843011F120E488E190E00FB6ED +:10359000F894A895809360000FBE2093600083B7D5 +:1035A000817F846083BF83B7816083BF789488956F +:1035B00083B78E7F83BF0FB6F894A8958091600083 +:1035C000886180936000109260000FBE0895089596 +:1035D0000C94E71ACF930E94E81A0E941E050E94DD +:1035E000E71AC0E08C2F0E941406811104C0CF5F3F +:1035F000CE30C1F701C081E0CF9108950E94B1148F +:103600000E94480F0C943E0882E084BD93E095BD73 +:103610009AEF97BD80936E0008952FB7F89480912C +:10362000CD019091CE01A091CF01B091D0012FBFDB +:103630000895CF92DF92EF92FF920F931F932FB7CF +:10364000F8944091CD015091CE016091CF017091DD +:10365000D0012FBF6A017B01EE24FF248C0120E002 +:1036600030E0C016D106E206F30610F441505109CD +:103670009A01281B390BC9011F910F91FF90EF9000 +:10368000DF90CF9008951F920F920FB60F921124E2 +:103690008F939F93AF93BF938091CD019091CE0173 +:1036A000A091CF01B091D0010196A11DB11D8093D1 +:1036B000CD019093CE01A093CF01B093D001BF91E3 +:1036C000AF919F918F910F900FBE0F901F90189503 +:1036D0000E94400CF8942FEF87EA91E62150804039 +:1036E0009040E1F700C0000087E090EBDC018093A0 +:1036F000ED019093EE01A093EF01B093F0019CE0F7 +:1037000088E10FB6F894A895809360000FBE90935F +:103710006000FFCFEF92FF920F931F93CF93DF9341 +:10372000D82FC0E08C2F0E94140600E010E0E82E95 +:10373000F12CC701002E02C0959587950A94E2F7F7 +:1037400080FD06C00F5F1F4F0630110591F709C0BD +:10375000602F7C2F80E00E94DC068D13F3CF81E088 +:1037600004C0CF5FCE30F1F680E0DF91CF911F91A2 +:103770000F91FF90EF900895CF93C82F8CE20E9495 +:103780008A1B882321F08C2FCF910C948A1B80E018 +:10379000CF910895CF930E94111D811102C00E9404 +:1037A000F71CC5E6C15049F00E941E058FE39CE955 +:1037B0000197F1F700C00000F5CF89E20E94BC1B21 +:1037C000811113C18AE20E94BC1B81110E94F71C67 +:1037D00085E00E94BC1B81110E94681B0E941C1D79 +:1037E0008093CC0187E00E94BC1B8823A9F18BE168 +:1037F0000E94BC1B882351F08091CC0181FB2227C1 +:1038000020F991E0922790FB81F90EC08EE00E9492 +:10381000BC1B882361F08091CC0182FB222720F918 +:1038200091E0922790FB82F98093CC0115C080E152 +:103830000E94BC1B9091CC01882341F093FB22276E +:1038400020F981E0822780FB93F904C0892F8095BD +:1038500080FB90F99093CC018091CC010E94201DB7 +:103860000E942E1D8093DE0180EE0E94BC1B8823E7 +:1038700041F08091DE01982F909590FB80F9809324 +:10388000DE0189E30E94BC1B882359F08091DE0190 +:1038900081FB222720F991E0922790FB81F9809308 +:1038A000DE0182EE0E94BC1B882359F08091DE016C +:1038B00082FB222720F991E0922790FB82F98093E6 +:1038C000DE0186EE0E94BC1B882359F08091DE0148 +:1038D00083FB222720F991E0922790FB83F98093C4 +:1038E000DE0183EE0E94BC1B882359F08091DE012B +:1038F00084FB222720F991E0922790FB84F98093A2 +:10390000DE0185E30E94BC1B882359F08091DE0113 +:1039100085FB222720F991E0922790FB85F980937F +:10392000DE0181E30E94BC1B882359F08091DE01F7 +:1039300086FB222720F991E0922790FB86F980935D +:10394000DE0181E10E94BC1B882359F08091DE01D9 +:1039500087FB222720F991E0922790FB87F980933B +:10396000DE018091DE010E94321D8091DE0187FB25 +:10397000882780F980930D0187E20E94BC1BC82F25 +:103980008EE10E94BC1B8111C2608FE10E94BC1BB2 +:103990008111C46080E20E94BC1B8111C86081E279 +:1039A0000E94BC1B8111C06182E20E94BC1B81117C +:1039B000C06283E20E94BC1B8111C06484E20E9449 +:1039C000BC1B882311F0C06802C0CC2329F08C2FC7 +:1039D0000E94291D6C2F03C00E94251D682F70E0D6 +:1039E00080E090E0CF910C946818CF9108956DEE2F +:1039F0007EEF80E090E00E946B2360E082E090E048 +:103A00000E945D2360E083E090E00E945D2360E01F +:103A100084E090E00E945D2360E085E090E00C94FB +:103A20005D2380E090E00E94572321E08D3E9E4F71 +:103A300009F020E0822F089582E090E00C944F235B +:103A4000682F82E090E00C945D2383E090E00C947A +:103A50004F23682F83E090E00C945D2384E090E096 +:103A60000C944F23682F84E090E00C945D238091A8 +:103A7000D30180FF0BC06091130185E0689FB00106 +:103A8000112475956795759567952BC081FF09C0C1 +:103A90006091130185E0689FB001112475956795C9 +:103AA00020C082FF07C06091130185E0689FB001CC +:103AB000112417C09091D4019923D1F06091120183 +:103AC000961788F72091130185E0289F9001112413 +:103AD000929FA001939F500D112470E0CA010E9493 +:103AE00021236038710540F46115710519F406C091 +:103AF00065E070E0862F08958FE7089581E00895CE +:103B00008091D30180FF08C06091110170E075952C +:103B100067957595679521C081FF06C06091110179 +:103B200070E07595679519C082FF04C0609111011E +:103B300070E010C09091D401992399F06091100128 +:103B40009617A0F780911101899FC001112470E0A0 +:103B50000E9421236038710540F46115710519F444 +:103B600006C061E070E0862F08958FE7089581E038 +:103B70000895803F21F40E94371D819504C0813F44 +:103B800029F40E94371D8093D7010895823F21F4C4 +:103B90000E94371D819504C0833F29F40E94371D80 +:103BA0008093D6010895893F19F40E94801D05C0B5 +:103BB0008A3F31F40E94801D81958093D801089539 +:103BC0008B3F21F40E94801D819504C08C3F29F415 +:103BD0000E94801D8093D9010895843F21F4809133 +:103BE000D501816017C0853F21F48091D5018260A5 +:103BF00011C0863F21F48091D50184600BC0873FBE +:103C000021F48091D501886005C0883F31F480910E +:103C1000D50180618093D50108958D3F21F4809175 +:103C2000D30181600BC08E3F21F48091D30182606B +:103C300005C08F3F29F48091D30184608093D30124 +:103C40000895803F39F48091D70187FF6CC01092AE +:103C5000D70169C0813F29F48091D7011816BCF3C0 +:103C600062C09091D601823F29F497FF5CC0109208 +:103C7000D60159C0833F19F41916CCF354C0893FBB +:103C800041F48091D80118160CF04DC01092D80163 +:103C90004AC08A3F29F48091D80187FF44C0F6CFFB +:103CA0008B3F39F48091D90187FF3DC01092D90133 +:103CB0003AC08C3F29F48091D9011816BCF333C067 +:103CC000843F21F48091D5018E7F17C0853F21F478 +:103CD0008091D5018D7F11C0863F21F48091D5015F +:103CE0008B7F0BC0873F21F48091D501877F05C072 +:103CF000883F31F48091D5018F7E8093D50113C028 +:103D00008D3F21F48091D3018E7F0BC08E3F21F433 +:103D10008091D3018D7F05C08F3F29F48091D3011D +:103D20008B7F8093D3018091D60181110EC0809149 +:103D3000D70181110AC08091D801811106C08091FC +:103D4000D901811102C01092D401089585ED91E04E +:103D50000E945F0F0E940D1B9093D2018093D101AE +:103D600008951F93CF93DF938091D1019091D20159 +:103D70000E94191BAC019091D401992321F020914C +:103D8000140130E006C0209115018AE0289F9001BF +:103D900011244217530708F485C08091D601C091C1 +:103DA000D701D091D8011091D901811107C0C1115B +:103DB00075C0D11173C0111171C074C09F3F19F04B +:103DC0009F5F9093D401181624F40E94371D8093AE +:103DD000D6018091D60187FF05C00E94371D8195CD +:103DE0008093D6011C1624F40E94371D8093D701BE +:103DF0008091D70187FF05C00E94371D8195809370 +:103E0000D7016091D601662331F1C091D701CC234F +:103E100011F1062E000C770B880B990B0E942822BB +:103E200023E333E343E35FE30E948C220E94F0210B +:103E30006093D6016C2FCC0F770B880B990B0E94E7 +:103E4000282223E333E343E35FE30E948C220E94B2 +:103E5000F0216093D7011D1624F40E94801D8093E9 +:103E6000D8018091D80187FF05C00E94801D8195EF +:103E70008093D801111624F40E94801D8093D901EB +:103E80008091D90187FF05C00E94801D8195809394 +:103E9000D901DF91CF911F910C94A61E9F3F09F08D +:103EA0008FCFA0CFDF91CF911F910895E5EDF1E085 +:103EB00085E0DF011D928A95E9F71092D4011092F6 +:103EC000D3010895833081F128F4813059F0823094 +:103ED000D1F00895853009F449C0B8F1863009F46D +:103EE00056C0089580911501262F30E0280F311D0E +:103EF0002F3F310524F4680F6093150108958FEF6B +:103F000080931501089580911401262F30E0280F29 +:103F1000311D2F3F310524F4680F6093140108957B +:103F20008FEF80931401089580911301262F30E0C4 +:103F3000280F311D2F3F310524F4680F60931301C2 +:103F400008958FEF80931301089580911201262F19 +:103F500030E0280F311D2F3F310524F4680F6093A6 +:103F6000120108958FEF809312010895809111013D +:103F7000262F30E0280F311D2F3F310524F4680F24 +:103F80006093110108958FEF80931101089580913E +:103F90001001262F30E0280F311D2F3F310524F46A +:103FA000680F6093100108958FEF809310010895BA +:103FB000833011F128F4813049F0823091F0089576 +:103FC000853081F120F18630C1F10895809115018D +:103FD000681720F4861B809315010895109215012F +:103FE000089580911401681720F4861B80931401B2 +:103FF000089510921401089580911301681720F418 +:10400000861B8093130108951092130108958091E7 +:104010001201681720F4861B8093120108951092F4 +:104020001201089580911101681720F4861B809376 +:1040300011010895109211010895809110016817DF +:1040400020F4861B809310010895109210010895AA +:104050000F931F938D3109F46BC008F03FC08E3071 +:1040600009F47DC0C0F4873009F46EC068F486306E +:1040700009F0AFC08091CC01817F8E7F8093CC010D +:1040800081E08093DB01A6C0883009F458C08B30F2 +:1040900009F49BC09EC0863109F497C078F4803142 +:1040A00009F470C0813109F094C00E94B11490915C +:1040B0000D0181E0892780930D0187C0893109F4C2 +:1040C00084C08B3109F085C08091CC0181FB22270F +:1040D00020F991E0922790FB81F94AC0853309F4D9 +:1040E0005BC048F4873209F457C008F45AC08932DB +:1040F00009F452C06EC0833438F48A3308F067C0C4 +:10410000883309F462C065C0833409F445C088343B +:1041100009F05FC00E94B1140FEF13ED20E30150CE +:1041200010402040E1F700C000000E94681B4DC015 +:104130000E94AA210E94480F0E943E0846C00E9489 +:104140001C1D0E942E1D41C09091CC01892F8170B1 +:1041500090FF12C0917F9E7F9093CC013BC08091D5 +:10416000CC0182FB222720F991E0922790FB82F973 +:104170008093CC01992349F18091CC018160809397 +:10418000CC0123C08091CC0183FB222720F991E050 +:10419000922790FB83F9ECCF61E070E080E090E043 +:1041A00010C08D5141E050E060E070E08A019B0159 +:1041B00004C0000F111F221F331F8A95D2F7C901B7 +:1041C000B8010E9468180E94B11481E003C08953AD +:1041D000E9CF80E01F910F91089580E008950C943D +:1041E000ED20CF93C82F8091DB01813079F018F05A +:1041F0008230E9F187C0E0910E01F0910F018081DA +:10420000813169F0823209F07FC009C0E0910E016E +:10421000F0910F018081813111F0823261F48C2F95 +:104220000E94EF20811104C08C2F0E9428201DC005 +:1042300081E090E01AC08C2F0E94ED20811114C003 +:10424000C43179F048F4CB3079F0C03109F060C066 +:1042500082E08093DB0108C0C93219F0C83321F035 +:1042600057C01092DB0154C081E0817053C0C93245 +:1042700089F118F5C43171F1A8F4C73009F046C0CE +:104280008AE08093150194E19093140193E0909358 +:1042900013018093120188E08093110188E28093DA +:1042A000100134C0CE51C63088F5EC2FF0E0E65D49 +:1042B000FE4F80818093DA0129C0CE34E9F020F4EA +:1042C000CB3421F56AE013C0C13579F0C235F1F481 +:1042D00061E00DC08091DA01882319F01092DA01B3 +:1042E00015C081E08093DB0115C061E006C08091BC +:1042F000DA010E94621F0AC06AE08091DA010E941E +:10430000D81F04C01092DB0180E004C081E002C02D +:1043100080E0ABCFCF910895E1E8F0E08081886044 +:1043200080838081816080838FB7F89493E090933D +:10433000890090ED909388008FBF0895EFE6F0E03C +:104340008081826080830895EFE6F0E080818D7F38 +:1043500080830895EFE6F0E0908182E089278083F2 +:1043600008951F920F920FB60F9211242F933F932F +:104370004F935F936F937F938F939F93AF93BF936D +:10438000EF93FF938091DC019091DD010196909372 +:10439000DD018093DC01811103C082E00E943E08B0 +:1043A000E091DD01E695E695F0E0E95AF94FE491F8 +:1043B0008091DC018E1303C080E00E943E08FF91D3 +:1043C000EF91BF91AF919F918F917F916F915F918D +:1043D0004F913F912F910F900FBE0F901F90189506 +:1043E0000E94F7216894B1110C94862208950E94CE +:1043F0006B2288F09F5798F0B92F9927B751B0F0EA +:10440000E1F0660F771F881F991F1AF0BA95C9F758 +:1044100014C0B13091F00E948522B1E008950C944F +:104420008522672F782F8827B85F39F0B93FCCF302 +:10443000869577956795B395D9F73EF490958095D5 +:10444000709561957F4F8F4F9F4F0895E89409C0F5 +:1044500097FB3EF490958095709561957F4F8F4FB7 +:104460009F4F9923A9F0F92F96E9BB279395F695CD +:10447000879577956795B795F111F8CFFAF4BB0F4B +:1044800011F460FF1BC06F5F7F4F8F4F9F4F16C0AF +:10449000882311F096E911C0772321F09EE8872F39 +:1044A000762F05C0662371F096E8862F70E060E0F5 +:1044B0002AF09A95660F771F881FDAF7880F96956E +:1044C000879597F9089557FD9058440F551F59F057 +:1044D0005F3F71F04795880F97FB991F61F09F3FF1 +:1044E00079F087950895121613061406551FF2CF1A +:1044F0004695F1DF08C0161617061806991FF1CF6A +:1045000086957105610508940895E894BB27662790 +:104510007727CB0197F908950E949F220C941023CE +:104520000E94022338F00E94092320F0952311F005 +:104530000C94F9220C94FF2211240C9486220E94E0 +:10454000632270F3959FC1F3950F50E0551F629F52 +:10455000F001729FBB27F00DB11D639FAA27F00DDC +:10456000B11DAA1F649F6627B00DA11D661F829F03 +:104570002227B00DA11D621F739FB00DA11D621FE8 +:10458000839FA00D611D221F749F3327A00D611D05 +:10459000231F849F600D211D822F762F6A2F1124E7 +:1045A0009F5750409AF0F1F088234AF0EE0FFF1F1A +:1045B000BB1F661F771F881F91505040A9F79E3F71 +:1045C000510580F00C94F9220C9486225F3FE4F3AD +:1045D000983ED4F3869577956795B795F795E795C7 +:1045E0009F5FC1F7FE2B880F911D9695879597F9D0 +:1045F000089597F99F6780E870E060E008959FEF65 +:1046000080EC089500240A94161617061806090669 +:10461000089500240A941216130614060506089538 +:10462000092E0394000C11F4882352F0BB0F40F4C0 +:10463000BF2B11F460FF04C06F5F7F4F8F4F9F4F00 +:10464000089597FB072E16F4009407D077FD09D044 +:104650000E943B2307FC05D03EF4909581959F4F27 +:104660000895709561957F4F0895EE0FFF1F059097 +:10467000F491E02D0994AA1BBB1B51E107C0AA1FAE +:10468000BB1FA617B70710F0A61BB70B881F991FF3 +:104690005A95A9F780959095BC01CD010895F99997 +:1046A000FECF92BD81BDF89A992780B50895A8E103 +:1046B000B0E042E050E00C947223262FF999FECF2F +:1046C0001FBA92BD81BD20BD0FB6F894FA9AF99A2F +:1046D0000FBE019608950E945D23272F0C945E2340 +:1046E000DC01CB01FC01F999FECF06C0F2BDE1BDB2 +:1046F000F89A319600B40D9241505040B8F70895A1 +:04470000F894FFCF5B +:1047040020023F08CF08AA08760842080101BA012E +:1047140028080A03140A3F4D36391806CB059505B7 +:104724005C05EF04080521053A05010203040506AA +:044734000708090069 +:00000001FF diff --git a/keyboard/ergodox_ez/keymaps/colemak_osx_pc_no/keyboard-layout.png b/keyboard/ergodox_ez/keymaps/colemak_osx_pc_no/keyboard-layout.png new file mode 100644 index 0000000000..57df5a1f99 Binary files /dev/null and b/keyboard/ergodox_ez/keymaps/colemak_osx_pc_no/keyboard-layout.png differ diff --git a/keyboard/ergodox_ez/keymaps/colemak_osx_pc_no/keymap.c b/keyboard/ergodox_ez/keymaps/colemak_osx_pc_no/keymap.c new file mode 100644 index 0000000000..da540c7a30 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/colemak_osx_pc_no/keymap.c @@ -0,0 +1,264 @@ +#include "ergodox_ez.h" +#include "debug.h" +#include "action_layer.h" +#include "../../../../quantum/keymap_extras/keymap_norwegian.c" + +#define BASE 0 // default layer +#define BASE_MAC 1 // default layer mac +#define NUMB_SYMB 2 // numbers and symbols +#define NUMB_SYMB_MAC 3 // numbers and symbols mac +#define FUNCTION 4 // function keys + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* Keymap 0: Basic layer PC + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | \ | [ | ] | { | } | * |Mac/PC| | ^ | $ | ( | ) | < | > | @ | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | ? | Q | W | F | P | G | " | | ' | J | L | U | Y | Å | Æ | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | : | A | R | S | T | D |------| |------| H | N | E | I | O | Ø | + * |--------+------+------+------+------+------| ; | | = |------+------+------+------+------+--------| + * | ! | Z | X | C | V | B | | | | K | M | RIGHT| DOWN | UP | _ | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | Func | Lclk | Rclk | TAB |,/CTRL| | LEFT | Esc | ` | # | Num | + * `----------------------------------' `----------------------------------' + * ,-------------. ,--------------. + * | & | | | |Insert| / | + * ,------|------|------| |------+-------+------. + * | | | + | | Del | | | + * | Shift| ./Spc|------| |------| Enter |Space| + * | | |-/Alt | | Bspc | | | + * `--------------------' `---------------------' + */ +[BASE] = KEYMAP( + // left hand + NO_BSLS, NO_LBRC, NO_RBRC, NO_LCBR, NO_RCBR, NO_ASTR, TG(1), + NO_QUES, KC_Q, KC_W, KC_F, KC_P, KC_G, NO_QUO2, + NO_COLN, KC_A, KC_R, KC_S, KC_T, KC_D, + KC_EXLM, KC_Z, KC_X, KC_C, KC_V, KC_B, NO_SCLN, + MO(4), KC_BTN1, KC_BTN2, KC_TAB,GUI_T(KC_COMMA), + NO_AMP, NO_PIPE, + NO_PLUS, + KC_FN1,CTL_T(KC_DOT),ALT_T(NO_MINS), + // right hand + KC_FN5, NO_DLR, NO_LPRN, NO_RPRN ,KC_FN3, KC_FN4,NO_AT, + NO_APOS, KC_J, KC_L, KC_U, KC_Y, NO_AA, NO_AE , + KC_H, KC_N, KC_E, KC_I, KC_O, NO_OSLH, + NO_EQL, KC_K, KC_M, KC_RIGHT, KC_DOWN, KC_UP, NO_UNDS, + KC_LEFT, KC_ESC, KC_FN7, KC_HASH, MO(2), + KC_INSERT, NO_SLSH, + KC_DELT, + KC_BSPC,KC_ENT,KC_SPC + ), +/* Keymap 1: Basic layer MACS (Same as pc, except for cmd/ctrl, which are swapped) + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | \ | | | { | } | | | | | $ | | | < | > | @ | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | | | | | | | | | | | | | | + * |--------+------+------+------+------+------| | | ' |------+------+------+------+------+--------| + * | | | | | | |------| |------| | | | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | | | | | | | | | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | Func | | | |,/Ctrl| | | | ` | | Num | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | |./Cmd |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +[BASE_MAC] = KEYMAP( + NO_BSLS_MAC, KC_TRNS,KC_TRNS, NO_LCBR_MAC,NO_RCBR_MAC, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS , KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, CTL_T(KC_COMMA), + KC_TRNS, NO_PIPE_MAC, + KC_TRNS, + KC_TRNS,GUI_T(KC_DOT) , KC_TRNS, + // right hand + KC_TRNS, NO_DLR_MAC, KC_TRNS,KC_TRNS,KC_FN8, KC_FN9,NO_AT_MAC, + NO_APOS_MAC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, NO_GRV_MAC, KC_TRNS, MO(3), + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS +), + +/* Keymap 2: Number ++ layer pc + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | | | % | | | | | | ~ | ´ | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | 3 | 2 | 1 | 0 | |------| |------| | 5 | 6 | 7 | 8 | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | 4 | | | | | | 9 | END | PGDWN| PGUP | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | HOME | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +[NUMB_SYMB] = KEYMAP( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_PERC, KC_TRNS , KC_TRNS, + KC_TRNS, KC_3 , KC_2 , KC_1 , KC_0 , KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_4, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, + // right hand + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_FN2, KC_FN6 , KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_5, KC_6, KC_7, KC_8, KC_TRNS, + KC_TRNS, KC_HOME, KC_9, KC_END, KC_PGDN, KC_PGUP, KC_TRNS, + KC_HOME, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS +), + +/* Keymap 3: Number ++ layer mac. Some keys have to be repeated from the pc symbol layer, since transient keys inherit from the layer we jump from, not the layer above. + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | | | % | | | | | | ~ | ´ | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | 3 | 2 | 1 | 0 | |------| |------| | 5 | 6 | 7 | 8 | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | 4 | | | | | | 9 | END | PGDWN| PGUP | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | HOME | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +[NUMB_SYMB_MAC] = KEYMAP( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_PERC, KC_TRNS , KC_TRNS, + KC_TRNS, KC_3 , KC_2 , KC_1 , KC_0 , KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_4, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, + // right hand + KC_TRNS, KC_TRNS, KC_TRNS , KC_TRNS, KC_TRNS , KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_FN2, KC_FN10, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_5, KC_6, KC_7, KC_8, KC_TRNS, + KC_TRNS, KC_HOME, KC_9, KC_END, KC_PGDN, KC_PGUP, KC_TRNS, + KC_HOME, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS +), + +/* Keymap 4: Function layer mac + pc + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | | | | | | | | | | | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | F3 | F2 | F1 | | |------| |------| | F5 | F6 | F7 | F8 | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | F4 | | | | | | F9 | F10 | F11 | F12 | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +[FUNCTION] = KEYMAP( + KC_5, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS , KC_TRNS, + KC_TRNS, KC_F3 , KC_F2 , KC_F1 , KC_TRNS , KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F4, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, + // right hand + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_F5, KC_F6, KC_F7, KC_F8, KC_TRNS, + KC_TRNS, NO_TILD, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS +) +}; + +enum macro_id { + TILDE_NO, LESS_NO, GRTR_NO, CIRC_NO, ACUT_NO, GRV_NO, LESS_NO_MAC, GRTR_NO_MAC, ACUT_NO_MAC +}; + +const uint16_t PROGMEM fn_actions[] = { + [1] = ACTION_MODS_ONESHOT(MOD_LSFT), // Sticky shift light. Tap for the next keypress to be shifted. Hold for regular shift. + [2] = ACTION_MACRO(TILDE_NO), // Completed ~ character(pc and mac), no space needed. + [3] = ACTION_MACRO(LESS_NO), // < completed on keypress down, to avoid shifting the next character if it is not released first. + [4] = ACTION_MACRO(GRTR_NO), // > completed on keypress down, to avoid shifting the next character if it is not released first. + [5] = ACTION_MACRO(CIRC_NO), // Completed ^ character, no space needed. + [6] = ACTION_MACRO(ACUT_NO), // Completed ´ character, no space needed. + [7] = ACTION_MACRO(GRV_NO), // Completed ` character, no space needed. + [8] = ACTION_MACRO(LESS_NO_MAC), // < completed on keypress down, to avoid same button problem when typing <> quickly + [9] = ACTION_MACRO(GRTR_NO_MAC), // > completed on keypress down, to avoid same button problem when typing <> quickly + [10] = ACTION_MACRO(ACUT_NO_MAC), // Completed ´ character, no space needed +}; + + + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + keyevent_t event = record->event; + + switch (id) { + case TILDE_NO: + return (event.pressed ? MACRO( D(RALT), T(RBRC), U(RALT), T(SPC), END ) : MACRO_NONE); + case LESS_NO: + return (event.pressed ? MACRO( T(NUBS), END ) : MACRO_NONE); + case GRTR_NO: + return (event.pressed ? MACRO( D(LSFT), T(NUBS), U(LSFT), END ) : MACRO_NONE); + case CIRC_NO: + return (event.pressed ? MACRO( D(LSFT), T(RBRC), U(LSFT), T(SPC), END ) : MACRO_NONE); + case ACUT_NO: + return (event.pressed ? MACRO( D(RALT), T(EQL), U(RALT), T(SPC), END ) : MACRO_NONE); + case GRV_NO: + return (event.pressed ? MACRO( D(LSFT), T(EQL), T(SPC), U(LSFT), END ) : MACRO_NONE); + case LESS_NO_MAC: + return (event.pressed ? MACRO( T(GRV), END ) : MACRO_NONE); + case GRTR_NO_MAC: + return (event.pressed ? MACRO( D(LSFT), T(GRV), U(LSFT), END ) : MACRO_NONE); + case ACUT_NO_MAC: + return (event.pressed ? MACRO( T(EQL), T(SPC), END ) : MACRO_NONE); + } + return MACRO_NONE; +}; diff --git a/keyboard/ergodox_ez/keymaps/colemak_osx_pc_no/readme.md b/keyboard/ergodox_ez/keymaps/colemak_osx_pc_no/readme.md new file mode 100644 index 0000000000..48f095cae9 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/colemak_osx_pc_no/readme.md @@ -0,0 +1,23 @@ +# Norwegian Colemak setup with osx/pc toggle + +## Motivation +I wanted a Norwegian Colemak setup that worked in a similar way on both my Mac and PC. I also wanted it to translate from a standard Norwegian keyboard OS setup. + +## Overview +The setup is created to be programmer friendly. +- Most of the symbols used in code can be activated without using layers or shift key. +- You can reach the IDE/OS shortcut activators(Ctrl, Win/Cmd, Alt, Shift) with the thumb. +- Navigation is prioritized, arrows are right below the home row. + +## PC/Mac toggle +The default setup is for Norwegian keyboard setting(not colemak variants) on a PC(Windows or Linux). Use the Mac/PC toggle button to switch between OSX and PC setup. The settings will be reverted to PC setup each time you restart/connect the keyboard. + +## Layers +Numbers and function buttons are on their own layers. The easiest way to switch layers(at least with my hands) in this setup, is to push your hand right below the little finger, on the layer switches. You will then have all your fingers free to type numbers or press function buttons. + +## Shift-key +Tap for the next character to be shifted, hold down for regular shift functionality + +## Layout + +![keyboard-layout](keyboard-layout.png) diff --git a/keyboard/ergodox_ez/keymaps/csharp_dev/csharp_dev.hex b/keyboard/ergodox_ez/keymaps/csharp_dev/csharp_dev.hex new file mode 100644 index 0000000000..12efef223d --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/csharp_dev/csharp_dev.hex @@ -0,0 +1,1147 @@ +:100000000C94DF020C9426030C9426030C94260314 +:100010000C9426030C9426030C9426030C942603BC +:100020000C9426030C9426030C94930C0C94650DED +:100030000C9426030C9426030C9426030C9426039C +:100040000C9426030C94D9210C9426030C942603BB +:100050000C9426030C946B1B0C9426030C9426031F +:100060000C9426030C9426030C9426030C9426036C +:100070000C9426030C9426030C9426030C9426035C +:100080000C9426030C9426030C9426030C9426034C +:100090000C9426030C9426030C9426030C9426033C +:1000A0000C9426030C9426030C94260337033D037B +:1000B000430349034F0354035903630368035E0377 +:1000C0006D03720377037C0381038603D20DF40D65 +:1000D000E70EF40DE70E390E5C0EE70EB10EC40EFE +:1000E000AE11AE11DD11DD1120125A126714671422 +:1000F00073126714681368133B146714671452145F +:1001000001E1012602260127022702E10133023321 +:10011000000111021101080208011A021A012C0241 +:100120002C00013802380138023801E101170217AA +:1001300001120212010702070112021202E1012C50 +:10014000022C000105020501150215010802080133 +:10015000040204010E020E013302330001110211E8 +:1001600001180218010F020F010F020F0001150202 +:1001700015010802080117021701180218011502DB +:1001800015011102110001090209010F020F0112EC +:1001900002120104020401170217012C022C0001B3 +:1001A0000C020C0111021101170217012C022C0084 +:1001B000010502050112021201120212010F020FC3 +:1001C000012C022C0001160216011702170115025C +:1001D00015010C020C01110211010A020A012C0284 +:1001E0002C00011902190104020401150215012C49 +:1001F000022C000119021901120212010C020C0159 +:10020000070207012C022C0001060206011202124D +:10021000011102110116021601170217012C022CFE +:100220000001160216011702170104020401170249 +:1002300017010C020C01060206012C022C0001130E +:10024000021301150215010C020C01190219010417 +:1002500002040117021701080208012C022C0001F8 +:100260001302130118021801050205010F020F0104 +:100270000C020C01060206012C022C000000F0A169 +:10028000260227022F0230022B7100001E001400EC +:1002900004001D74360219011F001A0016001B000D +:1002A00037022C722000080007000600310228786F +:1002B0002100150009001900240206012200170080 +:1002C0000A0005000000378134022A0000003800CF +:1002D0000000360016014C000000330000004A0008 +:1002E00023001C000B00110000004D8124001800A9 +:1002F0000D0010002E00520025000C000E003400EE +:100300002E022878260012000F001E022D002C72EB +:10031000270013002D023802250251002F00300063 +:100320001C011D010154000029002B0001000100E7 +:10033000010000003A000A300B300100E300010028 +:100340003B000C300D300100E20001003C00103099 +:100350000F300E30010001003D001130123013301B +:10036000010001003E00143015301630000001007D +:10037000350001000000310000001B01B200010047 +:1003800000003502000001003F001730183019301E +:100390000000010040000100010001004B000100CD +:1003A00041000100010001004E004F004200010029 +:1003B000010001004900500043000100010001005C +:1003C000460001004400450001000100010000005A +:1003D00016034500720067006F0044006F0078004C +:1003E000200045005A000000160345007200670017 +:1003F0006F0044006F007800200045005A000000A4 +:100400000403090409026D00040100A0FA090400B4 +:10041000000103010100092111010001223F000731 +:1004200005810308000A0904010001030102000913 +:100430002111010001224D000705820308000A096D +:10044000040200010300000009211101000122360D +:10045000000705830308000A0904030001030000E4 +:100460000009211101000122390007058403100051 +:10047000011201100100000008EDFE071301000148 +:1004800002000105010906A101050719E029E71588 +:1004900000250195087501810205081901290595B6 +:1004A0000575019102950175039101050719002950 +:1004B0007715002501957875018102C00501098035 +:1004C000A101850216010026B7001A01002AB70013 +:1004D000751095018100C0050C0901A10185031665 +:1004E0000100269C021A01002A9C027510950181C8 +:1004F00000C005010902A1010901A10005091901B6 +:1005000029051500250195057501810295017503E1 +:1005100081010501093009311581257F9502750892 +:10052000810609381581257F950175088106050C1E +:100530000A38021581257F950175088106C0C0051E +:10054000010906A101050719E029E7150025019514 +:1005500008750181029501750881010508190129B5 +:10056000059505750191029501750391010507191E +:100570000029FF150025FF950675088100C00000C1 +:10058000000000000000000000010204060A0F172E +:10059000202C3A4A5D71879DB3C7DAE9F5FCFFFC70 +:1005A000F5E9DAC7B39D87715D4A3A2C20170F0A27 +:1005B00006040201000000000000000000001124F9 +:1005C0001FBECFEFDAE0DEBFCDBF04B603FE27C00B +:1005D0008091ED019091EE01A091EF01B091F001B9 +:1005E0008730904BA740B04BD1F41092ED011092A0 +:1005F000EE011092EF011092F00114BE84B7877FD4 +:1006000084BF0FB6F894A8958091600088618093AC +:100610006000109260000FBEE0E0FFE3099511E07A +:10062000A0E0B1E0E4E5F7E402C005900D92A43348 +:10063000B107D9F721E0A4E3B1E001C01D92AD3EBE +:10064000B207E1F70E94DA090C94A8230C94000089 +:10065000462F50E0FA013A97E031F10508F05BC00F +:10066000EA5AFF4FDC0112968C910C945D2388238B +:1006700009F451C08FE592E00895882309F44BC036 +:100680008EE392E00895882309F445C081E292E068 +:100690000895882309F43FC088E092E008958823F4 +:1006A000D1F183EF91E008958823A9F182EE91E0E2 +:1006B0000895882381F185EC91E00895882359F10C +:1006C00080EB91E00895882331F18FE991E008955E +:1006D000882309F186E891E008958823E1F08DE60A +:1006E00091E008958823B9F08CE591E0089588237E +:1006F00091F083E491E00895882369F082E291E02B +:100700000895882341F081E191E00895882319F04C +:1007100080E091E0089580E090E008950895609170 +:10072000B1017091B2018091B3019091B4010E9426 +:10073000981A56985E9825982D9826982E9827985E +:100740002F98813019F0823021F00895259A2D9A42 +:100750000895269A2E9A08950C948F0356985E98C1 +:1007600025982D9826982E9827982F988FEF90E00F +:10077000909389008093880090938B0080938A00E7 +:1007800090938D0080938C00259A2D9A2FEF80E70F +:1007900092E0215080409040E1F700C00000269A8E +:1007A0002E9A2FEF80E792E0215080409040E1F7B1 +:1007B00000C00000279A2F9A2FEF80E792E0215087 +:1007C00080409040E1F700C0000025982D982FEF61 +:1007D00080E792E0215080409040E1F700C00000A7 +:1007E00026982E982FEF80E792E02150804090408D +:1007F000E1F700C0000027982F9856985E9825983A +:100800002D9826982E9827982F98089589EA8093F6 +:10081000800089E08093810024982C983F988AB1C9 +:100820008F748AB96E98479A8BB1806B8BB9769A20 +:100830000E94AE030C948E0380E2809300018091AD +:10084000340181110EC00E946B0481E08093340159 +:100850002FEF83ED90E3215080409040E1F700C0FE +:10086000000080E40E9471048093000181112EC079 +:100870000E949B0480930001811128C00E949B0468 +:1008800080930001811122C08FE30E949B0480931A +:10089000000181111BC00E94930480E40E94710436 +:1008A00080930001811112C08CE00E949B04809310 +:1008B000000181110BC00E949B04809300018111F3 +:1008C00005C08FE30E949B04809300010E94930463 +:1008D0008091000108951092B9008AE08093B800D9 +:1008E000089594EA9093BC009091BC0097FFFCCFD0 +:1008F0009091B900987F983021F0903111F081E00B +:1009000008958093BB0084E88093BC008091BC0074 +:1009100087FFFCCF8091B900887F883111F0803447 +:1009200071F780E0089584E98093BC008091BC0059 +:1009300084FDFCCF08958093BB0084E88093BC00C5 +:100940008091BC0087FFFCCF9091B900987F81E037 +:10095000983209F480E0089584E88093BC00809187 +:10096000BC0087FFFCCF8091BB00089580910001FF +:10097000811115C080E40E947104809300018111EF +:100980000CC082E10E949B0480930001811105C08C +:100990008FEF0E949B04809300010E94930484B116 +:1009A000807F84B985B1807F85B98AB1837F8AB918 +:1009B0008BB1837F8BB93E98469808950E941C04A2 +:1009C000809300010E94B60480B38C7080BB81B319 +:1009D000836F81BBE4E4F1E0A6E3B1E011921D92E4 +:1009E00081E0E235F807D1F70C9406049F92AF92AC +:1009F000BF92CF92DF92EF92FF920F931F93CF930C +:100A0000DF9380910001882379F0809135018F5F19 +:100A100080933501811108C00E941C04809300015D +:100A2000811102C00E94AE0386E3E82E81E0F82E19 +:100A30008701C0E0D0E0BB24B39492E0A92ECC247F +:100A4000C394D12CC730D10500F5809100018111EC +:100A500064C080E40E94710480930001811112C07F +:100A600082E10E949B048093000181110BC0C601AA +:100A70000C2E01C0880F0A94EAF780950E949B040F +:100A8000809300010E94930448C0CA30A1F028F46A +:100A9000C83059F0C93061F005C0CC3089F070F031 +:100AA000CD3089F0209A289810C0219A29980DC03D +:100AB000229A2A980AC0239A2B9807C0529A01C0FA +:100AC000539A5B9802C03E9A4698E0EAEA95F1F79D +:100AD0008FB181708B25799902C032E001C030E07E +:100AE000832B7C9902C034E001C030E0832B7D99D8 +:100AF00002C028E001C020E0822B7E9902C090E174 +:100B000001C090E0892B9FB19095991F9927991F5B +:100B10009295990F907E892B0FC0809100018111D1 +:100B20004AC080E40E94710480930001882381F10F +:100B3000912C0E949304892DD8019C91981719F04B +:100B40008C93A09201010E94B60421960F5F1F4F63 +:100B5000CE30D10509F076CF80910101882369F16B +:100B6000815080930101882339F0EFE9FFE031974C +:100B7000F1F700C0000021C0E4E4F1E0D7018D915D +:100B80007D018193B4E4EB16B1E0FB06B9F715C023 +:100B900083E10E949B04809300018111C9CF81E40D +:100BA0000E947104809300018111C2CF0E94AC04A5 +:100BB000982E9094BECF80E0BFCF0E94AC0381E01E +:100BC000DF91CF911F910F91FF90EF90DF90CF9029 +:100BD000BF90AF909F900895E82FF0E0EC5BFE4F40 +:100BE0008081089508958B3B910580F4883A9105A2 +:100BF00048F5853A9105D8F48430910508F0B2C0E3 +:100C0000019709F06EC081E090E00895803E910563 +:100C100008F467C0883E910508F4A4C09C01205FD9 +:100C200031092031310508F05CC090650895853A9E +:100C3000910509F459C0863A910509F058C082E837 +:100C400090E40895883A910509F454C0893A9105D1 +:100C500009F453C08A3A910509F452C08B3A9105C0 +:100C600009F451C08C3A910509F450C08D3A9105B0 +:100C700009F44FC0803B910509F44EC08E3A9105AE +:100C800009F44DC08F3A910509F44CC0813B9105A0 +:100C900009F44BC0823B910509F44AC0833B91059E +:100CA00009F449C0843B910509F448C0853B91058E +:100CB00009F447C0863B910509F446C0873B91057E +:100CC00009F445C0883B910509F444C0893B91056E +:100CD00009F443C08A3B910509F442C080E094E4E2 +:100CE000089580E090E0089581E890E4089583E815 +:100CF00090E4089582EE94E4089589EE94E40895D2 +:100D00008AEE94E4089585EB94E4089586EB94E4E8 +:100D1000089587EB94E408958CEC94E408958DECA9 +:100D200094E4089583E895E408958AE895E40895A5 +:100D300082E995E4089584E995E4089581E296E4D2 +:100D4000089583E296E4089584E296E4089585E2A6 +:100D500096E4089586E296E4089587E296E408957D +:100D60008AE296E40895089524E5829FC001112443 +:100D7000FC0126E0729FE00DF11D1124E60FF11D2C +:100D8000EE0FFF1FE058FD4F859194910895880F55 +:100D9000991FFC01E450FF4F859194910895880FAD +:100DA000991FFC01E458FD4F85919491089524E525 +:100DB000829FC0011124FC0146E0749FE00DF11DEB +:100DC0001124E60FF11DEE0FFF1FE058FD4F859136 +:100DD00094919C013A9521154FE1340708F425C1FF +:100DE0003F512115304120F49F700E94CF06089595 +:100DF0009C0130532115304118F49927906C0895C7 +:100E0000811520E5920769F40E9489144FEF84E36D +:100E10009CE0415080409040E1F700C000000C94FD +:100E2000901B813020E5920731F48091CC018160E4 +:100E30008093CC0108959C0130552115304108F074 +:100E40005CC0292F33272F70332721303105E9F477 +:100E5000AC0164E0440F551F6A95E1F744275370D5 +:100E6000BC016370772702C0220F331F6A95E2F737 +:100E70003C68242B352B73E0880F991F7A95E1F796 +:100E800080769927822B932B08952230310529F4FF +:100E9000982F8827816F906A089523303105A1F437 +:100EA000AC0133E0440F551F3A95E1F7407E57708F +:100EB0008370992721E030E002C0220F331F8A950A +:100EC000E2F7C9019C6816C02430310531F5AC0148 +:100ED00023E0440F551F2A95E1F7407E5770837039 +:100EE000992721E030E002C0220F331F8A95E2F7F4 +:100EF000C9019A68842B952B08959C0130572115C0 +:100F0000304118F49F70906208959C01305821156B +:100F1000304118F49F70906A0895803E9105E0F486 +:100F2000803C910558F58133910509F46FC048F470 +:100F30008932910509F463C08A32910509F46DC0C4 +:100F400072C089339105E9F082389105D1F085337B +:100F5000910509F44DC067C0833E910581F138F4D5 +:100F6000803E9105B9F0823E9105D9F05CC0863E85 +:100F7000910561F1873E9105A1F155C00E94C70618 +:100F800008952091DE0120FD02C021FF4CC080EEBB +:100F900090E049C08091DE0180FFF9CF89E390E0C5 +:100FA00042C08091DE0182FF0EC08091DE0184FF8D +:100FB00003C080E090E037C083EE90E034C08091C1 +:100FC000DE0182FFF2CF82EE90E02DC08091DE0143 +:100FD00083FF0BC08091DE0184FDEBCF87EE90E0B4 +:100FE00022C08091DE0183FFF5CF86EE90E01BC02A +:100FF0008091DE0185FF07C089E290E014C08091F6 +:10100000DE0185FFF9CF85E390E00DC08091DE0120 +:1010100086FF07C08AE290E006C08091DE0186FF6D +:10102000F9CF81E390E00E94F3050895089580913F +:1010300062010895CF93DF9300D01F92CDB7DEB742 +:101040009C018091E401843019F593E099833B83FE +:101050002A839093E9008FEF9091E800815095FDED +:1010600006C095ED9A95F1F700008111F5CF8091BA +:10107000E80085FF0DC040E050E063E070E0CE0185 +:1010800001960E94870A8091E8008E778093E8009D +:101090000F900F900F90DF91CF910895CF93DF9332 +:1010A00000D01F92CDB7DEB72091E401243021F5A6 +:1010B00022E029839B838A8383E08093E9008FEF7A +:1010C0009091E800815095FD06C095ED9A95F1F755 +:1010D00000008111F5CF8091E80085FF0DC040E050 +:1010E00050E063E070E0CE0101960E94870A809193 +:1010F000E8008E778093E8000F900F900F90DF91BB +:10110000CF9108959C018091E4018430F9F482E04C +:101110008093E9009FEF8091E800915085FD06C023 +:1011200085ED8A95F1F700009111F5CF8091E800E7 +:1011300085FF0CC040E050E065E070E0C9010E940E +:10114000870A8091E8008E778093E8000895CF9316 +:10115000DF93EC018091E401843009F046C0909166 +:101160000C019923D9F090910D019923B9F0809346 +:10117000E9008FEF9091E800815095FD06C095E160 +:101180009A95F1F700008111F5CF8091E80085FF75 +:101190002CC040E050E060E170E017C081E0809337 +:1011A000E9008FEF9091E800815095FD06C095ED24 +:1011B0009A95F1F700008111F5CF8091E80085FF45 +:1011C00014C040E050E068E070E0CE010E94870A61 +:1011D0008091E8008E778093E80080E1FE01A2E52F +:1011E000B1E001900D928A95E1F7DF91CF910895DA +:1011F0008091E301811109C00E94180C0E94750CB6 +:101200008091E20084608093E20008951092E301EF +:10121000089508950C94C6210E94261B0E94CC219B +:101220000E94200F0C94160842E061EC81E00E94BD +:10123000910B42E061EC82E00E94910B42E061EC94 +:1012400083E00E94910B42E161EC84E00C94910BED +:101250008091E601833009F455C030F4813071F09B +:10126000823009F48EC008958A3009F47AC08B3038 +:1012700009F460C0893009F09CC020C08091E5016C +:10128000813A09F096C08091E800877F8093E8005A +:101290008091E9019091EA01892B21F460E182E5D6 +:1012A00091E003C060E080E090E070E00E94D20A2C +:1012B0008091E8008B778093E80008958091E501A4 +:1012C000813209F076C08091E9019091EA0100979E +:1012D00019F0039709F06DC08091E800877F809333 +:1012E000E8008091E80082FD05C08091E401811151 +:1012F000F8CF5FC08091F100809362018091E80097 +:101300008B7753C08091E501813A09F052C08091FA +:10131000E9019091EA01892B09F04BC08091E80026 +:10132000877F8093E8008091E80080FFFCCF809168 +:101330000C0136C08091E5018132D9F58091E90137 +:101340009091EA01892BA9F58091E800877F80932D +:10135000E8000E94C60B8091E70180930C010C9479 +:1013600089148091E501813221F58091E800877F21 +:101370008093E8000E94C60B8091E801809363018E +:1013800008958091E501813AA1F48091E800877F7A +:101390008093E8008091E80080FFFCCF809163019A +:1013A0008093F1008091E8008E778093E8000C94A0 +:1013B000C60B089584B7877F84BF0FB6F894A895AD +:1013C00080916000886180936000109260000FBE81 +:1013D00090E080E80FB6F8948093610090936100EC +:1013E0000FBE0E946F0F0E94180C0E94750C809116 +:1013F000E20084608093E20078940E94000F0E94D3 +:10140000710F82E091E00E941B0F0E94B421809135 +:10141000E401853069F40E94E81A8091E201882392 +:10142000B1F30E94121B882391F30E94710AEFCF3F +:101430000E94770FECCF292F332723303105C9F0D5 +:1014400060F42130310581F02230310509F041C0CE +:101450008DE690E024E034E040C021323105E1F037 +:101460002232310531F135C082E190E021E734E0EC +:1014700034C099278130910549F028F0029749F549 +:10148000E0EDF3E005C0E0E0F4E002C0E8EEF3E0F8 +:10149000849190E09F0121C06430D8F4E62FF0E001 +:1014A000EE0FFF1FEE5DFE4F2081318189E090E05D +:1014B00014C0643070F470E0FB01EE0FFF1FE65EB5 +:1014C000FE4F20813181FB01EA5EFE4F808190E07A +:1014D00004C080E090E020E030E0FA013183208316 +:1014E000089580E189BD82E189BD09B400FEFDCF88 +:1014F0008091D8008F7D8093D8008091E000826039 +:101500008093E0008091E00081FDFCCF0895CF92B0 +:10151000DF92EF92FF920F931F93CF93DF93EC0133 +:101520008B016A010E94E50B811133C0C114D10403 +:1015300039F0F60180819181081B190BC80FD91F62 +:10154000E12CF12C0115110519F18091E80085FDC0 +:1015500016C08091E8008E778093E800C114D10412 +:1015600049F0F60180819181E80EF91EF182E08256 +:1015700085E00FC00E94E50B882321F30AC0899102 +:101580008093F10001501109FFEFEF1AFF0ADACF43 +:1015900080E0DF91CF911F910F91FF90EF90DF904E +:1015A000CF9008952091EB013091EC012617370779 +:1015B00048F06115710539F42091E8002E772093E9 +:1015C000E80001C0B901FC0120E06115710579F165 +:1015D0008091E4018823F1F18530F1F18091E800F8 +:1015E00083FD3CC08091E80082FD2EC08091E80020 +:1015F00080FFEBCF2091F3008091F20090E0922BDE +:101600006115710551F08830910538F421912093CE +:10161000F100615071090196F3CF21E0089709F0BC +:1016200020E08091E8008E778093E800CECF2111F2 +:10163000CFCF0AC08091E401882361F0853061F04A +:101640008091E80083FD0AC08091E80082FFF2CF1C +:1016500080E0089582E0089583E0089581E0089590 +:101660002091EB013091EC012617370748F0611506 +:10167000710539F42091E8002E772093E80001C02D +:10168000B901FC0120E06115710591F18091E4013F +:10169000882309F440C0853009F43FC08091E800F8 +:1016A00083FD3DC08091E80082FD2FC08091E8005D +:1016B00080FFE9CF2091F3008091F20090E0922B1F +:1016C0006115710559F08830910540F424912093FB +:1016D000F1003196615071090196F2CF21E008972F +:1016E00009F020E08091E8008E778093E800CBCF6E +:1016F0002111CCCF0AC08091E401882361F08530AC +:1017000061F08091E80083FD0AC08091E80082FFCB +:10171000F2CF80E0089582E0089583E0089581E0AB +:101720000895982F973068F59093E900981739F04D +:101730007091EC002091ED005091F00003C0242F37 +:10174000762F50E021FD02C09F5FECCF3091EB007F +:101750003E7F3093EB003091ED003D7F3093ED0004 +:101760003091EB0031603093EB007093EC002093EC +:10177000ED005093F0002091EE0027FDE5CF80E0D2 +:1017800008958F708093E90081E008958091E501CC +:1017900087FF11C08091E80082FD05C08091E401BF +:1017A0008111F8CF11C08091E8008B770BC0809138 +:1017B000E401882349F08091E80080FFF8CF809110 +:1017C000E8008E778093E80008952091E40030913E +:1017D000E50095E64091EC00842F817040FF23C026 +:1017E0008091E80080FD1DC08091E401882399F07C +:1017F000853099F08091EB0085FD11C04091E400A7 +:101800005091E5002417350729F3915011F09A0102 +:10181000E1CF84E0089582E0089583E0089581E0B7 +:10182000089580E008954091E80042FFDDCF0895DB +:101830000E94860C0E948E0CE0EEF0E080818160B8 +:101840008083E8EDF0E080818F77808319BCA7ED7D +:10185000B0E08C918E7F8C9380818F7E80831092FC +:10186000E30108950F931F93CF93DF930E94860C9B +:101870000E948E0CC8EDD0E088818F7788838881A4 +:101880008068888388818F7D888319BC1092E401E9 +:101890001092E0011092E2011092E10100EE10E0DE +:1018A000F80180818B7F808388818160888342E01A +:1018B00060E080E00E94910BE1EEF0E080818E7F9D +:1018C0008083E2EEF0E080818160808380818860A7 +:1018D0008083F80180818E7F808388818061888306 +:1018E000DF91CF911F910F910895E8EDF0E0808195 +:1018F0008F7E8083E7EDF0E080818160808384E0EB +:1019000082BF81E08093E3010C94320CE8EDF0E0BB +:1019100080818E7F80831092E20008951092DA0019 +:101920001092E10008951F920F920FB60F921124AA +:101930002F933F934F935F936F937F938F939F93D7 +:10194000AF93BF93EF93FF938091E10082FF0BC0B1 +:101950008091E20082FF07C08091E1008B7F80933D +:10196000E1000E94FF0E8091DA0080FF1FC080918D +:10197000D80080FF1BC08091DA008E7F8093DA0050 +:101980008091D90080FF0DC080E189BD82E189BDD1 +:1019900009B400FEFDCF81E08093E4010E94F808C5 +:1019A00005C019BC1092E4010E9406098091E10073 +:1019B00080FF19C08091E20080FF15C08091E20095 +:1019C0008E7F8093E2008091E20080618093E2004C +:1019D0008091D80080628093D80019BC85E0809304 +:1019E000E4010E940A098091E10084FF30C08091E7 +:1019F000E20084FF2CC080E189BD82E189BD09B489 +:101A000000FEFDCF8091D8008F7D8093D80080911B +:101A1000E1008F7E8093E1008091E2008F7E8093D1 +:101A2000E2008091E20081608093E2008091E00119 +:101A3000882311F084E007C08091E30087FD02C095 +:101A400081E001C083E08093E4010E940C09809151 +:101A5000E10083FF29C08091E20083FF25C08091CF +:101A6000E100877F8093E10082E08093E40110929F +:101A7000E0018091E1008E7F8093E1008091E2009F +:101A80008E7F8093E2008091E20080618093E2008B +:101A900042E060E080E00E94910B8091F00088605D +:101AA0008093F0000E940909FF91EF91BF91AF91DF +:101AB0009F918F917F916F915F914F913F912F9166 +:101AC0000F900FBE0F901F9018951F920F920FB698 +:101AD0000F9211242F933F934F935F936F937F93B4 +:101AE0008F939F93AF93BF93CF93DF93EF93FF9326 +:101AF000C091E900CF708091EC00D82FD17080FDAB +:101B0000D0E81092E9008091F000877F8093F00088 +:101B100078940E94A90D1092E9008091F0008860ED +:101B20008093F000CD2BCF70C093E900FF91EF912F +:101B3000DF91CF91BF91AF919F918F917F916F91E5 +:101B40005F914F913F912F910F900FBE0F901F907B +:101B500018951F93CF93DF93CDB7DEB7AA970FB633 +:101B6000F894DEBF0FBECDBFE5EEF1E08091F1004D +:101B7000819321E0ED3EF207C9F70E942809809188 +:101B8000E80083FF24C18091E5019091E601492F8F +:101B900050E04A30510508F01AC1FA01EA59FF4FE6 +:101BA0000C945D23803881F0823809F010C1809157 +:101BB000E9018F708093E9008091EB0085FB882715 +:101BC00080F91092E90006C08091E1019091E20154 +:101BD000911182609091E800977F9093E800809344 +:101BE000F1001092F100C8C0282F2D7F09F0EFC03E +:101BF000882319F0823061F0EAC08091E7018130DA +:101C000009F0E5C0933009F080E08093E2012BC039 +:101C10008091E701811127C08091E9018F7009F45B +:101C2000D6C08093E9002091EB0020FF1CC09330C8 +:101C300021F48091EB00806214C09091EB009061E0 +:101C40009093EB0021E030E0A90102C0440F551F42 +:101C50008A95E2F74093EA001092EA008091EB0047 +:101C600088608093EB001092E9008091E800877F04 +:101C700086C08111ACC01091E7011F778091E3000D +:101C80008078812B8093E3008091E800877F8093A8 +:101C9000E8000E94C60B8091E80080FFFCCF809195 +:101CA000E30080688093E300111102C082E001C06C +:101CB00083E08093E4018BC08058823008F087C0B5 +:101CC0008091E7019091E8018C3D53E0950779F50B +:101CD00083E08A838AE289834FB7F894DE01139602 +:101CE00020E03EE051E2E32FF0E050935700E49112 +:101CF00020FF03C0E295EF703F5FEF708E2F90E002 +:101D0000EA3010F0C79601C0C0968D939D932F5F67 +:101D1000243149F74FBF8091E800877F8093E80026 +:101D20006AE270E0CE0101960E94D20A14C0AE01B0 +:101D30004F5F5F4F6091E9010E941B0ABC01892B34 +:101D400009F445C09091E800977F9093E80089815D +:101D50009A810E94300B8091E8008B778093E80095 +:101D600036C08038A1F58091E800877F8093E80035 +:101D70008091E0018093F1008091E8008E7780935C +:101D8000E8000E94C60B23C0811121C08091E701A9 +:101D90009091E80199270297D4F48091E800877F19 +:101DA0008093E8008091E7018093E0010E94C60BD8 +:101DB0008091E001811106C08091E30087FD02C09F +:101DC00081E001C084E08093E4010E9414098091C5 +:101DD000E80083FF0AC08091E800877F8093E800D5 +:101DE0008091EB0080628093EB00AA960FB6F89486 +:101DF000DEBF0FBECDBFDF91CF911F910895089533 +:101E0000CF938091E4018823A1F0C091E900CF70C5 +:101E10009091EC00892F817090FD80E8C82B109282 +:101E2000E9008091E80083FD0E94A90DCF70C09366 +:101E3000E900CF9108959093690180936801089516 +:101E4000E0916801F0916901309721F00190F081F3 +:101E5000E02D099480E00895E0916801F091690116 +:101E6000309721F00280F381E02D09940895E091EC +:101E70006801F0916901309721F00480F581E02D2F +:101E80000994089520916601309167012817390758 +:101E900071F09093670180936601E0916801F09181 +:101EA0006901309721F00680F781E02D09940895AB +:101EB00020916401309165012817390771F09093E2 +:101EC000650180936401E0916801F09169013097A8 +:101ED00021F00084F185E02D0994089508950C9473 +:101EE0006E0F0E942C1B0E94DE040C94F21BCF92FA +:101EF000DF92EF92FF920F931F93CF93DF93CDB7B3 +:101F0000DEB72B970FB6F894DEBF0FBECDBF0E9491 +:101F1000F6048BE6C82E81E0D82E00E010E0E02E1B +:101F2000802F0E94EC05F60141916F01F82EF426F6 +:101F3000B1F40F5F1F4F0E30110589F78FEF8983C2 +:101F40008A831B820E94351B8160782F9D838C833E +:101F500049815A816B818D810E941A1040C09091F5 +:101F6000CC0191FF04C08B870E94F2058B8520E095 +:101F700030E04F2D50E0922FBA01022E02C075952D +:101F800067950A94E2F760FF24C02E83EF8221E078 +:101F900030E0690102C0CC0CDD1C9A95E2F790E0BC +:101FA0008C219D21892B09F420E028870E94351B74 +:101FB0008160782F9A8789874E815F8168858A85BD +:101FC0000E941A10F801E559FE4F8081C826C08290 +:101FD00006C02F5F3F4F2630310569F6AACF0E9419 +:101FE000D91E0E94200F90916A018917A1F00E94CA +:101FF000200F80936A012B960FB6F894DEBF0FBEB8 +:10200000CDBFDF91CF911F910F91FF90EF90DF90A7 +:10201000CF900C9416082B960FB6F894DEBF0FBE27 +:10202000CDBFDF91CF911F910F91FF90EF90DF9087 +:10203000CF900895CF93DF93CDB7DEB72B970FB630 +:10204000F894DEBF0FBECDBF4F83588769877A876C +:102050008B87DE01119686E0FD0111928A95E9F7E2 +:1020600085E0FE01379601900D928A95E1F749814E +:102070005A816B817C818D819E810E941D172B96D8 +:102080000FB6F894DEBF0FBECDBFDF91CF9108959C +:10209000CF93C82F882309F4C1C0823859F40E9415 +:1020A000200F81FDBBC089E30E94BA190E94721AF9 +:1020B00089E30CC0833879F40E94200F80FDAEC004 +:1020C00083E50E94BA190E94721A83E50E94F919E9 +:1020D000CF910C94721A843859F40E94200F82FD1B +:1020E0009DC087E40E94BA190E94721A87E4EECF5D +:1020F0008CEF8C0F813A48F48C2F0E9419218111AA +:102100008DC08C2F0E94BA19E3CF80E28C0F8830EB +:1021100048F4C77081E001C0880FCA95EAF70E94B1 +:102120003B1AD6CF8BE58C0F833078F4C53A29F073 +:10213000C63A31F083E890E005C081E890E002C043 +:1021400082E890E0CF910C94420F88E58C0F8331A8 +:1021500008F064C0C83A39F1C93A41F1CA3A49F1C4 +:10216000CB3A51F1CC3A59F1CD3A61F1C03B69F12A +:10217000CE3A71F1CF3A79F1C13B81F1C23B89F19D +:10218000C33B91F1C43B99F1C53BA1F1C63BA9F119 +:10219000C73BB1F1C83BB9F1C93BC1F1CA3BC9F179 +:1021A00080E090E038C082EE90E035C089EE90E0AB +:1021B00032C08AEE90E02FC085EB90E02CC086EB19 +:1021C00090E029C087EB90E026C08CEC90E023C023 +:1021D0008DEC90E020C083E891E01DC08AE891E09A +:1021E0001AC082E991E017C084E991E014C081E24D +:1021F00092E011C083E292E00EC084E292E00BC054 +:1022000085E292E008C086E292E005C087E292E0B3 +:1022100002C08AE292E0CF910C94580FCF910895BA +:10222000882309F44BC0823859F40E94200F81FFA3 +:1022300045C089E30E94BA190E94721A89E30CC052 +:10224000833871F40E94200F80FF38C083E50E941C +:10225000BA190E94721A83E50E94F9190C94721A35 +:10226000843859F40E94200F82FF28C087E40E941E +:10227000BA190E94721A87E4EFCF9CEF980F913A37 +:1022800058F390E2980F983050F4877091E001C0B5 +:10229000990F8A95EAF7892F0E94411ADFCF9BE5B3 +:1022A000980F933020F480E090E00C94420F885A0D +:1022B000833120F480E090E00C94580F0895882337 +:1022C00021F00E943B1A0C94721A0895882321F081 +:1022D0000E94411A0C94721A0895BF92CF92DF9215 +:1022E000EF92FF920F931F93CF93DF9300D000D014 +:1022F00000D0CDB7DEB77C0185E0F701DE01119695 +:1023000001900D928A95E1F7F70183819481892BE1 +:1023100009F4DDC2908181818F3F19F49F3F09F458 +:10232000D6C2F7010281258122952F7099838A8375 +:1023300089819A812E830E947919182FB92E0E94C3 +:1023400078190E943F18EB2DE295EF704E2F50E068 +:10235000FA01E059FF4F2E810C945D238B2D807F75 +:102360009B2D9F70F92E882319F0F29480EFF822AC +:10237000002349F0FF2009F457C28F2D0E944B1A09 +:102380000E94721A51C2812F0E941011FF2009F47D +:102390009EC28F2D0E94511A26960FB6F894DEBF6A +:1023A0000FBECDBFDF91CF911F910F91FF90EF90A6 +:1023B000DF90CF90BF900C94721A3B2D307F8B2D05 +:1023C0008F70303211F08295807F112319F0113017 +:1023D00021F12CC00023B9F0222309F490C121304F +:1023E00009F08DC126960FB6F894DEBF0FBECDBFA3 +:1023F000DF91CF911F910F91FF90EF90DF90CF90E1 +:10240000BF900C945B1A222319F0213009F45FC2AB +:102410008E830E945E1A8E8186C1002321F02230B5 +:1024200008F055C26CC1211152C27DC1002321F0B8 +:10243000222309F464C1F8C1222309F474C109C23A +:102440008B2D86958695837019F08130D1F03FC22F +:10245000002321F0812F9B2D937002C080E090E03B +:1024600026960FB6F894DEBF0FBECDBFDF91CF9199 +:102470001F910F91FF90EF90DF90CF90BF900C9441 +:10248000420F002321F0812F9B2D937002C080E02A +:1024900090E026960FB6F894DEBF0FBECDBFDF9159 +:1024A000CF911F910F91FF90EF90DF90CF90BF9051 +:1024B0000C94580F812F002319F00E94E11D02C0D7 +:1024C0000E94491E26960FB6F894DEBF0FBECDBF00 +:1024D000DF91CF911F910F91FF90EF90DF90CF9000 +:1024E000BF900C94CE1E8B2D837009F075C0011126 +:1024F000EEC1812F829586958770880F880F912F66 +:102500009F70C92ED12CE12CF12C082E04C0CC0CCC +:10251000DD1CEE1CFF1C0A94D2F714FF12C00FE062 +:1025200010E020E030E004C0000F111F221F331F15 +:102530008A95D2F7C901B8016095709580959095FC +:1025400003C060E070E0CB014B2D4695469543708B +:102550004230C1F060F56C297D298E299F294130D8 +:1025600051F126960FB6F894DEBF0FBECDBFDF91B6 +:10257000CF911F910F91FF90EF90DF90CF90BF9080 +:102580000C9466186C297D298E299F2926960FB6F2 +:10259000F894DEBF0FBECDBFDF91CF911F910F9199 +:1025A000FF90EF90DF90CF90BF900C9482180E9424 +:1025B0006618C701B60126960FB6F894DEBF0FBEA7 +:1025C000CDBFDF91CF911F910F91FF90EF90DF90E2 +:1025D000CF90BF900C944A18002319F08B2D817076 +:1025E00001C08695882309F472C1812F8295869552 +:1025F0008770880F880F912F9F70C92ED12CE12CE6 +:10260000F12C082E04C0CC0CDD1CEE1CFF1C0A941F +:10261000D2F714FF12C00FE010E020E030E004C059 +:10262000000F111F221F331F8A95D2F7C901B8016D +:10263000609570958095909503C060E070E0CB0147 +:102640004B2D4695469543704230C1F060F56C299C +:102650007D298E299F29413051F126960FB6F89495 +:10266000DEBF0FBECDBFDF91CF911F910F91FF90C5 +:10267000EF90DF90CF90BF900C9440196C297D298A +:102680008E299F2926960FB6F894DEBF0FBECDBFC8 +:10269000DF91CF911F910F91FF90EF90DF90CF903E +:1026A000BF900C945C190E944019C701B601269690 +:1026B0000FB6F894DEBF0FBECDBFDF91CF911F9153 +:1026C0000F91FF90EF90DF90CF90BF900C94241962 +:1026D000103FD1F118F4103E50F4A1C0123F09F49C +:1026E00063C008F44CC0133F09F473C098C01F7056 +:1026F0008B2D8F710023A1F00E94BD18812F26968B +:102700000FB6F894DEBF0FBECDBFDF91CF911F9102 +:102710000F91FF90EF90DF90CF90BF900C945F11DE +:102720000E94DE18812F26960FB6F894DEBF0FBEEA +:10273000CDBFDF91CF911F910F91FF90EF90DF9070 +:10274000CF90BF900C9466110023A9F02111BFC057 +:102750008B2D8F7126960FB6F894DEBF0FBECDBFBE +:10276000DF91CF911F910F91FF90EF90DF90CF906D +:10277000BF900C940319223008F0A9C0E9CF0023C0 +:10278000A9F08B2D8F7126960FB6F894DEBF0FBE81 +:10279000CDBFDF91CF911F910F91FF90EF90DF9010 +:1027A000CF90BF900C94BD18002359F38B2D8F71DF +:1027B00026960FB6F894DEBF0FBECDBFDF91CF9146 +:1027C0001F910F91FF90EF90DF90CF90BF900C94EE +:1027D000DE18002399F08B2D8F7126960FB6F89492 +:1027E000DEBF0FBECDBFDF91CF911F910F91FF9044 +:1027F000EF90DF90CF90BF900C94A81826960FB65C +:10280000F894DEBF0FBECDBFDF91CF911F910F9126 +:10281000FF90EF90DF90CF90BF900C949E18002314 +:10282000A9F0222309F4ADCF812F26960FB6F89494 +:10283000DEBF0FBECDBFDF91CF911F910F91FF90F3 +:10284000EF90DF90CF90BF900C944810222309F4B2 +:10285000ADCF812F26960FB6F894DEBF0FBECDBF49 +:10286000DF91CF911F910F91FF90EF90DF90CF906C +:10287000BF900C9410114B2D4F70612FC7010E9417 +:10288000280326960FB6F894DEBF0FBECDBFDF91AA +:10289000CF911F910F91FF90EF90DF90CF90BF905D +:1028A0000C94C2174B2D4F70612FC70126960FB69F +:1028B000F894DEBF0FBECDBFDF91CF911F910F9176 +:1028C000FF90EF90DF90CF90BF900C94B3062696C8 +:1028D0000FB6F894DEBF0FBECDBFDF91CF911F9131 +:1028E0000F91FF90EF90DF90CF90BF9008950E94DE +:1028F000581A0E942D1A0E94721A0E947E1F0E946E +:10290000CE1E80E090E00E94420F80E090E00C94A8 +:10291000580F0E94481A0C9477140E947919292F95 +:1029200022952F702C3030F42A3048F42250223077 +:1029300078F405C02C3041F02F3031F009C0803ED2 +:1029400048F0803F29F406C093FB882780F908955A +:1029500080E0089581E00895CF93DF9300D000D008 +:102960001F92CDB7DEB70F900F900F900F900F9082 +:10297000DF91CF910895CF93DF9300D000D000D0A6 +:10298000CDB7DEB726960FB6F894DEBF0FBECDBF2B +:10299000DF91CF9108951F93CF93DF93C091790179 +:1029A00016E080917A01C81799F0D0E01C9FF001E1 +:1029B0001D9FF00D1124E558FE4F40815181628129 +:1029C0007381848195810E94BB142196C770E9CFE1 +:1029D000DF91CF911F9108954091AB015091AC01CF +:1029E0006091AD017091AE018091AF019091B00105 +:1029F0000C94BB148091B00182958F7009F054C083 +:102A00008091AD01882309F44FC080917901A09194 +:102A10007A014091AE015091AF016091AB0170918C +:102A2000AC01B6E08A1709F43FC090E041155105AA +:102A3000C1F17F3F11F46F3FA1F1B89FF001B99F41 +:102A4000F00D1124E558FE4F218127132AC0208163 +:102A5000261327C02281211124C023813481241709 +:102A6000350710F421503109241B350B283C310562 +:102A7000C0F42091B0012F7020612093B00126E0B6 +:102A8000289FF001299FF00D1124E058FE4F80810E +:102A90008F70806180838BEA91E00E946D110C94AD +:102AA000CB1401968770BECF0895CF92DF92EF923C +:102AB000FF920F931F93CF93DF93CDB7DEB762974B +:102AC0000FB6F894DEBF0FBECDBF8C0185E0F801D4 +:102AD000DE011D9601900D928A95E1F7D8014C9187 +:102AE00011965C91119712966C918091AE01909124 +:102AF000AF01009709F475C13091AB017091AC0141 +:102B00007F3F19F43F3F09F46CC1F801C380D480C2 +:102B1000E090AD01EE2009F4BEC02091B001C816CE +:102B2000D90628F0D601A81BB90BCD0104C08095A9 +:102B300090958C0D9D1DFF24F394883C910578F0B1 +:102B4000F12C207F09F0C4C07C2DD98AC88A8989DC +:102B50000E94AC148BEA91E00E946D11AFC0822FED +:102B6000807F09F045C0571313C0431311C0611192 +:102B70000FC02F7020612093B0010E94EC148BEAEB +:102B800091E00E946D118091B001F80185832EC003 +:102B9000CD2819F15F3F11F44F3FF9F0F62E611186 +:102BA0001CC08091790120917A0136E0821709F4E6 +:102BB0005BC090E0389FF001399FF00D1124E5587B +:102BC000FE4F7181571306C07081471303C0728195 +:102BD000711103C001968770E9CFF62E662309F4C0 +:102BE0001CC18091B00181608093B001F12C15C1AE +:102BF000571309C0431307C0611105C08091B0018C +:102C0000F8018583C8C04D875E878D859E856A8B58 +:102C10000E948D146A898823D1F16623C1F1209125 +:102C2000B001822F82958F7090E0029774F08091AE +:102C3000AB019091AC0198878F831986DB86CA8699 +:102C40002C87CE0107960E946D1186E0F801ABEA51 +:102C5000B1E001900D928A95E1F70E94FA140E946A +:102C6000EC14FF24F394D9C04D875E878D859E8533 +:102C70000E947919292F22952F70223008F0C1C0A7 +:102C80009F7009F0BBC0805E883008F4C6C0C801E0 +:102C90000E946D11E6CFC816D90608F453C0F6019C +:102CA000E81BF90BCF01883C910508F450C0F12CCA +:102CB0007C2DD98AC88A89890E94AC14EBEAF1E09C +:102CC00086E0DF011D928A95E9F70E94EC14A5C009 +:102CD000571314C0431312C0611110C08091B0018A +:102CE000F8018583C8010E946D1186E0EBEAF1E0EE +:102CF000DF011D928A95E9F7FE2C8FC04D875E8714 +:102D00008D859E856A8B0E948D146A89882309F4BB +:102D1000BECF662309F4BBCF2091B001822F8295EC +:102D20008F7090E002970CF490CF8091AB0190915E +:102D3000AC019A8389831B82DD82CC822E83CE01F3 +:102D4000019681CF809590958C0D9D1DACCFF62E70 +:102D5000662309F49CCF571333C0431331C020912D +:102D6000B00120FD24C0822F82958F70482F50E043 +:102D700041155105E1F0D80115962C9315974F3068 +:102D8000510549F08F5F982F9295907F822F8F7019 +:102D9000892B15968C93C8010E946D1186E0F8016D +:102DA000ABEAB1E001900D928A95E1F78ECF86E013 +:102DB000F801ABEAB1E001900D928A95E1F72DC0E0 +:102DC0004D875E878D859E850E948D1481113DCF34 +:102DD0008091B00181608093B001C8010E946D11A3 +:102DE0001CC0662309F453CF4D875E878D859E8571 +:102DF0000E948D14882309F44ACF27CF811143CF35 +:102E00000CC0243008F043CF9F7009F43CCFD801A8 +:102E100015969C91907F09F036CF8F2D62960FB654 +:102E2000F894DEBF0FBECDBFDF91CF911F910F9100 +:102E3000FF90EF90DF90CF9008951F93CF93DF9393 +:102E4000CDB7DEB72C970FB6F894DEBF0FBECDBF5F +:102E50004F83588769877A878B879C87CE0107962F +:102E60000E945515882371F08A859B85892B09F46A +:102E700041C088858F3F09F065C08F818F3F09F081 +:102E800061C038C086E0FE013796DE0111960190E0 +:102E90000D928A95E1F76A857B856115710551F17F +:102EA000FF81E885EF3F11F4FF3F21F120917A0186 +:102EB00030E0C9010196877099274091790150E06F +:102EC0008417950709F447C0F983EA837D836C83EF +:102ED00096E0929FD001939FB00D1124A558BE4F4C +:102EE000FE01319601900D929A95E1F780937A0157 +:102EF0000E94CB1416E08091790190917A01891794 +:102F0000B9F1189FC001112485589E4F0E94551594 +:102F1000882371F1E09179011E9FF0011124E55899 +:102F2000FE4F4081518162817381848195810E942D +:102F3000BB148091790190E0019687709927809366 +:102F40007901D9CF4F81588569857A858B859C8594 +:102F50000E94BB14CFCF0E94891410927A01109264 +:102F60007901EBEAF1E086E0DF011D928A95E9F74D +:102F70002C960FB6F894DEBF0FBECDBFDF91CF9178 +:102F80001F910895EF92FF920F931F93CF93DF93BA +:102F90008C01892B09F46CC0F12CEE24E394E80138 +:102FA0002196F8018491843740F4843008F051C0B0 +:102FB000813081F0823019F15BC0853709F444C05B +:102FC000A8F19CE7980F903708F052C08F770E94C5 +:102FD000101141C00E5F1F4FFE01849190E2980FC7 +:102FE000983050F48770FE2D01C0FF0F8A95EAF7E4 +:102FF0008F2F0E944B1A14C00E9448102DC00E5FE4 +:103000001F4FFE01849190E2980F983060F4877012 +:10301000FE2D01C0FF0F8A95EAF78F2F0E94511AEB +:103020000E94721A19C00E94101116C00E5F1F4F25 +:10303000FE01C491CC2381F08FE99FE00197F1F765 +:1030400000C00000C150F6CF0E5F1F4FFE01F4908C +:1030500003C00E9448108E018F2D882309F49FCF52 +:10306000EFE9FFE03197F1F700C000008150F5CFA4 +:10307000DF91CF911F910F91FF90EF9008950895E8 +:103080006093B5017093B6018093B7019093B80136 +:103090000C9477140F931F930091B5011091B60112 +:1030A0002091B7013091B801DC01CB01802B912B2D +:1030B000A22BB32B8093B5019093B601A093B701D7 +:1030C000B093B8011F910F910C9477140F931F9335 +:1030D0000091B5011091B6012091B7013091B8016E +:1030E000DC01CB0180239123A223B3238093B5017C +:1030F0009093B601A093B701B093B8011F910F91BF +:103100000C9477140F931F930091B5011091B601A1 +:103110002091B7013091B801DC01CB0180279127C4 +:10312000A227B3278093B5019093B601A093B7016E +:10313000B093B8011F910F910C9477141092B101C4 +:103140001092B2011092B3011092B4010C94771452 +:1031500041E050E060E070E004C0440F551F661F7E +:10316000771F8A95D2F74093B1015093B2016093D3 +:10317000B3017093B4010C94771441E050E060E027 +:1031800070E004C0440F551F661F771F8A95D2F761 +:103190008091B1019091B201A091B301B091B401BD +:1031A000482B592B6A2B7B2B4093B1015093B201D2 +:1031B0006093B3017093B4010C94771441E050E034 +:1031C00060E070E004C0440F551F661F771F8A95AA +:1031D000D2F740955095609570958091B10190918E +:1031E000B201A091B301B091B401482359236A23DD +:1031F0007B234093B1015093B2016093B30170936C +:10320000B4010C94771441E050E060E070E004C039 +:10321000440F551F661F771F8A95D2F78091B10121 +:103220009091B201A091B301B091B4014827592700 +:103230006A277B274093B1015093B2016093B30199 +:103240007093B4010C9477140F931F930091B10104 +:103250001091B2012091B3013091B401DC01CB0196 +:10326000802B912BA22BB32B8093B1019093B201B1 +:10327000A093B301B093B4011F910F910C947714F4 +:103280000F931F930091B1011091B2012091B301EE +:103290003091B401DC01CB0180239123A223B3231D +:1032A0008093B1019093B201A093B301B093B401A4 +:1032B0001F910F910C9477140F931F930091B101FC +:1032C0001091B2012091B3013091B401DC01CB0126 +:1032D00080279127A227B3278093B1019093B20151 +:1032E000A093B301B093B4011F910F910C94771484 +:1032F0000895CF92DF92EF92FF920F931F93CF9397 +:10330000DF938C01C090B101D090B201E090B30185 +:10331000F090B4018091B5019091B601A091B701F0 +:10332000B091B801C82AD92AEA2AFB2ACFE1D0E015 +:10333000D701C6010C2E04C0B695A7959795879521 +:103340000A94D2F780FF07C0B8018C2F0E94D706DD +:103350008130910531F4219758F7B80180E00E943F +:10336000D706DF91CF911F910F91FF90EF90DF90E3 +:10337000CF90089590910C019923F1F090910D0157 +:103380009923D1F0982F9695969596959F3080F534 +:10339000E0910E01F0910F01E90FF11D877021E01E +:1033A00030E0A90102C0440F551F8A95E2F7CA0117 +:1033B0009181892B8183089520910E0130910F0115 +:1033C000F90132969FEF40E05191851789F09F3FB8 +:1033D00019F4511101C0942F4F5F4E30A9F79F3F50 +:1033E00039F0F901E90FF11D97FDFA9582830895EF +:1033F000089590910C019923F9F090910D01992372 +:10340000D9F0982F9695969596959F3028F5E0914E +:103410000E01F0910F01E90FF11D877021E030E0FE +:10342000A90102C0440F551F8A95E2F7CA01809591 +:10343000918189238183089520910E0130910F019C +:10344000F9013296205F3F4F9081891301C01082AD +:103450003196E217F307C1F7089581E090E0E0911B +:103460000E01F0910F01E80FF91F108201968031D3 +:103470009105A9F708959091CB01892B8093CB01F9 +:10348000089580959091CB0189238093CB01089575 +:103490001092CB0108959091CA01892B8093CA01A3 +:1034A000089580959091CA0189238093CA01089557 +:1034B0001092CA0108958093B90108951092B9013C +:1034C000089580910E0190910F01FC0131969C01AD +:1034D000205F3F4F80E0919191118F5FE217F307DA +:1034E000D1F70895E0910E01F0910F018091CB0189 +:1034F0008083E0910E01F0910F0190818091CA01CB +:10350000892B80838091B901882361F0E0910E01BD +:10351000F0910F019081892B80830E94611A8111A3 +:103520001092B90180910E0190910F010C942C0F13 +:10353000CF92DF92EF92FF926C01EE24FF24C11430 +:10354000D104E104F10421F0C701B60120E101C07A +:1035500020E0C72ED82EE92EFF24C114D104E104A7 +:10356000F10419F0285FC701B6016B017C0154E03A +:10357000F694E794D794C7945A95D1F7C114D1041F +:10358000E104F10419F02C5FC701B6016B017C0165 +:1035900042E0F694E794D794C7944A95D1F7C114C2 +:1035A000D104E104F10419F02E5FC701B601DC017A +:1035B000CB01B695A79597958795892B8A2B8B2B51 +:1035C00009F02F5F822FFF90EF90DF90CF9008954A +:1035D0008091E401843011F120E488E190E00FB69D +:1035E000F894A895809360000FBE2093600083B785 +:1035F000817F846083BF83B7816083BF789488951F +:1036000083B78E7F83BF0FB6F894A8958091600032 +:10361000886180936000109260000FBE0895089545 +:103620000C940F1BCF930E94101B0E94F6040E9463 +:103630000F1BC0E08C2F0E94EC05811104C0CF5FEE +:10364000CE30C1F701C081E0CF9108950E94891466 +:103650000E94200F0C94160882E084BD93E095BD73 +:103660009AEF97BD80936E0008952FB7F8948091DC +:10367000CD019091CE01A091CF01B091D0012FBF8B +:103680000895CF92DF92EF92FF920F931F932FB77F +:10369000F8944091CD015091CE016091CF0170918D +:1036A000D0012FBF6A017B01EE24FF248C0120E0B2 +:1036B00030E0C016D106E206F30610F4415051097D +:1036C0009A01281B390BC9011F910F91FF90EF90B0 +:1036D000DF90CF9008951F920F920FB60F92112492 +:1036E0008F939F93AF93BF938091CD019091CE0123 +:1036F000A091CF01B091D0010196A11DB11D809381 +:10370000CD019093CE01A093CF01B093D001BF9192 +:10371000AF919F918F910F900FBE0F901F901895B2 +:103720000E94180CF8942FEF87EA91E62150804010 +:103730009040E1F700C0000087E090EBDC0180934F +:10374000ED019093EE01A093EF01B093F0019CE0A6 +:1037500088E10FB6F894A895809360000FBE90930F +:103760006000FFCFEF92FF920F931F93CF93DF93F1 +:10377000D82FC0E08C2F0E94EC0500E010E0E82E6E +:10378000F12CC701002E02C0959587950A94E2F7A7 +:1037900080FD06C00F5F1F4F0630110591F709C06D +:1037A000602F7C2F80E00E94B4068D13F3CF81E060 +:1037B00004C0CF5FCE30F1F680E0DF91CF911F9152 +:1037C0000F91FF90EF900895CF93C82F8CE20E9445 +:1037D000B21B882321F08C2FCF910C94B21B80E078 +:1037E000CF910895CF930E94391D811102C00E948C +:1037F0001F1DC5E6C15049F00E94F6048FE39CE905 +:103800000197F1F700C00000F5CF89E20E94E41BA8 +:10381000811113C18AE20E94E41B81110E941F1DC5 +:1038200085E00E94E41B81110E94901B0E94441DB0 +:103830008093CC0187E00E94E41B8823A9F18BE1EF +:103840000E94E41B882351F08091CC0181FB222748 +:1038500020F991E0922790FB81F90EC08EE00E9442 +:10386000E41B882361F08091CC0182FB222720F9A0 +:1038700091E0922790FB82F98093CC0115C080E102 +:103880000E94E41B9091CC01882341F093FB2227F6 +:1038900020F981E0822780FB93F904C0892F80956D +:1038A00080FB90F99093CC018091CC010E94481D3F +:1038B0000E94561D8093DE0180EE0E94E41B882347 +:1038C00041F08091DE01982F909590FB80F98093D4 +:1038D000DE0189E30E94E41B882359F08091DE0118 +:1038E00081FB222720F991E0922790FB81F98093B8 +:1038F000DE0182EE0E94E41B882359F08091DE01F4 +:1039000082FB222720F991E0922790FB82F9809395 +:10391000DE0186EE0E94E41B882359F08091DE01CF +:1039200083FB222720F991E0922790FB83F9809373 +:10393000DE0183EE0E94E41B882359F08091DE01B2 +:1039400084FB222720F991E0922790FB84F9809351 +:10395000DE0185E30E94E41B882359F08091DE019B +:1039600085FB222720F991E0922790FB85F980932F +:10397000DE0181E30E94E41B882359F08091DE017F +:1039800086FB222720F991E0922790FB86F980930D +:10399000DE0181E10E94E41B882359F08091DE0161 +:1039A00087FB222720F991E0922790FB87F98093EB +:1039B000DE018091DE010E945A1D8091DE0187FBAD +:1039C000882780F980930D0187E20E94E41BC82FAD +:1039D0008EE10E94E41B8111C2608FE10E94E41B12 +:1039E0008111C46080E20E94E41B8111C86081E201 +:1039F0000E94E41B8111C06182E20E94E41B8111DC +:103A0000C06283E20E94E41B8111C06484E20E94D0 +:103A1000E41B882311F0C06802C0CC2329F08C2F4E +:103A20000E94511D6C2F03C00E944D1D682F70E035 +:103A300080E090E0CF910C944018CF9108956DEE06 +:103A40007EEF80E090E00E94932360E082E090E0CF +:103A50000E94852360E083E090E00E94852360E07F +:103A600084E090E00E94852360E085E090E00C9483 +:103A7000852380E090E00E947F2321E08D3E9E4FD1 +:103A800009F020E0822F089582E090E00C947723E3 +:103A9000682F82E090E00C94852383E090E00C9402 +:103AA0007723682F83E090E00C94852384E090E0F6 +:103AB0000C947723682F84E090E00C948523809108 +:103AC000D30180FF0BC06091130185E0689FB001B6 +:103AD000112475956795759567952BC081FF09C071 +:103AE0006091130185E0689FB00111247595679579 +:103AF00020C082FF07C06091130185E0689FB0017C +:103B0000112417C09091D4019923D1F06091120132 +:103B1000961788F72091130185E0289F90011124C2 +:103B2000929FA001939F500D112470E0CA010E9442 +:103B300049236038710540F46115710519F406C018 +:103B400065E070E0862F08958FE7089581E008957D +:103B50008091D30180FF08C06091110170E07595DC +:103B600067957595679521C081FF06C06091110129 +:103B700070E07595679519C082FF04C060911101CE +:103B800070E010C09091D401992399F060911001D8 +:103B90009617A0F780911101899FC001112470E050 +:103BA0000E9449236038710540F46115710519F4CC +:103BB00006C061E070E0862F08958FE7089581E0E8 +:103BC0000895803F21F40E945F1D819504C0813FCC +:103BD00029F40E945F1D8093D7010895823F21F44C +:103BE0000E945F1D819504C0833F29F40E945F1DE0 +:103BF0008093D6010895893F19F40E94A81D05C03D +:103C00008A3F31F40E94A81D81958093D8010895C0 +:103C10008B3F21F40E94A81D819504C08C3F29F49C +:103C20000E94A81D8093D9010895843F21F48091BA +:103C3000D501816017C0853F21F48091D501826054 +:103C400011C0863F21F48091D50184600BC0873F6D +:103C500021F48091D501886005C0883F31F48091BE +:103C6000D50180618093D50108958D3F21F4809125 +:103C7000D30181600BC08E3F21F48091D30182601B +:103C800005C08F3F29F48091D30184608093D301D4 +:103C90000895803F39F48091D70187FF6CC010925E +:103CA000D70169C0813F29F48091D7011816BCF370 +:103CB00062C09091D601823F29F497FF5CC01092B8 +:103CC000D60159C0833F19F41916CCF354C0893F6B +:103CD00041F48091D80118160CF04DC01092D80113 +:103CE0004AC08A3F29F48091D80187FF44C0F6CFAB +:103CF0008B3F39F48091D90187FF3DC01092D901E3 +:103D00003AC08C3F29F48091D9011816BCF333C016 +:103D1000843F21F48091D5018E7F17C0853F21F427 +:103D20008091D5018D7F11C0863F21F48091D5010E +:103D30008B7F0BC0873F21F48091D501877F05C021 +:103D4000883F31F48091D5018F7E8093D50113C0D7 +:103D50008D3F21F48091D3018E7F0BC08E3F21F4E3 +:103D60008091D3018D7F05C08F3F29F48091D301CD +:103D70008B7F8093D3018091D60181110EC08091F9 +:103D8000D70181110AC08091D801811106C08091AC +:103D9000D901811102C01092D401089585ED91E0FE +:103DA0000E94370F0E94351B9093D2018093D1015E +:103DB00008951F93CF93DF938091D1019091D20109 +:103DC0000E94411BAC019091D401992321F02091D4 +:103DD000140130E006C0209115018AE0289F90016F +:103DE00011244217530708F485C08091D601C09171 +:103DF000D701D091D8011091D901811107C0C1110B +:103E000075C0D11173C0111171C074C09F3F19F0FA +:103E10009F5F9093D401181624F40E945F1D809335 +:103E2000D6018091D60187FF05C00E945F1D819554 +:103E30008093D6011C1624F40E945F1D8093D70145 +:103E40008091D70187FF05C00E945F1D81958093F7 +:103E5000D7016091D601662331F1C091D701CC23FF +:103E600011F1062E000C770B880B990B0E94502243 +:103E700023E333E343E35FE30E94B4220E9418226A +:103E80006093D6016C2FCC0F770B880B990B0E9497 +:103E9000502223E333E343E35FE30E94B4220E9412 +:103EA00018226093D7011D1624F40E94A81D809348 +:103EB000D8018091D80187FF05C00E94A81D819577 +:103EC0008093D801111624F40E94A81D8093D90173 +:103ED0008091D90187FF05C00E94A81D819580931C +:103EE000D901DF91CF911F910C94CE1E9F3F09F015 +:103EF0008FCFA0CFDF91CF911F910895E5EDF1E035 +:103F000085E0DF011D928A95E9F71092D4011092A5 +:103F1000D3010895833081F128F4813059F0823043 +:103F2000D1F00895853009F449C0B8F1863009F41C +:103F300056C0089580911501262F30E0280F311DBD +:103F40002F3F310524F4680F6093150108958FEF1A +:103F500080931501089580911401262F30E0280FD9 +:103F6000311D2F3F310524F4680F6093140108952B +:103F70008FEF80931401089580911301262F30E074 +:103F8000280F311D2F3F310524F4680F6093130172 +:103F900008958FEF80931301089580911201262FC9 +:103FA00030E0280F311D2F3F310524F4680F609356 +:103FB000120108958FEF80931201089580911101ED +:103FC000262F30E0280F311D2F3F310524F4680FD4 +:103FD0006093110108958FEF8093110108958091EE +:103FE0001001262F30E0280F311D2F3F310524F41A +:103FF000680F6093100108958FEF8093100108956A +:10400000833011F128F4813049F0823091F0089525 +:10401000853081F120F18630C1F10895809115013C +:10402000681720F4861B80931501089510921501DE +:10403000089580911401681720F4861B8093140161 +:10404000089510921401089580911301681720F4C7 +:10405000861B809313010895109213010895809197 +:104060001201681720F4861B8093120108951092A4 +:104070001201089580911101681720F4861B809326 +:10408000110108951092110108958091100168178F +:1040900020F4861B8093100108951092100108955A +:1040A0000F931F938D3109F46BC008F03FC08E3021 +:1040B00009F47DC0C0F4873009F46EC068F486301E +:1040C00009F0AFC08091CC01817F8E7F8093CC01BD +:1040D00081E08093DB01A6C0883009F458C08B30A2 +:1040E00009F49BC09EC0863109F497C078F48031F2 +:1040F00009F470C0813109F094C00E948914909134 +:104100000D0181E0892780930D0187C0893109F471 +:1041100084C08B3109F085C08091CC0181FB2227BE +:1041200020F991E0922790FB81F94AC0853309F488 +:104130005BC048F4873209F457C008F45AC089328A +:1041400009F452C06EC0833438F48A3308F067C073 +:10415000883309F462C065C0833409F445C08834EB +:1041600009F05FC00E9489140FEF13ED20E30150A6 +:1041700010402040E1F700C000000E94901B4DC09D +:104180000E94D2210E94200F0E94160846C00E9461 +:10419000441D0E94561D41C09091CC01892F817011 +:1041A00090FF12C0917F9E7F9093CC013BC0809185 +:1041B000CC0182FB222720F991E0922790FB82F923 +:1041C0008093CC01992349F18091CC018160809347 +:1041D000CC0123C08091CC0183FB222720F991E000 +:1041E000922790FB83F9ECCF61E070E080E090E0F3 +:1041F00010C08D5141E050E060E070E08A019B0109 +:1042000004C0000F111F221F331F8A95D2F7C90166 +:10421000B8010E9440180E94891481E003C08953AC +:10422000E9CF80E01F910F91089580E008950C94EC +:104230001521CF93C82F8091DB01813079F018F0E0 +:104240008230E9F187C0E0910E01F0910F01808189 +:10425000813169F0823209F07FC009C0E0910E011E +:10426000F0910F018081813111F0823261F48C2F45 +:104270000E941721811104C08C2F0E9450201DC064 +:1042800081E090E01AC08C2F0E941521811114C08A +:10429000C43179F048F4CB3079F0C03109F060C016 +:1042A00082E08093DB0108C0C93219F0C83321F0E5 +:1042B00057C01092DB0154C081E0817053C0C932F5 +:1042C00089F118F5C43171F1A8F4C73009F046C07E +:1042D0008AE08093150194E19093140193E0909308 +:1042E00013018093120188E08093110188E280938A +:1042F000100134C0CE51C63088F5EC2FF0E0E65DF9 +:10430000FE4F80818093DA0129C0CE34E9F020F499 +:10431000CB3421F56AE013C0C13579F0C235F1F430 +:1043200061E00DC08091DA01882319F01092DA0162 +:1043300015C081E08093DB0115C061E006C080916B +:10434000DA010E948A1F0AC06AE08091DA010E94A5 +:10435000002004C01092DB0180E004C081E002C0B4 +:1043600080E0ABCFCF910895E1E8F0E080818860F4 +:1043700080838081816080838FB7F89493E09093ED +:10438000890090ED909388008FBF0895EFE6F0E0EC +:104390008081826080830895EFE6F0E080818D7FE8 +:1043A00080830895EFE6F0E0908182E089278083A2 +:1043B00008951F920F920FB60F9211242F933F93DF +:1043C0004F935F936F937F938F939F93AF93BF931D +:1043D000EF93FF938091DC019091DD010196909322 +:1043E000DD018093DC01811103C082E00E94160888 +:1043F000E091DD01E695E695F0E0E258FA4FE491B0 +:104400008091DC018E1303C080E00E941608FF91AA +:10441000EF91BF91AF919F918F917F916F915F913C +:104420004F913F912F910F900FBE0F901F901895B5 +:104430000E941F226894B1110C94AE2208950E942C +:10444000932288F09F5798F0B92F9927B751B0F071 +:10445000E1F0660F771F881F991F1AF0BA95C9F708 +:1044600014C0B13091F00E94AD22B1E008950C94D7 +:10447000AD22672F782F8827B85F39F0B93FCCF38A +:10448000869577956795B395D9F73EF49095809585 +:10449000709561957F4F8F4F9F4F0895E89409C0A5 +:1044A00097FB3EF490958095709561957F4F8F4F67 +:1044B0009F4F9923A9F0F92F96E9BB279395F6957D +:1044C000879577956795B795F111F8CFFAF4BB0FFB +:1044D00011F460FF1BC06F5F7F4F8F4F9F4F16C05F +:1044E000882311F096E911C0772321F09EE8872FE9 +:1044F000762F05C0662371F096E8862F70E060E0A5 +:104500002AF09A95660F771F881FDAF7880F96951D +:10451000879597F9089557FD9058440F551F59F006 +:104520005F3F71F04795880F97FB991F61F09F3FA0 +:1045300079F087950895121613061406551FF2CFC9 +:104540004695F1DF08C0161617061806991FF1CF19 +:1045500086957105610508940895E894BB27662740 +:104560007727CB0197F908950E94C7220C9438232E +:104570000E942A2338F00E94312320F0952311F065 +:104580000C9421230C94272311240C94AE220E9416 +:104590008B2270F3959FC1F3950F50E0551F629FDA +:1045A000F001729FBB27F00DB11D639FAA27F00D8C +:1045B000B11DAA1F649F6627B00DA11D661F829FB3 +:1045C0002227B00DA11D621F739FB00DA11D621F98 +:1045D000839FA00D611D221F749F3327A00D611DB5 +:1045E000231F849F600D211D822F762F6A2F112497 +:1045F0009F5750409AF0F1F088234AF0EE0FFF1FCA +:10460000BB1F661F771F881F91505040A9F79E3F20 +:10461000510580F00C9421230C94AE225F3FE4F30B +:10462000983ED4F3869577956795B795F795E79576 +:104630009F5FC1F7FE2B880F911D9695879597F97F +:10464000089597F99F6780E870E060E008959FEF14 +:1046500080EC089500240A94161617061806090619 +:10466000089500240A9412161306140605060895E8 +:10467000092E0394000C11F4882352F0BB0F40F470 +:10468000BF2B11F460FF04C06F5F7F4F8F4F9F4FB0 +:10469000089597FB072E16F4009407D077FD09D0F4 +:1046A0000E94632307FC05D03EF4909581959F4FAF +:1046B0000895709561957F4F0895EE0FFF1F059047 +:1046C000F491E02D0994AA1BBB1B51E107C0AA1F5E +:1046D000BB1FA617B70710F0A61BB70B881F991FA3 +:1046E0005A95A9F780959095BC01CD010895F99947 +:1046F000FECF92BD81BDF89A992780B50895A8E1B3 +:10470000B0E042E050E00C949A23262FF999FECFB6 +:104710001FBA92BD81BD20BD0FB6F894FA9AF99ADE +:104720000FBE019608950E948523272F0C9486239F +:10473000DC01CB01FC01F999FECF06C0F2BDE1BD61 +:10474000F89A319600B40D9241505040B8F7089550 +:04475000F894FFCF0B +:1047540020021708A70882084E081A080101BA01A6 +:1047640028080A03140A3F4D36393F05F204BC04F5 +:10477400830416042F04480461040102030405069B +:044784000708090019 +:00000001FF diff --git a/keyboard/ergodox_ez/keymaps/csharp_dev/csharp_dev.png b/keyboard/ergodox_ez/keymaps/csharp_dev/csharp_dev.png new file mode 100644 index 0000000000..6fba568fc3 Binary files /dev/null and b/keyboard/ergodox_ez/keymaps/csharp_dev/csharp_dev.png differ diff --git a/keyboard/ergodox_ez/keymaps/csharp_dev/csharp_dev_legend.png b/keyboard/ergodox_ez/keymaps/csharp_dev/csharp_dev_legend.png new file mode 100644 index 0000000000..b0a1c513cd Binary files /dev/null and b/keyboard/ergodox_ez/keymaps/csharp_dev/csharp_dev_legend.png differ diff --git a/keyboard/ergodox_ez/keymaps/csharp_dev/keymap.c b/keyboard/ergodox_ez/keymaps/csharp_dev/keymap.c new file mode 100644 index 0000000000..46005b533e --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/csharp_dev/keymap.c @@ -0,0 +1,239 @@ +#include "ergodox_ez.h" +#include "debug.h" +#include "action_layer.h" + +#define BASE 0 // default layer +#define FKEYS 1 // F keys + macros + +#define MACRO_PUBLIC 10 +#define MACRO_PRIVATE 11 + +#define MACRO_STATIC 12 +#define MACRO_CONST 13 + +#define MACRO_VOID 14 +#define MACRO_VAR 15 +#define MACRO_STRING 16 + +#define MACRO_INT 17 +#define MACRO_FLOAT 18 +#define MACRO_BOOL 19 + +#define MACRO_RETURN 20 +#define MACRO_NULL 21 +#define MACRO_BREAK 22 + +#define MACRO_TODO 23 +#define MACRO_NEW 24 +#define MACRO_PARENTHESE 25 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Keymap 0: Basic layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | ( | 1 | 2 | 3 | 4 | 5 | " | | Save | 6 | 7 | 8 | 9 | 0 | [ | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | ) | Q | W | E | R | T |Bkspa | | Del | Y | U | I | O | P | ] | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | { | A | S | D | F | G |------| |------| H | J | K | L | _ | Redo | + * |--------+------+------+------+------+------| / | | ; |------+------+------+------+------+--------| + * | } |Z~Alt | X | C | V | B | | | | N | M | ' | ! | ? | Undo | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * |Tab~CL| < | > | | | & | | = | + | - | * | L1 | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * |. ~L1 | , | |Home |End~L1| + * ,------|------|------| |------+------+------. + * | | | Copy | | UP | | | + * | Enter| Space|------| |------| Space|Enter | + * | ~WIN | ~LSFT| Past | | DOWN | ~LSFT| ~WIN | + * `--------------------' `--------------------' + */ +// If it accepts an argument (i.e, is a function), it doesn't need KC_. +// Otherwise, it needs KC_* +[BASE] = KEYMAP( // layer 0 : default + // left hand + KC_LPRN, KC_1, KC_2, KC_3, KC_4, KC_5, LSFT(KC_QUOTE), + KC_RPRN, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_BSPACE, + KC_LCBR, KC_A, KC_S, KC_D, KC_F, KC_G, + KC_RCBR, ALT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_SLASH, + CTL_T(KC_TAB), LSFT(KC_COMMA),LSFT(KC_DOT),KC_PIPE,KC_AMPR, + LT(1,KC_DOT), KC_COMM, + LCTL(KC_C), + GUI_T(KC_ENTER),SFT_T(KC_SPACE),LCTL(KC_V), + // right hand + LCTL(KC_S) , KC_6, KC_7, KC_8, KC_9, KC_0, KC_LBRACKET, + KC_DELETE, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_RBRACKET, + KC_H, KC_J, KC_K, KC_L, KC_UNDS,LCTL(KC_Y), + KC_SCOLON,KC_N, KC_M, KC_QUOTE ,KC_EXLM , LSFT(KC_SLASH), LCTL(KC_Z), + KC_EQUAL,KC_PLUS , KC_MINUS,KC_ASTR , TG(1), + KC_HOME, LT(1,KC_END), + KC_UP, + KC_DOWN,SFT_T(KC_SPACE), GUI_T(KC_ENTER) + ), + +/* Keymap 1: F keys + macros + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | ESC | F1 | F2 | F3 | F4 | F5 | ` | | Calc | F6 | F7 | F8 | F9 | F10 | F11 | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | Tab |Public|Static|string|int |return| | | |//TODO| | | | | F12 | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | |Privat|Const |var |float |null |------| |------|new | | | | | | + * |--------+------+------+------+------+------| \ | | ~ |------+------+------+------+------+--------| + * | | | |void |bool |break;| | | |(); | | | | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | WIN | Alt | | | | PgUp | PgDw | Ins | PtSc | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | Cut | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| Left | Right| + * | | | | | | | | + * `--------------------' `--------------------' + */ +// FKEYS + MACROS +[FKEYS] = KEYMAP( + // left hand + KC_ESCAPE,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_GRAVE, + KC_TAB,M(MACRO_PUBLIC),M(MACRO_STATIC), M(MACRO_STRING),M(MACRO_INT),M(MACRO_RETURN),KC_TRNS, + KC_TRNS,M(MACRO_PRIVATE),M(MACRO_CONST), M(MACRO_VAR),M(MACRO_FLOAT),M(MACRO_NULL), + KC_TRNS,KC_TRNS,KC_TRNS,M(MACRO_VOID),M(MACRO_BOOL),M(MACRO_BREAK),KC_BSLASH, + KC_TRNS,KC_LGUI,KC_LALT,KC_TRNS,KC_TRNS, + KC_TRNS,LCTL(KC_X), + KC_TRNS, + KC_TRNS,KC_TRNS,KC_TRNS, + // right hand + KC_CALCULATOR, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + KC_TRNS, M(MACRO_TODO), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F12, + M(MACRO_NEW), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TILD, M(MACRO_PARENTHESE), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_PGUP,KC_PGDOWN, KC_INSERT, KC_PSCREEN, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_LEFT, KC_RIGHT +), + + +}; + +const uint16_t PROGMEM fn_actions[] = { + [1] = ACTION_LAYER_TAP_TOGGLE(FKEYS) // FN1 - Momentary Layer 1 +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch(id) { + case MACRO_PUBLIC: + if (record->event.pressed) { + return MACRO( T(P), T(U), T(B), T(L), T(I), T(C), T(SPACE),END); + } + break; + case MACRO_PRIVATE: + if (record->event.pressed) { + return MACRO( T(P), T(R), T(I), T(V), T(A), T(T), T(E), T(SPACE),END); + } + break; + case MACRO_STATIC: + if (record->event.pressed) { + return MACRO( T(S), T(T), T(A), T(T), T(I), T(C), T(SPACE), END); + } + break; + case MACRO_CONST: + if (record->event.pressed) { + return MACRO( T(C), T(O), T(N), T(S), T(T), T(SPACE), END); + } + break; + case MACRO_VOID: + if (record->event.pressed) { + return MACRO( T(V), T(O), T(I), T(D), T(SPACE), END); + } + break; + case MACRO_VAR: + if (record->event.pressed) { + return MACRO( T(V), T(A), T(R), T(SPACE), END); + } + break; + case MACRO_STRING: + if (record->event.pressed) { + return MACRO( T(S), T(T), T(R), T(I), T(N), T(G), T(SPACE), END); + } + break; + case MACRO_BOOL: + if (record->event.pressed) { + return MACRO( T(B), T(O), T(O), T(L), T(SPACE), END); + } + break; + case MACRO_INT: + if (record->event.pressed) { + return MACRO( T(I), T(N), T(T), T(SPACE), END); + } + break; + case MACRO_FLOAT: + if (record->event.pressed) { + return MACRO( T(F), T(L), T(O), T(A),T(T),T(SPACE), END); + } + break; + case MACRO_RETURN: + if (record->event.pressed) { + return MACRO( T(R), T(E), T(T), T(U),T(R),T(N), END); + } + break; + case MACRO_NULL: + if (record->event.pressed) { + return MACRO( T(N), T(U), T(L), T(L), END); + } + case MACRO_BREAK: + if (record->event.pressed) { + return MACRO( T(B), T(R), T(E), T(A), T(K), T(SCOLON), END); + } + break; + case MACRO_TODO: + if (record->event.pressed) { + return MACRO( T(SLASH), T(SLASH), D(LSHIFT) ,T(T), T(O), T(D), T(O),U(LSHIFT), T(SPACE),END); + } + break; + case MACRO_NEW: + if (record->event.pressed) { + return MACRO( T(N), T(E), T(W), T(SPACE), END); + } + break; + case MACRO_PARENTHESE: + if (record->event.pressed) { + return MACRO( D(LSHIFT),T(LPRN), T(RPRN),U(LSHIFT), T(SCOLON), END); + } + break; + } + return MACRO_NONE; +}; + +// Runs just one time when the keyboard initializes. +void matrix_init_user(void) { + +}; + +// Runs constantly in the background, in a loop. +void matrix_scan_user(void) { + + uint8_t layer = biton32(layer_state); + + ergodox_board_led_off(); + ergodox_right_led_1_off(); + ergodox_right_led_2_off(); + ergodox_right_led_3_off(); + switch (layer) { + // TODO: Make this relevant to the ErgoDox EZ. + case 1: + ergodox_right_led_1_on(); + break; + case 2: + ergodox_right_led_2_on(); + break; + default: + // none + break; + } + +}; diff --git a/keyboard/ergodox_ez/keymaps/csharp_dev/readme.md b/keyboard/ergodox_ez/keymaps/csharp_dev/readme.md new file mode 100644 index 0000000000..96af077ade --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/csharp_dev/readme.md @@ -0,0 +1,47 @@ +# ErgoDox EZ C# Developer configuration + +## Changelog + +* Feb 12, 2016 (V1): + * First version commit +* Mar 20, 2016 (V2): + * Removed "Classic QWERTY" layer, inverted GUI and SHIFT on Hold for Space and Enter + +## About +This layout was conceived in an attempt to optimise keyboard layout for developers (C# more specifically, but it can work with most of other languages), and limit the keys required to perform the most frequent actions. + +I came to the realization that my main tool as a developer, the qwerty keyboard was something that did not evolved at its core in almost 150 years. +There are a lot of reasons to this, and it would be a massive entreprise to change a standard so strongly anchored, but I wanted to give it a try and see how would look an input device dedicated to developers, more specifically a C# developer in my case. +The biggest flaw in standard QWERTY keyboards was that I always needed to perform key combination to access commonly used characters or actions. Think about it a minute, how many times a day do you press a modifier key such as Ctrl or Shift, it's insane and could be so easily optimized to require only one key press. + +Then I came across the ErgoDox EZ project, that allowed a full customization of its firmware, and a unique 2 parts design. + +![CSharpDev](csharp_dev_legend.png) + +## Layout design principles +* No key combination required for the most common input characters ( (),[],{},<> ... ) +* No key combination required for the most common actions (copy/paste/undo/save) +* Regroup characters by usage ( + - * = ...) +* Easy access to the most commonly used characters: ; / " . , +* Preregistered macro for the most common C# langage instructions: public / private / string / int / float ... + +## Why is it specific to C Sharp +I defined the characters priority based on their usage in C# language, most of this characters are also used in other coding languages but it may require some tweaking. +For example there is no direct access to ~ or $ keys which can be very common in some languages. +Note it is also specific to Windows environement as the shortcut used in action keys would not work on Mac Os + +## In usage +It was relatively easy to get used to the layout, but it's hard for me to define how easy it was as I was getting used to a blank Ergodox keyboard at the same time. +Still it's extremely satisfying to Save your file with just one easily accessible key or to have one big key to end your code line ( ; ) + +## Improvements +This layout was shared after a bunch of iterations and only once I was happy with it. +Still there are many way to improve or iterate on this: +* Make it language agnostic +* Check and compile language's keyboard's heatmaps to statistically define keys priority (e.g. https://dzone.com/articles/most-pressed-keys-various ) +* QWERTY is still not the most efficient typing layout, I would like to create a Dvorak based similar layout in a near futur + +## Issues +One of the issues encountered while creating this layout was that I did not find a way to have a key to send a modifier on hold, and a key combination while pressed (e.g. I can't set a Key to do Save (Ctrl + S) when pressed and Shift modifier when hold ) + + diff --git a/keyboard/ergodox_ez/keymaps/dave/dave.hex b/keyboard/ergodox_ez/keymaps/dave/dave.hex new file mode 100644 index 0000000000..363e7234d8 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/dave/dave.hex @@ -0,0 +1,1128 @@ +:100000000C9463020C94AA020C94AA020C94AA0207 +:100010000C94AA020C94AA020C94AA020C94AA02B0 +:100020000C94AA020C94AA020C94FF0B0C94D10C11 +:100030000C94AA020C94AA020C94AA020C94AA0290 +:100040000C94AA020C9445210C94AA020C94AA02C6 +:100050000C94AA020C94D71A0C94AA020C94AA022B +:100060000C94AA020C94AA020C94AA020C94AA0260 +:100070000C94AA020C94AA020C94AA020C94AA0250 +:100080000C94AA020C94AA020C94AA020C94AA0240 +:100090000C94AA020C94AA020C94AA020C94AA0230 +:1000A0000C94AA020C94AA020C94AA023E0D600DB4 +:1000B000530E600D530EA50DC80D530E1D0E300EC0 +:1000C0001A111A11491149118C11C611D313D313E6 +:1000D000DF11D313D412D412A713D313D313BE1327 +:1000E00029002B00E000E100357100001E00140023 +:1000F00004001D006400E3001F001A0016001B002E +:1001000000000252200008000700060000002C003A +:100110002100150009001900E2001151220017000A +:100120000A0005000000460023001C0000000B0030 +:100130000000650023000A000000050000004800E0 +:1001400024001C000B0011000000007525001800A1 +:100150000D001000E600115126000C000E003600C4 +:1001600000002C00270012000F0037002F00015262 +:100170002D001300330038003000E7002A0028006B +:100180002800E500347100000100010001000100B9 +:100190000100000001001E022002220201000100F5 +:1001A00001001F02210223020100010001002F02B1 +:1001B00026022F000100010001003002270230005A +:1001C000010012510100310235003502000001002A +:1001D0000100010000000100000001000100010019 +:1001E0000000010000000100010001000100010009 +:1001F0000000010000005F005C0059006200125125 +:10020000540060005D005A0062000100550061006A +:100210005E005B0063000100560057005700580065 +:10022000580001002E0032003400010001000000DF +:100230000100010001000100010000003A004A0035 +:100240005000F400F20001003B0052005100F000A9 +:10025000F10001003C004D004F00F500F3000100EB +:100260003D0049004C000100010010513E004B00D0 +:100270004E0001000000A5003F0001000000010049 +:1002800000004C05400001000000010000000100DA +:1002900041000100010001000000010042000100D6 +:1002A000B600AC00AA001051430049004C00AE005B +:1002B000A800010044000100B700AB00A900010044 +:1002C00045000100010001000100010001000100E2 +:1002D00001000100010000001603450072006700E4 +:1002E0006F0044006F007800200045005A000000B5 +:1002F00016034500720067006F0044006F0078002D +:10030000200045005A0000000403090409026D00A2 +:10031000040100A0FA090400000103010100092101 +:1003200011010001223F000705810308000A0904AA +:1003300001000103010200092111010001224D0009 +:100340000705820308000A090402000103000000F7 +:100350000921110100012236000705830308000A64 +:10036000090403000103000000092111010001221A +:10037000390007058403100001120110010000007C +:1003800008EDFE071301000102000105010906A1A5 +:1003900001050719E029E715002501950875018178 +:1003A0000205081901290595057501910295017548 +:1003B0000391010507190029771500250195787526 +:1003C000018102C005010980A101850216010026F4 +:1003D000B7001A01002AB700751095018100C00509 +:1003E0000C0901A1018503160100269C021A0100D7 +:1003F0002A9C02751095018100C005010902A10126 +:100400000901A10005091901290515002501950516 +:1004100075018102950175038101050109300931DA +:100420001581257F95027508810609381581257F7C +:10043000950175088106050C0A38021581257F95FE +:100440000175088106C0C005010906A1010507194B +:10045000E029E715002501950875018102950175D0 +:100460000881010508190129059505750191029575 +:1004700001750391010507190029FF150025FF9556 +:100480000675088100C000000000000000000000A8 +:1004900000010204060A0F17202C3A4A5D71879D5D +:1004A000B3C7DAE9F5FCFFFCF5E9DAC7B39D87715C +:1004B0005D4A3A2C20170F0A0604020100000000D2 +:1004C00000000000000011241FBECFEFDAE0DEBF05 +:1004D000CDBF04B603FE27C08091F1019091F201D7 +:1004E000A091F301B091F4018730904BA740B04B3D +:1004F000D1F41092F1011092F2011092F3011092D6 +:10050000F40114BE84B7877F84BF0FB6F894A89512 +:1005100080916000886180936000109260000FBE3F +:10052000E0E0FFE3099511E0A0E0B1E0ECE2F6E4E1 +:1005300002C005900D92A433B107D9F721E0A4E3DE +:10054000B1E001C01D92A13FB207E1F70E94460948 +:100550000C9414230C94000061110BC0FC018281E7 +:10056000882321F085EE0E94B40F03C085EE0E941F +:100570007C1080E090E0089508956091B50170913D +:10058000B6018091B7019091B8010E94041A569863 +:100590005E98E5E3F1E065E070E031E0A1E0B0E015 +:1005A0004081831305C091E04F3F41F490E006C0C5 +:1005B00021E0411101C020E0922F9195940F90838A +:1005C000992309F194B1AD01062E01C0440F0A949C +:1005D000EAF7942B94B995B1492B45B9408150E085 +:1005E000313029F4509389004093880019C032308B +:1005F00029F450938B0040938A0012C050938D00D1 +:1006000040938C000DC094B1AD01062E01C0440F83 +:100610000A94EAF74095942394B995B1492345B9D2 +:100620003F5F6F5F7F4F3196343009F0B9CF089547 +:100630000C94BD0256985E9825982D9826982E9871 +:1006400027982F988FEF90E09093890080938800EF +:1006500090938B0080938A0090938D0080938C0000 +:10066000259A2D9A2FEF80E792E02150804090400C +:10067000E1F700C00000269A2E9A2FEF80E792E063 +:10068000215080409040E1F700C00000279A2F9A47 +:100690002FEF80E792E0215080409040E1F700C0CA +:1006A000000025982D982FEF80E792E021508040A0 +:1006B0009040E1F700C0000026982E982FEF80E7C9 +:1006C00092E0215080409040E1F700C00000279860 +:1006D0002F9856985E9825982D9826982E982798AA +:1006E0002F98089589EA8093800089E080938100A3 +:1006F00024982C983F988AB18F748AB96E98479A3B +:100700008BB1806B8BB9769A0E941A030C94BC0251 +:1007100080E2809300018091380181110EC00E9417 +:10072000D70381E0809338012FEF83ED90E32150D0 +:1007300080409040E1F700C0000080E40E94DD03AB +:100740008093000181112EC00E9407048093000154 +:10075000811128C00E94070480930001811122C0EA +:100760008FE30E9407048093000181111BC00E9447 +:10077000FF0380E40E94DD0380930001811112C019 +:100780008CE00E9407048093000181110BC00E943D +:10079000070480930001811105C08FE30E940704C4 +:1007A000809300010E94FF03809100010895109240 +:1007B000B9008AE08093B800089594EA9093BC0051 +:1007C0009091BC0097FFFCCF9091B900987F983032 +:1007D00021F0903111F081E008958093BB0084E80E +:1007E0008093BC008091BC0087FFFCCF8091B90052 +:1007F000887F883111F0803471F780E0089584E9B2 +:100800008093BC008091BC0084FDFCCF0895809350 +:10081000BB0084E88093BC008091BC0087FFFCCFC4 +:100820009091B900987F81E0983209F480E00895B2 +:1008300084E88093BC008091BC0087FFFCCF80914E +:10084000BB00089580910001811115C080E40E94D1 +:10085000DD038093000181110CC082E10E94070436 +:1008600080930001811105C08FEF0E9407048093DF +:1008700000010E94FF0384B1807F84B985B1807F2D +:1008800085B98AB1837F8AB98BB1837F8BB93E9852 +:10089000469808950E948803809300010E942204D4 +:1008A00080B38C7080BB81B3836F81BBE8E4F1E0DF +:1008B000AAE3B1E011921D9281E0E635F807D1F785 +:1008C0000C9472039F92AF92BF92CF92DF92EF92FD +:1008D000FF920F931F93CF93DF93809100018823A2 +:1008E00079F0809139018F5F80933901811108C0BF +:1008F0000E94880380930001811102C00E941A03A4 +:100900008AE3E82E81E0F82E8701C0E0D0E0BB2426 +:10091000B39492E0A92ECC24C394D12CC730D10536 +:1009200000F580910001811164C080E40E94DD0324 +:1009300080930001811112C082E10E94070480931C +:10094000000181110BC0C6010C2E01C0880F0A9452 +:10095000EAF780950E940704809300010E94FF033C +:1009600048C0CA30A1F028F4C83059F0C93061F04D +:1009700005C0CC3089F070F0CD3089F0209A2898ED +:1009800010C0219A29980DC0229A2A980AC0239A49 +:100990002B9807C0529A01C0539A5B9802C03E9AA6 +:1009A0004698E0EAEA95F1F78FB181708B25799945 +:1009B00002C032E001C030E0832B7C9902C034E0F9 +:1009C00001C030E0832B7D9902C028E001C020E007 +:1009D000822B7E9902C090E101C090E0892B9FB1EB +:1009E0009095991F9927991F9295990F907E892B21 +:1009F0000FC08091000181114AC080E40E94DD0394 +:100A000080930001882381F1912C0E94FF03892D9E +:100A1000D8019C91981719F08C93A09201010E9423 +:100A2000220421960F5F1F4FCE30D10509F076CFFB +:100A300080910101882369F181508093010188230D +:100A400039F0EFE9FFE03197F1F700C0000021C075 +:100A5000E8E4F1E0D7018D917D018193B8E4EB16D4 +:100A6000B1E0FB06B9F715C083E10E94070480934B +:100A700000018111C9CF81E40E94DD038093000150 +:100A80008111C2CF0E941804982E9094BECF80E0AE +:100A9000BFCF0E94180381E0DF91CF911F910F918A +:100AA000FF90EF90DF90CF90BF90AF909F90089510 +:100AB000E82FF0E0E85BFE4F8081089508958B3BBE +:100AC000910580F4883A910548F5853A9105D8F466 +:100AD0008430910508F0B2C0019709F06EC081E042 +:100AE00090E00895803E910508F467C0883E910526 +:100AF00008F4A4C09C01205F31092031310508F0C1 +:100B00005CC090650895853A910509F459C0863A0C +:100B1000910509F058C082E890E40895883A91055B +:100B200009F454C0893A910509F453C08A3A9105F1 +:100B300009F452C08B3A910509F451C08C3A9105E1 +:100B400009F450C08D3A910509F44FC0803B9105DE +:100B500009F44EC08E3A910509F44DC08F3A9105C3 +:100B600009F44CC0813B910509F44BC0823B9105CF +:100B700009F44AC0833B910509F449C0843B9105BF +:100B800009F448C0853B910509F447C0863B9105AF +:100B900009F446C0873B910509F445C0883B91059F +:100BA00009F444C0893B910509F443C08A3B91058F +:100BB00009F442C080E094E4089580E090E0089554 +:100BC00081E890E4089583E890E4089582EE94E447 +:100BD000089589EE94E408958AEE94E4089585EBEF +:100BE00094E4089586EB94E4089587EB94E40895E3 +:100BF0008CEC94E408958DEC94E4089583E895E4F6 +:100C000008958AE895E4089582E995E4089584E9D1 +:100C100095E4089581E296E4089583E296E40895C8 +:100C200084E296E4089585E296E4089586E296E4E7 +:100C3000089587E296E408958AE296E40895089577 +:100C400024E5829FC0011124FC0126E0729FE00D83 +:100C5000F11D1124E60FF11DEE0FFF1FE052FF4FB3 +:100C6000859194910895880F991FFC01E05AF040F6 +:100C7000859194910895880F991FFC01E052FF4FD0 +:100C800085919491089524E5829FC0011124FC016F +:100C900046E0749FE00DF11D1124E60FF11DEE0FEB +:100CA000FF1FE052FF4F859194919C013A952115C9 +:100CB0004FE1340708F425C13F512115304120F49C +:100CC0009F700E943B0608959C01305321153041CE +:100CD00018F49927906C0895811520E5920769F41E +:100CE0000E94F5134FEF84E39CE041508040904018 +:100CF000E1F700C000000C94FC1A813020E5920757 +:100D000031F48091D00181608093D00108959C01DD +:100D100030552115304108F05CC0292F33272F7042 +:100D2000332721303105E9F4AC0164E0440F551F4D +:100D30006A95E1F744275370BC016370772702C0BE +:100D4000220F331F6A95E2F73C68242B352B73E0A2 +:100D5000880F991F7A95E1F780769927822B932B3C +:100D600008952230310529F4982F8827816F906AE1 +:100D7000089523303105A1F4AC0133E0440F551F31 +:100D80003A95E1F7407E57708370992721E030E073 +:100D900002C0220F331F8A95E2F7C9019C6816C072 +:100DA0002430310531F5AC0123E0440F551F2A955D +:100DB000E1F7407E57708370992721E030E002C050 +:100DC000220F331F8A95E2F7C9019A68842B952B6D +:100DD00008959C0130572115304118F49F7090629E +:100DE00008959C0130582115304118F49F70906A85 +:100DF0000895803E9105E0F4803C910558F58133DB +:100E0000910509F46FC048F48932910509F463C073 +:100E10008A32910509F46DC072C089339105E9F0F9 +:100E200082389105D1F08533910509F44DC067C032 +:100E3000833E910581F138F4803E9105B9F0823E00 +:100E40009105D9F05CC0863E910561F1873E910520 +:100E5000A1F155C00E94330608952091E20120FDC2 +:100E600002C021FF4CC080EE90E049C08091E201B9 +:100E700080FFF9CF89E390E042C08091E20182FFD8 +:100E80000EC08091E20184FF03C080E090E037C093 +:100E900083EE90E034C08091E20182FFF2CF82EED7 +:100EA00090E02DC08091E20183FF0BC08091E201B0 +:100EB00084FDEBCF87EE90E022C08091E20183FFBA +:100EC000F5CF86EE90E01BC08091E20185FF07C060 +:100ED00089E290E014C08091E20185FFF9CF85E3BB +:100EE00090E00DC08091E20186FF07C08AE290E0A9 +:100EF00006C08091E20186FFF9CF81E390E00E9475 +:100F00005F0508950895809166010895CF93DF935A +:100F100000D01F92CDB7DEB79C018091E8018430EC +:100F200019F593E099833B832A839093E9008FEF2F +:100F30009091E800815095FD06C095ED9A95F1F7E6 +:100F400000008111F5CF8091E80085FF0DC040E0E1 +:100F500050E063E070E0CE0101960E94F3098091B9 +:100F6000E8008E778093E8000F900F900F90DF914C +:100F7000CF910895CF93DF9300D01F92CDB7DEB706 +:100F80002091E801243021F522E029839B838A8384 +:100F900083E08093E9008FEF9091E800815095FD08 +:100FA00006C095ED9A95F1F700008111F5CF80917B +:100FB000E80085FF0DC040E050E063E070E0CE0146 +:100FC00001960E94F3098091E8008E778093E800F3 +:100FD0000F900F900F90DF91CF9108959C01809119 +:100FE000E8018430F9F482E08093E9009FEF80917A +:100FF000E800915085FD06C085ED8A95F1F7000067 +:101000009111F5CF8091E80085FF0CC040E050E0E1 +:1010100065E070E0C9010E94F3098091E8008E77D5 +:101020008093E8000895CF93DF93EC018091E8016D +:10103000843009F046C090910C019923D9F0909129 +:101040000D019923B9F08093E9008FEF9091E800AA +:10105000815095FD06C095E19A95F1F70000811148 +:10106000F5CF8091E80085FF2CC040E050E060E1C2 +:1010700070E017C081E08093E9008FEF9091E80065 +:10108000815095FD06C095ED9A95F1F7000081110C +:10109000F5CF8091E80085FF14C040E050E068E0A3 +:1010A00070E0CE010E94F3098091E8008E77809372 +:1010B000E80080E1FE01A6E5B1E001900D928A957D +:1010C000E1F7DF91CF9108958091E701811109C087 +:1010D0000E94840B0E94E10B8091E2008460809367 +:1010E000E20008951092E701089508950C943221CA +:1010F0000E94921A0E9438210E948C0E0C94820742 +:1011000042E061EC81E00E94FD0A42E061EC82E095 +:101110000E94FD0A42E061EC83E00E94FD0A42E188 +:1011200061EC84E00C94FD0A8091EA01833009F4BB +:1011300055C030F4813071F0823009F48EC00895CA +:101140008A3009F47AC08B3009F460C0893009F024 +:101150009CC020C08091E901813A09F096C080913D +:10116000E800877F8093E8008091ED019091EE0187 +:10117000892B21F460E186E591E003C060E080E026 +:1011800090E070E00E943E0A8091E8008B778093A7 +:10119000E80008958091E901813209F076C08091DC +:1011A000ED019091EE01009719F0039709F06DC0E1 +:1011B0008091E800877F8093E8008091E80082FDBD +:1011C00005C08091E8018111F8CF5FC08091F100E6 +:1011D000809366018091E8008B7753C08091E9018C +:1011E000813A09F052C08091ED019091EE01892B76 +:1011F00009F04BC08091E800877F8093E8008091E0 +:10120000E80080FFFCCF80910C0136C08091E9019D +:101210008132D9F58091ED019091EE01892BA9F5EC +:101220008091E800877F8093E8000E94320B8091D4 +:10123000EB0180930C010C94F5138091E90181324C +:1012400021F58091E800877F8093E8000E94320BAF +:101250008091EC018093670108958091E901813AC2 +:10126000A1F48091E800877F8093E8008091E800F6 +:1012700080FFFCCF809167018093F1008091E800AE +:101280008E778093E8000C94320B089584B7877FA3 +:1012900084BF0FB6F894A895809160008861809310 +:1012A0006000109260000FBE90E080E80FB6F894E6 +:1012B00080936100909361000FBE0E94DB0E0E943C +:1012C000840B0E94E10B8091E20084608093E20035 +:1012D00078940E946C0E0E94DD0E82E091E00E94E4 +:1012E000870E0E9420218091E801853069F40E94D8 +:1012F000541A8091E6018823B1F30E947E1A882354 +:1013000091F30E94DD09EFCF0E94E30EECCF292F6D +:10131000332723303105C9F060F42130310581F0E5 +:101320002230310509F041C08DE690E02CE033E039 +:1013300040C021323105E1F02232310531F135C0B2 +:1013400082E190E029E733E034C0992781309105AC +:1013500049F028F0029749F5E8EDF2E005C0E8E031 +:10136000F3E002C0E0EFF2E0849190E09F0121C041 +:101370006430D8F4E62FF0E0EE0FFF1FEE5DFE4F75 +:101380002081318189E090E014C0643070F470E015 +:10139000FB01EE0FFF1FE65EFE4F20813181FB0156 +:1013A000EA5EFE4F808190E004C080E090E020E0A3 +:1013B00030E0FA0131832083089580E189BD82E124 +:1013C00089BD09B400FEFDCF8091D8008F7D809348 +:1013D000D8008091E00082608093E0008091E0007E +:1013E00081FDFCCF0895CF92DF92EF92FF920F9391 +:1013F0001F93CF93DF93EC018B016A010E94510B85 +:10140000811133C0C114D10439F0F601808191817A +:10141000081B190BC80FD91FE12CF12C0115110560 +:1014200019F18091E80085FD16C08091E8008E7763 +:101430008093E800C114D10449F0F60180819181C4 +:10144000E80EF91EF182E08285E00FC00E94510B88 +:10145000882321F30AC089918093F100015011097A +:10146000FFEFEF1AFF0ADACF80E0DF91CF911F91F3 +:101470000F91FF90EF90DF90CF9008952091EF01B2 +:101480003091F0012617370748F06115710539F4DE +:101490002091E8002E772093E80001C0B901FC01FB +:1014A00020E06115710579F18091E8018823F1F15F +:1014B0008530F1F18091E80083FD3CC08091E80027 +:1014C00082FD2EC08091E80080FFEBCF2091F300D9 +:1014D0008091F20090E0922B6115710551F08830F7 +:1014E000910538F421912093F10061507109019622 +:1014F000F3CF21E0089709F020E08091E8008E7793 +:101500008093E800CECF2111CFCF0AC08091E801AF +:10151000882361F0853061F08091E80083FD0AC086 +:101520008091E80082FFF2CF80E0089582E0089584 +:1015300083E0089581E008952091EF013091F0015A +:101540002617370748F06115710539F42091E80036 +:101550002E772093E80001C0B901FC0120E061155D +:10156000710591F18091E801882309F440C085302C +:1015700009F43FC08091E80083FD3DC08091E80000 +:1015800082FD2FC08091E80080FFE9CF2091F30019 +:101590008091F20090E0922B6115710559F088302E +:1015A000910540F424912093F10031966150710926 +:1015B0000196F2CF21E0089709F020E08091E80041 +:1015C0008E778093E800CBCF2111CCCF0AC08091D9 +:1015D000E801882361F0853061F08091E80083FDA7 +:1015E0000AC08091E80082FFF2CF80E0089582E097 +:1015F000089583E0089581E00895982F973068F565 +:101600009093E900981739F07091EC002091ED006B +:101610005091F00003C0242F762F50E021FD02C02E +:101620009F5FECCF3091EB003E7F3093EB00309129 +:10163000ED003D7F3093ED003091EB003160309351 +:10164000EB007093EC002093ED005093F00020919C +:10165000EE0027FDE5CF80E008958F708093E900CC +:1016600081E008958091E90187FF11C08091E80031 +:1016700082FD05C08091E8018111F8CF11C08091F1 +:10168000E8008B770BC08091E801882349F08091B6 +:10169000E80080FFF8CF8091E8008E778093E80023 +:1016A00008952091E4003091E50095E64091EC002A +:1016B000842F817040FF23C08091E80080FD1DC011 +:1016C0008091E801882399F0853099F08091EB00B2 +:1016D00085FD11C04091E4005091E50024173507C5 +:1016E00029F3915011F09A01E1CF84E0089582E04E +:1016F000089583E0089581E0089580E00895409181 +:10170000E80042FFDDCF08950E94F20B0E94FA0B21 +:10171000E0EEF0E0808181608083E8EDF0E08081A0 +:101720008F77808319BCA7EDB0E08C918E7F8C936E +:1017300080818F7E80831092E70108950F931F931D +:10174000CF93DF930E94F20B0E94FA0BC8EDD0E01A +:1017500088818F77888388818068888388818F7D5E +:10176000888319BC1092E8011092E4011092E601FE +:101770001092E50100EE10E0F80180818B7F8083FC +:1017800088818160888342E060E080E00E94FD0AF9 +:10179000E1EEF0E080818E7F8083E2EEF0E08081F8 +:1017A00081608083808188608083F80180818E7F62 +:1017B0008083888180618883DF91CF911F910F9111 +:1017C0000895E8EDF0E080818F7E8083E7EDF0E022 +:1017D00080818160808384E082BF81E08093E70123 +:1017E0000C949E0BE8EDF0E080818E7F8083109258 +:1017F000E20008951092DA001092E10008951F921D +:101800000F920FB60F9211242F933F934F935F9334 +:101810006F937F938F939F93AF93BF93EF93FF93B8 +:101820008091E10082FF0BC08091E20082FF07C03F +:101830008091E1008B7F8093E1000E946B0E80918C +:10184000DA0080FF1FC08091D80080FF1BC080910C +:10185000DA008E7F8093DA008091D90080FF0DC07E +:1018600080E189BD82E189BD09B400FEFDCF81E040 +:101870008093E8010E94640805C019BC1092E80139 +:101880000E9472088091E10080FF19C08091E200FF +:1018900080FF15C08091E2008E7F8093E2008091EE +:1018A000E20080618093E2008091D80080628093A2 +:1018B000D80019BC85E08093E8010E9476088091E9 +:1018C000E10084FF30C08091E20084FF2CC080E101 +:1018D00089BD82E189BD09B400FEFDCF8091D800A9 +:1018E0008F7D8093D8008091E1008F7E8093E1000E +:1018F0008091E2008F7E8093E2008091E20081601F +:101900008093E2008091E401882311F084E007C015 +:101910008091E30087FD02C081E001C083E08093F5 +:10192000E8010E9478088091E10083FF29C080913E +:10193000E20083FF25C08091E100877F8093E10072 +:1019400082E08093E8011092E4018091E1008E7FB3 +:101950008093E1008091E2008E7F8093E20080918D +:10196000E20080618093E20042E060E080E00E945B +:10197000FD0A8091F00088608093F0000E94750855 +:10198000FF91EF91BF91AF919F918F917F916F9157 +:101990005F914F913F912F910F900FBE0F901F902D +:1019A00018951F920F920FB60F9211242F933F9309 +:1019B0004F935F936F937F938F939F93AF93BF9357 +:1019C000CF93DF93EF93FF93C091E900CF708091A5 +:1019D000EC00D82FD17080FDD0E81092E900809102 +:1019E000F000877F8093F00078940E94150D10928C +:1019F000E9008091F00088608093F000CD2BCF70DB +:101A0000C093E900FF91EF91DF91CF91BF91AF912A +:101A10009F918F917F916F915F914F913F912F9106 +:101A20000F900FBE0F901F9018951F93CF93DF93C9 +:101A3000CDB7DEB7AA970FB6F894DEBF0FBECDBF05 +:101A4000E9EEF1E08091F100819321E0E13FF207BE +:101A5000C9F70E9494088091E80083FF24C1809117 +:101A6000E9019091EA01492F50E04A30510508F010 +:101A70001AC1FA01EA5AFF4F0C94C922803881F04A +:101A8000823809F010C18091ED018F708093E900D8 +:101A90008091EB0085FB882780F91092E90006C051 +:101AA0008091E5019091E601911182609091E800AA +:101AB000977F9093E8008093F1001092F100C8C0E6 +:101AC000282F2D7F09F0EFC0882319F0823061F0B4 +:101AD000EAC08091EB01813009F0E5C0933009F054 +:101AE00080E08093E6012BC08091EB01811127C03B +:101AF0008091ED018F7009F4D6C08093E9002091A8 +:101B0000EB0020FF1CC0933021F48091EB00806239 +:101B100014C09091EB0090619093EB0021E030E0D5 +:101B2000A90102C0440F551F8A95E2F74093EA00CD +:101B30001092EA008091EB0088608093EB00109295 +:101B4000E9008091E800877F86C08111ACC01091C8 +:101B5000EB011F778091E3008078812B8093E30075 +:101B60008091E800877F8093E8000E94320B80918B +:101B7000E80080FFFCCF8091E30080688093E30061 +:101B8000111102C082E001C083E08093E8018BC0A4 +:101B90008058823008F087C08091EB019091EC0171 +:101BA0008C3D53E0950779F583E08A838AE2898347 +:101BB0004FB7F894DE01139620E03EE051E2E32FA8 +:101BC000F0E050935700E49120FF03C0E295EF70DE +:101BD0003F5FEF708E2F90E0EA3010F0C79601C0A3 +:101BE000C0968D939D932F5F243149F74FBF80910D +:101BF000E800877F8093E8006AE270E0CE010196FA +:101C00000E943E0A14C0AE014F5F5F4F6091ED012C +:101C10000E948709BC01892B09F445C09091E80016 +:101C2000977F9093E80089819A810E949C0A809115 +:101C3000E8008B778093E80036C08038A1F580916A +:101C4000E800877F8093E8008091E4018093F100B1 +:101C50008091E8008E778093E8000E94320B23C0C9 +:101C6000811121C08091EB019091EC01992702979D +:101C7000D4F48091E800877F8093E8008091EB01A5 +:101C80008093E4010E94320B8091E401811106C02F +:101C90008091E30087FD02C081E001C084E0809371 +:101CA000E8010E9480088091E80083FF0AC08091CB +:101CB000E800877F8093E8008091EB00806280934A +:101CC000EB00AA960FB6F894DEBF0FBECDBFDF9132 +:101CD000CF911F9108950895CF938091E8018823B3 +:101CE000A1F0C091E900CF709091EC00892F817034 +:101CF00090FD80E8C82B1092E9008091E80083FDF8 +:101D00000E94150DCF70C093E900CF910895909374 +:101D10006D0180936C010895E0916C01F0916D016B +:101D2000309721F00190F081E02D099480E0089532 +:101D3000E0916C01F0916D01309721F00280F38108 +:101D4000E02D09940895E0916C01F0916D013097B8 +:101D500021F00480F581E02D0994089520916A0115 +:101D600030916B012817390771F090936B018093C4 +:101D70006A01E0916C01F0916D01309721F00680CD +:101D8000F781E02D0994089520916801309169014F +:101D90002817390771F09093690180936801E091E9 +:101DA0006C01F0916D01309721F00084F185E02DF8 +:101DB0000994089508950C94DA0E0E94981A0E94CE +:101DC0004A040C945E1BCF92DF92EF92FF920F9326 +:101DD0001F93CF93DF93CDB7DEB72B970FB6F89451 +:101DE000DEBF0FBECDBF0E9462048FE6C82E81E029 +:101DF000D82E00E010E0E02E802F0E945805F6015A +:101E000041916F01F82EF426B1F40F5F1F4F0E3091 +:101E1000110589F78FEF89838A831B820E94A11A9B +:101E20008160782F9D838C8349815A816B818D815C +:101E30000E94860F40C09091D00191FF04C08B8713 +:101E40000E945E058B8520E030E04F2D50E0922F00 +:101E5000BA01022E02C0759567950A94E2F760FFF9 +:101E600024C02E83EF8221E030E0690102C0CC0C57 +:101E7000DD1C9A95E2F790E08C219D21892B09F4D5 +:101E800020E028870E94A11A8160782F9A8789878D +:101E90004E815F8168858A850E94860FF801E1592D +:101EA000FE4F8081C826C08206C02F5F3F4F26307C +:101EB000310569F6AACF0E94451E0E948C0E9091B2 +:101EC0006E018917A1F00E948C0E80936E012B96F3 +:101ED0000FB6F894DEBF0FBECDBFDF91CF911F913B +:101EE0000F91FF90EF90DF90CF900C9482072B968C +:101EF0000FB6F894DEBF0FBECDBFDF91CF911F911B +:101F00000F91FF90EF90DF90CF900895CF93DF93E4 +:101F1000CDB7DEB72B970FB6F894DEBF0FBECDBF9F +:101F20004F83588769877A878B87DE01119686E011 +:101F3000FD0111928A95E9F785E0FE01379601903F +:101F40000D928A95E1F749815A816B817C818D815F +:101F50009E810E9489162B960FB6F894DEBF0FBEA5 +:101F6000CDBFDF91CF910895CF93C82F882309F477 +:101F7000C1C0823859F40E948C0E81FDBBC089E338 +:101F80000E9426190E94DE1989E30CC0833879F477 +:101F90000E948C0E80FDAEC083E50E9426190E942F +:101FA000DE1983E50E946519CF910C94DE198438FF +:101FB00059F40E948C0E82FD9DC087E40E94261970 +:101FC0000E94DE1987E4EECF8CEF8C0F813A48F443 +:101FD0008C2F0E94852081118DC08C2F0E94261984 +:101FE000E3CF80E28C0F883048F4C77081E001C0F5 +:101FF000880FCA95EAF70E94A719D6CF8BE58C0FF8 +:10200000833078F4C53A29F0C63A31F083E890E09D +:1020100005C081E890E002C082E890E0CF910C9486 +:10202000AE0E88E58C0F833108F064C0C83A39F1F0 +:10203000C93A41F1CA3A49F1CB3A51F1CC3A59F196 +:10204000CD3A61F1C03B69F1CE3A71F1CF3A79F105 +:10205000C13B81F1C23B89F1C33B91F1C43B99F192 +:10206000C53BA1F1C63BA9F1C73BB1F1C83BB9F1F2 +:10207000C93BC1F1CA3BC9F180E090E038C082EEB3 +:1020800090E035C089EE90E032C08AEE90E02FC03B +:1020900085EB90E02CC086EB90E029C087EB90E0C8 +:1020A00026C08CEC90E023C08DEC90E020C083E84B +:1020B00091E01DC08AE891E01AC082E991E017C062 +:1020C00084E991E014C081E292E011C083E292E0E1 +:1020D0000EC084E292E00BC085E292E008C086E286 +:1020E00092E005C087E292E002C08AE292E0CF91DE +:1020F0000C94C40ECF910895882309F44BC0823804 +:1021000059F40E948C0E81FF45C089E30E94261974 +:102110000E94DE1989E30CC0833871F40E948C0E92 +:1021200080FF38C083E50E9426190E94DE1983E5EE +:102130000E9465190C94DE19843859F40E948C0EA3 +:1021400082FF28C087E40E9426190E94DE1987E4D6 +:10215000EFCF9CEF980F913A58F390E2980F983098 +:1021600050F4877091E001C0990F8A95EAF7892FA2 +:102170000E94AD19DFCF9BE5980F933020F480E0EB +:1021800090E00C94AE0E885A833120F480E090E009 +:102190000C94C40E0895882321F00E94A7190C9472 +:1021A000DE190895882321F00E94AD190C94DE19E0 +:1021B0000895BF92CF92DF92EF92FF920F931F93F9 +:1021C000CF93DF9300D000D000D0CDB7DEB77C0135 +:1021D00085E0F701DE01119601900D928A95E1F7F5 +:1021E000F70183819481892B09F4DDC2908181817B +:1021F0008F3F19F49F3F09F4D6C2F7010281258170 +:1022000022952F7099838A8389819A812E830E94D7 +:10221000E518182FB92E0E94E4180E94AB17EB2D79 +:10222000E295EF704E2F50E0FA01E05AFF4F2E81F9 +:102230000C94C9228B2D807F9B2D9F70F92E8823B3 +:1022400019F0F29480EFF822002349F0FF2009F4FE +:1022500057C28F2D0E94B7190E94DE1951C2812FDB +:102260000E947C10FF2009F49EC28F2D0E94BD1990 +:1022700026960FB6F894DEBF0FBECDBFDF91CF918B +:102280001F910F91FF90EF90DF90CF90BF900C9433 +:10229000DE193B2D307F8B2D8F70303211F08295FF +:1022A000807F112319F0113021F12CC00023B9F0E7 +:1022B000222309F490C1213009F08DC126960FB672 +:1022C000F894DEBF0FBECDBFDF91CF911F910F916C +:1022D000FF90EF90DF90CF90BF900C94C71922230E +:1022E00019F0213009F45FC28E830E94CA198E81D1 +:1022F00086C1002321F0223008F055C26CC12111A3 +:1023000052C27DC1002321F0222309F464C1F8C127 +:10231000222309F474C109C28B2D8695869583709A +:1023200019F08130D1F03FC2002321F0812F9B2D85 +:10233000937002C080E090E026960FB6F894DEBF5E +:102340000FBECDBFDF91CF911F910F91FF90EF9006 +:10235000DF90CF90BF900C94AE0E002321F0812F20 +:102360009B2D937002C080E090E026960FB6F89403 +:10237000DEBF0FBECDBFDF91CF911F910F91FF90B8 +:10238000EF90DF90CF90BF900C94C40E812F00236C +:1023900019F00E944D1D02C00E94B51D26960FB671 +:1023A000F894DEBF0FBECDBFDF91CF911F910F918B +:1023B000FF90EF90DF90CF90BF900C943A1E8B2D42 +:1023C000837009F075C00111EEC1812F8295869549 +:1023D0008770880F880F912F9F70C92ED12CE12C08 +:1023E000F12C082E04C0CC0CDD1CEE1CFF1C0A9442 +:1023F000D2F714FF12C00FE010E020E030E004C07C +:10240000000F111F221F331F8A95D2F7C901B8018F +:10241000609570958095909503C060E070E0CB0169 +:102420004B2D4695469543704230C1F060F56C29BE +:102430007D298E299F29413051F126960FB6F894B7 +:10244000DEBF0FBECDBFDF91CF911F910F91FF90E7 +:10245000EF90DF90CF90BF900C94D2176C297D291C +:102460008E299F2926960FB6F894DEBF0FBECDBFEA +:10247000DF91CF911F910F91FF90EF90DF90CF9060 +:10248000BF900C94EE170E94D217C701B601269692 +:102490000FB6F894DEBF0FBECDBFDF91CF911F9175 +:1024A0000F91FF90EF90DF90CF90BF900C94B617F4 +:1024B000002319F08B2D817001C08695882309F4C3 +:1024C00072C1812F829586958770880F880F912F12 +:1024D0009F70C92ED12CE12CF12C082E04C0CC0CFD +:1024E000DD1CEE1CFF1C0A94D2F714FF12C00FE093 +:1024F00010E020E030E004C0000F111F221F331F46 +:102500008A95D2F7C901B80160957095809590952C +:1025100003C060E070E0CB014B2D469546954370BB +:102520004230C1F060F56C297D298E299F29413008 +:1025300051F126960FB6F894DEBF0FBECDBFDF91E6 +:10254000CF911F910F91FF90EF90DF90CF90BF90B0 +:102550000C94AC186C297D298E299F2926960FB6DC +:10256000F894DEBF0FBECDBFDF91CF911F910F91C9 +:10257000FF90EF90DF90CF90BF900C94C8180E940E +:10258000AC18C701B60126960FB6F894DEBF0FBE91 +:10259000CDBFDF91CF911F910F91FF90EF90DF9012 +:1025A000CF90BF900C949018103FD1F118F4103ECA +:1025B00050F4A1C0123F09F463C008F44CC0133FAB +:1025C00009F473C098C01F708B2D8F710023A1F088 +:1025D0000E942918812F26960FB6F894DEBF0FBEF1 +:1025E000CDBFDF91CF911F910F91FF90EF90DF90C2 +:1025F000CF90BF900C94CB100E944A18812F269642 +:102600000FB6F894DEBF0FBECDBFDF91CF911F9103 +:102610000F91FF90EF90DF90CF90BF900C94D2106D +:102620000023A9F02111BFC08B2D8F7126960FB604 +:10263000F894DEBF0FBECDBFDF91CF911F910F91F8 +:10264000FF90EF90DF90CF90BF900C946F182230E6 +:1026500008F0A9C0E9CF0023A9F08B2D8F71269631 +:102660000FB6F894DEBF0FBECDBFDF91CF911F91A3 +:102670000F91FF90EF90DF90CF90BF900C942918AE +:10268000002359F38B2D8F7126960FB6F894DEBF79 +:102690000FBECDBFDF91CF911F910F91FF90EF90B3 +:1026A000DF90CF90BF900C944A18002399F08B2DA7 +:1026B0008F7126960FB6F894DEBF0FBECDBFDF91A7 +:1026C000CF911F910F91FF90EF90DF90CF90BF902F +:1026D0000C94141826960FB6F894DEBF0FBECDBF2B +:1026E000DF91CF911F910F91FF90EF90DF90CF90EE +:1026F000BF900C940A180023A9F0222309F4ADCF4F +:10270000812F26960FB6F894DEBF0FBECDBFDF91A6 +:10271000CF911F910F91FF90EF90DF90CF90BF90DE +:102720000C94B40F222309F4ADCF812F26960FB657 +:10273000F894DEBF0FBECDBFDF91CF911F910F91F7 +:10274000FF90EF90DF90CF90BF900C947C104B2DBA +:102750004F70612FC7010E94AC0226960FB6F89405 +:10276000DEBF0FBECDBFDF91CF911F910F91FF90C4 +:10277000EF90DF90CF90BF900C942E174B2D4F70A1 +:10278000612FC70126960FB6F894DEBF0FBECDBFEE +:10279000DF91CF911F910F91FF90EF90DF90CF903D +:1027A000BF900C941F0626960FB6F894DEBF0FBE9E +:1027B000CDBFDF91CF911F910F91FF90EF90DF90F0 +:1027C000CF90BF9008950E94C4190E9499190E9449 +:1027D000DE190E94EA1E0E943A1E80E090E00E94EC +:1027E000AE0E80E090E00C94C40E0E94B4190C94DC +:1027F000E3130E94E518292F22952F702C3030F416 +:102800002A3048F42250223078F405C02C3041F0B0 +:102810002F3031F009C0803E48F0803F29F406C0D7 +:1028200093FB882780F9089580E0089581E008955A +:10283000CF93DF9300D000D01F92CDB7DEB70F90BB +:102840000F900F900F900F90DF91CF910895CF933D +:10285000DF9300D000D000D0CDB7DEB726960FB6FC +:10286000F894DEBF0FBECDBFDF91CF9108951F93C7 +:10287000CF93DF93C0917D0116E080917E01C81750 +:1028800099F0D0E01C9FF0011D9FF00D1124E1583C +:10289000FE4F4081518162817381848195810E94C4 +:1028A00027142196C770E9CFDF91CF911F9108952A +:1028B0004091AF015091B0016091B1017091B201AE +:1028C0008091B3019091B4010C9427148091B401CC +:1028D00082958F7009F054C08091B101882309F46A +:1028E0004FC080917D01A0917E014091B201509135 +:1028F000B3016091AF017091B001B6E08A1709F49D +:102900003FC090E041155105C1F17F3F11F46F3F89 +:10291000A1F1B89FF001B99FF00D1124E158FE4FCD +:10292000218127132AC02081261327C0228121114B +:1029300024C0238134812417350710F42150310934 +:10294000241B350B283C3105C0F42091B4012F70B5 +:1029500020612093B40126E0289FF001299FF00D0B +:102960001124EC57FE4F80818F70806180838FEA45 +:1029700091E00E94D9100C94371401968770BECF55 +:102980000895CF92DF92EF92FF920F931F93CF9310 +:10299000DF93CDB7DEB762970FB6F894DEBF0FBEF8 +:1029A000CDBF8C0185E0F801DE011D9601900D92EE +:1029B0008A95E1F7D8014C9111965C911197129686 +:1029C0006C918091B2019091B301009709F475C1A7 +:1029D0003091AF017091B0017F3F19F43F3F09F48E +:1029E0006CC1F801C380D480E090B101EE2009F4FD +:1029F000BEC02091B401C816D90628F0D601A81B84 +:102A0000B90BCD0104C0809590958C0D9D1DFF24C0 +:102A1000F394883C910578F0F12C207F09F0C4C034 +:102A20007C2DD98AC88A89890E9418148FEA91E07E +:102A30000E94D910AFC0822F807F09F045C0571384 +:102A400013C0431311C061110FC02F702061209378 +:102A5000B4010E9458148FEA91E00E94D91080912D +:102A6000B401F80185832EC0CD2819F15F3F11F420 +:102A70004F3FF9F0F62E61111CC080917D0120912D +:102A80007E0136E0821709F45BC090E0389FF001C8 +:102A9000399FF00D1124E158FE4F7181571306C084 +:102AA0007081471303C07281711103C00196877052 +:102AB000E9CFF62E662309F41CC18091B401816030 +:102AC0008093B401F12C15C1571309C0431307C0FB +:102AD000611105C08091B401F8018583C8C04D879C +:102AE0005E878D859E856A8B0E94F9136A8988238B +:102AF000D1F16623C1F12091B401822F82958F70AC +:102B000090E0029774F08091AF019091B0019887A6 +:102B10008F831986DB86CA862C87CE0107960E9492 +:102B2000D91086E0F801AFEAB1E001900D928A95E4 +:102B3000E1F70E9466140E945814FF24F394D9C050 +:102B40004D875E878D859E850E94E518292F2295E9 +:102B50002F70223008F0C1C09F7009F0BBC0805EAA +:102B6000883008F4C6C0C8010E94D910E6CFC81644 +:102B7000D90608F453C0F601E81BF90BCF01883CD5 +:102B8000910508F450C0F12C7C2DD98AC88A898916 +:102B90000E941814EFEAF1E086E0DF011D928A95A9 +:102BA000E9F70E945814A5C0571314C0431312C06C +:102BB000611110C08091B401F8018583C8010E94A1 +:102BC000D91086E0EFEAF1E0DF011D928A95E9F77E +:102BD000FE2C8FC04D875E878D859E856A8B0E94F7 +:102BE000F9136A89882309F4BECF662309F4BBCFA1 +:102BF0002091B401822F82958F7090E002970CF49F +:102C000090CF8091AF019091B0019A8389831B820C +:102C1000DD82CC822E83CE01019681CF8095909566 +:102C20008C0D9D1DACCFF62E662309F49CCF571357 +:102C300033C0431331C02091B40120FD24C0822F42 +:102C400082958F70482F50E041155105E1F0D80171 +:102C500015962C9315974F30510549F08F5F982F9B +:102C60009295907F822F8F70892B15968C93C80137 +:102C70000E94D91086E0F801AFEAB1E001900D9210 +:102C80008A95E1F78ECF86E0F801AFEAB1E00190D6 +:102C90000D928A95E1F72DC04D875E878D859E85C3 +:102CA0000E94F91381113DCF8091B401816080931E +:102CB000B401C8010E94D9101CC0662309F453CF87 +:102CC0004D875E878D859E850E94F913882309F4C0 +:102CD0004ACF27CF811143CF0CC0243008F043CF17 +:102CE0009F7009F43CCFD80115969C91907F09F014 +:102CF00036CF8F2D62960FB6F894DEBF0FBECDBFD4 +:102D0000DF91CF911F910F91FF90EF90DF90CF90C7 +:102D100008951F93CF93DF93CDB7DEB72C970FB6EF +:102D2000F894DEBF0FBECDBF4F83588769877A877F +:102D30008B879C87CE0107960E94C114882371F06F +:102D40008A859B85892B09F441C088858F3F09F0CE +:102D500065C08F818F3F09F061C038C086E0FE01F9 +:102D60003796DE01119601900D928A95E1F76A85FA +:102D70007B856115710551F1FF81E885EF3F11F405 +:102D8000FF3F21F120917E0130E0C901019687705B +:102D9000992740917D0150E08417950709F447C0B9 +:102DA000F983EA837D836C8396E0929FD001939FA1 +:102DB000B00D1124A158BE4FFE01319601900D9225 +:102DC0009A95E1F780937E010E94371416E0809176 +:102DD0007D0190917E018917B9F1189FC0011124DE +:102DE00081589E4F0E94C114882371F1E0917D01AA +:102DF0001E9FF0011124E158FE4F408151816281F4 +:102E00007381848195810E94271480917D0190E0D7 +:102E100001968770992780937D01D9CF4F8158857E +:102E200069857A858B859C850E942714CFCF0E9467 +:102E3000F51310927E0110927D01EFEAF1E086E039 +:102E4000DF011D928A95E9F72C960FB6F894DEBF44 +:102E50000FBECDBFDF91CF911F910895EF92FF92EA +:102E60000F931F93CF93DF938C01892B09F46CC0D0 +:102E7000F12CEE24E394E8012196F8018491843743 +:102E800040F4843008F051C0813081F0823019F173 +:102E90005BC0853709F444C0A8F19CE7980F9037D0 +:102EA00008F052C08F770E947C1041C00E5F1F4F08 +:102EB000FE01849190E2980F983050F48770FE2DB7 +:102EC00001C0FF0F8A95EAF78F2F0E94B71914C02F +:102ED0000E94B40F2DC00E5F1F4FFE01849190E23F +:102EE000980F983060F48770FE2D01C0FF0F8A950F +:102EF000EAF78F2F0E94BD190E94DE1919C00E94A7 +:102F00007C1016C00E5F1F4FFE01C491CC2381F0D0 +:102F10008FE99FE00197F1F700C00000C150F6CFA4 +:102F20000E5F1F4FFE01F49003C00E94B40F8E018C +:102F30008F2D882309F49FCFEFE9FFE03197F1F758 +:102F400000C000008150F5CFDF91CF911F910F910C +:102F5000FF90EF90089508956093B9017093BA01BE +:102F60008093BB019093BC010C94E3130F931F93C8 +:102F70000091B9011091BA012091BB013091BC01BF +:102F8000DC01CB01802B912BA22BB32B8093B901B9 +:102F90009093BA01A093BB01B093BC011F910F9114 +:102FA0000C94E3130F931F930091B9011091BA0190 +:102FB0002091BB013091BC01DC01CB018023912326 +:102FC000A223B3238093B9019093BA01A093BB01CC +:102FD000B093BC011F910F910C94E3130F931F93B7 +:102FE0000091B9011091BA012091BB013091BC014F +:102FF000DC01CB0180279127A227B3278093B90159 +:103000009093BA01A093BB01B093BC011F910F91A3 +:103010000C94E3131092B5011092B6011092B7010F +:103020001092B8010C94E31341E050E060E070E0CE +:1030300004C0440F551F661F771F8A95D2F740932F +:10304000B5015093B6016093B7017093B8010C9429 +:10305000E31341E050E060E070E004C0440F551F0E +:10306000661F771F8A95D2F78091B5019091B601BE +:10307000A091B701B091B801482B592B6A2B7B2B3B +:103080004093B5015093B6016093B7017093B801B6 +:103090000C94E31341E050E060E070E004C0440FA2 +:1030A000551F661F771F8A95D2F7409550956095FA +:1030B00070958091B5019091B601A091B701B09142 +:1030C000B801482359236A237B234093B5015093C9 +:1030D000B6016093B7017093B8010C94E31341E01B +:1030E00050E060E070E004C0440F551F661F771F7A +:1030F0008A95D2F78091B5019091B601A091B70160 +:10310000B091B801482759276A277B274093B5011A +:103110005093B6016093B7017093B8010C94E31318 +:103120000F931F930091B5011091B6012091B70143 +:103130003091B801DC01CB01802B912BA22BB32B5A +:103140008093B5019093B601A093B701B093B801F5 +:103150001F910F910C94E3130F931F930091B501EE +:103160001091B6012091B7013091B801DC01CB017B +:1031700080239123A223B3238093B5019093B601BA +:10318000A093B701B093B8011F910F910C94E31372 +:103190000F931F930091B5011091B6012091B701D3 +:1031A0003091B801DC01CB0180279127A227B327FA +:1031B0008093B5019093B601A093B701B093B80185 +:1031C0001F910F910C94E3130895CF92DF92EF9229 +:1031D000FF920F931F93CF93DF938C01C090B501A3 +:1031E000D090B601E090B701F090B8018091B9019C +:1031F0009091BA01A091BB01B091BC01C82AD92A13 +:10320000EA2AFB2ACFE1D0E0D701C6010C2E04C088 +:10321000B695A795979587950A94D2F780FF07C032 +:10322000B8018C2F0E9443068130910531F421971B +:1032300058F7B80180E00E944306DF91CF911F91BB +:103240000F91FF90EF90DF90CF90089590910C0137 +:103250009923F1F090910D019923D1F0982F969533 +:10326000969596959F3080F5E0910E01F0910F01B3 +:10327000E90FF11D877021E030E0A90102C0440F81 +:10328000551F8A95E2F7CA019181892B81830895A0 +:1032900020910E0130910F01F90132969FEF40E02D +:1032A0005191851789F09F3F19F4511101C0942F56 +:1032B0004F5F4E30A9F79F3F39F0F901E90FF11D3B +:1032C00097FDFA9582830895089590910C019923B2 +:1032D000F9F090910D019923D9F0982F9695969534 +:1032E00096959F3028F5E0910E01F0910F01E90FBE +:1032F000F11D877021E030E0A90102C0440F551F85 +:103300008A95E2F7CA018095918189238183089586 +:1033100020910E0130910F01F9013296205F3F4F4D +:103320009081891301C010823196E217F307C1F72B +:10333000089581E090E0E0910E01F0910F01E80F17 +:10334000F91F1082019680319105A9F70895909197 +:10335000CF01892B8093CF01089580959091CF0163 +:1033600089238093CF0108951092CF010895909101 +:10337000CE01892B8093CE01089580959091CE0146 +:1033800089238093CE0108951092CE0108958093F1 +:10339000BD0108951092BD01089580910E01909194 +:1033A0000F01FC0131969C01205F3F4F80E091911D +:1033B00091118F5FE217F307D1F70895E0910E01A5 +:1033C000F0910F018091CF018083E0910E01F09187 +:1033D0000F0190818091CE01892B80838091BD0166 +:1033E000882361F0E0910E01F0910F019081892B0B +:1033F00080830E94CD1981111092BD0180910E0130 +:1034000090910F010C94980ECF92DF92EF92FF9261 +:103410006C01EE24FF24C114D104E104F10421F075 +:10342000C701B60120E101C020E0C72ED82EE92E49 +:10343000FF24C114D104E104F10419F0285FC7018D +:10344000B6016B017C0154E0F694E794D794C794DD +:103450005A95D1F7C114D104E104F10419F02C5F9D +:10346000C701B6016B017C0142E0F694E794D79462 +:10347000C7944A95D1F7C114D104E104F10419F0BD +:103480002E5FC701B601DC01CB01B695A7959795D4 +:103490008795892B8A2B8B2B09F02F5F822FFF902A +:1034A000EF90DF90CF9008958091E801843011F182 +:1034B00020E488E190E00FB6F894A895809360002E +:1034C0000FBE2093600083B7817F846083BF83B782 +:1034D000816083BF7894889583B78E7F83BF0FB652 +:1034E000F894A895809160008861809360001092A4 +:1034F00060000FBE089508950C947B1ACF930E942C +:103500007C1A0E9462040E947B1AC0E08C2F0E94E9 +:103510005805811104C0CF5FCE30C1F701C081E0F2 +:10352000CF9108950E94F5130E948C0E0C9482078F +:1035300082E084BD93E095BD9AEF97BD80936E00C5 +:1035400008952FB7F8948091D1019091D201A09164 +:10355000D301B091D4012FBF0895CF92DF92EF92A3 +:10356000FF920F931F932FB7F8944091D101509180 +:10357000D2016091D3017091D4012FBF6A017B0108 +:10358000EE24FF248C0120E030E0C016D106E206D4 +:10359000F30610F4415051099A01281B390BC90157 +:1035A0001F910F91FF90EF90DF90CF9008951F92A1 +:1035B0000F920FB60F9211248F939F93AF93BF93E7 +:1035C0008091D1019091D201A091D301B091D40109 +:1035D0000196A11DB11D8093D1019093D201A093BA +:1035E000D301B093D401BF91AF919F918F910F9070 +:1035F0000FBE0F901F9018950E94840BF8942FEF28 +:1036000087EA91E6215080409040E1F700C0000039 +:1036100087E090EBDC018093F1019093F201A0939D +:10362000F301B093F4019CE088E10FB6F894A895FB +:10363000809360000FBE90936000FFCFEF92FF92E7 +:103640000F931F93CF93DF93D82FC0E08C2F0E944E +:10365000580500E010E0E82EF12CC701002E02C052 +:10366000959587950A94E2F780FD06C00F5F1F4F7E +:103670000630110591F709C0602F7C2F80E00E9471 +:1036800020068D13F3CF81E004C0CF5FCE30F1F67A +:1036900080E0DF91CF911F910F91FF90EF900895FF +:1036A000CF93C82F8CE20E941E1B882321F08C2F01 +:1036B000CF910C941E1B80E0CF910895CF930E9470 +:1036C000A51C811102C00E948B1CC5E6C15049F0A7 +:1036D0000E9462048FE39CE90197F1F700C00000AB +:1036E000F5CF89E20E94501B811113C18AE20E942A +:1036F000501B81110E948B1C85E00E94501B811180 +:103700000E94FC1A0E94B01C8093D00187E00E94A6 +:10371000501B8823A9F18BE10E94501B882351F094 +:103720008091D00181FB222720F991E0922790FB24 +:1037300081F90EC08EE00E94501B882361F08091B9 +:10374000D00182FB222720F991E0922790FB82F999 +:103750008093D00115C080E10E94501B9091D00150 +:10376000882341F093FB222720F981E0822780FB08 +:1037700093F904C0892F809580FB90F99093D00134 +:103780008091D0010E94B41C0E94C21C8093E2016F +:1037900080EE0E94501B882341F08091E201982F17 +:1037A000909590FB80F98093E20189E30E94501B81 +:1037B000882359F08091E20181FB222720F991E0D2 +:1037C000922790FB81F98093E20182EE0E94501BC8 +:1037D000882359F08091E20182FB222720F991E0B1 +:1037E000922790FB82F98093E20186EE0E94501BA3 +:1037F000882359F08091E20183FB222720F991E090 +:10380000922790FB83F98093E20183EE0E94501B84 +:10381000882359F08091E20184FB222720F991E06E +:10382000922790FB84F98093E20185E30E94501B6C +:10383000882359F08091E20185FB222720F991E04D +:10384000922790FB85F98093E20181E30E94501B4F +:10385000882359F08091E20186FB222720F991E02C +:10386000922790FB86F98093E20181E10E94501B30 +:10387000882359F08091E20187FB222720F991E00B +:10388000922790FB87F98093E2018091E2010E94E8 +:10389000C61C8091E20187FB882780F980930D0187 +:1038A00087E20E94501BC82F8EE10E94501B81119D +:1038B000C2608FE10E94501B8111C46080E20E94AF +:1038C000501B8111C86081E20E94501B8111C061B0 +:1038D00082E20E94501B8111C06283E20E94501B51 +:1038E0008111C06484E20E94501B882311F0C068DB +:1038F00002C0CC2329F08C2F0E94BD1C6C2F03C06A +:103900000E94B91C682F70E080E090E0CF910C9489 +:10391000AC17CF9108956DEE7EEF80E090E00E94AD +:10392000FF2260E082E090E00E94F12260E083E00C +:1039300090E00E94F12260E084E090E00E94F12299 +:1039400060E085E090E00C94F12280E090E00E943D +:10395000EB2221E08D3E9E4F09F020E0822F08955A +:1039600082E090E00C94E322682F82E090E00C94D7 +:10397000F12283E090E00C94E322682F83E090E052 +:103980000C94F12284E090E00C94E322682F84E010 +:1039900090E00C94F1228091D70180FF0BC06091E0 +:1039A000130185E0689FB0011124759567957595A1 +:1039B00067952BC081FF09C06091130185E0689F66 +:1039C000B00111247595679520C082FF07C06091F2 +:1039D000130185E0689FB001112417C09091D801B0 +:1039E0009923D1F060911201961788F72091130165 +:1039F00085E0289F90011124929FA001939F500D74 +:103A0000112470E0CA010E94B5226038710540F4AB +:103A10006115710519F406C065E070E0862F089500 +:103A20008FE7089581E008958091D70180FF08C055 +:103A30006091110170E0759567957595679521C046 +:103A400081FF06C06091110170E07595679519C0FE +:103A500082FF04C06091110170E010C09091D80104 +:103A6000992399F0609110019617A0F780911101A8 +:103A7000899FC001112470E00E94B5226038710551 +:103A800040F46115710519F406C061E070E0862FFD +:103A900008958FE7089581E00895803F21F40E9402 +:103AA000CB1C819504C0813F29F40E94CB1C8093DC +:103AB000DB010895823F21F40E94CB1C819504C054 +:103AC000833F29F40E94CB1C8093DA010895893F3B +:103AD00019F40E94141D05C08A3F31F40E94141D80 +:103AE00081958093DC0108958B3F21F40E94141D81 +:103AF000819504C08C3F29F40E94141D8093DD0140 +:103B00000895843F21F48091D901816017C0853FD9 +:103B100021F48091D901826011C0863F21F4809107 +:103B2000D90184600BC0873F21F48091D90188605E +:103B300005C0883F31F48091D90180618093D9011B +:103B400008958D3F21F48091D70181600BC08E3F95 +:103B500021F48091D701826005C08F3F29F48091C4 +:103B6000D70184608093D7010895803F39F4809114 +:103B7000DB0187FF6CC01092DB0169C0813F29F433 +:103B80008091DB011816BCF362C09091DA01823F8C +:103B900029F497FF5CC01092DA0159C0833F19F4F1 +:103BA0001916CCF354C0893F41F48091DC011816FA +:103BB0000CF04DC01092DC014AC08A3F29F480917C +:103BC000DC0187FF44C0F6CF8B3F39F48091DD01E3 +:103BD00087FF3DC01092DD013AC08C3F29F48091EF +:103BE000DD011816BCF333C0843F21F48091D90164 +:103BF0008E7F17C0853F21F48091D9018D7F11C040 +:103C0000863F21F48091D9018B7F0BC0873F21F43F +:103C10008091D901877F05C0883F31F48091D90117 +:103C20008F7E8093D90113C08D3F21F48091D701FD +:103C30008E7F0BC08E3F21F48091D7018D7F05C010 +:103C40008F3F29F48091D7018B7F8093D70180919A +:103C5000DA0181110EC08091DB0181110AC08091CF +:103C6000DC01811106C08091DD01811102C010923A +:103C7000D801089589ED91E00E94A30E0E94A11A37 +:103C80009093D6018093D50108951F93CF93DF932E +:103C90008091D5019091D6010E94AD1AAC0190910E +:103CA000D801992321F02091140130E006C0209121 +:103CB00015018AE0289F900111244217530708F448 +:103CC00085C08091DA01C091DB01D091DC011091B7 +:103CD000DD01811107C0C11175C0D11173C011116F +:103CE00071C074C09F3F19F09F5F9093D801181660 +:103CF00024F40E94CB1C8093DA018091DA0187FFC3 +:103D000005C00E94CB1C81958093DA011C1624F417 +:103D10000E94CB1C8093DB018091DB0187FF05C0F3 +:103D20000E94CB1C81958093DB016091DA016623B0 +:103D300031F1C091DB01CC2311F1062E000C770B81 +:103D4000880B990B0E94BC2123E333E343E35FE339 +:103D50000E9420220E9484216093DA016C2FCC0FF4 +:103D6000770B880B990B0E94BC2123E333E343E3D9 +:103D70005FE30E9420220E9484216093DB011D16D4 +:103D800024F40E94141D8093DC018091DC0187FFE4 +:103D900005C00E94141D81958093DC01111624F446 +:103DA0000E94141D8093DD018091DD0187FF05C015 +:103DB0000E94141D81958093DD01DF91CF911F91A9 +:103DC0000C943A1E9F3F09F08FCFA0CFDF91CF9187 +:103DD0001F910895E9EDF1E085E0DF011D928A95DC +:103DE000E9F71092D8011092D7010895833081F13C +:103DF00028F4813059F08230D1F00895853009F4EB +:103E000049C0B8F1863009F456C008958091150173 +:103E1000262F30E0280F311D2F3F310524F4680F85 +:103E20006093150108958FEF809315010895809197 +:103E30001401262F30E0280F311D2F3F310524F4C7 +:103E4000680F6093140108958FEF80931401089513 +:103E500080911301262F30E0280F311D2F3F3105AF +:103E600024F4680F6093130108958FEF809313017A +:103E7000089580911201262F30E0280F311D2F3F29 +:103E8000310524F4680F6093120108958FEF809339 +:103E90001201089580911101262F30E0280F311D65 +:103EA0002F3F310524F4680F6093110108958FEFBF +:103EB00080931101089580911001262F30E0280F82 +:103EC000311D2F3F310524F4680F609310010895D0 +:103ED0008FEF809310010895833011F128F4813021 +:103EE00049F0823091F00895853081F120F18630DB +:103EF000C1F1089580911501681720F4861B809305 +:103F00001501089510921501089580911401681704 +:103F100020F4861B809314010895109214010895D3 +:103F200080911301681720F4861B80931301089574 +:103F300010921301089580911201681720F4861BD6 +:103F40008093120108951092120108958091110139 +:103F5000681720F4861B80931101089510921101B7 +:103F6000089580911001681720F4861B809310013A +:103F700008951092100108950F931F938D3109F445 +:103F80006BC008F03FC08E3009F47DC0C0F48730AC +:103F900009F46EC068F4863009F0AFC08091D0019A +:103FA000817F8E7F8093D00181E08093DF01A6C066 +:103FB000883009F458C08B3009F49BC09EC086310C +:103FC00009F497C078F4803109F470C0813109F0A8 +:103FD00094C00E94F51390910D0181E08927809390 +:103FE0000D0187C0893109F484C08B3109F085C087 +:103FF0008091D00181FB222720F991E0922790FB4C +:1040000081F94AC0853309F45BC048F4873209F46A +:1040100057C008F45AC0893209F452C06EC08334C4 +:1040200038F48A3308F067C0883309F462C065C089 +:10403000833409F445C0883409F05FC00E94F51349 +:104040000FEF13ED20E3015010402040E1F700C0D6 +:1040500000000E94FC1A4DC00E943E210E948C0E5E +:104060000E94820746C00E94B01C0E94C21C41C030 +:104070009091D001892F817090FF12C0917F9E7F17 +:104080009093D0013BC08091D00182FB222720F980 +:1040900091E0922790FB82F98093D001992349F116 +:1040A0008091D00181608093D00123C08091D001A4 +:1040B00083FB222720F991E0922790FB83F9ECCF34 +:1040C00061E070E080E090E010C08D5141E050E090 +:1040D00060E070E08A019B0104C0000F111F221FE5 +:1040E000331F8A95D2F7C901B8010E94AC170E940C +:1040F000F51381E003C08953E9CF80E01F910F9150 +:10410000089580E008950C948120CF93C82F80916A +:10411000DF01813079F018F08230E9F187C0E09159 +:104120000E01F0910F018081813169F0823209F036 +:104130007FC009C0E0910E01F0910F0180818131B3 +:1041400011F0823261F48C2F0E948320811104C00F +:104150008C2F0E94BC1F1DC081E090E01AC08C2FE4 +:104160000E948120811114C0C43179F048F4CB3011 +:1041700079F0C03109F060C082E08093DF0108C0AF +:10418000C93219F0C83321F057C01092DF0154C072 +:1041900081E0817053C0C93289F118F5C43171F1E1 +:1041A000A8F4C73009F046C08AE08093150194E175 +:1041B0009093140193E0909313018093120188E08F +:1041C0008093110188E28093100134C0CE51C63033 +:1041D00088F5EC2FF0E0E65DFE4F80818093DE01F4 +:1041E00029C0CE34E9F020F4CB3421F56AE013C0C5 +:1041F000C13579F0C235F1F461E00DC08091DE0186 +:10420000882319F01092DE0115C081E08093DF0150 +:1042100015C061E006C08091DE010E94F61E0AC052 +:104220006AE08091DE010E946C1F04C01092DF01E1 +:1042300080E004C081E002C080E0ABCFCF91089560 +:10424000E1E8F0E080818860808380818160808304 +:104250008FB7F89493E09093890090ED9093880045 +:104260008FBF0895EFE6F0E080818260808308953B +:10427000EFE6F0E080818D7F80830895EFE6F0E047 +:10428000908182E08927808308951F920F920FB654 +:104290000F9211242F933F934F935F936F937F93CC +:1042A0008F939F93AF93BF93EF93FF938091E00120 +:1042B0009091E10101969093E1018093E0018111D9 +:1042C00003C082E00E948207E091E101E695E69555 +:1042D000F0E0EA57FB4FE4918091E0018E1303C0B8 +:1042E00080E00E948207FF91EF91BF91AF919F9173 +:1042F0008F917F916F915F914F913F912F910F908F +:104300000FBE0F901F9018950E948B216894B111D9 +:104310000C941A2208950E94FF2188F09F5798F06C +:10432000B92F9927B751B0F0E1F0660F771F881FBA +:10433000991F1AF0BA95C9F714C0B13091F00E94D4 +:104340001922B1E008950C941922672F782F88273D +:10435000B85F39F0B93FCCF3869577956795B395FB +:10436000D9F73EF490958095709561957F4F8F4F6A +:104370009F4F0895E89409C097FB3EF4909580956F +:10438000709561957F4F8F4F9F4F9923A9F0F92F1B +:1043900096E9BB279395F695879577956795B79599 +:1043A000F111F8CFFAF4BB0F11F460FF1BC06F5F7F +:1043B0007F4F8F4F9F4F16C0882311F096E911C091 +:1043C000772321F09EE8872F762F05C0662371F0B2 +:1043D00096E8862F70E060E02AF09A95660F771FC6 +:1043E000881FDAF7880F9695879597F9089557FDF6 +:1043F0009058440F551F59F05F3F71F04795880F53 +:1044000097FB991F61F09F3F79F0879508951216E9 +:1044100013061406551FF2CF4695F1DF08C0161695 +:1044200017061806991FF1CF869571056105089446 +:104430000895E894BB2766277727CB0197F908955D +:104440000E9433220C94A4220E94962238F00E94EB +:104450009D2220F0952311F00C948D220C94932230 +:1044600011240C941A220E94F72170F3959FC1F336 +:10447000950F50E0551F629FF001729FBB27F00D12 +:10448000B11D639FAA27F00DB11DAA1F649F662767 +:10449000B00DA11D661F829F2227B00DA11D621FB6 +:1044A000739FB00DA11D621F839FA00D611D221F70 +:1044B000749F3327A00D611D231F849F600D211D54 +:1044C000822F762F6A2F11249F5750409AF0F1F0D7 +:1044D00088234AF0EE0FFF1FBB1F661F771F881F40 +:1044E00091505040A9F79E3F510580F00C948D22C9 +:1044F0000C941A225F3FE4F3983ED4F386957795A7 +:104500006795B795F795E7959F5FC1F7FE2B880FE5 +:10451000911D9695879597F9089597F99F6780E87B +:1045200070E060E008959FEF80EC089500240A9405 +:104530001616170618060906089500240A9412167E +:104540001306140605060895092E0394000C11F4B1 +:10455000882352F0BB0F40F4BF2B11F460FF04C05E +:104560006F5F7F4F8F4F9F4F089597FB072E16F475 +:10457000009407D077FD09D00E94CF2207FC05D018 +:104580003EF4909581959F4F0895709561957F4F6A +:104590000895EE0FFF1F0590F491E02D0994AA1BDA +:1045A000BB1B51E107C0AA1FBB1FA617B70710F01E +:1045B000A61BB70B881F991F5A95A9F78095909550 +:1045C000BC01CD010895F999FECF92BD81BDF89A45 +:1045D000992780B50895A8E1B0E042E050E00C943E +:1045E0000623262FF999FECF1FBA92BD81BD20BDAB +:1045F0000FB6F894FA9AF99A0FBE019608950E94A0 +:10460000F122272F0C94F222DC01CB01FC01F99955 +:10461000FECF06C0F2BDE1BDF89A319600B40D920E +:0C46200041505040B8F70895F894FFCFC7 +:10462C00200283071308EE07BA0786070101BE01B3 +:10463C0028080A03140A3F4D36394704FA03C40309 +:10464C008B031E03370350036903010203040506A1 +:04465C000708090042 +:00000001FF diff --git a/keyboard/ergodox_ez/keymaps/keymap_dave.c b/keyboard/ergodox_ez/keymaps/dave/keymap.c similarity index 99% rename from keyboard/ergodox_ez/keymaps/keymap_dave.c rename to keyboard/ergodox_ez/keymaps/dave/keymap.c index a0c74ad805..3ac2842fbf 100644 --- a/keyboard/ergodox_ez/keymaps/keymap_dave.c +++ b/keyboard/ergodox_ez/keymaps/dave/keymap.c @@ -154,12 +154,12 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) }; // Runs just one time when the keyboard initializes. -void * matrix_init_user(void) { - return NULL; +void matrix_init_user(void) { + }; // Runs constantly in the background, in a loop. -void * matrix_scan_user(void) { +void matrix_scan_user(void) { /* leds is a static array holding the current brightness of each of the * three keyboard LEDs. It's 4 long simply to avoid the ugliness of +1s and * -1s in the code below, and because wasting a byte really doesn't matter @@ -191,5 +191,5 @@ void * matrix_scan_user(void) { } } - return NULL; + }; diff --git a/keyboard/ergodox_ez/keymaps/default/default.hex b/keyboard/ergodox_ez/keymaps/default/default.hex new file mode 100644 index 0000000000..bd5cd43415 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/default/default.hex @@ -0,0 +1,1121 @@ +:100000000C9465020C94AC020C94AC020C94AC02FF +:100010000C94AC020C94AC020C94AC020C94AC02A8 +:100020000C94AC020C94AC020C94C30B0C94950C85 +:100030000C94AC020C94AC020C94AC020C94AC0288 +:100040000C94AC020C9409210C94AC020C94AC02FC +:100050000C94AC020C949B1A0C94AC020C94AC0261 +:100060000C94AC020C94AC020C94AC020C94AC0258 +:100070000C94AC020C94AC020C94AC020C94AC0248 +:100080000C94AC020C94AC020C94AC020C94AC0238 +:100090000C94AC020C94AC020C94AC020C94AC0228 +:1000A0000C94AC020C94AC020C94AC02020D240D26 +:1000B000170E240D170E690D8C0D170EE10DF40DA2 +:1000C000DE10DE100D110D1150118A1197139713C8 +:1000D000A3119713981298126B1397139713821307 +:1000E0000000F0A12E004C002A00E1003581000044 +:1000F0001E00140004001D7134004D001F001A0082 +:1001000016001B00E1042A0020000800070006007A +:1001100050002C0021001500090019004F004A0072 +:10012000220017000A000500000065745000015409 +:100130000000007F0000E3004F0001540000007742 +:100140000000E20023001C000B00110000002971D8 +:10015000240018000D00100052004B0025000C0078 +:100160000E00360051002800260012000F00370054 +:100170002F002B00270013003382387130004E000F +:100180002D0031003478E500C100000001000100BD +:1001900001000100010000003A001E0220022202BC +:1001A000010001003B001F022102230201000100A7 +:1001B0003C002F0226022F00010001003D0030020A +:1001C00027023000010001003E00310235003502F7 +:1001D000000001000100010000000100000001001A +:1001E0000100010000000100000001003F0052007A +:1001F00051002402000001004000240021001E00E4 +:10020000010001004100250022001F00370001000D +:1002100042002600230020002700010043002502A1 +:100220002E0231002E0001004400450001000100B3 +:1002300001000000010001000100010001000000B8 +:1002400001000100010001000100010001000100A6 +:10025000F2000100010001000100F000F1000100C6 +:10026000F400010001000100F3000100F5000100AD +:100270000100010001000100000001000100010077 +:100280000000010000000100010001000000010069 +:100290000000010001000100010001000000010058 +:1002A0000100010001000100A9000100010001009E +:1002B0000100AC00AA00B600010001000100AB0083 +:1002C000A80001000100010001000100010001007F +:1002D00001000100AE00010001000000160345000E +:1002E000720067006F0044006F0078002000450036 +:1002F0005A00000016034500720067006F004400BA +:100300006F007800200045005A0000000403090433 +:1003100009026D00040100A0FA09040000010301B4 +:100320000100092111010001223F00070581030896 +:10033000000A090401000103010200092111010062 +:1003400001224D000705820308000A09040200018A +:100350000300000009211101000122360007058376 +:100360000308000A09040300010300000009211129 +:100370000100012239000705840310000112011059 +:100380000100000008EDFE07130100010200010555 +:10039000010906A101050719E029E71500250195C6 +:1003A0000875018102050819012905950575019156 +:1003B000029501750391010507190029771500259C +:1003C00001957875018102C005010980A1018502AE +:1003D00016010026B7001A01002AB7007510950112 +:1003E0008100C0050C0901A1018503160100269CAE +:1003F000021A01002A9C02751095018100C00501B6 +:100400000902A1010901A100050919012905150029 +:10041000250195057501810295017503810105018D +:10042000093009311581257F950275088106093843 +:100430001581257F950175088106050C0A3802157E +:1004400081257F950175088106C0C005010906A1B7 +:1004500001050719E029E7150025019508750181B7 +:100460000295017508810105081901290595057591 +:100470000191029501750391010507190029FF15E6 +:100480000025FF950675088100C0000000000000EF +:100490000000000000010204060A0F17202C3A4A4F +:1004A0005D71879DB3C7DAE9F5FCFFFCF5E9DAC7B2 +:1004B000B39D87715D4A3A2C20170F0A060402018A +:1004C0000000000000000000000011241FBECFEF5C +:1004D000DAE0DEBFCDBF04B603FE27C08091ED0198 +:1004E0009091EE01A091EF01B091F0018730904B17 +:1004F000A740B04BD1F41092ED011092EE01109292 +:10050000EF011092F00114BE84B7877F84BF0FB64D +:10051000F894A895809160008861809360001092A3 +:1005200060000FBEE0E0FFE3099511E0A0E0B1E05C +:10053000E4EBF5E402C005900D92A433B107D9F7BE +:1005400021E0A4E3B1E001C01D92AD3EB207E1F7A6 +:100550000E940A090C94D8220C94000061110BC06F +:10056000FC018281882321F085EE0E94780F03C070 +:1005700085EE0E94401080E090E00895089560911B +:10058000B1017091B2018091B3019091B4010E94C8 +:10059000C81956985E9825982D9826982E982798D1 +:1005A0002F98813019F0823021F00895259A2D9AE4 +:1005B0000895269A2E9A08950C94BF0256985E9834 +:1005C00025982D9826982E9827982F988FEF90E0B1 +:1005D000909389008093880090938B0080938A0089 +:1005E00090938D0080938C00259A2D9A2FEF80E7B1 +:1005F00092E0215080409040E1F700C00000269A30 +:100600002E9A2FEF80E792E0215080409040E1F752 +:1006100000C00000279A2F9A2FEF80E792E0215028 +:1006200080409040E1F700C0000025982D982FEF02 +:1006300080E792E0215080409040E1F700C0000048 +:1006400026982E982FEF80E792E02150804090402E +:10065000E1F700C0000027982F9856985E982598DB +:100660002D9826982E9827982F98089589EA809398 +:10067000800089E08093810024982C983F988AB16B +:100680008F748AB96E98479A8BB1806B8BB9769AC2 +:100690000E94DE020C94BE0280E2809300018091F1 +:1006A000340181110EC00E949B0381E080933401CC +:1006B0002FEF83ED90E3215080409040E1F700C0A0 +:1006C000000080E40E94A1038093000181112EC0EC +:1006D0000E94CB0380930001811128C00E94CB03AC +:1006E00080930001811122C08FE30E94CB0380938D +:1006F000000181111BC00E94C30380E40E94A1037A +:1007000080930001811112C08CE00E94CB03809382 +:10071000000181110BC00E94CB0380930001811165 +:1007200005C08FE30E94CB03809300010E94C303A6 +:100730008091000108951092B9008AE08093B8007A +:10074000089594EA9093BC009091BC0097FFFCCF71 +:100750009091B900987F983021F0903111F081E0AC +:1007600008958093BB0084E88093BC008091BC0016 +:1007700087FFFCCF8091B900887F883111F08034E9 +:1007800071F780E0089584E98093BC008091BC00FB +:1007900084FDFCCF08958093BB0084E88093BC0067 +:1007A0008091BC0087FFFCCF9091B900987F81E0D9 +:1007B000983209F480E0089584E88093BC00809129 +:1007C000BC0087FFFCCF8091BB00089580910001A1 +:1007D000811115C080E40E94A10380930001811162 +:1007E0000CC082E10E94CB0380930001811105C0FF +:1007F0008FEF0E94CB03809300010E94C30384B15A +:10080000807F84B985B1807F85B98AB1837F8AB9B9 +:100810008BB1837F8BB93E98469808950E944C0314 +:10082000809300010E94E60380B38C7080BB81B38B +:10083000836F81BBE4E4F1E0A6E3B1E011921D9285 +:1008400081E0E235F807D1F70C9436039F92AF921E +:10085000BF92CF92DF92EF92FF920F931F93CF93AD +:10086000DF9380910001882379F0809135018F5FBB +:1008700080933501811108C00E944C0380930001D0 +:10088000811102C00E94DE0286E3E82E81E0F82E8C +:100890008701C0E0D0E0BB24B39492E0A92ECC2421 +:1008A000C394D12CC730D10500F58091000181118E +:1008B00064C080E40E94A10380930001811112C0F2 +:1008C00082E10E94CB038093000181110BC0C6011D +:1008D0000C2E01C0880F0A94EAF780950E94CB0382 +:1008E000809300010E94C30348C0CA30A1F028F4DD +:1008F000C83059F0C93061F005C0CC3089F070F0D3 +:10090000CD3089F0209A289810C0219A29980DC0DE +:10091000229A2A980AC0239A2B9807C0529A01C09B +:10092000539A5B9802C03E9A4698E0EAEA95F1F73E +:100930008FB181708B25799902C032E001C030E01F +:10094000832B7C9902C034E001C030E0832B7D9979 +:1009500002C028E001C020E0822B7E9902C090E115 +:1009600001C090E0892B9FB19095991F9927991FFD +:100970009295990F907E892B0FC080910001811173 +:100980004AC080E40E94A10380930001882381F182 +:10099000912C0E94C303892DD8019C91981719F0BE +:1009A0008C93A09201010E94E60321960F5F1F4FD6 +:1009B000CE30D10509F076CF80910101882369F10D +:1009C000815080930101882339F0EFE9FFE03197EE +:1009D000F1F700C0000021C0E4E4F1E0D7018D91FF +:1009E0007D018193B4E4EB16B1E0FB06B9F715C0C5 +:1009F00083E10E94CB03809300018111C9CF81E480 +:100A00000E94A103809300018111C2CF0E94DC03E8 +:100A1000982E9094BECF80E0BFCF0E94DC0281E090 +:100A2000DF91CF911F910F91FF90EF90DF90CF90CA +:100A3000BF90AF909F900895E82FF0E0EC5BFE4FE1 +:100A40008081089508958B3B910580F4883A910543 +:100A500048F5853A9105D8F48430910508F0B2C084 +:100A6000019709F06EC081E090E00895803E910505 +:100A700008F467C0883E910508F4A4C09C01205F7B +:100A800031092031310508F05CC090650895853A40 +:100A9000910509F459C0863A910509F058C082E8D9 +:100AA00090E40895883A910509F454C0893A910573 +:100AB00009F453C08A3A910509F452C08B3A910562 +:100AC00009F451C08C3A910509F450C08D3A910552 +:100AD00009F44FC0803B910509F44EC08E3A910550 +:100AE00009F44DC08F3A910509F44CC0813B910542 +:100AF00009F44BC0823B910509F44AC0833B910540 +:100B000009F449C0843B910509F448C0853B91052F +:100B100009F447C0863B910509F446C0873B91051F +:100B200009F445C0883B910509F444C0893B91050F +:100B300009F443C08A3B910509F442C080E094E483 +:100B4000089580E090E0089581E890E4089583E8B6 +:100B500090E4089582EE94E4089589EE94E4089573 +:100B60008AEE94E4089585EB94E4089586EB94E48A +:100B7000089587EB94E408958CEC94E408958DEC4B +:100B800094E4089583E895E408958AE895E4089547 +:100B900082E995E4089584E995E4089581E296E474 +:100BA000089583E296E4089584E296E4089585E248 +:100BB00096E4089586E296E4089587E296E408951F +:100BC0008AE296E40895089524E5829FC0011124E5 +:100BD000FC0126E0729FE00DF11D1124E60FF11DCE +:100BE000EE0FFF1FEC51FF4F859194910895880FF0 +:100BF000991FFC01E05AF040859194910895880F67 +:100C0000991FFC01E052FF4F85919491089524E5CE +:100C1000829FC0011124FC0146E0749FE00DF11D8C +:100C20001124E60FF11DEE0FFF1FEC51FF4F8591D0 +:100C300094919C013A9521154FE1340708F425C1A0 +:100C40003F512115304120F49F700E94FF05089507 +:100C50009C0130532115304118F49927906C089568 +:100C6000811520E5920769F40E94B9134FEF84E3E0 +:100C70009CE0415080409040E1F700C000000C949F +:100C8000C01A813020E5920731F48091CC01816057 +:100C90008093CC0108959C0130552115304108F016 +:100CA0005CC0292F33272F70332721303105E9F419 +:100CB000AC0164E0440F551F6A95E1F74427537077 +:100CC000BC016370772702C0220F331F6A95E2F7D9 +:100CD0003C68242B352B73E0880F991F7A95E1F738 +:100CE00080769927822B932B08952230310529F4A1 +:100CF000982F8827816F906A089523303105A1F4D9 +:100D0000AC0133E0440F551F3A95E1F7407E577030 +:100D10008370992721E030E002C0220F331F8A95AB +:100D2000E2F7C9019C6816C02430310531F5AC01E9 +:100D300023E0440F551F2A95E1F7407E57708370DA +:100D4000992721E030E002C0220F331F8A95E2F795 +:100D5000C9019A68842B952B08959C013057211561 +:100D6000304118F49F70906208959C01305821150D +:100D7000304118F49F70906A0895803E9105E0F428 +:100D8000803C910558F58133910509F46FC048F412 +:100D90008932910509F463C08A32910509F46DC066 +:100DA00072C089339105E9F082389105D1F085331D +:100DB000910509F44DC067C0833E910581F138F477 +:100DC000803E9105B9F0823E9105D9F05CC0863E27 +:100DD000910561F1873E9105A1F155C00E94F7058B +:100DE00008952091DE0120FD02C021FF4CC080EE5D +:100DF00090E049C08091DE0180FFF9CF89E390E067 +:100E000042C08091DE0182FF0EC08091DE0184FF2E +:100E100003C080E090E037C083EE90E034C0809162 +:100E2000DE0182FFF2CF82EE90E02DC08091DE01E4 +:100E300083FF0BC08091DE0184FDEBCF87EE90E055 +:100E400022C08091DE0183FFF5CF86EE90E01BC0CB +:100E50008091DE0185FF07C089E290E014C0809197 +:100E6000DE0185FFF9CF85E390E00DC08091DE01C2 +:100E700086FF07C08AE290E006C08091DE0186FF0F +:100E8000F9CF81E390E00E942305089508958091B1 +:100E900062010895CF93DF9300D01F92CDB7DEB7E4 +:100EA0009C018091E401843019F593E099833B83A0 +:100EB0002A839093E9008FEF9091E800815095FD8F +:100EC00006C095ED9A95F1F700008111F5CF80915C +:100ED000E80085FF0DC040E050E063E070E0CE0127 +:100EE00001960E94B7098091E8008E778093E80010 +:100EF0000F900F900F90DF91CF910895CF93DF93D4 +:100F000000D01F92CDB7DEB72091E401243021F547 +:100F100022E029839B838A8383E08093E9008FEF1B +:100F20009091E800815095FD06C095ED9A95F1F7F6 +:100F300000008111F5CF8091E80085FF0DC040E0F1 +:100F400050E063E070E0CE0101960E94B709809105 +:100F5000E8008E778093E8000F900F900F90DF915C +:100F6000CF9108959C018091E4018430F9F482E0EE +:100F70008093E9009FEF8091E800915085FD06C0C5 +:100F800085ED8A95F1F700009111F5CF8091E80089 +:100F900085FF0CC040E050E065E070E0C9010E94B0 +:100FA000B7098091E8008E778093E8000895CF9389 +:100FB000DF93EC018091E401843009F046C0909108 +:100FC0000C019923D9F090910D019923B9F08093E8 +:100FD000E9008FEF9091E800815095FD06C095E102 +:100FE0009A95F1F700008111F5CF8091E80085FF17 +:100FF0002CC040E050E060E170E017C081E08093D9 +:10100000E9008FEF9091E800815095FD06C095EDC5 +:101010009A95F1F700008111F5CF8091E80085FFE6 +:1010200014C040E050E068E070E0CE010E94B709D3 +:101030008091E8008E778093E80080E1FE01A2E5D0 +:10104000B1E001900D928A95E1F7DF91CF9108957B +:101050008091E301811109C00E94480B0E94A50BF9 +:101060008091E20084608093E20008951092E30191 +:10107000089508950C94F6200E94561A0E94FC20B0 +:101080000E94500E0C94460742E061EC81E00E9401 +:10109000C10A42E061EC82E00E94C10A42E061ECD8 +:1010A00083E00E94C10A42E161EC84E00C94C10A31 +:1010B0008091E601833009F455C030F4813071F03D +:1010C000823009F48EC008958A3009F47AC08B30DA +:1010D00009F460C0893009F09CC020C08091E5010E +:1010E000813A09F096C08091E800877F8093E800FC +:1010F0008091E9019091EA01892B21F460E182E578 +:1011000091E003C060E080E090E070E00E94020A9D +:101110008091E8008B778093E80008958091E50145 +:10112000813209F076C08091E9019091EA0100973F +:1011300019F0039709F06DC08091E800877F8093D4 +:10114000E8008091E80082FD05C08091E4018111F2 +:10115000F8CF5FC08091F100809362018091E80038 +:101160008B7753C08091E501813A09F052C080919C +:10117000E9019091EA01892B09F04BC08091E800C8 +:10118000877F8093E8008091E80080FFFCCF80910A +:101190000C0136C08091E5018132D9F58091E901D9 +:1011A0009091EA01892BA9F58091E800877F8093CF +:1011B000E8000E94F60A8091E70180930C010C94EC +:1011C000B9138091E501813221F58091E800877F94 +:1011D0008093E8000E94F60A8091E8018093630101 +:1011E00008958091E501813AA1F48091E800877F1C +:1011F0008093E8008091E80080FFFCCF809163013C +:101200008093F1008091E8008E778093E8000C9441 +:10121000F60A089584B7877F84BF0FB6F894A8951F +:1012200080916000886180936000109260000FBE22 +:1012300090E080E80FB6F89480936100909361008D +:101240000FBE0E949F0E0E94480B0E94A50B80912A +:10125000E20084608093E20078940E94300E0E9445 +:10126000A10E82E091E00E944B0E0E94E42080914A +:10127000E401853069F40E94181A8091E201882304 +:10128000B1F30E94421A882391F30E94A109EFCF83 +:101290000E94A70EECCF292F332723303105C9F048 +:1012A00060F42130310581F02230310509F041C070 +:1012B0008DE690E020E133E040C021323105E1F0DD +:1012C0002232310531F135C082E190E02DE733E083 +:1012D00034C099278130910549F028F0029749F5EB +:1012E000ECEDF2E005C0ECE0F3E002C0E4EFF2E088 +:1012F000849190E09F0121C06430D8F4E62FF0E0A3 +:10130000EE0FFF1FEE5DFE4F2081318189E090E0FE +:1013100014C0643070F470E0FB01EE0FFF1FE65E56 +:10132000FE4F20813181FB01EA5EFE4F808190E01B +:1013300004C080E090E020E030E0FA0131832083B7 +:10134000089580E189BD82E189BD09B400FEFDCF29 +:101350008091D8008F7D8093D8008091E0008260DA +:101360008093E0008091E00081FDFCCF0895CF9252 +:10137000DF92EF92FF920F931F93CF93DF93EC01D5 +:101380008B016A010E94150B811133C0C114D10475 +:1013900039F0F60180819181081B190BC80FD91F04 +:1013A000E12CF12C0115110519F18091E80085FD62 +:1013B00016C08091E8008E778093E800C114D104B4 +:1013C00049F0F60180819181E80EF91EF182E082F8 +:1013D00085E00FC00E94150B882321F30AC0899174 +:1013E0008093F10001501109FFEFEF1AFF0ADACFE5 +:1013F00080E0DF91CF911F910F91FF90EF90DF90F0 +:10140000CF9008952091EB013091EC01261737071A +:1014100048F06115710539F42091E8002E7720938A +:10142000E80001C0B901FC0120E06115710579F106 +:101430008091E4018823F1F18530F1F18091E80099 +:1014400083FD3CC08091E80082FD2EC08091E800C1 +:1014500080FFEBCF2091F3008091F20090E0922B7F +:101460006115710551F08830910538F42191209370 +:10147000F100615071090196F3CF21E0089709F05E +:1014800020E08091E8008E778093E800CECF211194 +:10149000CFCF0AC08091E401882361F0853061F0EC +:1014A0008091E80083FD0AC08091E80082FFF2CFBE +:1014B00080E0089582E0089583E0089581E0089532 +:1014C0002091EB013091EC012617370748F06115A8 +:1014D000710539F42091E8002E772093E80001C0CF +:1014E000B901FC0120E06115710591F18091E401E1 +:1014F000882309F440C0853009F43FC08091E8009A +:1015000083FD3DC08091E80082FD2FC08091E800FE +:1015100080FFE9CF2091F3008091F20090E0922BC0 +:101520006115710559F08830910540F4249120939C +:10153000F1003196615071090196F2CF21E00897D0 +:1015400009F020E08091E8008E778093E800CBCF0F +:101550002111CCCF0AC08091E401882361F085304D +:1015600061F08091E80083FD0AC08091E80082FF6D +:10157000F2CF80E0089582E0089583E0089581E04D +:101580000895982F973068F59093E900981739F0EF +:101590007091EC002091ED005091F00003C0242FD9 +:1015A000762F50E021FD02C09F5FECCF3091EB0021 +:1015B0003E7F3093EB003091ED003D7F3093ED00A6 +:1015C0003091EB0031603093EB007093EC0020938E +:1015D000ED005093F0002091EE0027FDE5CF80E074 +:1015E00008958F708093E90081E008958091E5016E +:1015F00087FF11C08091E80082FD05C08091E40161 +:101600008111F8CF11C08091E8008B770BC08091D9 +:10161000E401882349F08091E80080FFF8CF8091B1 +:10162000E8008E778093E80008952091E4003091DF +:10163000E50095E64091EC00842F817040FF23C0C7 +:101640008091E80080FD1DC08091E401882399F01D +:10165000853099F08091EB0085FD11C04091E40048 +:101660005091E5002417350729F3915011F09A01A4 +:10167000E1CF84E0089582E0089583E0089581E059 +:10168000089580E008954091E80042FFDDCF08957D +:101690000E94B60B0E94BE0BE0EEF0E080818160FC +:1016A0008083E8EDF0E080818F77808319BCA7ED1F +:1016B000B0E08C918E7F8C9380818F7E808310929E +:1016C000E30108950F931F93CF93DF930E94B60B0E +:1016D0000E94BE0BC8EDD0E088818F778883888117 +:1016E0008068888388818F7D888319BC1092E4018B +:1016F0001092E0011092E2011092E10100EE10E080 +:10170000F80180818B7F808388818160888342E0BB +:1017100060E080E00E94C10AE1EEF0E080818E7F0F +:101720008083E2EEF0E08081816080838081886048 +:101730008083F80180818E7F8083888180618883A7 +:10174000DF91CF911F910F910895E8EDF0E0808136 +:101750008F7E8083E7EDF0E080818160808384E08C +:1017600082BF81E08093E3010C94620BE8EDF0E02E +:1017700080818E7F80831092E20008951092DA00BB +:101780001092E10008951F920F920FB60F9211244C +:101790002F933F934F935F936F937F938F939F9379 +:1017A000AF93BF93EF93FF938091E10082FF0BC053 +:1017B0008091E20082FF07C08091E1008B7F8093DF +:1017C000E1000E942F0E8091DA0080FF1FC08091FF +:1017D000D80080FF1BC08091DA008E7F8093DA00F2 +:1017E0008091D90080FF0DC080E189BD82E189BD73 +:1017F00009B400FEFDCF81E08093E4010E94280837 +:1018000005C019BC1092E4010E9436088091E100E5 +:1018100080FF19C08091E20080FF15C08091E20036 +:101820008E7F8093E2008091E20080618093E200ED +:101830008091D80080628093D80019BC85E08093A5 +:10184000E4010E943A088091E10084FF30C0809159 +:10185000E20084FF2CC080E189BD82E189BD09B42A +:1018600000FEFDCF8091D8008F7D8093D8008091BD +:10187000E1008F7E8093E1008091E2008F7E809373 +:10188000E2008091E20081608093E2008091E001BB +:10189000882311F084E007C08091E30087FD02C037 +:1018A00081E001C083E08093E4010E943C088091C4 +:1018B000E10083FF29C08091E20083FF25C0809171 +:1018C000E100877F8093E10082E08093E401109241 +:1018D000E0018091E1008E7F8093E1008091E20041 +:1018E0008E7F8093E2008091E20080618093E2002D +:1018F00042E060E080E00E94C10A8091F0008860D0 +:101900008093F0000E943908FF91EF91BF91AF9151 +:101910009F918F917F916F915F914F913F912F9107 +:101920000F900FBE0F901F9018951F920F920FB639 +:101930000F9211242F933F934F935F936F937F9355 +:101940008F939F93AF93BF93CF93DF93EF93FF93C7 +:10195000C091E900CF708091EC00D82FD17080FD4C +:10196000D0E81092E9008091F000877F8093F0002A +:1019700078940E94D90C1092E9008091F000886060 +:101980008093F000CD2BCF70C093E900FF91EF91D1 +:10199000DF91CF91BF91AF919F918F917F916F9187 +:1019A0005F914F913F912F910F900FBE0F901F901D +:1019B00018951F93CF93DF93CDB7DEB7AA970FB6D5 +:1019C000F894DEBF0FBECDBFE5EEF1E08091F100EF +:1019D000819321E0ED3EF207C9F70E9458088091FB +:1019E000E80083FF24C18091E5019091E601492F31 +:1019F00050E04A30510508F01AC1FA01EA5AFF4F87 +:101A00000C948D22803881F0823809F010C18091C9 +:101A1000E9018F708093E9008091EB0085FB8827B6 +:101A200080F91092E90006C08091E1019091E201F5 +:101A3000911182609091E800977F9093E8008093E5 +:101A4000F1001092F100C8C0282F2D7F09F0EFC0DF +:101A5000882319F0823061F0EAC08091E70181307B +:101A600009F0E5C0933009F080E08093E2012BC0DB +:101A70008091E701811127C08091E9018F7009F4FD +:101A8000D6C08093E9002091EB0020FF1CC093306A +:101A900021F48091EB00806214C09091EB00906182 +:101AA0009093EB0021E030E0A90102C0440F551FE4 +:101AB0008A95E2F74093EA001092EA008091EB00E9 +:101AC00088608093EB001092E9008091E800877FA6 +:101AD00086C08111ACC01091E7011F778091E300AF +:101AE0008078812B8093E3008091E800877F80934A +:101AF000E8000E94F60A8091E80080FFFCCF809108 +:101B0000E30080688093E300111102C082E001C00D +:101B100083E08093E4018BC08058823008F087C056 +:101B20008091E7019091E8018C3D53E0950779F5AC +:101B300083E08A838AE289834FB7F894DE011396A3 +:101B400020E03EE051E2E32FF0E050935700E491B3 +:101B500020FF03C0E295EF703F5FEF708E2F90E0A3 +:101B6000EA3010F0C79601C0C0968D939D932F5F09 +:101B7000243149F74FBF8091E800877F8093E800C8 +:101B80006AE270E0CE0101960E94020A14C0AE0122 +:101B90004F5F5F4F6091E9010E944B09BC01892BA7 +:101BA00009F445C09091E800977F9093E8008981FF +:101BB0009A810E94600A8091E8008B778093E80008 +:101BC00036C08038A1F58091E800877F8093E800D7 +:101BD0008091E0018093F1008091E8008E778093FE +:101BE000E8000E94F60A23C0811121C08091E7011C +:101BF0009091E80199270297D4F48091E800877FBB +:101C00008093E8008091E7018093E0010E94F60A4A +:101C10008091E001811106C08091E30087FD02C040 +:101C200081E001C084E08093E4010E944408809137 +:101C3000E80083FF0AC08091E800877F8093E80076 +:101C40008091EB0080628093EB00AA960FB6F89427 +:101C5000DEBF0FBECDBFDF91CF911F9108950895D4 +:101C6000CF938091E4018823A1F0C091E900CF7067 +:101C70009091EC00892F817090FD80E8C82B109224 +:101C8000E9008091E80083FD0E94D90CCF70C093D9 +:101C9000E900CF91089590936901809368010895B8 +:101CA000E0916801F0916901309721F00190F08195 +:101CB000E02D099480E00895E0916801F0916901B8 +:101CC000309721F00280F381E02D09940895E0918E +:101CD0006801F0916901309721F00480F581E02DD1 +:101CE00009940895209166013091670128173907FA +:101CF00071F09093670180936601E0916801F09123 +:101D00006901309721F00680F781E02D099408954C +:101D100020916401309165012817390771F0909383 +:101D2000650180936401E0916801F0916901309749 +:101D300021F00084F185E02D0994089508950C9414 +:101D40009E0E0E945C1A0E940E040C94221BCF92DD +:101D5000DF92EF92FF920F931F93CF93DF93CDB754 +:101D6000DEB72B970FB6F894DEBF0FBECDBF0E9433 +:101D700026048BE6C82E81E0D82E00E010E0E02E8D +:101D8000802F0E941C05F60141916F01F82EF42668 +:101D9000B1F40F5F1F4F0E30110589F78FEF898364 +:101DA0008A831B820E94651A8160782F9D838C83B1 +:101DB00049815A816B818D810E944A0F40C0909168 +:101DC000CC0191FF04C08B870E9422058B8520E007 +:101DD00030E04F2D50E0922FBA01022E02C07595CF +:101DE00067950A94E2F760FF24C02E83EF8221E01A +:101DF00030E0690102C0CC0CDD1C9A95E2F790E05E +:101E00008C219D21892B09F420E028870E94651AE6 +:101E10008160782F9A8789874E815F8168858A855E +:101E20000E944A0FF801E559FE4F8081C826C08202 +:101E300006C02F5F3F4F2630310569F6AACF0E94BA +:101E4000091E0E94500E90916A018917A1F00E940C +:101E5000500E80936A012B960FB6F894DEBF0FBE2A +:101E6000CDBFDF91CF911F910F91FF90EF90DF9049 +:101E7000CF900C9446072B960FB6F894DEBF0FBE9A +:101E8000CDBFDF91CF911F910F91FF90EF90DF9029 +:101E9000CF900895CF93DF93CDB7DEB72B970FB6D2 +:101EA000F894DEBF0FBECDBF4F83588769877A870E +:101EB0008B87DE01119686E0FD0111928A95E9F784 +:101EC00085E0FE01379601900D928A95E1F74981F0 +:101ED0005A816B817C818D819E810E944D162B964B +:101EE0000FB6F894DEBF0FBECDBFDF91CF9108953E +:101EF000CF93C82F882309F4C1C0823859F40E94B7 +:101F0000500E81FDBBC089E30E94EA180E94A2190D +:101F100089E30CC0833879F40E94500E80FDAEC076 +:101F200083E50E94EA180E94A21983E50E942919FC +:101F3000CF910C94A219843859F40E94500E82FD5E +:101F40009DC087E40E94EA180E94A21987E4EECFA0 +:101F50008CEF8C0F813A48F48C2F0E94492081111C +:101F60008DC08C2F0E94EA18E3CF80E28C0F88305E +:101F700048F4C77081E001C0880FCA95EAF70E9453 +:101F80006B19D6CF8BE58C0F833078F4C53A29F0E6 +:101F9000C63A31F083E890E005C081E890E002C0E5 +:101FA00082E890E0CF910C94720E88E58C0F83311B +:101FB00008F064C0C83A39F1C93A41F1CA3A49F166 +:101FC000CB3A51F1CC3A59F1CD3A61F1C03B69F1CC +:101FD000CE3A71F1CF3A79F1C13B81F1C23B89F13F +:101FE000C33B91F1C43B99F1C53BA1F1C63BA9F1BB +:101FF000C73BB1F1C83BB9F1C93BC1F1CA3BC9F11B +:1020000080E090E038C082EE90E035C089EE90E04C +:1020100032C08AEE90E02FC085EB90E02CC086EBBA +:1020200090E029C087EB90E026C08CEC90E023C0C4 +:102030008DEC90E020C083E891E01DC08AE891E03B +:102040001AC082E991E017C084E991E014C081E2EE +:1020500092E011C083E292E00EC084E292E00BC0F5 +:1020600085E292E008C086E292E005C087E292E055 +:1020700002C08AE292E0CF910C94880ECF9108952D +:10208000882309F44BC0823859F40E94500E81FF16 +:1020900045C089E30E94EA180E94A21989E30CC096 +:1020A000833871F40E94500E80FF38C083E50E948F +:1020B000EA180E94A21983E50E9429190C94A2191A +:1020C000843859F40E94500E82FF28C087E40E9491 +:1020D000EA180E94A21987E4EFCF9CEF980F913A7B +:1020E00058F390E2980F983050F4877091E001C057 +:1020F000990F8A95EAF7892F0E947119DFCF9BE526 +:10210000980F933020F480E090E00C94720E885A7F +:10211000833120F480E090E00C94880E08958823A9 +:1021200021F00E946B190C94A2190895882321F0C4 +:102130000E9471190C94A2190895BF92CF92DF9258 +:10214000EF92FF920F931F93CF93DF9300D000D0B5 +:1021500000D0CDB7DEB77C0185E0F701DE01119636 +:1021600001900D928A95E1F7F70183819481892B83 +:1021700009F4DDC2908181818F3F19F49F3F09F4FA +:10218000D6C2F7010281258122952F7099838A8317 +:1021900089819A812E830E94A918182FB92E0E9436 +:1021A000A8180E946F17EB2DE295EF704E2F50E0AC +:1021B000FA01E05AFF4F2E810C948D228B2D807FE7 +:1021C0009B2D9F70F92E882319F0F29480EFF8224E +:1021D000002349F0FF2009F457C28F2D0E947B197C +:1021E0000E94A21951C2812F0E944010FF2009F4C1 +:1021F0009EC28F2D0E94811926960FB6F894DEBFDD +:102200000FBECDBFDF91CF911F910F91FF90EF9047 +:10221000DF90CF90BF900C94A2193B2D307F8B2D77 +:102220008F70303211F08295807F112319F01130B8 +:1022300021F12CC00023B9F0222309F490C12130F0 +:1022400009F08DC126960FB6F894DEBF0FBECDBF44 +:10225000DF91CF911F910F91FF90EF90DF90CF9082 +:10226000BF900C948B19222319F0213009F45FC21E +:102270008E830E948E198E8186C1002321F0223028 +:1022800008F055C26CC1211152C27DC1002321F05A +:10229000222309F464C1F8C1222309F474C109C2DC +:1022A0008B2D86958695837019F08130D1F03FC2D1 +:1022B000002321F0812F9B2D937002C080E090E0DD +:1022C00026960FB6F894DEBF0FBECDBFDF91CF913B +:1022D0001F910F91FF90EF90DF90CF90BF900C94E3 +:1022E000720E002321F0812F9B2D937002C080E09D +:1022F00090E026960FB6F894DEBF0FBECDBFDF91FB +:10230000CF911F910F91FF90EF90DF90CF90BF90F2 +:102310000C94880E812F002319F00E94111D02C019 +:102320000E94791D26960FB6F894DEBF0FBECDBF72 +:10233000DF91CF911F910F91FF90EF90DF90CF90A1 +:10234000BF900C94FE1D8B2D837009F075C0011198 +:10235000EEC1812F829586958770880F880F912F07 +:102360009F70C92ED12CE12CF12C082E04C0CC0C6E +:10237000DD1CEE1CFF1C0A94D2F714FF12C00FE004 +:1023800010E020E030E004C0000F111F221F331FB7 +:102390008A95D2F7C901B80160957095809590959E +:1023A00003C060E070E0CB014B2D4695469543702D +:1023B0004230C1F060F56C297D298E299F2941307A +:1023C00051F126960FB6F894DEBF0FBECDBFDF9158 +:1023D000CF911F910F91FF90EF90DF90CF90BF9022 +:1023E0000C9496176C297D298E299F2926960FB665 +:1023F000F894DEBF0FBECDBFDF91CF911F910F913B +:10240000FF90EF90DF90CF90BF900C94B2170E9496 +:102410009617C701B60126960FB6F894DEBF0FBE19 +:10242000CDBFDF91CF911F910F91FF90EF90DF9083 +:10243000CF90BF900C947A17002319F08B2D8170E8 +:1024400001C08695882309F472C1812F82958695F3 +:102450008770880F880F912F9F70C92ED12CE12C87 +:10246000F12C082E04C0CC0CDD1CEE1CFF1C0A94C1 +:10247000D2F714FF12C00FE010E020E030E004C0FB +:10248000000F111F221F331F8A95D2F7C901B8010F +:10249000609570958095909503C060E070E0CB01E9 +:1024A0004B2D4695469543704230C1F060F56C293E +:1024B0007D298E299F29413051F126960FB6F89437 +:1024C000DEBF0FBECDBFDF91CF911F910F91FF9067 +:1024D000EF90DF90CF90BF900C9470186C297D29FD +:1024E0008E299F2926960FB6F894DEBF0FBECDBF6A +:1024F000DF91CF911F910F91FF90EF90DF90CF90E0 +:10250000BF900C948C180E947018C701B6012696D3 +:102510000FB6F894DEBF0FBECDBFDF91CF911F91F4 +:102520000F91FF90EF90DF90CF90BF900C945418D4 +:10253000103FD1F118F4103E50F4A1C0123F09F43D +:1025400063C008F44CC0133F09F473C098C01F70F7 +:102550008B2D8F710023A1F00E94ED17812F2696FD +:102560000FB6F894DEBF0FBECDBFDF91CF911F91A4 +:102570000F91FF90EF90DF90CF90BF900C948F1051 +:102580000E940E18812F26960FB6F894DEBF0FBE5C +:10259000CDBFDF91CF911F910F91FF90EF90DF9012 +:1025A000CF90BF900C9496100023A9F02111BFC0CA +:1025B0008B2D8F7126960FB6F894DEBF0FBECDBF60 +:1025C000DF91CF911F910F91FF90EF90DF90CF900F +:1025D000BF900C943318223008F0A9C0E9CF002333 +:1025E000A9F08B2D8F7126960FB6F894DEBF0FBE23 +:1025F000CDBFDF91CF911F910F91FF90EF90DF90B2 +:10260000CF90BF900C94ED17002359F38B2D8F7151 +:1026100026960FB6F894DEBF0FBECDBFDF91CF91E7 +:102620001F910F91FF90EF90DF90CF90BF900C948F +:102630000E18002399F08B2D8F7126960FB6F89403 +:10264000DEBF0FBECDBFDF91CF911F910F91FF90E5 +:10265000EF90DF90CF90BF900C94D81726960FB6CE +:10266000F894DEBF0FBECDBFDF91CF911F910F91C8 +:10267000FF90EF90DF90CF90BF900C94CE17002387 +:10268000A9F0222309F4ADCF812F26960FB6F89436 +:10269000DEBF0FBECDBFDF91CF911F910F91FF9095 +:1026A000EF90DF90CF90BF900C94780F222309F425 +:1026B000ADCF812F26960FB6F894DEBF0FBECDBFEB +:1026C000DF91CF911F910F91FF90EF90DF90CF900E +:1026D000BF900C9440104B2D4F70612FC7010E948A +:1026E000AE0226960FB6F894DEBF0FBECDBFDF91C7 +:1026F000CF911F910F91FF90EF90DF90CF90BF90FF +:102700000C94F2164B2D4F70612FC70126960FB611 +:10271000F894DEBF0FBECDBFDF91CF911F910F9117 +:10272000FF90EF90DF90CF90BF900C94E30526963A +:102730000FB6F894DEBF0FBECDBFDF91CF911F91D2 +:102740000F91FF90EF90DF90CF90BF9008950E947F +:1027500088190E945D190E94A2190E94AE1E0E9453 +:10276000FE1D80E090E00E94720E80E090E00C94EC +:10277000880E0E9478190C94A7130E94A918292F7B +:1027800022952F702C3030F42A3048F42250223019 +:1027900078F405C02C3041F02F3031F009C0803E74 +:1027A00048F0803F29F406C093FB882780F90895FC +:1027B00080E0089581E00895CF93DF9300D000D0AA +:1027C0001F92CDB7DEB70F900F900F900F900F9024 +:1027D000DF91CF910895CF93DF9300D000D000D048 +:1027E000CDB7DEB726960FB6F894DEBF0FBECDBFCD +:1027F000DF91CF9108951F93CF93DF93C09179011B +:1028000016E080917A01C81799F0D0E01C9FF00182 +:102810001D9FF00D1124E558FE4F408151816281CA +:102820007381848195810E94EB132196C770E9CF53 +:10283000DF91CF911F9108954091AB015091AC0170 +:102840006091AD017091AE018091AF019091B001A6 +:102850000C94EB138091B00182958F7009F054C0F5 +:102860008091AD01882309F44FC080917901A09136 +:102870007A014091AE015091AF016091AB0170912E +:10288000AC01B6E08A1709F43FC090E0411551054C +:10289000C1F17F3F11F46F3FA1F1B89FF001B99FE3 +:1028A000F00D1124E558FE4F218127132AC0208105 +:1028B000261327C02281211124C0238134812417AB +:1028C000350710F421503109241B350B283C310504 +:1028D000C0F42091B0012F7020612093B00126E058 +:1028E000289FF001299FF00D1124E058FE4F8081B0 +:1028F0008F70806180838BEA91E00E949D100C9420 +:10290000FB1301968770BECF0895CF92DF92EF92AE +:10291000FF920F931F93CF93DF93CDB7DEB76297EC +:102920000FB6F894DEBF0FBECDBF8C0185E0F80175 +:10293000DE011D9601900D928A95E1F7D8014C9128 +:1029400011965C91119712966C918091AE019091C5 +:10295000AF01009709F475C13091AB017091AC01E2 +:102960007F3F19F43F3F09F46CC1F801C380D48064 +:10297000E090AD01EE2009F4BEC02091B001C81670 +:10298000D90628F0D601A81BB90BCD0104C080954B +:1029900090958C0D9D1DFF24F394883C910578F053 +:1029A000F12C207F09F0C4C07C2DD98AC88A89897E +:1029B0000E94DC138BEA91E00E949D10AFC0822F31 +:1029C000807F09F045C0571313C0431311C0611134 +:1029D0000FC02F7020612093B0010E941C148BEA5D +:1029E00091E00E949D108091B001F80185832EC076 +:1029F000CD2819F15F3F11F44F3FF9F0F62E611128 +:102A00001CC08091790120917A0136E0821709F487 +:102A10005BC090E0389FF001399FF00D1124E5581C +:102A2000FE4F7181571306C07081471303C0728136 +:102A3000711103C001968770E9CFF62E662309F461 +:102A40001CC18091B00181608093B001F12C15C14F +:102A5000571309C0431307C0611105C08091B0012D +:102A6000F8018583C8C04D875E878D859E856A8BFA +:102A70000E94BD136A898823D1F16623C1F1209198 +:102A8000B001822F82958F7090E0029774F0809150 +:102A9000AB019091AC0198878F831986DB86CA863B +:102AA0002C87CE0107960E949D1086E0F801ABEAC4 +:102AB000B1E001900D928A95E1F70E942A140E94DC +:102AC0001C14FF24F394D9C04D875E878D859E85A5 +:102AD0000E94A918292F22952F70223008F0C1C01A +:102AE0009F7009F0BBC0805E883008F4C6C0C80182 +:102AF0000E949D10E6CFC816D90608F453C0F6010F +:102B0000E81BF90BCF01883C910508F450C0F12C6B +:102B10007C2DD98AC88A89890E94DC13EBEAF1E00E +:102B200086E0DF011D928A95E9F70E941C14A5C07A +:102B3000571314C0431312C0611110C08091B0012B +:102B4000F8018583C8010E949D1086E0EBEAF1E060 +:102B5000DF011D928A95E9F7FE2C8FC04D875E87B5 +:102B60008D859E856A8B0E94BD136A89882309F42E +:102B7000BECF662309F4BBCF2091B001822F82958E +:102B80008F7090E002970CF490CF8091AB01909100 +:102B9000AC019A8389831B82DD82CC822E83CE0195 +:102BA000019681CF809590958C0D9D1DACCFF62E12 +:102BB000662309F49CCF571333C0431331C02091CF +:102BC000B00120FD24C0822F82958F70482F50E0E5 +:102BD00041155105E1F0D80115962C9315974F300A +:102BE000510549F08F5F982F9295907F822F8F70BB +:102BF000892B15968C93C8010E949D1086E0F801E0 +:102C0000ABEAB1E001900D928A95E1F78ECF86E0B4 +:102C1000F801ABEAB1E001900D928A95E1F72DC081 +:102C20004D875E878D859E850E94BD1381113DCFA6 +:102C30008091B00181608093B001C8010E949D1015 +:102C40001CC0662309F453CF4D875E878D859E8512 +:102C50000E94BD13882309F44ACF27CF811143CFA7 +:102C60000CC0243008F043CF9F7009F43CCFD8014A +:102C700015969C91907F09F036CF8F2D62960FB6F6 +:102C8000F894DEBF0FBECDBFDF91CF911F910F91A2 +:102C9000FF90EF90DF90CF9008951F93CF93DF9335 +:102CA000CDB7DEB72C970FB6F894DEBF0FBECDBF01 +:102CB0004F83588769877A878B879C87CE010796D1 +:102CC0000E948514882371F08A859B85892B09F4DD +:102CD00041C088858F3F09F065C08F818F3F09F023 +:102CE00061C038C086E0FE013796DE011196019082 +:102CF0000D928A95E1F76A857B856115710551F121 +:102D0000FF81E885EF3F11F4FF3F21F120917A0127 +:102D100030E0C9010196877099274091790150E010 +:102D20008417950709F447C0F983EA837D836C8390 +:102D300096E0929FD001939FB00D1124A558BE4FED +:102D4000FE01319601900D929A95E1F780937A01F8 +:102D50000E94FB1316E08091790190917A01891706 +:102D6000B9F1189FC001112485589E4F0E94851407 +:102D7000882371F1E09179011E9FF0011124E5583B +:102D8000FE4F4081518162817381848195810E94CF +:102D9000EB138091790190E00196877099278093D9 +:102DA0007901D9CF4F81588569857A858B859C8536 +:102DB0000E94EB13CFCF0E94B91310927A011092A8 +:102DC0007901EBEAF1E086E0DF011D928A95E9F7EF +:102DD0002C960FB6F894DEBF0FBECDBFDF91CF911A +:102DE0001F910895EF92FF920F931F93CF93DF935C +:102DF0008C01892B09F46CC0F12CEE24E394E801DA +:102E00002196F8018491843740F4843008F051C051 +:102E1000813081F0823019F15BC0853709F444C0FC +:102E2000A8F19CE7980F903708F052C08F770E9466 +:102E3000401041C00E5F1F4FFE01849190E2980F39 +:102E4000983050F48770FE2D01C0FF0F8A95EAF785 +:102E50008F2F0E947B1914C00E94780F2DC00E5F27 +:102E60001F4FFE01849190E2980F983060F48770B4 +:102E7000FE2D01C0FF0F8A95EAF78F2F0E9481195E +:102E80000E94A21919C00E94401016C00E5F1F4F69 +:102E9000FE01C491CC2381F08FE99FE00197F1F707 +:102EA00000C00000C150F6CF0E5F1F4FFE01F4902E +:102EB00003C00E94780F8E018F2D882309F49FCFC5 +:102EC000EFE9FFE03197F1F700C000008150F5CF46 +:102ED000DF91CF911F910F91FF90EF90089508958A +:102EE0006093B5017093B6018093B7019093B801D8 +:102EF0000C94A7130F931F930091B5011091B60185 +:102F00002091B7013091B801DC01CB01802B912BCE +:102F1000A22BB32B8093B5019093B601A093B70178 +:102F2000B093B8011F910F910C94A7130F931F93A7 +:102F30000091B5011091B6012091B7013091B8010F +:102F4000DC01CB0180239123A223B3238093B5011D +:102F50009093B601A093B701B093B8011F910F9160 +:102F60000C94A7130F931F930091B5011091B60114 +:102F70002091B7013091B801DC01CB018027912766 +:102F8000A227B3278093B5019093B601A093B70110 +:102F9000B093B8011F910F910C94A7131092B10137 +:102FA0001092B2011092B3011092B4010C94A713C5 +:102FB00041E050E060E070E004C0440F551F661F20 +:102FC000771F8A95D2F74093B1015093B201609375 +:102FD000B3017093B4010C94A71341E050E060E09A +:102FE00070E004C0440F551F661F771F8A95D2F703 +:102FF0008091B1019091B201A091B301B091B4015F +:10300000482B592B6A2B7B2B4093B1015093B20173 +:103010006093B3017093B4010C94A71341E050E0A6 +:1030200060E070E004C0440F551F661F771F8A954B +:10303000D2F740955095609570958091B10190912F +:10304000B201A091B301B091B401482359236A237E +:103050007B234093B1015093B2016093B30170930D +:10306000B4010C94A71341E050E060E070E004C0AC +:10307000440F551F661F771F8A95D2F78091B101C3 +:103080009091B201A091B301B091B40148275927A2 +:103090006A277B274093B1015093B2016093B3013B +:1030A0007093B4010C94A7130F931F930091B10177 +:1030B0001091B2012091B3013091B401DC01CB0138 +:1030C000802B912BA22BB32B8093B1019093B20153 +:1030D000A093B301B093B4011F910F910C94A71367 +:1030E0000F931F930091B1011091B2012091B30190 +:1030F0003091B401DC01CB0180239123A223B323BF +:103100008093B1019093B201A093B301B093B40145 +:103110001F910F910C94A7130F931F930091B1016E +:103120001091B2012091B3013091B401DC01CB01C7 +:1031300080279127A227B3278093B1019093B201F2 +:10314000A093B301B093B4011F910F910C94A713F6 +:103150000895CF92DF92EF92FF920F931F93CF9338 +:10316000DF938C01C090B101D090B201E090B30127 +:10317000F090B4018091B5019091B601A091B70192 +:10318000B091B801C82AD92AEA2AFB2ACFE1D0E0B7 +:10319000D701C6010C2E04C0B695A79597958795C3 +:1031A0000A94D2F780FF07C0B8018C2F0E9407064F +:1031B0008130910531F4219758F7B80180E00E94E1 +:1031C0000706DF91CF911F910F91FF90EF90DF9055 +:1031D000CF90089590910C019923F1F090910D01F9 +:1031E0009923D1F0982F9695969596959F3080F5D6 +:1031F000E0910E01F0910F01E90FF11D877021E0C0 +:1032000030E0A90102C0440F551F8A95E2F7CA01B8 +:103210009181892B8183089520910E0130910F01B6 +:10322000F90132969FEF40E05191851789F09F3F59 +:1032300019F4511101C0942F4F5F4E30A9F79F3FF1 +:1032400039F0F901E90FF11D97FDFA958283089590 +:10325000089590910C019923F9F090910D01992313 +:10326000D9F0982F9695969596959F3028F5E091F0 +:103270000E01F0910F01E90FF11D877021E030E0A0 +:10328000A90102C0440F551F8A95E2F7CA01809533 +:10329000918189238183089520910E0130910F013E +:1032A000F9013296205F3F4F9081891301C010824F +:1032B0003196E217F307C1F7089581E090E0E091BD +:1032C0000E01F0910F01E80FF91F10820196803175 +:1032D0009105A9F708959091CB01892B8093CB019B +:1032E000089580959091CB0189238093CB01089517 +:1032F0001092CB0108959091CA01892B8093CA0145 +:10330000089580959091CA0189238093CA010895F8 +:103310001092CA0108958093B90108951092B901DD +:10332000089580910E0190910F01FC0131969C014E +:10333000205F3F4F80E0919191118F5FE217F3077B +:10334000D1F70895E0910E01F0910F018091CB012A +:103350008083E0910E01F0910F0190818091CA016C +:10336000892B80838091B901882361F0E0910E015F +:10337000F0910F019081892B80830E949119811116 +:103380001092B90180910E0190910F010C945C0E86 +:10339000CF92DF92EF92FF926C01EE24FF24C114D2 +:1033A000D104E104F10421F0C701B60120E101C01C +:1033B00020E0C72ED82EE92EFF24C114D104E10449 +:1033C000F10419F0285FC701B6016B017C0154E0DC +:1033D000F694E794D794C7945A95D1F7C114D104C1 +:1033E000E104F10419F02C5FC701B6016B017C0107 +:1033F00042E0F694E794D794C7944A95D1F7C11464 +:10340000D104E104F10419F02E5FC701B601DC011B +:10341000CB01B695A79597958795892B8A2B8B2BF2 +:1034200009F02F5F822FFF90EF90DF90CF900895EB +:103430008091E401843011F120E488E190E00FB63E +:10344000F894A895809360000FBE2093600083B726 +:10345000817F846083BF83B7816083BF78948895C0 +:1034600083B78E7F83BF0FB6F894A89580916000D4 +:10347000886180936000109260000FBE08950895E7 +:103480000C943F1ACF930E94401A0E9426040E9477 +:103490003F1AC0E08C2F0E941C05811104C0CF5F31 +:1034A000CE30C1F701C081E0CF9108950E94B913D9 +:1034B0000E94500E0C94460782E084BD93E095BDB7 +:1034C0009AEF97BD80936E0008952FB7F89480917E +:1034D000CD019091CE01A091CF01B091D0012FBF2D +:1034E0000895CF92DF92EF92FF920F931F932FB721 +:1034F000F8944091CD015091CE016091CF0170912F +:10350000D0012FBF6A017B01EE24FF248C0120E053 +:1035100030E0C016D106E206F30610F4415051091E +:103520009A01281B390BC9011F910F91FF90EF9051 +:10353000DF90CF9008951F920F920FB60F92112433 +:103540008F939F93AF93BF938091CD019091CE01C4 +:10355000A091CF01B091D0010196A11DB11D809322 +:10356000CD019093CE01A093CF01B093D001BF9134 +:10357000AF919F918F910F900FBE0F901F90189554 +:103580000E94480BF8942FEF87EA91E62150804083 +:103590009040E1F700C0000087E090EBDC018093F1 +:1035A000ED019093EE01A093EF01B093F0019CE048 +:1035B00088E10FB6F894A895809360000FBE9093B1 +:1035C0006000FFCFEF92FF920F931F93CF93DF9393 +:1035D000D82FC0E08C2F0E941C0500E010E0E82EE0 +:1035E000F12CC701002E02C0959587950A94E2F749 +:1035F00080FD06C00F5F1F4F0630110591F709C00F +:10360000602F7C2F80E00E94E4058D13F3CF81E0D2 +:1036100004C0CF5FCE30F1F680E0DF91CF911F91F3 +:103620000F91FF90EF900895CF93C82F8CE20E94E6 +:10363000E21A882321F08C2FCF910C94E21A80E0BB +:10364000CF910895CF930E94691C811102C00E94FE +:103650004F1CC5E6C15049F00E9426048FE39CE947 +:103660000197F1F700C00000F5CF89E20E94141B1A +:10367000811113C18AE20E94141B81110E944F1C08 +:1036800085E00E94141B81110E94C01A0E94741CC4 +:103690008093CC0187E00E94141B8823A9F18BE161 +:1036A0000E94141B882351F08091CC0181FB2227BA +:1036B00020F991E0922790FB81F90EC08EE00E94E4 +:1036C000141B882361F08091CC0182FB222720F912 +:1036D00091E0922790FB82F98093CC0115C080E1A4 +:1036E0000E94141B9091CC01882341F093FB222768 +:1036F00020F981E0822780FB93F904C0892F80950F +:1037000080FB90F99093CC018091CC010E94781CB1 +:103710000E94861C8093DE0180EE0E94141B882389 +:1037200041F08091DE01982F909590FB80F9809375 +:10373000DE0189E30E94141B882359F08091DE0189 +:1037400081FB222720F991E0922790FB81F9809359 +:10375000DE0182EE0E94141B882359F08091DE0165 +:1037600082FB222720F991E0922790FB82F9809337 +:10377000DE0186EE0E94141B882359F08091DE0141 +:1037800083FB222720F991E0922790FB83F9809315 +:10379000DE0183EE0E94141B882359F08091DE0124 +:1037A00084FB222720F991E0922790FB84F98093F3 +:1037B000DE0185E30E94141B882359F08091DE010D +:1037C00085FB222720F991E0922790FB85F98093D1 +:1037D000DE0181E30E94141B882359F08091DE01F1 +:1037E00086FB222720F991E0922790FB86F98093AF +:1037F000DE0181E10E94141B882359F08091DE01D3 +:1038000087FB222720F991E0922790FB87F980938C +:10381000DE018091DE010E948A1C8091DE0187FB1F +:10382000882780F980930D0187E20E94141BC82F1E +:103830008EE10E94141B8111C2608FE10E94141B53 +:103840008111C46080E20E94141B8111C86081E272 +:103850000E94141B8111C06182E20E94141B81111D +:10386000C06283E20E94141B8111C06484E20E9442 +:10387000141B882311F0C06802C0CC2329F08C2FC0 +:103880000E94811C6C2F03C00E947D1C682F70E079 +:1038900080E090E0CF910C947017CF9108956DEE79 +:1038A0007EEF80E090E00E94C32260E082E090E042 +:1038B0000E94B52260E083E090E00E94B52260E0C3 +:1038C00084E090E00E94B52260E085E090E00C94F6 +:1038D000B52280E090E00E94AF2221E08D3E9E4F15 +:1038E00009F020E0822F089582E090E00C94A72256 +:1038F000682F82E090E00C94B52283E090E00C9475 +:10390000A722682F83E090E00C94B52284E090E039 +:103910000C94A722682F84E090E00C94B52280914B +:10392000D30180FF0BC06091130185E0689FB00157 +:10393000112475956795759567952BC081FF09C012 +:103940006091130185E0689FB0011124759567951A +:1039500020C082FF07C06091130185E0689FB0011D +:10396000112417C09091D4019923D1F060911201D4 +:10397000961788F72091130185E0289F9001112464 +:10398000929FA001939F500D112470E0CA010E94E4 +:1039900079226038710540F46115710519F406C08B +:1039A00065E070E0862F08958FE7089581E008951F +:1039B0008091D30180FF08C06091110170E075957E +:1039C00067957595679521C081FF06C060911101CB +:1039D00070E07595679519C082FF04C06091110170 +:1039E00070E010C09091D401992399F0609110017A +:1039F0009617A0F780911101899FC001112470E0F2 +:103A00000E9479226038710540F46115710519F43E +:103A100006C061E070E0862F08958FE7089581E089 +:103A20000895803F21F40E948F1C819504C0813F3E +:103A300029F40E948F1C8093D7010895823F21F4BE +:103A40000E948F1C819504C0833F29F40E948F1C23 +:103A50008093D6010895893F19F40E94D81C05C0AF +:103A60008A3F31F40E94D81C81958093D801089533 +:103A70008B3F21F40E94D81C819504C08C3F29F40F +:103A80000E94D81C8093D9010895843F21F480912D +:103A9000D501816017C0853F21F48091D5018260F6 +:103AA00011C0863F21F48091D50184600BC0873F0F +:103AB00021F48091D501886005C0883F31F4809160 +:103AC000D50180618093D50108958D3F21F48091C7 +:103AD000D30181600BC08E3F21F48091D3018260BD +:103AE00005C08F3F29F48091D30184608093D30176 +:103AF0000895803F39F48091D70187FF6CC0109200 +:103B0000D70169C0813F29F48091D7011816BCF311 +:103B100062C09091D601823F29F497FF5CC0109259 +:103B2000D60159C0833F19F41916CCF354C0893F0C +:103B300041F48091D80118160CF04DC01092D801B4 +:103B40004AC08A3F29F48091D80187FF44C0F6CF4C +:103B50008B3F39F48091D90187FF3DC01092D90184 +:103B60003AC08C3F29F48091D9011816BCF333C0B8 +:103B7000843F21F48091D5018E7F17C0853F21F4C9 +:103B80008091D5018D7F11C0863F21F48091D501B0 +:103B90008B7F0BC0873F21F48091D501877F05C0C3 +:103BA000883F31F48091D5018F7E8093D50113C079 +:103BB0008D3F21F48091D3018E7F0BC08E3F21F485 +:103BC0008091D3018D7F05C08F3F29F48091D3016F +:103BD0008B7F8093D3018091D60181110EC080919B +:103BE000D70181110AC08091D801811106C080914E +:103BF000D901811102C01092D401089585ED91E0A0 +:103C00000E94670E0E94651A9093D2018093D101A1 +:103C100008951F93CF93DF938091D1019091D201AA +:103C20000E94711AAC019091D401992321F0209146 +:103C3000140130E006C0209115018AE0289F900110 +:103C400011244217530708F485C08091D601C09112 +:103C5000D701D091D8011091D901811107C0C111AC +:103C600075C0D11173C0111171C074C09F3F19F09C +:103C70009F5F9093D401181624F40E948F1C8093A8 +:103C8000D6018091D60187FF05C00E948F1C8195C7 +:103C90008093D6011C1624F40E948F1C8093D701B8 +:103CA0008091D70187FF05C00E948F1C819580936A +:103CB000D7016091D601662331F1C091D701CC23A1 +:103CC00011F1062E000C770B880B990B0E948021B6 +:103CD00023E333E343E35FE30E94E4210E944821AE +:103CE0006093D6016C2FCC0F770B880B990B0E9439 +:103CF000802123E333E343E35FE30E94E4210E9456 +:103D000048216093D7011D1624F40E94D81C80938B +:103D1000D8018091D80187FF05C00E94D81C8195E9 +:103D20008093D801111624F40E94D81C8093D901E5 +:103D30008091D90187FF05C00E94D81C819580938E +:103D4000D901DF91CF911F910C94FE1D9F3F09F087 +:103D50008FCFA0CFDF91CF911F910895E5EDF1E0D6 +:103D600085E0DF011D928A95E9F71092D401109247 +:103D7000D3010895833081F128F4813059F08230E5 +:103D8000D1F00895853009F449C0B8F1863009F4BE +:103D900056C0089580911501262F30E0280F311D5F +:103DA0002F3F310524F4680F6093150108958FEFBC +:103DB00080931501089580911401262F30E0280F7B +:103DC000311D2F3F310524F4680F609314010895CD +:103DD0008FEF80931401089580911301262F30E016 +:103DE000280F311D2F3F310524F4680F6093130114 +:103DF00008958FEF80931301089580911201262F6B +:103E000030E0280F311D2F3F310524F4680F6093F7 +:103E1000120108958FEF809312010895809111018E +:103E2000262F30E0280F311D2F3F310524F4680F75 +:103E30006093110108958FEF80931101089580918F +:103E40001001262F30E0280F311D2F3F310524F4BB +:103E5000680F6093100108958FEF8093100108950B +:103E6000833011F128F4813049F0823091F00895C7 +:103E7000853081F120F18630C1F1089580911501DE +:103E8000681720F4861B8093150108951092150180 +:103E9000089580911401681720F4861B8093140103 +:103EA000089510921401089580911301681720F469 +:103EB000861B809313010895109213010895809139 +:103EC0001201681720F4861B809312010895109246 +:103ED0001201089580911101681720F4861B8093C8 +:103EE0001101089510921101089580911001681731 +:103EF00020F4861B809310010895109210010895FC +:103F00000F931F938D3109F46BC008F03FC08E30C2 +:103F100009F47DC0C0F4873009F46EC068F48630BF +:103F200009F0AFC08091CC01817F8E7F8093CC015E +:103F300081E08093DB01A6C0883009F458C08B3043 +:103F400009F49BC09EC0863109F497C078F4803193 +:103F500009F470C0813109F094C00E94B9139091A6 +:103F60000D0181E0892780930D0187C0893109F413 +:103F700084C08B3109F085C08091CC0181FB222760 +:103F800020F991E0922790FB81F94AC0853309F42A +:103F90005BC048F4873209F457C008F45AC089322C +:103FA00009F452C06EC0833438F48A3308F067C015 +:103FB000883309F462C065C0833409F445C088348D +:103FC00009F05FC00E94B9130FEF13ED20E3015019 +:103FD00010402040E1F700C000000E94C01A4DC010 +:103FE0000E9402210E94500E0E94460746C00E9475 +:103FF000741C0E94861C41C09091CC01892F817055 +:1040000090FF12C0917F9E7F9093CC013BC0809126 +:10401000CC0182FB222720F991E0922790FB82F9C4 +:104020008093CC01992349F18091CC0181608093E8 +:10403000CC0123C08091CC0183FB222720F991E0A1 +:10404000922790FB83F9ECCF61E070E080E090E094 +:1040500010C08D5141E050E060E070E08A019B01AA +:1040600004C0000F111F221F331F8A95D2F7C90108 +:10407000B8010E9470170E94B91381E003C08953F0 +:10408000E9CF80E01F910F91089580E008950C948E +:104090004520CF93C82F8091DB01813079F018F053 +:1040A0008230E9F187C0E0910E01F0910F0180812B +:1040B000813169F0823209F07FC009C0E0910E01C0 +:1040C000F0910F018081813111F0823261F48C2FE7 +:1040D0000E944720811104C08C2F0E94801F1DC0A8 +:1040E00081E090E01AC08C2F0E944520811114C0FD +:1040F000C43179F048F4CB3079F0C03109F060C0B8 +:1041000082E08093DB0108C0C93219F0C83321F086 +:1041100057C01092DB0154C081E0817053C0C93296 +:1041200089F118F5C43171F1A8F4C73009F046C01F +:104130008AE08093150194E19093140193E09093A9 +:1041400013018093120188E08093110188E280932B +:10415000100134C0CE51C63088F5EC2FF0E0E65D9A +:10416000FE4F80818093DA0129C0CE34E9F020F43B +:10417000CB3421F56AE013C0C13579F0C235F1F4D2 +:1041800061E00DC08091DA01882319F01092DA0104 +:1041900015C081E08093DB0115C061E006C080910D +:1041A000DA010E94BA1E0AC06AE08091DA010E9418 +:1041B000301F04C01092DB0180E004C081E002C027 +:1041C00080E0ABCFCF910895E1E8F0E08081886096 +:1041D00080838081816080838FB7F89493E090938F +:1041E000890090ED909388008FBF0895EFE6F0E08E +:1041F0008081826080830895EFE6F0E080818D7F8A +:1042000080830895EFE6F0E0908182E08927808343 +:1042100008951F920F920FB60F9211242F933F9380 +:104220004F935F936F937F938F939F93AF93BF93BE +:10423000EF93FF938091DC019091DD0101969093C3 +:10424000DD018093DC01811103C082E00E944607FA +:10425000E091DD01E695E695F0E0E657FB4FE4914D +:104260008091DC018E1303C080E00E944607FF911D +:10427000EF91BF91AF919F918F917F916F915F91DE +:104280004F913F912F910F900FBE0F901F90189557 +:104290000E944F216894B1110C94DE2108950E9470 +:1042A000C32188F09F5798F0B92F9927B751B0F0E4 +:1042B000E1F0660F771F881F991F1AF0BA95C9F7AA +:1042C00014C0B13091F00E94DD21B1E008950C944A +:1042D000DD21672F782F8827B85F39F0B93FCCF3FD +:1042E000869577956795B395D9F73EF49095809527 +:1042F000709561957F4F8F4F9F4F0895E89409C047 +:1043000097FB3EF490958095709561957F4F8F4F08 +:104310009F4F9923A9F0F92F96E9BB279395F6951E +:10432000879577956795B795F111F8CFFAF4BB0F9C +:1043300011F460FF1BC06F5F7F4F8F4F9F4F16C000 +:10434000882311F096E911C0772321F09EE8872F8A +:10435000762F05C0662371F096E8862F70E060E046 +:104360002AF09A95660F771F881FDAF7880F9695BF +:10437000879597F9089557FD9058440F551F59F0A8 +:104380005F3F71F04795880F97FB991F61F09F3F42 +:1043900079F087950895121613061406551FF2CF6B +:1043A0004695F1DF08C0161617061806991FF1CFBB +:1043B00086957105610508940895E894BB276627E2 +:1043C0007727CB0197F908950E94F7210C94682272 +:1043D0000E945A2238F00E94612220F0952311F0A9 +:1043E0000C9451220C94572211240C94DE210E942B +:1043F000BB2170F3959FC1F3950F50E0551F629F4D +:10440000F001729FBB27F00DB11D639FAA27F00D2D +:10441000B11DAA1F649F6627B00DA11D661F829F54 +:104420002227B00DA11D621F739FB00DA11D621F39 +:10443000839FA00D611D221F749F3327A00D611D56 +:10444000231F849F600D211D822F762F6A2F112438 +:104450009F5750409AF0F1F088234AF0EE0FFF1F6B +:10446000BB1F661F771F881F91505040A9F79E3FC2 +:10447000510580F00C9451220C94DE215F3FE4F34F +:10448000983ED4F3869577956795B795F795E79518 +:104490009F5FC1F7FE2B880F911D9695879597F921 +:1044A000089597F99F6780E870E060E008959FEFB6 +:1044B00080EC089500240A941616170618060906BB +:1044C000089500240A94121613061406050608958A +:1044D000092E0394000C11F4882352F0BB0F40F412 +:1044E000BF2B11F460FF04C06F5F7F4F8F4F9F4F52 +:1044F000089597FB072E16F4009407D077FD09D096 +:104500000E94932207FC05D03EF4909581959F4F21 +:104510000895709561957F4F0895EE0FFF1F0590E8 +:10452000F491E02D0994AA1BBB1B51E107C0AA1FFF +:10453000BB1FA617B70710F0A61BB70B881F991F44 +:104540005A95A9F780959095BC01CD010895F999E8 +:10455000FECF92BD81BDF89A992780B50895A8E154 +:10456000B0E042E050E00C94CA22262FF999FECF29 +:104570001FBA92BD81BD20BD0FB6F894FA9AF99A80 +:104580000FBE019608950E94B522272F0C94B622E3 +:10459000DC01CB01FC01F999FECF06C0F2BDE1BD03 +:1045A000F89A319600B40D9241505040B8F70895F2 +:0445B000F894FFCFAD +:1045B40020024707D707B2077E074A070101BA015D +:1045C40028080A03140A3F4D36394B04FE03C80376 +:1045D4008F0322033B0354036D0301020304050606 +:0445E40007080900BB +:00000001FF diff --git a/keyboard/ergodox_ez/keymaps/default/default.png b/keyboard/ergodox_ez/keymaps/default/default.png new file mode 100644 index 0000000000..6575f7b5e3 Binary files /dev/null and b/keyboard/ergodox_ez/keymaps/default/default.png differ diff --git a/keyboard/ergodox_ez/keymaps/default/default_highres.png b/keyboard/ergodox_ez/keymaps/default/default_highres.png new file mode 100644 index 0000000000..7d9f045f43 Binary files /dev/null and b/keyboard/ergodox_ez/keymaps/default/default_highres.png differ diff --git a/keyboard/ergodox_ez/keymaps/keymap_default.c b/keyboard/ergodox_ez/keymaps/default/keymap.c similarity index 98% rename from keyboard/ergodox_ez/keymaps/keymap_default.c rename to keyboard/ergodox_ez/keymaps/default/keymap.c index b2f0a051d5..1c3bb51713 100644 --- a/keyboard/ergodox_ez/keymaps/keymap_default.c +++ b/keyboard/ergodox_ez/keymaps/default/keymap.c @@ -14,7 +14,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| * | Del | Q | W | E | R | T | L1 | | L1 | Y | U | I | O | P | \ | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | BkSp | A | S | D | F | G |------| |------| H | J | K | L |; / L2| ' | + * | BkSp | A | S | D | F | G |------| |------| H | J | K | L |; / L2|' / Cmd | * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------| * | LShift |Z/Ctrl| X | C | V | B | | | | N | M | , | . |//Ctrl| RShift | * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' @@ -43,7 +43,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // right hand KC_RGHT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, TG(SYMB), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, - KC_H, KC_J, KC_K, KC_L, LT(MDIA, KC_SCLN),KC_QUOT, + KC_H, KC_J, KC_K, KC_L, LT(MDIA, KC_SCLN),GUI_T(KC_QUOT), MEH_T(KC_NO),KC_N, KC_M, KC_COMM,KC_DOT, CTL_T(KC_SLSH), KC_RSFT, KC_UP, KC_DOWN,KC_LBRC,KC_RBRC, KC_FN1, KC_LALT, CTL_T(KC_ESC), @@ -155,12 +155,12 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) }; // Runs just one time when the keyboard initializes. -void * matrix_init_user(void) { +void matrix_init_user(void) { }; // Runs constantly in the background, in a loop. -void * matrix_scan_user(void) { +void matrix_scan_user(void) { uint8_t layer = biton32(layer_state); diff --git a/keyboard/ergodox_ez/keymaps/default/readme.md b/keyboard/ergodox_ez/keymaps/default/readme.md new file mode 100644 index 0000000000..8f6dba45e9 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/default/readme.md @@ -0,0 +1,10 @@ +# ErgoDox EZ Default Configuration + +## Changelog + +* Feb 2, 2016 (V1.1): + * Made the right-hand quote key double as Cmd/Win on hold. So you get ' when you tap it, " when you tap it with Shift, and Cmd or Win when you hold it. You can then use it as a modifier, or just press and hold it for a moment (and then let go) to send a single Cmd or Win keystroke (handy for opening the Start menu on Windows). + +This is what we ship with out of the factory. :) The image says it all: + +![Default](default_highres.png) diff --git a/keyboard/ergodox_ez/keymaps/default_osx/default_osx.hex b/keyboard/ergodox_ez/keymaps/default_osx/default_osx.hex new file mode 100644 index 0000000000..02ee975544 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/default_osx/default_osx.hex @@ -0,0 +1,1121 @@ +:100000000C9465020C94AC020C94AC020C94AC02FF +:100010000C94AC020C94AC020C94AC020C94AC02A8 +:100020000C94AC020C94AC020C94C30B0C94950C85 +:100030000C94AC020C94AC020C94AC020C94AC0288 +:100040000C94AC020C9409210C94AC020C94AC02FC +:100050000C94AC020C949B1A0C94AC020C94AC0261 +:100060000C94AC020C94AC020C94AC020C94AC0258 +:100070000C94AC020C94AC020C94AC020C94AC0248 +:100080000C94AC020C94AC020C94AC020C94AC0238 +:100090000C94AC020C94AC020C94AC020C94AC0228 +:1000A0000C94AC020C94AC020C94AC02020D240D26 +:1000B000170E240D170E690D8C0D170EE10DF40DA2 +:1000C000DE10DE100D110D1150118A1197139713C8 +:1000D000A3119713981298126B1397139713821307 +:1000E0000000F0A12E004C002A00E1003581000044 +:1000F0001E00140004001D7134004D001F001A0082 +:1001000016001B00E1042A0020000800070006007A +:1001100050002C0021001500090019004F004A0072 +:10012000220017000A000500000065745000015409 +:100130000000007F0000E3004F0001540000007742 +:100140000000E20023001C000B00110000002971D8 +:10015000240018000D00100052004B0025000C0078 +:100160000E00360051002800260012000F00370054 +:100170002F002B00270013003382387130004E000F +:100180002D003100E300E500C10000000100010086 +:1001900001000100010000003A001E0220022202BC +:1001A000010001003B001F022102230201000100A7 +:1001B0003C002F0226022F00010001003D0030020A +:1001C00027023000010001003E00310235003502F7 +:1001D000000001000100010000000100000001001A +:1001E0000100010000000100000001003F0052007A +:1001F00051002402000001004000240021001E00E4 +:10020000010001004100250022001F00370001000D +:1002100042002600230020002700010043002502A1 +:100220002E0231002E0001004400450001000100B3 +:1002300001000000010001000100010001000000B8 +:1002400001000100010001000100010001000100A6 +:10025000F2000100010001000100F000F1000100C6 +:10026000F400010001000100F3000100F5000100AD +:100270000100010001000100000001000100010077 +:100280000000010000000100010001000000010069 +:100290000000010001000100010001000000010058 +:1002A0000100010001000100A9000100010001009E +:1002B0000100AC00AA00B600010001000100AB0083 +:1002C000A80001000100010001000100010001007F +:1002D00001000100AE00010001000000160345000E +:1002E000720067006F0044006F0078002000450036 +:1002F0005A00000016034500720067006F004400BA +:100300006F007800200045005A0000000403090433 +:1003100009026D00040100A0FA09040000010301B4 +:100320000100092111010001223F00070581030896 +:10033000000A090401000103010200092111010062 +:1003400001224D000705820308000A09040200018A +:100350000300000009211101000122360007058376 +:100360000308000A09040300010300000009211129 +:100370000100012239000705840310000112011059 +:100380000100000008EDFE07130100010200010555 +:10039000010906A101050719E029E71500250195C6 +:1003A0000875018102050819012905950575019156 +:1003B000029501750391010507190029771500259C +:1003C00001957875018102C005010980A1018502AE +:1003D00016010026B7001A01002AB7007510950112 +:1003E0008100C0050C0901A1018503160100269CAE +:1003F000021A01002A9C02751095018100C00501B6 +:100400000902A1010901A100050919012905150029 +:10041000250195057501810295017503810105018D +:10042000093009311581257F950275088106093843 +:100430001581257F950175088106050C0A3802157E +:1004400081257F950175088106C0C005010906A1B7 +:1004500001050719E029E7150025019508750181B7 +:100460000295017508810105081901290595057591 +:100470000191029501750391010507190029FF15E6 +:100480000025FF950675088100C0000000000000EF +:100490000000000000010204060A0F17202C3A4A4F +:1004A0005D71879DB3C7DAE9F5FCFFFCF5E9DAC7B2 +:1004B000B39D87715D4A3A2C20170F0A060402018A +:1004C0000000000000000000000011241FBECFEF5C +:1004D000DAE0DEBFCDBF04B603FE27C08091ED0198 +:1004E0009091EE01A091EF01B091F0018730904B17 +:1004F000A740B04BD1F41092ED011092EE01109292 +:10050000EF011092F00114BE84B7877F84BF0FB64D +:10051000F894A895809160008861809360001092A3 +:1005200060000FBEE0E0FFE3099511E0A0E0B1E05C +:10053000E4EBF5E402C005900D92A433B107D9F7BE +:1005400021E0A4E3B1E001C01D92AD3EB207E1F7A6 +:100550000E940A090C94D8220C94000061110BC06F +:10056000FC018281882321F085EE0E94780F03C070 +:1005700085EE0E94401080E090E00895089560911B +:10058000B1017091B2018091B3019091B4010E94C8 +:10059000C81956985E9825982D9826982E982798D1 +:1005A0002F98813019F0823021F00895259A2D9AE4 +:1005B0000895269A2E9A08950C94BF0256985E9834 +:1005C00025982D9826982E9827982F988FEF90E0B1 +:1005D000909389008093880090938B0080938A0089 +:1005E00090938D0080938C00259A2D9A2FEF80E7B1 +:1005F00092E0215080409040E1F700C00000269A30 +:100600002E9A2FEF80E792E0215080409040E1F752 +:1006100000C00000279A2F9A2FEF80E792E0215028 +:1006200080409040E1F700C0000025982D982FEF02 +:1006300080E792E0215080409040E1F700C0000048 +:1006400026982E982FEF80E792E02150804090402E +:10065000E1F700C0000027982F9856985E982598DB +:100660002D9826982E9827982F98089589EA809398 +:10067000800089E08093810024982C983F988AB16B +:100680008F748AB96E98479A8BB1806B8BB9769AC2 +:100690000E94DE020C94BE0280E2809300018091F1 +:1006A000340181110EC00E949B0381E080933401CC +:1006B0002FEF83ED90E3215080409040E1F700C0A0 +:1006C000000080E40E94A1038093000181112EC0EC +:1006D0000E94CB0380930001811128C00E94CB03AC +:1006E00080930001811122C08FE30E94CB0380938D +:1006F000000181111BC00E94C30380E40E94A1037A +:1007000080930001811112C08CE00E94CB03809382 +:10071000000181110BC00E94CB0380930001811165 +:1007200005C08FE30E94CB03809300010E94C303A6 +:100730008091000108951092B9008AE08093B8007A +:10074000089594EA9093BC009091BC0097FFFCCF71 +:100750009091B900987F983021F0903111F081E0AC +:1007600008958093BB0084E88093BC008091BC0016 +:1007700087FFFCCF8091B900887F883111F08034E9 +:1007800071F780E0089584E98093BC008091BC00FB +:1007900084FDFCCF08958093BB0084E88093BC0067 +:1007A0008091BC0087FFFCCF9091B900987F81E0D9 +:1007B000983209F480E0089584E88093BC00809129 +:1007C000BC0087FFFCCF8091BB00089580910001A1 +:1007D000811115C080E40E94A10380930001811162 +:1007E0000CC082E10E94CB0380930001811105C0FF +:1007F0008FEF0E94CB03809300010E94C30384B15A +:10080000807F84B985B1807F85B98AB1837F8AB9B9 +:100810008BB1837F8BB93E98469808950E944C0314 +:10082000809300010E94E60380B38C7080BB81B38B +:10083000836F81BBE4E4F1E0A6E3B1E011921D9285 +:1008400081E0E235F807D1F70C9436039F92AF921E +:10085000BF92CF92DF92EF92FF920F931F93CF93AD +:10086000DF9380910001882379F0809135018F5FBB +:1008700080933501811108C00E944C0380930001D0 +:10088000811102C00E94DE0286E3E82E81E0F82E8C +:100890008701C0E0D0E0BB24B39492E0A92ECC2421 +:1008A000C394D12CC730D10500F58091000181118E +:1008B00064C080E40E94A10380930001811112C0F2 +:1008C00082E10E94CB038093000181110BC0C6011D +:1008D0000C2E01C0880F0A94EAF780950E94CB0382 +:1008E000809300010E94C30348C0CA30A1F028F4DD +:1008F000C83059F0C93061F005C0CC3089F070F0D3 +:10090000CD3089F0209A289810C0219A29980DC0DE +:10091000229A2A980AC0239A2B9807C0529A01C09B +:10092000539A5B9802C03E9A4698E0EAEA95F1F73E +:100930008FB181708B25799902C032E001C030E01F +:10094000832B7C9902C034E001C030E0832B7D9979 +:1009500002C028E001C020E0822B7E9902C090E115 +:1009600001C090E0892B9FB19095991F9927991FFD +:100970009295990F907E892B0FC080910001811173 +:100980004AC080E40E94A10380930001882381F182 +:10099000912C0E94C303892DD8019C91981719F0BE +:1009A0008C93A09201010E94E60321960F5F1F4FD6 +:1009B000CE30D10509F076CF80910101882369F10D +:1009C000815080930101882339F0EFE9FFE03197EE +:1009D000F1F700C0000021C0E4E4F1E0D7018D91FF +:1009E0007D018193B4E4EB16B1E0FB06B9F715C0C5 +:1009F00083E10E94CB03809300018111C9CF81E480 +:100A00000E94A103809300018111C2CF0E94DC03E8 +:100A1000982E9094BECF80E0BFCF0E94DC0281E090 +:100A2000DF91CF911F910F91FF90EF90DF90CF90CA +:100A3000BF90AF909F900895E82FF0E0EC5BFE4FE1 +:100A40008081089508958B3B910580F4883A910543 +:100A500048F5853A9105D8F48430910508F0B2C084 +:100A6000019709F06EC081E090E00895803E910505 +:100A700008F467C0883E910508F4A4C09C01205F7B +:100A800031092031310508F05CC090650895853A40 +:100A9000910509F459C0863A910509F058C082E8D9 +:100AA00090E40895883A910509F454C0893A910573 +:100AB00009F453C08A3A910509F452C08B3A910562 +:100AC00009F451C08C3A910509F450C08D3A910552 +:100AD00009F44FC0803B910509F44EC08E3A910550 +:100AE00009F44DC08F3A910509F44CC0813B910542 +:100AF00009F44BC0823B910509F44AC0833B910540 +:100B000009F449C0843B910509F448C0853B91052F +:100B100009F447C0863B910509F446C0873B91051F +:100B200009F445C0883B910509F444C0893B91050F +:100B300009F443C08A3B910509F442C080E094E483 +:100B4000089580E090E0089581E890E4089583E8B6 +:100B500090E4089582EE94E4089589EE94E4089573 +:100B60008AEE94E4089585EB94E4089586EB94E48A +:100B7000089587EB94E408958CEC94E408958DEC4B +:100B800094E4089583E895E408958AE895E4089547 +:100B900082E995E4089584E995E4089581E296E474 +:100BA000089583E296E4089584E296E4089585E248 +:100BB00096E4089586E296E4089587E296E408951F +:100BC0008AE296E40895089524E5829FC0011124E5 +:100BD000FC0126E0729FE00DF11D1124E60FF11DCE +:100BE000EE0FFF1FEC51FF4F859194910895880FF0 +:100BF000991FFC01E05AF040859194910895880F67 +:100C0000991FFC01E052FF4F85919491089524E5CE +:100C1000829FC0011124FC0146E0749FE00DF11D8C +:100C20001124E60FF11DEE0FFF1FEC51FF4F8591D0 +:100C300094919C013A9521154FE1340708F425C1A0 +:100C40003F512115304120F49F700E94FF05089507 +:100C50009C0130532115304118F49927906C089568 +:100C6000811520E5920769F40E94B9134FEF84E3E0 +:100C70009CE0415080409040E1F700C000000C949F +:100C8000C01A813020E5920731F48091CC01816057 +:100C90008093CC0108959C0130552115304108F016 +:100CA0005CC0292F33272F70332721303105E9F419 +:100CB000AC0164E0440F551F6A95E1F74427537077 +:100CC000BC016370772702C0220F331F6A95E2F7D9 +:100CD0003C68242B352B73E0880F991F7A95E1F738 +:100CE00080769927822B932B08952230310529F4A1 +:100CF000982F8827816F906A089523303105A1F4D9 +:100D0000AC0133E0440F551F3A95E1F7407E577030 +:100D10008370992721E030E002C0220F331F8A95AB +:100D2000E2F7C9019C6816C02430310531F5AC01E9 +:100D300023E0440F551F2A95E1F7407E57708370DA +:100D4000992721E030E002C0220F331F8A95E2F795 +:100D5000C9019A68842B952B08959C013057211561 +:100D6000304118F49F70906208959C01305821150D +:100D7000304118F49F70906A0895803E9105E0F428 +:100D8000803C910558F58133910509F46FC048F412 +:100D90008932910509F463C08A32910509F46DC066 +:100DA00072C089339105E9F082389105D1F085331D +:100DB000910509F44DC067C0833E910581F138F477 +:100DC000803E9105B9F0823E9105D9F05CC0863E27 +:100DD000910561F1873E9105A1F155C00E94F7058B +:100DE00008952091DE0120FD02C021FF4CC080EE5D +:100DF00090E049C08091DE0180FFF9CF89E390E067 +:100E000042C08091DE0182FF0EC08091DE0184FF2E +:100E100003C080E090E037C083EE90E034C0809162 +:100E2000DE0182FFF2CF82EE90E02DC08091DE01E4 +:100E300083FF0BC08091DE0184FDEBCF87EE90E055 +:100E400022C08091DE0183FFF5CF86EE90E01BC0CB +:100E50008091DE0185FF07C089E290E014C0809197 +:100E6000DE0185FFF9CF85E390E00DC08091DE01C2 +:100E700086FF07C08AE290E006C08091DE0186FF0F +:100E8000F9CF81E390E00E942305089508958091B1 +:100E900062010895CF93DF9300D01F92CDB7DEB7E4 +:100EA0009C018091E401843019F593E099833B83A0 +:100EB0002A839093E9008FEF9091E800815095FD8F +:100EC00006C095ED9A95F1F700008111F5CF80915C +:100ED000E80085FF0DC040E050E063E070E0CE0127 +:100EE00001960E94B7098091E8008E778093E80010 +:100EF0000F900F900F90DF91CF910895CF93DF93D4 +:100F000000D01F92CDB7DEB72091E401243021F547 +:100F100022E029839B838A8383E08093E9008FEF1B +:100F20009091E800815095FD06C095ED9A95F1F7F6 +:100F300000008111F5CF8091E80085FF0DC040E0F1 +:100F400050E063E070E0CE0101960E94B709809105 +:100F5000E8008E778093E8000F900F900F90DF915C +:100F6000CF9108959C018091E4018430F9F482E0EE +:100F70008093E9009FEF8091E800915085FD06C0C5 +:100F800085ED8A95F1F700009111F5CF8091E80089 +:100F900085FF0CC040E050E065E070E0C9010E94B0 +:100FA000B7098091E8008E778093E8000895CF9389 +:100FB000DF93EC018091E401843009F046C0909108 +:100FC0000C019923D9F090910D019923B9F08093E8 +:100FD000E9008FEF9091E800815095FD06C095E102 +:100FE0009A95F1F700008111F5CF8091E80085FF17 +:100FF0002CC040E050E060E170E017C081E08093D9 +:10100000E9008FEF9091E800815095FD06C095EDC5 +:101010009A95F1F700008111F5CF8091E80085FFE6 +:1010200014C040E050E068E070E0CE010E94B709D3 +:101030008091E8008E778093E80080E1FE01A2E5D0 +:10104000B1E001900D928A95E1F7DF91CF9108957B +:101050008091E301811109C00E94480B0E94A50BF9 +:101060008091E20084608093E20008951092E30191 +:10107000089508950C94F6200E94561A0E94FC20B0 +:101080000E94500E0C94460742E061EC81E00E9401 +:10109000C10A42E061EC82E00E94C10A42E061ECD8 +:1010A00083E00E94C10A42E161EC84E00C94C10A31 +:1010B0008091E601833009F455C030F4813071F03D +:1010C000823009F48EC008958A3009F47AC08B30DA +:1010D00009F460C0893009F09CC020C08091E5010E +:1010E000813A09F096C08091E800877F8093E800FC +:1010F0008091E9019091EA01892B21F460E182E578 +:1011000091E003C060E080E090E070E00E94020A9D +:101110008091E8008B778093E80008958091E50145 +:10112000813209F076C08091E9019091EA0100973F +:1011300019F0039709F06DC08091E800877F8093D4 +:10114000E8008091E80082FD05C08091E4018111F2 +:10115000F8CF5FC08091F100809362018091E80038 +:101160008B7753C08091E501813A09F052C080919C +:10117000E9019091EA01892B09F04BC08091E800C8 +:10118000877F8093E8008091E80080FFFCCF80910A +:101190000C0136C08091E5018132D9F58091E901D9 +:1011A0009091EA01892BA9F58091E800877F8093CF +:1011B000E8000E94F60A8091E70180930C010C94EC +:1011C000B9138091E501813221F58091E800877F94 +:1011D0008093E8000E94F60A8091E8018093630101 +:1011E00008958091E501813AA1F48091E800877F1C +:1011F0008093E8008091E80080FFFCCF809163013C +:101200008093F1008091E8008E778093E8000C9441 +:10121000F60A089584B7877F84BF0FB6F894A8951F +:1012200080916000886180936000109260000FBE22 +:1012300090E080E80FB6F89480936100909361008D +:101240000FBE0E949F0E0E94480B0E94A50B80912A +:10125000E20084608093E20078940E94300E0E9445 +:10126000A10E82E091E00E944B0E0E94E42080914A +:10127000E401853069F40E94181A8091E201882304 +:10128000B1F30E94421A882391F30E94A109EFCF83 +:101290000E94A70EECCF292F332723303105C9F048 +:1012A00060F42130310581F02230310509F041C070 +:1012B0008DE690E020E133E040C021323105E1F0DD +:1012C0002232310531F135C082E190E02DE733E083 +:1012D00034C099278130910549F028F0029749F5EB +:1012E000ECEDF2E005C0ECE0F3E002C0E4EFF2E088 +:1012F000849190E09F0121C06430D8F4E62FF0E0A3 +:10130000EE0FFF1FEE5DFE4F2081318189E090E0FE +:1013100014C0643070F470E0FB01EE0FFF1FE65E56 +:10132000FE4F20813181FB01EA5EFE4F808190E01B +:1013300004C080E090E020E030E0FA0131832083B7 +:10134000089580E189BD82E189BD09B400FEFDCF29 +:101350008091D8008F7D8093D8008091E0008260DA +:101360008093E0008091E00081FDFCCF0895CF9252 +:10137000DF92EF92FF920F931F93CF93DF93EC01D5 +:101380008B016A010E94150B811133C0C114D10475 +:1013900039F0F60180819181081B190BC80FD91F04 +:1013A000E12CF12C0115110519F18091E80085FD62 +:1013B00016C08091E8008E778093E800C114D104B4 +:1013C00049F0F60180819181E80EF91EF182E082F8 +:1013D00085E00FC00E94150B882321F30AC0899174 +:1013E0008093F10001501109FFEFEF1AFF0ADACFE5 +:1013F00080E0DF91CF911F910F91FF90EF90DF90F0 +:10140000CF9008952091EB013091EC01261737071A +:1014100048F06115710539F42091E8002E7720938A +:10142000E80001C0B901FC0120E06115710579F106 +:101430008091E4018823F1F18530F1F18091E80099 +:1014400083FD3CC08091E80082FD2EC08091E800C1 +:1014500080FFEBCF2091F3008091F20090E0922B7F +:101460006115710551F08830910538F42191209370 +:10147000F100615071090196F3CF21E0089709F05E +:1014800020E08091E8008E778093E800CECF211194 +:10149000CFCF0AC08091E401882361F0853061F0EC +:1014A0008091E80083FD0AC08091E80082FFF2CFBE +:1014B00080E0089582E0089583E0089581E0089532 +:1014C0002091EB013091EC012617370748F06115A8 +:1014D000710539F42091E8002E772093E80001C0CF +:1014E000B901FC0120E06115710591F18091E401E1 +:1014F000882309F440C0853009F43FC08091E8009A +:1015000083FD3DC08091E80082FD2FC08091E800FE +:1015100080FFE9CF2091F3008091F20090E0922BC0 +:101520006115710559F08830910540F4249120939C +:10153000F1003196615071090196F2CF21E00897D0 +:1015400009F020E08091E8008E778093E800CBCF0F +:101550002111CCCF0AC08091E401882361F085304D +:1015600061F08091E80083FD0AC08091E80082FF6D +:10157000F2CF80E0089582E0089583E0089581E04D +:101580000895982F973068F59093E900981739F0EF +:101590007091EC002091ED005091F00003C0242FD9 +:1015A000762F50E021FD02C09F5FECCF3091EB0021 +:1015B0003E7F3093EB003091ED003D7F3093ED00A6 +:1015C0003091EB0031603093EB007093EC0020938E +:1015D000ED005093F0002091EE0027FDE5CF80E074 +:1015E00008958F708093E90081E008958091E5016E +:1015F00087FF11C08091E80082FD05C08091E40161 +:101600008111F8CF11C08091E8008B770BC08091D9 +:10161000E401882349F08091E80080FFF8CF8091B1 +:10162000E8008E778093E80008952091E4003091DF +:10163000E50095E64091EC00842F817040FF23C0C7 +:101640008091E80080FD1DC08091E401882399F01D +:10165000853099F08091EB0085FD11C04091E40048 +:101660005091E5002417350729F3915011F09A01A4 +:10167000E1CF84E0089582E0089583E0089581E059 +:10168000089580E008954091E80042FFDDCF08957D +:101690000E94B60B0E94BE0BE0EEF0E080818160FC +:1016A0008083E8EDF0E080818F77808319BCA7ED1F +:1016B000B0E08C918E7F8C9380818F7E808310929E +:1016C000E30108950F931F93CF93DF930E94B60B0E +:1016D0000E94BE0BC8EDD0E088818F778883888117 +:1016E0008068888388818F7D888319BC1092E4018B +:1016F0001092E0011092E2011092E10100EE10E080 +:10170000F80180818B7F808388818160888342E0BB +:1017100060E080E00E94C10AE1EEF0E080818E7F0F +:101720008083E2EEF0E08081816080838081886048 +:101730008083F80180818E7F8083888180618883A7 +:10174000DF91CF911F910F910895E8EDF0E0808136 +:101750008F7E8083E7EDF0E080818160808384E08C +:1017600082BF81E08093E3010C94620BE8EDF0E02E +:1017700080818E7F80831092E20008951092DA00BB +:101780001092E10008951F920F920FB60F9211244C +:101790002F933F934F935F936F937F938F939F9379 +:1017A000AF93BF93EF93FF938091E10082FF0BC053 +:1017B0008091E20082FF07C08091E1008B7F8093DF +:1017C000E1000E942F0E8091DA0080FF1FC08091FF +:1017D000D80080FF1BC08091DA008E7F8093DA00F2 +:1017E0008091D90080FF0DC080E189BD82E189BD73 +:1017F00009B400FEFDCF81E08093E4010E94280837 +:1018000005C019BC1092E4010E9436088091E100E5 +:1018100080FF19C08091E20080FF15C08091E20036 +:101820008E7F8093E2008091E20080618093E200ED +:101830008091D80080628093D80019BC85E08093A5 +:10184000E4010E943A088091E10084FF30C0809159 +:10185000E20084FF2CC080E189BD82E189BD09B42A +:1018600000FEFDCF8091D8008F7D8093D8008091BD +:10187000E1008F7E8093E1008091E2008F7E809373 +:10188000E2008091E20081608093E2008091E001BB +:10189000882311F084E007C08091E30087FD02C037 +:1018A00081E001C083E08093E4010E943C088091C4 +:1018B000E10083FF29C08091E20083FF25C0809171 +:1018C000E100877F8093E10082E08093E401109241 +:1018D000E0018091E1008E7F8093E1008091E20041 +:1018E0008E7F8093E2008091E20080618093E2002D +:1018F00042E060E080E00E94C10A8091F0008860D0 +:101900008093F0000E943908FF91EF91BF91AF9151 +:101910009F918F917F916F915F914F913F912F9107 +:101920000F900FBE0F901F9018951F920F920FB639 +:101930000F9211242F933F934F935F936F937F9355 +:101940008F939F93AF93BF93CF93DF93EF93FF93C7 +:10195000C091E900CF708091EC00D82FD17080FD4C +:10196000D0E81092E9008091F000877F8093F0002A +:1019700078940E94D90C1092E9008091F000886060 +:101980008093F000CD2BCF70C093E900FF91EF91D1 +:10199000DF91CF91BF91AF919F918F917F916F9187 +:1019A0005F914F913F912F910F900FBE0F901F901D +:1019B00018951F93CF93DF93CDB7DEB7AA970FB6D5 +:1019C000F894DEBF0FBECDBFE5EEF1E08091F100EF +:1019D000819321E0ED3EF207C9F70E9458088091FB +:1019E000E80083FF24C18091E5019091E601492F31 +:1019F00050E04A30510508F01AC1FA01EA5AFF4F87 +:101A00000C948D22803881F0823809F010C18091C9 +:101A1000E9018F708093E9008091EB0085FB8827B6 +:101A200080F91092E90006C08091E1019091E201F5 +:101A3000911182609091E800977F9093E8008093E5 +:101A4000F1001092F100C8C0282F2D7F09F0EFC0DF +:101A5000882319F0823061F0EAC08091E70181307B +:101A600009F0E5C0933009F080E08093E2012BC0DB +:101A70008091E701811127C08091E9018F7009F4FD +:101A8000D6C08093E9002091EB0020FF1CC093306A +:101A900021F48091EB00806214C09091EB00906182 +:101AA0009093EB0021E030E0A90102C0440F551FE4 +:101AB0008A95E2F74093EA001092EA008091EB00E9 +:101AC00088608093EB001092E9008091E800877FA6 +:101AD00086C08111ACC01091E7011F778091E300AF +:101AE0008078812B8093E3008091E800877F80934A +:101AF000E8000E94F60A8091E80080FFFCCF809108 +:101B0000E30080688093E300111102C082E001C00D +:101B100083E08093E4018BC08058823008F087C056 +:101B20008091E7019091E8018C3D53E0950779F5AC +:101B300083E08A838AE289834FB7F894DE011396A3 +:101B400020E03EE051E2E32FF0E050935700E491B3 +:101B500020FF03C0E295EF703F5FEF708E2F90E0A3 +:101B6000EA3010F0C79601C0C0968D939D932F5F09 +:101B7000243149F74FBF8091E800877F8093E800C8 +:101B80006AE270E0CE0101960E94020A14C0AE0122 +:101B90004F5F5F4F6091E9010E944B09BC01892BA7 +:101BA00009F445C09091E800977F9093E8008981FF +:101BB0009A810E94600A8091E8008B778093E80008 +:101BC00036C08038A1F58091E800877F8093E800D7 +:101BD0008091E0018093F1008091E8008E778093FE +:101BE000E8000E94F60A23C0811121C08091E7011C +:101BF0009091E80199270297D4F48091E800877FBB +:101C00008093E8008091E7018093E0010E94F60A4A +:101C10008091E001811106C08091E30087FD02C040 +:101C200081E001C084E08093E4010E944408809137 +:101C3000E80083FF0AC08091E800877F8093E80076 +:101C40008091EB0080628093EB00AA960FB6F89427 +:101C5000DEBF0FBECDBFDF91CF911F9108950895D4 +:101C6000CF938091E4018823A1F0C091E900CF7067 +:101C70009091EC00892F817090FD80E8C82B109224 +:101C8000E9008091E80083FD0E94D90CCF70C093D9 +:101C9000E900CF91089590936901809368010895B8 +:101CA000E0916801F0916901309721F00190F08195 +:101CB000E02D099480E00895E0916801F0916901B8 +:101CC000309721F00280F381E02D09940895E0918E +:101CD0006801F0916901309721F00480F581E02DD1 +:101CE00009940895209166013091670128173907FA +:101CF00071F09093670180936601E0916801F09123 +:101D00006901309721F00680F781E02D099408954C +:101D100020916401309165012817390771F0909383 +:101D2000650180936401E0916801F0916901309749 +:101D300021F00084F185E02D0994089508950C9414 +:101D40009E0E0E945C1A0E940E040C94221BCF92DD +:101D5000DF92EF92FF920F931F93CF93DF93CDB754 +:101D6000DEB72B970FB6F894DEBF0FBECDBF0E9433 +:101D700026048BE6C82E81E0D82E00E010E0E02E8D +:101D8000802F0E941C05F60141916F01F82EF42668 +:101D9000B1F40F5F1F4F0E30110589F78FEF898364 +:101DA0008A831B820E94651A8160782F9D838C83B1 +:101DB00049815A816B818D810E944A0F40C0909168 +:101DC000CC0191FF04C08B870E9422058B8520E007 +:101DD00030E04F2D50E0922FBA01022E02C07595CF +:101DE00067950A94E2F760FF24C02E83EF8221E01A +:101DF00030E0690102C0CC0CDD1C9A95E2F790E05E +:101E00008C219D21892B09F420E028870E94651AE6 +:101E10008160782F9A8789874E815F8168858A855E +:101E20000E944A0FF801E559FE4F8081C826C08202 +:101E300006C02F5F3F4F2630310569F6AACF0E94BA +:101E4000091E0E94500E90916A018917A1F00E940C +:101E5000500E80936A012B960FB6F894DEBF0FBE2A +:101E6000CDBFDF91CF911F910F91FF90EF90DF9049 +:101E7000CF900C9446072B960FB6F894DEBF0FBE9A +:101E8000CDBFDF91CF911F910F91FF90EF90DF9029 +:101E9000CF900895CF93DF93CDB7DEB72B970FB6D2 +:101EA000F894DEBF0FBECDBF4F83588769877A870E +:101EB0008B87DE01119686E0FD0111928A95E9F784 +:101EC00085E0FE01379601900D928A95E1F74981F0 +:101ED0005A816B817C818D819E810E944D162B964B +:101EE0000FB6F894DEBF0FBECDBFDF91CF9108953E +:101EF000CF93C82F882309F4C1C0823859F40E94B7 +:101F0000500E81FDBBC089E30E94EA180E94A2190D +:101F100089E30CC0833879F40E94500E80FDAEC076 +:101F200083E50E94EA180E94A21983E50E942919FC +:101F3000CF910C94A219843859F40E94500E82FD5E +:101F40009DC087E40E94EA180E94A21987E4EECFA0 +:101F50008CEF8C0F813A48F48C2F0E94492081111C +:101F60008DC08C2F0E94EA18E3CF80E28C0F88305E +:101F700048F4C77081E001C0880FCA95EAF70E9453 +:101F80006B19D6CF8BE58C0F833078F4C53A29F0E6 +:101F9000C63A31F083E890E005C081E890E002C0E5 +:101FA00082E890E0CF910C94720E88E58C0F83311B +:101FB00008F064C0C83A39F1C93A41F1CA3A49F166 +:101FC000CB3A51F1CC3A59F1CD3A61F1C03B69F1CC +:101FD000CE3A71F1CF3A79F1C13B81F1C23B89F13F +:101FE000C33B91F1C43B99F1C53BA1F1C63BA9F1BB +:101FF000C73BB1F1C83BB9F1C93BC1F1CA3BC9F11B +:1020000080E090E038C082EE90E035C089EE90E04C +:1020100032C08AEE90E02FC085EB90E02CC086EBBA +:1020200090E029C087EB90E026C08CEC90E023C0C4 +:102030008DEC90E020C083E891E01DC08AE891E03B +:102040001AC082E991E017C084E991E014C081E2EE +:1020500092E011C083E292E00EC084E292E00BC0F5 +:1020600085E292E008C086E292E005C087E292E055 +:1020700002C08AE292E0CF910C94880ECF9108952D +:10208000882309F44BC0823859F40E94500E81FF16 +:1020900045C089E30E94EA180E94A21989E30CC096 +:1020A000833871F40E94500E80FF38C083E50E948F +:1020B000EA180E94A21983E50E9429190C94A2191A +:1020C000843859F40E94500E82FF28C087E40E9491 +:1020D000EA180E94A21987E4EFCF9CEF980F913A7B +:1020E00058F390E2980F983050F4877091E001C057 +:1020F000990F8A95EAF7892F0E947119DFCF9BE526 +:10210000980F933020F480E090E00C94720E885A7F +:10211000833120F480E090E00C94880E08958823A9 +:1021200021F00E946B190C94A2190895882321F0C4 +:102130000E9471190C94A2190895BF92CF92DF9258 +:10214000EF92FF920F931F93CF93DF9300D000D0B5 +:1021500000D0CDB7DEB77C0185E0F701DE01119636 +:1021600001900D928A95E1F7F70183819481892B83 +:1021700009F4DDC2908181818F3F19F49F3F09F4FA +:10218000D6C2F7010281258122952F7099838A8317 +:1021900089819A812E830E94A918182FB92E0E9436 +:1021A000A8180E946F17EB2DE295EF704E2F50E0AC +:1021B000FA01E05AFF4F2E810C948D228B2D807FE7 +:1021C0009B2D9F70F92E882319F0F29480EFF8224E +:1021D000002349F0FF2009F457C28F2D0E947B197C +:1021E0000E94A21951C2812F0E944010FF2009F4C1 +:1021F0009EC28F2D0E94811926960FB6F894DEBFDD +:102200000FBECDBFDF91CF911F910F91FF90EF9047 +:10221000DF90CF90BF900C94A2193B2D307F8B2D77 +:102220008F70303211F08295807F112319F01130B8 +:1022300021F12CC00023B9F0222309F490C12130F0 +:1022400009F08DC126960FB6F894DEBF0FBECDBF44 +:10225000DF91CF911F910F91FF90EF90DF90CF9082 +:10226000BF900C948B19222319F0213009F45FC21E +:102270008E830E948E198E8186C1002321F0223028 +:1022800008F055C26CC1211152C27DC1002321F05A +:10229000222309F464C1F8C1222309F474C109C2DC +:1022A0008B2D86958695837019F08130D1F03FC2D1 +:1022B000002321F0812F9B2D937002C080E090E0DD +:1022C00026960FB6F894DEBF0FBECDBFDF91CF913B +:1022D0001F910F91FF90EF90DF90CF90BF900C94E3 +:1022E000720E002321F0812F9B2D937002C080E09D +:1022F00090E026960FB6F894DEBF0FBECDBFDF91FB +:10230000CF911F910F91FF90EF90DF90CF90BF90F2 +:102310000C94880E812F002319F00E94111D02C019 +:102320000E94791D26960FB6F894DEBF0FBECDBF72 +:10233000DF91CF911F910F91FF90EF90DF90CF90A1 +:10234000BF900C94FE1D8B2D837009F075C0011198 +:10235000EEC1812F829586958770880F880F912F07 +:102360009F70C92ED12CE12CF12C082E04C0CC0C6E +:10237000DD1CEE1CFF1C0A94D2F714FF12C00FE004 +:1023800010E020E030E004C0000F111F221F331FB7 +:102390008A95D2F7C901B80160957095809590959E +:1023A00003C060E070E0CB014B2D4695469543702D +:1023B0004230C1F060F56C297D298E299F2941307A +:1023C00051F126960FB6F894DEBF0FBECDBFDF9158 +:1023D000CF911F910F91FF90EF90DF90CF90BF9022 +:1023E0000C9496176C297D298E299F2926960FB665 +:1023F000F894DEBF0FBECDBFDF91CF911F910F913B +:10240000FF90EF90DF90CF90BF900C94B2170E9496 +:102410009617C701B60126960FB6F894DEBF0FBE19 +:10242000CDBFDF91CF911F910F91FF90EF90DF9083 +:10243000CF90BF900C947A17002319F08B2D8170E8 +:1024400001C08695882309F472C1812F82958695F3 +:102450008770880F880F912F9F70C92ED12CE12C87 +:10246000F12C082E04C0CC0CDD1CEE1CFF1C0A94C1 +:10247000D2F714FF12C00FE010E020E030E004C0FB +:10248000000F111F221F331F8A95D2F7C901B8010F +:10249000609570958095909503C060E070E0CB01E9 +:1024A0004B2D4695469543704230C1F060F56C293E +:1024B0007D298E299F29413051F126960FB6F89437 +:1024C000DEBF0FBECDBFDF91CF911F910F91FF9067 +:1024D000EF90DF90CF90BF900C9470186C297D29FD +:1024E0008E299F2926960FB6F894DEBF0FBECDBF6A +:1024F000DF91CF911F910F91FF90EF90DF90CF90E0 +:10250000BF900C948C180E947018C701B6012696D3 +:102510000FB6F894DEBF0FBECDBFDF91CF911F91F4 +:102520000F91FF90EF90DF90CF90BF900C945418D4 +:10253000103FD1F118F4103E50F4A1C0123F09F43D +:1025400063C008F44CC0133F09F473C098C01F70F7 +:102550008B2D8F710023A1F00E94ED17812F2696FD +:102560000FB6F894DEBF0FBECDBFDF91CF911F91A4 +:102570000F91FF90EF90DF90CF90BF900C948F1051 +:102580000E940E18812F26960FB6F894DEBF0FBE5C +:10259000CDBFDF91CF911F910F91FF90EF90DF9012 +:1025A000CF90BF900C9496100023A9F02111BFC0CA +:1025B0008B2D8F7126960FB6F894DEBF0FBECDBF60 +:1025C000DF91CF911F910F91FF90EF90DF90CF900F +:1025D000BF900C943318223008F0A9C0E9CF002333 +:1025E000A9F08B2D8F7126960FB6F894DEBF0FBE23 +:1025F000CDBFDF91CF911F910F91FF90EF90DF90B2 +:10260000CF90BF900C94ED17002359F38B2D8F7151 +:1026100026960FB6F894DEBF0FBECDBFDF91CF91E7 +:102620001F910F91FF90EF90DF90CF90BF900C948F +:102630000E18002399F08B2D8F7126960FB6F89403 +:10264000DEBF0FBECDBFDF91CF911F910F91FF90E5 +:10265000EF90DF90CF90BF900C94D81726960FB6CE +:10266000F894DEBF0FBECDBFDF91CF911F910F91C8 +:10267000FF90EF90DF90CF90BF900C94CE17002387 +:10268000A9F0222309F4ADCF812F26960FB6F89436 +:10269000DEBF0FBECDBFDF91CF911F910F91FF9095 +:1026A000EF90DF90CF90BF900C94780F222309F425 +:1026B000ADCF812F26960FB6F894DEBF0FBECDBFEB +:1026C000DF91CF911F910F91FF90EF90DF90CF900E +:1026D000BF900C9440104B2D4F70612FC7010E948A +:1026E000AE0226960FB6F894DEBF0FBECDBFDF91C7 +:1026F000CF911F910F91FF90EF90DF90CF90BF90FF +:102700000C94F2164B2D4F70612FC70126960FB611 +:10271000F894DEBF0FBECDBFDF91CF911F910F9117 +:10272000FF90EF90DF90CF90BF900C94E30526963A +:102730000FB6F894DEBF0FBECDBFDF91CF911F91D2 +:102740000F91FF90EF90DF90CF90BF9008950E947F +:1027500088190E945D190E94A2190E94AE1E0E9453 +:10276000FE1D80E090E00E94720E80E090E00C94EC +:10277000880E0E9478190C94A7130E94A918292F7B +:1027800022952F702C3030F42A3048F42250223019 +:1027900078F405C02C3041F02F3031F009C0803E74 +:1027A00048F0803F29F406C093FB882780F90895FC +:1027B00080E0089581E00895CF93DF9300D000D0AA +:1027C0001F92CDB7DEB70F900F900F900F900F9024 +:1027D000DF91CF910895CF93DF9300D000D000D048 +:1027E000CDB7DEB726960FB6F894DEBF0FBECDBFCD +:1027F000DF91CF9108951F93CF93DF93C09179011B +:1028000016E080917A01C81799F0D0E01C9FF00182 +:102810001D9FF00D1124E558FE4F408151816281CA +:102820007381848195810E94EB132196C770E9CF53 +:10283000DF91CF911F9108954091AB015091AC0170 +:102840006091AD017091AE018091AF019091B001A6 +:102850000C94EB138091B00182958F7009F054C0F5 +:102860008091AD01882309F44FC080917901A09136 +:102870007A014091AE015091AF016091AB0170912E +:10288000AC01B6E08A1709F43FC090E0411551054C +:10289000C1F17F3F11F46F3FA1F1B89FF001B99FE3 +:1028A000F00D1124E558FE4F218127132AC0208105 +:1028B000261327C02281211124C0238134812417AB +:1028C000350710F421503109241B350B283C310504 +:1028D000C0F42091B0012F7020612093B00126E058 +:1028E000289FF001299FF00D1124E058FE4F8081B0 +:1028F0008F70806180838BEA91E00E949D100C9420 +:10290000FB1301968770BECF0895CF92DF92EF92AE +:10291000FF920F931F93CF93DF93CDB7DEB76297EC +:102920000FB6F894DEBF0FBECDBF8C0185E0F80175 +:10293000DE011D9601900D928A95E1F7D8014C9128 +:1029400011965C91119712966C918091AE019091C5 +:10295000AF01009709F475C13091AB017091AC01E2 +:102960007F3F19F43F3F09F46CC1F801C380D48064 +:10297000E090AD01EE2009F4BEC02091B001C81670 +:10298000D90628F0D601A81BB90BCD0104C080954B +:1029900090958C0D9D1DFF24F394883C910578F053 +:1029A000F12C207F09F0C4C07C2DD98AC88A89897E +:1029B0000E94DC138BEA91E00E949D10AFC0822F31 +:1029C000807F09F045C0571313C0431311C0611134 +:1029D0000FC02F7020612093B0010E941C148BEA5D +:1029E00091E00E949D108091B001F80185832EC076 +:1029F000CD2819F15F3F11F44F3FF9F0F62E611128 +:102A00001CC08091790120917A0136E0821709F487 +:102A10005BC090E0389FF001399FF00D1124E5581C +:102A2000FE4F7181571306C07081471303C0728136 +:102A3000711103C001968770E9CFF62E662309F461 +:102A40001CC18091B00181608093B001F12C15C14F +:102A5000571309C0431307C0611105C08091B0012D +:102A6000F8018583C8C04D875E878D859E856A8BFA +:102A70000E94BD136A898823D1F16623C1F1209198 +:102A8000B001822F82958F7090E0029774F0809150 +:102A9000AB019091AC0198878F831986DB86CA863B +:102AA0002C87CE0107960E949D1086E0F801ABEAC4 +:102AB000B1E001900D928A95E1F70E942A140E94DC +:102AC0001C14FF24F394D9C04D875E878D859E85A5 +:102AD0000E94A918292F22952F70223008F0C1C01A +:102AE0009F7009F0BBC0805E883008F4C6C0C80182 +:102AF0000E949D10E6CFC816D90608F453C0F6010F +:102B0000E81BF90BCF01883C910508F450C0F12C6B +:102B10007C2DD98AC88A89890E94DC13EBEAF1E00E +:102B200086E0DF011D928A95E9F70E941C14A5C07A +:102B3000571314C0431312C0611110C08091B0012B +:102B4000F8018583C8010E949D1086E0EBEAF1E060 +:102B5000DF011D928A95E9F7FE2C8FC04D875E87B5 +:102B60008D859E856A8B0E94BD136A89882309F42E +:102B7000BECF662309F4BBCF2091B001822F82958E +:102B80008F7090E002970CF490CF8091AB01909100 +:102B9000AC019A8389831B82DD82CC822E83CE0195 +:102BA000019681CF809590958C0D9D1DACCFF62E12 +:102BB000662309F49CCF571333C0431331C02091CF +:102BC000B00120FD24C0822F82958F70482F50E0E5 +:102BD00041155105E1F0D80115962C9315974F300A +:102BE000510549F08F5F982F9295907F822F8F70BB +:102BF000892B15968C93C8010E949D1086E0F801E0 +:102C0000ABEAB1E001900D928A95E1F78ECF86E0B4 +:102C1000F801ABEAB1E001900D928A95E1F72DC081 +:102C20004D875E878D859E850E94BD1381113DCFA6 +:102C30008091B00181608093B001C8010E949D1015 +:102C40001CC0662309F453CF4D875E878D859E8512 +:102C50000E94BD13882309F44ACF27CF811143CFA7 +:102C60000CC0243008F043CF9F7009F43CCFD8014A +:102C700015969C91907F09F036CF8F2D62960FB6F6 +:102C8000F894DEBF0FBECDBFDF91CF911F910F91A2 +:102C9000FF90EF90DF90CF9008951F93CF93DF9335 +:102CA000CDB7DEB72C970FB6F894DEBF0FBECDBF01 +:102CB0004F83588769877A878B879C87CE010796D1 +:102CC0000E948514882371F08A859B85892B09F4DD +:102CD00041C088858F3F09F065C08F818F3F09F023 +:102CE00061C038C086E0FE013796DE011196019082 +:102CF0000D928A95E1F76A857B856115710551F121 +:102D0000FF81E885EF3F11F4FF3F21F120917A0127 +:102D100030E0C9010196877099274091790150E010 +:102D20008417950709F447C0F983EA837D836C8390 +:102D300096E0929FD001939FB00D1124A558BE4FED +:102D4000FE01319601900D929A95E1F780937A01F8 +:102D50000E94FB1316E08091790190917A01891706 +:102D6000B9F1189FC001112485589E4F0E94851407 +:102D7000882371F1E09179011E9FF0011124E5583B +:102D8000FE4F4081518162817381848195810E94CF +:102D9000EB138091790190E00196877099278093D9 +:102DA0007901D9CF4F81588569857A858B859C8536 +:102DB0000E94EB13CFCF0E94B91310927A011092A8 +:102DC0007901EBEAF1E086E0DF011D928A95E9F7EF +:102DD0002C960FB6F894DEBF0FBECDBFDF91CF911A +:102DE0001F910895EF92FF920F931F93CF93DF935C +:102DF0008C01892B09F46CC0F12CEE24E394E801DA +:102E00002196F8018491843740F4843008F051C051 +:102E1000813081F0823019F15BC0853709F444C0FC +:102E2000A8F19CE7980F903708F052C08F770E9466 +:102E3000401041C00E5F1F4FFE01849190E2980F39 +:102E4000983050F48770FE2D01C0FF0F8A95EAF785 +:102E50008F2F0E947B1914C00E94780F2DC00E5F27 +:102E60001F4FFE01849190E2980F983060F48770B4 +:102E7000FE2D01C0FF0F8A95EAF78F2F0E9481195E +:102E80000E94A21919C00E94401016C00E5F1F4F69 +:102E9000FE01C491CC2381F08FE99FE00197F1F707 +:102EA00000C00000C150F6CF0E5F1F4FFE01F4902E +:102EB00003C00E94780F8E018F2D882309F49FCFC5 +:102EC000EFE9FFE03197F1F700C000008150F5CF46 +:102ED000DF91CF911F910F91FF90EF90089508958A +:102EE0006093B5017093B6018093B7019093B801D8 +:102EF0000C94A7130F931F930091B5011091B60185 +:102F00002091B7013091B801DC01CB01802B912BCE +:102F1000A22BB32B8093B5019093B601A093B70178 +:102F2000B093B8011F910F910C94A7130F931F93A7 +:102F30000091B5011091B6012091B7013091B8010F +:102F4000DC01CB0180239123A223B3238093B5011D +:102F50009093B601A093B701B093B8011F910F9160 +:102F60000C94A7130F931F930091B5011091B60114 +:102F70002091B7013091B801DC01CB018027912766 +:102F8000A227B3278093B5019093B601A093B70110 +:102F9000B093B8011F910F910C94A7131092B10137 +:102FA0001092B2011092B3011092B4010C94A713C5 +:102FB00041E050E060E070E004C0440F551F661F20 +:102FC000771F8A95D2F74093B1015093B201609375 +:102FD000B3017093B4010C94A71341E050E060E09A +:102FE00070E004C0440F551F661F771F8A95D2F703 +:102FF0008091B1019091B201A091B301B091B4015F +:10300000482B592B6A2B7B2B4093B1015093B20173 +:103010006093B3017093B4010C94A71341E050E0A6 +:1030200060E070E004C0440F551F661F771F8A954B +:10303000D2F740955095609570958091B10190912F +:10304000B201A091B301B091B401482359236A237E +:103050007B234093B1015093B2016093B30170930D +:10306000B4010C94A71341E050E060E070E004C0AC +:10307000440F551F661F771F8A95D2F78091B101C3 +:103080009091B201A091B301B091B40148275927A2 +:103090006A277B274093B1015093B2016093B3013B +:1030A0007093B4010C94A7130F931F930091B10177 +:1030B0001091B2012091B3013091B401DC01CB0138 +:1030C000802B912BA22BB32B8093B1019093B20153 +:1030D000A093B301B093B4011F910F910C94A71367 +:1030E0000F931F930091B1011091B2012091B30190 +:1030F0003091B401DC01CB0180239123A223B323BF +:103100008093B1019093B201A093B301B093B40145 +:103110001F910F910C94A7130F931F930091B1016E +:103120001091B2012091B3013091B401DC01CB01C7 +:1031300080279127A227B3278093B1019093B201F2 +:10314000A093B301B093B4011F910F910C94A713F6 +:103150000895CF92DF92EF92FF920F931F93CF9338 +:10316000DF938C01C090B101D090B201E090B30127 +:10317000F090B4018091B5019091B601A091B70192 +:10318000B091B801C82AD92AEA2AFB2ACFE1D0E0B7 +:10319000D701C6010C2E04C0B695A79597958795C3 +:1031A0000A94D2F780FF07C0B8018C2F0E9407064F +:1031B0008130910531F4219758F7B80180E00E94E1 +:1031C0000706DF91CF911F910F91FF90EF90DF9055 +:1031D000CF90089590910C019923F1F090910D01F9 +:1031E0009923D1F0982F9695969596959F3080F5D6 +:1031F000E0910E01F0910F01E90FF11D877021E0C0 +:1032000030E0A90102C0440F551F8A95E2F7CA01B8 +:103210009181892B8183089520910E0130910F01B6 +:10322000F90132969FEF40E05191851789F09F3F59 +:1032300019F4511101C0942F4F5F4E30A9F79F3FF1 +:1032400039F0F901E90FF11D97FDFA958283089590 +:10325000089590910C019923F9F090910D01992313 +:10326000D9F0982F9695969596959F3028F5E091F0 +:103270000E01F0910F01E90FF11D877021E030E0A0 +:10328000A90102C0440F551F8A95E2F7CA01809533 +:10329000918189238183089520910E0130910F013E +:1032A000F9013296205F3F4F9081891301C010824F +:1032B0003196E217F307C1F7089581E090E0E091BD +:1032C0000E01F0910F01E80FF91F10820196803175 +:1032D0009105A9F708959091CB01892B8093CB019B +:1032E000089580959091CB0189238093CB01089517 +:1032F0001092CB0108959091CA01892B8093CA0145 +:10330000089580959091CA0189238093CA010895F8 +:103310001092CA0108958093B90108951092B901DD +:10332000089580910E0190910F01FC0131969C014E +:10333000205F3F4F80E0919191118F5FE217F3077B +:10334000D1F70895E0910E01F0910F018091CB012A +:103350008083E0910E01F0910F0190818091CA016C +:10336000892B80838091B901882361F0E0910E015F +:10337000F0910F019081892B80830E949119811116 +:103380001092B90180910E0190910F010C945C0E86 +:10339000CF92DF92EF92FF926C01EE24FF24C114D2 +:1033A000D104E104F10421F0C701B60120E101C01C +:1033B00020E0C72ED82EE92EFF24C114D104E10449 +:1033C000F10419F0285FC701B6016B017C0154E0DC +:1033D000F694E794D794C7945A95D1F7C114D104C1 +:1033E000E104F10419F02C5FC701B6016B017C0107 +:1033F00042E0F694E794D794C7944A95D1F7C11464 +:10340000D104E104F10419F02E5FC701B601DC011B +:10341000CB01B695A79597958795892B8A2B8B2BF2 +:1034200009F02F5F822FFF90EF90DF90CF900895EB +:103430008091E401843011F120E488E190E00FB63E +:10344000F894A895809360000FBE2093600083B726 +:10345000817F846083BF83B7816083BF78948895C0 +:1034600083B78E7F83BF0FB6F894A89580916000D4 +:10347000886180936000109260000FBE08950895E7 +:103480000C943F1ACF930E94401A0E9426040E9477 +:103490003F1AC0E08C2F0E941C05811104C0CF5F31 +:1034A000CE30C1F701C081E0CF9108950E94B913D9 +:1034B0000E94500E0C94460782E084BD93E095BDB7 +:1034C0009AEF97BD80936E0008952FB7F89480917E +:1034D000CD019091CE01A091CF01B091D0012FBF2D +:1034E0000895CF92DF92EF92FF920F931F932FB721 +:1034F000F8944091CD015091CE016091CF0170912F +:10350000D0012FBF6A017B01EE24FF248C0120E053 +:1035100030E0C016D106E206F30610F4415051091E +:103520009A01281B390BC9011F910F91FF90EF9051 +:10353000DF90CF9008951F920F920FB60F92112433 +:103540008F939F93AF93BF938091CD019091CE01C4 +:10355000A091CF01B091D0010196A11DB11D809322 +:10356000CD019093CE01A093CF01B093D001BF9134 +:10357000AF919F918F910F900FBE0F901F90189554 +:103580000E94480BF8942FEF87EA91E62150804083 +:103590009040E1F700C0000087E090EBDC018093F1 +:1035A000ED019093EE01A093EF01B093F0019CE048 +:1035B00088E10FB6F894A895809360000FBE9093B1 +:1035C0006000FFCFEF92FF920F931F93CF93DF9393 +:1035D000D82FC0E08C2F0E941C0500E010E0E82EE0 +:1035E000F12CC701002E02C0959587950A94E2F749 +:1035F00080FD06C00F5F1F4F0630110591F709C00F +:10360000602F7C2F80E00E94E4058D13F3CF81E0D2 +:1036100004C0CF5FCE30F1F680E0DF91CF911F91F3 +:103620000F91FF90EF900895CF93C82F8CE20E94E6 +:10363000E21A882321F08C2FCF910C94E21A80E0BB +:10364000CF910895CF930E94691C811102C00E94FE +:103650004F1CC5E6C15049F00E9426048FE39CE947 +:103660000197F1F700C00000F5CF89E20E94141B1A +:10367000811113C18AE20E94141B81110E944F1C08 +:1036800085E00E94141B81110E94C01A0E94741CC4 +:103690008093CC0187E00E94141B8823A9F18BE161 +:1036A0000E94141B882351F08091CC0181FB2227BA +:1036B00020F991E0922790FB81F90EC08EE00E94E4 +:1036C000141B882361F08091CC0182FB222720F912 +:1036D00091E0922790FB82F98093CC0115C080E1A4 +:1036E0000E94141B9091CC01882341F093FB222768 +:1036F00020F981E0822780FB93F904C0892F80950F +:1037000080FB90F99093CC018091CC010E94781CB1 +:103710000E94861C8093DE0180EE0E94141B882389 +:1037200041F08091DE01982F909590FB80F9809375 +:10373000DE0189E30E94141B882359F08091DE0189 +:1037400081FB222720F991E0922790FB81F9809359 +:10375000DE0182EE0E94141B882359F08091DE0165 +:1037600082FB222720F991E0922790FB82F9809337 +:10377000DE0186EE0E94141B882359F08091DE0141 +:1037800083FB222720F991E0922790FB83F9809315 +:10379000DE0183EE0E94141B882359F08091DE0124 +:1037A00084FB222720F991E0922790FB84F98093F3 +:1037B000DE0185E30E94141B882359F08091DE010D +:1037C00085FB222720F991E0922790FB85F98093D1 +:1037D000DE0181E30E94141B882359F08091DE01F1 +:1037E00086FB222720F991E0922790FB86F98093AF +:1037F000DE0181E10E94141B882359F08091DE01D3 +:1038000087FB222720F991E0922790FB87F980938C +:10381000DE018091DE010E948A1C8091DE0187FB1F +:10382000882780F980930D0187E20E94141BC82F1E +:103830008EE10E94141B8111C2608FE10E94141B53 +:103840008111C46080E20E94141B8111C86081E272 +:103850000E94141B8111C06182E20E94141B81111D +:10386000C06283E20E94141B8111C06484E20E9442 +:10387000141B882311F0C06802C0CC2329F08C2FC0 +:103880000E94811C6C2F03C00E947D1C682F70E079 +:1038900080E090E0CF910C947017CF9108956DEE79 +:1038A0007EEF80E090E00E94C32260E082E090E042 +:1038B0000E94B52260E083E090E00E94B52260E0C3 +:1038C00084E090E00E94B52260E085E090E00C94F6 +:1038D000B52280E090E00E94AF2221E08D3E9E4F15 +:1038E00009F020E0822F089582E090E00C94A72256 +:1038F000682F82E090E00C94B52283E090E00C9475 +:10390000A722682F83E090E00C94B52284E090E039 +:103910000C94A722682F84E090E00C94B52280914B +:10392000D30180FF0BC06091130185E0689FB00157 +:10393000112475956795759567952BC081FF09C012 +:103940006091130185E0689FB0011124759567951A +:1039500020C082FF07C06091130185E0689FB0011D +:10396000112417C09091D4019923D1F060911201D4 +:10397000961788F72091130185E0289F9001112464 +:10398000929FA001939F500D112470E0CA010E94E4 +:1039900079226038710540F46115710519F406C08B +:1039A00065E070E0862F08958FE7089581E008951F +:1039B0008091D30180FF08C06091110170E075957E +:1039C00067957595679521C081FF06C060911101CB +:1039D00070E07595679519C082FF04C06091110170 +:1039E00070E010C09091D401992399F0609110017A +:1039F0009617A0F780911101899FC001112470E0F2 +:103A00000E9479226038710540F46115710519F43E +:103A100006C061E070E0862F08958FE7089581E089 +:103A20000895803F21F40E948F1C819504C0813F3E +:103A300029F40E948F1C8093D7010895823F21F4BE +:103A40000E948F1C819504C0833F29F40E948F1C23 +:103A50008093D6010895893F19F40E94D81C05C0AF +:103A60008A3F31F40E94D81C81958093D801089533 +:103A70008B3F21F40E94D81C819504C08C3F29F40F +:103A80000E94D81C8093D9010895843F21F480912D +:103A9000D501816017C0853F21F48091D5018260F6 +:103AA00011C0863F21F48091D50184600BC0873F0F +:103AB00021F48091D501886005C0883F31F4809160 +:103AC000D50180618093D50108958D3F21F48091C7 +:103AD000D30181600BC08E3F21F48091D3018260BD +:103AE00005C08F3F29F48091D30184608093D30176 +:103AF0000895803F39F48091D70187FF6CC0109200 +:103B0000D70169C0813F29F48091D7011816BCF311 +:103B100062C09091D601823F29F497FF5CC0109259 +:103B2000D60159C0833F19F41916CCF354C0893F0C +:103B300041F48091D80118160CF04DC01092D801B4 +:103B40004AC08A3F29F48091D80187FF44C0F6CF4C +:103B50008B3F39F48091D90187FF3DC01092D90184 +:103B60003AC08C3F29F48091D9011816BCF333C0B8 +:103B7000843F21F48091D5018E7F17C0853F21F4C9 +:103B80008091D5018D7F11C0863F21F48091D501B0 +:103B90008B7F0BC0873F21F48091D501877F05C0C3 +:103BA000883F31F48091D5018F7E8093D50113C079 +:103BB0008D3F21F48091D3018E7F0BC08E3F21F485 +:103BC0008091D3018D7F05C08F3F29F48091D3016F +:103BD0008B7F8093D3018091D60181110EC080919B +:103BE000D70181110AC08091D801811106C080914E +:103BF000D901811102C01092D401089585ED91E0A0 +:103C00000E94670E0E94651A9093D2018093D101A1 +:103C100008951F93CF93DF938091D1019091D201AA +:103C20000E94711AAC019091D401992321F0209146 +:103C3000140130E006C0209115018AE0289F900110 +:103C400011244217530708F485C08091D601C09112 +:103C5000D701D091D8011091D901811107C0C111AC +:103C600075C0D11173C0111171C074C09F3F19F09C +:103C70009F5F9093D401181624F40E948F1C8093A8 +:103C8000D6018091D60187FF05C00E948F1C8195C7 +:103C90008093D6011C1624F40E948F1C8093D701B8 +:103CA0008091D70187FF05C00E948F1C819580936A +:103CB000D7016091D601662331F1C091D701CC23A1 +:103CC00011F1062E000C770B880B990B0E948021B6 +:103CD00023E333E343E35FE30E94E4210E944821AE +:103CE0006093D6016C2FCC0F770B880B990B0E9439 +:103CF000802123E333E343E35FE30E94E4210E9456 +:103D000048216093D7011D1624F40E94D81C80938B +:103D1000D8018091D80187FF05C00E94D81C8195E9 +:103D20008093D801111624F40E94D81C8093D901E5 +:103D30008091D90187FF05C00E94D81C819580938E +:103D4000D901DF91CF911F910C94FE1D9F3F09F087 +:103D50008FCFA0CFDF91CF911F910895E5EDF1E0D6 +:103D600085E0DF011D928A95E9F71092D401109247 +:103D7000D3010895833081F128F4813059F08230E5 +:103D8000D1F00895853009F449C0B8F1863009F4BE +:103D900056C0089580911501262F30E0280F311D5F +:103DA0002F3F310524F4680F6093150108958FEFBC +:103DB00080931501089580911401262F30E0280F7B +:103DC000311D2F3F310524F4680F609314010895CD +:103DD0008FEF80931401089580911301262F30E016 +:103DE000280F311D2F3F310524F4680F6093130114 +:103DF00008958FEF80931301089580911201262F6B +:103E000030E0280F311D2F3F310524F4680F6093F7 +:103E1000120108958FEF809312010895809111018E +:103E2000262F30E0280F311D2F3F310524F4680F75 +:103E30006093110108958FEF80931101089580918F +:103E40001001262F30E0280F311D2F3F310524F4BB +:103E5000680F6093100108958FEF8093100108950B +:103E6000833011F128F4813049F0823091F00895C7 +:103E7000853081F120F18630C1F1089580911501DE +:103E8000681720F4861B8093150108951092150180 +:103E9000089580911401681720F4861B8093140103 +:103EA000089510921401089580911301681720F469 +:103EB000861B809313010895109213010895809139 +:103EC0001201681720F4861B809312010895109246 +:103ED0001201089580911101681720F4861B8093C8 +:103EE0001101089510921101089580911001681731 +:103EF00020F4861B809310010895109210010895FC +:103F00000F931F938D3109F46BC008F03FC08E30C2 +:103F100009F47DC0C0F4873009F46EC068F48630BF +:103F200009F0AFC08091CC01817F8E7F8093CC015E +:103F300081E08093DB01A6C0883009F458C08B3043 +:103F400009F49BC09EC0863109F497C078F4803193 +:103F500009F470C0813109F094C00E94B9139091A6 +:103F60000D0181E0892780930D0187C0893109F413 +:103F700084C08B3109F085C08091CC0181FB222760 +:103F800020F991E0922790FB81F94AC0853309F42A +:103F90005BC048F4873209F457C008F45AC089322C +:103FA00009F452C06EC0833438F48A3308F067C015 +:103FB000883309F462C065C0833409F445C088348D +:103FC00009F05FC00E94B9130FEF13ED20E3015019 +:103FD00010402040E1F700C000000E94C01A4DC010 +:103FE0000E9402210E94500E0E94460746C00E9475 +:103FF000741C0E94861C41C09091CC01892F817055 +:1040000090FF12C0917F9E7F9093CC013BC0809126 +:10401000CC0182FB222720F991E0922790FB82F9C4 +:104020008093CC01992349F18091CC0181608093E8 +:10403000CC0123C08091CC0183FB222720F991E0A1 +:10404000922790FB83F9ECCF61E070E080E090E094 +:1040500010C08D5141E050E060E070E08A019B01AA +:1040600004C0000F111F221F331F8A95D2F7C90108 +:10407000B8010E9470170E94B91381E003C08953F0 +:10408000E9CF80E01F910F91089580E008950C948E +:104090004520CF93C82F8091DB01813079F018F053 +:1040A0008230E9F187C0E0910E01F0910F0180812B +:1040B000813169F0823209F07FC009C0E0910E01C0 +:1040C000F0910F018081813111F0823261F48C2FE7 +:1040D0000E944720811104C08C2F0E94801F1DC0A8 +:1040E00081E090E01AC08C2F0E944520811114C0FD +:1040F000C43179F048F4CB3079F0C03109F060C0B8 +:1041000082E08093DB0108C0C93219F0C83321F086 +:1041100057C01092DB0154C081E0817053C0C93296 +:1041200089F118F5C43171F1A8F4C73009F046C01F +:104130008AE08093150194E19093140193E09093A9 +:1041400013018093120188E08093110188E280932B +:10415000100134C0CE51C63088F5EC2FF0E0E65D9A +:10416000FE4F80818093DA0129C0CE34E9F020F43B +:10417000CB3421F56AE013C0C13579F0C235F1F4D2 +:1041800061E00DC08091DA01882319F01092DA0104 +:1041900015C081E08093DB0115C061E006C080910D +:1041A000DA010E94BA1E0AC06AE08091DA010E9418 +:1041B000301F04C01092DB0180E004C081E002C027 +:1041C00080E0ABCFCF910895E1E8F0E08081886096 +:1041D00080838081816080838FB7F89493E090938F +:1041E000890090ED909388008FBF0895EFE6F0E08E +:1041F0008081826080830895EFE6F0E080818D7F8A +:1042000080830895EFE6F0E0908182E08927808343 +:1042100008951F920F920FB60F9211242F933F9380 +:104220004F935F936F937F938F939F93AF93BF93BE +:10423000EF93FF938091DC019091DD0101969093C3 +:10424000DD018093DC01811103C082E00E944607FA +:10425000E091DD01E695E695F0E0E657FB4FE4914D +:104260008091DC018E1303C080E00E944607FF911D +:10427000EF91BF91AF919F918F917F916F915F91DE +:104280004F913F912F910F900FBE0F901F90189557 +:104290000E944F216894B1110C94DE2108950E9470 +:1042A000C32188F09F5798F0B92F9927B751B0F0E4 +:1042B000E1F0660F771F881F991F1AF0BA95C9F7AA +:1042C00014C0B13091F00E94DD21B1E008950C944A +:1042D000DD21672F782F8827B85F39F0B93FCCF3FD +:1042E000869577956795B395D9F73EF49095809527 +:1042F000709561957F4F8F4F9F4F0895E89409C047 +:1043000097FB3EF490958095709561957F4F8F4F08 +:104310009F4F9923A9F0F92F96E9BB279395F6951E +:10432000879577956795B795F111F8CFFAF4BB0F9C +:1043300011F460FF1BC06F5F7F4F8F4F9F4F16C000 +:10434000882311F096E911C0772321F09EE8872F8A +:10435000762F05C0662371F096E8862F70E060E046 +:104360002AF09A95660F771F881FDAF7880F9695BF +:10437000879597F9089557FD9058440F551F59F0A8 +:104380005F3F71F04795880F97FB991F61F09F3F42 +:1043900079F087950895121613061406551FF2CF6B +:1043A0004695F1DF08C0161617061806991FF1CFBB +:1043B00086957105610508940895E894BB276627E2 +:1043C0007727CB0197F908950E94F7210C94682272 +:1043D0000E945A2238F00E94612220F0952311F0A9 +:1043E0000C9451220C94572211240C94DE210E942B +:1043F000BB2170F3959FC1F3950F50E0551F629F4D +:10440000F001729FBB27F00DB11D639FAA27F00D2D +:10441000B11DAA1F649F6627B00DA11D661F829F54 +:104420002227B00DA11D621F739FB00DA11D621F39 +:10443000839FA00D611D221F749F3327A00D611D56 +:10444000231F849F600D211D822F762F6A2F112438 +:104450009F5750409AF0F1F088234AF0EE0FFF1F6B +:10446000BB1F661F771F881F91505040A9F79E3FC2 +:10447000510580F00C9451220C94DE215F3FE4F34F +:10448000983ED4F3869577956795B795F795E79518 +:104490009F5FC1F7FE2B880F911D9695879597F921 +:1044A000089597F99F6780E870E060E008959FEFB6 +:1044B00080EC089500240A941616170618060906BB +:1044C000089500240A94121613061406050608958A +:1044D000092E0394000C11F4882352F0BB0F40F412 +:1044E000BF2B11F460FF04C06F5F7F4F8F4F9F4F52 +:1044F000089597FB072E16F4009407D077FD09D096 +:104500000E94932207FC05D03EF4909581959F4F21 +:104510000895709561957F4F0895EE0FFF1F0590E8 +:10452000F491E02D0994AA1BBB1B51E107C0AA1FFF +:10453000BB1FA617B70710F0A61BB70B881F991F44 +:104540005A95A9F780959095BC01CD010895F999E8 +:10455000FECF92BD81BDF89A992780B50895A8E154 +:10456000B0E042E050E00C94CA22262FF999FECF29 +:104570001FBA92BD81BD20BD0FB6F894FA9AF99A80 +:104580000FBE019608950E94B522272F0C94B622E3 +:10459000DC01CB01FC01F999FECF06C0F2BDE1BD03 +:1045A000F89A319600B40D9241505040B8F70895F2 +:0445B000F894FFCFAD +:1045B40020024707D707B2077E074A070101BA015D +:1045C40028080A03140A3F4D36394B04FE03C80376 +:1045D4008F0322033B0354036D0301020304050606 +:0445E40007080900BB +:00000001FF diff --git a/keyboard/ergodox_ez/keymaps/keymap_default_osx_highres.png b/keyboard/ergodox_ez/keymaps/default_osx/default_osx_highres.png similarity index 100% rename from keyboard/ergodox_ez/keymaps/keymap_default_osx_highres.png rename to keyboard/ergodox_ez/keymaps/default_osx/default_osx_highres.png diff --git a/keyboard/ergodox_ez/keymaps/keymap_default_osx.c b/keyboard/ergodox_ez/keymaps/default_osx/keymap.c similarity index 99% rename from keyboard/ergodox_ez/keymaps/keymap_default_osx.c rename to keyboard/ergodox_ez/keymaps/default_osx/keymap.c index 9d7364d378..81b49ceff9 100644 --- a/keyboard/ergodox_ez/keymaps/keymap_default_osx.c +++ b/keyboard/ergodox_ez/keymaps/default_osx/keymap.c @@ -158,12 +158,12 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) }; // Runs just one time when the keyboard initializes. -void * matrix_init_user(void) { +void matrix_init_user(void) { }; // Runs constantly in the background, in a loop. -void * matrix_scan_user(void) { +void matrix_scan_user(void) { uint8_t layer = biton32(layer_state); diff --git a/keyboard/ergodox_ez/keymaps/default_osx/readme.md b/keyboard/ergodox_ez/keymaps/default_osx/readme.md new file mode 100644 index 0000000000..aa749aac90 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/default_osx/readme.md @@ -0,0 +1,8 @@ +# The OSX Friendly Version of the Default Firmware + +So, I took the default firmware and just made a couple of tweaks that make it easier to use with OS X: + +1. The Cmd key is now on the right side, making Cmd+Space easier. +2. The media keys work on OSX (But not on Windows). + +![default osx](default_osx_highres.png) diff --git a/keyboard/ergodox_ez/keymaps/dragon788/dragon788.hex b/keyboard/ergodox_ez/keymaps/dragon788/dragon788.hex new file mode 100644 index 0000000000..1ca511fe10 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/dragon788/dragon788.hex @@ -0,0 +1,1131 @@ +:100000000C94B9020C9400030C9400030C940003AC +:100010000C9400030C9400030C9400030C94000354 +:100020000C9400030C9400030C94170C0C94E90C32 +:100030000C9400030C9400030C9400030C94000334 +:100040000C9400030C945D210C9400030C940003A9 +:100050000C9400030C94EF1A0C9400030C9400030E +:100060000C9400030C9400030C9400030C94000304 +:100070000C9400030C9400030C9400030C940003F4 +:100080000C9400030C9400030C9400030C940003E4 +:100090000C9400030C9400030C9400030C940003D4 +:1000A0000C9400030C9400030C940003560D780D7F +:1000B0006B0E780D6B0EBD0DE00D6B0E350E480E00 +:1000C0003211321161116111A411DE11EB13EB1326 +:1000D000F711EB13EC12EC12BF13EB13EB13D61367 +:1000E0000000F0A12E002B002971E100C1000000EA +:1000F0001E00140004001D003500E2001F001A005D +:1001000016001B0034004C00200008000700060009 +:1001100050002A0021001500090019004F824D00EF +:10012000220017000A00050000006500E3000154EA +:100130000000007F00004A000354025400000077D2 +:1001400000004B0023001C000B001100000029716F +:10015000240018000D00100052824E0025000C00F3 +:100160000E00360051002C00260012000F00370050 +:100170002F002800270013003300380030002B71B7 +:100180002D0031003471E500C100000001000100C4 +:1001900001000100010000003A001E0220022202BC +:1001A000010001003B001F022102230201000100A7 +:1001B0003C002F0226022F00010001003D0030020A +:1001C00027023000010001003E00310235003502F7 +:1001D000000001000100010000000100000001001A +:1001E0000100010000000100000001003F0052007A +:1001F000510024020000B2004000240021001E0033 +:10020000010001004100250022001F00370001000D +:1002100042002600230020002700010043002502A1 +:100220002E0231002E0001004400450001000100B3 +:100230000100000000500100010001000100000069 +:1002400001000100010001000100AB0001000100FC +:10025000F20001000100F5000100F500F0000100CE +:100260000100F4000100F400F10001000100AE0003 +:1002700001000100F3000100000001000100010085 +:10028000000001000000AC000100010000000100BE +:100290000000A90001000100F200010000000100BF +:1002A0000100F400F10001000100A8000100F500C8 +:1002B000F00001000100B70001000100F30001009F +:1002C0000100B60001000100010001000100AA00C8 +:1002D0000100010001000100010000000000000019 +:1002E000000000000000000000001E0014000400D8 +:1002F0000000000000001F001A0016000000190096 +:100300000000200008000700000006000000210097 +:1003100015000900000000000000220017000A007C +:100320000000C40000000000000000000000000009 +:100330000100000000000000000001000000230098 +:100340001C000B00000001000000240018000D003C +:1003500001000100000025000C000E00010010004B +:100360000000260012000F0000001100000027000E +:100370001300330000000000010001002F003400D2 +:100380000000000016034500720067006F00440083 +:100390006F007800200045005A0000001603450059 +:1003A000720067006F0044006F0078002000450075 +:1003B0005A0000000403090409026D00040100A0B2 +:1003C000FA090400000103010100092111010001E3 +:1003D000223F000705810308000A09040100010308 +:1003E000010200092111010001224D0007058203CD +:1003F00008000A090402000103000000092111019C +:1004000000012236000705830308000A09040300DF +:100410000103000000092111010001223900070534 +:1004200084031000011201100100000008EDFE0716 +:100430001301000102000105010906A101050719C8 +:10044000E029E715002501950875018102050819C5 +:100450000129059505750191029501750391010525 +:10046000071900297715002501957875018102C0CB +:1004700005010980A101850216010026B7001A01B5 +:10048000002AB700751095018100C0050C0901A173 +:10049000018503160100269C021A01002A9C0275A0 +:1004A0001095018100C005010902A1010901A10007 +:1004B0000509190129051500250195057501810218 +:1004C0009501750381010501093009311581257FE9 +:1004D00095027508810609381581257F95017508F3 +:1004E0008106050C0A38021581257F950175088162 +:1004F00006C0C005010906A101050719E029E71595 +:100500000025019508750181029501750881010595 +:100510000819012905950575019102950175039149 +:10052000010507190029FF150025FF9506750881AB +:1005300000C00000000000000000000000010204F4 +:10054000060A0F17202C3A4A5D71879DB3C7DAE976 +:10055000F5FCFFFCF5E9DAC7B39D87715D4A3A2CDB +:1005600020170F0A0604020100000000000000002E +:10057000000011241FBECFEFDAE0DEBFCDBF04B60E +:1005800003FE27C08091ED019091EE01A091EF0153 +:10059000B091F0018730904BA740B04BD1F410924E +:1005A000ED011092EE011092EF011092F00114BED5 +:1005B00084B7877F84BF0FB6F894A89580916000B8 +:1005C000886180936000109260000FBEE0E0FFE35E +:1005D000099511E0A0E0B1E0ECE5F6E402C0059079 +:1005E0000D92A433B107D9F721E0A4E3B1E001C033 +:1005F0001D92AD3EB207E1F70E945E090C942C23D8 +:100600000C94000061110BC0FC018281882321F051 +:1006100085EE0E94CC0F03C085EE0E94941080E00E +:1006200090E0089508956091B1017091B2018091B8 +:10063000B3019091B4010E941C1A56985E982598B7 +:100640002D9826982E9827982F98813019F082306F +:1006500021F00895259A2D9A0895269A2E9A0895A4 +:100660000C94130356985E9825982D9826982E98EA +:1006700027982F988FEF90E09093890080938800BF +:1006800090938B0080938A0090938D0080938C00D0 +:10069000259A2D9A2FEF80E792E0215080409040DC +:1006A000E1F700C00000269A2E9A2FEF80E792E033 +:1006B000215080409040E1F700C00000279A2F9A17 +:1006C0002FEF80E792E0215080409040E1F700C09A +:1006D000000025982D982FEF80E792E02150804070 +:1006E0009040E1F700C0000026982E982FEF80E799 +:1006F00092E0215080409040E1F700C00000279830 +:100700002F9856985E9825982D9826982E98279879 +:100710002F98089589EA8093800089E08093810072 +:1007200024982C983F988AB18F748AB96E98479A0A +:100730008BB1806B8BB9769A0E9432030C941203B2 +:1007400080E2809300018091340181110EC00E94EB +:10075000EF0381E0809334012FEF83ED90E321508C +:1007600080409040E1F700C0000080E40E94F50363 +:100770008093000181112EC00E941F04809300010C +:10078000811128C00E941F0480930001811122C0A2 +:100790008FE30E941F048093000181111BC00E94FF +:1007A000170480E40E94F50380930001811112C0B8 +:1007B0008CE00E941F048093000181110BC00E94F5 +:1007C0001F0480930001811105C08FE30E941F0464 +:1007D000809300010E9417048091000108951092F7 +:1007E000B9008AE08093B800089594EA9093BC0021 +:1007F0009091BC0097FFFCCF9091B900987F983002 +:1008000021F0903111F081E008958093BB0084E8DD +:100810008093BC008091BC0087FFFCCF8091B90021 +:10082000887F883111F0803471F780E0089584E981 +:100830008093BC008091BC0084FDFCCF0895809320 +:10084000BB0084E88093BC008091BC0087FFFCCF94 +:100850009091B900987F81E0983209F480E0089582 +:1008600084E88093BC008091BC0087FFFCCF80911E +:10087000BB00089580910001811115C080E40E94A1 +:10088000F5038093000181110CC082E10E941F04D6 +:1008900080930001811105C08FEF0E941F04809397 +:1008A00000010E94170484B1807F84B985B1807FE4 +:1008B00085B98AB1837F8AB98BB1837F8BB93E9822 +:1008C000469808950E94A003809300010E943A0474 +:1008D00080B38C7080BB81B3836F81BBE4E4F1E0B3 +:1008E000A6E3B1E011921D9281E0E235F807D1F75D +:1008F0000C948A039F92AF92BF92CF92DF92EF92B5 +:10090000FF920F931F93CF93DF9380910001882371 +:1009100079F0809135018F5F80933501811108C096 +:100920000E94A00380930001811102C00E94320343 +:1009300086E3E82E81E0F82E8701C0E0D0E0BB24FA +:10094000B39492E0A92ECC24C394D12CC730D10506 +:1009500000F580910001811164C080E40E94F503DC +:1009600080930001811112C082E10E941F048093D4 +:10097000000181110BC0C6010C2E01C0880F0A9422 +:10098000EAF780950E941F04809300010E941704DB +:1009900048C0CA30A1F028F4C83059F0C93061F01D +:1009A00005C0CC3089F070F0CD3089F0209A2898BD +:1009B00010C0219A29980DC0229A2A980AC0239A19 +:1009C0002B9807C0529A01C0539A5B9802C03E9A76 +:1009D0004698E0EAEA95F1F78FB181708B25799915 +:1009E00002C032E001C030E0832B7C9902C034E0C9 +:1009F00001C030E0832B7D9902C028E001C020E0D7 +:100A0000822B7E9902C090E101C090E0892B9FB1BA +:100A10009095991F9927991F9295990F907E892BF0 +:100A20000FC08091000181114AC080E40E94F5034B +:100A300080930001882381F1912C0E941704892D55 +:100A4000D8019C91981719F08C93A09201010E94F3 +:100A50003A0421960F5F1F4FCE30D10509F076CFB3 +:100A600080910101882369F18150809301018823DD +:100A700039F0EFE9FFE03197F1F700C0000021C045 +:100A8000E4E4F1E0D7018D917D018193B4E4EB16AC +:100A9000B1E0FB06B9F715C083E10E941F04809303 +:100AA00000018111C9CF81E40E94F5038093000108 +:100AB0008111C2CF0E943004982E9094BECF80E066 +:100AC000BFCF0E94300381E0DF91CF911F910F9142 +:100AD000FF90EF90DF90CF90BF90AF909F900895E0 +:100AE000E82FF0E0EC5BFE4F8081089508958B3B8A +:100AF000910580F4883A910548F5853A9105D8F436 +:100B00008430910508F0B2C0019709F06EC081E011 +:100B100090E00895803E910508F467C0883E9105F5 +:100B200008F4A4C09C01205F31092031310508F090 +:100B30005CC090650895853A910509F459C0863ADC +:100B4000910509F058C082E890E40895883A91052B +:100B500009F454C0893A910509F453C08A3A9105C1 +:100B600009F452C08B3A910509F451C08C3A9105B1 +:100B700009F450C08D3A910509F44FC0803B9105AE +:100B800009F44EC08E3A910509F44DC08F3A910593 +:100B900009F44CC0813B910509F44BC0823B91059F +:100BA00009F44AC0833B910509F449C0843B91058F +:100BB00009F448C0853B910509F447C0863B91057F +:100BC00009F446C0873B910509F445C0883B91056F +:100BD00009F444C0893B910509F443C08A3B91055F +:100BE00009F442C080E094E4089580E090E0089524 +:100BF00081E890E4089583E890E4089582EE94E417 +:100C0000089589EE94E408958AEE94E4089585EBBE +:100C100094E4089586EB94E4089587EB94E40895B2 +:100C20008CEC94E408958DEC94E4089583E895E4C5 +:100C300008958AE895E4089582E995E4089584E9A1 +:100C400095E4089581E296E4089583E296E4089598 +:100C500084E296E4089585E296E4089586E296E4B7 +:100C6000089587E296E408958AE296E40895089547 +:100C700024E5829FC0011124FC0126E0729FE00D53 +:100C8000F11D1124E60FF11DEE0FFF1FEC51FF4F78 +:100C9000859194910895880F991FFC01E05AF040C6 +:100CA000859194910895880F991FFC01E052FF4FA0 +:100CB00085919491089524E5829FC0011124FC013F +:100CC00046E0749FE00DF11D1124E60FF11DEE0FBB +:100CD000FF1FEC51FF4F859194919C013A9521158E +:100CE0004FE1340708F425C13F512115304120F46C +:100CF0009F700E94530608959C0130532115304186 +:100D000018F49927906C0895811520E5920769F4ED +:100D10000E940D144FEF84E39CE0415080409040CE +:100D2000E1F700C000000C94141B813020E592070D +:100D300031F48091CC0181608093CC0108959C01B5 +:100D400030552115304108F05CC0292F33272F7012 +:100D5000332721303105E9F4AC0164E0440F551F1D +:100D60006A95E1F744275370BC016370772702C08E +:100D7000220F331F6A95E2F73C68242B352B73E072 +:100D8000880F991F7A95E1F780769927822B932B0C +:100D900008952230310529F4982F8827816F906AB1 +:100DA000089523303105A1F4AC0133E0440F551F01 +:100DB0003A95E1F7407E57708370992721E030E043 +:100DC00002C0220F331F8A95E2F7C9019C6816C042 +:100DD0002430310531F5AC0123E0440F551F2A952D +:100DE000E1F7407E57708370992721E030E002C020 +:100DF000220F331F8A95E2F7C9019A68842B952B3D +:100E000008959C0130572115304118F49F7090626D +:100E100008959C0130582115304118F49F70906A54 +:100E20000895803E9105E0F4803C910558F58133AA +:100E3000910509F46FC048F48932910509F463C043 +:100E40008A32910509F46DC072C089339105E9F0C9 +:100E500082389105D1F08533910509F44DC067C002 +:100E6000833E910581F138F4803E9105B9F0823ED0 +:100E70009105D9F05CC0863E910561F1873E9105F0 +:100E8000A1F155C00E944B0608952091DE0120FD7E +:100E900002C021FF4CC080EE90E049C08091DE018D +:100EA00080FFF9CF89E390E042C08091DE0182FFAC +:100EB0000EC08091DE0184FF03C080E090E037C067 +:100EC00083EE90E034C08091DE0182FFF2CF82EEAB +:100ED00090E02DC08091DE0183FF0BC08091DE0188 +:100EE00084FDEBCF87EE90E022C08091DE0183FF8E +:100EF000F5CF86EE90E01BC08091DE0185FF07C034 +:100F000089E290E014C08091DE0185FFF9CF85E38E +:100F100090E00DC08091DE0186FF07C08AE290E07C +:100F200006C08091DE0186FFF9CF81E390E00E9448 +:100F3000770508950895809162010895CF93DF9316 +:100F400000D01F92CDB7DEB79C018091E4018430C0 +:100F500019F593E099833B832A839093E9008FEFFF +:100F60009091E800815095FD06C095ED9A95F1F7B6 +:100F700000008111F5CF8091E80085FF0DC040E0B1 +:100F800050E063E070E0CE0101960E940B0A809170 +:100F9000E8008E778093E8000F900F900F90DF911C +:100FA000CF910895CF93DF9300D01F92CDB7DEB7D6 +:100FB0002091E401243021F522E029839B838A8358 +:100FC00083E08093E9008FEF9091E800815095FDD8 +:100FD00006C095ED9A95F1F700008111F5CF80914B +:100FE000E80085FF0DC040E050E063E070E0CE0116 +:100FF00001960E940B0A8091E8008E778093E800AA +:101000000F900F900F90DF91CF9108959C018091E8 +:10101000E4018430F9F482E08093E9009FEF80914D +:10102000E800915085FD06C085ED8A95F1F7000036 +:101030009111F5CF8091E80085FF0CC040E050E0B1 +:1010400065E070E0C9010E940B0A8091E8008E778C +:101050008093E8000895CF93DF93EC018091E40141 +:10106000843009F046C090910C019923D9F09091F9 +:101070000D019923B9F08093E9008FEF9091E8007A +:10108000815095FD06C095E19A95F1F70000811118 +:10109000F5CF8091E80085FF2CC040E050E060E192 +:1010A00070E017C081E08093E9008FEF9091E80035 +:1010B000815095FD06C095ED9A95F1F700008111DC +:1010C000F5CF8091E80085FF14C040E050E068E073 +:1010D00070E0CE010E940B0A8091E8008E77809329 +:1010E000E80080E1FE01A2E5B1E001900D928A9551 +:1010F000E1F7DF91CF9108958091E301811109C05B +:101100000E949C0B0E94F90B8091E2008460809306 +:10111000E20008951092E301089508950C944A2185 +:101120000E94AA1A0E9450210E94A40E0C949A07B1 +:1011300042E061EC81E00E94150B42E061EC82E04C +:101140000E94150B42E061EC83E00E94150B42E126 +:1011500061EC84E00C94150B8091E601833009F476 +:1011600055C030F4813071F0823009F48EC008959A +:101170008A3009F47AC08B3009F460C0893009F0F4 +:101180009CC020C08091E501813A09F096C0809111 +:10119000E800877F8093E8008091E9019091EA015F +:1011A000892B21F460E182E591E003C060E080E0FA +:1011B00090E070E00E94560A8091E8008B7780935F +:1011C000E80008958091E501813209F076C08091B0 +:1011D000E9019091EA01009719F0039709F06DC0B9 +:1011E0008091E800877F8093E8008091E80082FD8D +:1011F00005C08091E4018111F8CF5FC08091F100BA +:10120000809362018091E8008B7753C08091E50163 +:10121000813A09F052C08091E9019091EA01892B4D +:1012200009F04BC08091E800877F8093E8008091AF +:10123000E80080FFFCCF80910C0136C08091E50171 +:101240008132D9F58091E9019091EA01892BA9F5C4 +:101250008091E800877F8093E8000E944A0B80918C +:10126000E70180930C010C940D148091E50181320B +:1012700021F58091E800877F8093E8000E944A0B67 +:101280008091E8018093630108958091E501813A9E +:10129000A1F48091E800877F8093E8008091E800C6 +:1012A00080FFFCCF809163018093F1008091E80082 +:1012B0008E778093E8000C944A0B089584B7877F5B +:1012C00084BF0FB6F894A8958091600088618093E0 +:1012D0006000109260000FBE90E080E80FB6F894B6 +:1012E00080936100909361000FBE0E94F30E0E94F4 +:1012F0009C0B0E94F90B8091E20084608093E200D5 +:1013000078940E94840E0E94F50E82E091E00E9483 +:101310009F0E0E9438218091E401853069F40E947B +:101320006C1A8091E2018823B1F30E94961A8823F7 +:1013300091F30E94F509EFCF0E94FB0EECCF292F0D +:10134000332723303105C9F060F42130310581F0B5 +:101350002230310509F041C08DE690E028EB33E002 +:1013600040C021323105E1F02232310531F135C082 +:1013700082E190E025E234E034C099278130910584 +:1013800049F028F0029749F5E4E8F3E005C0E4EB02 +:10139000F3E002C0ECE9F3E0849190E09F0121C00A +:1013A0006430D8F4E62FF0E0EE0FFF1FEE5DFE4F45 +:1013B0002081318189E090E014C0643070F470E0E5 +:1013C000FB01EE0FFF1FE65EFE4F20813181FB0126 +:1013D000EA5EFE4F808190E004C080E090E020E073 +:1013E00030E0FA0131832083089580E189BD82E1F4 +:1013F00089BD09B400FEFDCF8091D8008F7D809318 +:10140000D8008091E00082608093E0008091E0004D +:1014100081FDFCCF0895CF92DF92EF92FF920F9360 +:101420001F93CF93DF93EC018B016A010E94690B3C +:10143000811133C0C114D10439F0F601808191814A +:10144000081B190BC80FD91FE12CF12C0115110530 +:1014500019F18091E80085FD16C08091E8008E7733 +:101460008093E800C114D10449F0F6018081918194 +:10147000E80EF91EF182E08285E00FC00E94690B40 +:10148000882321F30AC089918093F100015011094A +:10149000FFEFEF1AFF0ADACF80E0DF91CF911F91C3 +:1014A0000F91FF90EF90DF90CF9008952091EB0186 +:1014B0003091EC012617370748F06115710539F4B2 +:1014C0002091E8002E772093E80001C0B901FC01CB +:1014D00020E06115710579F18091E4018823F1F133 +:1014E0008530F1F18091E80083FD3CC08091E800F7 +:1014F00082FD2EC08091E80080FFEBCF2091F300A9 +:101500008091F20090E0922B6115710551F08830C6 +:10151000910538F421912093F100615071090196F1 +:10152000F3CF21E0089709F020E08091E8008E7762 +:101530008093E800CECF2111CFCF0AC08091E40183 +:10154000882361F0853061F08091E80083FD0AC056 +:101550008091E80082FFF2CF80E0089582E0089554 +:1015600083E0089581E008952091EB013091EC0132 +:101570002617370748F06115710539F42091E80006 +:101580002E772093E80001C0B901FC0120E061152D +:10159000710591F18091E401882309F440C0853000 +:1015A00009F43FC08091E80083FD3DC08091E800D0 +:1015B00082FD2FC08091E80080FFE9CF2091F300E9 +:1015C0008091F20090E0922B6115710559F08830FE +:1015D000910540F424912093F100319661507109F6 +:1015E0000196F2CF21E0089709F020E08091E80011 +:1015F0008E778093E800CBCF2111CCCF0AC08091A9 +:10160000E401882361F0853061F08091E80083FD7A +:101610000AC08091E80082FFF2CF80E0089582E066 +:10162000089583E0089581E00895982F973068F534 +:101630009093E900981739F07091EC002091ED003B +:101640005091F00003C0242F762F50E021FD02C0FE +:101650009F5FECCF3091EB003E7F3093EB003091F9 +:10166000ED003D7F3093ED003091EB003160309321 +:10167000EB007093EC002093ED005093F00020916C +:10168000EE0027FDE5CF80E008958F708093E9009C +:1016900081E008958091E50187FF11C08091E80005 +:1016A00082FD05C08091E4018111F8CF11C08091C5 +:1016B000E8008B770BC08091E401882349F080918A +:1016C000E80080FFF8CF8091E8008E778093E800F3 +:1016D00008952091E4003091E50095E64091EC00FA +:1016E000842F817040FF23C08091E80080FD1DC0E1 +:1016F0008091E401882399F0853099F08091EB0086 +:1017000085FD11C04091E4005091E5002417350794 +:1017100029F3915011F09A01E1CF84E0089582E01D +:10172000089583E0089581E0089580E00895409150 +:10173000E80042FFDDCF08950E940A0C0E94120CBF +:10174000E0EEF0E0808181608083E8EDF0E0808170 +:101750008F77808319BCA7EDB0E08C918E7F8C933E +:1017600080818F7E80831092E30108950F931F93F1 +:10177000CF93DF930E940A0C0E94120CC8EDD0E0B8 +:1017800088818F77888388818068888388818F7D2E +:10179000888319BC1092E4011092E0011092E201DA +:1017A0001092E10100EE10E0F80180818B7F8083D0 +:1017B00088818160888342E060E080E00E94150BB0 +:1017C000E1EEF0E080818E7F8083E2EEF0E08081C8 +:1017D00081608083808188608083F80180818E7F32 +:1017E0008083888180618883DF91CF911F910F91E1 +:1017F0000895E8EDF0E080818F7E8083E7EDF0E0F2 +:1018000080818160808384E082BF81E08093E301F6 +:101810000C94B60BE8EDF0E080818E7F808310920F +:10182000E20008951092DA001092E10008951F92EC +:101830000F920FB60F9211242F933F934F935F9304 +:101840006F937F938F939F93AF93BF93EF93FF9388 +:101850008091E10082FF0BC08091E20082FF07C00F +:101860008091E1008B7F8093E1000E94830E809144 +:10187000DA0080FF1FC08091D80080FF1BC08091DC +:10188000DA008E7F8093DA008091D90080FF0DC04E +:1018900080E189BD82E189BD09B400FEFDCF81E010 +:1018A0008093E4010E947C0805C019BC1092E401F9 +:1018B0000E948A088091E10080FF19C08091E200B7 +:1018C00080FF15C08091E2008E7F8093E2008091BE +:1018D000E20080618093E2008091D8008062809372 +:1018E000D80019BC85E08093E4010E948E088091A5 +:1018F000E10084FF30C08091E20084FF2CC080E1D1 +:1019000089BD82E189BD09B400FEFDCF8091D80078 +:101910008F7D8093D8008091E1008F7E8093E100DD +:101920008091E2008F7E8093E2008091E2008160EE +:101930008093E2008091E001882311F084E007C0E9 +:101940008091E30087FD02C081E001C083E08093C5 +:10195000E4010E9490088091E10083FF29C08091FA +:10196000E20083FF25C08091E100877F8093E10042 +:1019700082E08093E4011092E0018091E1008E7F8B +:101980008093E1008091E2008E7F8093E20080915D +:10199000E20080618093E20042E060E080E00E942B +:1019A000150B8091F00088608093F0000E948D08F4 +:1019B000FF91EF91BF91AF919F918F917F916F9127 +:1019C0005F914F913F912F910F900FBE0F901F90FD +:1019D00018951F920F920FB60F9211242F933F93D9 +:1019E0004F935F936F937F938F939F93AF93BF9327 +:1019F000CF93DF93EF93FF93C091E900CF70809175 +:101A0000EC00D82FD17080FDD0E81092E9008091D1 +:101A1000F000877F8093F00078940E942D0D109243 +:101A2000E9008091F00088608093F000CD2BCF70AA +:101A3000C093E900FF91EF91DF91CF91BF91AF91FA +:101A40009F918F917F916F915F914F913F912F91D6 +:101A50000F900FBE0F901F9018951F93CF93DF9399 +:101A6000CDB7DEB7AA970FB6F894DEBF0FBECDBFD5 +:101A7000E5EEF1E08091F100819321E0ED3EF20787 +:101A8000C9F70E94AC088091E80083FF24C18091CF +:101A9000E5019091E601492F50E04A30510508F0E8 +:101AA0001AC1FA01EA5AFF4F0C94E122803881F002 +:101AB000823809F010C18091E9018F708093E900AC +:101AC0008091EB0085FB882780F91092E90006C021 +:101AD0008091E1019091E201911182609091E80082 +:101AE000977F9093E8008093F1001092F100C8C0B6 +:101AF000282F2D7F09F0EFC0882319F0823061F084 +:101B0000EAC08091E701813009F0E5C0933009F027 +:101B100080E08093E2012BC08091E701811127C012 +:101B20008091E9018F7009F4D6C08093E90020917B +:101B3000EB0020FF1CC0933021F48091EB00806209 +:101B400014C09091EB0090619093EB0021E030E0A5 +:101B5000A90102C0440F551F8A95E2F74093EA009D +:101B60001092EA008091EB0088608093EB00109265 +:101B7000E9008091E800877F86C08111ACC0109198 +:101B8000E7011F778091E3008078812B8093E30049 +:101B90008091E800877F8093E8000E944A0B809143 +:101BA000E80080FFFCCF8091E30080688093E30031 +:101BB000111102C082E001C083E08093E4018BC078 +:101BC0008058823008F087C08091E7019091E80149 +:101BD0008C3D53E0950779F583E08A838AE2898317 +:101BE0004FB7F894DE01139620E03EE051E2E32F78 +:101BF000F0E050935700E49120FF03C0E295EF70AE +:101C00003F5FEF708E2F90E0EA3010F0C79601C072 +:101C1000C0968D939D932F5F243149F74FBF8091DC +:101C2000E800877F8093E8006AE270E0CE010196C9 +:101C30000E94560A14C0AE014F5F5F4F6091E901E8 +:101C40000E949F09BC01892B09F445C09091E800CE +:101C5000977F9093E80089819A810E94B40A8091CD +:101C6000E8008B778093E80036C08038A1F580913A +:101C7000E800877F8093E8008091E0018093F10085 +:101C80008091E8008E778093E8000E944A0B23C081 +:101C9000811121C08091E7019091E8019927029775 +:101CA000D4F48091E800877F8093E8008091E70179 +:101CB0008093E0010E944A0B8091E001811106C0EF +:101CC0008091E30087FD02C081E001C084E0809341 +:101CD000E4010E9498088091E80083FF0AC0809187 +:101CE000E800877F8093E8008091EB00806280931A +:101CF000EB00AA960FB6F894DEBF0FBECDBFDF9102 +:101D0000CF911F9108950895CF938091E401882386 +:101D1000A1F0C091E900CF709091EC00892F817003 +:101D200090FD80E8C82B1092E9008091E80083FDC7 +:101D30000E942D0DCF70C093E900CF91089590932C +:101D40006901809368010895E0916801F09169014B +:101D5000309721F00190F081E02D099480E0089502 +:101D6000E0916801F0916901309721F00280F381E0 +:101D7000E02D09940895E0916801F0916901309790 +:101D800021F00480F581E02D0994089520916601E9 +:101D9000309167012817390771F09093670180939C +:101DA0006601E0916801F0916901309721F00680A9 +:101DB000F781E02D09940895209164013091650127 +:101DC0002817390771F09093650180936401E091C1 +:101DD0006801F0916901309721F00084F185E02DD0 +:101DE0000994089508950C94F20E0E94B01A0E946E +:101DF00062040C94761BCF92DF92EF92FF920F93C6 +:101E00001F93CF93DF93CDB7DEB72B970FB6F89420 +:101E1000DEBF0FBECDBF0E947A048BE6C82E81E0E4 +:101E2000D82E00E010E0E02E802F0E947005F60111 +:101E300041916F01F82EF426B1F40F5F1F4F0E3061 +:101E4000110589F78FEF89838A831B820E94B91A53 +:101E50008160782F9D838C8349815A816B818D812C +:101E60000E949E0F40C09091CC0191FF04C08B87CF +:101E70000E9476058B8520E030E04F2D50E0922FB8 +:101E8000BA01022E02C0759567950A94E2F760FFC9 +:101E900024C02E83EF8221E030E0690102C0CC0C27 +:101EA000DD1C9A95E2F790E08C219D21892B09F4A5 +:101EB00020E028870E94B91A8160782F9A87898745 +:101EC0004E815F8168858A850E949E0FF801E559E1 +:101ED000FE4F8081C826C08206C02F5F3F4F26304C +:101EE000310569F6AACF0E945D1E0E94A40E909152 +:101EF0006A018917A1F00E94A40E80936A012B96B3 +:101F00000FB6F894DEBF0FBECDBFDF91CF911F910A +:101F10000F91FF90EF90DF90CF900C949A072B9643 +:101F20000FB6F894DEBF0FBECDBFDF91CF911F91EA +:101F30000F91FF90EF90DF90CF900895CF93DF93B4 +:101F4000CDB7DEB72B970FB6F894DEBF0FBECDBF6F +:101F50004F83588769877A878B87DE01119686E0E1 +:101F6000FD0111928A95E9F785E0FE01379601900F +:101F70000D928A95E1F749815A816B817C818D812F +:101F80009E810E94A1162B960FB6F894DEBF0FBE5D +:101F9000CDBFDF91CF910895CF93C82F882309F447 +:101FA000C1C0823859F40E94A40E81FDBBC089E3F0 +:101FB0000E943E190E94F61989E30CC0833879F417 +:101FC0000E94A40E80FDAEC083E50E943E190E94CF +:101FD000F61983E50E947D19CF910C94F619843887 +:101FE00059F40E94A40E82FD9DC087E40E943E1910 +:101FF0000E94F61987E4EECF8CEF8C0F813A48F4FB +:102000008C2F0E949D2081118DC08C2F0E943E1923 +:10201000E3CF80E28C0F883048F4C77081E001C0C4 +:10202000880FCA95EAF70E94BF19D6CF8BE58C0FAF +:10203000833078F4C53A29F0C63A31F083E890E06D +:1020400005C081E890E002C082E890E0CF910C9456 +:10205000C60E88E58C0F833108F064C0C83A39F1A8 +:10206000C93A41F1CA3A49F1CB3A51F1CC3A59F166 +:10207000CD3A61F1C03B69F1CE3A71F1CF3A79F1D5 +:10208000C13B81F1C23B89F1C33B91F1C43B99F162 +:10209000C53BA1F1C63BA9F1C73BB1F1C83BB9F1C2 +:1020A000C93BC1F1CA3BC9F180E090E038C082EE83 +:1020B00090E035C089EE90E032C08AEE90E02FC00B +:1020C00085EB90E02CC086EB90E029C087EB90E098 +:1020D00026C08CEC90E023C08DEC90E020C083E81B +:1020E00091E01DC08AE891E01AC082E991E017C032 +:1020F00084E991E014C081E292E011C083E292E0B1 +:102100000EC084E292E00BC085E292E008C086E255 +:1021100092E005C087E292E002C08AE292E0CF91AD +:102120000C94DC0ECF910895882309F44BC08238BB +:1021300059F40E94A40E81FF45C089E30E943E1914 +:102140000E94F61989E30CC0833871F40E94A40E32 +:1021500080FF38C083E50E943E190E94F61983E58E +:102160000E947D190C94F619843859F40E94A40E2B +:1021700082FF28C087E40E943E190E94F61987E476 +:10218000EFCF9CEF980F913A58F390E2980F983068 +:1021900050F4877091E001C0990F8A95EAF7892F72 +:1021A0000E94C519DFCF9BE5980F933020F480E0A3 +:1021B00090E00C94C60E885A833120F480E090E0C1 +:1021C0000C94DC0E0895882321F00E94BF190C9412 +:1021D000F6190895882321F00E94C5190C94F61968 +:1021E0000895BF92CF92DF92EF92FF920F931F93C9 +:1021F000CF93DF9300D000D000D0CDB7DEB77C0105 +:1022000085E0F701DE01119601900D928A95E1F7C4 +:10221000F70183819481892B09F4DDC2908181814A +:102220008F3F19F49F3F09F4D6C2F701028125813F +:1022300022952F7099838A8389819A812E830E94A7 +:10224000FD18182FB92E0E94FC180E94C317EB2D01 +:10225000E295EF704E2F50E0FA01E05AFF4F2E81C9 +:102260000C94E1228B2D807F9B2D9F70F92E88236B +:1022700019F0F29480EFF822002349F0FF2009F4CE +:1022800057C28F2D0E94CF190E94F61951C2812F7B +:102290000E949410FF2009F49EC28F2D0E94D51930 +:1022A00026960FB6F894DEBF0FBECDBFDF91CF915B +:1022B0001F910F91FF90EF90DF90CF90BF900C9403 +:1022C000F6193B2D307F8B2D8F70303211F08295B7 +:1022D000807F112319F0113021F12CC00023B9F0B7 +:1022E000222309F490C1213009F08DC126960FB642 +:1022F000F894DEBF0FBECDBFDF91CF911F910F913C +:10230000FF90EF90DF90CF90BF900C94DF192223C5 +:1023100019F0213009F45FC28E830E94E2198E8188 +:1023200086C1002321F0223008F055C26CC1211172 +:1023300052C27DC1002321F0222309F464C1F8C1F7 +:10234000222309F474C109C28B2D8695869583706A +:1023500019F08130D1F03FC2002321F0812F9B2D55 +:10236000937002C080E090E026960FB6F894DEBF2E +:102370000FBECDBFDF91CF911F910F91FF90EF90D6 +:10238000DF90CF90BF900C94C60E002321F0812FD8 +:102390009B2D937002C080E090E026960FB6F894D3 +:1023A000DEBF0FBECDBFDF91CF911F910F91FF9088 +:1023B000EF90DF90CF90BF900C94DC0E812F002324 +:1023C00019F00E94651D02C00E94CD1D26960FB611 +:1023D000F894DEBF0FBECDBFDF91CF911F910F915B +:1023E000FF90EF90DF90CF90BF900C94521E8B2DFA +:1023F000837009F075C00111EEC1812F8295869519 +:102400008770880F880F912F9F70C92ED12CE12CD7 +:10241000F12C082E04C0CC0CDD1CEE1CFF1C0A9411 +:10242000D2F714FF12C00FE010E020E030E004C04B +:10243000000F111F221F331F8A95D2F7C901B8015F +:10244000609570958095909503C060E070E0CB0139 +:102450004B2D4695469543704230C1F060F56C298E +:102460007D298E299F29413051F126960FB6F89487 +:10247000DEBF0FBECDBFDF91CF911F910F91FF90B7 +:10248000EF90DF90CF90BF900C94EA176C297D29D4 +:102490008E299F2926960FB6F894DEBF0FBECDBFBA +:1024A000DF91CF911F910F91FF90EF90DF90CF9030 +:1024B000BF900C9406180E94EA17C701B601269631 +:1024C0000FB6F894DEBF0FBECDBFDF91CF911F9145 +:1024D0000F91FF90EF90DF90CF90BF900C94CE17AC +:1024E000002319F08B2D817001C08695882309F493 +:1024F00072C1812F829586958770880F880F912FE2 +:102500009F70C92ED12CE12CF12C082E04C0CC0CCC +:10251000DD1CEE1CFF1C0A94D2F714FF12C00FE062 +:1025200010E020E030E004C0000F111F221F331F15 +:102530008A95D2F7C901B8016095709580959095FC +:1025400003C060E070E0CB014B2D4695469543708B +:102550004230C1F060F56C297D298E299F294130D8 +:1025600051F126960FB6F894DEBF0FBECDBFDF91B6 +:10257000CF911F910F91FF90EF90DF90CF90BF9080 +:102580000C94C4186C297D298E299F2926960FB694 +:10259000F894DEBF0FBECDBFDF91CF911F910F9199 +:1025A000FF90EF90DF90CF90BF900C94E0180E94C6 +:1025B000C418C701B60126960FB6F894DEBF0FBE49 +:1025C000CDBFDF91CF911F910F91FF90EF90DF90E2 +:1025D000CF90BF900C94A818103FD1F118F4103E82 +:1025E00050F4A1C0123F09F463C008F44CC0133F7B +:1025F00009F473C098C01F708B2D8F710023A1F058 +:102600000E944118812F26960FB6F894DEBF0FBEA8 +:10261000CDBFDF91CF911F910F91FF90EF90DF9091 +:10262000CF90BF900C94E3100E946218812F2696E1 +:102630000FB6F894DEBF0FBECDBFDF91CF911F91D3 +:102640000F91FF90EF90DF90CF90BF900C94EA1025 +:102650000023A9F02111BFC08B2D8F7126960FB6D4 +:10266000F894DEBF0FBECDBFDF91CF911F910F91C8 +:10267000FF90EF90DF90CF90BF900C94871822309E +:1026800008F0A9C0E9CF0023A9F08B2D8F71269601 +:102690000FB6F894DEBF0FBECDBFDF91CF911F9173 +:1026A0000F91FF90EF90DF90CF90BF900C94411866 +:1026B000002359F38B2D8F7126960FB6F894DEBF49 +:1026C0000FBECDBFDF91CF911F910F91FF90EF9083 +:1026D000DF90CF90BF900C946218002399F08B2D5F +:1026E0008F7126960FB6F894DEBF0FBECDBFDF9177 +:1026F000CF911F910F91FF90EF90DF90CF90BF90FF +:102700000C942C1826960FB6F894DEBF0FBECDBFE2 +:10271000DF91CF911F910F91FF90EF90DF90CF90BD +:10272000BF900C9422180023A9F0222309F4ADCF06 +:10273000812F26960FB6F894DEBF0FBECDBFDF9176 +:10274000CF911F910F91FF90EF90DF90CF90BF90AE +:102750000C94CC0F222309F4ADCF812F26960FB60F +:10276000F894DEBF0FBECDBFDF91CF911F910F91C7 +:10277000FF90EF90DF90CF90BF900C9494104B2D72 +:102780004F70612FC7010E94020326960FB6F8947E +:10279000DEBF0FBECDBFDF91CF911F910F91FF9094 +:1027A000EF90DF90CF90BF900C9446174B2D4F7059 +:1027B000612FC70126960FB6F894DEBF0FBECDBFBE +:1027C000DF91CF911F910F91FF90EF90DF90CF900D +:1027D000BF900C94370626960FB6F894DEBF0FBE56 +:1027E000CDBFDF91CF911F910F91FF90EF90DF90C0 +:1027F000CF90BF9008950E94DC190E94B1190E94E9 +:10280000F6190E94021F0E94521E80E090E00E9472 +:10281000C60E80E090E00C94DC0E0E94CC190C9463 +:10282000FB130E94FD18292F22952F702C3030F4B5 +:102830002A3048F42250223078F405C02C3041F080 +:102840002F3031F009C0803E48F0803F29F406C0A7 +:1028500093FB882780F9089580E0089581E008952A +:10286000CF93DF9300D000D01F92CDB7DEB70F908B +:102870000F900F900F900F90DF91CF910895CF930D +:10288000DF9300D000D000D0CDB7DEB726960FB6CC +:10289000F894DEBF0FBECDBFDF91CF9108951F9397 +:1028A000CF93DF93C091790116E080917A01C81728 +:1028B00099F0D0E01C9FF0011D9FF00D1124E55808 +:1028C000FE4F4081518162817381848195810E9494 +:1028D0003F142196C770E9CFDF91CF911F910895E2 +:1028E0004091AB015091AC016091AD017091AE018E +:1028F0008091AF019091B0010C943F148091B00190 +:1029000082958F7009F054C08091AD01882309F43D +:102910004FC080917901A0917A014091AE01509110 +:10292000AF016091AB017091AC01B6E08A1709F478 +:102930003FC090E041155105C1F17F3F11F46F3F59 +:10294000A1F1B89FF001B99FF00D1124E558FE4F99 +:10295000218127132AC02081261327C0228121111B +:1029600024C0238134812417350710F42150310904 +:10297000241B350B283C3105C0F42091B0012F7089 +:1029800020612093B00126E0289FF001299FF00DDF +:102990001124E058FE4F80818F70806180838BEA24 +:1029A00091E00E94F1100C944F1401968770BECFF5 +:1029B0000895CF92DF92EF92FF920F931F93CF93E0 +:1029C000DF93CDB7DEB762970FB6F894DEBF0FBEC8 +:1029D000CDBF8C0185E0F801DE011D9601900D92BE +:1029E0008A95E1F7D8014C9111965C911197129656 +:1029F0006C918091AE019091AF01009709F475C17F +:102A00003091AB017091AC017F3F19F43F3F09F465 +:102A10006CC1F801C380D480E090AD01EE2009F4D0 +:102A2000BEC02091B001C816D90628F0D601A81B57 +:102A3000B90BCD0104C0809590958C0D9D1DFF2490 +:102A4000F394883C910578F0F12C207F09F0C4C004 +:102A50007C2DD98AC88A89890E9430148BEA91E03A +:102A60000E94F110AFC0822F807F09F045C057133C +:102A700013C0431311C061110FC02F702061209348 +:102A8000B0010E9470148BEA91E00E94F1108091D5 +:102A9000B001F80185832EC0CD2819F15F3F11F4F4 +:102AA0004F3FF9F0F62E61111CC080917901209101 +:102AB0007A0136E0821709F45BC090E0389FF0019C +:102AC000399FF00D1124E558FE4F7181571306C050 +:102AD0007081471303C07281711103C00196877022 +:102AE000E9CFF62E662309F41CC18091B001816004 +:102AF0008093B001F12C15C1571309C0431307C0CF +:102B0000611105C08091B001F8018583C8C04D876F +:102B10005E878D859E856A8B0E9411146A89882341 +:102B2000D1F16623C1F12091B001822F82958F707F +:102B300090E0029774F08091AB019091AC0198877E +:102B40008F831986DB86CA862C87CE0107960E9462 +:102B5000F11086E0F801ABEAB1E001900D928A95A0 +:102B6000E1F70E947E140E947014FF24F394D9C0F0 +:102B70004D875E878D859E850E94FD18292F2295A1 +:102B80002F70223008F0C1C09F7009F0BBC0805E7A +:102B9000883008F4C6C0C8010E94F110E6CFC816FC +:102BA000D90608F453C0F601E81BF90BCF01883CA5 +:102BB000910508F450C0F12C7C2DD98AC88A8989E6 +:102BC0000E943014EBEAF1E086E0DF011D928A9565 +:102BD000E9F70E947014A5C0571314C0431312C024 +:102BE000611110C08091B001F8018583C8010E9475 +:102BF000F11086E0EBEAF1E0DF011D928A95E9F73A +:102C0000FE2C8FC04D875E878D859E856A8B0E94C6 +:102C100011146A89882309F4BECF662309F4BBCF57 +:102C20002091B001822F82958F7090E002970CF472 +:102C300090CF8091AB019091AC019A8389831B82E4 +:102C4000DD82CC822E83CE01019681CF8095909536 +:102C50008C0D9D1DACCFF62E662309F49CCF571327 +:102C600033C0431331C02091B00120FD24C0822F16 +:102C700082958F70482F50E041155105E1F0D80141 +:102C800015962C9315974F30510549F08F5F982F6B +:102C90009295907F822F8F70892B15968C93C80107 +:102CA0000E94F11086E0F801ABEAB1E001900D92CC +:102CB0008A95E1F78ECF86E0F801ABEAB1E00190AA +:102CC0000D928A95E1F72DC04D875E878D859E8593 +:102CD0000E94111481113DCF8091B00181608093D9 +:102CE000B001C8010E94F1101CC0662309F453CF43 +:102CF0004D875E878D859E850E941114882309F477 +:102D00004ACF27CF811143CF0CC0243008F043CFE6 +:102D10009F7009F43CCFD80115969C91907F09F0E3 +:102D200036CF8F2D62960FB6F894DEBF0FBECDBFA3 +:102D3000DF91CF911F910F91FF90EF90DF90CF9097 +:102D400008951F93CF93DF93CDB7DEB72C970FB6BF +:102D5000F894DEBF0FBECDBF4F83588769877A874F +:102D60008B879C87CE0107960E94D914882371F027 +:102D70008A859B85892B09F441C088858F3F09F09E +:102D800065C08F818F3F09F061C038C086E0FE01C9 +:102D90003796DE01119601900D928A95E1F76A85CA +:102DA0007B856115710551F1FF81E885EF3F11F4D5 +:102DB000FF3F21F120917A0130E0C901019687702F +:102DC00099274091790150E08417950709F447C08D +:102DD000F983EA837D836C8396E0929FD001939F71 +:102DE000B00D1124A558BE4FFE01319601900D92F1 +:102DF0009A95E1F780937A010E944F1416E0809132 +:102E0000790190917A018917B9F1189FC0011124B5 +:102E100085589E4F0E94D914882371F1E091790161 +:102E20001E9FF0011124E558FE4F408151816281BF +:102E30007381848195810E943F148091790190E093 +:102E400001968770992780937901D9CF4F81588552 +:102E500069857A858B859C850E943F14CFCF0E941F +:102E60000D1410927A0110927901EBEAF1E086E0FC +:102E7000DF011D928A95E9F72C960FB6F894DEBF14 +:102E80000FBECDBFDF91CF911F910895EF92FF92BA +:102E90000F931F93CF93DF938C01892B09F46CC0A0 +:102EA000F12CEE24E394E8012196F8018491843713 +:102EB00040F4843008F051C0813081F0823019F143 +:102EC0005BC0853709F444C0A8F19CE7980F9037A0 +:102ED00008F052C08F770E94941041C00E5F1F4FC0 +:102EE000FE01849190E2980F983050F48770FE2D87 +:102EF00001C0FF0F8A95EAF78F2F0E94CF1914C0E7 +:102F00000E94CC0F2DC00E5F1F4FFE01849190E2F6 +:102F1000980F983060F48770FE2D01C0FF0F8A95DE +:102F2000EAF78F2F0E94D5190E94F61919C00E9446 +:102F3000941016C00E5F1F4FFE01C491CC2381F088 +:102F40008FE99FE00197F1F700C00000C150F6CF74 +:102F50000E5F1F4FFE01F49003C00E94CC0F8E0144 +:102F60008F2D882309F49FCFEFE9FFE03197F1F728 +:102F700000C000008150F5CFDF91CF911F910F91DC +:102F8000FF90EF90089508956093B5017093B60196 +:102F90008093B7019093B8010C94FB130F931F9388 +:102FA0000091B5011091B6012091B7013091B8019F +:102FB000DC01CB01802B912BA22BB32B8093B5018D +:102FC0009093B601A093B701B093B8011F910F91F0 +:102FD0000C94FB130F931F930091B5011091B60150 +:102FE0002091B7013091B801DC01CB0180239123FE +:102FF000A223B3238093B5019093B601A093B701A8 +:10300000B093B8011F910F910C94FB130F931F9372 +:103010000091B5011091B6012091B7013091B8012E +:10302000DC01CB0180279127A227B3278093B5012C +:103030009093B601A093B701B093B8011F910F917F +:103040000C94FB131092B1011092B2011092B301D3 +:103050001092B4010C94FB1341E050E060E070E08A +:1030600004C0440F551F661F771F8A95D2F74093FF +:10307000B1015093B2016093B3017093B4010C9409 +:10308000FB1341E050E060E070E004C0440F551FC6 +:10309000661F771F8A95D2F78091B1019091B20196 +:1030A000A091B301B091B401482B592B6A2B7B2B13 +:1030B0004093B1015093B2016093B3017093B40196 +:1030C0000C94FB1341E050E060E070E004C0440F5A +:1030D000551F661F771F8A95D2F7409550956095CA +:1030E00070958091B1019091B201A091B301B0911E +:1030F000B401482359236A237B234093B1015093A1 +:10310000B2016093B3017093B4010C94FB1341E0DE +:1031100050E060E070E004C0440F551F661F771F49 +:103120008A95D2F78091B1019091B201A091B3013B +:10313000B091B401482759276A277B274093B101F2 +:103140005093B2016093B3017093B4010C94FB13DC +:103150000F931F930091B1011091B2012091B3011F +:103160003091B401DC01CB01802B912BA22BB32B2E +:103170008093B1019093B201A093B301B093B401D5 +:103180001F910F910C94FB130F931F930091B101AA +:103190001091B2012091B3013091B401DC01CB0157 +:1031A00080239123A223B3238093B1019093B20192 +:1031B000A093B301B093B4011F910F910C94FB1332 +:1031C0000F931F930091B1011091B2012091B301AF +:1031D0003091B401DC01CB0180279127A227B327CE +:1031E0008093B1019093B201A093B301B093B40165 +:1031F0001F910F910C94FB130895CF92DF92EF92E1 +:10320000FF920F931F93CF93DF938C01C090B10176 +:10321000D090B201E090B301F090B4018091B5017B +:103220009091B601A091B701B091B801C82AD92AEE +:10323000EA2AFB2ACFE1D0E0D701C6010C2E04C058 +:10324000B695A795979587950A94D2F780FF07C002 +:10325000B8018C2F0E945B068130910531F42197D3 +:1032600058F7B80180E00E945B06DF91CF911F9173 +:103270000F91FF90EF90DF90CF90089590910C0107 +:103280009923F1F090910D019923D1F0982F969503 +:10329000969596959F3080F5E0910E01F0910F0183 +:1032A000E90FF11D877021E030E0A90102C0440F51 +:1032B000551F8A95E2F7CA019181892B8183089570 +:1032C00020910E0130910F01F90132969FEF40E0FD +:1032D0005191851789F09F3F19F4511101C0942F26 +:1032E0004F5F4E30A9F79F3F39F0F901E90FF11D0B +:1032F00097FDFA9582830895089590910C01992382 +:10330000F9F090910D019923D9F0982F9695969503 +:1033100096959F3028F5E0910E01F0910F01E90F8D +:10332000F11D877021E030E0A90102C0440F551F54 +:103330008A95E2F7CA018095918189238183089556 +:1033400020910E0130910F01F9013296205F3F4F1D +:103350009081891301C010823196E217F307C1F7FB +:10336000089581E090E0E0910E01F0910F01E80FE7 +:10337000F91F1082019680319105A9F70895909167 +:10338000CB01892B8093CB01089580959091CB013F +:1033900089238093CB0108951092CB0108959091D9 +:1033A000CA01892B8093CA01089580959091CA0122 +:1033B00089238093CA0108951092CA0108958093C9 +:1033C000B90108951092B901089580910E0190916C +:1033D0000F01FC0131969C01205F3F4F80E09191ED +:1033E00091118F5FE217F307D1F70895E0910E0175 +:1033F000F0910F018091CB018083E0910E01F0915B +:103400000F0190818091CA01892B80838091B9013D +:10341000882361F0E0910E01F0910F019081892BDA +:1034200080830E94E51981111092B90180910E01EB +:1034300090910F010C94B00ECF92DF92EF92FF9219 +:103440006C01EE24FF24C114D104E104F10421F045 +:10345000C701B60120E101C020E0C72ED82EE92E19 +:10346000FF24C114D104E104F10419F0285FC7015D +:10347000B6016B017C0154E0F694E794D794C794AD +:103480005A95D1F7C114D104E104F10419F02C5F6D +:10349000C701B6016B017C0142E0F694E794D79432 +:1034A000C7944A95D1F7C114D104E104F10419F08D +:1034B0002E5FC701B601DC01CB01B695A7959795A4 +:1034C0008795892B8A2B8B2B09F02F5F822FFF90FA +:1034D000EF90DF90CF9008958091E401843011F156 +:1034E00020E488E190E00FB6F894A89580936000FE +:1034F0000FBE2093600083B7817F846083BF83B752 +:10350000816083BF7894889583B78E7F83BF0FB621 +:10351000F894A89580916000886180936000109273 +:1035200060000FBE089508950C94931ACF930E94E3 +:10353000941A0E947A040E94931AC0E08C2F0E9471 +:103540007005811104C0CF5FCE30C1F701C081E0AA +:10355000CF9108950E940D140E94A40E0C949A0716 +:1035600082E084BD93E095BD9AEF97BD80936E0095 +:1035700008952FB7F8948091CD019091CE01A0913C +:10358000CF01B091D0012FBF0895CF92DF92EF927B +:10359000FF920F931F932FB7F8944091CD01509154 +:1035A000CE016091CF017091D0012FBF6A017B01E4 +:1035B000EE24FF248C0120E030E0C016D106E206A4 +:1035C000F30610F4415051099A01281B390BC90127 +:1035D0001F910F91FF90EF90DF90CF9008951F9271 +:1035E0000F920FB60F9211248F939F93AF93BF93B7 +:1035F0008091CD019091CE01A091CF01B091D001E9 +:103600000196A11DB11D8093CD019093CE01A09391 +:10361000CF01B093D001BF91AF919F918F910F9047 +:103620000FBE0F901F9018950E949C0BF8942FEFDF +:1036300087EA91E6215080409040E1F700C0000009 +:1036400087E090EBDC018093ED019093EE01A09375 +:10365000EF01B093F0019CE088E10FB6F894A895D3 +:10366000809360000FBE90936000FFCFEF92FF92B7 +:103670000F931F93CF93DF93D82FC0E08C2F0E941E +:10368000700500E010E0E82EF12CC701002E02C00A +:10369000959587950A94E2F780FD06C00F5F1F4F4E +:1036A0000630110591F709C0602F7C2F80E00E9441 +:1036B00038068D13F3CF81E004C0CF5FCE30F1F632 +:1036C00080E0DF91CF911F910F91FF90EF900895CF +:1036D000CF93C82F8CE20E94361B882321F08C2FB9 +:1036E000CF910C94361B80E0CF910895CF930E9428 +:1036F000BD1C811102C00E94A31CC5E6C15049F047 +:103700000E947A048FE39CE90197F1F700C0000062 +:10371000F5CF89E20E94681B811113C18AE20E94E1 +:10372000681B81110E94A31C85E00E94681B811107 +:103730000E94141B0E94C81C8093CC0187E00E9449 +:10374000681B8823A9F18BE10E94681B882351F034 +:103750008091CC0181FB222720F991E0922790FBF8 +:1037600081F90EC08EE00E94681B882361F0809171 +:10377000CC0182FB222720F991E0922790FB82F96D +:103780008093CC0115C080E10E94681B9091CC0110 +:10379000882341F093FB222720F981E0822780FBD8 +:1037A00093F904C0892F809580FB90F99093CC0108 +:1037B0008091CC010E94CC1C0E94DA1C8093DE0117 +:1037C00080EE0E94681B882341F08091DE01982FD3 +:1037D000909590FB80F98093DE0189E30E94681B3D +:1037E000882359F08091DE0181FB222720F991E0A6 +:1037F000922790FB81F98093DE0182EE0E94681B84 +:10380000882359F08091DE0182FB222720F991E084 +:10381000922790FB82F98093DE0186EE0E94681B5E +:10382000882359F08091DE0183FB222720F991E063 +:10383000922790FB83F98093DE0183EE0E94681B40 +:10384000882359F08091DE0184FB222720F991E042 +:10385000922790FB84F98093DE0185E30E94681B28 +:10386000882359F08091DE0185FB222720F991E021 +:10387000922790FB85F98093DE0181E30E94681B0B +:10388000882359F08091DE0186FB222720F991E000 +:10389000922790FB86F98093DE0181E10E94681BEC +:1038A000882359F08091DE0187FB222720F991E0DF +:1038B000922790FB87F98093DE018091DE010E94C0 +:1038C000DE1C8091DE0187FB882780F980930D0143 +:1038D00087E20E94681BC82F8EE10E94681B81113D +:1038E000C2608FE10E94681B8111C46080E20E9467 +:1038F000681B8111C86081E20E94681B8111C06150 +:1039000082E20E94681B8111C06283E20E94681BF0 +:103910008111C06484E20E94681B882311F0C06892 +:1039200002C0CC2329F08C2F0E94D51C6C2F03C021 +:103930000E94D11C682F70E080E090E0CF910C9441 +:10394000C417CF9108956DEE7EEF80E090E00E9465 +:10395000172360E082E090E00E94092360E083E0AA +:1039600090E00E94092360E084E090E00E94092337 +:1039700060E085E090E00C94092380E090E00E94F4 +:10398000032321E08D3E9E4F09F020E0822F089511 +:1039900082E090E00C94FB22682F82E090E00C948F +:1039A000092383E090E00C94FB22682F83E090E0F1 +:1039B0000C94092384E090E00C94FB22682F84E0AF +:1039C00090E00C9409238091D30180FF0BC060919B +:1039D000130185E0689FB001112475956795759571 +:1039E00067952BC081FF09C06091130185E0689F36 +:1039F000B00111247595679520C082FF07C06091C2 +:103A0000130185E0689FB001112417C09091D40183 +:103A10009923D1F060911201961788F72091130134 +:103A200085E0289F90011124929FA001939F500D43 +:103A3000112470E0CA010E94CD226038710540F463 +:103A40006115710519F406C065E070E0862F0895D0 +:103A50008FE7089581E008958091D30180FF08C029 +:103A60006091110170E0759567957595679521C016 +:103A700081FF06C06091110170E07595679519C0CE +:103A800082FF04C06091110170E010C09091D401D8 +:103A9000992399F0609110019617A0F78091110178 +:103AA000899FC001112470E00E94CD226038710509 +:103AB00040F46115710519F406C061E070E0862FCD +:103AC00008958FE7089581E00895803F21F40E94D2 +:103AD000E31C819504C0813F29F40E94E31C80937C +:103AE000D7010895823F21F40E94E31C819504C010 +:103AF000833F29F40E94E31C8093D6010895893FF7 +:103B000019F40E942C1D05C08A3F31F40E942C1D1F +:103B100081958093D80108958B3F21F40E942C1D3C +:103B2000819504C08C3F29F40E942C1D8093D901FB +:103B30000895843F21F48091D501816017C0853FAD +:103B400021F48091D501826011C0863F21F48091DB +:103B5000D50184600BC0873F21F48091D501886036 +:103B600005C0883F31F48091D50180618093D501F3 +:103B700008958D3F21F48091D30181600BC08E3F69 +:103B800021F48091D301826005C08F3F29F4809198 +:103B9000D30184608093D3010895803F39F48091EC +:103BA000D70187FF6CC01092D70169C0813F29F40B +:103BB0008091D7011816BCF362C09091D601823F64 +:103BC00029F497FF5CC01092D60159C0833F19F4C5 +:103BD0001916CCF354C0893F41F48091D8011816CE +:103BE0000CF04DC01092D8014AC08A3F29F4809150 +:103BF000D80187FF44C0F6CF8B3F39F48091D901BB +:103C000087FF3DC01092D9013AC08C3F29F48091C2 +:103C1000D9011816BCF333C0843F21F48091D5013B +:103C20008E7F17C0853F21F48091D5018D7F11C013 +:103C3000863F21F48091D5018B7F0BC0873F21F413 +:103C40008091D501877F05C0883F31F48091D501EF +:103C50008F7E8093D50113C08D3F21F48091D301D5 +:103C60008E7F0BC08E3F21F48091D3018D7F05C0E4 +:103C70008F3F29F48091D3018B7F8093D301809172 +:103C8000D60181110EC08091D70181110AC08091A7 +:103C9000D801811106C08091D901811102C0109212 +:103CA000D401089585ED91E00E94BB0E0E94B91ADF +:103CB0009093D2018093D10108951F93CF93DF9306 +:103CC0008091D1019091D2010E94C51AAC019091CE +:103CD000D401992321F02091140130E006C02091F5 +:103CE00015018AE0289F900111244217530708F418 +:103CF00085C08091D601C091D701D091D801109193 +:103D0000D901811107C0C11175C0D11173C0111142 +:103D100071C074C09F3F19F09F5F9093D401181633 +:103D200024F40E94E31C8093D6018091D60187FF82 +:103D300005C00E94E31C81958093D6011C1624F4D3 +:103D40000E94E31C8093D7018091D70187FF05C0B3 +:103D50000E94E31C81958093D7016091D601662370 +:103D600031F1C091D701CC2311F1062E000C770B55 +:103D7000880B990B0E94D42123E333E343E35FE3F1 +:103D80000E9438220E949C216093D6016C2FCC0F98 +:103D9000770B880B990B0E94D42123E333E343E391 +:103DA0005FE30E9438220E949C216093D7011D1678 +:103DB00024F40E942C1D8093D8018091D80187FFA4 +:103DC00005C00E942C1D81958093D801111624F402 +:103DD0000E942C1D8093D9018091D90187FF05C0D5 +:103DE0000E942C1D81958093D901DF91CF911F9165 +:103DF0000C94521E9F3F09F08FCFA0CFDF91CF913F +:103E00001F910895E5EDF1E085E0DF011D928A95AF +:103E1000E9F71092D4011092D3010895833081F113 +:103E200028F4813059F08230D1F00895853009F4BA +:103E300049C0B8F1863009F456C008958091150143 +:103E4000262F30E0280F311D2F3F310524F4680F55 +:103E50006093150108958FEF809315010895809167 +:103E60001401262F30E0280F311D2F3F310524F497 +:103E7000680F6093140108958FEF809314010895E3 +:103E800080911301262F30E0280F311D2F3F31057F +:103E900024F4680F6093130108958FEF809313014A +:103EA000089580911201262F30E0280F311D2F3FF9 +:103EB000310524F4680F6093120108958FEF809309 +:103EC0001201089580911101262F30E0280F311D35 +:103ED0002F3F310524F4680F6093110108958FEF8F +:103EE00080931101089580911001262F30E0280F52 +:103EF000311D2F3F310524F4680F609310010895A0 +:103F00008FEF809310010895833011F128F48130F0 +:103F100049F0823091F00895853081F120F18630AA +:103F2000C1F1089580911501681720F4861B8093D4 +:103F300015010895109215010895809114016817D4 +:103F400020F4861B809314010895109214010895A3 +:103F500080911301681720F4861B80931301089544 +:103F600010921301089580911201681720F4861BA6 +:103F70008093120108951092120108958091110109 +:103F8000681720F4861B8093110108951092110187 +:103F9000089580911001681720F4861B809310010A +:103FA00008951092100108950F931F938D3109F415 +:103FB0006BC008F03FC08E3009F47DC0C0F487307C +:103FC00009F46EC068F4863009F0AFC08091CC016E +:103FD000817F8E7F8093CC0181E08093DB01A6C03E +:103FE000883009F458C08B3009F49BC09EC08631DC +:103FF00009F497C078F4803109F470C0813109F078 +:1040000094C00E940D1490910D0181E08927809346 +:104010000D0187C0893109F484C08B3109F085C056 +:104020008091CC0181FB222720F991E0922790FB1F +:1040300081F94AC0853309F45BC048F4873209F43A +:1040400057C008F45AC0893209F452C06EC0833494 +:1040500038F48A3308F067C0883309F462C065C059 +:10406000833409F445C0883409F05FC00E940D1400 +:104070000FEF13ED20E3015010402040E1F700C0A6 +:1040800000000E94141B4DC00E9456210E94A40EE5 +:104090000E949A0746C00E94C81C0E94DA1C41C0B8 +:1040A0009091CC01892F817090FF12C0917F9E7FEB +:1040B0009093CC013BC08091CC0182FB222720F958 +:1040C00091E0922790FB82F98093CC01992349F1EA +:1040D0008091CC0181608093CC0123C08091CC0180 +:1040E00083FB222720F991E0922790FB83F9ECCF04 +:1040F00061E070E080E090E010C08D5141E050E060 +:1041000060E070E08A019B0104C0000F111F221FB4 +:10411000331F8A95D2F7C901B8010E94C4170E94C3 +:104120000D1481E003C08953E9CF80E01F910F9106 +:10413000089580E008950C949920CF93C82F809122 +:10414000DB01813079F018F08230E9F187C0E0912D +:104150000E01F0910F018081813169F0823209F006 +:104160007FC009C0E0910E01F0910F018081813183 +:1041700011F0823261F48C2F0E949B20811104C0C7 +:104180008C2F0E94D41F1DC081E090E01AC08C2F9C +:104190000E949920811114C0C43179F048F4CB30C9 +:1041A00079F0C03109F060C082E08093DB0108C083 +:1041B000C93219F0C83321F057C01092DB0154C046 +:1041C00081E0817053C0C93289F118F5C43171F1B1 +:1041D000A8F4C73009F046C08AE08093150194E145 +:1041E0009093140193E0909313018093120188E05F +:1041F0008093110188E28093100134C0CE51C63003 +:1042000088F5EC2FF0E0E65DFE4F80818093DA01C7 +:1042100029C0CE34E9F020F4CB3421F56AE013C094 +:10422000C13579F0C235F1F461E00DC08091DA0159 +:10423000882319F01092DA0115C081E08093DB0128 +:1042400015C061E006C08091DA010E940E1F0AC00D +:104250006AE08091DA010E94841F04C01092DB01A1 +:1042600080E004C081E002C080E0ABCFCF91089530 +:10427000E1E8F0E0808188608083808181608083D4 +:104280008FB7F89493E09093890090ED9093880015 +:104290008FBF0895EFE6F0E080818260808308950B +:1042A000EFE6F0E080818D7F80830895EFE6F0E017 +:1042B000908182E08927808308951F920F920FB624 +:1042C0000F9211242F933F934F935F936F937F939C +:1042D0008F939F93AF93BF93EF93FF938091DC01F4 +:1042E0009091DD0101969093DD018093DC018111B5 +:1042F00003C082E00E949A07E091DD01E695E69511 +:10430000F0E0EE5CFA4FE4918091DC018E1303C083 +:1043100080E00E949A07FF91EF91BF91AF919F912A +:104320008F917F916F915F914F913F912F910F905E +:104330000FBE0F901F9018950E94A3216894B11191 +:104340000C94322208950E94172288F09F5798F00B +:10435000B92F9927B751B0F0E1F0660F771F881F8A +:10436000991F1AF0BA95C9F714C0B13091F00E94A4 +:104370003122B1E008950C943122672F782F8827DD +:10438000B85F39F0B93FCCF3869577956795B395CB +:10439000D9F73EF490958095709561957F4F8F4F3A +:1043A0009F4F0895E89409C097FB3EF4909580953F +:1043B000709561957F4F8F4F9F4F9923A9F0F92FEB +:1043C00096E9BB279395F695879577956795B79569 +:1043D000F111F8CFFAF4BB0F11F460FF1BC06F5F4F +:1043E0007F4F8F4F9F4F16C0882311F096E911C061 +:1043F000772321F09EE8872F762F05C0662371F082 +:1044000096E8862F70E060E02AF09A95660F771F95 +:10441000881FDAF7880F9695879597F9089557FDC5 +:104420009058440F551F59F05F3F71F04795880F22 +:1044300097FB991F61F09F3F79F0879508951216B9 +:1044400013061406551FF2CF4695F1DF08C0161665 +:1044500017061806991FF1CF869571056105089416 +:104460000895E894BB2766277727CB0197F908952D +:104470000E944B220C94BC220E94AE2238F00E9473 +:10448000B52220F0952311F00C94A5220C94AB22B8 +:1044900011240C9432220E940F2270F3959FC1F3D5 +:1044A000950F50E0551F629FF001729FBB27F00DE2 +:1044B000B11D639FAA27F00DB11DAA1F649F662737 +:1044C000B00DA11D661F829F2227B00DA11D621F86 +:1044D000739FB00DA11D621F839FA00D611D221F40 +:1044E000749F3327A00D611D231F849F600D211D24 +:1044F000822F762F6A2F11249F5750409AF0F1F0A7 +:1045000088234AF0EE0FFF1FBB1F661F771F881F0F +:1045100091505040A9F79E3F510580F00C94A52280 +:104520000C9432225F3FE4F3983ED4F3869577955E +:104530006795B795F795E7959F5FC1F7FE2B880FB5 +:10454000911D9695879597F9089597F99F6780E84B +:1045500070E060E008959FEF80EC089500240A94D5 +:104560001616170618060906089500240A9412164E +:104570001306140605060895092E0394000C11F481 +:10458000882352F0BB0F40F4BF2B11F460FF04C02E +:104590006F5F7F4F8F4F9F4F089597FB072E16F445 +:1045A000009407D077FD09D00E94E72207FC05D0D0 +:1045B0003EF4909581959F4F0895709561957F4F3A +:1045C0000895EE0FFF1F0590F491E02D0994AA1BAA +:1045D000BB1B51E107C0AA1FBB1FA617B70710F0EE +:1045E000A61BB70B881F991F5A95A9F78095909520 +:1045F000BC01CD010895F999FECF92BD81BDF89A15 +:10460000992780B50895A8E1B0E042E050E00C940D +:104610001E23262FF999FECF1FBA92BD81BD20BD62 +:104620000FB6F894FA9AF99A0FBE019608950E946F +:104630000923272F0C940A23DC01CB01FC01F999F3 +:10464000FECF06C0F2BDE1BDF89A319600B40D92DE +:0C46500041505040B8F70895F894FFCF97 +:10465C0020029B072B080608D2079E070101BA010E +:10466C0028080A03140A3F4D3639F304A6047004D3 +:10467C003704CA03E303FC03150401020304050613 +:04468C000708090012 +:00000001FF diff --git a/keyboard/ergodox_ez/keymaps/dragon788/keymap.c b/keyboard/ergodox_ez/keymaps/dragon788/keymap.c new file mode 100644 index 0000000000..3aec8c6cf9 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/dragon788/keymap.c @@ -0,0 +1,229 @@ +#include "ergodox_ez.h" +#include "debug.h" +#include "action_layer.h" + +#define BASE 0 // default layer +#define SYMB 1 // symbols +#define MDIA 2 // media keys +#define PLVR 3 // Plover layer + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Keymap 0: Basic layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | = | 1 | 2 | 3 | 4 | 5 | LGui | |Plover| 6 | 7 | 8 | 9 | 0 | - | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | Tab | Q | W | E | R | T | L1 | | L2 | Y | U | I | O | P | \ | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * |Esc/Ctrl| A | S | D | F | G |------| |------| H | J | K | L | ; | '"/Ctrl| + * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------| + * | LShift | Z | X | C | V | B | | | | N | M | , | . | / | RShift | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | ~L1 | Grv | '" | Left |Rgt/L2| | Up/L2| Down | [ | ] | ~L1 | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | App | Home | | PgUp |Ctrl/Esc| + * ,------|------|------| |------+--------+------. + * | | | End | | PgDn | | | + * |Backsp|Delete|------| |------| Enter |Space | + * | ace | | LAlt | |TabCtl| | | + * `--------------------' `----------------------' + */ +// If it accepts an argument (i.e, is a function), it doesn't need KC_. +// Otherwise, it needs KC_* +[BASE] = KEYMAP( // layer 0 : default + // left hand + KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LGUI, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(1), + CTL_T(KC_ESC), KC_A, KC_S, KC_D, KC_F, KC_G, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, ALL_T(KC_NO), + KC_FN1, KC_GRV, KC_QUOT,KC_LEFT, LT(MDIA, KC_RGHT), + KC_APP, KC_HOME, + KC_END, + KC_BSPC,KC_DELT,KC_LALT, + // right hand + TG(3), KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + TG(2), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, + KC_H, KC_J, KC_K, KC_L, KC_SCLN, CTL_T(KC_QUOT), + MEH_T(KC_NO),KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT, + LT(MDIA, KC_UP), KC_DOWN,KC_LBRC,KC_RBRC, KC_FN1, + KC_PGUP, CTL_T(KC_ESC), + KC_PGDN, + CTL_T(KC_TAB),KC_ENT, KC_SPC + ), +/* Keymap 1: Symbol Layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | ! | @ | { | } | | | | | | Up | 7 | 8 | 9 | * | F12 | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | # | $ | ( | ) | ` |------| |------| Down | 4 | 5 | 6 | + | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | \ | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | | . | 0 | = | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | Calc | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// SYMBOLS +[SYMB] = KEYMAP( + // left hand + KC_TRNS,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS, + KC_TRNS,KC_EXLM,KC_AT, KC_LCBR,KC_RCBR,KC_PIPE,KC_TRNS, + KC_TRNS,KC_HASH,KC_DLR, KC_LPRN,KC_RPRN,KC_GRV, + KC_TRNS,KC_PERC,KC_CIRC,KC_LBRC,KC_RBRC,KC_TILD,KC_TRNS, + KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, + KC_TRNS,KC_TRNS, + KC_TRNS, + KC_TRNS,KC_TRNS,KC_TRNS, + // right hand + KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + KC_TRNS, KC_UP, KC_7, KC_8, KC_9, KC_ASTR, KC_F12, + KC_DOWN, KC_4, KC_5, KC_6, KC_PLUS, KC_TRNS, + KC_TRNS, KC_AMPR, KC_1, KC_2, KC_3, KC_BSLS, KC_TRNS, + KC_TRNS,KC_DOT, KC_0, KC_EQL, KC_TRNS, + KC_TRNS, KC_CALC, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS +), +/* Keymap 2: Media and mouse keys + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | | Rclk | Lclk | | | | | | Lclk | Rclk | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | |MsLeft| MsUp |MsDown|MsRght|------| |------|MsLeft|MsDown| MsUp |MsRght| | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | | | | | | | | | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | Lclk | Rclk | | | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | Prev | |VolUp | | + * ,------|------|------| |------+------+------. + * | | | Play | | Mute |Brwser|Brwser| + * | Lclk | Rclk |------| |------|Fwd |Back | + * | | | Next | |VolDn | | | + * `--------------------' `--------------------' + */ +// MEDIA AND MOUSE +KEYMAP( + RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN2, KC_BTN1, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_U, KC_MS_D, KC_MS_R, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_MPRV, + KC_MPLY, + KC_BTN1, KC_BTN2, KC_MNXT, + // right hand + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2, KC_TRNS, KC_TRNS, KC_TRNS, + KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_VOLU, KC_TRNS, + KC_MUTE, + KC_VOLD, KC_WBAK, KC_WFWD +), + +/* Keymap 4: Steno for Plover from https://github.com/shayneholmes/tmk_keyboard/commit/11290f8489013018f778627db725160c745e75bd + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | 1 | 2 | 3 | 4 | 5 | | | | 6 | 7 | 8 | 9 | 0 | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | q | w | e | r | t |------| |------| y | u | i | o | p | [ | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | a | s | d | f | g | | | | h | j | k | l | ; | ' | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | c | v |------| |------| n | m | + * | | | | | | | | + * `--------------------' `--------------------' + */ + +[PLVR] = KEYMAP( // layout: layer 4: Steno for Plover + // left hand + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_1, KC_2, KC_3, KC_4, KC_5, KC_NO, + KC_NO, KC_Q, KC_W, KC_E, KC_R, KC_T, + KC_NO, KC_A, KC_S, KC_D, KC_F, KC_G, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_FN4, KC_NO, + KC_NO, + KC_C, KC_V, KC_NO, + // right hand + KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, + KC_NO, KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS, + KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, + KC_NO, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_TRNS, KC_TRNS, KC_NO, KC_NO, KC_NO, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_NO, KC_N, KC_M +), + +}; + +const uint16_t PROGMEM fn_actions[] = { + [1] = ACTION_LAYER_TAP_TOGGLE(SYMB) // FN1 - Momentary Layer 1 (Symbols) +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch(id) { + case 0: + if (record->event.pressed) { + register_code(KC_RSFT); + } else { + unregister_code(KC_RSFT); + } + break; + } + return MACRO_NONE; +}; + +// Runs just one time when the keyboard initializes. +void matrix_init_user(void) { + +}; + +// Runs constantly in the background, in a loop. +void matrix_scan_user(void) { + + uint8_t layer = biton32(layer_state); + + ergodox_board_led_off(); + ergodox_right_led_1_off(); + ergodox_right_led_2_off(); + ergodox_right_led_3_off(); + switch (layer) { + // TODO: Make this relevant to the ErgoDox EZ. + case 1: + ergodox_right_led_1_on(); + break; + case 2: + ergodox_right_led_2_on(); + break; + default: + // none + break; + } + +}; diff --git a/keyboard/ergodox_ez/keymaps/dvorak/dvorak.hex b/keyboard/ergodox_ez/keymaps/dvorak/dvorak.hex new file mode 100644 index 0000000000..2568c571e9 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/dvorak/dvorak.hex @@ -0,0 +1,1121 @@ +:100000000C9465020C94AC020C94AC020C94AC02FF +:100010000C94AC020C94AC020C94AC020C94AC02A8 +:100020000C94AC020C94AC020C94C30B0C94950C85 +:100030000C94AC020C94AC020C94AC020C94AC0288 +:100040000C94AC020C9409210C94AC020C94AC02FC +:100050000C94AC020C949B1A0C94AC020C94AC0261 +:100060000C94AC020C94AC020C94AC020C94AC0258 +:100070000C94AC020C94AC020C94AC020C94AC0248 +:100080000C94AC020C94AC020C94AC020C94AC0238 +:100090000C94AC020C94AC020C94AC020C94AC0228 +:1000A0000C94AC020C94AC020C94AC02020D240D26 +:1000B000170E240D170E690D8C0D170EE10DF40DA2 +:1000C000DE10DE100D110D1150118A1197139713C8 +:1000D000A3119713981298126B1397139713821307 +:1000E0000000F0A12E004C002A00E1003581000044 +:1000F0001E0034000400337134004D001F00360030 +:1001000012001400E1042A002000370008000D004E +:1001100050002C002100130018000E004F004A0070 +:1001200022001C000C001B000000657450000154EC +:100130000000007F0000E3004F0001540000007742 +:100140000000E200230009000700050000002971FB +:1001500024000A000B00100052004B00250006008E +:1001600017001A0051002800260015001100190080 +:100170002F002B0027000F0016821D7130004E004B +:10018000310038002D00E500C10000000100010031 +:1001900001000100010000003A001E0220022202BC +:1001A000010001003B001F022102230201000100A7 +:1001B0003C002F0226022F00010001003D0030020A +:1001C00027023000010001003E00310235003502F7 +:1001D000000001000100010000000100000001001A +:1001E0000100010000000100000001003F0052007A +:1001F00051002402000001004000240021001E00E4 +:10020000010001004100250022001F00370001000D +:1002100042002600230020002700010043002502A1 +:100220002E0231002E0001004400450001000100B3 +:1002300001000000010001000100010001000000B8 +:1002400001000100010001000100010001000100A6 +:10025000F2000100010001000100F000F1000100C6 +:10026000F400010001000100F3000100F5000100AD +:100270000100010001000100000001000100010077 +:100280000000010000000100010001000000010069 +:100290000000010001000100010001000000010058 +:1002A0000100010001000100A9000100010001009E +:1002B0000100AC00AA00B600010001000100AB0083 +:1002C000A80001000100010001000100010001007F +:1002D00001000100AE00010001000000160345000E +:1002E000720067006F0044006F0078002000450036 +:1002F0005A00000016034500720067006F004400BA +:100300006F007800200045005A0000000403090433 +:1003100009026D00040100A0FA09040000010301B4 +:100320000100092111010001223F00070581030896 +:10033000000A090401000103010200092111010062 +:1003400001224D000705820308000A09040200018A +:100350000300000009211101000122360007058376 +:100360000308000A09040300010300000009211129 +:100370000100012239000705840310000112011059 +:100380000100000008EDFE07130100010200010555 +:10039000010906A101050719E029E71500250195C6 +:1003A0000875018102050819012905950575019156 +:1003B000029501750391010507190029771500259C +:1003C00001957875018102C005010980A1018502AE +:1003D00016010026B7001A01002AB7007510950112 +:1003E0008100C0050C0901A1018503160100269CAE +:1003F000021A01002A9C02751095018100C00501B6 +:100400000902A1010901A100050919012905150029 +:10041000250195057501810295017503810105018D +:10042000093009311581257F950275088106093843 +:100430001581257F950175088106050C0A3802157E +:1004400081257F950175088106C0C005010906A1B7 +:1004500001050719E029E7150025019508750181B7 +:100460000295017508810105081901290595057591 +:100470000191029501750391010507190029FF15E6 +:100480000025FF950675088100C0000000000000EF +:100490000000000000010204060A0F17202C3A4A4F +:1004A0005D71879DB3C7DAE9F5FCFFFCF5E9DAC7B2 +:1004B000B39D87715D4A3A2C20170F0A060402018A +:1004C0000000000000000000000011241FBECFEF5C +:1004D000DAE0DEBFCDBF04B603FE27C08091ED0198 +:1004E0009091EE01A091EF01B091F0018730904B17 +:1004F000A740B04BD1F41092ED011092EE01109292 +:10050000EF011092F00114BE84B7877F84BF0FB64D +:10051000F894A895809160008861809360001092A3 +:1005200060000FBEE0E0FFE3099511E0A0E0B1E05C +:10053000E4EBF5E402C005900D92A433B107D9F7BE +:1005400021E0A4E3B1E001C01D92AD3EB207E1F7A6 +:100550000E940A090C94D8220C94000061110BC06F +:10056000FC018281882321F085EE0E94780F03C070 +:1005700085EE0E94401080E090E00895089560911B +:10058000B1017091B2018091B3019091B4010E94C8 +:10059000C81956985E9825982D9826982E982798D1 +:1005A0002F98813019F0823021F00895259A2D9AE4 +:1005B0000895269A2E9A08950C94BF0256985E9834 +:1005C00025982D9826982E9827982F988FEF90E0B1 +:1005D000909389008093880090938B0080938A0089 +:1005E00090938D0080938C00259A2D9A2FEF80E7B1 +:1005F00092E0215080409040E1F700C00000269A30 +:100600002E9A2FEF80E792E0215080409040E1F752 +:1006100000C00000279A2F9A2FEF80E792E0215028 +:1006200080409040E1F700C0000025982D982FEF02 +:1006300080E792E0215080409040E1F700C0000048 +:1006400026982E982FEF80E792E02150804090402E +:10065000E1F700C0000027982F9856985E982598DB +:100660002D9826982E9827982F98089589EA809398 +:10067000800089E08093810024982C983F988AB16B +:100680008F748AB96E98479A8BB1806B8BB9769AC2 +:100690000E94DE020C94BE0280E2809300018091F1 +:1006A000340181110EC00E949B0381E080933401CC +:1006B0002FEF83ED90E3215080409040E1F700C0A0 +:1006C000000080E40E94A1038093000181112EC0EC +:1006D0000E94CB0380930001811128C00E94CB03AC +:1006E00080930001811122C08FE30E94CB0380938D +:1006F000000181111BC00E94C30380E40E94A1037A +:1007000080930001811112C08CE00E94CB03809382 +:10071000000181110BC00E94CB0380930001811165 +:1007200005C08FE30E94CB03809300010E94C303A6 +:100730008091000108951092B9008AE08093B8007A +:10074000089594EA9093BC009091BC0097FFFCCF71 +:100750009091B900987F983021F0903111F081E0AC +:1007600008958093BB0084E88093BC008091BC0016 +:1007700087FFFCCF8091B900887F883111F08034E9 +:1007800071F780E0089584E98093BC008091BC00FB +:1007900084FDFCCF08958093BB0084E88093BC0067 +:1007A0008091BC0087FFFCCF9091B900987F81E0D9 +:1007B000983209F480E0089584E88093BC00809129 +:1007C000BC0087FFFCCF8091BB00089580910001A1 +:1007D000811115C080E40E94A10380930001811162 +:1007E0000CC082E10E94CB0380930001811105C0FF +:1007F0008FEF0E94CB03809300010E94C30384B15A +:10080000807F84B985B1807F85B98AB1837F8AB9B9 +:100810008BB1837F8BB93E98469808950E944C0314 +:10082000809300010E94E60380B38C7080BB81B38B +:10083000836F81BBE4E4F1E0A6E3B1E011921D9285 +:1008400081E0E235F807D1F70C9436039F92AF921E +:10085000BF92CF92DF92EF92FF920F931F93CF93AD +:10086000DF9380910001882379F0809135018F5FBB +:1008700080933501811108C00E944C0380930001D0 +:10088000811102C00E94DE0286E3E82E81E0F82E8C +:100890008701C0E0D0E0BB24B39492E0A92ECC2421 +:1008A000C394D12CC730D10500F58091000181118E +:1008B00064C080E40E94A10380930001811112C0F2 +:1008C00082E10E94CB038093000181110BC0C6011D +:1008D0000C2E01C0880F0A94EAF780950E94CB0382 +:1008E000809300010E94C30348C0CA30A1F028F4DD +:1008F000C83059F0C93061F005C0CC3089F070F0D3 +:10090000CD3089F0209A289810C0219A29980DC0DE +:10091000229A2A980AC0239A2B9807C0529A01C09B +:10092000539A5B9802C03E9A4698E0EAEA95F1F73E +:100930008FB181708B25799902C032E001C030E01F +:10094000832B7C9902C034E001C030E0832B7D9979 +:1009500002C028E001C020E0822B7E9902C090E115 +:1009600001C090E0892B9FB19095991F9927991FFD +:100970009295990F907E892B0FC080910001811173 +:100980004AC080E40E94A10380930001882381F182 +:10099000912C0E94C303892DD8019C91981719F0BE +:1009A0008C93A09201010E94E60321960F5F1F4FD6 +:1009B000CE30D10509F076CF80910101882369F10D +:1009C000815080930101882339F0EFE9FFE03197EE +:1009D000F1F700C0000021C0E4E4F1E0D7018D91FF +:1009E0007D018193B4E4EB16B1E0FB06B9F715C0C5 +:1009F00083E10E94CB03809300018111C9CF81E480 +:100A00000E94A103809300018111C2CF0E94DC03E8 +:100A1000982E9094BECF80E0BFCF0E94DC0281E090 +:100A2000DF91CF911F910F91FF90EF90DF90CF90CA +:100A3000BF90AF909F900895E82FF0E0EC5BFE4FE1 +:100A40008081089508958B3B910580F4883A910543 +:100A500048F5853A9105D8F48430910508F0B2C084 +:100A6000019709F06EC081E090E00895803E910505 +:100A700008F467C0883E910508F4A4C09C01205F7B +:100A800031092031310508F05CC090650895853A40 +:100A9000910509F459C0863A910509F058C082E8D9 +:100AA00090E40895883A910509F454C0893A910573 +:100AB00009F453C08A3A910509F452C08B3A910562 +:100AC00009F451C08C3A910509F450C08D3A910552 +:100AD00009F44FC0803B910509F44EC08E3A910550 +:100AE00009F44DC08F3A910509F44CC0813B910542 +:100AF00009F44BC0823B910509F44AC0833B910540 +:100B000009F449C0843B910509F448C0853B91052F +:100B100009F447C0863B910509F446C0873B91051F +:100B200009F445C0883B910509F444C0893B91050F +:100B300009F443C08A3B910509F442C080E094E483 +:100B4000089580E090E0089581E890E4089583E8B6 +:100B500090E4089582EE94E4089589EE94E4089573 +:100B60008AEE94E4089585EB94E4089586EB94E48A +:100B7000089587EB94E408958CEC94E408958DEC4B +:100B800094E4089583E895E408958AE895E4089547 +:100B900082E995E4089584E995E4089581E296E474 +:100BA000089583E296E4089584E296E4089585E248 +:100BB00096E4089586E296E4089587E296E408951F +:100BC0008AE296E40895089524E5829FC0011124E5 +:100BD000FC0126E0729FE00DF11D1124E60FF11DCE +:100BE000EE0FFF1FEC51FF4F859194910895880FF0 +:100BF000991FFC01E05AF040859194910895880F67 +:100C0000991FFC01E052FF4F85919491089524E5CE +:100C1000829FC0011124FC0146E0749FE00DF11D8C +:100C20001124E60FF11DEE0FFF1FEC51FF4F8591D0 +:100C300094919C013A9521154FE1340708F425C1A0 +:100C40003F512115304120F49F700E94FF05089507 +:100C50009C0130532115304118F49927906C089568 +:100C6000811520E5920769F40E94B9134FEF84E3E0 +:100C70009CE0415080409040E1F700C000000C949F +:100C8000C01A813020E5920731F48091CC01816057 +:100C90008093CC0108959C0130552115304108F016 +:100CA0005CC0292F33272F70332721303105E9F419 +:100CB000AC0164E0440F551F6A95E1F74427537077 +:100CC000BC016370772702C0220F331F6A95E2F7D9 +:100CD0003C68242B352B73E0880F991F7A95E1F738 +:100CE00080769927822B932B08952230310529F4A1 +:100CF000982F8827816F906A089523303105A1F4D9 +:100D0000AC0133E0440F551F3A95E1F7407E577030 +:100D10008370992721E030E002C0220F331F8A95AB +:100D2000E2F7C9019C6816C02430310531F5AC01E9 +:100D300023E0440F551F2A95E1F7407E57708370DA +:100D4000992721E030E002C0220F331F8A95E2F795 +:100D5000C9019A68842B952B08959C013057211561 +:100D6000304118F49F70906208959C01305821150D +:100D7000304118F49F70906A0895803E9105E0F428 +:100D8000803C910558F58133910509F46FC048F412 +:100D90008932910509F463C08A32910509F46DC066 +:100DA00072C089339105E9F082389105D1F085331D +:100DB000910509F44DC067C0833E910581F138F477 +:100DC000803E9105B9F0823E9105D9F05CC0863E27 +:100DD000910561F1873E9105A1F155C00E94F7058B +:100DE00008952091DE0120FD02C021FF4CC080EE5D +:100DF00090E049C08091DE0180FFF9CF89E390E067 +:100E000042C08091DE0182FF0EC08091DE0184FF2E +:100E100003C080E090E037C083EE90E034C0809162 +:100E2000DE0182FFF2CF82EE90E02DC08091DE01E4 +:100E300083FF0BC08091DE0184FDEBCF87EE90E055 +:100E400022C08091DE0183FFF5CF86EE90E01BC0CB +:100E50008091DE0185FF07C089E290E014C0809197 +:100E6000DE0185FFF9CF85E390E00DC08091DE01C2 +:100E700086FF07C08AE290E006C08091DE0186FF0F +:100E8000F9CF81E390E00E942305089508958091B1 +:100E900062010895CF93DF9300D01F92CDB7DEB7E4 +:100EA0009C018091E401843019F593E099833B83A0 +:100EB0002A839093E9008FEF9091E800815095FD8F +:100EC00006C095ED9A95F1F700008111F5CF80915C +:100ED000E80085FF0DC040E050E063E070E0CE0127 +:100EE00001960E94B7098091E8008E778093E80010 +:100EF0000F900F900F90DF91CF910895CF93DF93D4 +:100F000000D01F92CDB7DEB72091E401243021F547 +:100F100022E029839B838A8383E08093E9008FEF1B +:100F20009091E800815095FD06C095ED9A95F1F7F6 +:100F300000008111F5CF8091E80085FF0DC040E0F1 +:100F400050E063E070E0CE0101960E94B709809105 +:100F5000E8008E778093E8000F900F900F90DF915C +:100F6000CF9108959C018091E4018430F9F482E0EE +:100F70008093E9009FEF8091E800915085FD06C0C5 +:100F800085ED8A95F1F700009111F5CF8091E80089 +:100F900085FF0CC040E050E065E070E0C9010E94B0 +:100FA000B7098091E8008E778093E8000895CF9389 +:100FB000DF93EC018091E401843009F046C0909108 +:100FC0000C019923D9F090910D019923B9F08093E8 +:100FD000E9008FEF9091E800815095FD06C095E102 +:100FE0009A95F1F700008111F5CF8091E80085FF17 +:100FF0002CC040E050E060E170E017C081E08093D9 +:10100000E9008FEF9091E800815095FD06C095EDC5 +:101010009A95F1F700008111F5CF8091E80085FFE6 +:1010200014C040E050E068E070E0CE010E94B709D3 +:101030008091E8008E778093E80080E1FE01A2E5D0 +:10104000B1E001900D928A95E1F7DF91CF9108957B +:101050008091E301811109C00E94480B0E94A50BF9 +:101060008091E20084608093E20008951092E30191 +:10107000089508950C94F6200E94561A0E94FC20B0 +:101080000E94500E0C94460742E061EC81E00E9401 +:10109000C10A42E061EC82E00E94C10A42E061ECD8 +:1010A00083E00E94C10A42E161EC84E00C94C10A31 +:1010B0008091E601833009F455C030F4813071F03D +:1010C000823009F48EC008958A3009F47AC08B30DA +:1010D00009F460C0893009F09CC020C08091E5010E +:1010E000813A09F096C08091E800877F8093E800FC +:1010F0008091E9019091EA01892B21F460E182E578 +:1011000091E003C060E080E090E070E00E94020A9D +:101110008091E8008B778093E80008958091E50145 +:10112000813209F076C08091E9019091EA0100973F +:1011300019F0039709F06DC08091E800877F8093D4 +:10114000E8008091E80082FD05C08091E4018111F2 +:10115000F8CF5FC08091F100809362018091E80038 +:101160008B7753C08091E501813A09F052C080919C +:10117000E9019091EA01892B09F04BC08091E800C8 +:10118000877F8093E8008091E80080FFFCCF80910A +:101190000C0136C08091E5018132D9F58091E901D9 +:1011A0009091EA01892BA9F58091E800877F8093CF +:1011B000E8000E94F60A8091E70180930C010C94EC +:1011C000B9138091E501813221F58091E800877F94 +:1011D0008093E8000E94F60A8091E8018093630101 +:1011E00008958091E501813AA1F48091E800877F1C +:1011F0008093E8008091E80080FFFCCF809163013C +:101200008093F1008091E8008E778093E8000C9441 +:10121000F60A089584B7877F84BF0FB6F894A8951F +:1012200080916000886180936000109260000FBE22 +:1012300090E080E80FB6F89480936100909361008D +:101240000FBE0E949F0E0E94480B0E94A50B80912A +:10125000E20084608093E20078940E94300E0E9445 +:10126000A10E82E091E00E944B0E0E94E42080914A +:10127000E401853069F40E94181A8091E201882304 +:10128000B1F30E94421A882391F30E94A109EFCF83 +:101290000E94A70EECCF292F332723303105C9F048 +:1012A00060F42130310581F02230310509F041C070 +:1012B0008DE690E020E133E040C021323105E1F0DD +:1012C0002232310531F135C082E190E02DE733E083 +:1012D00034C099278130910549F028F0029749F5EB +:1012E000ECEDF2E005C0ECE0F3E002C0E4EFF2E088 +:1012F000849190E09F0121C06430D8F4E62FF0E0A3 +:10130000EE0FFF1FEE5DFE4F2081318189E090E0FE +:1013100014C0643070F470E0FB01EE0FFF1FE65E56 +:10132000FE4F20813181FB01EA5EFE4F808190E01B +:1013300004C080E090E020E030E0FA0131832083B7 +:10134000089580E189BD82E189BD09B400FEFDCF29 +:101350008091D8008F7D8093D8008091E0008260DA +:101360008093E0008091E00081FDFCCF0895CF9252 +:10137000DF92EF92FF920F931F93CF93DF93EC01D5 +:101380008B016A010E94150B811133C0C114D10475 +:1013900039F0F60180819181081B190BC80FD91F04 +:1013A000E12CF12C0115110519F18091E80085FD62 +:1013B00016C08091E8008E778093E800C114D104B4 +:1013C00049F0F60180819181E80EF91EF182E082F8 +:1013D00085E00FC00E94150B882321F30AC0899174 +:1013E0008093F10001501109FFEFEF1AFF0ADACFE5 +:1013F00080E0DF91CF911F910F91FF90EF90DF90F0 +:10140000CF9008952091EB013091EC01261737071A +:1014100048F06115710539F42091E8002E7720938A +:10142000E80001C0B901FC0120E06115710579F106 +:101430008091E4018823F1F18530F1F18091E80099 +:1014400083FD3CC08091E80082FD2EC08091E800C1 +:1014500080FFEBCF2091F3008091F20090E0922B7F +:101460006115710551F08830910538F42191209370 +:10147000F100615071090196F3CF21E0089709F05E +:1014800020E08091E8008E778093E800CECF211194 +:10149000CFCF0AC08091E401882361F0853061F0EC +:1014A0008091E80083FD0AC08091E80082FFF2CFBE +:1014B00080E0089582E0089583E0089581E0089532 +:1014C0002091EB013091EC012617370748F06115A8 +:1014D000710539F42091E8002E772093E80001C0CF +:1014E000B901FC0120E06115710591F18091E401E1 +:1014F000882309F440C0853009F43FC08091E8009A +:1015000083FD3DC08091E80082FD2FC08091E800FE +:1015100080FFE9CF2091F3008091F20090E0922BC0 +:101520006115710559F08830910540F4249120939C +:10153000F1003196615071090196F2CF21E00897D0 +:1015400009F020E08091E8008E778093E800CBCF0F +:101550002111CCCF0AC08091E401882361F085304D +:1015600061F08091E80083FD0AC08091E80082FF6D +:10157000F2CF80E0089582E0089583E0089581E04D +:101580000895982F973068F59093E900981739F0EF +:101590007091EC002091ED005091F00003C0242FD9 +:1015A000762F50E021FD02C09F5FECCF3091EB0021 +:1015B0003E7F3093EB003091ED003D7F3093ED00A6 +:1015C0003091EB0031603093EB007093EC0020938E +:1015D000ED005093F0002091EE0027FDE5CF80E074 +:1015E00008958F708093E90081E008958091E5016E +:1015F00087FF11C08091E80082FD05C08091E40161 +:101600008111F8CF11C08091E8008B770BC08091D9 +:10161000E401882349F08091E80080FFF8CF8091B1 +:10162000E8008E778093E80008952091E4003091DF +:10163000E50095E64091EC00842F817040FF23C0C7 +:101640008091E80080FD1DC08091E401882399F01D +:10165000853099F08091EB0085FD11C04091E40048 +:101660005091E5002417350729F3915011F09A01A4 +:10167000E1CF84E0089582E0089583E0089581E059 +:10168000089580E008954091E80042FFDDCF08957D +:101690000E94B60B0E94BE0BE0EEF0E080818160FC +:1016A0008083E8EDF0E080818F77808319BCA7ED1F +:1016B000B0E08C918E7F8C9380818F7E808310929E +:1016C000E30108950F931F93CF93DF930E94B60B0E +:1016D0000E94BE0BC8EDD0E088818F778883888117 +:1016E0008068888388818F7D888319BC1092E4018B +:1016F0001092E0011092E2011092E10100EE10E080 +:10170000F80180818B7F808388818160888342E0BB +:1017100060E080E00E94C10AE1EEF0E080818E7F0F +:101720008083E2EEF0E08081816080838081886048 +:101730008083F80180818E7F8083888180618883A7 +:10174000DF91CF911F910F910895E8EDF0E0808136 +:101750008F7E8083E7EDF0E080818160808384E08C +:1017600082BF81E08093E3010C94620BE8EDF0E02E +:1017700080818E7F80831092E20008951092DA00BB +:101780001092E10008951F920F920FB60F9211244C +:101790002F933F934F935F936F937F938F939F9379 +:1017A000AF93BF93EF93FF938091E10082FF0BC053 +:1017B0008091E20082FF07C08091E1008B7F8093DF +:1017C000E1000E942F0E8091DA0080FF1FC08091FF +:1017D000D80080FF1BC08091DA008E7F8093DA00F2 +:1017E0008091D90080FF0DC080E189BD82E189BD73 +:1017F00009B400FEFDCF81E08093E4010E94280837 +:1018000005C019BC1092E4010E9436088091E100E5 +:1018100080FF19C08091E20080FF15C08091E20036 +:101820008E7F8093E2008091E20080618093E200ED +:101830008091D80080628093D80019BC85E08093A5 +:10184000E4010E943A088091E10084FF30C0809159 +:10185000E20084FF2CC080E189BD82E189BD09B42A +:1018600000FEFDCF8091D8008F7D8093D8008091BD +:10187000E1008F7E8093E1008091E2008F7E809373 +:10188000E2008091E20081608093E2008091E001BB +:10189000882311F084E007C08091E30087FD02C037 +:1018A00081E001C083E08093E4010E943C088091C4 +:1018B000E10083FF29C08091E20083FF25C0809171 +:1018C000E100877F8093E10082E08093E401109241 +:1018D000E0018091E1008E7F8093E1008091E20041 +:1018E0008E7F8093E2008091E20080618093E2002D +:1018F00042E060E080E00E94C10A8091F0008860D0 +:101900008093F0000E943908FF91EF91BF91AF9151 +:101910009F918F917F916F915F914F913F912F9107 +:101920000F900FBE0F901F9018951F920F920FB639 +:101930000F9211242F933F934F935F936F937F9355 +:101940008F939F93AF93BF93CF93DF93EF93FF93C7 +:10195000C091E900CF708091EC00D82FD17080FD4C +:10196000D0E81092E9008091F000877F8093F0002A +:1019700078940E94D90C1092E9008091F000886060 +:101980008093F000CD2BCF70C093E900FF91EF91D1 +:10199000DF91CF91BF91AF919F918F917F916F9187 +:1019A0005F914F913F912F910F900FBE0F901F901D +:1019B00018951F93CF93DF93CDB7DEB7AA970FB6D5 +:1019C000F894DEBF0FBECDBFE5EEF1E08091F100EF +:1019D000819321E0ED3EF207C9F70E9458088091FB +:1019E000E80083FF24C18091E5019091E601492F31 +:1019F00050E04A30510508F01AC1FA01EA5AFF4F87 +:101A00000C948D22803881F0823809F010C18091C9 +:101A1000E9018F708093E9008091EB0085FB8827B6 +:101A200080F91092E90006C08091E1019091E201F5 +:101A3000911182609091E800977F9093E8008093E5 +:101A4000F1001092F100C8C0282F2D7F09F0EFC0DF +:101A5000882319F0823061F0EAC08091E70181307B +:101A600009F0E5C0933009F080E08093E2012BC0DB +:101A70008091E701811127C08091E9018F7009F4FD +:101A8000D6C08093E9002091EB0020FF1CC093306A +:101A900021F48091EB00806214C09091EB00906182 +:101AA0009093EB0021E030E0A90102C0440F551FE4 +:101AB0008A95E2F74093EA001092EA008091EB00E9 +:101AC00088608093EB001092E9008091E800877FA6 +:101AD00086C08111ACC01091E7011F778091E300AF +:101AE0008078812B8093E3008091E800877F80934A +:101AF000E8000E94F60A8091E80080FFFCCF809108 +:101B0000E30080688093E300111102C082E001C00D +:101B100083E08093E4018BC08058823008F087C056 +:101B20008091E7019091E8018C3D53E0950779F5AC +:101B300083E08A838AE289834FB7F894DE011396A3 +:101B400020E03EE051E2E32FF0E050935700E491B3 +:101B500020FF03C0E295EF703F5FEF708E2F90E0A3 +:101B6000EA3010F0C79601C0C0968D939D932F5F09 +:101B7000243149F74FBF8091E800877F8093E800C8 +:101B80006AE270E0CE0101960E94020A14C0AE0122 +:101B90004F5F5F4F6091E9010E944B09BC01892BA7 +:101BA00009F445C09091E800977F9093E8008981FF +:101BB0009A810E94600A8091E8008B778093E80008 +:101BC00036C08038A1F58091E800877F8093E800D7 +:101BD0008091E0018093F1008091E8008E778093FE +:101BE000E8000E94F60A23C0811121C08091E7011C +:101BF0009091E80199270297D4F48091E800877FBB +:101C00008093E8008091E7018093E0010E94F60A4A +:101C10008091E001811106C08091E30087FD02C040 +:101C200081E001C084E08093E4010E944408809137 +:101C3000E80083FF0AC08091E800877F8093E80076 +:101C40008091EB0080628093EB00AA960FB6F89427 +:101C5000DEBF0FBECDBFDF91CF911F9108950895D4 +:101C6000CF938091E4018823A1F0C091E900CF7067 +:101C70009091EC00892F817090FD80E8C82B109224 +:101C8000E9008091E80083FD0E94D90CCF70C093D9 +:101C9000E900CF91089590936901809368010895B8 +:101CA000E0916801F0916901309721F00190F08195 +:101CB000E02D099480E00895E0916801F0916901B8 +:101CC000309721F00280F381E02D09940895E0918E +:101CD0006801F0916901309721F00480F581E02DD1 +:101CE00009940895209166013091670128173907FA +:101CF00071F09093670180936601E0916801F09123 +:101D00006901309721F00680F781E02D099408954C +:101D100020916401309165012817390771F0909383 +:101D2000650180936401E0916801F0916901309749 +:101D300021F00084F185E02D0994089508950C9414 +:101D40009E0E0E945C1A0E940E040C94221BCF92DD +:101D5000DF92EF92FF920F931F93CF93DF93CDB754 +:101D6000DEB72B970FB6F894DEBF0FBECDBF0E9433 +:101D700026048BE6C82E81E0D82E00E010E0E02E8D +:101D8000802F0E941C05F60141916F01F82EF42668 +:101D9000B1F40F5F1F4F0E30110589F78FEF898364 +:101DA0008A831B820E94651A8160782F9D838C83B1 +:101DB00049815A816B818D810E944A0F40C0909168 +:101DC000CC0191FF04C08B870E9422058B8520E007 +:101DD00030E04F2D50E0922FBA01022E02C07595CF +:101DE00067950A94E2F760FF24C02E83EF8221E01A +:101DF00030E0690102C0CC0CDD1C9A95E2F790E05E +:101E00008C219D21892B09F420E028870E94651AE6 +:101E10008160782F9A8789874E815F8168858A855E +:101E20000E944A0FF801E559FE4F8081C826C08202 +:101E300006C02F5F3F4F2630310569F6AACF0E94BA +:101E4000091E0E94500E90916A018917A1F00E940C +:101E5000500E80936A012B960FB6F894DEBF0FBE2A +:101E6000CDBFDF91CF911F910F91FF90EF90DF9049 +:101E7000CF900C9446072B960FB6F894DEBF0FBE9A +:101E8000CDBFDF91CF911F910F91FF90EF90DF9029 +:101E9000CF900895CF93DF93CDB7DEB72B970FB6D2 +:101EA000F894DEBF0FBECDBF4F83588769877A870E +:101EB0008B87DE01119686E0FD0111928A95E9F784 +:101EC00085E0FE01379601900D928A95E1F74981F0 +:101ED0005A816B817C818D819E810E944D162B964B +:101EE0000FB6F894DEBF0FBECDBFDF91CF9108953E +:101EF000CF93C82F882309F4C1C0823859F40E94B7 +:101F0000500E81FDBBC089E30E94EA180E94A2190D +:101F100089E30CC0833879F40E94500E80FDAEC076 +:101F200083E50E94EA180E94A21983E50E942919FC +:101F3000CF910C94A219843859F40E94500E82FD5E +:101F40009DC087E40E94EA180E94A21987E4EECFA0 +:101F50008CEF8C0F813A48F48C2F0E94492081111C +:101F60008DC08C2F0E94EA18E3CF80E28C0F88305E +:101F700048F4C77081E001C0880FCA95EAF70E9453 +:101F80006B19D6CF8BE58C0F833078F4C53A29F0E6 +:101F9000C63A31F083E890E005C081E890E002C0E5 +:101FA00082E890E0CF910C94720E88E58C0F83311B +:101FB00008F064C0C83A39F1C93A41F1CA3A49F166 +:101FC000CB3A51F1CC3A59F1CD3A61F1C03B69F1CC +:101FD000CE3A71F1CF3A79F1C13B81F1C23B89F13F +:101FE000C33B91F1C43B99F1C53BA1F1C63BA9F1BB +:101FF000C73BB1F1C83BB9F1C93BC1F1CA3BC9F11B +:1020000080E090E038C082EE90E035C089EE90E04C +:1020100032C08AEE90E02FC085EB90E02CC086EBBA +:1020200090E029C087EB90E026C08CEC90E023C0C4 +:102030008DEC90E020C083E891E01DC08AE891E03B +:102040001AC082E991E017C084E991E014C081E2EE +:1020500092E011C083E292E00EC084E292E00BC0F5 +:1020600085E292E008C086E292E005C087E292E055 +:1020700002C08AE292E0CF910C94880ECF9108952D +:10208000882309F44BC0823859F40E94500E81FF16 +:1020900045C089E30E94EA180E94A21989E30CC096 +:1020A000833871F40E94500E80FF38C083E50E948F +:1020B000EA180E94A21983E50E9429190C94A2191A +:1020C000843859F40E94500E82FF28C087E40E9491 +:1020D000EA180E94A21987E4EFCF9CEF980F913A7B +:1020E00058F390E2980F983050F4877091E001C057 +:1020F000990F8A95EAF7892F0E947119DFCF9BE526 +:10210000980F933020F480E090E00C94720E885A7F +:10211000833120F480E090E00C94880E08958823A9 +:1021200021F00E946B190C94A2190895882321F0C4 +:102130000E9471190C94A2190895BF92CF92DF9258 +:10214000EF92FF920F931F93CF93DF9300D000D0B5 +:1021500000D0CDB7DEB77C0185E0F701DE01119636 +:1021600001900D928A95E1F7F70183819481892B83 +:1021700009F4DDC2908181818F3F19F49F3F09F4FA +:10218000D6C2F7010281258122952F7099838A8317 +:1021900089819A812E830E94A918182FB92E0E9436 +:1021A000A8180E946F17EB2DE295EF704E2F50E0AC +:1021B000FA01E05AFF4F2E810C948D228B2D807FE7 +:1021C0009B2D9F70F92E882319F0F29480EFF8224E +:1021D000002349F0FF2009F457C28F2D0E947B197C +:1021E0000E94A21951C2812F0E944010FF2009F4C1 +:1021F0009EC28F2D0E94811926960FB6F894DEBFDD +:102200000FBECDBFDF91CF911F910F91FF90EF9047 +:10221000DF90CF90BF900C94A2193B2D307F8B2D77 +:102220008F70303211F08295807F112319F01130B8 +:1022300021F12CC00023B9F0222309F490C12130F0 +:1022400009F08DC126960FB6F894DEBF0FBECDBF44 +:10225000DF91CF911F910F91FF90EF90DF90CF9082 +:10226000BF900C948B19222319F0213009F45FC21E +:102270008E830E948E198E8186C1002321F0223028 +:1022800008F055C26CC1211152C27DC1002321F05A +:10229000222309F464C1F8C1222309F474C109C2DC +:1022A0008B2D86958695837019F08130D1F03FC2D1 +:1022B000002321F0812F9B2D937002C080E090E0DD +:1022C00026960FB6F894DEBF0FBECDBFDF91CF913B +:1022D0001F910F91FF90EF90DF90CF90BF900C94E3 +:1022E000720E002321F0812F9B2D937002C080E09D +:1022F00090E026960FB6F894DEBF0FBECDBFDF91FB +:10230000CF911F910F91FF90EF90DF90CF90BF90F2 +:102310000C94880E812F002319F00E94111D02C019 +:102320000E94791D26960FB6F894DEBF0FBECDBF72 +:10233000DF91CF911F910F91FF90EF90DF90CF90A1 +:10234000BF900C94FE1D8B2D837009F075C0011198 +:10235000EEC1812F829586958770880F880F912F07 +:102360009F70C92ED12CE12CF12C082E04C0CC0C6E +:10237000DD1CEE1CFF1C0A94D2F714FF12C00FE004 +:1023800010E020E030E004C0000F111F221F331FB7 +:102390008A95D2F7C901B80160957095809590959E +:1023A00003C060E070E0CB014B2D4695469543702D +:1023B0004230C1F060F56C297D298E299F2941307A +:1023C00051F126960FB6F894DEBF0FBECDBFDF9158 +:1023D000CF911F910F91FF90EF90DF90CF90BF9022 +:1023E0000C9496176C297D298E299F2926960FB665 +:1023F000F894DEBF0FBECDBFDF91CF911F910F913B +:10240000FF90EF90DF90CF90BF900C94B2170E9496 +:102410009617C701B60126960FB6F894DEBF0FBE19 +:10242000CDBFDF91CF911F910F91FF90EF90DF9083 +:10243000CF90BF900C947A17002319F08B2D8170E8 +:1024400001C08695882309F472C1812F82958695F3 +:102450008770880F880F912F9F70C92ED12CE12C87 +:10246000F12C082E04C0CC0CDD1CEE1CFF1C0A94C1 +:10247000D2F714FF12C00FE010E020E030E004C0FB +:10248000000F111F221F331F8A95D2F7C901B8010F +:10249000609570958095909503C060E070E0CB01E9 +:1024A0004B2D4695469543704230C1F060F56C293E +:1024B0007D298E299F29413051F126960FB6F89437 +:1024C000DEBF0FBECDBFDF91CF911F910F91FF9067 +:1024D000EF90DF90CF90BF900C9470186C297D29FD +:1024E0008E299F2926960FB6F894DEBF0FBECDBF6A +:1024F000DF91CF911F910F91FF90EF90DF90CF90E0 +:10250000BF900C948C180E947018C701B6012696D3 +:102510000FB6F894DEBF0FBECDBFDF91CF911F91F4 +:102520000F91FF90EF90DF90CF90BF900C945418D4 +:10253000103FD1F118F4103E50F4A1C0123F09F43D +:1025400063C008F44CC0133F09F473C098C01F70F7 +:102550008B2D8F710023A1F00E94ED17812F2696FD +:102560000FB6F894DEBF0FBECDBFDF91CF911F91A4 +:102570000F91FF90EF90DF90CF90BF900C948F1051 +:102580000E940E18812F26960FB6F894DEBF0FBE5C +:10259000CDBFDF91CF911F910F91FF90EF90DF9012 +:1025A000CF90BF900C9496100023A9F02111BFC0CA +:1025B0008B2D8F7126960FB6F894DEBF0FBECDBF60 +:1025C000DF91CF911F910F91FF90EF90DF90CF900F +:1025D000BF900C943318223008F0A9C0E9CF002333 +:1025E000A9F08B2D8F7126960FB6F894DEBF0FBE23 +:1025F000CDBFDF91CF911F910F91FF90EF90DF90B2 +:10260000CF90BF900C94ED17002359F38B2D8F7151 +:1026100026960FB6F894DEBF0FBECDBFDF91CF91E7 +:102620001F910F91FF90EF90DF90CF90BF900C948F +:102630000E18002399F08B2D8F7126960FB6F89403 +:10264000DEBF0FBECDBFDF91CF911F910F91FF90E5 +:10265000EF90DF90CF90BF900C94D81726960FB6CE +:10266000F894DEBF0FBECDBFDF91CF911F910F91C8 +:10267000FF90EF90DF90CF90BF900C94CE17002387 +:10268000A9F0222309F4ADCF812F26960FB6F89436 +:10269000DEBF0FBECDBFDF91CF911F910F91FF9095 +:1026A000EF90DF90CF90BF900C94780F222309F425 +:1026B000ADCF812F26960FB6F894DEBF0FBECDBFEB +:1026C000DF91CF911F910F91FF90EF90DF90CF900E +:1026D000BF900C9440104B2D4F70612FC7010E948A +:1026E000AE0226960FB6F894DEBF0FBECDBFDF91C7 +:1026F000CF911F910F91FF90EF90DF90CF90BF90FF +:102700000C94F2164B2D4F70612FC70126960FB611 +:10271000F894DEBF0FBECDBFDF91CF911F910F9117 +:10272000FF90EF90DF90CF90BF900C94E30526963A +:102730000FB6F894DEBF0FBECDBFDF91CF911F91D2 +:102740000F91FF90EF90DF90CF90BF9008950E947F +:1027500088190E945D190E94A2190E94AE1E0E9453 +:10276000FE1D80E090E00E94720E80E090E00C94EC +:10277000880E0E9478190C94A7130E94A918292F7B +:1027800022952F702C3030F42A3048F42250223019 +:1027900078F405C02C3041F02F3031F009C0803E74 +:1027A00048F0803F29F406C093FB882780F90895FC +:1027B00080E0089581E00895CF93DF9300D000D0AA +:1027C0001F92CDB7DEB70F900F900F900F900F9024 +:1027D000DF91CF910895CF93DF9300D000D000D048 +:1027E000CDB7DEB726960FB6F894DEBF0FBECDBFCD +:1027F000DF91CF9108951F93CF93DF93C09179011B +:1028000016E080917A01C81799F0D0E01C9FF00182 +:102810001D9FF00D1124E558FE4F408151816281CA +:102820007381848195810E94EB132196C770E9CF53 +:10283000DF91CF911F9108954091AB015091AC0170 +:102840006091AD017091AE018091AF019091B001A6 +:102850000C94EB138091B00182958F7009F054C0F5 +:102860008091AD01882309F44FC080917901A09136 +:102870007A014091AE015091AF016091AB0170912E +:10288000AC01B6E08A1709F43FC090E0411551054C +:10289000C1F17F3F11F46F3FA1F1B89FF001B99FE3 +:1028A000F00D1124E558FE4F218127132AC0208105 +:1028B000261327C02281211124C0238134812417AB +:1028C000350710F421503109241B350B283C310504 +:1028D000C0F42091B0012F7020612093B00126E058 +:1028E000289FF001299FF00D1124E058FE4F8081B0 +:1028F0008F70806180838BEA91E00E949D100C9420 +:10290000FB1301968770BECF0895CF92DF92EF92AE +:10291000FF920F931F93CF93DF93CDB7DEB76297EC +:102920000FB6F894DEBF0FBECDBF8C0185E0F80175 +:10293000DE011D9601900D928A95E1F7D8014C9128 +:1029400011965C91119712966C918091AE019091C5 +:10295000AF01009709F475C13091AB017091AC01E2 +:102960007F3F19F43F3F09F46CC1F801C380D48064 +:10297000E090AD01EE2009F4BEC02091B001C81670 +:10298000D90628F0D601A81BB90BCD0104C080954B +:1029900090958C0D9D1DFF24F394883C910578F053 +:1029A000F12C207F09F0C4C07C2DD98AC88A89897E +:1029B0000E94DC138BEA91E00E949D10AFC0822F31 +:1029C000807F09F045C0571313C0431311C0611134 +:1029D0000FC02F7020612093B0010E941C148BEA5D +:1029E00091E00E949D108091B001F80185832EC076 +:1029F000CD2819F15F3F11F44F3FF9F0F62E611128 +:102A00001CC08091790120917A0136E0821709F487 +:102A10005BC090E0389FF001399FF00D1124E5581C +:102A2000FE4F7181571306C07081471303C0728136 +:102A3000711103C001968770E9CFF62E662309F461 +:102A40001CC18091B00181608093B001F12C15C14F +:102A5000571309C0431307C0611105C08091B0012D +:102A6000F8018583C8C04D875E878D859E856A8BFA +:102A70000E94BD136A898823D1F16623C1F1209198 +:102A8000B001822F82958F7090E0029774F0809150 +:102A9000AB019091AC0198878F831986DB86CA863B +:102AA0002C87CE0107960E949D1086E0F801ABEAC4 +:102AB000B1E001900D928A95E1F70E942A140E94DC +:102AC0001C14FF24F394D9C04D875E878D859E85A5 +:102AD0000E94A918292F22952F70223008F0C1C01A +:102AE0009F7009F0BBC0805E883008F4C6C0C80182 +:102AF0000E949D10E6CFC816D90608F453C0F6010F +:102B0000E81BF90BCF01883C910508F450C0F12C6B +:102B10007C2DD98AC88A89890E94DC13EBEAF1E00E +:102B200086E0DF011D928A95E9F70E941C14A5C07A +:102B3000571314C0431312C0611110C08091B0012B +:102B4000F8018583C8010E949D1086E0EBEAF1E060 +:102B5000DF011D928A95E9F7FE2C8FC04D875E87B5 +:102B60008D859E856A8B0E94BD136A89882309F42E +:102B7000BECF662309F4BBCF2091B001822F82958E +:102B80008F7090E002970CF490CF8091AB01909100 +:102B9000AC019A8389831B82DD82CC822E83CE0195 +:102BA000019681CF809590958C0D9D1DACCFF62E12 +:102BB000662309F49CCF571333C0431331C02091CF +:102BC000B00120FD24C0822F82958F70482F50E0E5 +:102BD00041155105E1F0D80115962C9315974F300A +:102BE000510549F08F5F982F9295907F822F8F70BB +:102BF000892B15968C93C8010E949D1086E0F801E0 +:102C0000ABEAB1E001900D928A95E1F78ECF86E0B4 +:102C1000F801ABEAB1E001900D928A95E1F72DC081 +:102C20004D875E878D859E850E94BD1381113DCFA6 +:102C30008091B00181608093B001C8010E949D1015 +:102C40001CC0662309F453CF4D875E878D859E8512 +:102C50000E94BD13882309F44ACF27CF811143CFA7 +:102C60000CC0243008F043CF9F7009F43CCFD8014A +:102C700015969C91907F09F036CF8F2D62960FB6F6 +:102C8000F894DEBF0FBECDBFDF91CF911F910F91A2 +:102C9000FF90EF90DF90CF9008951F93CF93DF9335 +:102CA000CDB7DEB72C970FB6F894DEBF0FBECDBF01 +:102CB0004F83588769877A878B879C87CE010796D1 +:102CC0000E948514882371F08A859B85892B09F4DD +:102CD00041C088858F3F09F065C08F818F3F09F023 +:102CE00061C038C086E0FE013796DE011196019082 +:102CF0000D928A95E1F76A857B856115710551F121 +:102D0000FF81E885EF3F11F4FF3F21F120917A0127 +:102D100030E0C9010196877099274091790150E010 +:102D20008417950709F447C0F983EA837D836C8390 +:102D300096E0929FD001939FB00D1124A558BE4FED +:102D4000FE01319601900D929A95E1F780937A01F8 +:102D50000E94FB1316E08091790190917A01891706 +:102D6000B9F1189FC001112485589E4F0E94851407 +:102D7000882371F1E09179011E9FF0011124E5583B +:102D8000FE4F4081518162817381848195810E94CF +:102D9000EB138091790190E00196877099278093D9 +:102DA0007901D9CF4F81588569857A858B859C8536 +:102DB0000E94EB13CFCF0E94B91310927A011092A8 +:102DC0007901EBEAF1E086E0DF011D928A95E9F7EF +:102DD0002C960FB6F894DEBF0FBECDBFDF91CF911A +:102DE0001F910895EF92FF920F931F93CF93DF935C +:102DF0008C01892B09F46CC0F12CEE24E394E801DA +:102E00002196F8018491843740F4843008F051C051 +:102E1000813081F0823019F15BC0853709F444C0FC +:102E2000A8F19CE7980F903708F052C08F770E9466 +:102E3000401041C00E5F1F4FFE01849190E2980F39 +:102E4000983050F48770FE2D01C0FF0F8A95EAF785 +:102E50008F2F0E947B1914C00E94780F2DC00E5F27 +:102E60001F4FFE01849190E2980F983060F48770B4 +:102E7000FE2D01C0FF0F8A95EAF78F2F0E9481195E +:102E80000E94A21919C00E94401016C00E5F1F4F69 +:102E9000FE01C491CC2381F08FE99FE00197F1F707 +:102EA00000C00000C150F6CF0E5F1F4FFE01F4902E +:102EB00003C00E94780F8E018F2D882309F49FCFC5 +:102EC000EFE9FFE03197F1F700C000008150F5CF46 +:102ED000DF91CF911F910F91FF90EF90089508958A +:102EE0006093B5017093B6018093B7019093B801D8 +:102EF0000C94A7130F931F930091B5011091B60185 +:102F00002091B7013091B801DC01CB01802B912BCE +:102F1000A22BB32B8093B5019093B601A093B70178 +:102F2000B093B8011F910F910C94A7130F931F93A7 +:102F30000091B5011091B6012091B7013091B8010F +:102F4000DC01CB0180239123A223B3238093B5011D +:102F50009093B601A093B701B093B8011F910F9160 +:102F60000C94A7130F931F930091B5011091B60114 +:102F70002091B7013091B801DC01CB018027912766 +:102F8000A227B3278093B5019093B601A093B70110 +:102F9000B093B8011F910F910C94A7131092B10137 +:102FA0001092B2011092B3011092B4010C94A713C5 +:102FB00041E050E060E070E004C0440F551F661F20 +:102FC000771F8A95D2F74093B1015093B201609375 +:102FD000B3017093B4010C94A71341E050E060E09A +:102FE00070E004C0440F551F661F771F8A95D2F703 +:102FF0008091B1019091B201A091B301B091B4015F +:10300000482B592B6A2B7B2B4093B1015093B20173 +:103010006093B3017093B4010C94A71341E050E0A6 +:1030200060E070E004C0440F551F661F771F8A954B +:10303000D2F740955095609570958091B10190912F +:10304000B201A091B301B091B401482359236A237E +:103050007B234093B1015093B2016093B30170930D +:10306000B4010C94A71341E050E060E070E004C0AC +:10307000440F551F661F771F8A95D2F78091B101C3 +:103080009091B201A091B301B091B40148275927A2 +:103090006A277B274093B1015093B2016093B3013B +:1030A0007093B4010C94A7130F931F930091B10177 +:1030B0001091B2012091B3013091B401DC01CB0138 +:1030C000802B912BA22BB32B8093B1019093B20153 +:1030D000A093B301B093B4011F910F910C94A71367 +:1030E0000F931F930091B1011091B2012091B30190 +:1030F0003091B401DC01CB0180239123A223B323BF +:103100008093B1019093B201A093B301B093B40145 +:103110001F910F910C94A7130F931F930091B1016E +:103120001091B2012091B3013091B401DC01CB01C7 +:1031300080279127A227B3278093B1019093B201F2 +:10314000A093B301B093B4011F910F910C94A713F6 +:103150000895CF92DF92EF92FF920F931F93CF9338 +:10316000DF938C01C090B101D090B201E090B30127 +:10317000F090B4018091B5019091B601A091B70192 +:10318000B091B801C82AD92AEA2AFB2ACFE1D0E0B7 +:10319000D701C6010C2E04C0B695A79597958795C3 +:1031A0000A94D2F780FF07C0B8018C2F0E9407064F +:1031B0008130910531F4219758F7B80180E00E94E1 +:1031C0000706DF91CF911F910F91FF90EF90DF9055 +:1031D000CF90089590910C019923F1F090910D01F9 +:1031E0009923D1F0982F9695969596959F3080F5D6 +:1031F000E0910E01F0910F01E90FF11D877021E0C0 +:1032000030E0A90102C0440F551F8A95E2F7CA01B8 +:103210009181892B8183089520910E0130910F01B6 +:10322000F90132969FEF40E05191851789F09F3F59 +:1032300019F4511101C0942F4F5F4E30A9F79F3FF1 +:1032400039F0F901E90FF11D97FDFA958283089590 +:10325000089590910C019923F9F090910D01992313 +:10326000D9F0982F9695969596959F3028F5E091F0 +:103270000E01F0910F01E90FF11D877021E030E0A0 +:10328000A90102C0440F551F8A95E2F7CA01809533 +:10329000918189238183089520910E0130910F013E +:1032A000F9013296205F3F4F9081891301C010824F +:1032B0003196E217F307C1F7089581E090E0E091BD +:1032C0000E01F0910F01E80FF91F10820196803175 +:1032D0009105A9F708959091CB01892B8093CB019B +:1032E000089580959091CB0189238093CB01089517 +:1032F0001092CB0108959091CA01892B8093CA0145 +:10330000089580959091CA0189238093CA010895F8 +:103310001092CA0108958093B90108951092B901DD +:10332000089580910E0190910F01FC0131969C014E +:10333000205F3F4F80E0919191118F5FE217F3077B +:10334000D1F70895E0910E01F0910F018091CB012A +:103350008083E0910E01F0910F0190818091CA016C +:10336000892B80838091B901882361F0E0910E015F +:10337000F0910F019081892B80830E949119811116 +:103380001092B90180910E0190910F010C945C0E86 +:10339000CF92DF92EF92FF926C01EE24FF24C114D2 +:1033A000D104E104F10421F0C701B60120E101C01C +:1033B00020E0C72ED82EE92EFF24C114D104E10449 +:1033C000F10419F0285FC701B6016B017C0154E0DC +:1033D000F694E794D794C7945A95D1F7C114D104C1 +:1033E000E104F10419F02C5FC701B6016B017C0107 +:1033F00042E0F694E794D794C7944A95D1F7C11464 +:10340000D104E104F10419F02E5FC701B601DC011B +:10341000CB01B695A79597958795892B8A2B8B2BF2 +:1034200009F02F5F822FFF90EF90DF90CF900895EB +:103430008091E401843011F120E488E190E00FB63E +:10344000F894A895809360000FBE2093600083B726 +:10345000817F846083BF83B7816083BF78948895C0 +:1034600083B78E7F83BF0FB6F894A89580916000D4 +:10347000886180936000109260000FBE08950895E7 +:103480000C943F1ACF930E94401A0E9426040E9477 +:103490003F1AC0E08C2F0E941C05811104C0CF5F31 +:1034A000CE30C1F701C081E0CF9108950E94B913D9 +:1034B0000E94500E0C94460782E084BD93E095BDB7 +:1034C0009AEF97BD80936E0008952FB7F89480917E +:1034D000CD019091CE01A091CF01B091D0012FBF2D +:1034E0000895CF92DF92EF92FF920F931F932FB721 +:1034F000F8944091CD015091CE016091CF0170912F +:10350000D0012FBF6A017B01EE24FF248C0120E053 +:1035100030E0C016D106E206F30610F4415051091E +:103520009A01281B390BC9011F910F91FF90EF9051 +:10353000DF90CF9008951F920F920FB60F92112433 +:103540008F939F93AF93BF938091CD019091CE01C4 +:10355000A091CF01B091D0010196A11DB11D809322 +:10356000CD019093CE01A093CF01B093D001BF9134 +:10357000AF919F918F910F900FBE0F901F90189554 +:103580000E94480BF8942FEF87EA91E62150804083 +:103590009040E1F700C0000087E090EBDC018093F1 +:1035A000ED019093EE01A093EF01B093F0019CE048 +:1035B00088E10FB6F894A895809360000FBE9093B1 +:1035C0006000FFCFEF92FF920F931F93CF93DF9393 +:1035D000D82FC0E08C2F0E941C0500E010E0E82EE0 +:1035E000F12CC701002E02C0959587950A94E2F749 +:1035F00080FD06C00F5F1F4F0630110591F709C00F +:10360000602F7C2F80E00E94E4058D13F3CF81E0D2 +:1036100004C0CF5FCE30F1F680E0DF91CF911F91F3 +:103620000F91FF90EF900895CF93C82F8CE20E94E6 +:10363000E21A882321F08C2FCF910C94E21A80E0BB +:10364000CF910895CF930E94691C811102C00E94FE +:103650004F1CC5E6C15049F00E9426048FE39CE947 +:103660000197F1F700C00000F5CF89E20E94141B1A +:10367000811113C18AE20E94141B81110E944F1C08 +:1036800085E00E94141B81110E94C01A0E94741CC4 +:103690008093CC0187E00E94141B8823A9F18BE161 +:1036A0000E94141B882351F08091CC0181FB2227BA +:1036B00020F991E0922790FB81F90EC08EE00E94E4 +:1036C000141B882361F08091CC0182FB222720F912 +:1036D00091E0922790FB82F98093CC0115C080E1A4 +:1036E0000E94141B9091CC01882341F093FB222768 +:1036F00020F981E0822780FB93F904C0892F80950F +:1037000080FB90F99093CC018091CC010E94781CB1 +:103710000E94861C8093DE0180EE0E94141B882389 +:1037200041F08091DE01982F909590FB80F9809375 +:10373000DE0189E30E94141B882359F08091DE0189 +:1037400081FB222720F991E0922790FB81F9809359 +:10375000DE0182EE0E94141B882359F08091DE0165 +:1037600082FB222720F991E0922790FB82F9809337 +:10377000DE0186EE0E94141B882359F08091DE0141 +:1037800083FB222720F991E0922790FB83F9809315 +:10379000DE0183EE0E94141B882359F08091DE0124 +:1037A00084FB222720F991E0922790FB84F98093F3 +:1037B000DE0185E30E94141B882359F08091DE010D +:1037C00085FB222720F991E0922790FB85F98093D1 +:1037D000DE0181E30E94141B882359F08091DE01F1 +:1037E00086FB222720F991E0922790FB86F98093AF +:1037F000DE0181E10E94141B882359F08091DE01D3 +:1038000087FB222720F991E0922790FB87F980938C +:10381000DE018091DE010E948A1C8091DE0187FB1F +:10382000882780F980930D0187E20E94141BC82F1E +:103830008EE10E94141B8111C2608FE10E94141B53 +:103840008111C46080E20E94141B8111C86081E272 +:103850000E94141B8111C06182E20E94141B81111D +:10386000C06283E20E94141B8111C06484E20E9442 +:10387000141B882311F0C06802C0CC2329F08C2FC0 +:103880000E94811C6C2F03C00E947D1C682F70E079 +:1038900080E090E0CF910C947017CF9108956DEE79 +:1038A0007EEF80E090E00E94C32260E082E090E042 +:1038B0000E94B52260E083E090E00E94B52260E0C3 +:1038C00084E090E00E94B52260E085E090E00C94F6 +:1038D000B52280E090E00E94AF2221E08D3E9E4F15 +:1038E00009F020E0822F089582E090E00C94A72256 +:1038F000682F82E090E00C94B52283E090E00C9475 +:10390000A722682F83E090E00C94B52284E090E039 +:103910000C94A722682F84E090E00C94B52280914B +:10392000D30180FF0BC06091130185E0689FB00157 +:10393000112475956795759567952BC081FF09C012 +:103940006091130185E0689FB0011124759567951A +:1039500020C082FF07C06091130185E0689FB0011D +:10396000112417C09091D4019923D1F060911201D4 +:10397000961788F72091130185E0289F9001112464 +:10398000929FA001939F500D112470E0CA010E94E4 +:1039900079226038710540F46115710519F406C08B +:1039A00065E070E0862F08958FE7089581E008951F +:1039B0008091D30180FF08C06091110170E075957E +:1039C00067957595679521C081FF06C060911101CB +:1039D00070E07595679519C082FF04C06091110170 +:1039E00070E010C09091D401992399F0609110017A +:1039F0009617A0F780911101899FC001112470E0F2 +:103A00000E9479226038710540F46115710519F43E +:103A100006C061E070E0862F08958FE7089581E089 +:103A20000895803F21F40E948F1C819504C0813F3E +:103A300029F40E948F1C8093D7010895823F21F4BE +:103A40000E948F1C819504C0833F29F40E948F1C23 +:103A50008093D6010895893F19F40E94D81C05C0AF +:103A60008A3F31F40E94D81C81958093D801089533 +:103A70008B3F21F40E94D81C819504C08C3F29F40F +:103A80000E94D81C8093D9010895843F21F480912D +:103A9000D501816017C0853F21F48091D5018260F6 +:103AA00011C0863F21F48091D50184600BC0873F0F +:103AB00021F48091D501886005C0883F31F4809160 +:103AC000D50180618093D50108958D3F21F48091C7 +:103AD000D30181600BC08E3F21F48091D3018260BD +:103AE00005C08F3F29F48091D30184608093D30176 +:103AF0000895803F39F48091D70187FF6CC0109200 +:103B0000D70169C0813F29F48091D7011816BCF311 +:103B100062C09091D601823F29F497FF5CC0109259 +:103B2000D60159C0833F19F41916CCF354C0893F0C +:103B300041F48091D80118160CF04DC01092D801B4 +:103B40004AC08A3F29F48091D80187FF44C0F6CF4C +:103B50008B3F39F48091D90187FF3DC01092D90184 +:103B60003AC08C3F29F48091D9011816BCF333C0B8 +:103B7000843F21F48091D5018E7F17C0853F21F4C9 +:103B80008091D5018D7F11C0863F21F48091D501B0 +:103B90008B7F0BC0873F21F48091D501877F05C0C3 +:103BA000883F31F48091D5018F7E8093D50113C079 +:103BB0008D3F21F48091D3018E7F0BC08E3F21F485 +:103BC0008091D3018D7F05C08F3F29F48091D3016F +:103BD0008B7F8093D3018091D60181110EC080919B +:103BE000D70181110AC08091D801811106C080914E +:103BF000D901811102C01092D401089585ED91E0A0 +:103C00000E94670E0E94651A9093D2018093D101A1 +:103C100008951F93CF93DF938091D1019091D201AA +:103C20000E94711AAC019091D401992321F0209146 +:103C3000140130E006C0209115018AE0289F900110 +:103C400011244217530708F485C08091D601C09112 +:103C5000D701D091D8011091D901811107C0C111AC +:103C600075C0D11173C0111171C074C09F3F19F09C +:103C70009F5F9093D401181624F40E948F1C8093A8 +:103C8000D6018091D60187FF05C00E948F1C8195C7 +:103C90008093D6011C1624F40E948F1C8093D701B8 +:103CA0008091D70187FF05C00E948F1C819580936A +:103CB000D7016091D601662331F1C091D701CC23A1 +:103CC00011F1062E000C770B880B990B0E948021B6 +:103CD00023E333E343E35FE30E94E4210E944821AE +:103CE0006093D6016C2FCC0F770B880B990B0E9439 +:103CF000802123E333E343E35FE30E94E4210E9456 +:103D000048216093D7011D1624F40E94D81C80938B +:103D1000D8018091D80187FF05C00E94D81C8195E9 +:103D20008093D801111624F40E94D81C8093D901E5 +:103D30008091D90187FF05C00E94D81C819580938E +:103D4000D901DF91CF911F910C94FE1D9F3F09F087 +:103D50008FCFA0CFDF91CF911F910895E5EDF1E0D6 +:103D600085E0DF011D928A95E9F71092D401109247 +:103D7000D3010895833081F128F4813059F08230E5 +:103D8000D1F00895853009F449C0B8F1863009F4BE +:103D900056C0089580911501262F30E0280F311D5F +:103DA0002F3F310524F4680F6093150108958FEFBC +:103DB00080931501089580911401262F30E0280F7B +:103DC000311D2F3F310524F4680F609314010895CD +:103DD0008FEF80931401089580911301262F30E016 +:103DE000280F311D2F3F310524F4680F6093130114 +:103DF00008958FEF80931301089580911201262F6B +:103E000030E0280F311D2F3F310524F4680F6093F7 +:103E1000120108958FEF809312010895809111018E +:103E2000262F30E0280F311D2F3F310524F4680F75 +:103E30006093110108958FEF80931101089580918F +:103E40001001262F30E0280F311D2F3F310524F4BB +:103E5000680F6093100108958FEF8093100108950B +:103E6000833011F128F4813049F0823091F00895C7 +:103E7000853081F120F18630C1F1089580911501DE +:103E8000681720F4861B8093150108951092150180 +:103E9000089580911401681720F4861B8093140103 +:103EA000089510921401089580911301681720F469 +:103EB000861B809313010895109213010895809139 +:103EC0001201681720F4861B809312010895109246 +:103ED0001201089580911101681720F4861B8093C8 +:103EE0001101089510921101089580911001681731 +:103EF00020F4861B809310010895109210010895FC +:103F00000F931F938D3109F46BC008F03FC08E30C2 +:103F100009F47DC0C0F4873009F46EC068F48630BF +:103F200009F0AFC08091CC01817F8E7F8093CC015E +:103F300081E08093DB01A6C0883009F458C08B3043 +:103F400009F49BC09EC0863109F497C078F4803193 +:103F500009F470C0813109F094C00E94B9139091A6 +:103F60000D0181E0892780930D0187C0893109F413 +:103F700084C08B3109F085C08091CC0181FB222760 +:103F800020F991E0922790FB81F94AC0853309F42A +:103F90005BC048F4873209F457C008F45AC089322C +:103FA00009F452C06EC0833438F48A3308F067C015 +:103FB000883309F462C065C0833409F445C088348D +:103FC00009F05FC00E94B9130FEF13ED20E3015019 +:103FD00010402040E1F700C000000E94C01A4DC010 +:103FE0000E9402210E94500E0E94460746C00E9475 +:103FF000741C0E94861C41C09091CC01892F817055 +:1040000090FF12C0917F9E7F9093CC013BC0809126 +:10401000CC0182FB222720F991E0922790FB82F9C4 +:104020008093CC01992349F18091CC0181608093E8 +:10403000CC0123C08091CC0183FB222720F991E0A1 +:10404000922790FB83F9ECCF61E070E080E090E094 +:1040500010C08D5141E050E060E070E08A019B01AA +:1040600004C0000F111F221F331F8A95D2F7C90108 +:10407000B8010E9470170E94B91381E003C08953F0 +:10408000E9CF80E01F910F91089580E008950C948E +:104090004520CF93C82F8091DB01813079F018F053 +:1040A0008230E9F187C0E0910E01F0910F0180812B +:1040B000813169F0823209F07FC009C0E0910E01C0 +:1040C000F0910F018081813111F0823261F48C2FE7 +:1040D0000E944720811104C08C2F0E94801F1DC0A8 +:1040E00081E090E01AC08C2F0E944520811114C0FD +:1040F000C43179F048F4CB3079F0C03109F060C0B8 +:1041000082E08093DB0108C0C93219F0C83321F086 +:1041100057C01092DB0154C081E0817053C0C93296 +:1041200089F118F5C43171F1A8F4C73009F046C01F +:104130008AE08093150194E19093140193E09093A9 +:1041400013018093120188E08093110188E280932B +:10415000100134C0CE51C63088F5EC2FF0E0E65D9A +:10416000FE4F80818093DA0129C0CE34E9F020F43B +:10417000CB3421F56AE013C0C13579F0C235F1F4D2 +:1041800061E00DC08091DA01882319F01092DA0104 +:1041900015C081E08093DB0115C061E006C080910D +:1041A000DA010E94BA1E0AC06AE08091DA010E9418 +:1041B000301F04C01092DB0180E004C081E002C027 +:1041C00080E0ABCFCF910895E1E8F0E08081886096 +:1041D00080838081816080838FB7F89493E090938F +:1041E000890090ED909388008FBF0895EFE6F0E08E +:1041F0008081826080830895EFE6F0E080818D7F8A +:1042000080830895EFE6F0E0908182E08927808343 +:1042100008951F920F920FB60F9211242F933F9380 +:104220004F935F936F937F938F939F93AF93BF93BE +:10423000EF93FF938091DC019091DD0101969093C3 +:10424000DD018093DC01811103C082E00E944607FA +:10425000E091DD01E695E695F0E0E657FB4FE4914D +:104260008091DC018E1303C080E00E944607FF911D +:10427000EF91BF91AF919F918F917F916F915F91DE +:104280004F913F912F910F900FBE0F901F90189557 +:104290000E944F216894B1110C94DE2108950E9470 +:1042A000C32188F09F5798F0B92F9927B751B0F0E4 +:1042B000E1F0660F771F881F991F1AF0BA95C9F7AA +:1042C00014C0B13091F00E94DD21B1E008950C944A +:1042D000DD21672F782F8827B85F39F0B93FCCF3FD +:1042E000869577956795B395D9F73EF49095809527 +:1042F000709561957F4F8F4F9F4F0895E89409C047 +:1043000097FB3EF490958095709561957F4F8F4F08 +:104310009F4F9923A9F0F92F96E9BB279395F6951E +:10432000879577956795B795F111F8CFFAF4BB0F9C +:1043300011F460FF1BC06F5F7F4F8F4F9F4F16C000 +:10434000882311F096E911C0772321F09EE8872F8A +:10435000762F05C0662371F096E8862F70E060E046 +:104360002AF09A95660F771F881FDAF7880F9695BF +:10437000879597F9089557FD9058440F551F59F0A8 +:104380005F3F71F04795880F97FB991F61F09F3F42 +:1043900079F087950895121613061406551FF2CF6B +:1043A0004695F1DF08C0161617061806991FF1CFBB +:1043B00086957105610508940895E894BB276627E2 +:1043C0007727CB0197F908950E94F7210C94682272 +:1043D0000E945A2238F00E94612220F0952311F0A9 +:1043E0000C9451220C94572211240C94DE210E942B +:1043F000BB2170F3959FC1F3950F50E0551F629F4D +:10440000F001729FBB27F00DB11D639FAA27F00D2D +:10441000B11DAA1F649F6627B00DA11D661F829F54 +:104420002227B00DA11D621F739FB00DA11D621F39 +:10443000839FA00D611D221F749F3327A00D611D56 +:10444000231F849F600D211D822F762F6A2F112438 +:104450009F5750409AF0F1F088234AF0EE0FFF1F6B +:10446000BB1F661F771F881F91505040A9F79E3FC2 +:10447000510580F00C9451220C94DE215F3FE4F34F +:10448000983ED4F3869577956795B795F795E79518 +:104490009F5FC1F7FE2B880F911D9695879597F921 +:1044A000089597F99F6780E870E060E008959FEFB6 +:1044B00080EC089500240A941616170618060906BB +:1044C000089500240A94121613061406050608958A +:1044D000092E0394000C11F4882352F0BB0F40F412 +:1044E000BF2B11F460FF04C06F5F7F4F8F4F9F4F52 +:1044F000089597FB072E16F4009407D077FD09D096 +:104500000E94932207FC05D03EF4909581959F4F21 +:104510000895709561957F4F0895EE0FFF1F0590E8 +:10452000F491E02D0994AA1BBB1B51E107C0AA1FFF +:10453000BB1FA617B70710F0A61BB70B881F991F44 +:104540005A95A9F780959095BC01CD010895F999E8 +:10455000FECF92BD81BDF89A992780B50895A8E154 +:10456000B0E042E050E00C94CA22262FF999FECF29 +:104570001FBA92BD81BD20BD0FB6F894FA9AF99A80 +:104580000FBE019608950E94B522272F0C94B622E3 +:10459000DC01CB01FC01F999FECF06C0F2BDE1BD03 +:1045A000F89A319600B40D9241505040B8F70895F2 +:0445B000F894FFCFAD +:1045B40020024707D707B2077E074A070101BA015D +:1045C40028080A03140A3F4D36394B04FE03C80376 +:1045D4008F0322033B0354036D0301020304050606 +:0445E40007080900BB +:00000001FF diff --git a/keyboard/ergodox_ez/keymaps/keymap_dvorak.png b/keyboard/ergodox_ez/keymaps/dvorak/dvorak.png similarity index 100% rename from keyboard/ergodox_ez/keymaps/keymap_dvorak.png rename to keyboard/ergodox_ez/keymaps/dvorak/dvorak.png diff --git a/keyboard/ergodox_ez/keymaps/keymap_dvorak.c b/keyboard/ergodox_ez/keymaps/dvorak/keymap.c similarity index 99% rename from keyboard/ergodox_ez/keymaps/keymap_dvorak.c rename to keyboard/ergodox_ez/keymaps/dvorak/keymap.c index 53934ea345..22947327d3 100644 --- a/keyboard/ergodox_ez/keymaps/keymap_dvorak.c +++ b/keyboard/ergodox_ez/keymaps/dvorak/keymap.c @@ -155,12 +155,12 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) }; // Runs just one time when the keyboard initializes. -void * matrix_init_user(void) { +void matrix_init_user(void) { }; // Runs constantly in the background, in a loop. -void * matrix_scan_user(void) { +void matrix_scan_user(void) { uint8_t layer = biton32(layer_state); diff --git a/keyboard/ergodox_ez/keymaps/dvorak_intl_squisher/README.md b/keyboard/ergodox_ez/keymaps/dvorak_intl_squisher/README.md new file mode 100644 index 0000000000..984106ff46 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/dvorak_intl_squisher/README.md @@ -0,0 +1,29 @@ +# ErgoDox EZ Dvorak International Squisher + +Dvorak layout adjusted with several (linux) applications in mind: + +* Easier Escape for VIM +* Windows/Super key for awesome WM +* Alt+Shift for international characters +* PrintScreen for sys-rq +* Insert for the X11 clip-board + +Major layer changes: + +* Common multimedia keys are integrated into layer 0, less common into layer 1 +* No mouse keys +* Layer 2 is qwerty (for easier gaming & less fortunate keyboard users) + +Known issues: + +* Alt+Shift does not work reliably (depends on the X11 kb layout? Not + entirely clear...) + +![layer0](keyboard-layout0.png) +![layer1](keyboard-layout1.png) +![layer2](keyboard-layout2.png) + +## Changelog + +* 2016-03-29 + * Initial release diff --git a/keyboard/ergodox_ez/keymaps/dvorak_intl_squisher/dvorak_intl_squisher.hex b/keyboard/ergodox_ez/keymaps/dvorak_intl_squisher/dvorak_intl_squisher.hex new file mode 100644 index 0000000000..bd70f5829f --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/dvorak_intl_squisher/dvorak_intl_squisher.hex @@ -0,0 +1,1127 @@ +:100000000C9465020C94AC020C94AC020C94AC02FF +:100010000C94AC020C94AC020C94AC020C94AC02A8 +:100020000C94AC020C94AC020C94B50B0C94870CA1 +:100030000C94AC020C94AC020C94AC020C94AC0288 +:100040000C94AC020C943B210C94AC020C94AC02CA +:100050000C94AC020C94C71A0C94AC020C94AC0235 +:100060000C94AC020C94AC020C94AC020C94AC0258 +:100070000C94AC020C94AC020C94AC020C94AC0248 +:100080000C94AC020C94AC020C94AC020C94AC0238 +:100090000C94AC020C94AC020C94AC020C94AC0228 +:1000A0000C94AC020C94AC020C94AC02F40C160D43 +:1000B000040E160D040E5B0D7E0D040ED30DE60D21 +:1000C000D110D11000110011431181119A139A130C +:1000D0009A119A139B129B126E139A139A138513FB +:1000E0000000F0A12E0029002A00E1003581000067 +:1000F0001E00340004003371E2004D001F00360082 +:1001000012001400E3002B002000370008000D004F +:1001100050002C002100130018000E004F004A0070 +:1001200022001C000C001B0000006571B6004C0092 +:100130000000007F00000154AE004900000000777D +:1001400000000254230009000700050000004600DB +:1001500024000A000B00100052004B00250006008E +:1001600017001A0051002800260015001100190080 +:100170002F00E51427000F0016001D7130004E00FF +:10018000318238002D00E500C100000001000100AF +:1001900001000100010000003A001E0220022202BC +:1001A000010001003B001F022102230201000100A7 +:1001B0003C002F0226022F00AC0001003D0030025F +:1001C00027023000AB0001003E003102350035024D +:1001D000000001000100010000000100000001001A +:1001E0000100010000000100000001003F0052007A +:1001F00051002402000001004000240021001E00E4 +:100200000100A9004100250022001F003700010065 +:1002100042002600230020002700A80043002502FA +:100220002E0231002E00AA0044004500010001000A +:1002300001000000010001000100010001000000B8 +:100240000100140004001D710100010001001A00EA +:1002500016001B0001000100010008000700060055 +:100260000100010001001500090019000100010052 +:10027000010017000A000500000001000100010054 +:100280000000010000000100010001000000010069 +:100290000000010001001C000B0011000000010023 +:1002A000010018000D0010000100010001000C0009 +:1002B0000E00360001000100010012000F0037009F +:1002C00001000100010013003382387101000100B8 +:1002D00001000100010001000100000016034500BB +:1002E000720067006F0044006F0078002000450036 +:1002F0005A00000016034500720067006F004400BA +:100300006F007800200045005A0000000403090433 +:1003100009026D00040100A0FA09040000010301B4 +:100320000100092111010001223F00070581030896 +:10033000000A090401000103010200092111010062 +:1003400001224D000705820308000A09040200018A +:100350000300000009211101000122360007058376 +:100360000308000A09040300010300000009211129 +:100370000100012239000705840310000112011059 +:100380000100000008EDFE07130100010200010555 +:10039000010906A101050719E029E71500250195C6 +:1003A0000875018102050819012905950575019156 +:1003B000029501750391010507190029771500259C +:1003C00001957875018102C005010980A1018502AE +:1003D00016010026B7001A01002AB7007510950112 +:1003E0008100C0050C0901A1018503160100269CAE +:1003F000021A01002A9C02751095018100C00501B6 +:100400000902A1010901A100050919012905150029 +:10041000250195057501810295017503810105018D +:10042000093009311581257F950275088106093843 +:100430001581257F950175088106050C0A3802157E +:1004400081257F950175088106C0C005010906A1B7 +:1004500001050719E029E7150025019508750181B7 +:100460000295017508810105081901290595057591 +:100470000191029501750391010507190029FF15E6 +:100480000025FF950675088100C0000000000000EF +:100490000000000000010204060A0F17202C3A4A4F +:1004A0005D71879DB3C7DAE9F5FCFFFCF5E9DAC7B2 +:1004B000B39D87715D4A3A2C20170F0A060402018A +:1004C0000000000000000000000011241FBECFEF5C +:1004D000DAE0DEBFCDBF04B603FE27C08091EF0196 +:1004E0009091F001A091F101B091F2018730904B11 +:1004F000A740B04BD1F41092EF011092F00110928E +:10050000F1011092F20114BE84B7877F84BF0FB649 +:10051000F894A895809160008861809360001092A3 +:1005200060000FBEE0E0FFE3099511E0A0E0B1E05C +:10053000E8E1F6E402C005900D92A433B107D9F7C3 +:1005400021E0A4E3B1E001C01D92AF3EB207E1F7A4 +:100550000E94F6080C940A230C94000061110BC051 +:10056000FC018281882321F085EE0E94660F03C082 +:1005700085EE0E942E1080E090E00895089560912D +:10058000B1017091B2018091B3019091B4010E94C8 +:10059000F01956985E9825982D9826982E982798A9 +:1005A0002F98813019F0823021F00895259A2D9AE4 +:1005B0000895269A2E9A08950C94BF0256985E9834 +:1005C00025982D9826982E9827982F988FEF90E0B1 +:1005D000909389008093880090938B0080938A0089 +:1005E00090938D0080938C00259A2D9A2FEF80E7B1 +:1005F00092E0215080409040E1F700C00000269A30 +:100600002E9A2FEF80E792E0215080409040E1F752 +:1006100000C00000279A2F9A2FEF80E792E0215028 +:1006200080409040E1F700C0000025982D982FEF02 +:1006300080E792E0215080409040E1F700C0000048 +:1006400026982E982FEF80E792E02150804090402E +:10065000E1F700C0000027982F9856985E982598DB +:100660002D9826982E9827982F98089589EA809398 +:10067000800089E08093810024982C983F988AB16B +:100680008F748AB96E98479A8BB1806B8BB9769AC2 +:100690000E94DE020C94BE0280E2809300018091F1 +:1006A000340181110EC00E949B0381E080933401CC +:1006B0002FEF83ED90E3215080409040E1F700C0A0 +:1006C000000080E40E94A1038093000181112EC0EC +:1006D0000E94CB0380930001811128C00E94CB03AC +:1006E00080930001811122C08FE30E94CB0380938D +:1006F000000181111BC00E94C30380E40E94A1037A +:1007000080930001811112C08CE00E94CB03809382 +:10071000000181110BC00E94CB0380930001811165 +:1007200005C08FE30E94CB03809300010E94C303A6 +:100730008091000108951092B9008AE08093B8007A +:10074000089594EA9093BC009091BC0097FFFCCF71 +:100750009091B900987F983021F0903111F081E0AC +:1007600008958093BB0084E88093BC008091BC0016 +:1007700087FFFCCF8091B900887F883111F08034E9 +:1007800071F780E0089584E98093BC008091BC00FB +:1007900084FDFCCF08958093BB0084E88093BC0067 +:1007A0008091BC0087FFFCCF9091B900987F81E0D9 +:1007B000983209F480E0089584E88093BC00809129 +:1007C000BC0087FFFCCF8091BB00089580910001A1 +:1007D000811115C080E40E94A10380930001811162 +:1007E0000CC082E10E94CB0380930001811105C0FF +:1007F0008FEF0E94CB03809300010E94C30384B15A +:10080000807F84B985B1807F85B98AB1837F8AB9B9 +:100810008BB1837F8BB93E98469808950E944C0314 +:10082000809300010E94E60380B38C7080BB81B38B +:10083000836F81BBA6E3B1E0E4E4F1E08EE08E0FCC +:1008400011921D928E13FCCF0C943603BF92CF925F +:10085000DF92EF92FF920F931F93CF93DF938091DC +:100860000001882379F0809135018F5F80933501F5 +:10087000811108C00E944C0380930001811102C0C5 +:100880000E94DE0206E311E0C0E0D0E0DD24D39454 +:1008900082E0C82EEE24E394F12CC730D10500F598 +:1008A00080910001811164C080E40E94A1038093C3 +:1008B0000001811112C082E10E94CB0380930001EC +:1008C00081110BC0C7010C2E01C0880F0A94EAF7F2 +:1008D00080950E94CB03809300010E94C30348C00F +:1008E000CA30A1F028F4C83059F0C93061F005C011 +:1008F000CC3089F070F0CD3089F0209A289810C063 +:10090000219A29980DC0229A2A980AC0239A2B98D6 +:1009100007C0529A01C0539A5B9802C03E9A46980B +:1009200090EA9A95F1F79FB1799902C082E001C0EF +:1009300080E091709D25982B7C9902C084E001C0D5 +:1009400080E0892B7D9902C038E001C030E0832B24 +:100950007E9902C020E101C020E0822B9FB19095DA +:10096000991F9927991F9295990F907E892B0FC0F7 +:1009700080910001811149C080E40E94A10380930D +:100980000001882379F1B12C0E94C3038B2DF8015B +:100990009081981719F08083C09201010E94E603AC +:1009A00021960F5F1F4FCE30D10509F076CF809191 +:1009B0000101882361F1815080930101882339F07E +:1009C0008FE99FE00197F1F700C0000020C0A4E488 +:1009D000B1E0E6E3F1E0CF01825F91919D938E1348 +:1009E000FCCF15C083E10E94CB03809300018111ED +:1009F000CACF81E40E94A103809300018111C3CF7B +:100A00000E94DC03B82EB094BFCF80E0C0CF0E941C +:100A1000DC0281E0DF91CF911F910F91FF90EF9069 +:100A2000DF90CF90BF900895E82FF0E0EC5BFE4F91 +:100A30008081089508958B3B910578F4883A91055B +:100A400040F5853A9105D0F48430910508F0B1C0A5 +:100A50008130910509F4ADC06BC0803E910508F46A +:100A600067C0883E910508F4A4C09C01205F31094D +:100A70002031310508F05CC090650895853A9105F4 +:100A800009F459C0863A910509F058C082E890E40B +:100A90000895883A910509F454C0893A910509F4FA +:100AA00053C08A3A910509F452C08B3A910509F472 +:100AB00051C08C3A910509F450C08D3A910509F462 +:100AC0004FC0803B910509F44EC08E3A910509F460 +:100AD0004DC08F3A910509F44CC0813B910509F452 +:100AE0004BC0823B910509F44AC0833B910509F450 +:100AF00049C0843B910509F448C0853B910509F440 +:100B000047C0863B910509F446C0873B910509F42F +:100B100045C0883B910509F444C0893B910509F41F +:100B200043C08A3B910509F442C080E094E40895F3 +:100B300080E090E0089581E890E4089583E890E4EF +:100B4000089582EE94E4089589EE94E408958AEE7F +:100B500094E4089585EB94E4089586EB94E4089575 +:100B600087EB94E408958CEC94E408958DEC94E480 +:100B7000089583E895E408958AE895E4089582E964 +:100B800095E4089584E995E4089581E296E4089552 +:100B900083E296E4089584E296E4089585E296E47B +:100BA000089586E296E4089587E296E408958AE23D +:100BB00096E40895089596E0799FF001112494E554 +:100BC000899FE00DF11D1124E60FF11DEE0FFF1FAF +:100BD000EC51FF4F859194910895880F991FFC0166 +:100BE000E05AF040859194910895880F991FFC0177 +:100BF000E052FF4F85919491089526E0729FF00195 +:100C0000112444E5849FE00DF11D1124E60FF11D30 +:100C1000EE0FFF1FEC51FF4F859194919C013A9587 +:100C200021154FE1340708F41CC13F512115304113 +:100C300020F49F700E94F50508959C013053211502 +:100C4000304118F49927906C0895811520E592079A +:100C500071F40E94BE134FEF84E39CE0415080404A +:100C60009040E1F700C000000E94EC1AFAC0813009 +:100C700020E5920731F48091CD0181608093CD0110 +:100C8000F0C09C0130552115304108F051C0292F8A +:100C900033272F70332721303105D9F4AC0143704D +:100CA000552702C0220F331F4A95E2F73C68AC017A +:100CB00064E0440F551F6A95E1F744275370242BD5 +:100CC000352B73E0880F991F7A95E1F78076992785 +:100CD0001DC02230310529F4982F8827816F906A32 +:100CE000089523303105A9F4AC014370552721E064 +:100CF00030E002C0220F331F4A95E2F73C6843E020 +:100D0000880F991F4A95E1F7807E9770822B932B6D +:100D1000089524303105E1F4AC014370552721E0FA +:100D200030E002C0220F331F4A95E2F73A68E7CF5E +:100D30009C0130572115304118F49F70906208953E +:100D40009C0130582115304118F49F70906A089525 +:100D5000803E9105E0F4803C910558F58133910582 +:100D600009F46FC048F48932910509F463C08A32EE +:100D7000910509F46DC072C089339105E9F082389C +:100D80009105D1F08533910509F44DC067C0833ECC +:100D9000910581F138F4803E9105B9F0823E9105CC +:100DA000D9F05CC0863E910561F1873E9105A1F1C5 +:100DB00055C00E94ED0508952091E00120FD02C07C +:100DC00021FF4CC080EE90E049C08091E00180FF9F +:100DD000F9CF89E390E042C08091E00182FF0EC02C +:100DE0008091E00184FF03C080E090E037C083EE93 +:100DF00090E034C08091E00182FFF2CF82EE90E07B +:100E00002DC08091E00183FF0BC08091E00184FD43 +:100E1000EBCF87EE90E022C08091E00183FFF5CF19 +:100E200086EE90E01BC08091E00185FF07C089E25B +:100E300090E014C08091E00185FFF9CF85E390E058 +:100E40000DC08091E00186FF07C08AE290E006C0F5 +:100E50008091E00186FFF9CF81E390E00E941B05BD +:100E60000895089508950C943207809162010895C1 +:100E7000CF93DF9300D01F92CDB7DEB79C01809156 +:100E8000E601843019F593E099833B832A8390939C +:100E9000E9008FEF9091E800815095FD06C095ED37 +:100EA0009A95F1F700008111F5CF8091E80085FF58 +:100EB0000DC040E050E063E070E0CE0101960E947A +:100EC000A5098091E8008E778093E8000F900F903D +:100ED0000F90DF91CF910895CF93DF9300D01F92B1 +:100EE000CDB7DEB72091E601243021F522E0298339 +:100EF0009B838A8383E08093E9008FEF9091E800E1 +:100F0000815095FD06C095ED9A95F1F7000081118D +:100F1000F5CF8091E80085FF0DC040E050E063E030 +:100F200070E0CE0101960E94A5098091E8008E77BD +:100F30008093E8000F900F900F90DF91CF9108956C +:100F40002091E6012430F1F422E02093E9002FEF14 +:100F50003091E800215035FD06C035ED3A95F1F7A6 +:100F600000002111F5CF2091E80025FF0BC040E0E3 +:100F700050E065E070E00E94A5098091E8008E775E +:100F80008093E8000895CF93DF93EC019091E60100 +:100F9000943009F046C080910C018823D9F08091EB +:100FA0000D018823B9F09093E9008FEF9091E8004C +:100FB000815095FD06C095E19A95F1F700008111E9 +:100FC000F5CF8091E80085FF2CC040E050E060E163 +:100FD00070E017C081E08093E9008FEF9091E80006 +:100FE000815095FD06C095ED9A95F1F700008111AD +:100FF000F5CF8091E80085FF14C040E050E068E044 +:1010000070E0CE010E94A5098091E8008E77809360 +:10101000E80080E1FE01A2E5B1E001900D928A9521 +:10102000E1F7DF91CF9108958091E501811109C029 +:101030000E943A0B0E94970B8091E200846080939B +:10104000E20008951092E501089508950C94282176 +:101050000E94821A0E942E210E943D0E0C9433079A +:1010600042E061EC81E00E94B40A42E061EC82E07F +:101070000E94B40A42E061EC83E00E94B40A42E1BB +:1010800061EC84E00C94B40A8091E801833009F4A7 +:1010900055C030F4813071F0823009F48EC008956B +:1010A0008A3009F47AC08B3009F460C0893009F0C5 +:1010B0009CC020C08091E701813A09F096C08091E0 +:1010C000E800877F8093E8008091EB019091EC012C +:1010D000892B21F460E182E591E003C060E080E0CB +:1010E00090E070E00E94F0098091E8008B77809397 +:1010F000E80008958091E701813209F076C080917F +:10110000EB019091EC01009719F0039709F06DC085 +:101110008091E800877F8093E8008091E80082FD5D +:1011200005C08091E6018111F8CF5FC08091F10088 +:10113000809362018091E8008B7753C08091E70132 +:10114000813A09F052C08091EB019091EC01892B1A +:1011500009F04BC08091E800877F8093E800809180 +:10116000E80080FFFCCF80910C0136C08091E70140 +:101170008132D9F58091EB019091EC01892BA9F591 +:101180008091E800877F8093E8000E94E90A8091BF +:10119000E90180930C010C94BE138091E701813228 +:1011A00021F58091E800877F8093E8000E94E90A9A +:1011B0008091EA018093630108958091E701813A6B +:1011C000A1F48091E800877F8093E8008091E80097 +:1011D00080FFFCCF809163018093F1008091E80053 +:1011E0008E778093E8000C94E90A089584B7877F8E +:1011F00084BF0FB6F894A8958091600088618093B1 +:101200006000109260000FBE90E080E80FB6F89486 +:1012100080936100909361000FBE0E948C0E0E942B +:101220003A0B0E94970B8091E20084608093E20069 +:1012300078940E941D0E0E948E0E82E091E00E9422 +:10124000380E0E9416218091E601853069F40E94D3 +:10125000401A8091E4018823B1F30E946E1A88231A +:1012600091F30E948F09EFCF0E94940EECCF292FAB +:10127000332723303105C9F064F42130310581F082 +:101280002230310509F043C08DE690E020E133E0E3 +:1012900042C021323105F1F02232310541F137C02F +:1012A00082E190E02DE733E036C099278130910547 +:1012B00041F08230910541F0892B49F5ECE0F3E0F3 +:1012C00005C0E4EFF2E002C0ECEDF2E0849190E0C2 +:1012D0009F0121C06430D8F4E62FF0E0EE0FFF1F2D +:1012E000EE5DFE4F2081318189E090E014C06430D2 +:1012F00070F470E0FB01EE0FFF1FE65EFE4F2081F1 +:101300003181FB01EA5EFE4F808190E004C080E005 +:1013100090E020E030E0FA0131832083089580E1FD +:1013200089BD82E189BD09B400FEFDCF8091D8005E +:101330008F7D8093D8008091E00082608093E000F0 +:101340008091E00081FDFCCF0895CF92DF92EF9273 +:10135000FF920F931F93CF93DF93EC018B016A01F0 +:101360000E94080B811133C0C114D10439F0F60179 +:1013700080819181081B190BC80FD91FE12CF12C1A +:101380000115110519F18091E80085FD16C08091C5 +:10139000E8008E778093E800C114D10449F0F6018B +:1013A00080819181E80EF91EF182E08285E00FC014 +:1013B0000E94080B882321F30AC089918093F100D1 +:1013C00001501109FFEFEF1AFF0ADACF80E0DF9139 +:1013D000CF911F910F91FF90EF90DF90CF900895E4 +:1013E0002091ED013091EE012617370748F0611585 +:1013F000710539F42091E8002E772093E80001C0B0 +:10140000B90140E061157105A9F12091E60122239F +:1014100009F443C0253009F442C02091E80023FDBF +:1014200040C02091E80022FD32C02091E80020FF5A +:10143000E9CF4091F3002091F20030E0342BFC0121 +:10144000CF016115710559F02830310540F48191C3 +:101450008093F100615071092F5F3F4FF1CF41E060 +:101460002830310509F040E02091E8002E772093E4 +:10147000E800C8CF4111C9CF0AC08091E601882396 +:1014800061F0853061F08091E80083FD0AC08091B1 +:10149000E80082FFF2CF80E0089582E0089583E0C3 +:1014A000089581E008952091ED013091EE01261715 +:1014B000370748F06115710539F42091E8002E775F +:1014C0002093E80001C0B901FC0120E0611571051D +:1014D00091F18091E601882309F440C0853009F438 +:1014E0003FC08091E80083FD3DC08091E80082FD0F +:1014F0002FC08091E80080FFE9CF2091F300809118 +:10150000F20090E0922B6115710559F08830910539 +:1015100040F424912093F1003196615071090196B5 +:10152000F2CF21E0089709F020E08091E8008E7763 +:101530008093E800CBCF2111CCCF0AC08091E60187 +:10154000882361F0853061F08091E80083FD0AC056 +:101550008091E80082FFF2CF80E0089582E0089554 +:1015600083E0089581E00895982F973058F590937F +:10157000E900981739F07091EC002091ED0050913E +:10158000F00003C0242F762F50E021FF19C03091C6 +:10159000EB003E7F3093EB003091ED003D7F3093C8 +:1015A000ED003091EB0031603093EB007093EC0074 +:1015B0002093ED005093F0002091EE0027FF07C02C +:1015C0009F5FD3CF8F708093E90081E0089580E022 +:1015D00008958091E70187FF11C08091E80082FDA6 +:1015E00005C08091E6018111F8CF11C08091E8001B +:1015F0008B770BC08091E601882349F08091E80049 +:1016000080FFF8CF8091E8008E778093E8000895FE +:101610002091E4003091E50095E64091EC00842FA4 +:10162000817040FF22C08091E80080FD1CC0809145 +:10163000E601882391F0853091F08091EB0085FDE3 +:1016400010C04091E4005091E5004217530729F380 +:101650009A01915011F784E0089582E0089583E0A3 +:10166000089581E0089580E008954091E80042FFE8 +:10167000DECF08950E94A80B0E94B00BE0EEF0E0D0 +:10168000808181608083E8EDF0E080818F778083C6 +:1016900019BCA7EDB0E08C918E7F8C9380818F7EFA +:1016A00080831092E50108950F931F93CF93DF93EA +:1016B0000E94A80B0E94B00BC8EDD0E088818F7704 +:1016C000888388818068888388818F7D888319BC1E +:1016D0001092E6011092E2011092E4011092E301EF +:1016E00000EE10E0F80180818B7F8083888181602B +:1016F000888342E060E080E00E94B40AE1EEF0E01E +:1017000080818E7F8083E2EEF0E080818160808343 +:10171000808188608083F80180818E7F80838881CA +:1017200080618883DF91CF911F910F910895E8ED3B +:10173000F0E080818F7E8083E7EDF0E08081816042 +:10174000808384E082BF81E08093E5010C94540B98 +:10175000E8EDF0E080818E7F80831092E2000895B2 +:101760001092DA001092E10008951F920F920FB6C6 +:101770000F9211242F933F934F935F936F937F9317 +:101780008F939F93AF93BF93EF93FF938091E1006B +:1017900082FF0BC08091E20082FF07C08091E100D0 +:1017A0008B7F8093E1000E941C0E8091DA0080FF05 +:1017B0001FC08091D80080FF1BC08091DA008E7F0F +:1017C0008093DA008091D90080FF0DC080E189BD4F +:1017D00082E189BD09B400FEFDCF81E08093E6017E +:1017E0000E94140805C019BC1092E6010E9422084C +:1017F0008091E10080FF19C08091E20080FF15C058 +:101800008091E2008E7F8093E2008091E20080610F +:101810008093E2008091D80080628093D80019BC48 +:1018200085E08093E6010E9426088091E10084FF14 +:1018300030C08091E20084FF2CC080E189BD82E14C +:1018400089BD09B400FEFDCF8091D8008F7D8093C3 +:10185000D8008091E1008F7E8093E1008091E200CA +:101860008F7E8093E2008091E20081608093E200AD +:101870008091E201882311F084E007C08091E300A9 +:1018800087FD02C081E001C083E08093E6010E94F1 +:1018900028088091E10083FF29C08091E20083FF46 +:1018A00025C08091E100877F8093E10082E08093F2 +:1018B000E6011092E2018091E1008E7F8093E100C9 +:1018C0008091E2008E7F8093E2008091E20080614F +:1018D0008093E20042E060E080E00E94B40A8091E0 +:1018E000F00088608093F0000E942508FF91EF913E +:1018F000BF91AF919F918F917F916F915F914F9128 +:101900003F912F910F900FBE0F901F9018951F922F +:101910000F920FB60F9211242F933F934F935F9323 +:101920006F937F938F939F93AF93BF93CF93DF93E7 +:10193000EF93FF93C091E900CF708091EC00D82F16 +:10194000D17080FDD0E81092E9008091F000877F8F +:101950008093F00078940E94CB0C1092E900809163 +:10196000F00088608093F000CD2BCF70C093E90029 +:10197000FF91EF91DF91CF91BF91AF919F918F91A7 +:101980007F916F915F914F913F912F910F900FBE7B +:101990000F901F9018951F93CF93DF93CDB7DEB7AD +:1019A000AA970FB6F894DEBF0FBECDBFE7EEF1E009 +:1019B00088E08E0F9091F10091938E13FBCF0E94DF +:1019C00044088091E80083FF1FC18091E701909156 +:1019D000E801492F50E04A30510508F015C1FA01DD +:1019E000EA5AFF4F0C94BF22803881F0823809F008 +:1019F0000BC18091EB018F708093E9008091EB0027 +:101A000085FB882780F91092E90006C08091E301E8 +:101A10009091E401911182609091E800977F9093FA +:101A2000E8008093F1001092F100C8C0282F2D7FAC +:101A300009F0EAC0882319F0823061F0E5C0809196 +:101A4000E901813009F0E0C0933009F080E0809333 +:101A5000E4012BC08091E901811127C08091EB0145 +:101A60008F7009F4D1C08093E9002091EB0020FF32 +:101A70001CC0933021F48091EB00806214C09091DF +:101A8000EB0090619093EB0021E030E0A90102C0EF +:101A9000440F551F8A95E2F74093EA001092EA003E +:101AA0008091EB0088608093EB001092E9008091B8 +:101AB000E800877F86C08111A7C01091E9011F77D8 +:101AC0008091E3008078812B8093E3008091E8008F +:101AD000877F8093E8000E94E90A8091E80080FFF8 +:101AE000FCCF8091E30080688093E300111102C075 +:101AF00082E001C083E08093E60186C08058823096 +:101B000008F082C08091E9019091EA018C3D53E098 +:101B1000950779F583E08A838AE289834FB7F89441 +:101B2000DE01139620E03EE051E2E32FF0E0509317 +:101B30005700E49120FF03C0E295EF703F5FEF7024 +:101B40008E2F90E0EA3010F0C79601C0C0968D93BA +:101B50009D932F5F243149F74FBF8091E800877F25 +:101B60008093E8006AE270E0CE0101960E94F009DD +:101B700014C0AE014F5F5F4F6091EB010E943709C7 +:101B8000BC01892B09F440C09091E800977F9093A5 +:101B9000E80089819A810E94530A8091E8008B773E +:101BA0008093E80031C0803879F58091E800877F24 +:101BB0008093E8008091E2018093F1008091E80039 +:101BC0008E778093E8000E94E90A1EC081111CC034 +:101BD0009091E9019230C0F48091E800877F809372 +:101BE000E8009093E2010E94E90A8091E2018111EC +:101BF00006C08091E30087FD02C081E001C084E05F +:101C00008093E6010E9430088091E80083FF0AC0BB +:101C10008091E800877F8093E8008091EB008062EC +:101C20008093EB00AA960FB6F894DEBF0FBECDBF2F +:101C3000DF91CF911F9108950895CF938091E60190 +:101C40008823A1F0C091E900CF709091EC00892F1A +:101C5000817090FD80E8C82B1092E9008091E80027 +:101C600083FD0E94CB0CCF70C093E900CF91089503 +:101C700090936901809368010895E0916801F09163 +:101C80006901309721F00190F081E02D099480E006 +:101C90000895E0916801F0916901309721F0028088 +:101CA000F381E02D09940895E0916801F0916901B4 +:101CB000309721F00480F581E02D0994089520915A +:101CC0006601309167018217930771F09093670165 +:101CD00080936601E0916801F0916901309721F0ED +:101CE0000680F781E02D09940895209164013091D8 +:101CF00065018217930771F09093650180936401E9 +:101D0000E0916801F0916901309721F00084F1853C +:101D1000E02D0994089508950C948B0E0E94881A62 +:101D20000E940E040C944E1BCF92DF92EF92FF9212 +:101D30000F931F93CF93DF93CDB7DEB72B970FB6DB +:101D4000F894DEBF0FBECDBF0E9426048BE6C82EDE +:101D500081E0D82E00E010E0E02E802F0E941405D4 +:101D6000F60141916F01F42EF826B1F40F5F1F4F79 +:101D70000E30110589F78FEF89838A831B820E94B9 +:101D8000911A8160782F9D838C8349815A816B8160 +:101D90008D810E94370F40C09091CD0191FF04C00A +:101DA0008B870E941A058B8520E030E04F2D50E094 +:101DB000922FBA01022E02C0759567950A94E2F738 +:101DC00060FF24C02E83EF8221E030E0690102C071 +:101DD000CC0CDD1C9A95E2F790E08C219D21892B9B +:101DE00009F420E028870E94911A8160782F9A8751 +:101DF00089874E815F8168858A850E94370FF80147 +:101E0000E559FE4F8081C826C08206C02F5F3F4F34 +:101E10002630310569F6AACF0E94351E10916A015D +:101E20000E943D0E1817A1F00E943D0E80936A019A +:101E30002B960FB6F894DEBF0FBECDBFDF91CF91CA +:101E40001F910F91FF90EF90DF90CF900C9433078C +:101E50002B960FB6F894DEBF0FBECDBFDF91CF91AA +:101E60001F910F91FF90EF90DF90CF900895CF9347 +:101E7000DF93CDB7DEB72B970FB6F894DEBF0FBE5A +:101E8000CDBF4F83588769877A878B87DE0111968C +:101E900086E0FD0111928A95E9F785E0FE0137960B +:101EA00001900D928A95E1F749815A816B817C817D +:101EB0008D819E810E9458162B960FB6F894DEBF36 +:101EC0000FBECDBFDF91CF9108950895CF938823A2 +:101ED00009F4C2C0C82F823859F40E943D0E81FD1A +:101EE000BBC089E30E94F4180E94C11989E30CC0A9 +:101EF000833879F40E943D0E80FDAEC083E50E94D8 +:101F0000F4180E94C11983E50E943619CF910C94F0 +:101F1000C119843859F40E943D0E82FD9DC087E4AA +:101F20000E94F4180E94C11987E4EECF8CEF8C0F49 +:101F3000813A48F48C2F0E947B2081118DC08C2F18 +:101F40000E94F418E3CF80E28C0F883048F4C77009 +:101F500081E001C0880FCA95EAF70E947A19D6CFAE +:101F60008BE58C0F833078F4C53A29F0C63A31F00E +:101F700083E890E005C081E890E002C082E890E04C +:101F8000CF910C945F0E88E58C0F833108F064C00C +:101F9000C83A39F1C93A41F1CA3A49F1CB3A51F15B +:101FA000CC3A59F1CD3A61F1C03B69F1CE3A71F1C9 +:101FB000CF3A79F1C13B81F1C23B89F1C33B91F149 +:101FC000C43B99F1C53BA1F1C63BA9F1C73BB1F1B7 +:101FD000C83BB9F1C93BC1F1CA3BC9F180E090E00F +:101FE00038C082EE90E035C089EE90E032C08AEED3 +:101FF00090E02FC085EB90E02CC086EB90E029C0EC +:1020000087EB90E026C08CEC90E023C08DEC90E054 +:1020100020C083E891E01DC08AE891E01AC082E9FF +:1020200091E017C084E991E014C081E292E011C010 +:1020300083E292E00EC084E292E00BC085E292E07F +:1020400008C086E292E005C087E292E002C08AE220 +:1020500092E0CF910C94750ECF910895882309F4E6 +:102060004BC0823859F40E943D0E81FF45C089E380 +:102070000E94F4180E94C11989E30CC0833871F4DE +:102080000E943D0E80FF38C083E50E94F4180E9434 +:10209000C11983E50E9436190C94C119843859F48A +:1020A0000E943D0E82FF28C087E40E94F4180E941F +:1020B000C11987E4EFCF9CEF980F913A58F390E263 +:1020C000980F983050F4877091E001C0990F8A956D +:1020D000EAF7892F0E948019DFCF9BE5980F933094 +:1020E00020F480E090E00C945F0E885A833120F455 +:1020F00080E090E00C94750E0895882321F00E94F2 +:102100007A190C94C1190895882321F00E9480192E +:102110000C94C1190895BF92CF92DF92EF92FF9273 +:102120000F931F93CF93DF9300D000D000D0CDB793 +:10213000DEB725E0FC01DE01119601900D922A9593 +:10214000E1F7FC01D08011810281258122952F7059 +:1021500043815481452B09F4EDC21F3F21F4FFEF69 +:10216000DF1609F4E7C27C012E830E94650FD98235 +:102170001A8389819A810E94B318182FB92E0E9460 +:10218000B2180E9479172E81002319F00E94971926 +:102190002E81EB2DE295EF70F0E0E05AFF4F0C94AA +:1021A000BF228B2D807F9B2D9F70F92E882319F0E5 +:1021B000F29480EFF822002349F0FF2009F467C26F +:1021C0008F2D0E948A190E94C11961C2812F0E941D +:1021D0002E10FF2009F4AEC28F2D0E949019269672 +:1021E0000FB6F894DEBF0FBECDBFDF91CF911F9128 +:1021F0000F91FF90EF90DF90CF90BF900C94C1199A +:102200003B2D307F8B2D8F70303211F08295807F87 +:10221000112319F0113021F12CC00023B9F0222331 +:1022200009F4A0C1213009F09DC126960FB6F8949B +:10223000DEBF0FBECDBFDF91CF911F910F91FF90F9 +:10224000EF90DF90CF90BF900C94AA19222319F041 +:10225000213009F46FC28E830E94AD198E8196C120 +:10226000002321F0223008F065C27CC1211162C236 +:102270008DC1002321F0222309F474C108C2222356 +:1022800009F484C119C22B2D26952695237030E0C0 +:102290002115310521F021303105D1F04BC2002349 +:1022A00021F0812F9B2D937002C080E090E0269654 +:1022B0000FB6F894DEBF0FBECDBFDF91CF911F9157 +:1022C0000F91FF90EF90DF90CF90BF900C945F0E36 +:1022D000002321F0812F9B2D937002C080E090E0BD +:1022E00026960FB6F894DEBF0FBECDBFDF91CF911B +:1022F0001F910F91FF90EF90DF90CF90BF900C94C3 +:10230000750E812F002319F00E943D1D02C00E940E +:10231000A51D26960FB6F894DEBF0FBECDBFDF9188 +:10232000CF911F910F91FF90EF90DF90CF90BF90D2 +:102330000C942A1E8B2D837009F07BC00111FAC109 +:10234000812F829586958770880F880F912F9F70B7 +:10235000C92ED12CE12CF12C082E04C0CC0CDD1C94 +:10236000EE1CFF1C0A94D2F714FF12C04FE050E09D +:1023700060E070E004C0440F551F661F771F8A9508 +:10238000D2F7CB01BA01609570958095909503C006 +:1023900060E070E0CB012B2D269526952370422F0F +:1023A00050E042305105D9F04330510569F16C29B4 +:1023B0007D298E299F294130510551F126960FB66E +:1023C000F894DEBF0FBECDBFDF91CF911F910F916B +:1023D000FF90EF90DF90CF90BF900C94A0176C29E6 +:1023E0007D298E299F2926960FB6F894DEBF0FBE51 +:1023F000CDBFDF91CF911F910F91FF90EF90DF90B4 +:10240000CF90BF900C94BC170E94A017C701B601D3 +:1024100026960FB6F894DEBF0FBECDBFDF91CF91E9 +:102420001F910F91FF90EF90DF90CF90BF900C9491 +:102430008417002319F08B2D817001C086958823A5 +:1024400009F478C1812F829586958770880F880F4F +:10245000912F9F70C92ED12CE12CF12C082E04C095 +:10246000CC0CDD1CEE1CFF1C0A94D2F714FF12C02A +:102470004FE050E060E070E004C0440F551F661F5D +:10248000771F8A95D2F7CB01BA0160957095809538 +:10249000909503C060E070E0CB012B2D269526952A +:1024A0002370422F50E042305105D9F0433051059E +:1024B00069F16C297D298E299F294130510551F1FF +:1024C00026960FB6F894DEBF0FBECDBFDF91CF9139 +:1024D0001F910F91FF90EF90DF90CF90BF900C94E1 +:1024E0007A186C297D298E299F2926960FB6F89493 +:1024F000DEBF0FBECDBFDF91CF911F910F91FF9037 +:10250000EF90DF90CF90BF900C9496180E947A18AD +:10251000C701B60126960FB6F894DEBF0FBECDBF39 +:10252000DF91CF911F910F91FF90EF90DF90CF90AF +:10253000BF900C945E18103FD1F118F4103E50F487 +:10254000A1C0123F09F463C008F44CC0133F09F462 +:1025500073C098C01F708B2D8F710023A1F00E9453 +:10256000F717812F26960FB6F894DEBF0FBECDBFAA +:10257000DF91CF911F910F91FF90EF90DF90CF905F +:10258000BF900C947D100E941818812F26960FB6CC +:10259000F894DEBF0FBECDBFDF91CF911F910F9199 +:1025A000FF90EF90DF90CF90BF900C9484100023A9 +:1025B000A9F02111BFC08B2D8F7126960FB6F8940C +:1025C000DEBF0FBECDBFDF91CF911F910F91FF9066 +:1025D000EF90DF90CF90BF900C943D18223008F020 +:1025E000A9C0E9CF0023A9F08B2D8F7126960FB6D5 +:1025F000F894DEBF0FBECDBFDF91CF911F910F9139 +:10260000FF90EF90DF90CF90BF900C94F7170023CE +:1026100059F38B2D8F7126960FB6F894DEBF0FBE3F +:10262000CDBFDF91CF911F910F91FF90EF90DF9081 +:10263000CF90BF900C941818002399F08B2D8F71B8 +:1026400026960FB6F894DEBF0FBECDBFDF91CF91B7 +:102650001F910F91FF90EF90DF90CF90BF900C945F +:10266000E21726960FB6F894DEBF0FBECDBFDF91FE +:10267000CF911F910F91FF90EF90DF90CF90BF907F +:102680000C94D8170023A9F0222309F4ADCF812F91 +:1026900026960FB6F894DEBF0FBECDBFDF91CF9167 +:1026A0001F910F91FF90EF90DF90CF90BF900C940F +:1026B000660F222309F4ADCF812F26960FB6F8942A +:1026C000DEBF0FBECDBFDF91CF911F910F91FF9065 +:1026D000EF90DF90CF90BF900C942E104B2D4F7049 +:1026E000612FC7010E94AE0226960FB6F894DEBF96 +:1026F0000FBECDBFDF91CF911F910F91FF90EF9053 +:10270000DF90CF90BF900C94FC164B2D4F70612F33 +:10271000C70126960FB6F894DEBF0FBECDBFDF917E +:10272000CF911F910F91FF90EF90DF90CF90BF90CE +:102730000C94DA0526960FB6F894DEBF0FBECDBF17 +:10274000DF91CF911F910F91FF90EF90DF90CF908D +:10275000BF9008950E9497190E94A7190E946C19B2 +:102760000E94C1190E94DA1E0E942A1E80E090E099 +:102770000E945F0E80E090E00C94750E0E94871915 +:102780000C94AA130E94B318292F22952F7030E0C1 +:102790002C3031054CF42A3031056CF422503109CB +:1027A0002230310588F407C02C30310549F02F3034 +:1027B000310531F009C0803E48F0803F29F406C061 +:1027C00093FB882780F9089580E0089581E00895BB +:1027D000CF93DF9300D000D01F92CDB7DEB70F901C +:1027E0000F900F900F900F90DF91CF910895CF939E +:1027F000DF9300D000D000D0CDB7DEB726960FB65D +:10280000F894DEBF0FBECDBFDF91CF9108951F9327 +:10281000CF93DF93C091790116E080917A01C817B8 +:1028200099F0D0E01C9FF0011D9FF00D1124E55898 +:10283000FE4F4081518162817381848195810E9424 +:10284000F7132196C770E9CFDF91CF911F910895BB +:102850004091AB015091AC016091AD017091AE011E +:102860008091AF019091B0010C94F7138091B00169 +:1028700082958F7009F054C08091AD01882309F4CE +:102880004FC080917901A0917A016091AB01709164 +:10289000AC014091AE015091AF01B6E08A1709F446 +:1028A0003FC090E041155105C1F17F3F11F46F3FEA +:1028B000A1F1B89FF001B99FF00D1124E558FE4F2A +:1028C000218172132AC02081621327C02281211125 +:1028D00024C0238134812417350710F42150310995 +:1028E000241B350B283C3105C0F42091B0012F701A +:1028F00020612093B00126E0289FF001299FF00D70 +:102900001124E058FE4F80818F70806180838BEAB4 +:1029100091E00E948B100C94071401968770BECF33 +:102920000895CF92DF92EF92FF920F931F93CF9370 +:10293000DF93CDB7DEB762970FB6F894DEBF0FBE58 +:10294000CDBF8C0185E0F801DE011D9601900D924E +:102950008A95E1F7D8014C9111965C9111971296E6 +:102960006C9112971396CD90DC9014973091AB0137 +:102970007091AC018091AE019091AF01009709F484 +:102980006BC17F3F19F43F3F09F466C1E090AD0190 +:10299000EE2009F4C0C02091B001C816D90628F075 +:1029A000F601E81BF90BCF0104C0809590958C0DC2 +:1029B0009D1DFF24F394883C910578F0F12C207F35 +:1029C00009F0C6C07C2DD98AC88A89890E94E8137B +:1029D0008BEA91E00E948B10B1C0822F807F09F0BA +:1029E00046C0751314C0341312C0611110C02F708B +:1029F00020612093B0010E9428148BEA91E00E948C +:102A00008B108091B001D80115968C932EC0CD28E3 +:102A100019F15F3F11F44F3FF9F0F62E61111CC020 +:102A20008091790120917A0136E0821709F45AC029 +:102A300090E0389FF001399FF00D1124E558FE4FCA +:102A40007181571306C07081471303C072817111E1 +:102A500003C001968770E9CFF62E662309F418C1EA +:102A60008091B00181608093B001F12C11C1751388 +:102A700008C0341306C0611104C08091B001D801B0 +:102A8000C3C04D875E878D859E856A8B0E94C21369 +:102A90006A898823E1F16623D1F12091B001822F68 +:102AA00082958F7090E0029774F08091AB019091C5 +:102AB000AC0198878F831986DB86CA862C87CE0166 +:102AC00007960E948B1086E0F801ABEAB1E0019016 +:102AD0000D928A95E1F70E9436140E942814FF2473 +:102AE000F394D6C04D875E878D859E850E94B3186E +:102AF000292F22952F7030E0223031050CF0BCC018 +:102B00009F7009F0B6C0805E883008F4C1C0C8016B +:102B10000E948B10E4CFC816D90608F453C0F60102 +:102B2000E81BF90BCF01883C910508F450C0F12C4B +:102B30007C2DD98AC88A89890E94E813EBEAF1E0E2 +:102B400086E0DF011D928A95E9F70E942814A0C053 +:102B5000751314C0341312C0611110C08091B001FC +:102B6000F8018583C8010E948B1086E0EBEAF1E052 +:102B7000DF011D928A95E9F7FE2C8AC04D875E879A +:102B80008D859E856A8B0E94C2136A89882309F409 +:102B9000BECF662309F4BBCF2091B001822F82956E +:102BA0008F7090E002970CF48ECF8091AB019091E2 +:102BB000AC019A8389831B82DD82CC822E83CE0175 +:102BC00001967FCF809590958C0D9D1DACCFF62EF4 +:102BD000662309F49CCF75132EC034132CC02091AA +:102BE000B00120FD1FC0822F82958F70D9F0D801CF +:102BF00015962C9315978F3049F08F5F982F9295EB +:102C0000907F822F8F70892B15968C93C8010E941C +:102C10008B1086E0F801ABEAB1E001900D928A9545 +:102C2000E1F793CF86E0F801ABEAB1E001900D92B5 +:102C30008A95E1F72DC04D875E878D859E850E9420 +:102C4000C213811140CF8091B00181608093B001A7 +:102C5000C8010E948B101CC0662309F458CF4D8711 +:102C60005E878D859E850E94C213882309F44FCF0D +:102C70002ACF811148CF0CC0243031050CF047CF4A +:102C80009F7009F440CFF8019581907F09F03BCF08 +:102C90008F2D62960FB6F894DEBF0FBECDBFDF91C9 +:102CA000CF911F910F91FF90EF90DF90CF900895FB +:102CB0001F93CF93DF93CDB7DEB72C970FB6F89461 +:102CC000DEBF0FBECDBF4F83588769877A878B875A +:102CD0009C87CE0107960E949114882369F08F810A +:102CE00098852A853B85232BF1F19F3F09F063C02E +:102CF0008F3F09F060C037C086E0FE013796DE01E5 +:102D0000119601900D928A95E1F76F817885EA8599 +:102D1000FB85309741F17F3F11F46F3F21F1209106 +:102D20007A0130E0C90101968770992740917901B5 +:102D300050E08417950709F447C069837A83FD83BF +:102D4000EC8396E0929FD001939FB00D1124A5587B +:102D5000BE4FFE01319601900D929A95E1F7809356 +:102D60007A010E94071416E08091790190917A010E +:102D70008917C1F1189FC001112485589E4F0E94E8 +:102D80009114882379F1E09179011E9FF0011124BB +:102D9000E558FE4F40815181628173818481958124 +:102DA0000E94F7138091790190E00196877099272E +:102DB00080937901D9CF4F81588569857A858B8534 +:102DC0009C850E94F713CFCF0E94BE1310927A0108 +:102DD00010927901EBEAF1E086E0DF011D928A951D +:102DE000E9F7C1CF2C960FB6F894DEBF0FBECDBF6A +:102DF000DF91CF911F910895EF92FF920F931F9350 +:102E0000CF93DF938C01892B09F46CC0F12CEE2455 +:102E1000E394E8012196F8018491843740F48430EA +:102E200008F051C0813081F0823019F15BC08537E4 +:102E300009F444C0A8F19CE7980F903708F052C0FD +:102E40008F770E942E1041C00E5F1F4FFE01C4916C +:102E500080E28C0F883048F4C7708E2D01C0880F37 +:102E6000CA95EAF70E949A1914C08C2F0E94660F27 +:102E70002DC00E5F1F4FFE01C49180E28C0F883081 +:102E800058F4C7708E2D01C0880FCA95EAF70E94CA +:102E9000A0190E94C1191AC08C2F0E942E1016C0B2 +:102EA0000E5F1F4FFE01C491CC2381F08FE99FE09C +:102EB0000197F1F700C00000C150F6CF0E5F1F4F21 +:102EC000FE01F49003C00E94660F8E018F2D8823AF +:102ED00009F49FCFEFE9FFE03197F1F700C0000060 +:102EE0008150F5CFDF91CF911F910F91FF90EF901F +:102EF000089508956093B5017093B6018093B7016A +:102F00009093B8010C94AA130F931F930091B501ED +:102F10001091B6012091B7013091B801DC01CB01CD +:102F2000802B912BA22BB32B8093B5019093B601EC +:102F3000A093B701B093B8011F910F910C94AA13FD +:102F40000F931F930091B5011091B6012091B70125 +:102F50003091B801DC01CB0180239123A223B3235C +:102F60008093B5019093B601A093B701B093B801D7 +:102F70001F910F910C94AA130F931F930091B50109 +:102F80001091B6012091B7013091B801DC01CB015D +:102F900080279127A227B3278093B5019093B6018C +:102FA000A093B701B093B8011F910F910C94AA138D +:102FB0001092B1011092B2011092B3011092B401BB +:102FC0000C94AA1341E050E060E070E004C0440FAC +:102FD000551F661F771F8A95D2F74093B101509312 +:102FE000B2016093B3017093B4010C94AA1341E051 +:102FF00050E060E070E004C0440F551F661F771F6B +:103000008A95D2F78091B1019091B201A091B3015C +:10301000B091B401482B592B6A2B7B2B4093B10103 +:103020005093B2016093B3017093B4010C94AA134E +:1030300041E050E060E070E004C0440F551F661F9F +:10304000771F8A95D2F7409550956095709580913D +:10305000B1019091B201A091B301B091B4014823A4 +:1030600059236A237B234093B1015093B2016093AB +:10307000B3017093B4010C94AA1341E050E060E0F6 +:1030800070E004C0440F551F661F771F8A95D2F762 +:103090008091B1019091B201A091B301B091B401BE +:1030A000482759276A277B274093B1015093B201E3 +:1030B0006093B3017093B4010C94AA130F931F9300 +:1030C0000091B1011091B2012091B3013091B4018E +:1030D000DC01CB01802B912BA22BB32B8093B10170 +:1030E0009093B201A093B301B093B4011F910F91DB +:1030F0000C94AA130F931F930091B1011091B20188 +:103100002091B3013091B401DC01CB0180239123E4 +:10311000A223B3238093B1019093B201A093B30192 +:10312000B093B4011F910F910C94AA130F931F93A6 +:103130000091B1011091B2012091B3013091B4011D +:10314000DC01CB0180279127A227B3278093B1010F +:103150009093B201A093B301B093B4011F910F916A +:103160000C94AA130895CF92DF92EF92FF920F93DF +:103170001F93CF93DF938C01C090B501D090B6011F +:10318000E090B701F090B8014091B1015091B201C7 +:103190006091B3017091B401C42AD52AE62AF72AB6 +:1031A000CFE1D0E0D701C6010C2E04C0B695A7959B +:1031B000979587950A94D2F780FF07C0B8018C2FA6 +:1031C0000E94FD058130910531F4219758F7B8012F +:1031D00080E00E94FD05DF91CF911F910F91FF903C +:1031E000EF90DF90CF90089590910C01992321F0FA +:1031F00090910D01911109C020910E0130910F01A4 +:10320000F90132969FEF40E01FC0982F9695969552 +:1032100096959F3050F5E0910E01F0910F01E90F66 +:10322000F11D877021E030E0A90102C0440F551F55 +:103230008A95E2F7CA019181892B818308959F3F86 +:1032400039F04F5F4E3041F051915813F8CF0DC017 +:103250005111F7CF942FF5CF9F3F39F0F901E90FC6 +:10326000F11D97FDFA9582830895089590910C01C0 +:10327000992321F090910D01911109C020910E0127 +:1032800030910F01F9013296205F3F4F1FC0982FF8 +:103290009695969596959F30F0F4E0910E01F091F9 +:1032A0000F01E90FF11D877021E030E0A90102C094 +:1032B000440F551F8A95E2F7CA01809591818923B1 +:1032C000818308953196E217F30729F090819813CE +:1032D000F9CF1082F7CF089581E090E0E0910E01E0 +:1032E000F0910F01E80FF91F1082019680319105CE +:1032F000A9F708959091CC01892B8093CC01089572 +:1033000080959091CC0189238093CC0108951092EF +:10331000CC0108959091CB01892B8093CB01089526 +:1033200080959091CB0189238093CB0108951092D1 +:10333000CB0108959091CA01892B8093CA01089509 +:1033400080959091CA0189238093CA0108951092B3 +:10335000CA0108958093B90108951092B9010895A2 +:1033600080910E0190910F01FC0131969C01205F2C +:103370003F4F80E0919191118F5FE217F307D1F7F2 +:103380000895E0910E01F0910F018091CC018083AE +:10339000E0910E01F0910F0190818091CB01892B7A +:1033A0008083E0910E01F0910F0190818091CA011C +:1033B000892B80838091B901882361F0E0910E010F +:1033C000F0910F019081892B80830E94B0198111A7 +:1033D0001092B90180910E0190910F010C94490E49 +:1033E000CF92DF92EF92FF926C01EE24FF24C11482 +:1033F000D104E104F10421F0C701B60120E101C0CC +:1034000020E0C72ED82EE92EFF24C114D104E104F8 +:10341000F10419F0285FC701B6016B017C0154E08B +:10342000F694E794D794C7945A95D1F7C114D10470 +:10343000E104F10419F02C5FC701B6016B017C01B6 +:1034400042E0F694E794D794C7944A95D1F7C11413 +:10345000D104E104F10419F02E5FC701B601DC01CB +:10346000CB01B695A79597958795892B8A2B8B2BA2 +:1034700009F02F5F822FFF90EF90DF90CF9008959B +:103480008091E601843039F11092CE0120E488E188 +:1034900090E00FB6F894A895809360000FBE20933B +:1034A000600080E00E94330783B7817F846083BF20 +:1034B00083B7816083BF7894889583B78E7F83BFFD +:1034C0000FB6F894A89580916000886180936000A1 +:1034D000109260000FBE089508950895CF930E9442 +:1034E0006C1A0E9426040E946D1AC0E08C2F0E9464 +:1034F0001405811104C0CF5FCE30C1F701C081E057 +:10350000CF9108950E94BE130E943D0E0C94330784 +:1035100082E084BD93E095BD9AEF97BD80936E00E5 +:1035200008952FB7F8948091CF019091D001A09188 +:10353000D101B091D2012FBF0895CF92DF92EF92C7 +:10354000FF920F931F932FB7F8944091CF015091A2 +:10355000D0016091D1017091D2012FBF6A017B012E +:10356000EE24FF248C0120E030E0C016D106E206F4 +:10357000F30610F4415051099A01281B390BC90177 +:103580001F910F91FF90EF90DF90CF9008951F92C1 +:103590000F920FB60F9211248F939F93AF93BF9307 +:1035A0008091CF019091D001A091D101B091D20131 +:1035B0000196A11DB11D8093CF019093D001A093DE +:1035C000D101B093D201BF91AF919F918F910F9094 +:1035D0000FBE0F901F9018950E943A0BF8942FEF92 +:1035E00087EA91E6215080409040E1F700C000005A +:1035F00087E090EBDC018093EF019093F001A093C2 +:10360000F101B093F2019CE088E10FB6F894A8951F +:10361000809360000FBE90936000FFCFEF92FF9207 +:103620000F931F93CF93DF93D82FC0E08C2F0E946E +:10363000140500E010E0E82EF12CC701002E02C0B6 +:10364000959587950A94E2F780FD06C00F5F1F4F9E +:103650000630110591F709C0602F7C2F80E00E9491 +:10366000DB05D813F3CF81E004C0CF5FCE30F1F695 +:1036700080E0DF91CF911F910F91FF90EF9008951F +:10368000CF93C82F8CE20E940E1B882321F08C2F31 +:10369000CF910C940E1B80E0CF910895CF930E94A0 +:1036A000951C811102C00E947B1CC5E6C15049F0E7 +:1036B0000E9426048FE39CE90197F1F700C0000007 +:1036C000F5CF89E20E94401B811113C18AE20E945A +:1036D000401B81110E947B1C85E00E94401B8111D0 +:1036E0000E94EC1A0E94A01C8093CD0187E00E94EA +:1036F000401B8823A9F18BE10E94401B882351F0D5 +:103700008091CD0181FB222720F991E0922790FB47 +:1037100081F90EC08EE00E94401B882361F08091E9 +:10372000CD0182FB222720F991E0922790FB82F9BC +:103730008093CD0115C080E10E94401B9091CD0186 +:10374000882341F093FB222720F981E0822780FB28 +:1037500093F904C0892F809580FB90F99093CD0157 +:103760008091CD010E94A41C0E94B21C8093E001B4 +:1037700080EE0E94401B882341F08091E001982F49 +:10378000909590FB80F98093E00189E30E94401BB3 +:10379000882359F08091E00181FB222720F991E0F4 +:1037A000922790FB81F98093E00182EE0E94401BFA +:1037B000882359F08091E00182FB222720F991E0D3 +:1037C000922790FB82F98093E00186EE0E94401BD5 +:1037D000882359F08091E00183FB222720F991E0B2 +:1037E000922790FB83F98093E00183EE0E94401BB7 +:1037F000882359F08091E00184FB222720F991E091 +:10380000922790FB84F98093E00185E30E94401B9E +:10381000882359F08091E00185FB222720F991E06F +:10382000922790FB85F98093E00181E30E94401B81 +:10383000882359F08091E00186FB222720F991E04E +:10384000922790FB86F98093E00181E10E94401B62 +:10385000882359F08091E00187FB222720F991E02D +:10386000922790FB87F98093E0018091E0010E940C +:10387000B61C8091E00187FB882780F980930D01B9 +:1038800087E20E94401BC82F8EE10E94401B8111DD +:10389000C2608FE10E94401B8111C46080E20E94DF +:1038A000401B8111C86081E20E94401B8111C061F0 +:1038B00082E20E94401B8111C06283E20E94401B91 +:1038C0008111C06484E20E94401B882311F0C0680B +:1038D00002C0CC2329F08C2F0E94AD1C6C2F03C09A +:1038E0000E94A91C682F70E080E090E0CF910C94BA +:1038F0007A17CF9108956DEE7EEF80E090E00E9400 +:10390000F52260E082E090E00E94E72260E083E040 +:1039100090E00E94E72260E084E090E00E94E722CD +:1039200060E085E090E00C94E72280E090E00E9467 +:10393000E12221E08D3E9E4F09F020E0822F089584 +:1039400082E090E00C94D922682F82E090E00C9401 +:10395000E72283E090E00C94D922682F83E090E086 +:103960000C94E72284E090E00C94D922682F84E044 +:1039700090E00C94E7228091D50180FF0BC060910C +:10398000130185E0689FB0011124759567957595C1 +:1039900067952BC081FF09C06091130185E0689F86 +:1039A000B00111247595679520C082FF07C0609112 +:1039B000130185E0689FB001112417C09091D601D2 +:1039C0009923D1F060911201961788F72091130185 +:1039D00085E0289F90011124929FA001939F500D94 +:1039E000112470E0CA010E94AB226038710540F4D6 +:1039F0006115710539F002C065E070E0862F089509 +:103A00008FE7089581E008958091D50180FF08C077 +:103A10006091110170E0759567957595679521C066 +:103A200081FF06C06091110170E07595679519C01E +:103A300082FF04C06091110170E010C09091D60126 +:103A40009923C1F0609110019617A0F780911101A0 +:103A5000899FC001112470E00E94AB22603871057B +:103A600028F46115710521F0862F08958FE70895D8 +:103A700081E0089561E070E0F4CF803F21F40E947E +:103A8000BB1C819504C0813F29F40E94BB1C80931C +:103A9000D9010895823F21F40E94BB1C819504C086 +:103AA000833F29F40E94BB1C8093D8010895893F6D +:103AB00019F40E94041D05C08A3F31F40E94041DC0 +:103AC00081958093DA0108958B3F21F40E94041DB3 +:103AD000819504C08C3F29F40E94041D8093DB0172 +:103AE0000895843F21F48091D701816017C0853FFC +:103AF00021F48091D701826011C0863F21F480912A +:103B0000D70184600BC0873F21F48091D701886082 +:103B100005C0883F31F48091D70180618093D7013F +:103B200008958D3F21F48091D50181600BC08E3FB7 +:103B300021F48091D501826005C08F3F29F48091E6 +:103B4000D50184608093D5010895803F39F4809138 +:103B5000D90187FF6CC01092D90169C0813F29F457 +:103B60008091D9011816BCF362C09091D801823FB0 +:103B700029F497FF5CC01092D80159C0833F19F413 +:103B80001916CCF354C0893F41F48091DA0118161C +:103B90000CF04DC01092DA014AC08A3F29F480919E +:103BA000DA0187FF44C0F6CF8B3F39F48091DB0107 +:103BB00087FF3DC01092DB013AC08C3F29F4809111 +:103BC000DB011816BCF333C0843F21F48091D70188 +:103BD0008E7F17C0853F21F48091D7018D7F11C062 +:103BE000863F21F48091D7018B7F0BC0873F21F462 +:103BF0008091D701877F05C0883F31F48091D7013C +:103C00008F7E8093D70113C08D3F21F48091D50121 +:103C10008E7F0BC08E3F21F48091D5018D7F05C032 +:103C20008F3F29F48091D5018B7F8093D5018091BE +:103C3000D80181110EC08091D90181110AC08091F3 +:103C4000DA01811106C08091DB01811102C010925E +:103C5000D601089587ED91E00E94540E0E94911ABA +:103C60009093D4018093D30108951F93CF93DF9352 +:103C70008091D3019091D4010E949D1AAC01909142 +:103C8000D601992321F02091140130E006C0209143 +:103C900015018AE0289F900111244217530708F468 +:103CA00085C08091D801C091D901D091DA011091DD +:103CB000DB01811107C0C11175C0D11173C0111191 +:103CC00071C074C09F3F19F09F5F9093D601181682 +:103CD00024F40E94BB1C8093D8018091D80187FFF7 +:103CE00005C00E94BB1C81958093D8011C1624F44A +:103CF0000E94BB1C8093D9018091D90187FF05C028 +:103D00000E94BB1C81958093D9016091D8016623E4 +:103D100031F1C091D901CC2311F1062E000C770BA3 +:103D2000880B990B0E94B22123E333E343E35FE363 +:103D30000E9416220E947A216093D8016C2FCC0F2A +:103D4000770B880B990B0E94B22123E333E343E303 +:103D50005FE30E9416220E947A216093D9011D160A +:103D600024F40E94041D8093DA018091DA0187FF18 +:103D700005C00E94041D81958093DA01111624F478 +:103D80000E94041D8093DB018091DB0187FF05C049 +:103D90000E94041D81958093DB01DF91CF911F91DB +:103DA0000C942A1E9F3F09F08FCF97CFDF91CF91C0 +:103DB0001F910895E7EDF1E085E0DF011D928A95FE +:103DC000E9F71092D6011092D5010895833081F160 +:103DD00028F4813059F08230D1F00895853009F40B +:103DE00049C0B8F1863009F456C008958091150194 +:103DF000262F30E0280F311D2F3F310524F4680FA6 +:103E00006093150108958FEF8093150108958091B7 +:103E10001401262F30E0280F311D2F3F310524F4E7 +:103E2000680F6093140108958FEF80931401089533 +:103E300080911301262F30E0280F311D2F3F3105CF +:103E400024F4680F6093130108958FEF809313019A +:103E5000089580911201262F30E0280F311D2F3F49 +:103E6000310524F4680F6093120108958FEF809359 +:103E70001201089580911101262F30E0280F311D85 +:103E80002F3F310524F4680F6093110108958FEFDF +:103E900080931101089580911001262F30E0280FA2 +:103EA000311D2F3F310524F4680F609310010895F0 +:103EB0008FEF809310010895833011F128F4813041 +:103EC00049F0823091F00895853081F120F18630FB +:103ED000C1F1089580911501681720F4861B809325 +:103EE0001501089510921501089580911401681725 +:103EF00020F4861B809314010895109214010895F4 +:103F000080911301681720F4861B80931301089594 +:103F100010921301089580911201681720F4861BF6 +:103F20008093120108951092120108958091110159 +:103F3000681720F4861B80931101089510921101D7 +:103F4000089580911001681720F4861B809310015A +:103F500008951092100108950F931F938D3109F465 +:103F60006AC008F03FC08E3009F484C0C0F48730C6 +:103F700009F46DC068F4863009F0B5C08091CD01B8 +:103F8000817F8E7F8093CD0181E08093DD01ACC085 +:103F9000883009F457C08B3009F46AC0A4C0863158 +:103FA00009F466C078F4803109F477C0813109F0F2 +:103FB0009AC00E94BE1390910D0181E089278093E1 +:103FC0000D0156C0893109F453C08B3109F08BC003 +:103FD0008091CD0181FB222720F991E0922790FB6F +:103FE00081F951C0853309F475C048F4873209F46A +:103FF00071C008F45EC0893209F46CC074C08334A7 +:1040000030F48A3308F053C0883391F16CC08334A4 +:1040100009F460C0883409F066C00E94BE130FEF37 +:1040200013ED20E3015010402040E1F700C00000F4 +:104030000E94EC1A1DC00E9434210E943D0E0E9475 +:10404000330716C00E94A01C0E94B21C11C09091A0 +:10405000CD01892F8095817080FB90F929F09660C1 +:1040600098609093CD0140C0997F977F9093CD0148 +:1040700081E03AC08091CD0182FB222720F991E0B6 +:10408000922790FB82F98093CD01992389F3809147 +:10409000CD0181608093CD01EBCF8091CD0183FB79 +:1040A000222720F991E0922790FB83F9ECCF8953E6 +:1040B00001C08D5141E050E060E070E08A019B0159 +:1040C00004C0000F111F221F331F8A95D2F7C901A8 +:1040D000B80104C061E070E080E090E00E947A17CF +:1040E0000E94BE13C5CF80E01F910F91089580E01C +:1040F000089580E00895CF93C82F8091DD0181302D +:1041000079F018F08230E9F187C0E0910E01F0916A +:104110000F018081813169F0823209F07FC009C0CE +:10412000E0910E01F0910F018081813111F0823216 +:1041300061F48C2F0E947720811104C08C2F0E9483 +:10414000AC1F1DC081E090E01AC08C2F0E94792026 +:10415000811114C0C43179F048F4CB3079F0C0310A +:1041600009F060C082E08093DD0108C0C93219F017 +:10417000C83321F057C01092DD0154C081E0817036 +:1041800053C0C93289F118F5C43171F1A8F4C730B0 +:1041900009F046C08AE08093150194E190931401E0 +:1041A00093E0909313018093120188E080931101B2 +:1041B00088E28093100134C0CE51C63088F5EC2FD0 +:1041C000F0E0E65DFE4F80818093DC0129C0CE34B3 +:1041D000E9F020F4CB3421F56AE013C0C13579F061 +:1041E000C235F1F461E00DC08091DC01882319F043 +:1041F0001092DC0115C081E08093DD0115C061E003 +:1042000006C08091DC010E94E61E0AC06AE080912F +:10421000DC010E945C1F04C01092DD0180E004C03C +:1042200081E002C080E0ABCFCF910895E1E8F0E0FB +:104230008081886080838081816080838FB7F894DB +:1042400093E09093890090ED909388008FBF08953C +:10425000EFE6F0E08081826080830895EFE6F0E091 +:1042600080818D7F80830895EFE6F0E0908182E089 +:104270008927808308951F920F920FB60F92112401 +:104280002F933F934F935F936F937F938F939F935E +:10429000AF93BF93EF93FF938091DE019091DF0185 +:1042A00001969093DF018093DE01811103C082E0CB +:1042B0000E943307E091DF01E695E695F0E0E657CE +:1042C000FB4FE4918091DE018E1303C080E00E94D9 +:1042D0003307FF91EF91BF91AF919F918F917F91A4 +:1042E0006F915F914F913F912F910F900FBE0F9063 +:1042F0001F9018950E9481216894B1110C9410228E +:1043000008950E94F52188F09F5798F0B92F9927BA +:10431000B751B0F0E1F0660F771F881F991F1AF0B0 +:10432000BA95C9F714C0B13091F00E940F22B1E0E4 +:1043300008950C940F22672F782F8827B85F39F0E3 +:10434000B93FCCF3869577956795B395D9F73EF449 +:1043500090958095709561957F4F8F4F9F4F0895F1 +:10436000E89409C097FB3EF490958095709561950F +:104370007F4F8F4F9F4F9923A9F0F92F96E9BB27C5 +:104380009395F695879577956795B795F111F8CF41 +:10439000FAF4BB0F11F460FF1BC06F5F7F4F8F4FAC +:1043A0009F4F16C0882311F096E911C0772321F0A2 +:1043B0009EE8872F762F05C0662371F096E8862F3A +:1043C00070E060E02AF09A95660F771F881FDAF791 +:1043D000880F9695879597F9089557FD9058440F43 +:1043E000551F59F05F3F71F04795880F97FB991F54 +:1043F00061F09F3F79F08795089512161306140611 +:10440000551FF2CF4695F1DF08C01616170618069D +:10441000991FF1CF86957105610508940895E89478 +:10442000BB2766277727CB0197F908950E94292299 +:104430000C949A220E948C2238F00E94932220F041 +:10444000952311F00C9483220C94892211240C944E +:1044500010220E94ED2170F3959FC1F3950F50E05B +:10446000551F629FF001729FBB27F00DB11D639F26 +:10447000AA27F00DB11DAA1F649F6627B00DA11DCC +:10448000661F829F2227B00DA11D621F739FB00D72 +:10449000A11D621F839FA00D611D221F749F3327E2 +:1044A000A00D611D231F849F600D211D822F762F7B +:1044B0006A2F11249F5750409AF0F1F088234AF058 +:1044C000EE0FFF1FBB1F661F771F881F91505040C4 +:1044D000A9F79E3F510580F00C9483220C94102282 +:1044E0005F3FE4F3983ED4F3869577956795B7954B +:1044F000F795E7959F5FC1F7FE2B880F911D969565 +:10450000879597F9089597F99F6780E870E060E0D4 +:1045100008959FEF80EC089500240A94161617065C +:1045200018060906089500240A94121613061406A4 +:1045300005060895092E0394000C11F4882352F007 +:10454000BB0F40F4BF2B11F460FF04C06F5F7F4FBF +:104550008F4F9F4F089597FB072E16F4009407D0B6 +:1045600077FD09D00E94C52207FC05D03EF4909546 +:1045700081959F4F0895709561957F4F0895EE0F37 +:10458000FF1F0590F491E02D0994AA1BBB1B51E17C +:1045900007C0AA1FBB1FA617B70710F0A61BB70BB3 +:1045A000881F991F5A95A9F780959095BC01CD0158 +:1045B0000895F999FECF92BD81BDF89A992780B5EB +:1045C0000895A8E1B0E042E050E00C94FC22262FD0 +:1045D000F999FECF1FBA92BD81BD20BD0FB6F894E8 +:1045E000FA9AF99A0FBE019608950E94E722272FA2 +:1045F0000C94E822DC01CB01FC01F999FECF06C046 +:10460000F2BDE1BDF89A319600B40D924150504090 +:08461000B8F70895F894FFCFFC +:1046180020023507C307A0076C0738070101BA0154 +:1046280028080A03140A3F4D36394B04FE03C80311 +:104638008F0322033B0354036D03010203040506A1 +:044648000708090056 +:00000001FF diff --git a/keyboard/ergodox_ez/keymaps/dvorak_intl_squisher/keyboard-layout0.png b/keyboard/ergodox_ez/keymaps/dvorak_intl_squisher/keyboard-layout0.png new file mode 100644 index 0000000000..6a36f9bfa1 Binary files /dev/null and b/keyboard/ergodox_ez/keymaps/dvorak_intl_squisher/keyboard-layout0.png differ diff --git a/keyboard/ergodox_ez/keymaps/dvorak_intl_squisher/keyboard-layout1.png b/keyboard/ergodox_ez/keymaps/dvorak_intl_squisher/keyboard-layout1.png new file mode 100644 index 0000000000..c6e6d913cb Binary files /dev/null and b/keyboard/ergodox_ez/keymaps/dvorak_intl_squisher/keyboard-layout1.png differ diff --git a/keyboard/ergodox_ez/keymaps/dvorak_intl_squisher/keyboard-layout2.png b/keyboard/ergodox_ez/keymaps/dvorak_intl_squisher/keyboard-layout2.png new file mode 100644 index 0000000000..23f56ff4c0 Binary files /dev/null and b/keyboard/ergodox_ez/keymaps/dvorak_intl_squisher/keyboard-layout2.png differ diff --git a/keyboard/ergodox_ez/keymaps/dvorak_intl_squisher/keymap.c b/keyboard/ergodox_ez/keymaps/dvorak_intl_squisher/keymap.c new file mode 100644 index 0000000000..82f55b4bc0 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/dvorak_intl_squisher/keymap.c @@ -0,0 +1,185 @@ +#include "ergodox_ez.h" +#include "debug.h" +#include "action_layer.h" + +#define BASE 0 // default layer +#define SYMB 1 // symbols +#define MDIA 2 // media keys + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Keymap 0: Basic layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | = | 1 | 2 | 3 | 4 | 5 | BrBck| | Play | 6 | 7 | 8 | 9 | 0 | \ / L2 | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | Esc | ' | , | . | P | Y | Del | | Ins | F | G | C | R | L | / | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | BkSp | A | O | E | U | I |------| |------| D | H | T | N | S | - | + * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------| + * | LShift |:/Ctrl| Q | J | K | X | | | | B | M | W | V |Z/Ctrl| RShift | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * |Grv/L1| LAlt | LGui | Left | Right| | Up | Down | [ | ] | ~L1 | + * `----------------------------------' `----------------------------------' + * ,-------------. ,---------------. + * | App | L1 | | L2 |PrntScr | + * ,------|------|------| |------+--------+------. + * | | | Home | | PgUp | | | + * | Space| Tab |------| |------| AltShf |Enter | + * | | | End | | PgDn | | | + * `--------------------' `----------------------' + */ +// If it accepts an argument (i.e, is a function), it doesn't need KC_. +// Otherwise, it needs KC_* +[BASE] = KEYMAP( // layer 0 : default + // left hand + KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_WBAK, + KC_ESC, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_DELT, + KC_BSPC, KC_A, KC_O, KC_E, KC_U, KC_I, + KC_LSFT, CTL_T(KC_SCLN), KC_Q, KC_J, KC_K, KC_X, ALL_T(KC_NO), + LT(SYMB,KC_GRV),KC_LALT, KC_LGUI, KC_LEFT,KC_RGHT, + CTL_T(KC_APP), TG(1), + KC_HOME, + KC_SPC,KC_TAB,KC_END, + // right hand + KC_MPLY, KC_6, KC_7, KC_8, KC_9, KC_0, LT(MDIA, KC_BSLS), + KC_INS, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, + KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS, + MEH_T(KC_NO),KC_B, KC_M, KC_W, KC_V, CTL_T(KC_Z), KC_RSFT, + KC_UP, KC_DOWN,KC_LBRC,KC_RBRC, KC_FN1, + TG(2), KC_PSCREEN, + KC_PGUP, + KC_PGDN,RALT(KC_RSFT), KC_ENT + ), +/* Keymap 1: Symbol & Media Layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | ! | @ | { | } | | | | | | Up | 7 | 8 | 9 | * | F12 | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | # | $ | ( | ) | ` |------| |------| Down | 4 | 5 | 6 | + | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | \ | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | Prev | Next | | | . | 0 | = | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | |VolUp | | | + * | | |------| |------| Mute | | + * | | | | |VolDn | | | + * `--------------------' `--------------------' + */ +// SYMBOLS +[SYMB] = KEYMAP( + // left hand + KC_TRNS,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS, + KC_TRNS,KC_EXLM,KC_AT, KC_LCBR,KC_RCBR,KC_PIPE,KC_TRNS, + KC_TRNS,KC_HASH,KC_DLR, KC_LPRN,KC_RPRN,KC_GRV, + KC_TRNS,KC_PERC,KC_CIRC,KC_LBRC,KC_RBRC,KC_TILD,KC_TRNS, + KC_TRNS,KC_TRNS,KC_TRNS,KC_MPRV,KC_MNXT, + KC_TRNS,KC_TRNS, + KC_TRNS, + KC_TRNS,KC_TRNS,KC_TRNS, + // right hand + KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + KC_TRNS, KC_UP, KC_7, KC_8, KC_9, KC_ASTR, KC_F12, + KC_DOWN, KC_4, KC_5, KC_6, KC_PLUS, KC_TRNS, + KC_TRNS, KC_AMPR, KC_1, KC_2, KC_3, KC_BSLS, KC_TRNS, + KC_TRNS,KC_DOT, KC_0, KC_EQL, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_VOLU, + KC_VOLD, KC_MUTE, KC_TRNS +), +/* Keymap 2: QWERTY Layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | Q | W | E | R | T | | | | Y | U | I | O | P | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | A | S | D | F | G |------| |------| H | J | K | L | ; | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | |Z/Ctrl| X | C | V | B | | | | N | M | , | . |//Ctrl| | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// MEDIA AND MOUSE +KEYMAP( // layer 0 : default + // left hand + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, + KC_TRNS, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_TRNS, + KC_TRNS, KC_A, KC_S, KC_D, KC_F, KC_G, + KC_TRNS, CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, + // right hand + KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, + KC_TRNS, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_TRNS, + KC_H, KC_J, KC_K, KC_L, LT(MDIA, KC_SCLN),KC_TRNS, + KC_TRNS, KC_N, KC_M, KC_COMM,KC_DOT, CTL_T(KC_SLSH), KC_TRNS, + KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS + ), +}; + +const uint16_t PROGMEM fn_actions[] = { + [1] = ACTION_LAYER_TAP_TOGGLE(SYMB) // FN1 - Momentary Layer 1 (Symbols) +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch(id) { + case 0: + if (record->event.pressed) { + register_code(KC_RSFT); + } else { + unregister_code(KC_RSFT); + } + break; + } + return MACRO_NONE; +}; + +// Runs just one time when the keyboard initializes. +void matrix_init_user(void) { + +}; + +// Runs constantly in the background, in a loop. +void matrix_scan_user(void) { + + uint8_t layer = biton32(layer_state); + + ergodox_board_led_off(); + ergodox_right_led_1_off(); + ergodox_right_led_2_off(); + ergodox_right_led_3_off(); + switch (layer) { + // TODO: Make this relevant to the ErgoDox EZ. + case 1: + ergodox_right_led_1_on(); + break; + case 2: + ergodox_right_led_2_on(); + break; + default: + // none + break; + } + +}; diff --git a/keyboard/ergodox_ez/keymaps/emacs_osx_dk/default_highres.png b/keyboard/ergodox_ez/keymaps/emacs_osx_dk/default_highres.png new file mode 100644 index 0000000000..1d2583740c Binary files /dev/null and b/keyboard/ergodox_ez/keymaps/emacs_osx_dk/default_highres.png differ diff --git a/keyboard/ergodox_ez/keymaps/emacs_osx_dk/emacs_osx_dk.hex b/keyboard/ergodox_ez/keymaps/emacs_osx_dk/emacs_osx_dk.hex new file mode 100644 index 0000000000..f05b3cc196 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/emacs_osx_dk/emacs_osx_dk.hex @@ -0,0 +1,1121 @@ +:100000000C9465020C94AC020C94AC020C94AC02FF +:100010000C94AC020C94AC020C94AC020C94AC02A8 +:100020000C94AC020C94AC020C94C30B0C94950C85 +:100030000C94AC020C94AC020C94AC020C94AC0288 +:100040000C94AC020C9409210C94AC020C94AC02FC +:100050000C94AC020C949B1A0C94AC020C94AC0261 +:100060000C94AC020C94AC020C94AC020C94AC0258 +:100070000C94AC020C94AC020C94AC020C94AC0248 +:100080000C94AC020C94AC020C94AC020C94AC0238 +:100090000C94AC020C94AC020C94AC020C94AC0228 +:1000A0000C94AC020C94AC020C94AC02020D240D26 +:1000B000170E240D170E690D8C0D170EE10DF40DA2 +:1000C000DE10DE100D110D1150118A1197139713C8 +:1000D000A3119713981298126B1397139713821307 +:1000E0000000F0A135002B003171E1000152000049 +:1000F0001E00140004001D00E0004D001F001A0047 +:1001000016001B0050002A0020000800070006000F +:100110004F002C002100150009001900E2004A00E0 +:10012000220017000A00050000004C0001542F00B7 +:100130000000E60000004900025430000000E60024 +:100140000000290023001C000B00110000006500C6 +:10015000240018000D001000E2004B0025000C00E8 +:100160000E00360052002800260012000F00370053 +:100170005100E3002700130033003800E4004E0074 +:100180002E002D003471E500025200000100010034 +:1001900001000100010000003A001E0220022202BC +:1001A000010001003B001F022102230201000100A7 +:1001B0003C002F0226022F00010001003D0030020A +:1001C00027023000010001003E00310235003502F7 +:1001D000000001000100010000000100000001001A +:1001E0000100010000000100000001003F0052007A +:1001F00051002402000001004000240021001E00E4 +:10020000270001004100250022001F0027000100F7 +:100210004200260023002000370001004300250291 +:100220002E0231002E0001004400450001000100B3 +:1002300001000000010001000100010001000000B8 +:1002400001000100010001000100010001000100A6 +:10025000F2000100010001000100F000F1000100C6 +:10026000F400010001000100F3000100F5000100AD +:100270000100010001000100000001000100010077 +:100280000000010000000100010001000000010069 +:100290000000010001000100010001000000010058 +:1002A0000100010001000100A9000100010001009E +:1002B0000100AC00AA00B600010001000100AB0083 +:1002C000A80001000100010001000100010001007F +:1002D00001000100AE00010001000000160345000E +:1002E000720067006F0044006F0078002000450036 +:1002F0005A00000016034500720067006F004400BA +:100300006F007800200045005A0000000403090433 +:1003100009026D00040100A0FA09040000010301B4 +:100320000100092111010001223F00070581030896 +:10033000000A090401000103010200092111010062 +:1003400001224D000705820308000A09040200018A +:100350000300000009211101000122360007058376 +:100360000308000A09040300010300000009211129 +:100370000100012239000705840310000112011059 +:100380000100000008EDFE07130100010200010555 +:10039000010906A101050719E029E71500250195C6 +:1003A0000875018102050819012905950575019156 +:1003B000029501750391010507190029771500259C +:1003C00001957875018102C005010980A1018502AE +:1003D00016010026B7001A01002AB7007510950112 +:1003E0008100C0050C0901A1018503160100269CAE +:1003F000021A01002A9C02751095018100C00501B6 +:100400000902A1010901A100050919012905150029 +:10041000250195057501810295017503810105018D +:10042000093009311581257F950275088106093843 +:100430001581257F950175088106050C0A3802157E +:1004400081257F950175088106C0C005010906A1B7 +:1004500001050719E029E7150025019508750181B7 +:100460000295017508810105081901290595057591 +:100470000191029501750391010507190029FF15E6 +:100480000025FF950675088100C0000000000000EF +:100490000000000000010204060A0F17202C3A4A4F +:1004A0005D71879DB3C7DAE9F5FCFFFCF5E9DAC7B2 +:1004B000B39D87715D4A3A2C20170F0A060402018A +:1004C0000000000000000000000011241FBECFEF5C +:1004D000DAE0DEBFCDBF04B603FE27C08091ED0198 +:1004E0009091EE01A091EF01B091F0018730904B17 +:1004F000A740B04BD1F41092ED011092EE01109292 +:10050000EF011092F00114BE84B7877F84BF0FB64D +:10051000F894A895809160008861809360001092A3 +:1005200060000FBEE0E0FFE3099511E0A0E0B1E05C +:10053000E4EBF5E402C005900D92A433B107D9F7BE +:1005400021E0A4E3B1E001C01D92AD3EB207E1F7A6 +:100550000E940A090C94D8220C94000061110BC06F +:10056000FC018281882321F085EE0E94780F03C070 +:1005700085EE0E94401080E090E00895089560911B +:10058000B1017091B2018091B3019091B4010E94C8 +:10059000C81956985E9825982D9826982E982798D1 +:1005A0002F98813019F0823021F00895259A2D9AE4 +:1005B0000895269A2E9A08950C94BF0256985E9834 +:1005C00025982D9826982E9827982F988FEF90E0B1 +:1005D000909389008093880090938B0080938A0089 +:1005E00090938D0080938C00259A2D9A2FEF80E7B1 +:1005F00092E0215080409040E1F700C00000269A30 +:100600002E9A2FEF80E792E0215080409040E1F752 +:1006100000C00000279A2F9A2FEF80E792E0215028 +:1006200080409040E1F700C0000025982D982FEF02 +:1006300080E792E0215080409040E1F700C0000048 +:1006400026982E982FEF80E792E02150804090402E +:10065000E1F700C0000027982F9856985E982598DB +:100660002D9826982E9827982F98089589EA809398 +:10067000800089E08093810024982C983F988AB16B +:100680008F748AB96E98479A8BB1806B8BB9769AC2 +:100690000E94DE020C94BE0280E2809300018091F1 +:1006A000340181110EC00E949B0381E080933401CC +:1006B0002FEF83ED90E3215080409040E1F700C0A0 +:1006C000000080E40E94A1038093000181112EC0EC +:1006D0000E94CB0380930001811128C00E94CB03AC +:1006E00080930001811122C08FE30E94CB0380938D +:1006F000000181111BC00E94C30380E40E94A1037A +:1007000080930001811112C08CE00E94CB03809382 +:10071000000181110BC00E94CB0380930001811165 +:1007200005C08FE30E94CB03809300010E94C303A6 +:100730008091000108951092B9008AE08093B8007A +:10074000089594EA9093BC009091BC0097FFFCCF71 +:100750009091B900987F983021F0903111F081E0AC +:1007600008958093BB0084E88093BC008091BC0016 +:1007700087FFFCCF8091B900887F883111F08034E9 +:1007800071F780E0089584E98093BC008091BC00FB +:1007900084FDFCCF08958093BB0084E88093BC0067 +:1007A0008091BC0087FFFCCF9091B900987F81E0D9 +:1007B000983209F480E0089584E88093BC00809129 +:1007C000BC0087FFFCCF8091BB00089580910001A1 +:1007D000811115C080E40E94A10380930001811162 +:1007E0000CC082E10E94CB0380930001811105C0FF +:1007F0008FEF0E94CB03809300010E94C30384B15A +:10080000807F84B985B1807F85B98AB1837F8AB9B9 +:100810008BB1837F8BB93E98469808950E944C0314 +:10082000809300010E94E60380B38C7080BB81B38B +:10083000836F81BBE4E4F1E0A6E3B1E011921D9285 +:1008400081E0E235F807D1F70C9436039F92AF921E +:10085000BF92CF92DF92EF92FF920F931F93CF93AD +:10086000DF9380910001882379F0809135018F5FBB +:1008700080933501811108C00E944C0380930001D0 +:10088000811102C00E94DE0286E3E82E81E0F82E8C +:100890008701C0E0D0E0BB24B39492E0A92ECC2421 +:1008A000C394D12CC730D10500F58091000181118E +:1008B00064C080E40E94A10380930001811112C0F2 +:1008C00082E10E94CB038093000181110BC0C6011D +:1008D0000C2E01C0880F0A94EAF780950E94CB0382 +:1008E000809300010E94C30348C0CA30A1F028F4DD +:1008F000C83059F0C93061F005C0CC3089F070F0D3 +:10090000CD3089F0209A289810C0219A29980DC0DE +:10091000229A2A980AC0239A2B9807C0529A01C09B +:10092000539A5B9802C03E9A4698E0EAEA95F1F73E +:100930008FB181708B25799902C032E001C030E01F +:10094000832B7C9902C034E001C030E0832B7D9979 +:1009500002C028E001C020E0822B7E9902C090E115 +:1009600001C090E0892B9FB19095991F9927991FFD +:100970009295990F907E892B0FC080910001811173 +:100980004AC080E40E94A10380930001882381F182 +:10099000912C0E94C303892DD8019C91981719F0BE +:1009A0008C93A09201010E94E60321960F5F1F4FD6 +:1009B000CE30D10509F076CF80910101882369F10D +:1009C000815080930101882339F0EFE9FFE03197EE +:1009D000F1F700C0000021C0E4E4F1E0D7018D91FF +:1009E0007D018193B4E4EB16B1E0FB06B9F715C0C5 +:1009F00083E10E94CB03809300018111C9CF81E480 +:100A00000E94A103809300018111C2CF0E94DC03E8 +:100A1000982E9094BECF80E0BFCF0E94DC0281E090 +:100A2000DF91CF911F910F91FF90EF90DF90CF90CA +:100A3000BF90AF909F900895E82FF0E0EC5BFE4FE1 +:100A40008081089508958B3B910580F4883A910543 +:100A500048F5853A9105D8F48430910508F0B2C084 +:100A6000019709F06EC081E090E00895803E910505 +:100A700008F467C0883E910508F4A4C09C01205F7B +:100A800031092031310508F05CC090650895853A40 +:100A9000910509F459C0863A910509F058C082E8D9 +:100AA00090E40895883A910509F454C0893A910573 +:100AB00009F453C08A3A910509F452C08B3A910562 +:100AC00009F451C08C3A910509F450C08D3A910552 +:100AD00009F44FC0803B910509F44EC08E3A910550 +:100AE00009F44DC08F3A910509F44CC0813B910542 +:100AF00009F44BC0823B910509F44AC0833B910540 +:100B000009F449C0843B910509F448C0853B91052F +:100B100009F447C0863B910509F446C0873B91051F +:100B200009F445C0883B910509F444C0893B91050F +:100B300009F443C08A3B910509F442C080E094E483 +:100B4000089580E090E0089581E890E4089583E8B6 +:100B500090E4089582EE94E4089589EE94E4089573 +:100B60008AEE94E4089585EB94E4089586EB94E48A +:100B7000089587EB94E408958CEC94E408958DEC4B +:100B800094E4089583E895E408958AE895E4089547 +:100B900082E995E4089584E995E4089581E296E474 +:100BA000089583E296E4089584E296E4089585E248 +:100BB00096E4089586E296E4089587E296E408951F +:100BC0008AE296E40895089524E5829FC0011124E5 +:100BD000FC0126E0729FE00DF11D1124E60FF11DCE +:100BE000EE0FFF1FEC51FF4F859194910895880FF0 +:100BF000991FFC01E05AF040859194910895880F67 +:100C0000991FFC01E052FF4F85919491089524E5CE +:100C1000829FC0011124FC0146E0749FE00DF11D8C +:100C20001124E60FF11DEE0FFF1FEC51FF4F8591D0 +:100C300094919C013A9521154FE1340708F425C1A0 +:100C40003F512115304120F49F700E94FF05089507 +:100C50009C0130532115304118F49927906C089568 +:100C6000811520E5920769F40E94B9134FEF84E3E0 +:100C70009CE0415080409040E1F700C000000C949F +:100C8000C01A813020E5920731F48091CC01816057 +:100C90008093CC0108959C0130552115304108F016 +:100CA0005CC0292F33272F70332721303105E9F419 +:100CB000AC0164E0440F551F6A95E1F74427537077 +:100CC000BC016370772702C0220F331F6A95E2F7D9 +:100CD0003C68242B352B73E0880F991F7A95E1F738 +:100CE00080769927822B932B08952230310529F4A1 +:100CF000982F8827816F906A089523303105A1F4D9 +:100D0000AC0133E0440F551F3A95E1F7407E577030 +:100D10008370992721E030E002C0220F331F8A95AB +:100D2000E2F7C9019C6816C02430310531F5AC01E9 +:100D300023E0440F551F2A95E1F7407E57708370DA +:100D4000992721E030E002C0220F331F8A95E2F795 +:100D5000C9019A68842B952B08959C013057211561 +:100D6000304118F49F70906208959C01305821150D +:100D7000304118F49F70906A0895803E9105E0F428 +:100D8000803C910558F58133910509F46FC048F412 +:100D90008932910509F463C08A32910509F46DC066 +:100DA00072C089339105E9F082389105D1F085331D +:100DB000910509F44DC067C0833E910581F138F477 +:100DC000803E9105B9F0823E9105D9F05CC0863E27 +:100DD000910561F1873E9105A1F155C00E94F7058B +:100DE00008952091DE0120FD02C021FF4CC080EE5D +:100DF00090E049C08091DE0180FFF9CF89E390E067 +:100E000042C08091DE0182FF0EC08091DE0184FF2E +:100E100003C080E090E037C083EE90E034C0809162 +:100E2000DE0182FFF2CF82EE90E02DC08091DE01E4 +:100E300083FF0BC08091DE0184FDEBCF87EE90E055 +:100E400022C08091DE0183FFF5CF86EE90E01BC0CB +:100E50008091DE0185FF07C089E290E014C0809197 +:100E6000DE0185FFF9CF85E390E00DC08091DE01C2 +:100E700086FF07C08AE290E006C08091DE0186FF0F +:100E8000F9CF81E390E00E942305089508958091B1 +:100E900062010895CF93DF9300D01F92CDB7DEB7E4 +:100EA0009C018091E401843019F593E099833B83A0 +:100EB0002A839093E9008FEF9091E800815095FD8F +:100EC00006C095ED9A95F1F700008111F5CF80915C +:100ED000E80085FF0DC040E050E063E070E0CE0127 +:100EE00001960E94B7098091E8008E778093E80010 +:100EF0000F900F900F90DF91CF910895CF93DF93D4 +:100F000000D01F92CDB7DEB72091E401243021F547 +:100F100022E029839B838A8383E08093E9008FEF1B +:100F20009091E800815095FD06C095ED9A95F1F7F6 +:100F300000008111F5CF8091E80085FF0DC040E0F1 +:100F400050E063E070E0CE0101960E94B709809105 +:100F5000E8008E778093E8000F900F900F90DF915C +:100F6000CF9108959C018091E4018430F9F482E0EE +:100F70008093E9009FEF8091E800915085FD06C0C5 +:100F800085ED8A95F1F700009111F5CF8091E80089 +:100F900085FF0CC040E050E065E070E0C9010E94B0 +:100FA000B7098091E8008E778093E8000895CF9389 +:100FB000DF93EC018091E401843009F046C0909108 +:100FC0000C019923D9F090910D019923B9F08093E8 +:100FD000E9008FEF9091E800815095FD06C095E102 +:100FE0009A95F1F700008111F5CF8091E80085FF17 +:100FF0002CC040E050E060E170E017C081E08093D9 +:10100000E9008FEF9091E800815095FD06C095EDC5 +:101010009A95F1F700008111F5CF8091E80085FFE6 +:1010200014C040E050E068E070E0CE010E94B709D3 +:101030008091E8008E778093E80080E1FE01A2E5D0 +:10104000B1E001900D928A95E1F7DF91CF9108957B +:101050008091E301811109C00E94480B0E94A50BF9 +:101060008091E20084608093E20008951092E30191 +:10107000089508950C94F6200E94561A0E94FC20B0 +:101080000E94500E0C94460742E061EC81E00E9401 +:10109000C10A42E061EC82E00E94C10A42E061ECD8 +:1010A00083E00E94C10A42E161EC84E00C94C10A31 +:1010B0008091E601833009F455C030F4813071F03D +:1010C000823009F48EC008958A3009F47AC08B30DA +:1010D00009F460C0893009F09CC020C08091E5010E +:1010E000813A09F096C08091E800877F8093E800FC +:1010F0008091E9019091EA01892B21F460E182E578 +:1011000091E003C060E080E090E070E00E94020A9D +:101110008091E8008B778093E80008958091E50145 +:10112000813209F076C08091E9019091EA0100973F +:1011300019F0039709F06DC08091E800877F8093D4 +:10114000E8008091E80082FD05C08091E4018111F2 +:10115000F8CF5FC08091F100809362018091E80038 +:101160008B7753C08091E501813A09F052C080919C +:10117000E9019091EA01892B09F04BC08091E800C8 +:10118000877F8093E8008091E80080FFFCCF80910A +:101190000C0136C08091E5018132D9F58091E901D9 +:1011A0009091EA01892BA9F58091E800877F8093CF +:1011B000E8000E94F60A8091E70180930C010C94EC +:1011C000B9138091E501813221F58091E800877F94 +:1011D0008093E8000E94F60A8091E8018093630101 +:1011E00008958091E501813AA1F48091E800877F1C +:1011F0008093E8008091E80080FFFCCF809163013C +:101200008093F1008091E8008E778093E8000C9441 +:10121000F60A089584B7877F84BF0FB6F894A8951F +:1012200080916000886180936000109260000FBE22 +:1012300090E080E80FB6F89480936100909361008D +:101240000FBE0E949F0E0E94480B0E94A50B80912A +:10125000E20084608093E20078940E94300E0E9445 +:10126000A10E82E091E00E944B0E0E94E42080914A +:10127000E401853069F40E94181A8091E201882304 +:10128000B1F30E94421A882391F30E94A109EFCF83 +:101290000E94A70EECCF292F332723303105C9F048 +:1012A00060F42130310581F02230310509F041C070 +:1012B0008DE690E020E133E040C021323105E1F0DD +:1012C0002232310531F135C082E190E02DE733E083 +:1012D00034C099278130910549F028F0029749F5EB +:1012E000ECEDF2E005C0ECE0F3E002C0E4EFF2E088 +:1012F000849190E09F0121C06430D8F4E62FF0E0A3 +:10130000EE0FFF1FEE5DFE4F2081318189E090E0FE +:1013100014C0643070F470E0FB01EE0FFF1FE65E56 +:10132000FE4F20813181FB01EA5EFE4F808190E01B +:1013300004C080E090E020E030E0FA0131832083B7 +:10134000089580E189BD82E189BD09B400FEFDCF29 +:101350008091D8008F7D8093D8008091E0008260DA +:101360008093E0008091E00081FDFCCF0895CF9252 +:10137000DF92EF92FF920F931F93CF93DF93EC01D5 +:101380008B016A010E94150B811133C0C114D10475 +:1013900039F0F60180819181081B190BC80FD91F04 +:1013A000E12CF12C0115110519F18091E80085FD62 +:1013B00016C08091E8008E778093E800C114D104B4 +:1013C00049F0F60180819181E80EF91EF182E082F8 +:1013D00085E00FC00E94150B882321F30AC0899174 +:1013E0008093F10001501109FFEFEF1AFF0ADACFE5 +:1013F00080E0DF91CF911F910F91FF90EF90DF90F0 +:10140000CF9008952091EB013091EC01261737071A +:1014100048F06115710539F42091E8002E7720938A +:10142000E80001C0B901FC0120E06115710579F106 +:101430008091E4018823F1F18530F1F18091E80099 +:1014400083FD3CC08091E80082FD2EC08091E800C1 +:1014500080FFEBCF2091F3008091F20090E0922B7F +:101460006115710551F08830910538F42191209370 +:10147000F100615071090196F3CF21E0089709F05E +:1014800020E08091E8008E778093E800CECF211194 +:10149000CFCF0AC08091E401882361F0853061F0EC +:1014A0008091E80083FD0AC08091E80082FFF2CFBE +:1014B00080E0089582E0089583E0089581E0089532 +:1014C0002091EB013091EC012617370748F06115A8 +:1014D000710539F42091E8002E772093E80001C0CF +:1014E000B901FC0120E06115710591F18091E401E1 +:1014F000882309F440C0853009F43FC08091E8009A +:1015000083FD3DC08091E80082FD2FC08091E800FE +:1015100080FFE9CF2091F3008091F20090E0922BC0 +:101520006115710559F08830910540F4249120939C +:10153000F1003196615071090196F2CF21E00897D0 +:1015400009F020E08091E8008E778093E800CBCF0F +:101550002111CCCF0AC08091E401882361F085304D +:1015600061F08091E80083FD0AC08091E80082FF6D +:10157000F2CF80E0089582E0089583E0089581E04D +:101580000895982F973068F59093E900981739F0EF +:101590007091EC002091ED005091F00003C0242FD9 +:1015A000762F50E021FD02C09F5FECCF3091EB0021 +:1015B0003E7F3093EB003091ED003D7F3093ED00A6 +:1015C0003091EB0031603093EB007093EC0020938E +:1015D000ED005093F0002091EE0027FDE5CF80E074 +:1015E00008958F708093E90081E008958091E5016E +:1015F00087FF11C08091E80082FD05C08091E40161 +:101600008111F8CF11C08091E8008B770BC08091D9 +:10161000E401882349F08091E80080FFF8CF8091B1 +:10162000E8008E778093E80008952091E4003091DF +:10163000E50095E64091EC00842F817040FF23C0C7 +:101640008091E80080FD1DC08091E401882399F01D +:10165000853099F08091EB0085FD11C04091E40048 +:101660005091E5002417350729F3915011F09A01A4 +:10167000E1CF84E0089582E0089583E0089581E059 +:10168000089580E008954091E80042FFDDCF08957D +:101690000E94B60B0E94BE0BE0EEF0E080818160FC +:1016A0008083E8EDF0E080818F77808319BCA7ED1F +:1016B000B0E08C918E7F8C9380818F7E808310929E +:1016C000E30108950F931F93CF93DF930E94B60B0E +:1016D0000E94BE0BC8EDD0E088818F778883888117 +:1016E0008068888388818F7D888319BC1092E4018B +:1016F0001092E0011092E2011092E10100EE10E080 +:10170000F80180818B7F808388818160888342E0BB +:1017100060E080E00E94C10AE1EEF0E080818E7F0F +:101720008083E2EEF0E08081816080838081886048 +:101730008083F80180818E7F8083888180618883A7 +:10174000DF91CF911F910F910895E8EDF0E0808136 +:101750008F7E8083E7EDF0E080818160808384E08C +:1017600082BF81E08093E3010C94620BE8EDF0E02E +:1017700080818E7F80831092E20008951092DA00BB +:101780001092E10008951F920F920FB60F9211244C +:101790002F933F934F935F936F937F938F939F9379 +:1017A000AF93BF93EF93FF938091E10082FF0BC053 +:1017B0008091E20082FF07C08091E1008B7F8093DF +:1017C000E1000E942F0E8091DA0080FF1FC08091FF +:1017D000D80080FF1BC08091DA008E7F8093DA00F2 +:1017E0008091D90080FF0DC080E189BD82E189BD73 +:1017F00009B400FEFDCF81E08093E4010E94280837 +:1018000005C019BC1092E4010E9436088091E100E5 +:1018100080FF19C08091E20080FF15C08091E20036 +:101820008E7F8093E2008091E20080618093E200ED +:101830008091D80080628093D80019BC85E08093A5 +:10184000E4010E943A088091E10084FF30C0809159 +:10185000E20084FF2CC080E189BD82E189BD09B42A +:1018600000FEFDCF8091D8008F7D8093D8008091BD +:10187000E1008F7E8093E1008091E2008F7E809373 +:10188000E2008091E20081608093E2008091E001BB +:10189000882311F084E007C08091E30087FD02C037 +:1018A00081E001C083E08093E4010E943C088091C4 +:1018B000E10083FF29C08091E20083FF25C0809171 +:1018C000E100877F8093E10082E08093E401109241 +:1018D000E0018091E1008E7F8093E1008091E20041 +:1018E0008E7F8093E2008091E20080618093E2002D +:1018F00042E060E080E00E94C10A8091F0008860D0 +:101900008093F0000E943908FF91EF91BF91AF9151 +:101910009F918F917F916F915F914F913F912F9107 +:101920000F900FBE0F901F9018951F920F920FB639 +:101930000F9211242F933F934F935F936F937F9355 +:101940008F939F93AF93BF93CF93DF93EF93FF93C7 +:10195000C091E900CF708091EC00D82FD17080FD4C +:10196000D0E81092E9008091F000877F8093F0002A +:1019700078940E94D90C1092E9008091F000886060 +:101980008093F000CD2BCF70C093E900FF91EF91D1 +:10199000DF91CF91BF91AF919F918F917F916F9187 +:1019A0005F914F913F912F910F900FBE0F901F901D +:1019B00018951F93CF93DF93CDB7DEB7AA970FB6D5 +:1019C000F894DEBF0FBECDBFE5EEF1E08091F100EF +:1019D000819321E0ED3EF207C9F70E9458088091FB +:1019E000E80083FF24C18091E5019091E601492F31 +:1019F00050E04A30510508F01AC1FA01EA5AFF4F87 +:101A00000C948D22803881F0823809F010C18091C9 +:101A1000E9018F708093E9008091EB0085FB8827B6 +:101A200080F91092E90006C08091E1019091E201F5 +:101A3000911182609091E800977F9093E8008093E5 +:101A4000F1001092F100C8C0282F2D7F09F0EFC0DF +:101A5000882319F0823061F0EAC08091E70181307B +:101A600009F0E5C0933009F080E08093E2012BC0DB +:101A70008091E701811127C08091E9018F7009F4FD +:101A8000D6C08093E9002091EB0020FF1CC093306A +:101A900021F48091EB00806214C09091EB00906182 +:101AA0009093EB0021E030E0A90102C0440F551FE4 +:101AB0008A95E2F74093EA001092EA008091EB00E9 +:101AC00088608093EB001092E9008091E800877FA6 +:101AD00086C08111ACC01091E7011F778091E300AF +:101AE0008078812B8093E3008091E800877F80934A +:101AF000E8000E94F60A8091E80080FFFCCF809108 +:101B0000E30080688093E300111102C082E001C00D +:101B100083E08093E4018BC08058823008F087C056 +:101B20008091E7019091E8018C3D53E0950779F5AC +:101B300083E08A838AE289834FB7F894DE011396A3 +:101B400020E03EE051E2E32FF0E050935700E491B3 +:101B500020FF03C0E295EF703F5FEF708E2F90E0A3 +:101B6000EA3010F0C79601C0C0968D939D932F5F09 +:101B7000243149F74FBF8091E800877F8093E800C8 +:101B80006AE270E0CE0101960E94020A14C0AE0122 +:101B90004F5F5F4F6091E9010E944B09BC01892BA7 +:101BA00009F445C09091E800977F9093E8008981FF +:101BB0009A810E94600A8091E8008B778093E80008 +:101BC00036C08038A1F58091E800877F8093E800D7 +:101BD0008091E0018093F1008091E8008E778093FE +:101BE000E8000E94F60A23C0811121C08091E7011C +:101BF0009091E80199270297D4F48091E800877FBB +:101C00008093E8008091E7018093E0010E94F60A4A +:101C10008091E001811106C08091E30087FD02C040 +:101C200081E001C084E08093E4010E944408809137 +:101C3000E80083FF0AC08091E800877F8093E80076 +:101C40008091EB0080628093EB00AA960FB6F89427 +:101C5000DEBF0FBECDBFDF91CF911F9108950895D4 +:101C6000CF938091E4018823A1F0C091E900CF7067 +:101C70009091EC00892F817090FD80E8C82B109224 +:101C8000E9008091E80083FD0E94D90CCF70C093D9 +:101C9000E900CF91089590936901809368010895B8 +:101CA000E0916801F0916901309721F00190F08195 +:101CB000E02D099480E00895E0916801F0916901B8 +:101CC000309721F00280F381E02D09940895E0918E +:101CD0006801F0916901309721F00480F581E02DD1 +:101CE00009940895209166013091670128173907FA +:101CF00071F09093670180936601E0916801F09123 +:101D00006901309721F00680F781E02D099408954C +:101D100020916401309165012817390771F0909383 +:101D2000650180936401E0916801F0916901309749 +:101D300021F00084F185E02D0994089508950C9414 +:101D40009E0E0E945C1A0E940E040C94221BCF92DD +:101D5000DF92EF92FF920F931F93CF93DF93CDB754 +:101D6000DEB72B970FB6F894DEBF0FBECDBF0E9433 +:101D700026048BE6C82E81E0D82E00E010E0E02E8D +:101D8000802F0E941C05F60141916F01F82EF42668 +:101D9000B1F40F5F1F4F0E30110589F78FEF898364 +:101DA0008A831B820E94651A8160782F9D838C83B1 +:101DB00049815A816B818D810E944A0F40C0909168 +:101DC000CC0191FF04C08B870E9422058B8520E007 +:101DD00030E04F2D50E0922FBA01022E02C07595CF +:101DE00067950A94E2F760FF24C02E83EF8221E01A +:101DF00030E0690102C0CC0CDD1C9A95E2F790E05E +:101E00008C219D21892B09F420E028870E94651AE6 +:101E10008160782F9A8789874E815F8168858A855E +:101E20000E944A0FF801E559FE4F8081C826C08202 +:101E300006C02F5F3F4F2630310569F6AACF0E94BA +:101E4000091E0E94500E90916A018917A1F00E940C +:101E5000500E80936A012B960FB6F894DEBF0FBE2A +:101E6000CDBFDF91CF911F910F91FF90EF90DF9049 +:101E7000CF900C9446072B960FB6F894DEBF0FBE9A +:101E8000CDBFDF91CF911F910F91FF90EF90DF9029 +:101E9000CF900895CF93DF93CDB7DEB72B970FB6D2 +:101EA000F894DEBF0FBECDBF4F83588769877A870E +:101EB0008B87DE01119686E0FD0111928A95E9F784 +:101EC00085E0FE01379601900D928A95E1F74981F0 +:101ED0005A816B817C818D819E810E944D162B964B +:101EE0000FB6F894DEBF0FBECDBFDF91CF9108953E +:101EF000CF93C82F882309F4C1C0823859F40E94B7 +:101F0000500E81FDBBC089E30E94EA180E94A2190D +:101F100089E30CC0833879F40E94500E80FDAEC076 +:101F200083E50E94EA180E94A21983E50E942919FC +:101F3000CF910C94A219843859F40E94500E82FD5E +:101F40009DC087E40E94EA180E94A21987E4EECFA0 +:101F50008CEF8C0F813A48F48C2F0E94492081111C +:101F60008DC08C2F0E94EA18E3CF80E28C0F88305E +:101F700048F4C77081E001C0880FCA95EAF70E9453 +:101F80006B19D6CF8BE58C0F833078F4C53A29F0E6 +:101F9000C63A31F083E890E005C081E890E002C0E5 +:101FA00082E890E0CF910C94720E88E58C0F83311B +:101FB00008F064C0C83A39F1C93A41F1CA3A49F166 +:101FC000CB3A51F1CC3A59F1CD3A61F1C03B69F1CC +:101FD000CE3A71F1CF3A79F1C13B81F1C23B89F13F +:101FE000C33B91F1C43B99F1C53BA1F1C63BA9F1BB +:101FF000C73BB1F1C83BB9F1C93BC1F1CA3BC9F11B +:1020000080E090E038C082EE90E035C089EE90E04C +:1020100032C08AEE90E02FC085EB90E02CC086EBBA +:1020200090E029C087EB90E026C08CEC90E023C0C4 +:102030008DEC90E020C083E891E01DC08AE891E03B +:102040001AC082E991E017C084E991E014C081E2EE +:1020500092E011C083E292E00EC084E292E00BC0F5 +:1020600085E292E008C086E292E005C087E292E055 +:1020700002C08AE292E0CF910C94880ECF9108952D +:10208000882309F44BC0823859F40E94500E81FF16 +:1020900045C089E30E94EA180E94A21989E30CC096 +:1020A000833871F40E94500E80FF38C083E50E948F +:1020B000EA180E94A21983E50E9429190C94A2191A +:1020C000843859F40E94500E82FF28C087E40E9491 +:1020D000EA180E94A21987E4EFCF9CEF980F913A7B +:1020E00058F390E2980F983050F4877091E001C057 +:1020F000990F8A95EAF7892F0E947119DFCF9BE526 +:10210000980F933020F480E090E00C94720E885A7F +:10211000833120F480E090E00C94880E08958823A9 +:1021200021F00E946B190C94A2190895882321F0C4 +:102130000E9471190C94A2190895BF92CF92DF9258 +:10214000EF92FF920F931F93CF93DF9300D000D0B5 +:1021500000D0CDB7DEB77C0185E0F701DE01119636 +:1021600001900D928A95E1F7F70183819481892B83 +:1021700009F4DDC2908181818F3F19F49F3F09F4FA +:10218000D6C2F7010281258122952F7099838A8317 +:1021900089819A812E830E94A918182FB92E0E9436 +:1021A000A8180E946F17EB2DE295EF704E2F50E0AC +:1021B000FA01E05AFF4F2E810C948D228B2D807FE7 +:1021C0009B2D9F70F92E882319F0F29480EFF8224E +:1021D000002349F0FF2009F457C28F2D0E947B197C +:1021E0000E94A21951C2812F0E944010FF2009F4C1 +:1021F0009EC28F2D0E94811926960FB6F894DEBFDD +:102200000FBECDBFDF91CF911F910F91FF90EF9047 +:10221000DF90CF90BF900C94A2193B2D307F8B2D77 +:102220008F70303211F08295807F112319F01130B8 +:1022300021F12CC00023B9F0222309F490C12130F0 +:1022400009F08DC126960FB6F894DEBF0FBECDBF44 +:10225000DF91CF911F910F91FF90EF90DF90CF9082 +:10226000BF900C948B19222319F0213009F45FC21E +:102270008E830E948E198E8186C1002321F0223028 +:1022800008F055C26CC1211152C27DC1002321F05A +:10229000222309F464C1F8C1222309F474C109C2DC +:1022A0008B2D86958695837019F08130D1F03FC2D1 +:1022B000002321F0812F9B2D937002C080E090E0DD +:1022C00026960FB6F894DEBF0FBECDBFDF91CF913B +:1022D0001F910F91FF90EF90DF90CF90BF900C94E3 +:1022E000720E002321F0812F9B2D937002C080E09D +:1022F00090E026960FB6F894DEBF0FBECDBFDF91FB +:10230000CF911F910F91FF90EF90DF90CF90BF90F2 +:102310000C94880E812F002319F00E94111D02C019 +:102320000E94791D26960FB6F894DEBF0FBECDBF72 +:10233000DF91CF911F910F91FF90EF90DF90CF90A1 +:10234000BF900C94FE1D8B2D837009F075C0011198 +:10235000EEC1812F829586958770880F880F912F07 +:102360009F70C92ED12CE12CF12C082E04C0CC0C6E +:10237000DD1CEE1CFF1C0A94D2F714FF12C00FE004 +:1023800010E020E030E004C0000F111F221F331FB7 +:102390008A95D2F7C901B80160957095809590959E +:1023A00003C060E070E0CB014B2D4695469543702D +:1023B0004230C1F060F56C297D298E299F2941307A +:1023C00051F126960FB6F894DEBF0FBECDBFDF9158 +:1023D000CF911F910F91FF90EF90DF90CF90BF9022 +:1023E0000C9496176C297D298E299F2926960FB665 +:1023F000F894DEBF0FBECDBFDF91CF911F910F913B +:10240000FF90EF90DF90CF90BF900C94B2170E9496 +:102410009617C701B60126960FB6F894DEBF0FBE19 +:10242000CDBFDF91CF911F910F91FF90EF90DF9083 +:10243000CF90BF900C947A17002319F08B2D8170E8 +:1024400001C08695882309F472C1812F82958695F3 +:102450008770880F880F912F9F70C92ED12CE12C87 +:10246000F12C082E04C0CC0CDD1CEE1CFF1C0A94C1 +:10247000D2F714FF12C00FE010E020E030E004C0FB +:10248000000F111F221F331F8A95D2F7C901B8010F +:10249000609570958095909503C060E070E0CB01E9 +:1024A0004B2D4695469543704230C1F060F56C293E +:1024B0007D298E299F29413051F126960FB6F89437 +:1024C000DEBF0FBECDBFDF91CF911F910F91FF9067 +:1024D000EF90DF90CF90BF900C9470186C297D29FD +:1024E0008E299F2926960FB6F894DEBF0FBECDBF6A +:1024F000DF91CF911F910F91FF90EF90DF90CF90E0 +:10250000BF900C948C180E947018C701B6012696D3 +:102510000FB6F894DEBF0FBECDBFDF91CF911F91F4 +:102520000F91FF90EF90DF90CF90BF900C945418D4 +:10253000103FD1F118F4103E50F4A1C0123F09F43D +:1025400063C008F44CC0133F09F473C098C01F70F7 +:102550008B2D8F710023A1F00E94ED17812F2696FD +:102560000FB6F894DEBF0FBECDBFDF91CF911F91A4 +:102570000F91FF90EF90DF90CF90BF900C948F1051 +:102580000E940E18812F26960FB6F894DEBF0FBE5C +:10259000CDBFDF91CF911F910F91FF90EF90DF9012 +:1025A000CF90BF900C9496100023A9F02111BFC0CA +:1025B0008B2D8F7126960FB6F894DEBF0FBECDBF60 +:1025C000DF91CF911F910F91FF90EF90DF90CF900F +:1025D000BF900C943318223008F0A9C0E9CF002333 +:1025E000A9F08B2D8F7126960FB6F894DEBF0FBE23 +:1025F000CDBFDF91CF911F910F91FF90EF90DF90B2 +:10260000CF90BF900C94ED17002359F38B2D8F7151 +:1026100026960FB6F894DEBF0FBECDBFDF91CF91E7 +:102620001F910F91FF90EF90DF90CF90BF900C948F +:102630000E18002399F08B2D8F7126960FB6F89403 +:10264000DEBF0FBECDBFDF91CF911F910F91FF90E5 +:10265000EF90DF90CF90BF900C94D81726960FB6CE +:10266000F894DEBF0FBECDBFDF91CF911F910F91C8 +:10267000FF90EF90DF90CF90BF900C94CE17002387 +:10268000A9F0222309F4ADCF812F26960FB6F89436 +:10269000DEBF0FBECDBFDF91CF911F910F91FF9095 +:1026A000EF90DF90CF90BF900C94780F222309F425 +:1026B000ADCF812F26960FB6F894DEBF0FBECDBFEB +:1026C000DF91CF911F910F91FF90EF90DF90CF900E +:1026D000BF900C9440104B2D4F70612FC7010E948A +:1026E000AE0226960FB6F894DEBF0FBECDBFDF91C7 +:1026F000CF911F910F91FF90EF90DF90CF90BF90FF +:102700000C94F2164B2D4F70612FC70126960FB611 +:10271000F894DEBF0FBECDBFDF91CF911F910F9117 +:10272000FF90EF90DF90CF90BF900C94E30526963A +:102730000FB6F894DEBF0FBECDBFDF91CF911F91D2 +:102740000F91FF90EF90DF90CF90BF9008950E947F +:1027500088190E945D190E94A2190E94AE1E0E9453 +:10276000FE1D80E090E00E94720E80E090E00C94EC +:10277000880E0E9478190C94A7130E94A918292F7B +:1027800022952F702C3030F42A3048F42250223019 +:1027900078F405C02C3041F02F3031F009C0803E74 +:1027A00048F0803F29F406C093FB882780F90895FC +:1027B00080E0089581E00895CF93DF9300D000D0AA +:1027C0001F92CDB7DEB70F900F900F900F900F9024 +:1027D000DF91CF910895CF93DF9300D000D000D048 +:1027E000CDB7DEB726960FB6F894DEBF0FBECDBFCD +:1027F000DF91CF9108951F93CF93DF93C09179011B +:1028000016E080917A01C81799F0D0E01C9FF00182 +:102810001D9FF00D1124E558FE4F408151816281CA +:102820007381848195810E94EB132196C770E9CF53 +:10283000DF91CF911F9108954091AB015091AC0170 +:102840006091AD017091AE018091AF019091B001A6 +:102850000C94EB138091B00182958F7009F054C0F5 +:102860008091AD01882309F44FC080917901A09136 +:102870007A014091AE015091AF016091AB0170912E +:10288000AC01B6E08A1709F43FC090E0411551054C +:10289000C1F17F3F11F46F3FA1F1B89FF001B99FE3 +:1028A000F00D1124E558FE4F218127132AC0208105 +:1028B000261327C02281211124C0238134812417AB +:1028C000350710F421503109241B350B283C310504 +:1028D000C0F42091B0012F7020612093B00126E058 +:1028E000289FF001299FF00D1124E058FE4F8081B0 +:1028F0008F70806180838BEA91E00E949D100C9420 +:10290000FB1301968770BECF0895CF92DF92EF92AE +:10291000FF920F931F93CF93DF93CDB7DEB76297EC +:102920000FB6F894DEBF0FBECDBF8C0185E0F80175 +:10293000DE011D9601900D928A95E1F7D8014C9128 +:1029400011965C91119712966C918091AE019091C5 +:10295000AF01009709F475C13091AB017091AC01E2 +:102960007F3F19F43F3F09F46CC1F801C380D48064 +:10297000E090AD01EE2009F4BEC02091B001C81670 +:10298000D90628F0D601A81BB90BCD0104C080954B +:1029900090958C0D9D1DFF24F394883C910578F053 +:1029A000F12C207F09F0C4C07C2DD98AC88A89897E +:1029B0000E94DC138BEA91E00E949D10AFC0822F31 +:1029C000807F09F045C0571313C0431311C0611134 +:1029D0000FC02F7020612093B0010E941C148BEA5D +:1029E00091E00E949D108091B001F80185832EC076 +:1029F000CD2819F15F3F11F44F3FF9F0F62E611128 +:102A00001CC08091790120917A0136E0821709F487 +:102A10005BC090E0389FF001399FF00D1124E5581C +:102A2000FE4F7181571306C07081471303C0728136 +:102A3000711103C001968770E9CFF62E662309F461 +:102A40001CC18091B00181608093B001F12C15C14F +:102A5000571309C0431307C0611105C08091B0012D +:102A6000F8018583C8C04D875E878D859E856A8BFA +:102A70000E94BD136A898823D1F16623C1F1209198 +:102A8000B001822F82958F7090E0029774F0809150 +:102A9000AB019091AC0198878F831986DB86CA863B +:102AA0002C87CE0107960E949D1086E0F801ABEAC4 +:102AB000B1E001900D928A95E1F70E942A140E94DC +:102AC0001C14FF24F394D9C04D875E878D859E85A5 +:102AD0000E94A918292F22952F70223008F0C1C01A +:102AE0009F7009F0BBC0805E883008F4C6C0C80182 +:102AF0000E949D10E6CFC816D90608F453C0F6010F +:102B0000E81BF90BCF01883C910508F450C0F12C6B +:102B10007C2DD98AC88A89890E94DC13EBEAF1E00E +:102B200086E0DF011D928A95E9F70E941C14A5C07A +:102B3000571314C0431312C0611110C08091B0012B +:102B4000F8018583C8010E949D1086E0EBEAF1E060 +:102B5000DF011D928A95E9F7FE2C8FC04D875E87B5 +:102B60008D859E856A8B0E94BD136A89882309F42E +:102B7000BECF662309F4BBCF2091B001822F82958E +:102B80008F7090E002970CF490CF8091AB01909100 +:102B9000AC019A8389831B82DD82CC822E83CE0195 +:102BA000019681CF809590958C0D9D1DACCFF62E12 +:102BB000662309F49CCF571333C0431331C02091CF +:102BC000B00120FD24C0822F82958F70482F50E0E5 +:102BD00041155105E1F0D80115962C9315974F300A +:102BE000510549F08F5F982F9295907F822F8F70BB +:102BF000892B15968C93C8010E949D1086E0F801E0 +:102C0000ABEAB1E001900D928A95E1F78ECF86E0B4 +:102C1000F801ABEAB1E001900D928A95E1F72DC081 +:102C20004D875E878D859E850E94BD1381113DCFA6 +:102C30008091B00181608093B001C8010E949D1015 +:102C40001CC0662309F453CF4D875E878D859E8512 +:102C50000E94BD13882309F44ACF27CF811143CFA7 +:102C60000CC0243008F043CF9F7009F43CCFD8014A +:102C700015969C91907F09F036CF8F2D62960FB6F6 +:102C8000F894DEBF0FBECDBFDF91CF911F910F91A2 +:102C9000FF90EF90DF90CF9008951F93CF93DF9335 +:102CA000CDB7DEB72C970FB6F894DEBF0FBECDBF01 +:102CB0004F83588769877A878B879C87CE010796D1 +:102CC0000E948514882371F08A859B85892B09F4DD +:102CD00041C088858F3F09F065C08F818F3F09F023 +:102CE00061C038C086E0FE013796DE011196019082 +:102CF0000D928A95E1F76A857B856115710551F121 +:102D0000FF81E885EF3F11F4FF3F21F120917A0127 +:102D100030E0C9010196877099274091790150E010 +:102D20008417950709F447C0F983EA837D836C8390 +:102D300096E0929FD001939FB00D1124A558BE4FED +:102D4000FE01319601900D929A95E1F780937A01F8 +:102D50000E94FB1316E08091790190917A01891706 +:102D6000B9F1189FC001112485589E4F0E94851407 +:102D7000882371F1E09179011E9FF0011124E5583B +:102D8000FE4F4081518162817381848195810E94CF +:102D9000EB138091790190E00196877099278093D9 +:102DA0007901D9CF4F81588569857A858B859C8536 +:102DB0000E94EB13CFCF0E94B91310927A011092A8 +:102DC0007901EBEAF1E086E0DF011D928A95E9F7EF +:102DD0002C960FB6F894DEBF0FBECDBFDF91CF911A +:102DE0001F910895EF92FF920F931F93CF93DF935C +:102DF0008C01892B09F46CC0F12CEE24E394E801DA +:102E00002196F8018491843740F4843008F051C051 +:102E1000813081F0823019F15BC0853709F444C0FC +:102E2000A8F19CE7980F903708F052C08F770E9466 +:102E3000401041C00E5F1F4FFE01849190E2980F39 +:102E4000983050F48770FE2D01C0FF0F8A95EAF785 +:102E50008F2F0E947B1914C00E94780F2DC00E5F27 +:102E60001F4FFE01849190E2980F983060F48770B4 +:102E7000FE2D01C0FF0F8A95EAF78F2F0E9481195E +:102E80000E94A21919C00E94401016C00E5F1F4F69 +:102E9000FE01C491CC2381F08FE99FE00197F1F707 +:102EA00000C00000C150F6CF0E5F1F4FFE01F4902E +:102EB00003C00E94780F8E018F2D882309F49FCFC5 +:102EC000EFE9FFE03197F1F700C000008150F5CF46 +:102ED000DF91CF911F910F91FF90EF90089508958A +:102EE0006093B5017093B6018093B7019093B801D8 +:102EF0000C94A7130F931F930091B5011091B60185 +:102F00002091B7013091B801DC01CB01802B912BCE +:102F1000A22BB32B8093B5019093B601A093B70178 +:102F2000B093B8011F910F910C94A7130F931F93A7 +:102F30000091B5011091B6012091B7013091B8010F +:102F4000DC01CB0180239123A223B3238093B5011D +:102F50009093B601A093B701B093B8011F910F9160 +:102F60000C94A7130F931F930091B5011091B60114 +:102F70002091B7013091B801DC01CB018027912766 +:102F8000A227B3278093B5019093B601A093B70110 +:102F9000B093B8011F910F910C94A7131092B10137 +:102FA0001092B2011092B3011092B4010C94A713C5 +:102FB00041E050E060E070E004C0440F551F661F20 +:102FC000771F8A95D2F74093B1015093B201609375 +:102FD000B3017093B4010C94A71341E050E060E09A +:102FE00070E004C0440F551F661F771F8A95D2F703 +:102FF0008091B1019091B201A091B301B091B4015F +:10300000482B592B6A2B7B2B4093B1015093B20173 +:103010006093B3017093B4010C94A71341E050E0A6 +:1030200060E070E004C0440F551F661F771F8A954B +:10303000D2F740955095609570958091B10190912F +:10304000B201A091B301B091B401482359236A237E +:103050007B234093B1015093B2016093B30170930D +:10306000B4010C94A71341E050E060E070E004C0AC +:10307000440F551F661F771F8A95D2F78091B101C3 +:103080009091B201A091B301B091B40148275927A2 +:103090006A277B274093B1015093B2016093B3013B +:1030A0007093B4010C94A7130F931F930091B10177 +:1030B0001091B2012091B3013091B401DC01CB0138 +:1030C000802B912BA22BB32B8093B1019093B20153 +:1030D000A093B301B093B4011F910F910C94A71367 +:1030E0000F931F930091B1011091B2012091B30190 +:1030F0003091B401DC01CB0180239123A223B323BF +:103100008093B1019093B201A093B301B093B40145 +:103110001F910F910C94A7130F931F930091B1016E +:103120001091B2012091B3013091B401DC01CB01C7 +:1031300080279127A227B3278093B1019093B201F2 +:10314000A093B301B093B4011F910F910C94A713F6 +:103150000895CF92DF92EF92FF920F931F93CF9338 +:10316000DF938C01C090B101D090B201E090B30127 +:10317000F090B4018091B5019091B601A091B70192 +:10318000B091B801C82AD92AEA2AFB2ACFE1D0E0B7 +:10319000D701C6010C2E04C0B695A79597958795C3 +:1031A0000A94D2F780FF07C0B8018C2F0E9407064F +:1031B0008130910531F4219758F7B80180E00E94E1 +:1031C0000706DF91CF911F910F91FF90EF90DF9055 +:1031D000CF90089590910C019923F1F090910D01F9 +:1031E0009923D1F0982F9695969596959F3080F5D6 +:1031F000E0910E01F0910F01E90FF11D877021E0C0 +:1032000030E0A90102C0440F551F8A95E2F7CA01B8 +:103210009181892B8183089520910E0130910F01B6 +:10322000F90132969FEF40E05191851789F09F3F59 +:1032300019F4511101C0942F4F5F4E30A9F79F3FF1 +:1032400039F0F901E90FF11D97FDFA958283089590 +:10325000089590910C019923F9F090910D01992313 +:10326000D9F0982F9695969596959F3028F5E091F0 +:103270000E01F0910F01E90FF11D877021E030E0A0 +:10328000A90102C0440F551F8A95E2F7CA01809533 +:10329000918189238183089520910E0130910F013E +:1032A000F9013296205F3F4F9081891301C010824F +:1032B0003196E217F307C1F7089581E090E0E091BD +:1032C0000E01F0910F01E80FF91F10820196803175 +:1032D0009105A9F708959091CB01892B8093CB019B +:1032E000089580959091CB0189238093CB01089517 +:1032F0001092CB0108959091CA01892B8093CA0145 +:10330000089580959091CA0189238093CA010895F8 +:103310001092CA0108958093B90108951092B901DD +:10332000089580910E0190910F01FC0131969C014E +:10333000205F3F4F80E0919191118F5FE217F3077B +:10334000D1F70895E0910E01F0910F018091CB012A +:103350008083E0910E01F0910F0190818091CA016C +:10336000892B80838091B901882361F0E0910E015F +:10337000F0910F019081892B80830E949119811116 +:103380001092B90180910E0190910F010C945C0E86 +:10339000CF92DF92EF92FF926C01EE24FF24C114D2 +:1033A000D104E104F10421F0C701B60120E101C01C +:1033B00020E0C72ED82EE92EFF24C114D104E10449 +:1033C000F10419F0285FC701B6016B017C0154E0DC +:1033D000F694E794D794C7945A95D1F7C114D104C1 +:1033E000E104F10419F02C5FC701B6016B017C0107 +:1033F00042E0F694E794D794C7944A95D1F7C11464 +:10340000D104E104F10419F02E5FC701B601DC011B +:10341000CB01B695A79597958795892B8A2B8B2BF2 +:1034200009F02F5F822FFF90EF90DF90CF900895EB +:103430008091E401843011F120E488E190E00FB63E +:10344000F894A895809360000FBE2093600083B726 +:10345000817F846083BF83B7816083BF78948895C0 +:1034600083B78E7F83BF0FB6F894A89580916000D4 +:10347000886180936000109260000FBE08950895E7 +:103480000C943F1ACF930E94401A0E9426040E9477 +:103490003F1AC0E08C2F0E941C05811104C0CF5F31 +:1034A000CE30C1F701C081E0CF9108950E94B913D9 +:1034B0000E94500E0C94460782E084BD93E095BDB7 +:1034C0009AEF97BD80936E0008952FB7F89480917E +:1034D000CD019091CE01A091CF01B091D0012FBF2D +:1034E0000895CF92DF92EF92FF920F931F932FB721 +:1034F000F8944091CD015091CE016091CF0170912F +:10350000D0012FBF6A017B01EE24FF248C0120E053 +:1035100030E0C016D106E206F30610F4415051091E +:103520009A01281B390BC9011F910F91FF90EF9051 +:10353000DF90CF9008951F920F920FB60F92112433 +:103540008F939F93AF93BF938091CD019091CE01C4 +:10355000A091CF01B091D0010196A11DB11D809322 +:10356000CD019093CE01A093CF01B093D001BF9134 +:10357000AF919F918F910F900FBE0F901F90189554 +:103580000E94480BF8942FEF87EA91E62150804083 +:103590009040E1F700C0000087E090EBDC018093F1 +:1035A000ED019093EE01A093EF01B093F0019CE048 +:1035B00088E10FB6F894A895809360000FBE9093B1 +:1035C0006000FFCFEF92FF920F931F93CF93DF9393 +:1035D000D82FC0E08C2F0E941C0500E010E0E82EE0 +:1035E000F12CC701002E02C0959587950A94E2F749 +:1035F00080FD06C00F5F1F4F0630110591F709C00F +:10360000602F7C2F80E00E94E4058D13F3CF81E0D2 +:1036100004C0CF5FCE30F1F680E0DF91CF911F91F3 +:103620000F91FF90EF900895CF93C82F8CE20E94E6 +:10363000E21A882321F08C2FCF910C94E21A80E0BB +:10364000CF910895CF930E94691C811102C00E94FE +:103650004F1CC5E6C15049F00E9426048FE39CE947 +:103660000197F1F700C00000F5CF89E20E94141B1A +:10367000811113C18AE20E94141B81110E944F1C08 +:1036800085E00E94141B81110E94C01A0E94741CC4 +:103690008093CC0187E00E94141B8823A9F18BE161 +:1036A0000E94141B882351F08091CC0181FB2227BA +:1036B00020F991E0922790FB81F90EC08EE00E94E4 +:1036C000141B882361F08091CC0182FB222720F912 +:1036D00091E0922790FB82F98093CC0115C080E1A4 +:1036E0000E94141B9091CC01882341F093FB222768 +:1036F00020F981E0822780FB93F904C0892F80950F +:1037000080FB90F99093CC018091CC010E94781CB1 +:103710000E94861C8093DE0180EE0E94141B882389 +:1037200041F08091DE01982F909590FB80F9809375 +:10373000DE0189E30E94141B882359F08091DE0189 +:1037400081FB222720F991E0922790FB81F9809359 +:10375000DE0182EE0E94141B882359F08091DE0165 +:1037600082FB222720F991E0922790FB82F9809337 +:10377000DE0186EE0E94141B882359F08091DE0141 +:1037800083FB222720F991E0922790FB83F9809315 +:10379000DE0183EE0E94141B882359F08091DE0124 +:1037A00084FB222720F991E0922790FB84F98093F3 +:1037B000DE0185E30E94141B882359F08091DE010D +:1037C00085FB222720F991E0922790FB85F98093D1 +:1037D000DE0181E30E94141B882359F08091DE01F1 +:1037E00086FB222720F991E0922790FB86F98093AF +:1037F000DE0181E10E94141B882359F08091DE01D3 +:1038000087FB222720F991E0922790FB87F980938C +:10381000DE018091DE010E948A1C8091DE0187FB1F +:10382000882780F980930D0187E20E94141BC82F1E +:103830008EE10E94141B8111C2608FE10E94141B53 +:103840008111C46080E20E94141B8111C86081E272 +:103850000E94141B8111C06182E20E94141B81111D +:10386000C06283E20E94141B8111C06484E20E9442 +:10387000141B882311F0C06802C0CC2329F08C2FC0 +:103880000E94811C6C2F03C00E947D1C682F70E079 +:1038900080E090E0CF910C947017CF9108956DEE79 +:1038A0007EEF80E090E00E94C32260E082E090E042 +:1038B0000E94B52260E083E090E00E94B52260E0C3 +:1038C00084E090E00E94B52260E085E090E00C94F6 +:1038D000B52280E090E00E94AF2221E08D3E9E4F15 +:1038E00009F020E0822F089582E090E00C94A72256 +:1038F000682F82E090E00C94B52283E090E00C9475 +:10390000A722682F83E090E00C94B52284E090E039 +:103910000C94A722682F84E090E00C94B52280914B +:10392000D30180FF0BC06091130185E0689FB00157 +:10393000112475956795759567952BC081FF09C012 +:103940006091130185E0689FB0011124759567951A +:1039500020C082FF07C06091130185E0689FB0011D +:10396000112417C09091D4019923D1F060911201D4 +:10397000961788F72091130185E0289F9001112464 +:10398000929FA001939F500D112470E0CA010E94E4 +:1039900079226038710540F46115710519F406C08B +:1039A00065E070E0862F08958FE7089581E008951F +:1039B0008091D30180FF08C06091110170E075957E +:1039C00067957595679521C081FF06C060911101CB +:1039D00070E07595679519C082FF04C06091110170 +:1039E00070E010C09091D401992399F0609110017A +:1039F0009617A0F780911101899FC001112470E0F2 +:103A00000E9479226038710540F46115710519F43E +:103A100006C061E070E0862F08958FE7089581E089 +:103A20000895803F21F40E948F1C819504C0813F3E +:103A300029F40E948F1C8093D7010895823F21F4BE +:103A40000E948F1C819504C0833F29F40E948F1C23 +:103A50008093D6010895893F19F40E94D81C05C0AF +:103A60008A3F31F40E94D81C81958093D801089533 +:103A70008B3F21F40E94D81C819504C08C3F29F40F +:103A80000E94D81C8093D9010895843F21F480912D +:103A9000D501816017C0853F21F48091D5018260F6 +:103AA00011C0863F21F48091D50184600BC0873F0F +:103AB00021F48091D501886005C0883F31F4809160 +:103AC000D50180618093D50108958D3F21F48091C7 +:103AD000D30181600BC08E3F21F48091D3018260BD +:103AE00005C08F3F29F48091D30184608093D30176 +:103AF0000895803F39F48091D70187FF6CC0109200 +:103B0000D70169C0813F29F48091D7011816BCF311 +:103B100062C09091D601823F29F497FF5CC0109259 +:103B2000D60159C0833F19F41916CCF354C0893F0C +:103B300041F48091D80118160CF04DC01092D801B4 +:103B40004AC08A3F29F48091D80187FF44C0F6CF4C +:103B50008B3F39F48091D90187FF3DC01092D90184 +:103B60003AC08C3F29F48091D9011816BCF333C0B8 +:103B7000843F21F48091D5018E7F17C0853F21F4C9 +:103B80008091D5018D7F11C0863F21F48091D501B0 +:103B90008B7F0BC0873F21F48091D501877F05C0C3 +:103BA000883F31F48091D5018F7E8093D50113C079 +:103BB0008D3F21F48091D3018E7F0BC08E3F21F485 +:103BC0008091D3018D7F05C08F3F29F48091D3016F +:103BD0008B7F8093D3018091D60181110EC080919B +:103BE000D70181110AC08091D801811106C080914E +:103BF000D901811102C01092D401089585ED91E0A0 +:103C00000E94670E0E94651A9093D2018093D101A1 +:103C100008951F93CF93DF938091D1019091D201AA +:103C20000E94711AAC019091D401992321F0209146 +:103C3000140130E006C0209115018AE0289F900110 +:103C400011244217530708F485C08091D601C09112 +:103C5000D701D091D8011091D901811107C0C111AC +:103C600075C0D11173C0111171C074C09F3F19F09C +:103C70009F5F9093D401181624F40E948F1C8093A8 +:103C8000D6018091D60187FF05C00E948F1C8195C7 +:103C90008093D6011C1624F40E948F1C8093D701B8 +:103CA0008091D70187FF05C00E948F1C819580936A +:103CB000D7016091D601662331F1C091D701CC23A1 +:103CC00011F1062E000C770B880B990B0E948021B6 +:103CD00023E333E343E35FE30E94E4210E944821AE +:103CE0006093D6016C2FCC0F770B880B990B0E9439 +:103CF000802123E333E343E35FE30E94E4210E9456 +:103D000048216093D7011D1624F40E94D81C80938B +:103D1000D8018091D80187FF05C00E94D81C8195E9 +:103D20008093D801111624F40E94D81C8093D901E5 +:103D30008091D90187FF05C00E94D81C819580938E +:103D4000D901DF91CF911F910C94FE1D9F3F09F087 +:103D50008FCFA0CFDF91CF911F910895E5EDF1E0D6 +:103D600085E0DF011D928A95E9F71092D401109247 +:103D7000D3010895833081F128F4813059F08230E5 +:103D8000D1F00895853009F449C0B8F1863009F4BE +:103D900056C0089580911501262F30E0280F311D5F +:103DA0002F3F310524F4680F6093150108958FEFBC +:103DB00080931501089580911401262F30E0280F7B +:103DC000311D2F3F310524F4680F609314010895CD +:103DD0008FEF80931401089580911301262F30E016 +:103DE000280F311D2F3F310524F4680F6093130114 +:103DF00008958FEF80931301089580911201262F6B +:103E000030E0280F311D2F3F310524F4680F6093F7 +:103E1000120108958FEF809312010895809111018E +:103E2000262F30E0280F311D2F3F310524F4680F75 +:103E30006093110108958FEF80931101089580918F +:103E40001001262F30E0280F311D2F3F310524F4BB +:103E5000680F6093100108958FEF8093100108950B +:103E6000833011F128F4813049F0823091F00895C7 +:103E7000853081F120F18630C1F1089580911501DE +:103E8000681720F4861B8093150108951092150180 +:103E9000089580911401681720F4861B8093140103 +:103EA000089510921401089580911301681720F469 +:103EB000861B809313010895109213010895809139 +:103EC0001201681720F4861B809312010895109246 +:103ED0001201089580911101681720F4861B8093C8 +:103EE0001101089510921101089580911001681731 +:103EF00020F4861B809310010895109210010895FC +:103F00000F931F938D3109F46BC008F03FC08E30C2 +:103F100009F47DC0C0F4873009F46EC068F48630BF +:103F200009F0AFC08091CC01817F8E7F8093CC015E +:103F300081E08093DB01A6C0883009F458C08B3043 +:103F400009F49BC09EC0863109F497C078F4803193 +:103F500009F470C0813109F094C00E94B9139091A6 +:103F60000D0181E0892780930D0187C0893109F413 +:103F700084C08B3109F085C08091CC0181FB222760 +:103F800020F991E0922790FB81F94AC0853309F42A +:103F90005BC048F4873209F457C008F45AC089322C +:103FA00009F452C06EC0833438F48A3308F067C015 +:103FB000883309F462C065C0833409F445C088348D +:103FC00009F05FC00E94B9130FEF13ED20E3015019 +:103FD00010402040E1F700C000000E94C01A4DC010 +:103FE0000E9402210E94500E0E94460746C00E9475 +:103FF000741C0E94861C41C09091CC01892F817055 +:1040000090FF12C0917F9E7F9093CC013BC0809126 +:10401000CC0182FB222720F991E0922790FB82F9C4 +:104020008093CC01992349F18091CC0181608093E8 +:10403000CC0123C08091CC0183FB222720F991E0A1 +:10404000922790FB83F9ECCF61E070E080E090E094 +:1040500010C08D5141E050E060E070E08A019B01AA +:1040600004C0000F111F221F331F8A95D2F7C90108 +:10407000B8010E9470170E94B91381E003C08953F0 +:10408000E9CF80E01F910F91089580E008950C948E +:104090004520CF93C82F8091DB01813079F018F053 +:1040A0008230E9F187C0E0910E01F0910F0180812B +:1040B000813169F0823209F07FC009C0E0910E01C0 +:1040C000F0910F018081813111F0823261F48C2FE7 +:1040D0000E944720811104C08C2F0E94801F1DC0A8 +:1040E00081E090E01AC08C2F0E944520811114C0FD +:1040F000C43179F048F4CB3079F0C03109F060C0B8 +:1041000082E08093DB0108C0C93219F0C83321F086 +:1041100057C01092DB0154C081E0817053C0C93296 +:1041200089F118F5C43171F1A8F4C73009F046C01F +:104130008AE08093150194E19093140193E09093A9 +:1041400013018093120188E08093110188E280932B +:10415000100134C0CE51C63088F5EC2FF0E0E65D9A +:10416000FE4F80818093DA0129C0CE34E9F020F43B +:10417000CB3421F56AE013C0C13579F0C235F1F4D2 +:1041800061E00DC08091DA01882319F01092DA0104 +:1041900015C081E08093DB0115C061E006C080910D +:1041A000DA010E94BA1E0AC06AE08091DA010E9418 +:1041B000301F04C01092DB0180E004C081E002C027 +:1041C00080E0ABCFCF910895E1E8F0E08081886096 +:1041D00080838081816080838FB7F89493E090938F +:1041E000890090ED909388008FBF0895EFE6F0E08E +:1041F0008081826080830895EFE6F0E080818D7F8A +:1042000080830895EFE6F0E0908182E08927808343 +:1042100008951F920F920FB60F9211242F933F9380 +:104220004F935F936F937F938F939F93AF93BF93BE +:10423000EF93FF938091DC019091DD0101969093C3 +:10424000DD018093DC01811103C082E00E944607FA +:10425000E091DD01E695E695F0E0E657FB4FE4914D +:104260008091DC018E1303C080E00E944607FF911D +:10427000EF91BF91AF919F918F917F916F915F91DE +:104280004F913F912F910F900FBE0F901F90189557 +:104290000E944F216894B1110C94DE2108950E9470 +:1042A000C32188F09F5798F0B92F9927B751B0F0E4 +:1042B000E1F0660F771F881F991F1AF0BA95C9F7AA +:1042C00014C0B13091F00E94DD21B1E008950C944A +:1042D000DD21672F782F8827B85F39F0B93FCCF3FD +:1042E000869577956795B395D9F73EF49095809527 +:1042F000709561957F4F8F4F9F4F0895E89409C047 +:1043000097FB3EF490958095709561957F4F8F4F08 +:104310009F4F9923A9F0F92F96E9BB279395F6951E +:10432000879577956795B795F111F8CFFAF4BB0F9C +:1043300011F460FF1BC06F5F7F4F8F4F9F4F16C000 +:10434000882311F096E911C0772321F09EE8872F8A +:10435000762F05C0662371F096E8862F70E060E046 +:104360002AF09A95660F771F881FDAF7880F9695BF +:10437000879597F9089557FD9058440F551F59F0A8 +:104380005F3F71F04795880F97FB991F61F09F3F42 +:1043900079F087950895121613061406551FF2CF6B +:1043A0004695F1DF08C0161617061806991FF1CFBB +:1043B00086957105610508940895E894BB276627E2 +:1043C0007727CB0197F908950E94F7210C94682272 +:1043D0000E945A2238F00E94612220F0952311F0A9 +:1043E0000C9451220C94572211240C94DE210E942B +:1043F000BB2170F3959FC1F3950F50E0551F629F4D +:10440000F001729FBB27F00DB11D639FAA27F00D2D +:10441000B11DAA1F649F6627B00DA11D661F829F54 +:104420002227B00DA11D621F739FB00DA11D621F39 +:10443000839FA00D611D221F749F3327A00D611D56 +:10444000231F849F600D211D822F762F6A2F112438 +:104450009F5750409AF0F1F088234AF0EE0FFF1F6B +:10446000BB1F661F771F881F91505040A9F79E3FC2 +:10447000510580F00C9451220C94DE215F3FE4F34F +:10448000983ED4F3869577956795B795F795E79518 +:104490009F5FC1F7FE2B880F911D9695879597F921 +:1044A000089597F99F6780E870E060E008959FEFB6 +:1044B00080EC089500240A941616170618060906BB +:1044C000089500240A94121613061406050608958A +:1044D000092E0394000C11F4882352F0BB0F40F412 +:1044E000BF2B11F460FF04C06F5F7F4F8F4F9F4F52 +:1044F000089597FB072E16F4009407D077FD09D096 +:104500000E94932207FC05D03EF4909581959F4F21 +:104510000895709561957F4F0895EE0FFF1F0590E8 +:10452000F491E02D0994AA1BBB1B51E107C0AA1FFF +:10453000BB1FA617B70710F0A61BB70B881F991F44 +:104540005A95A9F780959095BC01CD010895F999E8 +:10455000FECF92BD81BDF89A992780B50895A8E154 +:10456000B0E042E050E00C94CA22262FF999FECF29 +:104570001FBA92BD81BD20BD0FB6F894FA9AF99A80 +:104580000FBE019608950E94B522272F0C94B622E3 +:10459000DC01CB01FC01F999FECF06C0F2BDE1BD03 +:1045A000F89A319600B40D9241505040B8F70895F2 +:0445B000F894FFCFAD +:1045B40020024707D707B2077E074A070101BA015D +:1045C40028080A03140A3F4D36394B04FE03C80376 +:1045D4008F0322033B0354036D0301020304050606 +:0445E40007080900BB +:00000001FF diff --git a/keyboard/ergodox_ez/keymaps/emacs_osx_dk/keymap.c b/keyboard/ergodox_ez/keymaps/emacs_osx_dk/keymap.c new file mode 100644 index 0000000000..1d8e66a082 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/emacs_osx_dk/keymap.c @@ -0,0 +1,184 @@ +#include "ergodox_ez.h" +#include "debug.h" +#include "action_layer.h" + +#define BASE 0 // default layer +#define SYMB 1 // symbols +#define MDIA 2 // media keys + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Keymap 0: Basic layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | Grv | 1 | 2 | 3 | 4 | 5 | L1 | | L2 | 6 | 7 | 8 | 9 | 0 | = | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | Tab | Q | W | E | R | T | [ | | ] | Y | U | I | O | P | - | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | \/LCtrl| A | S | D | F | G |------| |------| H | J | K | L | ; |'/RCtrl | + * |--------+------+------+------+------+------| RAlt | | RAlt |------+------+------+------+------+--------| + * | LShift | Z | X | C | V | B | | | | N | M | , | . | / | RShift | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | ~L1 | LCtrl| Left| Right| LAlt | | LAlt | Up | Down | RCtrl| ~L2 | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | Del | Ins | | Esc | App | + * ,------|------|------| |------+--------+------. + * | | | Home | | PgUp | | | + * | Space|Backsp|------| |------| LGui |Enter | + * | |ace | End | | PgDn | | | + * `--------------------' `----------------------' + */ +// If it accepts an argument (i.e, is a function), it doesn't need KC_. +// Otherwise, it needs KC_* +[BASE] = KEYMAP( // layer 0 : default + // left hand + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, TG(SYMB), + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC, + CTL_T(KC_BSLS), KC_A, KC_S, KC_D, KC_F, KC_G, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_RALT, + MO(SYMB), KC_LCTRL, KC_LEFT,KC_RGHT,KC_LALT, + KC_DELT,KC_INS, + KC_HOME, + KC_SPC,KC_BSPC,KC_END, + // right hand + TG(MDIA), KC_6, KC_7, KC_8, KC_9, KC_0, KC_EQL, + KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_MINS, + KC_H, KC_J, KC_K, KC_L, KC_SCLN, CTL_T(KC_QUOT), + KC_RALT, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT, + KC_LALT,KC_UP, KC_DOWN,KC_RCTRL, MO(MDIA), + KC_ESC, KC_APP, + KC_PGUP, + KC_PGDN, KC_LGUI, KC_ENT + ), +/* Keymap 1: Symbol Layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | ! | @ | { | } | | | | | | Up | 7 | 8 | 9 | * | F12 | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | # | $ | ( | ) | ` |------| |------| Down | 4 | 5 | 6 | + | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | \ | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | 0 | 0 | . | = | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// SYMBOLS +[SYMB] = KEYMAP( + // left hand + KC_TRNS,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS, + KC_TRNS,KC_EXLM,KC_AT, KC_LCBR,KC_RCBR,KC_PIPE,KC_TRNS, + KC_TRNS,KC_HASH,KC_DLR, KC_LPRN,KC_RPRN,KC_GRV, + KC_TRNS,KC_PERC,KC_CIRC,KC_LBRC,KC_RBRC,KC_TILD,KC_TRNS, + KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, + KC_TRNS,KC_TRNS, + KC_TRNS, + KC_TRNS,KC_TRNS,KC_TRNS, + // right hand + KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + KC_TRNS, KC_UP, KC_7, KC_8, KC_9, KC_ASTR, KC_F12, + KC_DOWN, KC_4, KC_5, KC_6, KC_PLUS, KC_TRNS, + KC_TRNS, KC_AMPR, KC_1, KC_2, KC_3, KC_BSLS, KC_TRNS, + KC_0, KC_0, KC_DOT, KC_EQL, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS +), +/* Keymap 2: Media and mouse keys + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | | MsUp | | | | | | | | | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | |MsLeft|MsDown|MsRght| |------| |------| | | | | | Play | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | | | | | | | Prev | Next | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | Lclk | Rclk | |VolUp |VolDn | Mute | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | |Brwser| + * | | |------| |------| |Back | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// MEDIA AND MOUSE +[MDIA] = KEYMAP( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, + // right hand + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, + KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS, + KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_WBAK +), +}; + +const uint16_t PROGMEM fn_actions[] = { + [1] = ACTION_LAYER_TAP_TOGGLE(SYMB) // FN1 - Momentary Layer 1 (Symbols) +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch(id) { + case 0: + if (record->event.pressed) { + register_code(KC_RSFT); + } else { + unregister_code(KC_RSFT); + } + break; + } + return MACRO_NONE; +}; + +// Runs just one time when the keyboard initializes. +void matrix_init_user(void) { + +}; + +// Runs constantly in the background, in a loop. +void matrix_scan_user(void) { + + uint8_t layer = biton32(layer_state); + + ergodox_board_led_off(); + ergodox_right_led_1_off(); + ergodox_right_led_2_off(); + ergodox_right_led_3_off(); + switch (layer) { + // TODO: Make this relevant to the ErgoDox EZ. + case 1: + ergodox_right_led_1_on(); + break; + case 2: + ergodox_right_led_2_on(); + break; + default: + // none + break; + } + +}; diff --git a/keyboard/ergodox_ez/keymaps/emacs_osx_dk/readme.md b/keyboard/ergodox_ez/keymaps/emacs_osx_dk/readme.md new file mode 100644 index 0000000000..4839988d9b --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/emacs_osx_dk/readme.md @@ -0,0 +1,10 @@ +# ErgoDox EZ Emacs-OSX-DeadKeys Configuration + +Since I'm an Emacs user, ctrl keys are very important and gets a placement where the usual caps_lock is. There +are an extra pair of ctrls, just in case there where problems with the holding one's, but not as comfortable. + +Gui button takes a predominant place on the thumb cluster, as I'm using a mac os x and it relies heavily on it. + +Finally there is also two Right Alts to easily access to accented letters of the spanish alphabet. + +![Default](default_highres.png) diff --git a/keyboard/ergodox_ez/keymaps/erez_experimental/erez_experimental.hex b/keyboard/ergodox_ez/keymaps/erez_experimental/erez_experimental.hex new file mode 100644 index 0000000000..aa08845658 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/erez_experimental/erez_experimental.hex @@ -0,0 +1,1121 @@ +:100000000C9465020C94AC020C94AC020C94AC02FF +:100010000C94AC020C94AC020C94AC020C94AC02A8 +:100020000C94AC020C94AC020C94C30B0C94950C85 +:100030000C94AC020C94AC020C94AC020C94AC0288 +:100040000C94AC020C9409210C94AC020C94AC02FC +:100050000C94AC020C949B1A0C94AC020C94AC0261 +:100060000C94AC020C94AC020C94AC020C94AC0258 +:100070000C94AC020C94AC020C94AC020C94AC0248 +:100080000C94AC020C94AC020C94AC020C94AC0238 +:100090000C94AC020C94AC020C94AC020C94AC0228 +:1000A0000C94AC020C94AC020C94AC02020D240D26 +:1000B000170E240D170E690D8C0D170EE10DF40DA2 +:1000C000DE10DE100D110D1150118A1197139713C8 +:1000D000A3119713981298126B1397139713821307 +:1000E0000000F0A12E004C002A00E1003581000044 +:1000F0001E00140004001D7134004D001F001A0082 +:1001000016001B00E104C1002000080007000600E3 +:1001100050002C0021001500090019004F004A0072 +:10012000220017000A000500000065745000015409 +:100130000000007F0000E3004F0001540000007742 +:100140000000E20023001C000B00110000002971D8 +:10015000240018000D74100052004B0025000C0004 +:100160000E00360051002800260012000F00370054 +:100170002F002B81270013003382387130004E008E +:100180002D0031003478E500C100000001000100BD +:1001900001000100010000003A001E0022002602BA +:1001A000010001003B001F002300270201000100A5 +:1001B0003C00200024002F004B0101003D002100E5 +:1001C000250030004E0101003E00010026002700FE +:1001D000000001000100010000000100000001001A +:1001E0000100010000000100000001003F000100CB +:1001F0002402310200000100400022022D022602EA +:100200000100010041002E002D0027020100010025 +:1002100042001F0213002000010001004300010002 +:100220002E02010001000100440045000100010010 +:1002300001000000010001000100010001000000B8 +:1002400001000100010001000100010001000100A6 +:10025000F2000100010001000100F000F1000100C6 +:10026000F400010001000100F3000100F5000100AD +:100270000100010001000100000001000100010077 +:100280000000010000000100010001000000010069 +:100290000000010001000100010001000000010058 +:1002A0000100010001000100A9000100010001009E +:1002B0000100AC00AA00B600010001000100AB0083 +:1002C000A80001000100010001000100010001007F +:1002D00001000100AE00010001000000160345000E +:1002E000720067006F0044006F0078002000450036 +:1002F0005A00000016034500720067006F004400BA +:100300006F007800200045005A0000000403090433 +:1003100009026D00040100A0FA09040000010301B4 +:100320000100092111010001223F00070581030896 +:10033000000A090401000103010200092111010062 +:1003400001224D000705820308000A09040200018A +:100350000300000009211101000122360007058376 +:100360000308000A09040300010300000009211129 +:100370000100012239000705840310000112011059 +:100380000100000008EDFE07130100010200010555 +:10039000010906A101050719E029E71500250195C6 +:1003A0000875018102050819012905950575019156 +:1003B000029501750391010507190029771500259C +:1003C00001957875018102C005010980A1018502AE +:1003D00016010026B7001A01002AB7007510950112 +:1003E0008100C0050C0901A1018503160100269CAE +:1003F000021A01002A9C02751095018100C00501B6 +:100400000902A1010901A100050919012905150029 +:10041000250195057501810295017503810105018D +:10042000093009311581257F950275088106093843 +:100430001581257F950175088106050C0A3802157E +:1004400081257F950175088106C0C005010906A1B7 +:1004500001050719E029E7150025019508750181B7 +:100460000295017508810105081901290595057591 +:100470000191029501750391010507190029FF15E6 +:100480000025FF950675088100C0000000000000EF +:100490000000000000010204060A0F17202C3A4A4F +:1004A0005D71879DB3C7DAE9F5FCFFFCF5E9DAC7B2 +:1004B000B39D87715D4A3A2C20170F0A060402018A +:1004C0000000000000000000000011241FBECFEF5C +:1004D000DAE0DEBFCDBF04B603FE27C08091ED0198 +:1004E0009091EE01A091EF01B091F0018730904B17 +:1004F000A740B04BD1F41092ED011092EE01109292 +:10050000EF011092F00114BE84B7877F84BF0FB64D +:10051000F894A895809160008861809360001092A3 +:1005200060000FBEE0E0FFE3099511E0A0E0B1E05C +:10053000E4EBF5E402C005900D92A433B107D9F7BE +:1005400021E0A4E3B1E001C01D92AD3EB207E1F7A6 +:100550000E940A090C94D8220C94000061110BC06F +:10056000FC018281882321F085EE0E94780F03C070 +:1005700085EE0E94401080E090E00895089560911B +:10058000B1017091B2018091B3019091B4010E94C8 +:10059000C81956985E9825982D9826982E982798D1 +:1005A0002F98813019F0823021F00895259A2D9AE4 +:1005B0000895269A2E9A08950C94BF0256985E9834 +:1005C00025982D9826982E9827982F988FEF90E0B1 +:1005D000909389008093880090938B0080938A0089 +:1005E00090938D0080938C00259A2D9A2FEF80E7B1 +:1005F00092E0215080409040E1F700C00000269A30 +:100600002E9A2FEF80E792E0215080409040E1F752 +:1006100000C00000279A2F9A2FEF80E792E0215028 +:1006200080409040E1F700C0000025982D982FEF02 +:1006300080E792E0215080409040E1F700C0000048 +:1006400026982E982FEF80E792E02150804090402E +:10065000E1F700C0000027982F9856985E982598DB +:100660002D9826982E9827982F98089589EA809398 +:10067000800089E08093810024982C983F988AB16B +:100680008F748AB96E98479A8BB1806B8BB9769AC2 +:100690000E94DE020C94BE0280E2809300018091F1 +:1006A000340181110EC00E949B0381E080933401CC +:1006B0002FEF83ED90E3215080409040E1F700C0A0 +:1006C000000080E40E94A1038093000181112EC0EC +:1006D0000E94CB0380930001811128C00E94CB03AC +:1006E00080930001811122C08FE30E94CB0380938D +:1006F000000181111BC00E94C30380E40E94A1037A +:1007000080930001811112C08CE00E94CB03809382 +:10071000000181110BC00E94CB0380930001811165 +:1007200005C08FE30E94CB03809300010E94C303A6 +:100730008091000108951092B9008AE08093B8007A +:10074000089594EA9093BC009091BC0097FFFCCF71 +:100750009091B900987F983021F0903111F081E0AC +:1007600008958093BB0084E88093BC008091BC0016 +:1007700087FFFCCF8091B900887F883111F08034E9 +:1007800071F780E0089584E98093BC008091BC00FB +:1007900084FDFCCF08958093BB0084E88093BC0067 +:1007A0008091BC0087FFFCCF9091B900987F81E0D9 +:1007B000983209F480E0089584E88093BC00809129 +:1007C000BC0087FFFCCF8091BB00089580910001A1 +:1007D000811115C080E40E94A10380930001811162 +:1007E0000CC082E10E94CB0380930001811105C0FF +:1007F0008FEF0E94CB03809300010E94C30384B15A +:10080000807F84B985B1807F85B98AB1837F8AB9B9 +:100810008BB1837F8BB93E98469808950E944C0314 +:10082000809300010E94E60380B38C7080BB81B38B +:10083000836F81BBE4E4F1E0A6E3B1E011921D9285 +:1008400081E0E235F807D1F70C9436039F92AF921E +:10085000BF92CF92DF92EF92FF920F931F93CF93AD +:10086000DF9380910001882379F0809135018F5FBB +:1008700080933501811108C00E944C0380930001D0 +:10088000811102C00E94DE0286E3E82E81E0F82E8C +:100890008701C0E0D0E0BB24B39492E0A92ECC2421 +:1008A000C394D12CC730D10500F58091000181118E +:1008B00064C080E40E94A10380930001811112C0F2 +:1008C00082E10E94CB038093000181110BC0C6011D +:1008D0000C2E01C0880F0A94EAF780950E94CB0382 +:1008E000809300010E94C30348C0CA30A1F028F4DD +:1008F000C83059F0C93061F005C0CC3089F070F0D3 +:10090000CD3089F0209A289810C0219A29980DC0DE +:10091000229A2A980AC0239A2B9807C0529A01C09B +:10092000539A5B9802C03E9A4698E0EAEA95F1F73E +:100930008FB181708B25799902C032E001C030E01F +:10094000832B7C9902C034E001C030E0832B7D9979 +:1009500002C028E001C020E0822B7E9902C090E115 +:1009600001C090E0892B9FB19095991F9927991FFD +:100970009295990F907E892B0FC080910001811173 +:100980004AC080E40E94A10380930001882381F182 +:10099000912C0E94C303892DD8019C91981719F0BE +:1009A0008C93A09201010E94E60321960F5F1F4FD6 +:1009B000CE30D10509F076CF80910101882369F10D +:1009C000815080930101882339F0EFE9FFE03197EE +:1009D000F1F700C0000021C0E4E4F1E0D7018D91FF +:1009E0007D018193B4E4EB16B1E0FB06B9F715C0C5 +:1009F00083E10E94CB03809300018111C9CF81E480 +:100A00000E94A103809300018111C2CF0E94DC03E8 +:100A1000982E9094BECF80E0BFCF0E94DC0281E090 +:100A2000DF91CF911F910F91FF90EF90DF90CF90CA +:100A3000BF90AF909F900895E82FF0E0EC5BFE4FE1 +:100A40008081089508958B3B910580F4883A910543 +:100A500048F5853A9105D8F48430910508F0B2C084 +:100A6000019709F06EC081E090E00895803E910505 +:100A700008F467C0883E910508F4A4C09C01205F7B +:100A800031092031310508F05CC090650895853A40 +:100A9000910509F459C0863A910509F058C082E8D9 +:100AA00090E40895883A910509F454C0893A910573 +:100AB00009F453C08A3A910509F452C08B3A910562 +:100AC00009F451C08C3A910509F450C08D3A910552 +:100AD00009F44FC0803B910509F44EC08E3A910550 +:100AE00009F44DC08F3A910509F44CC0813B910542 +:100AF00009F44BC0823B910509F44AC0833B910540 +:100B000009F449C0843B910509F448C0853B91052F +:100B100009F447C0863B910509F446C0873B91051F +:100B200009F445C0883B910509F444C0893B91050F +:100B300009F443C08A3B910509F442C080E094E483 +:100B4000089580E090E0089581E890E4089583E8B6 +:100B500090E4089582EE94E4089589EE94E4089573 +:100B60008AEE94E4089585EB94E4089586EB94E48A +:100B7000089587EB94E408958CEC94E408958DEC4B +:100B800094E4089583E895E408958AE895E4089547 +:100B900082E995E4089584E995E4089581E296E474 +:100BA000089583E296E4089584E296E4089585E248 +:100BB00096E4089586E296E4089587E296E408951F +:100BC0008AE296E40895089524E5829FC0011124E5 +:100BD000FC0126E0729FE00DF11D1124E60FF11DCE +:100BE000EE0FFF1FEC51FF4F859194910895880FF0 +:100BF000991FFC01E05AF040859194910895880F67 +:100C0000991FFC01E052FF4F85919491089524E5CE +:100C1000829FC0011124FC0146E0749FE00DF11D8C +:100C20001124E60FF11DEE0FFF1FEC51FF4F8591D0 +:100C300094919C013A9521154FE1340708F425C1A0 +:100C40003F512115304120F49F700E94FF05089507 +:100C50009C0130532115304118F49927906C089568 +:100C6000811520E5920769F40E94B9134FEF84E3E0 +:100C70009CE0415080409040E1F700C000000C949F +:100C8000C01A813020E5920731F48091CC01816057 +:100C90008093CC0108959C0130552115304108F016 +:100CA0005CC0292F33272F70332721303105E9F419 +:100CB000AC0164E0440F551F6A95E1F74427537077 +:100CC000BC016370772702C0220F331F6A95E2F7D9 +:100CD0003C68242B352B73E0880F991F7A95E1F738 +:100CE00080769927822B932B08952230310529F4A1 +:100CF000982F8827816F906A089523303105A1F4D9 +:100D0000AC0133E0440F551F3A95E1F7407E577030 +:100D10008370992721E030E002C0220F331F8A95AB +:100D2000E2F7C9019C6816C02430310531F5AC01E9 +:100D300023E0440F551F2A95E1F7407E57708370DA +:100D4000992721E030E002C0220F331F8A95E2F795 +:100D5000C9019A68842B952B08959C013057211561 +:100D6000304118F49F70906208959C01305821150D +:100D7000304118F49F70906A0895803E9105E0F428 +:100D8000803C910558F58133910509F46FC048F412 +:100D90008932910509F463C08A32910509F46DC066 +:100DA00072C089339105E9F082389105D1F085331D +:100DB000910509F44DC067C0833E910581F138F477 +:100DC000803E9105B9F0823E9105D9F05CC0863E27 +:100DD000910561F1873E9105A1F155C00E94F7058B +:100DE00008952091DE0120FD02C021FF4CC080EE5D +:100DF00090E049C08091DE0180FFF9CF89E390E067 +:100E000042C08091DE0182FF0EC08091DE0184FF2E +:100E100003C080E090E037C083EE90E034C0809162 +:100E2000DE0182FFF2CF82EE90E02DC08091DE01E4 +:100E300083FF0BC08091DE0184FDEBCF87EE90E055 +:100E400022C08091DE0183FFF5CF86EE90E01BC0CB +:100E50008091DE0185FF07C089E290E014C0809197 +:100E6000DE0185FFF9CF85E390E00DC08091DE01C2 +:100E700086FF07C08AE290E006C08091DE0186FF0F +:100E8000F9CF81E390E00E942305089508958091B1 +:100E900062010895CF93DF9300D01F92CDB7DEB7E4 +:100EA0009C018091E401843019F593E099833B83A0 +:100EB0002A839093E9008FEF9091E800815095FD8F +:100EC00006C095ED9A95F1F700008111F5CF80915C +:100ED000E80085FF0DC040E050E063E070E0CE0127 +:100EE00001960E94B7098091E8008E778093E80010 +:100EF0000F900F900F90DF91CF910895CF93DF93D4 +:100F000000D01F92CDB7DEB72091E401243021F547 +:100F100022E029839B838A8383E08093E9008FEF1B +:100F20009091E800815095FD06C095ED9A95F1F7F6 +:100F300000008111F5CF8091E80085FF0DC040E0F1 +:100F400050E063E070E0CE0101960E94B709809105 +:100F5000E8008E778093E8000F900F900F90DF915C +:100F6000CF9108959C018091E4018430F9F482E0EE +:100F70008093E9009FEF8091E800915085FD06C0C5 +:100F800085ED8A95F1F700009111F5CF8091E80089 +:100F900085FF0CC040E050E065E070E0C9010E94B0 +:100FA000B7098091E8008E778093E8000895CF9389 +:100FB000DF93EC018091E401843009F046C0909108 +:100FC0000C019923D9F090910D019923B9F08093E8 +:100FD000E9008FEF9091E800815095FD06C095E102 +:100FE0009A95F1F700008111F5CF8091E80085FF17 +:100FF0002CC040E050E060E170E017C081E08093D9 +:10100000E9008FEF9091E800815095FD06C095EDC5 +:101010009A95F1F700008111F5CF8091E80085FFE6 +:1010200014C040E050E068E070E0CE010E94B709D3 +:101030008091E8008E778093E80080E1FE01A2E5D0 +:10104000B1E001900D928A95E1F7DF91CF9108957B +:101050008091E301811109C00E94480B0E94A50BF9 +:101060008091E20084608093E20008951092E30191 +:10107000089508950C94F6200E94561A0E94FC20B0 +:101080000E94500E0C94460742E061EC81E00E9401 +:10109000C10A42E061EC82E00E94C10A42E061ECD8 +:1010A00083E00E94C10A42E161EC84E00C94C10A31 +:1010B0008091E601833009F455C030F4813071F03D +:1010C000823009F48EC008958A3009F47AC08B30DA +:1010D00009F460C0893009F09CC020C08091E5010E +:1010E000813A09F096C08091E800877F8093E800FC +:1010F0008091E9019091EA01892B21F460E182E578 +:1011000091E003C060E080E090E070E00E94020A9D +:101110008091E8008B778093E80008958091E50145 +:10112000813209F076C08091E9019091EA0100973F +:1011300019F0039709F06DC08091E800877F8093D4 +:10114000E8008091E80082FD05C08091E4018111F2 +:10115000F8CF5FC08091F100809362018091E80038 +:101160008B7753C08091E501813A09F052C080919C +:10117000E9019091EA01892B09F04BC08091E800C8 +:10118000877F8093E8008091E80080FFFCCF80910A +:101190000C0136C08091E5018132D9F58091E901D9 +:1011A0009091EA01892BA9F58091E800877F8093CF +:1011B000E8000E94F60A8091E70180930C010C94EC +:1011C000B9138091E501813221F58091E800877F94 +:1011D0008093E8000E94F60A8091E8018093630101 +:1011E00008958091E501813AA1F48091E800877F1C +:1011F0008093E8008091E80080FFFCCF809163013C +:101200008093F1008091E8008E778093E8000C9441 +:10121000F60A089584B7877F84BF0FB6F894A8951F +:1012200080916000886180936000109260000FBE22 +:1012300090E080E80FB6F89480936100909361008D +:101240000FBE0E949F0E0E94480B0E94A50B80912A +:10125000E20084608093E20078940E94300E0E9445 +:10126000A10E82E091E00E944B0E0E94E42080914A +:10127000E401853069F40E94181A8091E201882304 +:10128000B1F30E94421A882391F30E94A109EFCF83 +:101290000E94A70EECCF292F332723303105C9F048 +:1012A00060F42130310581F02230310509F041C070 +:1012B0008DE690E020E133E040C021323105E1F0DD +:1012C0002232310531F135C082E190E02DE733E083 +:1012D00034C099278130910549F028F0029749F5EB +:1012E000ECEDF2E005C0ECE0F3E002C0E4EFF2E088 +:1012F000849190E09F0121C06430D8F4E62FF0E0A3 +:10130000EE0FFF1FEE5DFE4F2081318189E090E0FE +:1013100014C0643070F470E0FB01EE0FFF1FE65E56 +:10132000FE4F20813181FB01EA5EFE4F808190E01B +:1013300004C080E090E020E030E0FA0131832083B7 +:10134000089580E189BD82E189BD09B400FEFDCF29 +:101350008091D8008F7D8093D8008091E0008260DA +:101360008093E0008091E00081FDFCCF0895CF9252 +:10137000DF92EF92FF920F931F93CF93DF93EC01D5 +:101380008B016A010E94150B811133C0C114D10475 +:1013900039F0F60180819181081B190BC80FD91F04 +:1013A000E12CF12C0115110519F18091E80085FD62 +:1013B00016C08091E8008E778093E800C114D104B4 +:1013C00049F0F60180819181E80EF91EF182E082F8 +:1013D00085E00FC00E94150B882321F30AC0899174 +:1013E0008093F10001501109FFEFEF1AFF0ADACFE5 +:1013F00080E0DF91CF911F910F91FF90EF90DF90F0 +:10140000CF9008952091EB013091EC01261737071A +:1014100048F06115710539F42091E8002E7720938A +:10142000E80001C0B901FC0120E06115710579F106 +:101430008091E4018823F1F18530F1F18091E80099 +:1014400083FD3CC08091E80082FD2EC08091E800C1 +:1014500080FFEBCF2091F3008091F20090E0922B7F +:101460006115710551F08830910538F42191209370 +:10147000F100615071090196F3CF21E0089709F05E +:1014800020E08091E8008E778093E800CECF211194 +:10149000CFCF0AC08091E401882361F0853061F0EC +:1014A0008091E80083FD0AC08091E80082FFF2CFBE +:1014B00080E0089582E0089583E0089581E0089532 +:1014C0002091EB013091EC012617370748F06115A8 +:1014D000710539F42091E8002E772093E80001C0CF +:1014E000B901FC0120E06115710591F18091E401E1 +:1014F000882309F440C0853009F43FC08091E8009A +:1015000083FD3DC08091E80082FD2FC08091E800FE +:1015100080FFE9CF2091F3008091F20090E0922BC0 +:101520006115710559F08830910540F4249120939C +:10153000F1003196615071090196F2CF21E00897D0 +:1015400009F020E08091E8008E778093E800CBCF0F +:101550002111CCCF0AC08091E401882361F085304D +:1015600061F08091E80083FD0AC08091E80082FF6D +:10157000F2CF80E0089582E0089583E0089581E04D +:101580000895982F973068F59093E900981739F0EF +:101590007091EC002091ED005091F00003C0242FD9 +:1015A000762F50E021FD02C09F5FECCF3091EB0021 +:1015B0003E7F3093EB003091ED003D7F3093ED00A6 +:1015C0003091EB0031603093EB007093EC0020938E +:1015D000ED005093F0002091EE0027FDE5CF80E074 +:1015E00008958F708093E90081E008958091E5016E +:1015F00087FF11C08091E80082FD05C08091E40161 +:101600008111F8CF11C08091E8008B770BC08091D9 +:10161000E401882349F08091E80080FFF8CF8091B1 +:10162000E8008E778093E80008952091E4003091DF +:10163000E50095E64091EC00842F817040FF23C0C7 +:101640008091E80080FD1DC08091E401882399F01D +:10165000853099F08091EB0085FD11C04091E40048 +:101660005091E5002417350729F3915011F09A01A4 +:10167000E1CF84E0089582E0089583E0089581E059 +:10168000089580E008954091E80042FFDDCF08957D +:101690000E94B60B0E94BE0BE0EEF0E080818160FC +:1016A0008083E8EDF0E080818F77808319BCA7ED1F +:1016B000B0E08C918E7F8C9380818F7E808310929E +:1016C000E30108950F931F93CF93DF930E94B60B0E +:1016D0000E94BE0BC8EDD0E088818F778883888117 +:1016E0008068888388818F7D888319BC1092E4018B +:1016F0001092E0011092E2011092E10100EE10E080 +:10170000F80180818B7F808388818160888342E0BB +:1017100060E080E00E94C10AE1EEF0E080818E7F0F +:101720008083E2EEF0E08081816080838081886048 +:101730008083F80180818E7F8083888180618883A7 +:10174000DF91CF911F910F910895E8EDF0E0808136 +:101750008F7E8083E7EDF0E080818160808384E08C +:1017600082BF81E08093E3010C94620BE8EDF0E02E +:1017700080818E7F80831092E20008951092DA00BB +:101780001092E10008951F920F920FB60F9211244C +:101790002F933F934F935F936F937F938F939F9379 +:1017A000AF93BF93EF93FF938091E10082FF0BC053 +:1017B0008091E20082FF07C08091E1008B7F8093DF +:1017C000E1000E942F0E8091DA0080FF1FC08091FF +:1017D000D80080FF1BC08091DA008E7F8093DA00F2 +:1017E0008091D90080FF0DC080E189BD82E189BD73 +:1017F00009B400FEFDCF81E08093E4010E94280837 +:1018000005C019BC1092E4010E9436088091E100E5 +:1018100080FF19C08091E20080FF15C08091E20036 +:101820008E7F8093E2008091E20080618093E200ED +:101830008091D80080628093D80019BC85E08093A5 +:10184000E4010E943A088091E10084FF30C0809159 +:10185000E20084FF2CC080E189BD82E189BD09B42A +:1018600000FEFDCF8091D8008F7D8093D8008091BD +:10187000E1008F7E8093E1008091E2008F7E809373 +:10188000E2008091E20081608093E2008091E001BB +:10189000882311F084E007C08091E30087FD02C037 +:1018A00081E001C083E08093E4010E943C088091C4 +:1018B000E10083FF29C08091E20083FF25C0809171 +:1018C000E100877F8093E10082E08093E401109241 +:1018D000E0018091E1008E7F8093E1008091E20041 +:1018E0008E7F8093E2008091E20080618093E2002D +:1018F00042E060E080E00E94C10A8091F0008860D0 +:101900008093F0000E943908FF91EF91BF91AF9151 +:101910009F918F917F916F915F914F913F912F9107 +:101920000F900FBE0F901F9018951F920F920FB639 +:101930000F9211242F933F934F935F936F937F9355 +:101940008F939F93AF93BF93CF93DF93EF93FF93C7 +:10195000C091E900CF708091EC00D82FD17080FD4C +:10196000D0E81092E9008091F000877F8093F0002A +:1019700078940E94D90C1092E9008091F000886060 +:101980008093F000CD2BCF70C093E900FF91EF91D1 +:10199000DF91CF91BF91AF919F918F917F916F9187 +:1019A0005F914F913F912F910F900FBE0F901F901D +:1019B00018951F93CF93DF93CDB7DEB7AA970FB6D5 +:1019C000F894DEBF0FBECDBFE5EEF1E08091F100EF +:1019D000819321E0ED3EF207C9F70E9458088091FB +:1019E000E80083FF24C18091E5019091E601492F31 +:1019F00050E04A30510508F01AC1FA01EA5AFF4F87 +:101A00000C948D22803881F0823809F010C18091C9 +:101A1000E9018F708093E9008091EB0085FB8827B6 +:101A200080F91092E90006C08091E1019091E201F5 +:101A3000911182609091E800977F9093E8008093E5 +:101A4000F1001092F100C8C0282F2D7F09F0EFC0DF +:101A5000882319F0823061F0EAC08091E70181307B +:101A600009F0E5C0933009F080E08093E2012BC0DB +:101A70008091E701811127C08091E9018F7009F4FD +:101A8000D6C08093E9002091EB0020FF1CC093306A +:101A900021F48091EB00806214C09091EB00906182 +:101AA0009093EB0021E030E0A90102C0440F551FE4 +:101AB0008A95E2F74093EA001092EA008091EB00E9 +:101AC00088608093EB001092E9008091E800877FA6 +:101AD00086C08111ACC01091E7011F778091E300AF +:101AE0008078812B8093E3008091E800877F80934A +:101AF000E8000E94F60A8091E80080FFFCCF809108 +:101B0000E30080688093E300111102C082E001C00D +:101B100083E08093E4018BC08058823008F087C056 +:101B20008091E7019091E8018C3D53E0950779F5AC +:101B300083E08A838AE289834FB7F894DE011396A3 +:101B400020E03EE051E2E32FF0E050935700E491B3 +:101B500020FF03C0E295EF703F5FEF708E2F90E0A3 +:101B6000EA3010F0C79601C0C0968D939D932F5F09 +:101B7000243149F74FBF8091E800877F8093E800C8 +:101B80006AE270E0CE0101960E94020A14C0AE0122 +:101B90004F5F5F4F6091E9010E944B09BC01892BA7 +:101BA00009F445C09091E800977F9093E8008981FF +:101BB0009A810E94600A8091E8008B778093E80008 +:101BC00036C08038A1F58091E800877F8093E800D7 +:101BD0008091E0018093F1008091E8008E778093FE +:101BE000E8000E94F60A23C0811121C08091E7011C +:101BF0009091E80199270297D4F48091E800877FBB +:101C00008093E8008091E7018093E0010E94F60A4A +:101C10008091E001811106C08091E30087FD02C040 +:101C200081E001C084E08093E4010E944408809137 +:101C3000E80083FF0AC08091E800877F8093E80076 +:101C40008091EB0080628093EB00AA960FB6F89427 +:101C5000DEBF0FBECDBFDF91CF911F9108950895D4 +:101C6000CF938091E4018823A1F0C091E900CF7067 +:101C70009091EC00892F817090FD80E8C82B109224 +:101C8000E9008091E80083FD0E94D90CCF70C093D9 +:101C9000E900CF91089590936901809368010895B8 +:101CA000E0916801F0916901309721F00190F08195 +:101CB000E02D099480E00895E0916801F0916901B8 +:101CC000309721F00280F381E02D09940895E0918E +:101CD0006801F0916901309721F00480F581E02DD1 +:101CE00009940895209166013091670128173907FA +:101CF00071F09093670180936601E0916801F09123 +:101D00006901309721F00680F781E02D099408954C +:101D100020916401309165012817390771F0909383 +:101D2000650180936401E0916801F0916901309749 +:101D300021F00084F185E02D0994089508950C9414 +:101D40009E0E0E945C1A0E940E040C94221BCF92DD +:101D5000DF92EF92FF920F931F93CF93DF93CDB754 +:101D6000DEB72B970FB6F894DEBF0FBECDBF0E9433 +:101D700026048BE6C82E81E0D82E00E010E0E02E8D +:101D8000802F0E941C05F60141916F01F82EF42668 +:101D9000B1F40F5F1F4F0E30110589F78FEF898364 +:101DA0008A831B820E94651A8160782F9D838C83B1 +:101DB00049815A816B818D810E944A0F40C0909168 +:101DC000CC0191FF04C08B870E9422058B8520E007 +:101DD00030E04F2D50E0922FBA01022E02C07595CF +:101DE00067950A94E2F760FF24C02E83EF8221E01A +:101DF00030E0690102C0CC0CDD1C9A95E2F790E05E +:101E00008C219D21892B09F420E028870E94651AE6 +:101E10008160782F9A8789874E815F8168858A855E +:101E20000E944A0FF801E559FE4F8081C826C08202 +:101E300006C02F5F3F4F2630310569F6AACF0E94BA +:101E4000091E0E94500E90916A018917A1F00E940C +:101E5000500E80936A012B960FB6F894DEBF0FBE2A +:101E6000CDBFDF91CF911F910F91FF90EF90DF9049 +:101E7000CF900C9446072B960FB6F894DEBF0FBE9A +:101E8000CDBFDF91CF911F910F91FF90EF90DF9029 +:101E9000CF900895CF93DF93CDB7DEB72B970FB6D2 +:101EA000F894DEBF0FBECDBF4F83588769877A870E +:101EB0008B87DE01119686E0FD0111928A95E9F784 +:101EC00085E0FE01379601900D928A95E1F74981F0 +:101ED0005A816B817C818D819E810E944D162B964B +:101EE0000FB6F894DEBF0FBECDBFDF91CF9108953E +:101EF000CF93C82F882309F4C1C0823859F40E94B7 +:101F0000500E81FDBBC089E30E94EA180E94A2190D +:101F100089E30CC0833879F40E94500E80FDAEC076 +:101F200083E50E94EA180E94A21983E50E942919FC +:101F3000CF910C94A219843859F40E94500E82FD5E +:101F40009DC087E40E94EA180E94A21987E4EECFA0 +:101F50008CEF8C0F813A48F48C2F0E94492081111C +:101F60008DC08C2F0E94EA18E3CF80E28C0F88305E +:101F700048F4C77081E001C0880FCA95EAF70E9453 +:101F80006B19D6CF8BE58C0F833078F4C53A29F0E6 +:101F9000C63A31F083E890E005C081E890E002C0E5 +:101FA00082E890E0CF910C94720E88E58C0F83311B +:101FB00008F064C0C83A39F1C93A41F1CA3A49F166 +:101FC000CB3A51F1CC3A59F1CD3A61F1C03B69F1CC +:101FD000CE3A71F1CF3A79F1C13B81F1C23B89F13F +:101FE000C33B91F1C43B99F1C53BA1F1C63BA9F1BB +:101FF000C73BB1F1C83BB9F1C93BC1F1CA3BC9F11B +:1020000080E090E038C082EE90E035C089EE90E04C +:1020100032C08AEE90E02FC085EB90E02CC086EBBA +:1020200090E029C087EB90E026C08CEC90E023C0C4 +:102030008DEC90E020C083E891E01DC08AE891E03B +:102040001AC082E991E017C084E991E014C081E2EE +:1020500092E011C083E292E00EC084E292E00BC0F5 +:1020600085E292E008C086E292E005C087E292E055 +:1020700002C08AE292E0CF910C94880ECF9108952D +:10208000882309F44BC0823859F40E94500E81FF16 +:1020900045C089E30E94EA180E94A21989E30CC096 +:1020A000833871F40E94500E80FF38C083E50E948F +:1020B000EA180E94A21983E50E9429190C94A2191A +:1020C000843859F40E94500E82FF28C087E40E9491 +:1020D000EA180E94A21987E4EFCF9CEF980F913A7B +:1020E00058F390E2980F983050F4877091E001C057 +:1020F000990F8A95EAF7892F0E947119DFCF9BE526 +:10210000980F933020F480E090E00C94720E885A7F +:10211000833120F480E090E00C94880E08958823A9 +:1021200021F00E946B190C94A2190895882321F0C4 +:102130000E9471190C94A2190895BF92CF92DF9258 +:10214000EF92FF920F931F93CF93DF9300D000D0B5 +:1021500000D0CDB7DEB77C0185E0F701DE01119636 +:1021600001900D928A95E1F7F70183819481892B83 +:1021700009F4DDC2908181818F3F19F49F3F09F4FA +:10218000D6C2F7010281258122952F7099838A8317 +:1021900089819A812E830E94A918182FB92E0E9436 +:1021A000A8180E946F17EB2DE295EF704E2F50E0AC +:1021B000FA01E05AFF4F2E810C948D228B2D807FE7 +:1021C0009B2D9F70F92E882319F0F29480EFF8224E +:1021D000002349F0FF2009F457C28F2D0E947B197C +:1021E0000E94A21951C2812F0E944010FF2009F4C1 +:1021F0009EC28F2D0E94811926960FB6F894DEBFDD +:102200000FBECDBFDF91CF911F910F91FF90EF9047 +:10221000DF90CF90BF900C94A2193B2D307F8B2D77 +:102220008F70303211F08295807F112319F01130B8 +:1022300021F12CC00023B9F0222309F490C12130F0 +:1022400009F08DC126960FB6F894DEBF0FBECDBF44 +:10225000DF91CF911F910F91FF90EF90DF90CF9082 +:10226000BF900C948B19222319F0213009F45FC21E +:102270008E830E948E198E8186C1002321F0223028 +:1022800008F055C26CC1211152C27DC1002321F05A +:10229000222309F464C1F8C1222309F474C109C2DC +:1022A0008B2D86958695837019F08130D1F03FC2D1 +:1022B000002321F0812F9B2D937002C080E090E0DD +:1022C00026960FB6F894DEBF0FBECDBFDF91CF913B +:1022D0001F910F91FF90EF90DF90CF90BF900C94E3 +:1022E000720E002321F0812F9B2D937002C080E09D +:1022F00090E026960FB6F894DEBF0FBECDBFDF91FB +:10230000CF911F910F91FF90EF90DF90CF90BF90F2 +:102310000C94880E812F002319F00E94111D02C019 +:102320000E94791D26960FB6F894DEBF0FBECDBF72 +:10233000DF91CF911F910F91FF90EF90DF90CF90A1 +:10234000BF900C94FE1D8B2D837009F075C0011198 +:10235000EEC1812F829586958770880F880F912F07 +:102360009F70C92ED12CE12CF12C082E04C0CC0C6E +:10237000DD1CEE1CFF1C0A94D2F714FF12C00FE004 +:1023800010E020E030E004C0000F111F221F331FB7 +:102390008A95D2F7C901B80160957095809590959E +:1023A00003C060E070E0CB014B2D4695469543702D +:1023B0004230C1F060F56C297D298E299F2941307A +:1023C00051F126960FB6F894DEBF0FBECDBFDF9158 +:1023D000CF911F910F91FF90EF90DF90CF90BF9022 +:1023E0000C9496176C297D298E299F2926960FB665 +:1023F000F894DEBF0FBECDBFDF91CF911F910F913B +:10240000FF90EF90DF90CF90BF900C94B2170E9496 +:102410009617C701B60126960FB6F894DEBF0FBE19 +:10242000CDBFDF91CF911F910F91FF90EF90DF9083 +:10243000CF90BF900C947A17002319F08B2D8170E8 +:1024400001C08695882309F472C1812F82958695F3 +:102450008770880F880F912F9F70C92ED12CE12C87 +:10246000F12C082E04C0CC0CDD1CEE1CFF1C0A94C1 +:10247000D2F714FF12C00FE010E020E030E004C0FB +:10248000000F111F221F331F8A95D2F7C901B8010F +:10249000609570958095909503C060E070E0CB01E9 +:1024A0004B2D4695469543704230C1F060F56C293E +:1024B0007D298E299F29413051F126960FB6F89437 +:1024C000DEBF0FBECDBFDF91CF911F910F91FF9067 +:1024D000EF90DF90CF90BF900C9470186C297D29FD +:1024E0008E299F2926960FB6F894DEBF0FBECDBF6A +:1024F000DF91CF911F910F91FF90EF90DF90CF90E0 +:10250000BF900C948C180E947018C701B6012696D3 +:102510000FB6F894DEBF0FBECDBFDF91CF911F91F4 +:102520000F91FF90EF90DF90CF90BF900C945418D4 +:10253000103FD1F118F4103E50F4A1C0123F09F43D +:1025400063C008F44CC0133F09F473C098C01F70F7 +:102550008B2D8F710023A1F00E94ED17812F2696FD +:102560000FB6F894DEBF0FBECDBFDF91CF911F91A4 +:102570000F91FF90EF90DF90CF90BF900C948F1051 +:102580000E940E18812F26960FB6F894DEBF0FBE5C +:10259000CDBFDF91CF911F910F91FF90EF90DF9012 +:1025A000CF90BF900C9496100023A9F02111BFC0CA +:1025B0008B2D8F7126960FB6F894DEBF0FBECDBF60 +:1025C000DF91CF911F910F91FF90EF90DF90CF900F +:1025D000BF900C943318223008F0A9C0E9CF002333 +:1025E000A9F08B2D8F7126960FB6F894DEBF0FBE23 +:1025F000CDBFDF91CF911F910F91FF90EF90DF90B2 +:10260000CF90BF900C94ED17002359F38B2D8F7151 +:1026100026960FB6F894DEBF0FBECDBFDF91CF91E7 +:102620001F910F91FF90EF90DF90CF90BF900C948F +:102630000E18002399F08B2D8F7126960FB6F89403 +:10264000DEBF0FBECDBFDF91CF911F910F91FF90E5 +:10265000EF90DF90CF90BF900C94D81726960FB6CE +:10266000F894DEBF0FBECDBFDF91CF911F910F91C8 +:10267000FF90EF90DF90CF90BF900C94CE17002387 +:10268000A9F0222309F4ADCF812F26960FB6F89436 +:10269000DEBF0FBECDBFDF91CF911F910F91FF9095 +:1026A000EF90DF90CF90BF900C94780F222309F425 +:1026B000ADCF812F26960FB6F894DEBF0FBECDBFEB +:1026C000DF91CF911F910F91FF90EF90DF90CF900E +:1026D000BF900C9440104B2D4F70612FC7010E948A +:1026E000AE0226960FB6F894DEBF0FBECDBFDF91C7 +:1026F000CF911F910F91FF90EF90DF90CF90BF90FF +:102700000C94F2164B2D4F70612FC70126960FB611 +:10271000F894DEBF0FBECDBFDF91CF911F910F9117 +:10272000FF90EF90DF90CF90BF900C94E30526963A +:102730000FB6F894DEBF0FBECDBFDF91CF911F91D2 +:102740000F91FF90EF90DF90CF90BF9008950E947F +:1027500088190E945D190E94A2190E94AE1E0E9453 +:10276000FE1D80E090E00E94720E80E090E00C94EC +:10277000880E0E9478190C94A7130E94A918292F7B +:1027800022952F702C3030F42A3048F42250223019 +:1027900078F405C02C3041F02F3031F009C0803E74 +:1027A00048F0803F29F406C093FB882780F90895FC +:1027B00080E0089581E00895CF93DF9300D000D0AA +:1027C0001F92CDB7DEB70F900F900F900F900F9024 +:1027D000DF91CF910895CF93DF9300D000D000D048 +:1027E000CDB7DEB726960FB6F894DEBF0FBECDBFCD +:1027F000DF91CF9108951F93CF93DF93C09179011B +:1028000016E080917A01C81799F0D0E01C9FF00182 +:102810001D9FF00D1124E558FE4F408151816281CA +:102820007381848195810E94EB132196C770E9CF53 +:10283000DF91CF911F9108954091AB015091AC0170 +:102840006091AD017091AE018091AF019091B001A6 +:102850000C94EB138091B00182958F7009F054C0F5 +:102860008091AD01882309F44FC080917901A09136 +:102870007A014091AE015091AF016091AB0170912E +:10288000AC01B6E08A1709F43FC090E0411551054C +:10289000C1F17F3F11F46F3FA1F1B89FF001B99FE3 +:1028A000F00D1124E558FE4F218127132AC0208105 +:1028B000261327C02281211124C0238134812417AB +:1028C000350710F421503109241B350B283C310504 +:1028D000C0F42091B0012F7020612093B00126E058 +:1028E000289FF001299FF00D1124E058FE4F8081B0 +:1028F0008F70806180838BEA91E00E949D100C9420 +:10290000FB1301968770BECF0895CF92DF92EF92AE +:10291000FF920F931F93CF93DF93CDB7DEB76297EC +:102920000FB6F894DEBF0FBECDBF8C0185E0F80175 +:10293000DE011D9601900D928A95E1F7D8014C9128 +:1029400011965C91119712966C918091AE019091C5 +:10295000AF01009709F475C13091AB017091AC01E2 +:102960007F3F19F43F3F09F46CC1F801C380D48064 +:10297000E090AD01EE2009F4BEC02091B001C81670 +:10298000D90628F0D601A81BB90BCD0104C080954B +:1029900090958C0D9D1DFF24F394883C910578F053 +:1029A000F12C207F09F0C4C07C2DD98AC88A89897E +:1029B0000E94DC138BEA91E00E949D10AFC0822F31 +:1029C000807F09F045C0571313C0431311C0611134 +:1029D0000FC02F7020612093B0010E941C148BEA5D +:1029E00091E00E949D108091B001F80185832EC076 +:1029F000CD2819F15F3F11F44F3FF9F0F62E611128 +:102A00001CC08091790120917A0136E0821709F487 +:102A10005BC090E0389FF001399FF00D1124E5581C +:102A2000FE4F7181571306C07081471303C0728136 +:102A3000711103C001968770E9CFF62E662309F461 +:102A40001CC18091B00181608093B001F12C15C14F +:102A5000571309C0431307C0611105C08091B0012D +:102A6000F8018583C8C04D875E878D859E856A8BFA +:102A70000E94BD136A898823D1F16623C1F1209198 +:102A8000B001822F82958F7090E0029774F0809150 +:102A9000AB019091AC0198878F831986DB86CA863B +:102AA0002C87CE0107960E949D1086E0F801ABEAC4 +:102AB000B1E001900D928A95E1F70E942A140E94DC +:102AC0001C14FF24F394D9C04D875E878D859E85A5 +:102AD0000E94A918292F22952F70223008F0C1C01A +:102AE0009F7009F0BBC0805E883008F4C6C0C80182 +:102AF0000E949D10E6CFC816D90608F453C0F6010F +:102B0000E81BF90BCF01883C910508F450C0F12C6B +:102B10007C2DD98AC88A89890E94DC13EBEAF1E00E +:102B200086E0DF011D928A95E9F70E941C14A5C07A +:102B3000571314C0431312C0611110C08091B0012B +:102B4000F8018583C8010E949D1086E0EBEAF1E060 +:102B5000DF011D928A95E9F7FE2C8FC04D875E87B5 +:102B60008D859E856A8B0E94BD136A89882309F42E +:102B7000BECF662309F4BBCF2091B001822F82958E +:102B80008F7090E002970CF490CF8091AB01909100 +:102B9000AC019A8389831B82DD82CC822E83CE0195 +:102BA000019681CF809590958C0D9D1DACCFF62E12 +:102BB000662309F49CCF571333C0431331C02091CF +:102BC000B00120FD24C0822F82958F70482F50E0E5 +:102BD00041155105E1F0D80115962C9315974F300A +:102BE000510549F08F5F982F9295907F822F8F70BB +:102BF000892B15968C93C8010E949D1086E0F801E0 +:102C0000ABEAB1E001900D928A95E1F78ECF86E0B4 +:102C1000F801ABEAB1E001900D928A95E1F72DC081 +:102C20004D875E878D859E850E94BD1381113DCFA6 +:102C30008091B00181608093B001C8010E949D1015 +:102C40001CC0662309F453CF4D875E878D859E8512 +:102C50000E94BD13882309F44ACF27CF811143CFA7 +:102C60000CC0243008F043CF9F7009F43CCFD8014A +:102C700015969C91907F09F036CF8F2D62960FB6F6 +:102C8000F894DEBF0FBECDBFDF91CF911F910F91A2 +:102C9000FF90EF90DF90CF9008951F93CF93DF9335 +:102CA000CDB7DEB72C970FB6F894DEBF0FBECDBF01 +:102CB0004F83588769877A878B879C87CE010796D1 +:102CC0000E948514882371F08A859B85892B09F4DD +:102CD00041C088858F3F09F065C08F818F3F09F023 +:102CE00061C038C086E0FE013796DE011196019082 +:102CF0000D928A95E1F76A857B856115710551F121 +:102D0000FF81E885EF3F11F4FF3F21F120917A0127 +:102D100030E0C9010196877099274091790150E010 +:102D20008417950709F447C0F983EA837D836C8390 +:102D300096E0929FD001939FB00D1124A558BE4FED +:102D4000FE01319601900D929A95E1F780937A01F8 +:102D50000E94FB1316E08091790190917A01891706 +:102D6000B9F1189FC001112485589E4F0E94851407 +:102D7000882371F1E09179011E9FF0011124E5583B +:102D8000FE4F4081518162817381848195810E94CF +:102D9000EB138091790190E00196877099278093D9 +:102DA0007901D9CF4F81588569857A858B859C8536 +:102DB0000E94EB13CFCF0E94B91310927A011092A8 +:102DC0007901EBEAF1E086E0DF011D928A95E9F7EF +:102DD0002C960FB6F894DEBF0FBECDBFDF91CF911A +:102DE0001F910895EF92FF920F931F93CF93DF935C +:102DF0008C01892B09F46CC0F12CEE24E394E801DA +:102E00002196F8018491843740F4843008F051C051 +:102E1000813081F0823019F15BC0853709F444C0FC +:102E2000A8F19CE7980F903708F052C08F770E9466 +:102E3000401041C00E5F1F4FFE01849190E2980F39 +:102E4000983050F48770FE2D01C0FF0F8A95EAF785 +:102E50008F2F0E947B1914C00E94780F2DC00E5F27 +:102E60001F4FFE01849190E2980F983060F48770B4 +:102E7000FE2D01C0FF0F8A95EAF78F2F0E9481195E +:102E80000E94A21919C00E94401016C00E5F1F4F69 +:102E9000FE01C491CC2381F08FE99FE00197F1F707 +:102EA00000C00000C150F6CF0E5F1F4FFE01F4902E +:102EB00003C00E94780F8E018F2D882309F49FCFC5 +:102EC000EFE9FFE03197F1F700C000008150F5CF46 +:102ED000DF91CF911F910F91FF90EF90089508958A +:102EE0006093B5017093B6018093B7019093B801D8 +:102EF0000C94A7130F931F930091B5011091B60185 +:102F00002091B7013091B801DC01CB01802B912BCE +:102F1000A22BB32B8093B5019093B601A093B70178 +:102F2000B093B8011F910F910C94A7130F931F93A7 +:102F30000091B5011091B6012091B7013091B8010F +:102F4000DC01CB0180239123A223B3238093B5011D +:102F50009093B601A093B701B093B8011F910F9160 +:102F60000C94A7130F931F930091B5011091B60114 +:102F70002091B7013091B801DC01CB018027912766 +:102F8000A227B3278093B5019093B601A093B70110 +:102F9000B093B8011F910F910C94A7131092B10137 +:102FA0001092B2011092B3011092B4010C94A713C5 +:102FB00041E050E060E070E004C0440F551F661F20 +:102FC000771F8A95D2F74093B1015093B201609375 +:102FD000B3017093B4010C94A71341E050E060E09A +:102FE00070E004C0440F551F661F771F8A95D2F703 +:102FF0008091B1019091B201A091B301B091B4015F +:10300000482B592B6A2B7B2B4093B1015093B20173 +:103010006093B3017093B4010C94A71341E050E0A6 +:1030200060E070E004C0440F551F661F771F8A954B +:10303000D2F740955095609570958091B10190912F +:10304000B201A091B301B091B401482359236A237E +:103050007B234093B1015093B2016093B30170930D +:10306000B4010C94A71341E050E060E070E004C0AC +:10307000440F551F661F771F8A95D2F78091B101C3 +:103080009091B201A091B301B091B40148275927A2 +:103090006A277B274093B1015093B2016093B3013B +:1030A0007093B4010C94A7130F931F930091B10177 +:1030B0001091B2012091B3013091B401DC01CB0138 +:1030C000802B912BA22BB32B8093B1019093B20153 +:1030D000A093B301B093B4011F910F910C94A71367 +:1030E0000F931F930091B1011091B2012091B30190 +:1030F0003091B401DC01CB0180239123A223B323BF +:103100008093B1019093B201A093B301B093B40145 +:103110001F910F910C94A7130F931F930091B1016E +:103120001091B2012091B3013091B401DC01CB01C7 +:1031300080279127A227B3278093B1019093B201F2 +:10314000A093B301B093B4011F910F910C94A713F6 +:103150000895CF92DF92EF92FF920F931F93CF9338 +:10316000DF938C01C090B101D090B201E090B30127 +:10317000F090B4018091B5019091B601A091B70192 +:10318000B091B801C82AD92AEA2AFB2ACFE1D0E0B7 +:10319000D701C6010C2E04C0B695A79597958795C3 +:1031A0000A94D2F780FF07C0B8018C2F0E9407064F +:1031B0008130910531F4219758F7B80180E00E94E1 +:1031C0000706DF91CF911F910F91FF90EF90DF9055 +:1031D000CF90089590910C019923F1F090910D01F9 +:1031E0009923D1F0982F9695969596959F3080F5D6 +:1031F000E0910E01F0910F01E90FF11D877021E0C0 +:1032000030E0A90102C0440F551F8A95E2F7CA01B8 +:103210009181892B8183089520910E0130910F01B6 +:10322000F90132969FEF40E05191851789F09F3F59 +:1032300019F4511101C0942F4F5F4E30A9F79F3FF1 +:1032400039F0F901E90FF11D97FDFA958283089590 +:10325000089590910C019923F9F090910D01992313 +:10326000D9F0982F9695969596959F3028F5E091F0 +:103270000E01F0910F01E90FF11D877021E030E0A0 +:10328000A90102C0440F551F8A95E2F7CA01809533 +:10329000918189238183089520910E0130910F013E +:1032A000F9013296205F3F4F9081891301C010824F +:1032B0003196E217F307C1F7089581E090E0E091BD +:1032C0000E01F0910F01E80FF91F10820196803175 +:1032D0009105A9F708959091CB01892B8093CB019B +:1032E000089580959091CB0189238093CB01089517 +:1032F0001092CB0108959091CA01892B8093CA0145 +:10330000089580959091CA0189238093CA010895F8 +:103310001092CA0108958093B90108951092B901DD +:10332000089580910E0190910F01FC0131969C014E +:10333000205F3F4F80E0919191118F5FE217F3077B +:10334000D1F70895E0910E01F0910F018091CB012A +:103350008083E0910E01F0910F0190818091CA016C +:10336000892B80838091B901882361F0E0910E015F +:10337000F0910F019081892B80830E949119811116 +:103380001092B90180910E0190910F010C945C0E86 +:10339000CF92DF92EF92FF926C01EE24FF24C114D2 +:1033A000D104E104F10421F0C701B60120E101C01C +:1033B00020E0C72ED82EE92EFF24C114D104E10449 +:1033C000F10419F0285FC701B6016B017C0154E0DC +:1033D000F694E794D794C7945A95D1F7C114D104C1 +:1033E000E104F10419F02C5FC701B6016B017C0107 +:1033F00042E0F694E794D794C7944A95D1F7C11464 +:10340000D104E104F10419F02E5FC701B601DC011B +:10341000CB01B695A79597958795892B8A2B8B2BF2 +:1034200009F02F5F822FFF90EF90DF90CF900895EB +:103430008091E401843011F120E488E190E00FB63E +:10344000F894A895809360000FBE2093600083B726 +:10345000817F846083BF83B7816083BF78948895C0 +:1034600083B78E7F83BF0FB6F894A89580916000D4 +:10347000886180936000109260000FBE08950895E7 +:103480000C943F1ACF930E94401A0E9426040E9477 +:103490003F1AC0E08C2F0E941C05811104C0CF5F31 +:1034A000CE30C1F701C081E0CF9108950E94B913D9 +:1034B0000E94500E0C94460782E084BD93E095BDB7 +:1034C0009AEF97BD80936E0008952FB7F89480917E +:1034D000CD019091CE01A091CF01B091D0012FBF2D +:1034E0000895CF92DF92EF92FF920F931F932FB721 +:1034F000F8944091CD015091CE016091CF0170912F +:10350000D0012FBF6A017B01EE24FF248C0120E053 +:1035100030E0C016D106E206F30610F4415051091E +:103520009A01281B390BC9011F910F91FF90EF9051 +:10353000DF90CF9008951F920F920FB60F92112433 +:103540008F939F93AF93BF938091CD019091CE01C4 +:10355000A091CF01B091D0010196A11DB11D809322 +:10356000CD019093CE01A093CF01B093D001BF9134 +:10357000AF919F918F910F900FBE0F901F90189554 +:103580000E94480BF8942FEF87EA91E62150804083 +:103590009040E1F700C0000087E090EBDC018093F1 +:1035A000ED019093EE01A093EF01B093F0019CE048 +:1035B00088E10FB6F894A895809360000FBE9093B1 +:1035C0006000FFCFEF92FF920F931F93CF93DF9393 +:1035D000D82FC0E08C2F0E941C0500E010E0E82EE0 +:1035E000F12CC701002E02C0959587950A94E2F749 +:1035F00080FD06C00F5F1F4F0630110591F709C00F +:10360000602F7C2F80E00E94E4058D13F3CF81E0D2 +:1036100004C0CF5FCE30F1F680E0DF91CF911F91F3 +:103620000F91FF90EF900895CF93C82F8CE20E94E6 +:10363000E21A882321F08C2FCF910C94E21A80E0BB +:10364000CF910895CF930E94691C811102C00E94FE +:103650004F1CC5E6C15049F00E9426048FE39CE947 +:103660000197F1F700C00000F5CF89E20E94141B1A +:10367000811113C18AE20E94141B81110E944F1C08 +:1036800085E00E94141B81110E94C01A0E94741CC4 +:103690008093CC0187E00E94141B8823A9F18BE161 +:1036A0000E94141B882351F08091CC0181FB2227BA +:1036B00020F991E0922790FB81F90EC08EE00E94E4 +:1036C000141B882361F08091CC0182FB222720F912 +:1036D00091E0922790FB82F98093CC0115C080E1A4 +:1036E0000E94141B9091CC01882341F093FB222768 +:1036F00020F981E0822780FB93F904C0892F80950F +:1037000080FB90F99093CC018091CC010E94781CB1 +:103710000E94861C8093DE0180EE0E94141B882389 +:1037200041F08091DE01982F909590FB80F9809375 +:10373000DE0189E30E94141B882359F08091DE0189 +:1037400081FB222720F991E0922790FB81F9809359 +:10375000DE0182EE0E94141B882359F08091DE0165 +:1037600082FB222720F991E0922790FB82F9809337 +:10377000DE0186EE0E94141B882359F08091DE0141 +:1037800083FB222720F991E0922790FB83F9809315 +:10379000DE0183EE0E94141B882359F08091DE0124 +:1037A00084FB222720F991E0922790FB84F98093F3 +:1037B000DE0185E30E94141B882359F08091DE010D +:1037C00085FB222720F991E0922790FB85F98093D1 +:1037D000DE0181E30E94141B882359F08091DE01F1 +:1037E00086FB222720F991E0922790FB86F98093AF +:1037F000DE0181E10E94141B882359F08091DE01D3 +:1038000087FB222720F991E0922790FB87F980938C +:10381000DE018091DE010E948A1C8091DE0187FB1F +:10382000882780F980930D0187E20E94141BC82F1E +:103830008EE10E94141B8111C2608FE10E94141B53 +:103840008111C46080E20E94141B8111C86081E272 +:103850000E94141B8111C06182E20E94141B81111D +:10386000C06283E20E94141B8111C06484E20E9442 +:10387000141B882311F0C06802C0CC2329F08C2FC0 +:103880000E94811C6C2F03C00E947D1C682F70E079 +:1038900080E090E0CF910C947017CF9108956DEE79 +:1038A0007EEF80E090E00E94C32260E082E090E042 +:1038B0000E94B52260E083E090E00E94B52260E0C3 +:1038C00084E090E00E94B52260E085E090E00C94F6 +:1038D000B52280E090E00E94AF2221E08D3E9E4F15 +:1038E00009F020E0822F089582E090E00C94A72256 +:1038F000682F82E090E00C94B52283E090E00C9475 +:10390000A722682F83E090E00C94B52284E090E039 +:103910000C94A722682F84E090E00C94B52280914B +:10392000D30180FF0BC06091130185E0689FB00157 +:10393000112475956795759567952BC081FF09C012 +:103940006091130185E0689FB0011124759567951A +:1039500020C082FF07C06091130185E0689FB0011D +:10396000112417C09091D4019923D1F060911201D4 +:10397000961788F72091130185E0289F9001112464 +:10398000929FA001939F500D112470E0CA010E94E4 +:1039900079226038710540F46115710519F406C08B +:1039A00065E070E0862F08958FE7089581E008951F +:1039B0008091D30180FF08C06091110170E075957E +:1039C00067957595679521C081FF06C060911101CB +:1039D00070E07595679519C082FF04C06091110170 +:1039E00070E010C09091D401992399F0609110017A +:1039F0009617A0F780911101899FC001112470E0F2 +:103A00000E9479226038710540F46115710519F43E +:103A100006C061E070E0862F08958FE7089581E089 +:103A20000895803F21F40E948F1C819504C0813F3E +:103A300029F40E948F1C8093D7010895823F21F4BE +:103A40000E948F1C819504C0833F29F40E948F1C23 +:103A50008093D6010895893F19F40E94D81C05C0AF +:103A60008A3F31F40E94D81C81958093D801089533 +:103A70008B3F21F40E94D81C819504C08C3F29F40F +:103A80000E94D81C8093D9010895843F21F480912D +:103A9000D501816017C0853F21F48091D5018260F6 +:103AA00011C0863F21F48091D50184600BC0873F0F +:103AB00021F48091D501886005C0883F31F4809160 +:103AC000D50180618093D50108958D3F21F48091C7 +:103AD000D30181600BC08E3F21F48091D3018260BD +:103AE00005C08F3F29F48091D30184608093D30176 +:103AF0000895803F39F48091D70187FF6CC0109200 +:103B0000D70169C0813F29F48091D7011816BCF311 +:103B100062C09091D601823F29F497FF5CC0109259 +:103B2000D60159C0833F19F41916CCF354C0893F0C +:103B300041F48091D80118160CF04DC01092D801B4 +:103B40004AC08A3F29F48091D80187FF44C0F6CF4C +:103B50008B3F39F48091D90187FF3DC01092D90184 +:103B60003AC08C3F29F48091D9011816BCF333C0B8 +:103B7000843F21F48091D5018E7F17C0853F21F4C9 +:103B80008091D5018D7F11C0863F21F48091D501B0 +:103B90008B7F0BC0873F21F48091D501877F05C0C3 +:103BA000883F31F48091D5018F7E8093D50113C079 +:103BB0008D3F21F48091D3018E7F0BC08E3F21F485 +:103BC0008091D3018D7F05C08F3F29F48091D3016F +:103BD0008B7F8093D3018091D60181110EC080919B +:103BE000D70181110AC08091D801811106C080914E +:103BF000D901811102C01092D401089585ED91E0A0 +:103C00000E94670E0E94651A9093D2018093D101A1 +:103C100008951F93CF93DF938091D1019091D201AA +:103C20000E94711AAC019091D401992321F0209146 +:103C3000140130E006C0209115018AE0289F900110 +:103C400011244217530708F485C08091D601C09112 +:103C5000D701D091D8011091D901811107C0C111AC +:103C600075C0D11173C0111171C074C09F3F19F09C +:103C70009F5F9093D401181624F40E948F1C8093A8 +:103C8000D6018091D60187FF05C00E948F1C8195C7 +:103C90008093D6011C1624F40E948F1C8093D701B8 +:103CA0008091D70187FF05C00E948F1C819580936A +:103CB000D7016091D601662331F1C091D701CC23A1 +:103CC00011F1062E000C770B880B990B0E948021B6 +:103CD00023E333E343E35FE30E94E4210E944821AE +:103CE0006093D6016C2FCC0F770B880B990B0E9439 +:103CF000802123E333E343E35FE30E94E4210E9456 +:103D000048216093D7011D1624F40E94D81C80938B +:103D1000D8018091D80187FF05C00E94D81C8195E9 +:103D20008093D801111624F40E94D81C8093D901E5 +:103D30008091D90187FF05C00E94D81C819580938E +:103D4000D901DF91CF911F910C94FE1D9F3F09F087 +:103D50008FCFA0CFDF91CF911F910895E5EDF1E0D6 +:103D600085E0DF011D928A95E9F71092D401109247 +:103D7000D3010895833081F128F4813059F08230E5 +:103D8000D1F00895853009F449C0B8F1863009F4BE +:103D900056C0089580911501262F30E0280F311D5F +:103DA0002F3F310524F4680F6093150108958FEFBC +:103DB00080931501089580911401262F30E0280F7B +:103DC000311D2F3F310524F4680F609314010895CD +:103DD0008FEF80931401089580911301262F30E016 +:103DE000280F311D2F3F310524F4680F6093130114 +:103DF00008958FEF80931301089580911201262F6B +:103E000030E0280F311D2F3F310524F4680F6093F7 +:103E1000120108958FEF809312010895809111018E +:103E2000262F30E0280F311D2F3F310524F4680F75 +:103E30006093110108958FEF80931101089580918F +:103E40001001262F30E0280F311D2F3F310524F4BB +:103E5000680F6093100108958FEF8093100108950B +:103E6000833011F128F4813049F0823091F00895C7 +:103E7000853081F120F18630C1F1089580911501DE +:103E8000681720F4861B8093150108951092150180 +:103E9000089580911401681720F4861B8093140103 +:103EA000089510921401089580911301681720F469 +:103EB000861B809313010895109213010895809139 +:103EC0001201681720F4861B809312010895109246 +:103ED0001201089580911101681720F4861B8093C8 +:103EE0001101089510921101089580911001681731 +:103EF00020F4861B809310010895109210010895FC +:103F00000F931F938D3109F46BC008F03FC08E30C2 +:103F100009F47DC0C0F4873009F46EC068F48630BF +:103F200009F0AFC08091CC01817F8E7F8093CC015E +:103F300081E08093DB01A6C0883009F458C08B3043 +:103F400009F49BC09EC0863109F497C078F4803193 +:103F500009F470C0813109F094C00E94B9139091A6 +:103F60000D0181E0892780930D0187C0893109F413 +:103F700084C08B3109F085C08091CC0181FB222760 +:103F800020F991E0922790FB81F94AC0853309F42A +:103F90005BC048F4873209F457C008F45AC089322C +:103FA00009F452C06EC0833438F48A3308F067C015 +:103FB000883309F462C065C0833409F445C088348D +:103FC00009F05FC00E94B9130FEF13ED20E3015019 +:103FD00010402040E1F700C000000E94C01A4DC010 +:103FE0000E9402210E94500E0E94460746C00E9475 +:103FF000741C0E94861C41C09091CC01892F817055 +:1040000090FF12C0917F9E7F9093CC013BC0809126 +:10401000CC0182FB222720F991E0922790FB82F9C4 +:104020008093CC01992349F18091CC0181608093E8 +:10403000CC0123C08091CC0183FB222720F991E0A1 +:10404000922790FB83F9ECCF61E070E080E090E094 +:1040500010C08D5141E050E060E070E08A019B01AA +:1040600004C0000F111F221F331F8A95D2F7C90108 +:10407000B8010E9470170E94B91381E003C08953F0 +:10408000E9CF80E01F910F91089580E008950C948E +:104090004520CF93C82F8091DB01813079F018F053 +:1040A0008230E9F187C0E0910E01F0910F0180812B +:1040B000813169F0823209F07FC009C0E0910E01C0 +:1040C000F0910F018081813111F0823261F48C2FE7 +:1040D0000E944720811104C08C2F0E94801F1DC0A8 +:1040E00081E090E01AC08C2F0E944520811114C0FD +:1040F000C43179F048F4CB3079F0C03109F060C0B8 +:1041000082E08093DB0108C0C93219F0C83321F086 +:1041100057C01092DB0154C081E0817053C0C93296 +:1041200089F118F5C43171F1A8F4C73009F046C01F +:104130008AE08093150194E19093140193E09093A9 +:1041400013018093120188E08093110188E280932B +:10415000100134C0CE51C63088F5EC2FF0E0E65D9A +:10416000FE4F80818093DA0129C0CE34E9F020F43B +:10417000CB3421F56AE013C0C13579F0C235F1F4D2 +:1041800061E00DC08091DA01882319F01092DA0104 +:1041900015C081E08093DB0115C061E006C080910D +:1041A000DA010E94BA1E0AC06AE08091DA010E9418 +:1041B000301F04C01092DB0180E004C081E002C027 +:1041C00080E0ABCFCF910895E1E8F0E08081886096 +:1041D00080838081816080838FB7F89493E090938F +:1041E000890090ED909388008FBF0895EFE6F0E08E +:1041F0008081826080830895EFE6F0E080818D7F8A +:1042000080830895EFE6F0E0908182E08927808343 +:1042100008951F920F920FB60F9211242F933F9380 +:104220004F935F936F937F938F939F93AF93BF93BE +:10423000EF93FF938091DC019091DD0101969093C3 +:10424000DD018093DC01811103C082E00E944607FA +:10425000E091DD01E695E695F0E0E657FB4FE4914D +:104260008091DC018E1303C080E00E944607FF911D +:10427000EF91BF91AF919F918F917F916F915F91DE +:104280004F913F912F910F900FBE0F901F90189557 +:104290000E944F216894B1110C94DE2108950E9470 +:1042A000C32188F09F5798F0B92F9927B751B0F0E4 +:1042B000E1F0660F771F881F991F1AF0BA95C9F7AA +:1042C00014C0B13091F00E94DD21B1E008950C944A +:1042D000DD21672F782F8827B85F39F0B93FCCF3FD +:1042E000869577956795B395D9F73EF49095809527 +:1042F000709561957F4F8F4F9F4F0895E89409C047 +:1043000097FB3EF490958095709561957F4F8F4F08 +:104310009F4F9923A9F0F92F96E9BB279395F6951E +:10432000879577956795B795F111F8CFFAF4BB0F9C +:1043300011F460FF1BC06F5F7F4F8F4F9F4F16C000 +:10434000882311F096E911C0772321F09EE8872F8A +:10435000762F05C0662371F096E8862F70E060E046 +:104360002AF09A95660F771F881FDAF7880F9695BF +:10437000879597F9089557FD9058440F551F59F0A8 +:104380005F3F71F04795880F97FB991F61F09F3F42 +:1043900079F087950895121613061406551FF2CF6B +:1043A0004695F1DF08C0161617061806991FF1CFBB +:1043B00086957105610508940895E894BB276627E2 +:1043C0007727CB0197F908950E94F7210C94682272 +:1043D0000E945A2238F00E94612220F0952311F0A9 +:1043E0000C9451220C94572211240C94DE210E942B +:1043F000BB2170F3959FC1F3950F50E0551F629F4D +:10440000F001729FBB27F00DB11D639FAA27F00D2D +:10441000B11DAA1F649F6627B00DA11D661F829F54 +:104420002227B00DA11D621F739FB00DA11D621F39 +:10443000839FA00D611D221F749F3327A00D611D56 +:10444000231F849F600D211D822F762F6A2F112438 +:104450009F5750409AF0F1F088234AF0EE0FFF1F6B +:10446000BB1F661F771F881F91505040A9F79E3FC2 +:10447000510580F00C9451220C94DE215F3FE4F34F +:10448000983ED4F3869577956795B795F795E79518 +:104490009F5FC1F7FE2B880F911D9695879597F921 +:1044A000089597F99F6780E870E060E008959FEFB6 +:1044B00080EC089500240A941616170618060906BB +:1044C000089500240A94121613061406050608958A +:1044D000092E0394000C11F4882352F0BB0F40F412 +:1044E000BF2B11F460FF04C06F5F7F4F8F4F9F4F52 +:1044F000089597FB072E16F4009407D077FD09D096 +:104500000E94932207FC05D03EF4909581959F4F21 +:104510000895709561957F4F0895EE0FFF1F0590E8 +:10452000F491E02D0994AA1BBB1B51E107C0AA1FFF +:10453000BB1FA617B70710F0A61BB70B881F991F44 +:104540005A95A9F780959095BC01CD010895F999E8 +:10455000FECF92BD81BDF89A992780B50895A8E154 +:10456000B0E042E050E00C94CA22262FF999FECF29 +:104570001FBA92BD81BD20BD0FB6F894FA9AF99A80 +:104580000FBE019608950E94B522272F0C94B622E3 +:10459000DC01CB01FC01F999FECF06C0F2BDE1BD03 +:1045A000F89A319600B40D9241505040B8F70895F2 +:0445B000F894FFCFAD +:1045B40020024707D707B2077E074A070101BA015D +:1045C40028080A03140A3F4D36394B04FE03C80376 +:1045D4008F0322033B0354036D0301020304050606 +:0445E40007080900BB +:00000001FF diff --git a/keyboard/ergodox_ez/keymaps/erez_experimental/keymap.c b/keyboard/ergodox_ez/keymaps/erez_experimental/keymap.c new file mode 100644 index 0000000000..24ff1c6884 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/erez_experimental/keymap.c @@ -0,0 +1,185 @@ +#include +#include "ergodox_ez.h" +#include "debug.h" +#include "action_layer.h" + +#define BASE 0 // default layer +#define SYMB 1 // symbols +#define MDIA 2 // media keys + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Keymap 0: Basic layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | = | 1 | 2 | 3 | 4 | 5 | LEFT | | RIGHT| 6 | 7 | 8 | 9 | 0 | - | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | Del | Q | W | E | R | T | L1 | | L1 | Y | U | I | O | P | \ | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | BkSp | A | S | D | F | G |------| |------| H | Alt/J| K | L |; / L2| LGui/' | + * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------| + * | LShift |Z/Ctrl| X | C | V | B | | | | N | M | , | . |//Ctrl| RShift | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * |Grv/L1| '" |AltShf| Left | Right| | Up | Down | [ | ] | ~L1 | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | App | LGui | | Alt |Ctrl/Esc| + * ,------|------|------| |------+--------+------. + * | | L1 | Home | | PgUp | | | + * | Space| Tap/ |------| |------| Tab/L1 |Enter | + * | |Toggle| End | | PgDn | | | + * `--------------------' `----------------------' + */ +// If it accepts an argument (i.e, is a function), it doesn't need KC_. +// Otherwise, it needs KC_* +[BASE] = KEYMAP( // layer 0 : default + // left hand + KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LEFT, + KC_DELT, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(SYMB), + KC_BSPC, KC_A, KC_S, KC_D, KC_F, KC_G, + KC_LSFT, CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, ALL_T(KC_NO), + LT(SYMB,KC_GRV),KC_QUOT, LALT(KC_LSFT), KC_LEFT, KC_RGHT, + ALT_T(KC_APP), KC_LGUI, + KC_HOME, + KC_SPC,KC_FN1,KC_END, + // right hand + KC_RGHT, KC_6,KC_7, KC_8, KC_9, KC_0, KC_MINS, + TG(SYMB), KC_Y,KC_U, KC_I, KC_O, KC_P, KC_BSLS, + KC_H,ALT_T(KC_J),KC_K, KC_L, LT(MDIA,KC_SCLN),GUI_T(KC_QUOT), + MEH_T(KC_NO),KC_N,KC_M, KC_COMM,KC_DOT, CTL_T(KC_SLSH), KC_RSFT, + KC_UP, KC_DOWN,KC_LBRC,KC_RBRC, KC_FN1, + KC_LALT, CTL_T(KC_ESC), + KC_PGUP, + KC_PGDN,LT(SYMB, KC_TAB), KC_ENT + ), +/* Keymap 1: Symbol Layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | 1 | 2 | 3 | 4 | | | | | | % | = | @ | | F12 | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | 5 | 6 | 7 | 8 | 9 |------| |------| & | _ | - | ; | + | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | ( | ) | [ | ] | 0 | | | | | | ( | ) | | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// SYMBOLS +[SYMB] = KEYMAP( + // left hand + KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS, + KC_TRNS, KC_1, KC_2, KC_3, KC_4, KC_TRNS, KC_TRNS, + KC_TRNS, KC_5, KC_6, KC_7, KC_8, KC_9, + KC_TRNS, KC_LPRN,KC_RPRN,KC_LBRC, KC_RBRC, KC_0, KC_TRNS, + KC_TRNS, KC_TRNS,KC_TRNS,LCTL(KC_PGUP), LCTL(KC_PGDN), + KC_TRNS,KC_TRNS, + KC_TRNS, + KC_TRNS,KC_TRNS,KC_TRNS, + // right hand + KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + KC_TRNS, KC_TRNS, KC_PERC,KC_EQL, KC_AT, KC_TRNS, KC_F12, + KC_AMPR, KC_UNDS,KC_MINS, CM_SCLN, KC_PLUS, KC_TRNS, + KC_TRNS, KC_PIPE, KC_LPRN,KC_RPRN, KC_3, KC_TRNS, KC_TRNS, + KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS +), +/* Keymap 2: Media and mouse keys + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | | MsUp | | | | | | | | | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | |MsLeft|MsDown|MsRght| |------| |------| | | | | | Play | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | | | | | | | Prev | Next | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | Lclk | Rclk | |VolUp |VolDn | Mute | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | |Brwser| + * | | |------| |------| |Back | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// MEDIA AND MOUSE +[MDIA] = KEYMAP( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, + // right hand + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, + KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS, + KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_WBAK +), +}; + +const uint16_t PROGMEM fn_actions[] = { + [1] = ACTION_LAYER_TAP_TOGGLE(SYMB) // FN1 - Momentary Layer 1 (Symbols) +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch(id) { + case 0: + if (record->event.pressed) { + register_code(KC_RSFT); + } else { + unregister_code(KC_RSFT); + } + break; + } + return MACRO_NONE; +}; + +// Runs just one time when the keyboard initializes. +void matrix_init_user(void) { + +}; + +// Runs constantly in the background, in a loop. +void matrix_scan_user(void) { + + uint8_t layer = biton32(layer_state); + + ergodox_board_led_off(); + ergodox_right_led_1_off(); + ergodox_right_led_2_off(); + ergodox_right_led_3_off(); + switch (layer) { + // TODO: Make this relevant to the ErgoDox EZ. + case 1: + ergodox_right_led_1_on(); + break; + case 2: + ergodox_right_led_2_on(); + break; + default: + // none + break; + } + +}; diff --git a/keyboard/ergodox_ez/keymaps/erez_experimental/readme.md b/keyboard/ergodox_ez/keymaps/erez_experimental/readme.md new file mode 100644 index 0000000000..82e1c5e4a0 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/erez_experimental/readme.md @@ -0,0 +1,28 @@ +# Erez's experimental layout + +This is my personal layout which I use to test out ideas which may or may not make it onto the default layout we ship with. It's based off the default layout, with various tweaks. + +Changelog: + +## Feb 11, 2016: + +* Updated ASCII legend for thumb clusters +* Made it so outer left-hand thumb key is L1 momentary toggle +* Added % and @ to L1 +* Swapped positions for _ and - on L1 + +## Feb 5, 2016: + +* A whole new design for the symbol layer. Specifically: + * Put the minus, underscore, and semicolon right in the homerow for the right hand + * Parens are in better places for me + * The arrow keys now send Ctrl-PgUp and Ctrl-PgDn, for switching browser tabs with the arrows when in symbol layer + * Tab (right-hand outer thumb key) now does double duty to toggle symbol layer when held down + * Backspace (left-hand outer thumb key) now just toggles symbol layer (I wasn't using it as a backspace) + + +## Jan 19, 2016: + +* Made J into dual-action key (Alt when held down), to make Alt-tab more ergonomic. +* Made ' into dual-action key (Win/Cmd when held down). + diff --git a/keyboard/ergodox_ez/keymaps/german-kinergo/german-kinergo.hex b/keyboard/ergodox_ez/keymaps/german-kinergo/german-kinergo.hex new file mode 100644 index 0000000000..03df475967 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/german-kinergo/german-kinergo.hex @@ -0,0 +1,1121 @@ +:100000000C9465020C94AC020C94AC020C94AC02FF +:100010000C94AC020C94AC020C94AC020C94AC02A8 +:100020000C94AC020C94AC020C94C50B0C94970C81 +:100030000C94AC020C94AC020C94AC020C94AC0288 +:100040000C94AC020C940B210C94AC020C94AC02FA +:100050000C94AC020C949D1A0C94AC020C94AC025F +:100060000C94AC020C94AC020C94AC020C94AC0258 +:100070000C94AC020C94AC020C94AC020C94AC0248 +:100080000C94AC020C94AC020C94AC020C94AC0238 +:100090000C94AC020C94AC020C94AC020C94AC0228 +:1000A0000C94AC020C94AC020C94AC02040D260D22 +:1000B000190E260D190E6B0D8E0D190EE30DF60D92 +:1000C000E010E0100F110F1152118C1199139913B8 +:1000D000A51199139A129A126D13991399138413F7 +:1000E0000000F0A129002B003900E100E30000002E +:1000F0001E00140004001D0035004D001F001A00F2 +:1001000016001B0064004C002000080007000600D9 +:1001100050002A0021001500090019004F004A0074 +:10012000220017000A0005000000E0002E00015226 +:10013000000002520000E20046000152000002529C +:100140000000E60023001C000B0011000000E4008A +:10015000240018000D00100051004B0025000C0079 +:100160000E00360052002C00260012000F0037004F +:1001700031002800270013003300380030004E0003 +:100180002D002F003482E500E7000000010001008F +:1001900001000100010000003A001E0231002202AD +:1001A000010001003B001414210235000100010090 +:1001B0003C00241425022514010001003D002714F1 +:1001C00026022614010001003E0064142E023014A1 +:1001D000000001000100010000000100000001001A +:1001E0000100010000000100000001003F0052007A +:1001F00051002302000001004000240021001E00E5 +:10020000010001004100250022001F00370001000D +:100210004200260023002000270001004300300296 +:1002200030002D14270201004400450001000100A8 +:1002300001000000010001000100010001000000B8 +:100240003A000100F700FB00010001003B00F40050 +:10025000F200FA00FD00F5003C00F000F100F900AA +:10026000FE00F4003D00F500F300FC00FF0001007B +:100270003E000100F800F60000000100010001004E +:100280000000010000000100010001000000010069 +:10029000000001003F0001000100B4000000010067 +:1002A0004000AA00AC00B600010001004100A80017 +:1002B000AD00B5000100B7004200A900AE00B900D2 +:1002C0000100B60043000100AB00B70001000100CF +:1002D0004400450001000100010000001603450034 +:1002E000720067006F0044006F0078002000450036 +:1002F0005A00000016034500720067006F004400BA +:100300006F007800200045005A0000000403090433 +:1003100009026D00040100A0FA09040000010301B4 +:100320000100092111010001223F00070581030896 +:10033000000A090401000103010200092111010062 +:1003400001224D000705820308000A09040200018A +:100350000300000009211101000122360007058376 +:100360000308000A09040300010300000009211129 +:100370000100012239000705840310000112011059 +:100380000100000008EDFE07130100010200010555 +:10039000010906A101050719E029E71500250195C6 +:1003A0000875018102050819012905950575019156 +:1003B000029501750391010507190029771500259C +:1003C00001957875018102C005010980A1018502AE +:1003D00016010026B7001A01002AB7007510950112 +:1003E0008100C0050C0901A1018503160100269CAE +:1003F000021A01002A9C02751095018100C00501B6 +:100400000902A1010901A100050919012905150029 +:10041000250195057501810295017503810105018D +:10042000093009311581257F950275088106093843 +:100430001581257F950175088106050C0A3802157E +:1004400081257F950175088106C0C005010906A1B7 +:1004500001050719E029E7150025019508750181B7 +:100460000295017508810105081901290595057591 +:100470000191029501750391010507190029FF15E6 +:100480000025FF950675088100C0000000000000EF +:100490000000000000010204060A0F17202C3A4A4F +:1004A0005D71879DB3C7DAE9F5FCFFFCF5E9DAC7B2 +:1004B000B39D87715D4A3A2C20170F0A060402018A +:1004C0000000000000000000000011241FBECFEF5C +:1004D000DAE0DEBFCDBF04B603FE27C08091ED0198 +:1004E0009091EE01A091EF01B091F0018730904B17 +:1004F000A740B04BD1F41092ED011092EE01109292 +:10050000EF011092F00114BE84B7877F84BF0FB64D +:10051000F894A895809160008861809360001092A3 +:1005200060000FBEE0E0FFE3099511E0A0E0B1E05C +:10053000E8EBF5E402C005900D92A433B107D9F7BA +:1005400021E0A4E3B1E001C01D92AD3EB207E1F7A6 +:100550000E940C090C94DA220C94000061110BC06B +:10056000FC018281882321F085EE0E947A0F03C06E +:1005700085EE0E94421080E090E008950895609119 +:10058000B1017091B2018091B3019091B4010E94C8 +:10059000CA1956985E9825982D9826982E982798CF +:1005A0002F98813029F0823031F4269A2E9A0895BE +:1005B000259A2D9A089556985E9808950C94BF0236 +:1005C00056985E9825982D9826982E9827982F98BB +:1005D0008FEF90E0909389008093880090938B0038 +:1005E00080938A0090938D0080938C00259A2D9A99 +:1005F0002FEF80E792E0215080409040E1F700C06B +:100600000000269A2E9A2FEF80E792E0215080403A +:100610009040E1F700C00000279A2F9A2FEF80E763 +:1006200092E0215080409040E1F700C00000259802 +:100630002D982FEF80E792E0215080409040E1F725 +:1006400000C0000026982E982FEF80E792E02150FE +:1006500080409040E1F700C0000027982F985698FE +:100660005E9825982D9826982E9827982F9808956B +:1006700089EA8093800089E08093810024982C98F7 +:100680003F988AB18F748AB96E98479A8BB1806B04 +:100690008BB9769A0E94E0020C94BE0280E28093AD +:1006A00000018091340181110EC00E949D0381E000 +:1006B000809334012FEF83ED90E3215080409040F0 +:1006C000E1F700C0000080E40E94A30380930001D2 +:1006D00081112EC00E94CD0380930001811128C09A +:1006E0000E94CD0380930001811122C08FE30E94FC +:1006F000CD038093000181111BC00E94C50380E4DB +:100700000E94A30380930001811112C08CE00E941B +:10071000CD038093000181110BC00E94CD03809313 +:100720000001811105C08FE30E94CD038093000179 +:100730000E94C5038091000108951092B9008AE0DB +:100740008093B800089594EA9093BC009091BC0007 +:1007500097FFFCCF9091B900987F983021F09031AD +:1007600011F081E008958093BB0084E88093BC0081 +:100770008091BC0087FFFCCF8091B900887F8831D1 +:1007800011F0803471F780E0089584E98093BC0013 +:100790008091BC0084FDFCCF08958093BB0084E869 +:1007A0008093BC008091BC0087FFFCCF9091B90082 +:1007B000987F81E0983209F480E0089584E880937E +:1007C000BC008091BC0087FFFCCF8091BB000895E6 +:1007D00080910001811115C080E40E94A3038093E1 +:1007E000000181110CC082E10E94CD0380930001C1 +:1007F000811105C08FEF0E94CD03809300010E94FC +:10080000C50384B1807F84B985B1807F85B98AB101 +:10081000837F8AB98BB1837F8BB93E9846980895C0 +:100820000E944E03809300010E94E80380B38C7005 +:1008300080BB81B3836F81BBE4E4F1E0A6E3B1E068 +:1008400011921D9281E0E235F807D1F70C9438033C +:100850009F92AF92BF92CF92DF92EF92FF920F934F +:100860001F93CF93DF9380910001882379F08091CB +:1008700035018F5F80933501811108C00E944E03BE +:1008800080930001811102C00E94E00286E3E82EFD +:1008900081E0F82E8701C0E0D0E0BB24B39492E061 +:1008A000A92ECC24C394D12CC730D10500F580915A +:1008B0000001811164C080E40E94A30380930001C1 +:1008C000811112C082E10E94CD0380930001811149 +:1008D0000BC0C6010C2E01C0880F0A94EAF7809560 +:1008E0000E94CD03809300010E94C50348C0CA3016 +:1008F000A1F028F4C83059F0C93061F005C0CC30FF +:1009000089F070F0CD3089F0209A289810C0219A93 +:1009100029980DC0229A2A980AC0239A2B9807C0BA +:10092000529A01C0539A5B9802C03E9A4698E0EAF8 +:10093000EA95F1F78FB181708B25799902C032E089 +:1009400001C030E0832B7C9902C034E001C030E06C +:10095000832B7D9902C028E001C020E0822B7E9984 +:1009600002C090E101C090E0892B9FB19095991F42 +:100970009927991F9295990F907E892B0FC080918E +:10098000000181114AC080E40E94A303809300010A +:10099000882381F1912C0E94C503892DD8019C9157 +:1009A000981719F08C93A09201010E94E8032196F8 +:1009B0000F5F1F4FCE30D10509F076CF8091010136 +:1009C000882369F1815080930101882339F0EFE990 +:1009D000FFE03197F1F700C0000021C0E4E4F1E04E +:1009E000D7018D917D018193B4E4EB16B1E0FB0654 +:1009F000B9F715C083E10E94CD03809300018111F6 +:100A0000C9CF81E40E94A303809300018111C2CF6A +:100A10000E94DE03982E9094BECF80E0BFCF0E944C +:100A2000DE0281E0DF91CF911F910F91FF90EF9057 +:100A3000DF90CF90BF90AF909F900895E82FF0E0A7 +:100A4000EC5BFE4F8081089508958B3B910580F407 +:100A5000883A910548F5853A9105D8F48430910596 +:100A600008F0B2C0019709F06EC081E090E00895EF +:100A7000803E910508F467C0883E910508F4A4C043 +:100A80009C01205F31092031310508F05CC0906580 +:100A90000895853A910509F459C0863A910509F0FF +:100AA00058C082E890E40895883A910509F454C04A +:100AB000893A910509F453C08A3A910509F452C064 +:100AC0008B3A910509F451C08C3A910509F450C054 +:100AD0008D3A910509F44FC0803B910509F44EC051 +:100AE0008E3A910509F44DC08F3A910509F44CC036 +:100AF000813B910509F44BC0823B910509F44AC042 +:100B0000833B910509F449C0843B910509F448C031 +:100B1000853B910509F447C0863B910509F446C021 +:100B2000873B910509F445C0883B910509F444C011 +:100B3000893B910509F443C08A3B910509F442C001 +:100B400080E094E4089580E090E0089581E890E4E6 +:100B5000089583E890E4089582EE94E4089589EE80 +:100B600094E408958AEE94E4089585EB94E408955E +:100B700086EB94E4089587EB94E408958CEC94E478 +:100B800008958DEC94E4089583E895E408958AE847 +:100B900095E4089582E995E4089584E995E408953B +:100BA00081E296E4089583E296E4089584E296E46F +:100BB000089585E296E4089586E296E4089587E232 +:100BC00096E408958AE296E40895089524E5829FC4 +:100BD000C0011124FC0126E0729FE00DF11D1124DB +:100BE000E60FF11DEE0FFF1FEC51FF4F8591949121 +:100BF0000895880F991FFC01E05AF0408591949167 +:100C00000895880F991FFC01E052FF4F8591949140 +:100C1000089524E5829FC0011124FC0146E0749FE1 +:100C2000E00DF11D1124E60FF11DEE0FFF1FEC5139 +:100C3000FF4F859194919C013A9521154FE134071E +:100C400008F425C13F512115304120F49F700E94C6 +:100C5000010608959C0130532115304118F499275D +:100C6000906C0895811520E5920769F40E94BB13EA +:100C70004FEF84E39CE0415080409040E1F700C09A +:100C800000000C94C21A813020E5920731F4809163 +:100C9000CC0181608093CC0108959C0130552115D1 +:100CA000304108F05CC0292F33272F7033272130C3 +:100CB0003105E9F4AC0164E0440F551F6A95E1F792 +:100CC00044275370BC016370772702C0220F331F83 +:100CD0006A95E2F73C68242B352B73E0880F991F47 +:100CE0007A95E1F780769927822B932B089522300D +:100CF000310529F4982F8827816F906A0895233051 +:100D00003105A1F4AC0133E0440F551F3A95E1F7EA +:100D1000407E57708370992721E030E002C0220F97 +:100D2000331F8A95E2F7C9019C6816C0243031054B +:100D300031F5AC0123E0440F551F2A95E1F7407EC1 +:100D400057708370992721E030E002C0220F331FD3 +:100D50008A95E2F7C9019A68842B952B08959C0126 +:100D600030572115304118F49F70906208959C010E +:100D700030582115304118F49F70906A0895803ED4 +:100D80009105E0F4803C910558F58133910509F413 +:100D90006FC048F48932910509F463C08A32910525 +:100DA00009F46DC072C089339105E9F0823891056C +:100DB000D1F08533910509F44DC067C0833E91059C +:100DC00081F138F4803E9105B9F0823E9105D9F069 +:100DD0005CC0863E910561F1873E9105A1F155C049 +:100DE0000E94F90508952091DE0120FD02C021FF37 +:100DF0004CC080EE90E049C08091DE0180FFF9CFC9 +:100E000089E390E042C08091DE0182FF0EC08091B4 +:100E1000DE0184FF03C080E090E037C083EE90E005 +:100E200034C08091DE0182FFF2CF82EE90E02DC0CF +:100E30008091DE0183FF0BC08091DE0184FDEBCF4A +:100E400087EE90E022C08091DE0183FFF5CF86EE31 +:100E500090E01BC08091DE0185FF07C089E290E031 +:100E600014C08091DE0185FFF9CF85E390E00DC0CD +:100E70008091DE0186FF07C08AE290E006C0809183 +:100E8000DE0186FFF9CF81E390E00E9425050895F9 +:100E90000895809162010895CF93DF9300D01F924F +:100EA000CDB7DEB79C018091E401843019F593E061 +:100EB00099833B832A839093E9008FEF9091E80018 +:100EC000815095FD06C095ED9A95F1F700008111CE +:100ED000F5CF8091E80085FF0DC040E050E063E071 +:100EE00070E0CE0101960E94B9098091E8008E77EA +:100EF0008093E8000F900F900F90DF91CF910895AD +:100F0000CF93DF9300D01F92CDB7DEB72091E401DD +:100F1000243021F522E029839B838A8383E0809318 +:100F2000E9008FEF9091E800815095FD06C095EDA6 +:100F30009A95F1F700008111F5CF8091E80085FFC7 +:100F40000DC040E050E063E070E0CE0101960E94E9 +:100F5000B9098091E8008E778093E8000F900F9098 +:100F60000F90DF91CF9108959C018091E40184302E +:100F7000F9F482E08093E9009FEF8091E8009150BE +:100F800085FD06C085ED8A95F1F700009111F5CF3A +:100F90008091E80085FF0CC040E050E065E070E023 +:100FA000C9010E94B9098091E8008E778093E8001A +:100FB0000895CF93DF93EC018091E401843009F030 +:100FC00046C090910C019923D9F090910D0199237D +:100FD000B9F08093E9008FEF9091E800815095FD82 +:100FE00006C095E19A95F1F700008111F5CF809147 +:100FF000E80085FF2CC040E050E060E170E017C0E1 +:1010000081E08093E9008FEF9091E800815095FD99 +:1010100006C095ED9A95F1F700008111F5CF80910A +:10102000E80085FF14C040E050E068E070E0CE01C9 +:101030000E94B9098091E8008E778093E80080E1F2 +:10104000FE01A2E5B1E001900D928A95E1F7DF91F2 +:10105000CF9108958091E301811109C00E944A0B4C +:101060000E94A70B8091E20084608093E2000895C3 +:101070001092E301089508950C94F8200E94581AE4 +:101080000E94FE200E94520E0C94480742E061EC40 +:1010900081E00E94C30A42E061EC82E00E94C30A40 +:1010A00042E061EC83E00E94C30A42E161EC84E02B +:1010B0000C94C30A8091E601833009F455C030F4E2 +:1010C000813071F0823009F48EC008958A3009F4BD +:1010D0007AC08B3009F460C0893009F09CC020C010 +:1010E0008091E501813A09F096C08091E800877F00 +:1010F0008093E8008091E9019091EA01892B21F425 +:1011000060E182E591E003C060E080E090E070E0A3 +:101110000E94040A8091E8008B778093E80008958C +:101120008091E501813209F076C08091E9019091CA +:10113000EA01009719F0039709F06DC08091E8006B +:10114000877F8093E8008091E80082FD05C0809150 +:10115000E4018111F8CF5FC08091F10080936201BA +:101160008091E8008B7753C08091E501813A09F0C6 +:1011700052C08091E9019091EA01892B09F04BC09E +:101180008091E800877F8093E8008091E80080FFED +:10119000FCCF80910C0136C08091E5018132D9F5F8 +:1011A0008091E9019091EA01892BA9F58091E800ED +:1011B000877F8093E8000E94F80A8091E70180937E +:1011C0000C010C94BB138091E501813221F58091D3 +:1011D000E800877F8093E8000E94F80A8091E80188 +:1011E0008093630108958091E501813AA1F4809193 +:1011F000E800877F8093E8008091E80080FFFCCFC3 +:10120000809163018093F1008091E8008E77809354 +:10121000E8000C94F80A089584B7877F84BF0FB65E +:10122000F894A89580916000886180936000109286 +:1012300060000FBE90E080E80FB6F89480936100E4 +:10124000909361000FBE0E94A10E0E944A0B0E9463 +:10125000A70B8091E20084608093E20078940E9462 +:10126000320E0E94A30E82E091E00E944D0E0E9479 +:10127000E6208091E401853069F40E941A1A809179 +:10128000E2018823B1F30E94441A882391F30E945B +:10129000A309EFCF0E94A90EECCF292F33272330CB +:1012A0003105C9F060F42130310581F0223031057B +:1012B00009F041C08DE690E020E133E040C02132EA +:1012C0003105E1F02232310531F135C082E190E0A3 +:1012D0002DE733E034C099278130910549F028F09B +:1012E000029749F5ECEDF2E005C0ECE0F3E002C056 +:1012F000E4EFF2E0849190E09F0121C06430D8F4E3 +:10130000E62FF0E0EE0FFF1FEE5DFE4F20813181F2 +:1013100089E090E014C0643070F470E0FB01EE0FDF +:10132000FF1FE65EFE4F20813181FB01EA5EFE4F2A +:10133000808190E004C080E090E020E030E0FA019D +:1013400031832083089580E189BD82E189BD09B49C +:1013500000FEFDCF8091D8008F7D8093D8008091D2 +:10136000E00082608093E0008091E00081FDFCCF8E +:101370000895CF92DF92EF92FF920F931F93CF9336 +:10138000DF93EC018B016A010E94170B811133C0BE +:10139000C114D10439F0F60180819181081B190B29 +:1013A000C80FD91FE12CF12C0115110519F18091FD +:1013B000E80085FD16C08091E8008E778093E800F4 +:1013C000C114D10449F0F60180819181E80EF91E23 +:1013D000F182E08285E00FC00E94170B882321F381 +:1013E0000AC089918093F10001501109FFEFEF1AB3 +:1013F000FF0ADACF80E0DF91CF911F910F91FF902C +:10140000EF90DF90CF9008952091EB013091EC01A7 +:101410002617370748F06115710539F42091E80067 +:101420002E772093E80001C0B901FC0120E061158E +:10143000710579F18091E4018823F1F18530F1F1B2 +:101440008091E80083FD3CC08091E80082FD2EC0C1 +:101450008091E80080FFEBCF2091F3008091F200B3 +:1014600090E0922B6115710551F08830910538F4A8 +:1014700021912093F100615071090196F3CF21E091 +:10148000089709F020E08091E8008E778093E800CB +:10149000CECF2111CFCF0AC08091E401882361F023 +:1014A000853061F08091E80083FD0AC08091E800FA +:1014B00082FFF2CF80E0089582E0089583E00895EE +:1014C00081E008952091EB013091EC012617370758 +:1014D00048F06115710539F42091E8002E772093CA +:1014E000E80001C0B901FC0120E06115710591F12E +:1014F0008091E401882309F440C0853009F43FC09D +:101500008091E80083FD3DC08091E80082FD2FC0FE +:101510008091E80080FFE9CF2091F3008091F200F4 +:1015200090E0922B6115710559F08830910540F4D7 +:1015300024912093F1003196615071090196F2CF08 +:1015400021E0089709F020E08091E8008E778093F1 +:10155000E800CBCF2111CCCF0AC08091E4018823D1 +:1015600061F0853061F08091E80083FD0AC08091D0 +:10157000E80082FFF2CF80E0089582E0089583E0E2 +:10158000089581E00895982F973068F59093E900C9 +:10159000981739F07091EC002091ED005091F00017 +:1015A00003C0242F762F50E021FD02C09F5FECCFB7 +:1015B0003091EB003E7F3093EB003091ED003D7FAA +:1015C0003093ED003091EB0031603093EB0070937D +:1015D000EC002093ED005093F0002091EE0027FDE9 +:1015E000E5CF80E008958F708093E90081E0089551 +:1015F0008091E50187FF11C08091E80082FD05C060 +:101600008091E4018111F8CF11C08091E8008B77BF +:101610000BC08091E401882349F08091E80080FFAD +:10162000F8CF8091E8008E778093E80008952091AC +:10163000E4003091E50095E64091EC00842F817044 +:1016400040FF23C08091E80080FD1DC08091E4012F +:10165000882399F0853099F08091EB0085FD11C0C9 +:101660004091E4005091E5002417350729F391508B +:1016700011F09A01E1CF84E0089582E0089583E0BB +:10168000089581E0089580E008954091E80042FFC8 +:10169000DDCF08950E94B80B0E94C00BE0EEF0E091 +:1016A000808181608083E8EDF0E080818F778083A6 +:1016B00019BCA7EDB0E08C918E7F8C9380818F7EDA +:1016C00080831092E30108950F931F93CF93DF93CC +:1016D0000E94B80B0E94C00BC8EDD0E088818F77C4 +:1016E000888388818068888388818F7D888319BCFE +:1016F0001092E4011092E0011092E2011092E101D7 +:1017000000EE10E0F80180818B7F8083888181600A +:10171000888342E060E080E00E94C30AE1EEF0E0EE +:1017200080818E7F8083E2EEF0E080818160808323 +:10173000808188608083F80180818E7F80838881AA +:1017400080618883DF91CF911F910F910895E8ED1B +:10175000F0E080818F7E8083E7EDF0E08081816022 +:10176000808384E082BF81E08093E3010C94640B6A +:10177000E8EDF0E080818E7F80831092E200089592 +:101780001092DA001092E10008951F920F920FB6A6 +:101790000F9211242F933F934F935F936F937F93F7 +:1017A0008F939F93AF93BF93EF93FF938091E1004B +:1017B00082FF0BC08091E20082FF07C08091E100B0 +:1017C0008B7F8093E1000E94310E8091DA0080FFD0 +:1017D0001FC08091D80080FF1BC08091DA008E7FEF +:1017E0008093DA008091D90080FF0DC080E189BD2F +:1017F00082E189BD09B400FEFDCF81E08093E40160 +:101800000E942A0805C019BC1092E4010E94380801 +:101810008091E10080FF19C08091E20080FF15C037 +:101820008091E2008E7F8093E2008091E2008061EF +:101830008093E2008091D80080628093D80019BC28 +:1018400085E08093E4010E943C088091E10084FFE0 +:1018500030C08091E20084FF2CC080E189BD82E12C +:1018600089BD09B400FEFDCF8091D8008F7D8093A3 +:10187000D8008091E1008F7E8093E1008091E200AA +:101880008F7E8093E2008091E20081608093E2008D +:101890008091E001882311F084E007C08091E3008B +:1018A00087FD02C081E001C083E08093E4010E94D3 +:1018B0003E088091E10083FF29C08091E20083FF10 +:1018C00025C08091E100877F8093E10082E08093D2 +:1018D000E4011092E0018091E1008E7F8093E100AD +:1018E0008091E2008E7F8093E2008091E20080612F +:1018F0008093E20042E060E080E00E94C30A8091B1 +:10190000F00088608093F0000E943B08FF91EF9107 +:10191000BF91AF919F918F917F916F915F914F9107 +:101920003F912F910F900FBE0F901F9018951F920F +:101930000F920FB60F9211242F933F934F935F9303 +:101940006F937F938F939F93AF93BF93CF93DF93C7 +:10195000EF93FF93C091E900CF708091EC00D82FF6 +:10196000D17080FDD0E81092E9008091F000877F6F +:101970008093F00078940E94DB0C1092E900809133 +:10198000F00088608093F000CD2BCF70C093E90009 +:10199000FF91EF91DF91CF91BF91AF919F918F9187 +:1019A0007F916F915F914F913F912F910F900FBE5B +:1019B0000F901F9018951F93CF93DF93CDB7DEB78D +:1019C000AA970FB6F894DEBF0FBECDBFE5EEF1E0EB +:1019D0008091F100819321E0ED3EF207C9F70E946A +:1019E0005A088091E80083FF24C18091E50190911D +:1019F000E601492F50E04A30510508F01AC1FA01BA +:101A0000EA5AFF4F0C948F22803881F0823809F017 +:101A100010C18091E9018F708093E9008091EB0003 +:101A200085FB882780F91092E90006C08091E101CA +:101A30009091E201911182609091E800977F9093DC +:101A4000E8008093F1001092F100C8C0282F2D7F8C +:101A500009F0EFC0882319F0823061F0EAC080916C +:101A6000E701813009F0E5C0933009F080E0809310 +:101A7000E2012BC08091E701811127C08091E9012B +:101A80008F7009F4D6C08093E9002091EB0020FF0D +:101A90001CC0933021F48091EB00806214C09091BF +:101AA000EB0090619093EB0021E030E0A90102C0CF +:101AB000440F551F8A95E2F74093EA001092EA001E +:101AC0008091EB0088608093EB001092E900809198 +:101AD000E800877F86C08111ACC01091E7011F77B5 +:101AE0008091E3008078812B8093E3008091E8006F +:101AF000877F8093E8000E94F80A8091E80080FFC9 +:101B0000FCCF8091E30080688093E300111102C054 +:101B100082E001C083E08093E4018BC08058823072 +:101B200008F087C08091E7019091E8018C3D53E077 +:101B3000950779F583E08A838AE289834FB7F89421 +:101B4000DE01139620E03EE051E2E32FF0E05093F7 +:101B50005700E49120FF03C0E295EF703F5FEF7004 +:101B60008E2F90E0EA3010F0C79601C0C0968D939A +:101B70009D932F5F243149F74FBF8091E800877F05 +:101B80008093E8006AE270E0CE0101960E94040AA8 +:101B900014C0AE014F5F5F4F6091E9010E944D0993 +:101BA000BC01892B09F445C09091E800977F909380 +:101BB000E80089819A810E94620A8091E8008B770F +:101BC0008093E80036C08038A1F58091E800877FD7 +:101BD0008093E8008091E0018093F1008091E8001B +:101BE0008E778093E8000E94F80A23C0811121C0FB +:101BF0008091E7019091E80199270297D4F48091B0 +:101C0000E800877F8093E8008091E7018093E001FE +:101C10000E94F80A8091E001811106C08091E300E2 +:101C200087FD02C081E001C084E08093E4010E944E +:101C300046088091E80083FF0AC08091E800877F12 +:101C40008093E8008091EB0080628093EB00AA967D +:101C50000FB6F894DEBF0FBECDBFDF91CF911F91BD +:101C600008950895CF938091E4018823A1F0C09155 +:101C7000E900CF709091EC00892F817090FD80E891 +:101C8000C82B1092E9008091E80083FD0E94DB0CD4 +:101C9000CF70C093E900CF9108959093690180932C +:101CA00068010895E0916801F0916901309721F091 +:101CB0000190F081E02D099480E00895E0916801A1 +:101CC000F0916901309721F00280F381E02D0994B1 +:101CD0000895E0916801F0916901309721F0048046 +:101CE000F581E02D099408952091660130916701F6 +:101CF0002817390771F09093670180936601E0918E +:101D00006801F0916901309721F00680F781E02D9C +:101D100009940895209164013091650128173907CD +:101D200071F09093650180936401E0916801F091F6 +:101D30006901309721F00084F185E02D0994089520 +:101D400008950C94A00E0E945E1A0E9410040C9438 +:101D5000241BCF92DF92EF92FF920F931F93CF93AA +:101D6000DF93CDB7DEB72B970FB6F894DEBF0FBE6B +:101D7000CDBF0E9428048BE6C82E81E0D82E00E05B +:101D800010E0E02E802F0E941E05F60141916F01A8 +:101D9000F82EF426B1F40F5F1F4F0E30110589F7AE +:101DA0008FEF89838A831B820E94671A8160782F54 +:101DB0009D838C8349815A816B818D810E944C0F58 +:101DC00040C09091CC0191FF04C08B870E942405F4 +:101DD0008B8520E030E04F2D50E0922FBA01022E8B +:101DE00002C0759567950A94E2F760FF24C02E83C0 +:101DF000EF8221E030E0690102C0CC0CDD1C9A9535 +:101E0000E2F790E08C219D21892B09F420E02887BE +:101E10000E94671A8160782F9A8789874E815F8137 +:101E200068858A850E944C0FF801E559FE4F808134 +:101E3000C826C08206C02F5F3F4F2630310569F6A5 +:101E4000AACF0E940B1E0E94520E90916A01891720 +:101E5000A1F00E94520E80936A012B960FB6F8945F +:101E6000DEBF0FBECDBFDF91CF911F910F91FF90CD +:101E7000EF90DF90CF900C9448072B960FB6F89414 +:101E8000DEBF0FBECDBFDF91CF911F910F91FF90AD +:101E9000EF90DF90CF900895CF93DF93CDB7DEB76B +:101EA0002B970FB6F894DEBF0FBECDBF4F83588778 +:101EB00069877A878B87DE01119686E0FD01119292 +:101EC0008A95E9F785E0FE01379601900D928A9593 +:101ED000E1F749815A816B817C818D819E810E94CD +:101EE0004F162B960FB6F894DEBF0FBECDBFDF9115 +:101EF000CF910895CF93C82F882309F4C1C08238A9 +:101F000059F40E94520E81FDBBC089E30E94EC1877 +:101F10000E94A41989E30CC0833879F40E94520E00 +:101F200080FDAEC083E50E94EC180E94A41983E5F1 +:101F30000E942B19CF910C94A419843859F40E9453 +:101F4000520E82FD9DC087E40E94EC180E94A419E5 +:101F500087E4EECF8CEF8C0F813A48F48C2F0E94EF +:101F60004B2081118DC08C2F0E94EC18E3CF80E2B2 +:101F70008C0F883048F4C77081E001C0880FCA9583 +:101F8000EAF70E946D19D6CF8BE58C0F833078F479 +:101F9000C53A29F0C63A31F083E890E005C081E8FF +:101FA00090E002C082E890E0CF910C94740E88E536 +:101FB0008C0F833108F064C0C83A39F1C93A41F155 +:101FC000CA3A49F1CB3A51F1CC3A59F1CD3A61F1E3 +:101FD000C03B69F1CE3A71F1CF3A79F1C13B81F161 +:101FE000C23B89F1C33B91F1C43B99F1C53BA1F1DF +:101FF000C63BA9F1C73BB1F1C83BB9F1C93BC1F13F +:10200000CA3BC9F180E090E038C082EE90E035C074 +:1020100089EE90E032C08AEE90E02FC085EB90E030 +:102020002CC086EB90E029C087EB90E026C08CECBA +:1020300090E023C08DEC90E020C083E891E01DC0CB +:102040008AE891E01AC082E991E017C084E991E042 +:1020500014C081E292E011C083E292E00EC084E2FB +:1020600092E00BC085E292E008C086E292E005C0F3 +:1020700087E292E002C08AE292E0CF910C948A0E4D +:10208000CF910895882309F44BC0823859F40E94F7 +:10209000520E81FF45C089E30E94EC180E94A419EA +:1020A00089E30CC0833871F40E94520E80FF38C05F +:1020B00083E50E94EC180E94A41983E50E942B1965 +:1020C0000C94A419843859F40E94520E82FF28C03F +:1020D00087E40E94EC180E94A41987E4EFCF9CEFDC +:1020E000980F913A58F390E2980F983050F4877017 +:1020F00091E001C0990F8A95EAF7892F0E94731920 +:10210000DFCF9BE5980F933020F480E090E00C94B3 +:10211000740E885A833120F480E090E00C948A0E8B +:102120000895882321F00E946D190C94A419089534 +:10213000882321F00E9473190C94A4190895BF926A +:10214000CF92DF92EF92FF920F931F93CF93DF9383 +:1021500000D000D000D0CDB7DEB77C0185E0F7011C +:10216000DE01119601900D928A95E1F7F7018381C6 +:102170009481892B09F4DDC2908181818F3F19F40C +:102180009F3F09F4D6C2F7010281258122952F7065 +:1021900099838A8389819A812E830E94AB18182F94 +:1021A000B92E0E94AA180E947117EB2DE295EF70CC +:1021B0004E2F50E0FA01E05AFF4F2E810C948F22EF +:1021C0008B2D807F9B2D9F70F92E882319F0F29420 +:1021D00080EFF822002349F0FF2009F457C28F2D29 +:1021E0000E947D190E94A41951C2812F0E944210A1 +:1021F000FF2009F49EC28F2D0E94831926960FB6E8 +:10220000F894DEBF0FBECDBFDF91CF911F910F912C +:10221000FF90EF90DF90CF90BF900C94A4193B2DCE +:10222000307F8B2D8F70303211F08295807F11239B +:1022300019F0113021F12CC00023B9F0222309F448 +:1022400090C1213009F08DC126960FB6F894DEBFFB +:102250000FBECDBFDF91CF911F910F91FF90EF90F7 +:10226000DF90CF90BF900C948D19222319F021306C +:1022700009F45FC28E830E9490198E8186C100236B +:1022800021F0223008F055C26CC1211152C27DC12B +:10229000002321F0222309F464C1F8C1222309F4A8 +:1022A00074C109C28B2D86958695837019F0813093 +:1022B000D1F03FC2002321F0812F9B2D937002C0EB +:1022C00080E090E026960FB6F894DEBF0FBECDBF3B +:1022D000DF91CF911F910F91FF90EF90DF90CF9002 +:1022E000BF900C94740E002321F0812F9B2D9370CE +:1022F00002C080E090E026960FB6F894DEBF0FBED5 +:10230000CDBFDF91CF911F910F91FF90EF90DF90A4 +:10231000CF90BF900C948A0E812F002319F00E9459 +:10232000131D02C00E947B1D26960FB6F894DEBFD7 +:102330000FBECDBFDF91CF911F910F91FF90EF9016 +:10234000DF90CF90BF900C94001E8B2D837009F00E +:1023500075C00111EEC1812F829586958770880F17 +:10236000880F912F9F70C92ED12CE12CF12C082EB3 +:1023700004C0CC0CDD1CEE1CFF1C0A94D2F714FF29 +:1023800012C00FE010E020E030E004C0000F111F89 +:10239000221F331F8A95D2F7C901B8016095709545 +:1023A0008095909503C060E070E0CB014B2D469581 +:1023B000469543704230C1F060F56C297D298E2925 +:1023C0009F29413051F126960FB6F894DEBF0FBE1B +:1023D000CDBFDF91CF911F910F91FF90EF90DF90D4 +:1023E000CF90BF900C9498176C297D298E299F2936 +:1023F00026960FB6F894DEBF0FBECDBFDF91CF910A +:102400001F910F91FF90EF90DF90CF90BF900C94B1 +:10241000B4170E949817C701B60126960FB6F89414 +:10242000DEBF0FBECDBFDF91CF911F910F91FF9007 +:10243000EF90DF90CF90BF900C947C17002319F0A1 +:102440008B2D817001C08695882309F472C1812F7C +:10245000829586958770880F880F912F9F70C92E5F +:10246000D12CE12CF12C082E04C0CC0CDD1CEE1C70 +:10247000FF1C0A94D2F714FF12C00FE010E020E016 +:1024800030E004C0000F111F221F331F8A95D2F7BE +:10249000C901B801609570958095909503C060E082 +:1024A00070E0CB014B2D4695469543704230C1F00C +:1024B00060F56C297D298E299F29413051F126969E +:1024C0000FB6F894DEBF0FBECDBFDF91CF911F9145 +:1024D0000F91FF90EF90DF90CF90BF900C94721807 +:1024E0006C297D298E299F2926960FB6F894DEBF88 +:1024F0000FBECDBFDF91CF911F910F91FF90EF9055 +:10250000DF90CF90BF900C948E180E947218C70174 +:10251000B60126960FB6F894DEBF0FBECDBFDF9191 +:10252000CF911F910F91FF90EF90DF90CF90BF90D0 +:102530000C945618103FD1F118F4103E50F4A1C07D +:10254000123F09F463C008F44CC0133F09F473C090 +:1025500098C01F708B2D8F710023A1F00E94EF1780 +:10256000812F26960FB6F894DEBF0FBECDBFDF9148 +:10257000CF911F910F91FF90EF90DF90CF90BF9080 +:102580000C9491100E941018812F26960FB6F89483 +:10259000DEBF0FBECDBFDF91CF911F910F91FF9096 +:1025A000EF90DF90CF90BF900C9498100023A9F08B +:1025B0002111BFC08B2D8F7126960FB6F894DEBF08 +:1025C0000FBECDBFDF91CF911F910F91FF90EF9084 +:1025D000DF90CF90BF900C943518223008F0A9C03E +:1025E000E9CF0023A9F08B2D8F7126960FB6F894B2 +:1025F000DEBF0FBECDBFDF91CF911F910F91FF9036 +:10260000EF90DF90CF90BF900C94EF17002359F319 +:102610008B2D8F7126960FB6F894DEBF0FBECDBFFF +:10262000DF91CF911F910F91FF90EF90DF90CF90AE +:10263000BF900C941018002399F08B2D8F71269663 +:102640000FB6F894DEBF0FBECDBFDF91CF911F91C3 +:102650000F91FF90EF90DF90CF90BF900C94DA171E +:1026600026960FB6F894DEBF0FBECDBFDF91CF9197 +:102670001F910F91FF90EF90DF90CF90BF900C943F +:10268000D0170023A9F0222309F4ADCF812F26967D +:102690000FB6F894DEBF0FBECDBFDF91CF911F9173 +:1026A0000F91FF90EF90DF90CF90BF900C947A0F36 +:1026B000222309F4ADCF812F26960FB6F894DEBF02 +:1026C0000FBECDBFDF91CF911F910F91FF90EF9083 +:1026D000DF90CF90BF900C9442104B2D4F70612F24 +:1026E000C7010E94AE0226960FB6F894DEBF0FBE59 +:1026F000CDBFDF91CF911F910F91FF90EF90DF90B1 +:10270000CF90BF900C94F4164B2D4F70612FC701E2 +:1027100026960FB6F894DEBF0FBECDBFDF91CF91E6 +:102720001F910F91FF90EF90DF90CF90BF900C948E +:10273000E50526960FB6F894DEBF0FBECDBFDF913C +:10274000CF911F910F91FF90EF90DF90CF90BF90AE +:1027500008950E948A190E945F190E94A4190E947C +:10276000B01E0E94001E80E090E00E94740E80E087 +:1027700090E00C948A0E0E947A190C94A9130E947E +:10278000AB18292F22952F702C3030F42A3048F4C2 +:102790002250223078F405C02C3041F02F3031F037 +:1027A00009C0803E48F0803F29F406C093FB88278B +:1027B00080F9089580E0089581E00895CF93DF9334 +:1027C00000D000D01F92CDB7DEB70F900F900F90C2 +:1027D0000F900F90DF91CF910895CF93DF9300D0AA +:1027E00000D000D0CDB7DEB726960FB6F894DEBF86 +:1027F0000FBECDBFDF91CF9108951F93CF93DF938D +:10280000C091790116E080917A01C81799F0D0E063 +:102810001C9FF0011D9FF00D1124E558FE4F4081D3 +:10282000518162817381848195810E94ED1321968B +:10283000C770E9CFDF91CF911F9108954091AB010F +:102840005091AC016091AD017091AE018091AF01EA +:102850009091B0010C94ED138091B00182958F702E +:1028600009F054C08091AD01882309F44FC08091D4 +:102870007901A0917A014091AE015091AF01609130 +:10288000AB017091AC01B6E08A1709F43FC090E04B +:1028900041155105C1F17F3F11F46F3FA1F1B89F80 +:1028A000F001B99FF00D1124E558FE4F2181271347 +:1028B0002AC02081261327C02281211124C0238110 +:1028C00034812417350710F421503109241B350BAE +:1028D000283C3105C0F42091B0012F702061209375 +:1028E000B00126E0289FF001299FF00D1124E05847 +:1028F000FE4F80818F70806180838BEA91E00E941F +:102900009F100C94FD1301968770BECF0895CF924F +:10291000DF92EF92FF920F931F93CF93DF93CDB788 +:10292000DEB762970FB6F894DEBF0FBECDBF8C0145 +:1029300085E0F801DE011D9601900D928A95E1F780 +:10294000D8014C9111965C91119712966C918091DF +:10295000AE019091AF01009709F475C13091AB01C0 +:102960007091AC017F3F19F43F3F09F46CC1F8014D +:10297000C380D480E090AD01EE2009F4BEC0209168 +:10298000B001C816D90628F0D601A81BB90BCD0195 +:1029900004C0809590958C0D9D1DFF24F394883C78 +:1029A000910578F0F12C207F09F0C4C07C2DD98AE4 +:1029B000C88A89890E94DE138BEA91E00E949F10E9 +:1029C000AFC0822F807F09F045C0571313C0431357 +:1029D00011C061110FC02F7020612093B0010E94BF +:1029E0001E148BEA91E00E949F108091B001F801C3 +:1029F00085832EC0CD2819F15F3F11F44F3FF9F0C8 +:102A0000F62E61111CC08091790120917A0136E087 +:102A1000821709F45BC090E0389FF001399FF00DF8 +:102A20001124E558FE4F7181571306C0708147137A +:102A300003C07281711103C001968770E9CFF62E31 +:102A4000662309F41CC18091B00181608093B001BC +:102A5000F12C15C1571309C0431307C0611105C0FC +:102A60008091B001F8018583C8C04D875E878D8550 +:102A70009E856A8B0E94BF136A898823D1F16623E1 +:102A8000C1F12091B001822F82958F7090E0029762 +:102A900074F08091AB019091AC0198878F83198677 +:102AA000DB86CA862C87CE0107960E949F1086E09F +:102AB000F801ABEAB1E001900D928A95E1F70E942E +:102AC0002C140E941E14FF24F394D9C04D875E87F6 +:102AD0008D859E850E94AB18292F22952F7022305C +:102AE00008F0C1C09F7009F0BBC0805E883008F458 +:102AF000C6C0C8010E949F10E6CFC816D90608F4C8 +:102B000053C0F601E81BF90BCF01883C910508F48E +:102B100050C0F12C7C2DD98AC88A89890E94DE1385 +:102B2000EBEAF1E086E0DF011D928A95E9F70E9469 +:102B30001E14A5C0571314C0431312C0611110C056 +:102B40008091B001F8018583C8010E949F1086E042 +:102B5000EBEAF1E0DF011D928A95E9F7FE2C8FC0C8 +:102B60004D875E878D859E856A8B0E94BF136A891B +:102B7000882309F4BECF662309F4BBCF2091B001AE +:102B8000822F82958F7090E002970CF490CF809105 +:102B9000AB019091AC019A8389831B82DD82CC8248 +:102BA0002E83CE01019681CF809590958C0D9D1D31 +:102BB000ACCFF62E662309F49CCF571333C04313D2 +:102BC00031C02091B00120FD24C0822F82958F70EA +:102BD000482F50E041155105E1F0D80115962C938E +:102BE00015974F30510549F08F5F982F9295907F40 +:102BF000822F8F70892B15968C93C8010E949F108D +:102C000086E0F801ABEAB1E001900D928A95E1F718 +:102C10008ECF86E0F801ABEAB1E001900D928A9583 +:102C2000E1F72DC04D875E878D859E850E94BF137D +:102C300081113DCF8091B00181608093B001C801C6 +:102C40000E949F101CC0662309F453CF4D875E87F6 +:102C50008D859E850E94BF13882309F44ACF27CF14 +:102C6000811143CF0CC0243008F043CF9F7009F48A +:102C70003CCFD80115969C91907F09F036CF8F2DCF +:102C800062960FB6F894DEBF0FBECDBFDF91CF9135 +:102C90001F910F91FF90EF90DF90CF9008951F93B9 +:102CA000CF93DF93CDB7DEB72C970FB6F894DEBF86 +:102CB0000FBECDBF4F83588769877A878B879C87E4 +:102CC000CE0107960E948714882371F08A859B8520 +:102CD000892B09F441C088858F3F09F065C08F8139 +:102CE0008F3F09F061C038C086E0FE013796DE01F3 +:102CF000119601900D928A95E1F76A857B856115A1 +:102D0000710551F1FF81E885EF3F11F4FF3F21F19B +:102D100020917A0130E0C90101968770992740918E +:102D2000790150E08417950709F447C0F983EA83D5 +:102D30007D836C8396E0929FD001939FB00D112408 +:102D4000A558BE4FFE01319601900D929A95E1F77C +:102D500080937A010E94FD1316E080917901909191 +:102D60007A018917B9F1189FC001112485589E4F27 +:102D70000E948714882371F1E09179011E9FF00170 +:102D80001124E558FE4F4081518162817381848115 +:102D900095810E94ED138091790190E001968770F2 +:102DA000992780937901D9CF4F81588569857A8594 +:102DB0008B859C850E94ED13CFCF0E94BB13109290 +:102DC0007A0110927901EBEAF1E086E0DF011D92D1 +:102DD0008A95E9F72C960FB6F894DEBF0FBECDBFEB +:102DE000DF91CF911F910895EF92FF920F931F9360 +:102DF000CF93DF938C01892B09F46CC0F12CEE2466 +:102E0000E394E8012196F8018491843740F48430FA +:102E100008F051C0813081F0823019F15BC08537F4 +:102E200009F444C0A8F19CE7980F903708F052C00D +:102E30008F770E94421041C00E5F1F4FFE018491A8 +:102E400090E2980F983050F48770FE2D01C0FF0F6C +:102E50008A95EAF78F2F0E947D1914C00E947A0F7D +:102E60002DC00E5F1F4FFE01849190E2980F9830A5 +:102E700060F48770FE2D01C0FF0F8A95EAF78F2F4F +:102E80000E9483190E94A41919C00E94421016C002 +:102E90000E5F1F4FFE01C491CC2381F08FE99FE0AC +:102EA0000197F1F700C00000C150F6CF0E5F1F4F31 +:102EB000FE01F49003C00E947A0F8E018F2D8823AB +:102EC00009F49FCFEFE9FFE03197F1F700C0000070 +:102ED0008150F5CFDF91CF911F910F91FF90EF902F +:102EE000089508956093B5017093B6018093B7017A +:102EF0009093B8010C94A9130F931F930091B501FF +:102F00001091B6012091B7013091B801DC01CB01DD +:102F1000802B912BA22BB32B8093B5019093B601FC +:102F2000A093B701B093B8011F910F910C94A9130E +:102F30000F931F930091B5011091B6012091B70135 +:102F40003091B801DC01CB0180239123A223B3236C +:102F50008093B5019093B601A093B701B093B801E7 +:102F60001F910F910C94A9130F931F930091B5011A +:102F70001091B6012091B7013091B801DC01CB016D +:102F800080279127A227B3278093B5019093B6019C +:102F9000A093B701B093B8011F910F910C94A9139E +:102FA0001092B1011092B2011092B3011092B401CB +:102FB0000C94A91341E050E060E070E004C0440FBD +:102FC000551F661F771F8A95D2F74093B101509322 +:102FD000B2016093B3017093B4010C94A91341E062 +:102FE00050E060E070E004C0440F551F661F771F7B +:102FF0008A95D2F78091B1019091B201A091B3016D +:10300000B091B401482B592B6A2B7B2B4093B10113 +:103010005093B2016093B3017093B4010C94A9135F +:1030200041E050E060E070E004C0440F551F661FAF +:10303000771F8A95D2F7409550956095709580914D +:10304000B1019091B201A091B301B091B4014823B4 +:1030500059236A237B234093B1015093B2016093BB +:10306000B3017093B4010C94A91341E050E060E007 +:1030700070E004C0440F551F661F771F8A95D2F772 +:103080008091B1019091B201A091B301B091B401CE +:10309000482759276A277B274093B1015093B201F3 +:1030A0006093B3017093B4010C94A9130F931F9311 +:1030B0000091B1011091B2012091B3013091B4019E +:1030C000DC01CB01802B912BA22BB32B8093B10180 +:1030D0009093B201A093B301B093B4011F910F91EB +:1030E0000C94A9130F931F930091B1011091B20199 +:1030F0002091B3013091B401DC01CB0180239123F5 +:10310000A223B3238093B1019093B201A093B301A2 +:10311000B093B4011F910F910C94A9130F931F93B7 +:103120000091B1011091B2012091B3013091B4012D +:10313000DC01CB0180279127A227B3278093B1011F +:103140009093B201A093B301B093B4011F910F917A +:103150000C94A9130895CF92DF92EF92FF920F93F0 +:103160001F93CF93DF938C01C090B101D090B20137 +:10317000E090B301F090B4018091B5019091B60157 +:10318000A091B701B091B801C82AD92AEA2AFB2A2E +:10319000CFE1D0E0D701C6010C2E04C0B695A795AB +:1031A000979587950A94D2F780FF07C0B8018C2FB6 +:1031B0000E9409068130910531F4219758F7B80132 +:1031C00080E00E940906DF91CF911F910F91FF903F +:1031D000EF90DF90CF90089590910C019923F1F03A +:1031E00090910D019923D1F0982F969596959695EB +:1031F0009F3080F5E0910E01F0910F01E90FF11D74 +:10320000877021E030E0A90102C0440F551F8A9564 +:10321000E2F7CA019181892B8183089520910E01E3 +:1032200030910F01F90132969FEF40E051918517DF +:1032300089F09F3F19F4511101C0942F4F5F4E3018 +:10324000A9F79F3F39F0F901E90FF11D97FDFA95B4 +:1032500082830895089590910C019923F9F090913B +:103260000D019923D9F0982F9695969596959F30B4 +:1032700028F5E0910E01F0910F01E90FF11D877023 +:1032800021E030E0A90102C0440F551F8A95E2F702 +:10329000CA018095918189238183089520910E012F +:1032A00030910F01F9013296205F3F4F90818913D1 +:1032B00001C010823196E217F307C1F7089581E04B +:1032C00090E0E0910E01F0910F01E80FF91F1082DC +:1032D000019680319105A9F708959091CB01892B32 +:1032E0008093CB01089580959091CB0189238093A1 +:1032F000CB0108951092CB0108959091CA01892BBA +:103300008093CA01089580959091CA018923809382 +:10331000CA0108951092CA0108958093B9010895D1 +:103320001092B901089580910E0190910F01FC0156 +:1033300031969C01205F3F4F80E0919191118F5F0A +:10334000E217F307D1F70895E0910E01F0910F0114 +:103350008091CB018083E0910E01F0910F0190816B +:103360008091CA01892B80838091B901882361F003 +:10337000E0910E01F0910F019081892B80830E94D2 +:10338000931981111092B90180910E0190910F0152 +:103390000C945E0ECF92DF92EF92FF926C01EE24BE +:1033A000FF24C114D104E104F10421F0C701B601E6 +:1033B00020E101C020E0C72ED82EE92EFF24C11441 +:1033C000D104E104F10419F0285FC701B6016B01D3 +:1033D0007C0154E0F694E794D794C7945A95D1F7BA +:1033E000C114D104E104F10419F02C5FC701B60146 +:1033F0006B017C0142E0F694E794D794C7944A9518 +:10340000D1F7C114D104E104F10419F02E5FC70112 +:10341000B601DC01CB01B695A79597958795892BC9 +:103420008A2B8B2B09F02F5F822FFF90EF90DF907C +:10343000CF9008958091E401843011F120E488E177 +:1034400090E00FB6F894A895809360000FBE20938B +:10345000600083B7817F846083BF83B7816083BF4F +:103460007894889583B78E7F83BF0FB6F894A8951C +:1034700080916000886180936000109260000FBEB0 +:10348000089508950C94411ACF930E94421A0E9405 +:1034900028040E94411AC0E08C2F0E941E05811151 +:1034A00004C0CF5FCE30C1F701C081E0CF91089555 +:1034B0000E94BB130E94520E0C94480782E084BD08 +:1034C00093E095BD9AEF97BD80936E0008952FB756 +:1034D000F8948091CD019091CE01A091CF01B0914F +:1034E000D0012FBF0895CF92DF92EF92FF920F93FA +:1034F0001F932FB7F8944091CD015091CE01609168 +:10350000CF017091D0012FBF6A017B01EE24FF240F +:103510008C0120E030E0C016D106E206F30610F47C +:10352000415051099A01281B390BC9011F910F9174 +:10353000FF90EF90DF90CF9008951F920F920FB6FB +:103540000F9211248F939F93AF93BF938091CD01DE +:103550009091CE01A091CF01B091D0010196A11D13 +:10356000B11D8093CD019093CE01A093CF01B09374 +:10357000D001BF91AF919F918F910F900FBE0F908F +:103580001F9018950E944A0BF8942FEF87EA91E656 +:10359000215080409040E1F700C0000087E090EBB0 +:1035A000DC018093ED019093EE01A093EF01B093C5 +:1035B000F0019CE088E10FB6F894A8958093600034 +:1035C0000FBE90936000FFCFEF92FF920F931F9377 +:1035D000CF93DF93D82FC0E08C2F0E941E0500E010 +:1035E00010E0E82EF12CC701002E02C095958795BA +:1035F0000A94E2F780FD06C00F5F1F4F06301105E9 +:1036000091F709C0602F7C2F80E00E94E6058D13A2 +:10361000F3CF81E004C0CF5FCE30F1F680E0DF91E0 +:10362000CF911F910F91FF90EF900895CF93C82FE6 +:103630008CE20E94E41A882321F08C2FCF910C9405 +:10364000E41A80E0CF910895CF930E946B1C811102 +:1036500002C00E94511CC5E6C15049F00E942804D6 +:103660008FE39CE90197F1F700C00000F5CF89E2F4 +:103670000E94161B811113C18AE20E94161B811140 +:103680000E94511C85E00E94161B81110E94C21AE3 +:103690000E94761C8093CC0187E00E94161B882331 +:1036A000A9F18BE10E94161B882351F08091CC0177 +:1036B00081FB222720F991E0922790FB81F90EC02F +:1036C0008EE00E94161B882361F08091CC0182FB62 +:1036D000222720F991E0922790FB82F98093CC0178 +:1036E00015C080E10E94161B9091CC01882341F007 +:1036F00093FB222720F981E0822780FB93F904C005 +:10370000892F809580FB90F99093CC018091CC011A +:103710000E947A1C0E94881C8093DE0180EE0E9429 +:10372000161B882341F08091DE01982F909590FB25 +:1037300080F98093DE0189E30E94161B882359F0EB +:103740008091DE0181FB222720F991E0922790FBF6 +:1037500081F98093DE0182EE0E94161B882359F0C6 +:103760008091DE0182FB222720F991E0922790FBD5 +:1037700082F98093DE0186EE0E94161B882359F0A1 +:103780008091DE0183FB222720F991E0922790FBB4 +:1037900083F98093DE0183EE0E94161B882359F083 +:1037A0008091DE0184FB222720F991E0922790FB93 +:1037B00084F98093DE0185E30E94161B882359F06B +:1037C0008091DE0185FB222720F991E0922790FB72 +:1037D00085F98093DE0181E30E94161B882359F04E +:1037E0008091DE0186FB222720F991E0922790FB51 +:1037F00086F98093DE0181E10E94161B882359F02F +:103800008091DE0187FB222720F991E0922790FB2F +:1038100087F98093DE018091DE010E948C1C8091EB +:10382000DE0187FB882780F980930D0187E20E94E3 +:10383000161BC82F8EE10E94161B8111C2608FE1FA +:103840000E94161B8111C46080E20E94161B811128 +:10385000C86081E20E94161B8111C06182E20E9451 +:10386000161B8111C06283E20E94161B8111C06485 +:1038700084E20E94161B882311F0C06802C0CC238A +:1038800029F08C2F0E94831C6C2F03C00E947F1C88 +:10389000682F70E080E090E0CF910C947217CF9188 +:1038A00008956DEE7EEF80E090E00E94C52260E01A +:1038B00082E090E00E94B72260E083E090E00E9406 +:1038C000B72260E084E090E00E94B72260E085E0EB +:1038D00090E00C94B72280E090E00E94B12221E0B9 +:1038E0008D3E9E4F09F020E0822F089582E090E007 +:1038F0000C94A922682F82E090E00C94B72283E018 +:1039000090E00C94A922682F83E090E00C94B722F9 +:1039100084E090E00C94A922682F84E090E00C945D +:10392000B7228091D30180FF0BC06091130185E025 +:10393000689FB001112475956795759567952BC0A3 +:1039400081FF09C06091130185E0689FB0011124D7 +:103950007595679520C082FF07C06091130185E0CF +:10396000689FB001112417C09091D4019923D1F020 +:1039700060911201961788F72091130185E0289F26 +:1039800090011124929FA001939F500D112470E08B +:10399000CA010E947B226038710540F461157105EF +:1039A00019F406C065E070E0862F08958FE708954A +:1039B00081E008958091D30180FF08C060911101DA +:1039C00070E0759567957595679521C081FF06C074 +:1039D0006091110170E07595679519C082FF04C070 +:1039E0006091110170E010C09091D401992399F079 +:1039F000609110019617A0F780911101899FC00175 +:103A0000112470E00E947B226038710540F461153A +:103A1000710519F406C061E070E0862F08958FE704 +:103A2000089581E00895803F21F40E94911C8195C2 +:103A300004C0813F29F40E94911C8093D70108950E +:103A4000823F21F40E94911C819504C0833F29F498 +:103A50000E94911C8093D6010895893F19F40E9419 +:103A6000DA1C05C08A3F31F40E94DA1C81958093EC +:103A7000D80108958B3F21F40E94DA1C819504C07F +:103A80008C3F29F40E94DA1C8093D9010895843F69 +:103A900021F48091D501816017C0853F21F4809188 +:103AA000D501826011C0863F21F48091D5018460E8 +:103AB0000BC0873F21F48091D501886005C0883F05 +:103AC00031F48091D50180618093D50108958D3FB7 +:103AD00021F48091D30181600BC08E3F21F480914D +:103AE000D301826005C08F3F29F48091D3018460A7 +:103AF0008093D3010895803F39F48091D70187FFE7 +:103B00006CC01092D70169C0813F29F48091D70120 +:103B10001816BCF362C09091D601823F29F497FF3A +:103B20005CC01092D60159C0833F19F41916CCF32A +:103B300054C0893F41F48091D80118160CF04DC053 +:103B40001092D8014AC08A3F29F48091D80187FF9A +:103B500044C0F6CF8B3F39F48091D90187FF3DC037 +:103B60001092D9013AC08C3F29F48091D9011816DE +:103B7000BCF333C0843F21F48091D5018E7F17C000 +:103B8000853F21F48091D5018D7F11C0863F21F4BE +:103B90008091D5018B7F0BC0873F21F48091D501A7 +:103BA000877F05C0883F31F48091D5018F7E809357 +:103BB000D50113C08D3F21F48091D3018E7F0BC0BE +:103BC0008E3F21F48091D3018D7F05C08F3F29F472 +:103BD0008091D3018B7F8093D3018091D601811195 +:103BE0000EC08091D70181110AC08091D801811146 +:103BF00006C08091D901811102C01092D4010895AC +:103C000085ED91E00E94690E0E94671A9093D2019F +:103C10008093D10108951F93CF93DF938091D101B9 +:103C20009091D2010E94731AAC019091D401992312 +:103C300021F02091140130E006C0209115018AE0A6 +:103C4000289F900111244217530708F485C08091E2 +:103C5000D601C091D701D091D8011091D90181111D +:103C600007C0C11175C0D11173C0111171C074C0EA +:103C70009F3F19F09F5F9093D401181624F40E947F +:103C8000911C8093D6018091D60187FF05C00E94C8 +:103C9000911C81958093D6011C1624F40E94911CDE +:103CA0008093D7018091D70187FF05C00E94911CA6 +:103CB00081958093D7016091D601662331F1C0913F +:103CC000D701CC2311F1062E000C770B880B990B32 +:103CD0000E94822123E333E343E35FE30E94E62172 +:103CE0000E944A216093D6016C2FCC0F770B880B72 +:103CF000990B0E94822123E333E343E35FE30E94B5 +:103D0000E6210E944A216093D7011D1624F40E94E7 +:103D1000DA1C8093D8018091D80187FF05C00E94EA +:103D2000DA1C81958093D801111624F40E94DA1CC4 +:103D30008093D9018091D90187FF05C00E94DA1CC8 +:103D400081958093D901DF91CF911F910C94001E32 +:103D50009F3F09F08FCFA0CFDF91CF911F910895A2 +:103D6000E5EDF1E085E0DF011D928A95E9F710921B +:103D7000D4011092D3010895833081F128F4813069 +:103D800059F08230D1F00895853009F449C0B8F176 +:103D9000863009F456C0089580911501262F30E031 +:103DA000280F311D2F3F310524F4680F6093150152 +:103DB00008958FEF80931501089580911401262FA7 +:103DC00030E0280F311D2F3F310524F4680F609338 +:103DD000140108958FEF80931401089580911301C9 +:103DE000262F30E0280F311D2F3F310524F4680FB6 +:103DF0006093130108958FEF8093130108958091CC +:103E00001201262F30E0280F311D2F3F310524F4F9 +:103E1000680F6093120108958FEF80931201089547 +:103E200080911101262F30E0280F311D2F3F3105E1 +:103E300024F4680F6093110108958FEF80931101AE +:103E4000089580911001262F30E0280F311D2F3F5B +:103E5000310524F4680F6093100108958FEF80936B +:103E600010010895833011F128F4813049F0823037 +:103E700091F00895853081F120F18630C1F10895E7 +:103E800080911501681720F4861B80931501089511 +:103E900010921501089580911401681720F4861B73 +:103EA00080931401089510921401089580911301D4 +:103EB000681720F4861B8093130108951092130154 +:103EC000089580911201681720F4861B80931201D7 +:103ED000089510921201089580911101681720F43D +:103EE000861B80931101089510921101089580910D +:103EF0001001681720F4861B80931001089510921A +:103F0000100108950F931F938D3109F46BC008F0D1 +:103F10003FC08E3009F47DC0C0F4873009F46EC014 +:103F200068F4863009F0AFC08091CC01817F8E7F2C +:103F30008093CC0181E08093DB01A6C0883009F436 +:103F400058C08B3009F49BC09EC0863109F497C0DD +:103F500078F4803109F470C0813109F094C00E9476 +:103F6000BB1390910D0181E0892780930D0187C0DB +:103F7000893109F484C08B3109F085C08091CC016E +:103F800081FB222720F991E0922790FB81F94AC01A +:103F9000853309F45BC048F4873209F457C008F44C +:103FA0005AC0893209F452C06EC0833438F48A335F +:103FB00008F067C0883309F462C065C0833409F42F +:103FC00045C0883409F05FC00E94BB130FEF13EDAA +:103FD00020E3015010402040E1F700C000000E94A3 +:103FE000C21A4DC00E9404210E94520E0E9448072E +:103FF00046C00E94761C0E94881C41C09091CC0152 +:10400000892F817090FF12C0917F9E7F9093CC0189 +:104010003BC08091CC0182FB222720F991E09227BE +:1040200090FB82F98093CC01992349F18091CC01D6 +:1040300081608093CC0123C08091CC0183FB222737 +:1040400020F991E0922790FB83F9ECCF61E070E0DA +:1040500080E090E010C08D5141E050E060E070E001 +:104060008A019B0104C0000F111F221F331F8A9574 +:10407000D2F7C901B8010E9472170E94BB1381E0F8 +:1040800003C08953E9CF80E01F910F91089580E02C +:1040900008950C944720CF93C82F8091DB01813085 +:1040A00079F018F08230E9F187C0E0910E01F091CB +:1040B0000F018081813169F0823209F07FC009C02F +:1040C000E0910E01F0910F018081813111F0823277 +:1040D00061F48C2F0E944920811104C08C2F0E9412 +:1040E000821F1DC081E090E01AC08C2F0E944720E3 +:1040F000811114C0C43179F048F4CB3079F0C0316B +:1041000009F060C082E08093DB0108C0C93219F079 +:10411000C83321F057C01092DB0154C081E0817098 +:1041200053C0C93289F118F5C43171F1A8F4C73010 +:1041300009F046C08AE08093150194E19093140140 +:1041400093E0909313018093120188E08093110112 +:1041500088E28093100134C0CE51C63088F5EC2F30 +:10416000F0E0E65DFE4F80818093DA0129C0CE3415 +:10417000E9F020F4CB3421F56AE013C0C13579F0C1 +:10418000C235F1F461E00DC08091DA01882319F0A5 +:104190001092DA0115C081E08093DB0115C061E067 +:1041A00006C08091DA010E94BC1E0AC06AE08091BC +:1041B000DA010E94321F04C01092DB0180E004C0CB +:1041C00081E002C080E0ABCFCF910895E1E8F0E05C +:1041D0008081886080838081816080838FB7F8943C +:1041E00093E09093890090ED909388008FBF08959D +:1041F000EFE6F0E08081826080830895EFE6F0E0F2 +:1042000080818D7F80830895EFE6F0E0908182E0E9 +:104210008927808308951F920F920FB60F92112461 +:104220002F933F934F935F936F937F938F939F93BE +:10423000AF93BF93EF93FF938091DC019091DD01E9 +:1042400001969093DD018093DC01811103C082E02F +:104250000E944807E091DD01E695E695F0E0E6571B +:10426000FB4FE4918091DC018E1303C080E00E943B +:104270004807FF91EF91BF91AF919F918F917F91EF +:104280006F915F914F913F912F910F900FBE0F90C3 +:104290001F9018950E9451216894B1110C94E0214F +:1042A00008950E94C52188F09F5798F0B92F99274B +:1042B000B751B0F0E1F0660F771F881F991F1AF011 +:1042C000BA95C9F714C0B13091F00E94DF21B1E076 +:1042D00008950C94DF21672F782F8827B85F39F075 +:1042E000B93FCCF3869577956795B395D9F73EF4AA +:1042F00090958095709561957F4F8F4F9F4F089552 +:10430000E89409C097FB3EF490958095709561956F +:104310007F4F8F4F9F4F9923A9F0F92F96E9BB2725 +:104320009395F695879577956795B795F111F8CFA1 +:10433000FAF4BB0F11F460FF1BC06F5F7F4F8F4F0C +:104340009F4F16C0882311F096E911C0772321F002 +:104350009EE8872F762F05C0662371F096E8862F9A +:1043600070E060E02AF09A95660F771F881FDAF7F1 +:10437000880F9695879597F9089557FD9058440FA3 +:10438000551F59F05F3F71F04795880F97FB991FB4 +:1043900061F09F3F79F08795089512161306140671 +:1043A000551FF2CF4695F1DF08C0161617061806FE +:1043B000991FF1CF86957105610508940895E894D9 +:1043C000BB2766277727CB0197F908950E94F9212B +:1043D0000C946A220E945C2238F00E94632220F032 +:1043E000952311F00C9453220C94592211240C940F +:1043F000E0210E94BD2170F3959FC1F3950F50E01D +:10440000551F629FF001729FBB27F00DB11D639F86 +:10441000AA27F00DB11DAA1F649F6627B00DA11D2C +:10442000661F829F2227B00DA11D621F739FB00DD2 +:10443000A11D621F839FA00D611D221F749F332742 +:10444000A00D611D231F849F600D211D822F762FDB +:104450006A2F11249F5750409AF0F1F088234AF0B8 +:10446000EE0FFF1FBB1F661F771F881F9150504024 +:10447000A9F79E3F510580F00C9453220C94E02143 +:104480005F3FE4F3983ED4F3869577956795B795AB +:10449000F795E7959F5FC1F7FE2B880F911D9695C5 +:1044A000879597F9089597F99F6780E870E060E035 +:1044B00008959FEF80EC089500240A9416161706BD +:1044C00018060906089500240A9412161306140605 +:1044D00005060895092E0394000C11F4882352F068 +:1044E000BB0F40F4BF2B11F460FF04C06F5F7F4F20 +:1044F0008F4F9F4F089597FB072E16F4009407D017 +:1045000077FD09D00E94952207FC05D03EF49095D6 +:1045100081959F4F0895709561957F4F0895EE0F97 +:10452000FF1F0590F491E02D0994AA1BBB1B51E1DC +:1045300007C0AA1FBB1FA617B70710F0A61BB70B13 +:10454000881F991F5A95A9F780959095BC01CD01B8 +:104550000895F999FECF92BD81BDF89A992780B54B +:104560000895A8E1B0E042E050E00C94CC22262F60 +:10457000F999FECF1FBA92BD81BD20BD0FB6F89448 +:10458000FA9AF99A0FBE019608950E94B722272F32 +:104590000C94B822DC01CB01FC01F999FECF06C0D6 +:1045A000F2BDE1BDF89A319600B40D9241505040F1 +:0845B000B8F70895F894FFCF5D +:1045B80020024907D907B40780074C070101BA014F +:1045C80028080A03140A3F4D36394B04FE03C80372 +:1045D8008F0322033B0354036D0301020304050602 +:0445E80007080900B7 +:00000001FF diff --git a/keyboard/ergodox_ez/keymaps/german-kinergo/keymap.c b/keyboard/ergodox_ez/keymaps/german-kinergo/keymap.c new file mode 100644 index 0000000000..572e03a1d5 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/german-kinergo/keymap.c @@ -0,0 +1,210 @@ +// German keymap derived from "german", but more closely resembling the German layout of the Kinesis Ergo Elan. +// +// chschmitz, 2016-01-27 +#include "ergodox_ez.h" +#include "debug.h" +#include "action_layer.h" +#include "keymap_extras/keymap_german.h" + +// Layer names +#define BASE 0 // default layer +#define SYMB 1 // symbol layer +#define MDIA 2 // media keys + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Keymap 0: Basic layer + * + * X'es mark the spots where this is different from the "german" layout which it is based on. + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * |X Esc X| 1 | 2 | 3 | 4 | 5 |X ` X| |XPRSCX| 6 | 7 | 8 | 9 | 0 | ß | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * |X Tab X| Q | W | E | R | T |X L1 X| |X L1 X| Z | U | I | O | P | Ü | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | Caps | A | S | D | F | G |------| |------| H | J | K | L | Ö | Ä/L2 | + * |--------+------+------+------+------+------|X L2 X| |X L2 X|------+------+------+------+------+--------| + * | LShift | Y | X | C | V | B | | | | N | M | , | . |X - X| RShift | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * |XLGuiX|X ^ X|X < X|XLEFTX|XRIGHT| |XDownX|X Up X|X # X|X + X|XRGuiX| + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * |XCTRLX|XALTX | | Alt |Ctrl/Esc| + * ,------+------+------| |------+--------+------. + * |XXX |XXX | Home | | PgUp |XXX |XXX | + * | Bkspc|Del |------| |------| Enter | Space| + * | | | End | | PgDn | | | + * `--------------------' `----------------------' + */ +// If it accepts an argument (i.e, is a function), it doesn't need KC_. +// Otherwise, it needs KC_* +[BASE] = KEYMAP( // layer 0 : default + // left hand + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, DE_ACUT, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, MO(1), + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, + KC_LSFT, DE_Y, KC_X, KC_C, KC_V, KC_B, MO(2), + KC_LGUI, DE_CIRC, DE_LESS, KC_LEFT, KC_RIGHT, + KC_LCTRL, KC_LALT, + KC_HOME, + KC_BSPC,KC_DELT,KC_END, + // right hand + KC_PSCREEN, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + MO(1), DE_Z, KC_U, KC_I, KC_O, KC_P, DE_UE, + KC_H, KC_J, KC_K, KC_L, DE_OE, LT(MDIA,DE_AE), + MO(2), KC_N, KC_M, KC_COMM, KC_DOT, DE_MINS, KC_RSFT, + KC_DOWN, KC_UP, DE_HASH, DE_PLUS, KC_RGUI, + KC_RALT, KC_RCTRL, + KC_PGUP, + KC_PGDN, KC_ENT, KC_SPC + ), +// [BASE] = KEYMAP( // layer 0 : default +// // left hand +// KC_CIRC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_MPLY, +// KC_DELT, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(1), +// KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, +// KC_LSFT, DE_Y, KC_X, KC_C, KC_V, KC_B, ALL_T(KC_NO), +// LT(SYMB,DE_LESS),CTL_T(DE_HASH), DE_ACUT, DE_MINS, DE_PLUS, +// ALT_T(KC_APP), KC_LGUI, +// KC_HOME, +// KC_SPC,KC_BSPC,KC_END, +// // right hand +// KC_MNXT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, +// TG(2), DE_Z, KC_U, KC_I, KC_O, KC_P, DE_UE, +// KC_H, KC_J, KC_K, KC_L, DE_OE, LT(MDIA,DE_AE), +// MEH_T(KC_NO),KC_N, KC_M, KC_COMM, KC_DOT, CTL_T(DE_MINS), KC_RSFT, +// KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_FN1, +// KC_LALT,CTL_T(KC_ESC), +// KC_PGUP, +// KC_PGDN,KC_TAB, KC_ENT +// ), +/* Keymap 1: Symbol Layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | ! | @ | { | } | | | | | | Up | 7 | 8 | 9 | * | F12 | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | # | $ | ( | ) | ` |------| |------| Down | 4 | 5 | 6 | + | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | \ | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | | . | 0 | = | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// SYMBOLS +[SYMB] = KEYMAP( + // left hand + KC_TRNS,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS, + KC_TRNS,DE_EXLM,DE_AT, DE_LCBR,DE_RCBR,DE_PIPE,KC_TRNS, + KC_TRNS,DE_HASH,DE_DLR, DE_LPRN,DE_RPRN,DE_GRV, + KC_TRNS,DE_PERC,DE_CIRC,DE_LBRC,DE_RBRC,DE_TILD,KC_TRNS, + KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, + KC_TRNS,KC_TRNS, + KC_TRNS, + KC_TRNS,KC_TRNS,KC_TRNS, + // right hand + KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + KC_TRNS, KC_UP, KC_7, KC_8, KC_9, DE_ASTR, KC_F12, + KC_DOWN, KC_4, KC_5, KC_6, DE_PLUS, KC_TRNS, + KC_TRNS, DE_AMPR, KC_1, KC_2, KC_3, DE_BSLS, KC_TRNS, + KC_TRNS,KC_DOT, KC_0, DE_EQL, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS +), +/* Keymap 2: Media and mouse keys + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | Lclk | MsUp | Rclk | | | | | |VolDwn| Mute |VolUp | | F12 | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | Btn4 |MsLeft|MsDown|MsRght| Btn5 |------| |------| | Prev | Stop | Play | Next | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | |WhRght|WhDown| WhUp |WhLeft|WhClk | | | |BwSrch|BwBack|BwHome|BwRefr|BwFwd | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | |MsAcl0|MsAcl1|MsAcl2| | | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | |Brwser|Brwser| + * | Lclk | Rclk |------| |------|Back |Forwd | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// MEDIA AND MOUSE +[MDIA] = KEYMAP( + KC_TRNS, KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_TRNS, + KC_TRNS, KC_TRNS, KC_BTN1, KC_MS_U, KC_BTN2, KC_TRNS, KC_TRNS, + KC_TRNS, KC_BTN4, KC_MS_L, KC_MS_D, KC_MS_R, KC_BTN5, + KC_TRNS, KC_WH_L, KC_WH_D, KC_WH_U, KC_WH_R, KC_BTN3, KC_TRNS, + KC_TRNS, KC_TRNS, KC_ACL0, KC_ACL1, KC_ACL2, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_BTN1, KC_BTN2, KC_TRNS, + // right hand + KC_TRNS, KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11, + KC_TRNS, KC_TRNS, KC_VOLD, KC_MUTE, KC_VOLU, KC_TRNS, KC_F12, + KC_TRNS, KC_MPRV, KC_MSTP, KC_MPLY, KC_MNXT, KC_TRNS, + KC_TRNS, KC_WSCH, KC_WBAK, KC_WHOM, KC_WREF, KC_WFWD, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_WBAK, KC_WFWD +), +}; + +const uint16_t PROGMEM fn_actions[] = { + [1] = ACTION_LAYER_TAP_TOGGLE(SYMB) // FN1 - Momentary Layer 1 (Symbols) +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch(id) { + case 0: + if (record->event.pressed) { + register_code(KC_RSFT); + } else { + unregister_code(KC_RSFT); + } + break; + } + return MACRO_NONE; +}; + +// Runs just one time when the keyboard initializes. +void matrix_init_user(void) { + +}; + +// Runs constantly in the background, in a loop. +void matrix_scan_user(void) { + + uint8_t layer = biton32(layer_state); + + ergodox_board_led_off(); + ergodox_right_led_1_off(); + ergodox_right_led_2_off(); + ergodox_right_led_3_off(); + switch (layer) { + case SYMB: + ergodox_right_led_1_on(); + break; + case MDIA: + ergodox_right_led_2_on(); + break; + default: + ergodox_board_led_off(); + break; + } + +}; diff --git a/keyboard/ergodox_ez/keymaps/german-kinergo/layout-code.png b/keyboard/ergodox_ez/keymaps/german-kinergo/layout-code.png new file mode 100644 index 0000000000..a0ef551e12 Binary files /dev/null and b/keyboard/ergodox_ez/keymaps/german-kinergo/layout-code.png differ diff --git a/keyboard/ergodox_ez/keymaps/german-kinergo/layout-media.png b/keyboard/ergodox_ez/keymaps/german-kinergo/layout-media.png new file mode 100644 index 0000000000..56aea1dca4 Binary files /dev/null and b/keyboard/ergodox_ez/keymaps/german-kinergo/layout-media.png differ diff --git a/keyboard/ergodox_ez/keymaps/german-kinergo/layout.png b/keyboard/ergodox_ez/keymaps/german-kinergo/layout.png new file mode 100644 index 0000000000..76a1aa5d7a Binary files /dev/null and b/keyboard/ergodox_ez/keymaps/german-kinergo/layout.png differ diff --git a/keyboard/ergodox_ez/keymaps/german-kinergo/readme.md b/keyboard/ergodox_ez/keymaps/german-kinergo/readme.md new file mode 100644 index 0000000000..557d85a8a4 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/german-kinergo/readme.md @@ -0,0 +1,35 @@ +# German Layout for the ErgoDox + +This layout is inspired by the "kinesis-qwerty-mod" from benblazak's +[ergodox-firmware](https://github.com/benblazak/ergodox-firmware), as well as by the "german" layout from the +[qmk_firmware](https://github.com/jackhumbert/qmk_firmware). +The goal was to have a layout that is pretty close to an ordinary German +keyboard, so I don't have to make adjustments on the operating system level +and I keep some of the muscle memory to use a regular keyboard. + +Modifications I made with regard to the aforementioned layouts: + +* The key layout is pretty close to the layout of a German Kinesis Ergo Elan. + The only exception I made is that I reversed the "up" and "down" cursor keys, + since that feels more natural to me. + +* All layer changes are "momentary", i.e. they only last as long as the respective key is pressed. + +* I sacrificed the Hyper and Meh keys, which I don't use, and put layer change keys in their place. + +* I added a PrintScreen key which I use quite regularly for screenshots. + +## Default Layer + +![Layout of the default layer](layout.png "Layout of the default layer") + +## Code Layer + +![Layout of the code layer](layout-code.png "Layout of the code layer") + +## Media Layer + +![Layout of the media layer](layout-media.png "Layout of the media layer") + +Christoph Schmitz <schm4704 at web dot de> +2016-01-28 diff --git a/keyboard/ergodox_ez/keymaps/german-manuneo/compile_keymap.py b/keyboard/ergodox_ez/keymaps/german-manuneo/compile_keymap.py new file mode 100644 index 0000000000..7076a6ecb2 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/german-manuneo/compile_keymap.py @@ -0,0 +1,710 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +"""Compiler for keymap.c files + +This scrip will generate a keymap.c file from a simple +markdown file with a specific layout. + +Usage: + python compile_keymap.py INPUT_PATH [OUTPUT_PATH] +""" +from __future__ import division +from __future__ import print_function +from __future__ import absolute_import +from __future__ import unicode_literals + +import os +import io +import re +import sys +import json +import unicodedata +import collections +import itertools as it + +PY2 = sys.version_info.major == 2 + +if PY2: + chr = unichr + + +KEYBOARD_LAYOUTS = { + # These map positions in the parsed layout to + # positions in the KEYMAP MATRIX + 'ergodox_ez': [ + [ 0, 1, 2, 3, 4, 5, 6], [38, 39, 40, 41, 42, 43, 44], + [ 7, 8, 9, 10, 11, 12, 13], [45, 46, 47, 48, 49, 50, 51], + [14, 15, 16, 17, 18, 19 ], [ 52, 53, 54, 55, 56, 57], + [20, 21, 22, 23, 24, 25, 26], [58, 59, 60, 61, 62, 63, 64], + [27, 28, 29, 30, 31 ], [ 65, 66, 67, 68, 69], + [ 32, 33], [70, 71 ], + [ 34], [72 ], + [ 35, 36, 37], [73, 74, 75 ], + ] +} + +ROW_INDENTS = { + 'ergodox_ez': [0, 0, 0, 0, 0, 1, 0, 0, 0, 2, 5, 0, 6, 0, 4, 0] +} + +BLANK_LAYOUTS = [ +# Compact Layout +""" +.------------------------------------.------------------------------------. +| | | | | | | | | | | | | | | +!-----+----+----+----+----+----------!-----+----+----+----+----+----+-----! +| | | | | | | | | | | | | | | +!-----+----+----+----x----x----! ! !----x----x----+----+----+-----! +| | | | | | |-----!-----! | | | | | | +!-----+----+----+----x----x----! ! !----x----x----+----+----+-----! +| | | | | | | | | | | | | | | +'-----+----+----+----+----+----------'----------+----+----+----+----+-----' + | | | | | | ! | | | | | + '------------------------' '------------------------' + .-----------. .-----------. + | | | ! | | + .-----+-----+-----! !-----+-----+-----. + ! ! | | ! | ! ! + ! ! !-----! !-----! ! ! + | | | | ! | | | + '-----------------' '-----------------' +""", + +# Wide Layout +""" +.---------------------------------------------. .---------------------------------------------. +| | | | | | | | ! | | | | | | | +!-------+-----+-----+-----+-----+-------------! !-------+-----+-----+-----+-----+-----+-------! +| | | | | | | | ! | | | | | | | +!-------+-----+-----+-----x-----x-----! ! ! !-----x-----x-----+-----+-----+-------! +| | | | | | |-------! !-------! | | | | | | +!-------+-----+-----+-----x-----x-----! ! ! !-----x-----x-----+-----+-----+-------! +| | | | | | | | ! | | | | | | | +'-------+-----+-----+-----+-----+-------------' '-------------+-----+-----+-----+-----+-------' + | | | | | | ! | | | | | + '------------------------------' '------------------------------' + .---------------. .---------------. + | | | ! | | + .-------+-------+-------! !-------+-------+-------. + ! ! | | ! | ! ! + ! ! !-------! !-------! ! ! + | | | | ! | | | + '-----------------------' '-----------------------' +""", +] + + +DEFAULT_CONFIG = { + "keymaps_includes": [ + "keymap_common.h", + ], + 'filler': "-+.'!:x", + 'separator': "|", + 'default_key_prefix': ["KC_"], +} + + +SECTIONS = [ + 'layout_config', + 'layers', +] + + +# Markdown Parsing + +ONELINE_COMMENT_RE = re.compile(r""" + ^ # comment must be at the start of the line + \s* # arbitrary whitespace + // # start of the comment + (.*) # the comment + $ # until the end of line +""", re.MULTILINE | re.VERBOSE +) + +INLINE_COMMENT_RE = re.compile(r""" + ([\,\"\[\]\{\}\d]) # anythig that might end a expression + \s+ # comment must be preceded by whitespace + // # start of the comment + \s # and succeded by whitespace + (?:[^\"\]\}\{\[]*) # the comment (except things which might be json) + $ # until the end of line +""", re.MULTILINE | re.VERBOSE) + +TRAILING_COMMA_RE = re.compile(r""" + , # the comma + (?:\s*) # arbitrary whitespace + $ # only works if the trailing comma is followed by newline + (\s*) # arbitrary whitespace + ([\]\}]) # end of an array or object +""", re.MULTILINE | re.VERBOSE) + + +def loads(raw_data): + if isinstance(raw_data, bytes): + raw_data = raw_data.decode('utf-8') + + raw_data = ONELINE_COMMENT_RE.sub(r"", raw_data) + raw_data = INLINE_COMMENT_RE.sub(r"\1", raw_data) + raw_data = TRAILING_COMMA_RE.sub(r"\1\2", raw_data) + return json.loads(raw_data) + + +def parse_config(path): + def reset_section(): + section.update({ + 'name': section.get('name', ""), + 'sub_name': "", + 'start_line': -1, + 'end_line': -1, + 'code_lines': [], + }) + + def start_section(line_index, line): + end_section() + if line.startswith("# "): + name = line[2:] + elif line.startswith("## "): + name = line[3:] + else: + name = "" + + name = name.strip().replace(" ", "_").lower() + if name in SECTIONS: + section['name'] = name + else: + section['sub_name'] = name + section['start_line'] = line_index + + def end_section(): + if section['start_line'] >= 0: + if section['name'] == 'layout_config': + config.update(loads("\n".join( + section['code_lines'] + ))) + elif section['sub_name'].startswith('layer'): + layer_name = section['sub_name'] + config['layer_lines'][layer_name] = section['code_lines'] + + reset_section() + + def amend_section(line_index, line): + section['end_line'] = line_index + section['code_lines'].append(line) + + config = DEFAULT_CONFIG.copy() + config.update({ + 'layer_lines': collections.OrderedDict(), + 'macro_ids': {'UM'}, + 'unicode_macros': {}, + }) + + section = {} + reset_section() + + with io.open(path, encoding="utf-8") as fh: + for i, line in enumerate(fh): + if line.startswith("#"): + start_section(i, line) + elif line.startswith(" "): + amend_section(i, line[4:]) + else: + # TODO: maybe parse description + pass + + end_section() + assert 'layout' in config + return config + +# header file parsing + +IF0_RE = re.compile(r""" + ^ + #if 0 + $.*? + #endif +""", re.MULTILINE | re.DOTALL | re.VERBOSE) + + +COMMENT_RE = re.compile(r""" + /\* + .*? + \*/" +""", re.MULTILINE | re.DOTALL | re.VERBOSE) + + +def read_header_file(path): + with io.open(path, encoding="utf-8") as fh: + data = fh.read() + data, _ = COMMENT_RE.subn("", data) + data, _ = IF0_RE.subn("", data) + return data + + +def regex_partial(re_str_fmt, flags): + def partial(*args, **kwargs): + re_str = re_str_fmt.format(*args, **kwargs) + return re.compile(re_str, flags) + return partial + + +KEYDEF_REP = regex_partial(r""" + #define + \s + ( + (?:{}) # the prefixes + (?:\w+) # the key name + ) # capture group end +""", re.MULTILINE | re.DOTALL | re.VERBOSE) + + +ENUM_RE = re.compile(r""" + ( + enum + \s\w+\s + \{ + .*? # the enum content + \} + ; + ) # capture group end +""", re.MULTILINE | re.DOTALL | re.VERBOSE) + + +ENUM_KEY_REP = regex_partial(r""" + ( + {} # the prefixes + \w+ # the key name + ) # capture group end +""", re.MULTILINE | re.DOTALL | re.VERBOSE) + + +def parse_keydefs(config, data): + prefix_options = "|".join(config['key_prefixes']) + keydef_re = KEYDEF_REP(prefix_options) + enum_key_re = ENUM_KEY_REP(prefix_options) + for match in keydef_re.finditer(data): + yield match.groups()[0] + + for enum_match in ENUM_RE.finditer(data): + enum = enum_match.groups()[0] + for key_match in enum_key_re.finditer(enum): + yield key_match.groups()[0] + + +def parse_valid_keys(config, out_path): + basepath = os.path.abspath(os.path.join(os.path.dirname(out_path))) + dirpaths = [] + subpaths = [] + while len(subpaths) < 6: + path = os.path.join(basepath, *subpaths) + dirpaths.append(path) + dirpaths.append(os.path.join(path, "tmk_core", "common")) + dirpaths.append(os.path.join(path, "quantum")) + subpaths.append('..') + + includes = set(config['keymaps_includes']) + includes.add("keycode.h") + + valid_keycodes = set() + for dirpath, include in it.product(dirpaths, includes): + include_path = os.path.join(dirpath, include) + if os.path.exists(include_path): + header_data = read_header_file(include_path) + valid_keycodes.update( + parse_keydefs(config, header_data) + ) + return valid_keycodes + + +# Keymap Parsing + +def iter_raw_codes(layer_lines, filler, separator): + filler_re = re.compile("[" + filler + " ]") + for line in layer_lines: + line, _ = filler_re.subn("", line.strip()) + if not line: + continue + codes = line.split(separator) + for code in codes[1:-1]: + yield code + + +def iter_indexed_codes(raw_codes, key_indexes): + key_rows = {} + key_indexes_flat = [] + + for row_index, key_indexes in enumerate(key_indexes): + for key_index in key_indexes: + key_rows[key_index] = row_index + key_indexes_flat.extend(key_indexes) + assert len(raw_codes) == len(key_indexes_flat) + for raw_code, key_index in zip(raw_codes, key_indexes_flat): + # we keep track of the row mostly for layout purposes + yield raw_code, key_index, key_rows[key_index] + + +LAYER_CHANGE_RE = re.compile(r""" + (DF|TG|MO)\(\d+\) +""", re.VERBOSE) + + +MACRO_RE = re.compile(r""" + M\(\w+\) +""", re.VERBOSE) + + +UNICODE_RE = re.compile(r""" + U[0-9A-F]{4} +""", re.VERBOSE) + + +NON_CODE = re.compile(r""" + ^[^A-Z0-9_]$ +""", re.VERBOSE) + + +def parse_uni_code(raw_code): + macro_id = "UC_" + ( + unicodedata.name(raw_code) + .replace(" ", "_") + .replace("-", "_") + ) + code = "M({})".format(macro_id) + uc_hex = "{:04X}".format(ord(raw_code)) + return code, macro_id, uc_hex + + +def parse_key_code(raw_code, key_prefixes, valid_keycodes): + if raw_code in valid_keycodes: + return raw_code + + for prefix in key_prefixes: + code = prefix + raw_code + if code in valid_keycodes: + return code + + +def parse_code(raw_code, key_prefixes, valid_keycodes): + if not raw_code: + return 'KC_TRNS', None, None + + if LAYER_CHANGE_RE.match(raw_code): + return raw_code, None, None + + if MACRO_RE.match(raw_code): + macro_id = raw_code[2:-1] + return raw_code, macro_id, None + + if UNICODE_RE.match(raw_code): + hex_code = raw_code[1:] + return parse_uni_code(chr(int(hex_code, 16))) + + if NON_CODE.match(raw_code): + return parse_uni_code(raw_code) + + code = parse_key_code(raw_code, key_prefixes, valid_keycodes) + return code, None, None + + +def parse_keymap(config, key_indexes, layer_lines, valid_keycodes): + keymap = {} + raw_codes = list(iter_raw_codes( + layer_lines, config['filler'], config['separator'] + )) + indexed_codes = iter_indexed_codes(raw_codes, key_indexes) + key_prefixes = config['key_prefixes'] + for raw_code, key_index, row_index in indexed_codes: + code, macro_id, uc_hex = parse_code( + raw_code, key_prefixes, valid_keycodes + ) + # TODO: line numbers for invalid codes + err_msg = "Could not parse key '{}' on row {}".format( + raw_code, row_index + ) + assert code is not None, err_msg + # print(repr(raw_code), repr(code), macro_id, uc_hex) + if macro_id: + config['macro_ids'].add(macro_id) + if uc_hex: + config['unicode_macros'][macro_id] = uc_hex + keymap[key_index] = (code, row_index) + return keymap + + +def parse_keymaps(config, valid_keycodes): + keymaps = collections.OrderedDict() + key_indexes = config.get( + 'key_indexes', KEYBOARD_LAYOUTS[config['layout']] + ) + # TODO: maybe validate key_indexes + + for layer_name, layer_lines, in config['layer_lines'].items(): + keymaps[layer_name] = parse_keymap( + config, key_indexes, layer_lines, valid_keycodes + ) + return keymaps + +# keymap.c output + +USERCODE = """ +// Runs just one time when the keyboard initializes. +void matrix_init_user(void) { + +}; + +// Runs constantly in the background, in a loop. +void matrix_scan_user(void) { + uint8_t layer = biton32(layer_state); + + ergodox_board_led_off(); + ergodox_right_led_1_off(); + ergodox_right_led_2_off(); + ergodox_right_led_3_off(); + switch (layer) { + case L1: + ergodox_right_led_1_on(); + break; + case L2: + ergodox_right_led_2_on(); + break; + case L3: + ergodox_right_led_3_on(); + break; + case L4: + ergodox_right_led_1_on(); + ergodox_right_led_2_on(); + break; + case L5: + ergodox_right_led_1_on(); + ergodox_right_led_3_on(); + break; + // case L6: + // ergodox_right_led_2_on(); + // ergodox_right_led_3_on(); + // break; + // case L7: + // ergodox_right_led_1_on(); + // ergodox_right_led_2_on(); + // ergodox_right_led_3_on(); + // break; + default: + ergodox_board_led_off(); + break; + } +}; +""" + +MACROCODE = """ +#define UC_MODE_WIN 0 +#define UC_MODE_LINUX 1 +#define UC_MODE_OSX 2 + +// TODO: allow default mode to be configured +static uint16_t unicode_mode = UC_MODE_WIN; + +uint16_t hextokeycode(uint8_t hex) {{ + if (hex == 0x0) {{ + return KC_P0; + }} + if (hex < 0xA) {{ + return KC_P1 + (hex - 0x1); + }} + return KC_A + (hex - 0xA); +}} + +void unicode_action_function(uint16_t hi, uint16_t lo) {{ + switch (unicode_mode) {{ + case UC_MODE_WIN: + register_code(KC_LALT); + + register_code(KC_PPLS); + unregister_code(KC_PPLS); + + register_code(hextokeycode((hi & 0xF0) >> 4)); + unregister_code(hextokeycode((hi & 0xF0) >> 4)); + register_code(hextokeycode((hi & 0x0F))); + unregister_code(hextokeycode((hi & 0x0F))); + register_code(hextokeycode((lo & 0xF0) >> 4)); + unregister_code(hextokeycode((lo & 0xF0) >> 4)); + register_code(hextokeycode((lo & 0x0F))); + unregister_code(hextokeycode((lo & 0x0F))); + + unregister_code(KC_LALT); + break; + case UC_MODE_LINUX: + register_code(KC_LCTL); + register_code(KC_LSFT); + + register_code(KC_U); + unregister_code(KC_U); + + register_code(hextokeycode((hi & 0xF0) >> 4)); + unregister_code(hextokeycode((hi & 0xF0) >> 4)); + register_code(hextokeycode((hi & 0x0F))); + unregister_code(hextokeycode((hi & 0x0F))); + register_code(hextokeycode((lo & 0xF0) >> 4)); + unregister_code(hextokeycode((lo & 0xF0) >> 4)); + register_code(hextokeycode((lo & 0x0F))); + unregister_code(hextokeycode((lo & 0x0F))); + + unregister_code(KC_LCTL); + unregister_code(KC_LSFT); + break; + case UC_MODE_OSX: + break; + }} +}} + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {{ + if (!record->event.pressed) {{ + return MACRO_NONE; + }} + // MACRODOWN only works in this function + switch(id) {{ + case UM: + unicode_mode = (unicode_mode + 1) % 2; + break; +{macro_cases} +{unicode_macro_cases} + default: + break; + }} + return MACRO_NONE; +}}; +""" + + +UNICODE_MACRO_TEMPLATE = """ +case {macro_id}: + unicode_action_function(0x{hi:02x}, 0x{lo:02x}); + break; +""".strip() + + +def unicode_macro_cases(config): + for macro_id, uc_hex in config['unicode_macros'].items(): + hi = int(uc_hex, 16) >> 8 + lo = int(uc_hex, 16) & 0xFF + unimacro_keys = ", ".join( + "T({})".format( + "KP_" + digit if digit.isdigit() else digit + ) for digit in uc_hex + ) + yield UNICODE_MACRO_TEMPLATE.format( + macro_id=macro_id, hi=hi, lo=lo + ) + + +def iter_keymap_lines(keymap, row_indents=None): + col_widths = {} + col = 0 + # first pass, figure out the column widths + prev_row_index = None + for code, row_index in keymap.values(): + if row_index != prev_row_index: + col = 0 + if row_indents: + col = row_indents[row_index] + col_widths[col] = max(len(code), col_widths.get(col, 0)) + prev_row_index = row_index + col += 1 + + # second pass, yield the cell values + col = 0 + prev_row_index = None + for key_index in sorted(keymap): + code, row_index = keymap[key_index] + if row_index != prev_row_index: + col = 0 + yield "\n" + if row_indents: + for indent_col in range(row_indents[row_index]): + pad = " " * (col_widths[indent_col] - 4) + yield (" /*-*/" + pad) + col = row_indents[row_index] + else: + yield pad + yield " {}".format(code) + if key_index < len(keymap) - 1: + yield "," + # This will be yielded on the next iteration when + # we know that we're not at the end of a line. + pad = " " * (col_widths[col] - len(code)) + prev_row_index = row_index + col += 1 + + +def iter_keymap_parts(config, keymaps): + # includes + for include_path in config['keymaps_includes']: + yield '#include "{}"\n'.format(include_path) + + yield "\n" + + # definitions + for i, macro_id in enumerate(sorted(config['macro_ids'])): + yield "#define {} {}\n".format(macro_id, i) + + yield "\n" + + for i, layer_name in enumerate(config['layer_lines']): + yield '#define L{0:<3} {0:<5} // {1}\n'.format(i, layer_name) + + yield "\n" + + # keymaps + yield "const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {\n" + + for i, layer_name in enumerate(config['layer_lines']): + # comment + layer_lines = config['layer_lines'][layer_name] + prefixed_lines = " * " + " * ".join(layer_lines) + yield "/*\n{} */\n".format(prefixed_lines) + + # keymap codes + keymap = keymaps[layer_name] + row_indents = ROW_INDENTS.get(config['layout']) + keymap_lines = "".join(iter_keymap_lines(keymap, row_indents)) + yield "[L{0}] = KEYMAP({1}\n),\n".format(i, keymap_lines) + + yield "};\n\n" + + # no idea what this is for + yield "const uint16_t PROGMEM fn_actions[] = {};\n" + + # macros + yield MACROCODE.format( + macro_cases="", + unicode_macro_cases="\n".join(unicode_macro_cases(config)), + ) + + # TODO: dynamically create blinking lights + yield USERCODE + + +def main(argv=sys.argv[1:]): + if not argv or '-h' in argv or '--help' in argv: + print(__doc__) + return 0 + + in_path = os.path.abspath(argv[0]) + if not os.path.exists(in_path): + print("No such file '{}'".format(in_path)) + return 1 + + if len(argv) > 1: + out_path = os.path.abspath(argv[1]) + else: + dirname = os.path.dirname(in_path) + out_path = os.path.join(dirname, "keymap.c") + + config = parse_config(in_path) + valid_keys = parse_valid_keys(config, out_path) + keymaps = parse_keymaps(config, valid_keys) + + with io.open(out_path, mode="w", encoding="utf-8") as fh: + for part in iter_keymap_parts(config, keymaps): + fh.write(part) + + +if __name__ == '__main__': + sys.exit(main()) diff --git a/keyboard/ergodox_ez/keymaps/german-manuneo/german-manuneo.hex b/keyboard/ergodox_ez/keymaps/german-manuneo/german-manuneo.hex new file mode 100644 index 0000000000..ee1d30967d --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/german-manuneo/german-manuneo.hex @@ -0,0 +1,1240 @@ +:100000000C9412040C9456040C9456040C9456044C +:100010000C9456040C9456040C9456040C945604F8 +:100020000C9456040C9456040C944F0F0C9421100D +:100030000C9456040C9456040C9456040C945604D8 +:100040000C9456040C94D6240C9456040C94560428 +:100050000C9456040C94751E0C9456040C9456047F +:100060000C9456040C9456040C9456040C945604A8 +:100070000C9456040C9456040C9456040C94560498 +:100080000C9456040C9456040C9456040C94560488 +:100090000C9456040C9456040C9456040C94560478 +:1000A0000C9456040C9456040C945604A305700545 +:1000B0005B05B505DC050F06F105F7050C063A06EC +:1000C0002F06FA0532064605EB0523062C066D05BC +:1000D0006405B205A905910567052605BE05140648 +:1000E0001D0629069705C705A60540051A06E5055C +:1000F00088059D0594057C0520068B053105E805DE +:100100008205C1052005AC055E054C057605730525 +:10011000CA059A05060637058505AF052305B80506 +:1001200003060906D3055505EE0543056A054F0587 +:10013000C405F40535062905A005BB05FD05CD055B +:1001400052052606E2053D058E055805D9056105CF +:1001500000063A05D005DF052C0549053F061706C0 +:1001600079053405D6057F0514058610A81093116E +:10017000A8109311EA100D119311621175116E14EC +:100180006E149C149C14DE141A151A171A173215C3 +:100190001A1729162916F4161A171A1708170552CE +:1001A000045201520352010000001E001B001800FF +:1001B0002F00010029001F0013000C003300E30092 +:1001C000E1002000090004003400E2002A002100C0 +:1001D0001A0008000600E000650022000A00120074 +:1001E0001900000049002E004A0000004D000000E8 +:1001F00002542E02025400002B0000005E30230047 +:100200000B001600050000004C0024000D0011003A +:100210001000E4004B0025000E0015003600E6003B +:100220002C0026000F001700370050002800270080 +:1002300014000700520051004E0035001C002D0034 +:100240001D004F000000010001000100010001003D +:1002500000001E02300238020100010001001F02EE +:10026000641438003000010001002002240223023F +:1002700027020100010001002414251401000100DF +:1002800001000100271426140100000001000100F4 +:100290000100000001000000010001000100000059 +:1002A0000100000001000100310021022D140000B6 +:1002B000010001006400250222020100010001008A +:1002C0006402260236020100010001000100301420 +:1002D00037023830010035021F023102553002303A +:1002E0000100010001002D0201003D30000001006D +:1002F000010001000100010000003A0001000100BE +:100300000100010001003B000100010001000100AB +:1003100001003C00010001000100010001003D005E +:10032000010001000100010001003E000100010088 +:100330000100000001004400010000000100000075 +:1003400001004500010000005300000001003F00D3 +:100350000100010001000000010040005F005C009E +:10036000590062000100410060005D005A008500F4 +:100370000100420061005E005B0063000100430079 +:100380005500560057005800010067005400560001 +:1003900057005800000001000100010001000100A9 +:1003A00000004D30393001005B3001000100513058 +:1003B00058303C303B300100010050300130141403 +:1003C0005D30010001004A30593008145C300100F2 +:1003D0000100493057300430003000000100053082 +:1003E0000100000001000000010001000100000008 +:1003F0000100000001004F305A3037301E0200006B +:1004000001004E3001004B30010001000100483076 +:10041000563054305330010001004C30010003309D +:100420003A300100010052300100010001000100DA +:1004300001000100010001000100010000000100B5 +:100440000100010001000100000042302030343082 +:1004500001000100010046302E302630333001000B +:10046000010045302D301E300100010001004030F8 +:100470002B3022300100010001003F3025302C30AC +:100480000100000001000100010000000100000067 +:1004900001000100010000000100000001004430E3 +:1004A000233031301F3000000100433035302A3016 +:1004B0002930010001003E302730303001000100BA +:1004C0000100413028303230010001000100473086 +:1004D000010021300100010001000100363024300C +:1004E0002F300100000001000100010001000100A7 +:1004F0000000010008301B30010001000100010074 +:1005000015300D301A3001000100010014300630A2 +:10051000010001000100010012300A300100010059 +:10052000010001000C301330010000000100010047 +:1005300001000000010000000100010001000000B6 +:1005400001000000010001000B30183007300000EE +:10055000010001001C3011301030010001000100C9 +:100560000E30173001000100010001000F3019307A +:10057000010001000100010001000930010001003B +:10058000010001001D3001001630010000000100D3 +:100590000100010001000100000001000100010054 +:1005A0000100010001000100010001000100010043 +:1005B0000100010001000100010001000100010033 +:1005C0000100010001000100010001000100010023 +:1005D0000100000001000100010000000100000016 +:1005E0000100010001000000010000000100010005 +:1005F00001000100010000000100010001000100F4 +:1006000001000100010001000100010001000100E2 +:1006100001000100010001000100010001000100D2 +:1006200001000100010001000100010001000100C2 +:1006300001000100000016034500720067006F0012 +:1006400044006F007800200045005A0000001603A7 +:100650004500720067006F0044006F0078002000C2 +:1006600045005A0000000403090409026D0004015A +:1006700000A0FA0904000001030101000921110191 +:100680000001223F000705810308000A0904010058 +:100690000103010200092111010001224D0007059B +:1006A000820308000A090402000103000000092176 +:1006B000110100012236000705830308000A09041E +:1006C000030001030000000921110100012239008B +:1006D000070584031000011201100100000008ED5D +:1006E000FE071301000102000105010906A1010531 +:1006F0000719E029E7150025019508750181020514 +:100700000819012905950575019102950175039157 +:1007100001050719002977150025019578750181D4 +:1007200002C005010980A101850216010026B7005B +:100730001A01002AB700751095018100C0050C0947 +:1007400001A1018503160100269C021A01002A9CC2 +:1007500002751095018100C005010902A10109017E +:10076000A100050919012905150025019505750147 +:100770008102950175038101050109300931158157 +:10078000257F95027508810609381581257F950119 +:1007900075088106050C0A38021581257F950175BB +:1007A000088106C0C005010906A101050719E02955 +:1007B000E7150025019508750181029501750881ED +:1007C0000105081901290595057501910295017525 +:1007D0000391010507190029FF150025FF950675EE +:1007E000088100C0000000000000000000000001BF +:1007F0000204060A0F17202C3A4A5D71879DB3C781 +:10080000DAE9F5FCFFFCF5E9DAC7B39D87715D4ACB +:100810003A2C20170F0A0604020100000000000015 +:100820000000000011241FBECFEFDAE0DEBFCDBF15 +:1008300004B603FE24C08091F1019091F201A091D1 +:10084000F301B091F4018730904BA740B04BB9F45D +:100850001092F1011092F2011092F3011092F40142 +:1008600014BE84B7877F84BF88E10FB6F894809365 +:100870006000109260000FBEE0E0FFE3099511E018 +:10088000A0E0B1E0E0E3FDE402C005900D92A433E6 +:10089000B107D9F711E0A4E3B1E001C01D92A13F77 +:1008A000B107E1F70E94950C0C9496260C94000079 +:1008B000282F882341F090E02A3018F4885A9F4F5F +:1008C00008950697089582E690E008950F931F9388 +:1008D000CF93DF938C01EB0180913401909135012E +:1008E000009709F448C0019709F089C080EE0E9482 +:1008F000F71281EE0E94F71288E10E94F71288E158 +:100900000E94BF13C801807F992724E096958795A0 +:100910002A95E1F70E945804182F0E94F712812FA0 +:100920000E94BF13802F8F700E945804182F0E94BE +:10093000F712812F0E94BF13CE01807F992734E0E8 +:10094000969587953A95E1F70E945804D82F0E9412 +:10095000F7128D2F0E94BF138C2F8F700E945804A6 +:10096000C82F0E94F7128C2F0E94BF1380EE0E94A6 +:10097000BF1381EE3EC082EE0E94F71287E50E940F +:10098000F71287E50E94BF13C801807F992744E0D2 +:10099000969587954A95E1F70E945804182F0E9472 +:1009A000F712812F0E94BF13802F8F700E9458046E +:1009B000182F0E94F712812F0E94BF13CE01807F53 +:1009C000992754E0969587955A95E1F70E94580427 +:1009D000D82F0E94F7128D2F0E94BF138C2F8F707B +:1009E0000E945804C82F0E94F7128C2F0E94BF1338 +:1009F00082EEDF91CF911F910F910C94BF13DF9185 +:100A0000CF911F910F910895FC018281882309F4F1 +:100A10003CC1862F90E08F35910508F036C1FC016E +:100A2000EA5AFF4F0C944B26809134019091350186 +:100A3000019681709927909335018093340125C1E7 +:100A40006FEB70E019C160E970E008C061EA70E026 +:100A500013C163E870E00BC16BE570E081E290E0E8 +:100A600012C16BEB70E008C163E570E0F7CF6EEB8D +:100A700070E002C164E070E0D4C069EB70E001C1D5 +:100A800062EB70E0F9C065E870E0F1C069E970E020 +:100A9000F3C065E570E0E2CF68EC70E0EDC069E8B6 +:100AA00070E0E5C064E770E0E2C062E970E0D6CFD4 +:100AB00066E770E0DCC063E970E0D0CF60EC70E026 +:100AC000DBC062EB70E0DDC069EA70E0D5C068EAC7 +:100AD00070E0D2C064E870E0CAC06DE970E0CCC0DC +:100AE00067EF70E0CEC063EC70E0C6C061EC70E010 +:100AF000C3C069E570E0B2CF63EB70E0BDC064E5F0 +:100B000070E0ACCF6DEB70E0B7C066EB70E0B4C0E6 +:100B100065EB70E0B1C06AEB70E0AEC067E770E013 +:100B2000A6C060EA70E0A8C062EC70E0A5C06EE903 +:100B300070E0A2C068EB70E09FC067EB70E09CC003 +:100B400062E870E094C063E470E06BC061EB70E059 +:100B500093C066EA70E090C066EC70E08DC06EE114 +:100B600070E05FC06FE970E087C068E070E059C076 +:100B700067ED70E086C060E870E079C063EA70E01D +:100B80007BC069EC70E078C061E870E070C066E935 +:100B900070E072C064EC70E06FC065E770E067C041 +:100BA00063E070E03EC061EB70E06BC06EEB70E044 +:100BB00068C063EB70E065C065E070E032C061E979 +:100BC00070E04CCF69E770E052C064EB70E054C055 +:100BD0006CEB70E051C06AE970E04EC068E870E00C +:100BE00046C061E970E048C067E870E040C062E973 +:100BF00070E042C067E970E03FC068E770E037C06E +:100C000060E770E034C069E070E00BC065EC70E054 +:100C100033C060E670E005C067EA70E02DC060E0B8 +:100C200070E082E290E02FC064EA70E025C06CEBD7 +:100C300070E027C067EC70E01FC068E970E01CC07E +:100C400069EB70E019C06BE970E016C06FE770E007 +:100C50000EC065EA70E010C06CE970E00DC065E997 +:100C600070E00AC063E970E007C066E870E080E207 +:100C700090E009C064E970E083E090E004C06DEBAF +:100C800070E080E090E00E94660480E090E00895CB +:100C900008956091B3017091B4018091B501909174 +:100CA000B6010E94A11D56985E9825982D98269809 +:100CB0002E9827982F988330A9F028F4813051F08E +:100CC000823069F012C0843041F0853071F4259A89 +:100CD0002D9A08C0259A2D9A0895259A2D9A269A1C +:100CE0002E9A0895279A2F9A089556985E980895F7 +:100CF0000C94490656985E9825982D9826982E981B +:100D000027982F988FEF90E0909389008093880028 +:100D100090938B0080938A0090938D0080938C0039 +:100D2000259A2D9A2FEF80E792E021508040904045 +:100D3000E1F700C00000269A2E9A2FEF80E792E09C +:100D4000215080409040E1F700C00000279A2F9A80 +:100D50002FEF80E792E0215080409040E1F700C003 +:100D6000000025982D982FEF80E792E021508040D9 +:100D70009040E1F700C0000026982E982FEF80E702 +:100D800092E0215080409040E1F700C00000279899 +:100D90002F9856985E9825982D9826982E982798E3 +:100DA0002F98089589EA8093800089E080938100DC +:100DB00024982C983F988AB18F748AB96E98479A74 +:100DC0008BB1806B8BB9769A0E947A060C94480698 +:100DD00080E2809300018091360181110EC00E9453 +:100DE000370781E0809336012FEF83ED90E32150A8 +:100DF00080409040E1F700C0000080E40E943D0781 +:100E00008093000181112EC00E946707809300012A +:100E1000811128C00E94670780930001811122C0C0 +:100E20008FE30E9467078093000181111BC00E941D +:100E30005F0780E40E943D0780930001811112C08A +:100E40008CE00E9467078093000181110BC00E9413 +:100E5000670780930001811105C08FE30E94670737 +:100E6000809300010E945F07809100010895109215 +:100E7000B9008AE08093B800089594EA9093BC008A +:100E80009091BC0097FFFCCF9091B900987F98306B +:100E900021F0903111F081E008958093BB0084E847 +:100EA0008093BC008091BC0087FFFCCF8091B9008B +:100EB000887F883111F0803471F780E0089584E9EB +:100EC0008093BC008091BC0084FDFCCF089580938A +:100ED000BB0084E88093BC008091BC0087FFFCCFFE +:100EE0009091B900987F81E0983209F480E00895EC +:100EF00084E88093BC008091BC0087FFFCCF809188 +:100F0000BB00089580910001811115C080E40E940A +:100F10003D078093000181110CC082E10E946707A8 +:100F200080930001811105C08FEF0E9467078093B5 +:100F300000010E945F0784B1807F84B985B1807F02 +:100F400085B98AB1837F8AB98BB1837F8BB93E988B +:100F5000469808950E94E806809300010E94820747 +:100F600080B38C7080BB81B3836F81BBE6E4F1E01A +:100F7000A8E3B1E011921D9281E0E435F807D1F7C2 +:100F80000C94D206BF92CF92DF92EF92FF920F9312 +:100F90001F93CF93DF9380910001882379F0809194 +:100FA00037018F5F80933701811108C00E94E806E6 +:100FB00080930001811102C00E947A0608E311E0CB +:100FC000C0E0D0E0DD24D39482E0C82EEE24E39488 +:100FD000F12CC73000F580910001811162C080E4DE +:100FE0000E943D0780930001811112C082E10E949E +:100FF00067078093000181110BC0C7010C2E01C04F +:10100000880F0A94EAF780950E9467078093000191 +:101010000E945F0746C0CA30A1F028F4C83059F0DA +:10102000C93061F005C0CC3089F070F0CD3089F066 +:10103000209A289810C0219A29980DC0229A2A989F +:101040000AC0239A2B9807C0529A01C0539A5B9802 +:1010500002C03E9A4698E0EAEA95F1F78FB1799995 +:101060005AC092E081708D25892B7C9B02C090E054 +:1010700001C094E0892B7D9B02C090E001C098E004 +:10108000892B7E9B02C090E001C090E1892B9FB12B +:101090009095991F9927991F9295990F907E892B6A +:1010A0000FC08091000181114BC080E40E943D0778 +:1010B00080930001882389F1B12C0E945F078B2D5A +:1010C000F8019081981719F08083C09201010E9465 +:1010D000820721960F5F1F4FCE30D10509F079CFDF +:1010E00080910101882371F181508093010188234F +:1010F00039F08FE99FE00197F1F700C0000022C0AE +:10110000A6E4B1E0E8E3F1E081918D9391E0E6346B +:10111000F907D1F717C090E0A5CF83E10E946707D8 +:10112000809300018111C8CF81E40E943D07809324 +:1011300000018111C1CF0E947807B82EB094BDCFB5 +:1011400080E0BECF0E94780681E0DF91CF911F91B1 +:101150000F91FF90EF90DF90CF90BF900895E82F10 +:10116000F0E0EA5BFE4F8081089508958B3B910586 +:1011700078F4883A910540F5853A9105D0F48430A9 +:10118000910508F0B1C08130910509F4ADC06BC084 +:10119000803E910508F467C0883E910508F4A4C01C +:1011A0009C01205F31092031310508F05CC0906559 +:1011B0000895853A910509F459C0863A910509F4D4 +:1011C00058C083E890E40895883A910509F454C022 +:1011D000893A910509F453C08A3A910509F452C03D +:1011E0008B3A910509F451C08C3A910509F450C02D +:1011F0008D3A910509F44FC0803B910509F44EC02A +:101200008E3A910509F44DC08F3A910509F44CC00E +:10121000813B910509F44BC0823B910509F44AC01A +:10122000833B910509F449C0843B910509F448C00A +:10123000853B910509F447C0863B910509F446C0FA +:10124000873B910509F445C0883B910509F444C0EA +:10125000893B910509F443C08A3B910509F042C0DE +:101260008AE296E4089580E090E0089581E890E4B1 +:10127000089582E890E4089582EE94E4089589EE5A +:1012800094E408958AEE94E4089585EB94E4089537 +:1012900086EB94E4089587EB94E408958CEC94E451 +:1012A00008958DEC94E4089583E895E408958AE820 +:1012B00095E4089582E995E4089584E995E4089514 +:1012C00081E296E4089583E296E4089584E296E448 +:1012D000089585E296E4089586E296E4089587E20B +:1012E00096E4089580E094E40895089596E0799F47 +:1012F000F001112494E5899FE00DF11D1124E60F02 +:10130000F11DEE0FFF1FE256FE4F85919491089557 +:10131000880F991F825E9F4FFC01859194910895DB +:10132000880F991F82569E4FFC01859194910895D4 +:1013300026E0729FF001112444E5849FE00DF11D29 +:101340001124E60FF11DEE0FFF1FE256FE4F25910F +:101350003491C9019A9581159F4110F4C9010895EE +:10136000C90190528115904128F4C9019F700E94D3 +:1013700090090895C90190538115904120F4C90145 +:101380009927906C0895211580E5380769F40E942B +:101390003D179FEF24E34CE0915020404040E1F79F +:1013A00000C000000C949A1E213080E5380731F40B +:1013B0008091CF0181608093CF010895C90190553C +:1013C0008115904108F050C0832F99278F7099277D +:1013D00081309105D9F4A9014370552702C0880FC7 +:1013E000991F4A95E2F79C68A90164E0440F551FD4 +:1013F0006A95E1F744275370842B952B73E0220FF5 +:10140000331F7A95E1F7207633271DC0823091058E +:1014100029F4922F8827816F906A0895833091056F +:10142000A9F4A9014370552781E090E002C0880F1C +:10143000991F4A95E2F79C6843E0220F331F4A95B3 +:10144000E1F7207E3770822B932B08950497F1F4F7 +:10145000A9014370552781E090E002C0880F991FD1 +:101460004A95E2F79A68E8CFC901905781159041F3 +:1014700020F4C9019F7090620895C90190588115A8 +:10148000904120F4C9019F70906A0895203E310573 +:10149000E0F4203C310558F52133310509F470C0E2 +:1014A00048F42932310509F464C02A32310509F4BF +:1014B0006EC074C029333105F1F022383105D9F0FE +:1014C0002533310509F44EC069C0233E310589F149 +:1014D00038F4203E3105C1F0223E3105E1F05EC016 +:1014E000263E310569F1273E3105A9F157C0C901F2 +:1014F0000E94880908958091E20180FD02C081FF69 +:101500004DC080EE90E04BC08091E20180FFF9CFAA +:1015100089E390E044C08091E20182FF0EC0809197 +:10152000E20184FF03C080E090E039C083EE90E0E8 +:1015300036C08091E20182FFF2CF82EE90E02FC0B0 +:101540008091E20183FF0BC08091E20184FDEBCF2B +:1015500087EE90E024C08091E20183FFF5CF86EE14 +:1015600090E01DC08091E20185FF07C089E290E014 +:1015700016C08091E20185FFF9CF85E390E00FC0AE +:101580008091E20186FF07C08AE290E008C0809166 +:10159000E20186FFF9CF81E390E001C0C9010E941A +:1015A000B608089508950C94D20A809164010895B4 +:1015B000CF93DF9300D01F92CDB7DEB72091E80123 +:1015C000243019F523E029839B838A832093E90043 +:1015D0008FEF9091E800815095FD06C095ED9A95AA +:1015E000F1F700008111F5CF8091E80085FF0DC073 +:1015F00040E050E063E070E0CE0101960E94420DB1 +:101600008091E8008E778093E8000F900F900F9004 +:10161000DF91CF910895CF93DF9300D01F92CDB784 +:10162000DEB72091E801243021F522E029839B8355 +:101630008A8383E08093E9008FEF9091E8008150E6 +:1016400095FD06C095ED9A95F1F700008111F5CF53 +:101650008091E80085FF0DC040E050E063E070E05D +:10166000CE0101960E94420D8091E8008E77809312 +:10167000E8000F900F900F90DF91CF910895209187 +:10168000E8012430F1F422E02093E9002FEF3091BB +:10169000E800215035FD06C035ED3A95F1F7000020 +:1016A0002111F5CF2091E80025FF0BC040E050E06C +:1016B00065E070E00E94420D8091E8008E77809393 +:1016C000E8000895CF93DF93EC018091E801843026 +:1016D00009F046C090910C019923D9F090910D0129 +:1016E0009923B9F08093E9008FEF9091E800815041 +:1016F00095FD06C095E19A95F1F700008111F5CFAF +:101700008091E80085FF2CC040E050E060E170E08F +:1017100017C081E08093E9008FEF9091E80081503D +:1017200095FD06C095ED9A95F1F700008111F5CF72 +:101730008091E80085FF14C040E050E068E070E070 +:10174000CE010E94420D8091E8008E778093E800E0 +:1017500080E1FE01A4E5B1E001900D928A95E1F7E8 +:10176000DF91CF9108958091E701811109C00E9416 +:10177000D40E0E94310F8091E20084608093E200D9 +:1017800008951092E701089508950C94C3240E94CF +:10179000311E0E94C9240E94CE110C94D30A42E04B +:1017A00061EC81E00E944E0E42E061EC82E00E941A +:1017B0004E0E42E061EC83E00E944E0E42E161EC8D +:1017C00084E00C944E0E8091EA01833009F455C0F8 +:1017D00030F4813071F0823009F48EC008958A307F +:1017E00009F47AC08B3009F460C0893009F09CC0DC +:1017F00020C08091E901813A09F096C08091E8000B +:10180000877F8093E8008091ED019091EE01892B14 +:1018100021F060E080E090E003C060E184E591E0C9 +:1018200070E00E948B0D8091E8008B778093E80038 +:1018300008958091E901813209F076C08091ED012F +:101840009091EE01009719F0039709F06DC0809117 +:10185000E800877F8093E8008091E80082FD05C062 +:101860008091E8018111F8CF5FC08091F1008093F1 +:1018700064018091E8008B7753C08091E901813A3F +:1018800009F052C08091ED019091EE01892B09F091 +:101890004BC08091E800877F8093E8008091E8004A +:1018A00080FFFCCF80910C0136C08091E90181322C +:1018B000D9F58091ED019091EE01892BA9F58091E8 +:1018C000E800877F8093E8000E94830E8091EB01FF +:1018D00080930C010C943D178091E901813221F530 +:1018E0008091E800877F8093E8000E94830E8091BA +:1018F000EC018093650108958091E901813AA1F49A +:101900008091E800877F8093E8008091E80080FF65 +:10191000FCCF809165018093F1008091E8008E7783 +:101920008093E8000C94830E089584B7877F84BF6A +:1019300088E10FB6F89480936000109260000FBEAB +:1019400090E080E80FB6F894809361009093610076 +:101950000FBE0E941D120E94D40E0E94310F809172 +:10196000E20084608093E20078940E94AC110E94AF +:101970001F1282E091E00E94C9110E94B12480915F +:10198000E801853069F40E94F41D8091E601882306 +:10199000B1F30E941C1E882391F30E942C0DEFCFFF +:1019A0000E942512ECCF292F332723303105A9F0CF +:1019B0006CF42130310509F442C02230310509F0C0 +:1019C00043C08DE690E02AE636E042C02132310580 +:1019D000C9F02232310519F137C0992781309105BC +:1019E00041F08230910541F0892B71F5E6E6F6E091 +:1019F00005C0EEE4F6E002C0E6E3F6E0849190E094 +:101A00009F0126C0643000F5E62FF0E0EE0FFF1FC7 +:101A1000EE5DFE4F2081318189E090E019C0643095 +:101A200098F4E62FF0E0DF01AA0FBB1FA65EBE4FC1 +:101A30002D913C91EA5EFE4F808190E009C082E1E9 +:101A400090E027ED36E004C080E090E020E030E058 +:101A5000FA0131832083089580E189BD82E189BD47 +:101A600009B400FEFDCF8091D8008F7D8093D8000F +:101A70008091E00082608093E0008091E00081FD31 +:101A8000FCCF0895CF92DF92EF92FF920F931F93B6 +:101A9000CF93DF937C018B01EA010E94A40E811198 +:101AA00031C0209731F088819981081B190BE80E0D +:101AB000F91EC12CD12C0115110519F18091E800F6 +:101AC00085FD14C08091E8008E778093E800209710 +:101AD00041F0888199818C0D9D1D9983888385E0D3 +:101AE00011C00E94A40E882331F30CC0F70181912C +:101AF0007F018093F10001501109FFEFCF1ADF0A37 +:101B0000DACF80E0DF91CF911F910F91FF90EF909E +:101B1000DF90CF9008952091EF013091F0012617CA +:101B2000370748F06115710539F42091E8002E77E8 +:101B30002093E80001C0B901FC0120E061157105A6 +:101B4000B9F18091E801882309F440C0853009F497 +:101B50003FC08091E80083FD3DC08091E80082FF96 +:101B600006C08091E80082FF26C080E00895809141 +:101B7000E80080FFE3CF2091F3008091F20090E035 +:101B8000922B6115710551F08830910538F421913F +:101B90002093F100615071090196F3CF21E008977D +:101BA00009F020E08091E8008E778093E800C6CFAE +:101BB0002111C7CFD6CF8091E801882339F0853035 +:101BC00039F08091E80083FFCCCF04C082E0089513 +:101BD00083E0089581E008952091EF013091F001B4 +:101BE0002617370748F06115710539F42091E80090 +:101BF0002E772093E80001C0B901FC0120E06115B7 +:101C00007105C1F18091E801882309F441C0853054 +:101C100009F440C08091E80083FD3EC08091E80057 +:101C200082FF06C08091E80082FF27C080E008950F +:101C30008091E80080FFE3CF2091F3008091F200D3 +:101C400090E0922B6115710559F08830910540F4B0 +:101C500024912093F1003196615071090196F2CFE1 +:101C600021E0089709F020E08091E8008E778093CA +:101C7000E800C5CF2111C6CFD5CF8091E8018823D8 +:101C800039F0853039F08091E80083FFCBCF04C074 +:101C900082E0089583E0089581E00895982F9730B9 +:101CA00058F59093E900981739F07091EC00209165 +:101CB000ED005091F00003C0242F762F50E021FF5B +:101CC00019C03091EB003E7F3093EB003091ED0076 +:101CD0003D7F3093ED003091EB0031603093EB00AD +:101CE0007093EC002093ED005093F0002091EE00F3 +:101CF00027FF07C09F5FD3CF8F708093E90081E0FB +:101D0000089580E008958091E90187FD05C08091E4 +:101D1000E80080FF0EC012C08091E80082FD05C07F +:101D20008091E8018111F8CF08958091E8008B77C8 +:101D300008C08091E8018111EACF08958091E80000 +:101D40008E778093E80008958091E4009091E500FB +:101D500045E62091EC0020FF21C02091E80020FD05 +:101D600021C02091E801222389F0253089F02091BB +:101D7000EB0025FD0FC02091E4003091E50028170D +:101D8000390739F3415041F0C901E3CF82E00895AA +:101D900083E0089581E0089584E008952091E800AB +:101DA00022FFDFCF80E008950E94420F0E944A0F79 +:101DB000E0EEF0E0808181608083E8EDF0E08081FA +:101DC0008F77808319BCA7EDB0E08C918E7F8C93C8 +:101DD00080818F7E80831092E70108950F931F9377 +:101DE000CF93DF930E94420F0E944A0FC8EDD0E0CC +:101DF00088818F77888388818068888388818F7DB8 +:101E0000888319BC1092E8011092E4011092E60157 +:101E10001092E50100EE10E0F80180818B7F808355 +:101E200088818160888342E060E080E00E944E0EFD +:101E3000E1EEF0E080818E7F8083E2EEF0E0808151 +:101E400081608083808188608083F80180818E7FBB +:101E50008083888180618883DF91CF911F910F916A +:101E60000895E8EDF0E080818F7E8083E7EDF0E07B +:101E700080818160808384E082BF81E08093E7017C +:101E80000C94EE0EE8EDF0E080818E7F808310925E +:101E9000E20008951092DA001092E10008951F9276 +:101EA0000F920FB60F9211242F933F934F935F938E +:101EB0006F937F938F939F93AF93BF93EF93FF9312 +:101EC0008091E10082FF0BC08091E20082FF07C099 +:101ED0008091E1008B7F8093E1000E94AB118091A3 +:101EE000DA0080FF1FC08091D80080FF1BC0809166 +:101EF000DA008E7F8093DA008091D90080FF0DC0D8 +:101F000080E189BD82E189BD09B400FEFDCF81E099 +:101F10008093E8010E94B30B05C019BC1092E80140 +:101F20000E94C10B8091E10080FF19C08091E20006 +:101F300080FF15C08091E2008E7F8093E200809147 +:101F4000E20080618093E2008091D80080628093FB +:101F5000D80019BC85E08093E8010E94C50B8091F0 +:101F6000E10084FF30C08091E20084FF2CC080E15A +:101F700089BD82E189BD09B400FEFDCF8091D80002 +:101F80008F7D8093D8008091E1008F7E8093E10067 +:101F90008091E2008F7E8093E2008091E200816078 +:101FA0008093E2008091E401882311F084E007C06F +:101FB0008091E30087FF02C083E001C081E080934D +:101FC000E8010E94C70B8091E10083FF29C0809146 +:101FD000E20083FF25C08091E100877F8093E100CC +:101FE00082E08093E8011092E4018091E1008E7F0D +:101FF0008093E1008091E2008E7F8093E2008091E7 +:10200000E20080618093E20042E060E080E00E94B4 +:102010004E0E8091F00088608093F0000E94C40B07 +:10202000FF91EF91BF91AF919F918F917F916F91B0 +:102030005F914F913F912F910F900FBE0F901F9086 +:1020400018951F920F920FB60F9211242F933F9362 +:102050004F935F936F937F938F939F93AF93BF93B0 +:10206000CF93EF93FF93C091E900CF708091EC0084 +:102070001092E9008091F000877F8093F0007894BF +:102080000E945D101092E9008091F00088608093BA +:10209000F000C093E900FF91EF91CF91BF91AF9114 +:1020A0009F918F917F916F915F914F913F912F9170 +:1020B0000F900FBE0F901F9018951F93CF93DF9333 +:1020C000CDB7DEB7AA970FB6F894DEBF0FBECDBF6F +:1020D000E9EEF1E08091F100819321E0E13FF20728 +:1020E000C9F70E94E30B8091E80083FF1CC1209197 +:1020F000E9013091EA01832F90E08A30910508F0E0 +:1021000012C1FC01EB54FF4F0C944B26203881F098 +:10211000223809F008C18091ED018F708093E900A9 +:102120008091EB0085FB882780F91092E90006C0BA +:102130008091E5019091E601911182609091E80013 +:10214000977F9093E8008093F1001092F100C5C052 +:10215000822F8D7F09F0E7C0222319F0223061F031 +:10216000E2C08091EB01813009F0DDC0333009F02D +:1021700080E08093E60128C08091EB01811124C0AA +:102180002091ED012F7009F4CEC02093E9008091D9 +:10219000EB0080FF19C08091EB00333011F48062B6 +:1021A00011C080618093EB0081E090E0022E01C0BD +:1021B000880F0A94EAF78093EA001092EA0080916F +:1021C000EB0088608093EB001092E9008091E800BA +:1021D000877F86C02111A7C01091EB011F778091E6 +:1021E000E3008078812B8093E3008091E800877F73 +:1021F0008093E8000E94830E8091E80080FFFCCF6E +:102200008091E30080688093E300112311F083E064 +:1022100001C082E08093E80186C02058223008F097 +:1022200082C08091EB019091EC018C3D23E09207FC +:1022300079F583E08A838AE289834FB7F894DE01D7 +:10224000139620E03EE051E2E32FF0E05093570078 +:10225000E49120FF03C0E295EF703F5FEF708E2F97 +:1022600090E0EA3010F0C79601C0C0968D939D9320 +:102270002F5F243149F74FBF8091E800877F80931B +:10228000E8006AE270E0CE0101960E948B0D14C056 +:10229000AE014F5F5F4F6091ED010E94D30C00973C +:1022A00009F441C02091E800277F2093E800BC0199 +:1022B00089819A810E94EC0D8091E8008B77809350 +:1022C000E80031C0203879F58091E800877F80935D +:1022D000E8008091E4018093F1008091E8008E771E +:1022E0008093E8000E94830E1EC021111CC09091B3 +:1022F000EB019230C0F48091E800877F8093E80082 +:102300009093E4010E94830E8091E401811104C046 +:102310008091E30087FF02C084E001C081E08093E8 +:10232000E8010E94CF0B8091E80083FF0AC08091F2 +:10233000E800877F8093E8008091EB0080628093C3 +:10234000EB00AA960FB6F894DEBF0FBECDBFDF91AB +:10235000CF911F9108950895CF938091E80188232C +:10236000B1F08091E9008F709091EC0090FF02C075 +:1023700090E801C090E0C92FC82B1092E90080912D +:10238000E80083FD0E945D10CF70C093E900CF91FB +:10239000089590936B0180936A010895E0916A011A +:1023A000F0916B01309721F00190F081E02D0994BC +:1023B00080E00895E0916A01F0916B01309721F07F +:1023C0000280F381E02D09940895E0916A01F09173 +:1023D0006B01309721F00480F581E02D0994089578 +:1023E00020916801309169018217930771F09093F1 +:1023F000690180936801E0916A01F0916B01309767 +:1024000021F00680F781E02D09940895209166015E +:10241000309167018217930771F090936701809361 +:102420006601E0916A01F0916B01309721F0008420 +:10243000F185E02D0994089508950C941C120E94D2 +:10244000371E0E94AA070C94FD1ECF92DF92EF92D6 +:10245000FF920F931F93CF93DF93CDB7DEB72B97E8 +:102460000FB6F894DEBF0FBECDBF0E94C2073DE697 +:10247000E32E31E0F32E00E010E0C02E802F0E940A +:10248000AF08F701D1907F01D826B1F40F5F1F4F3D +:102490000E30110591F78FEF89838A831B820E948A +:1024A000401E8160782F9D838C8349815A816B8186 +:1024B0008D810E94C81241C09091CF0191FF04C04C +:1024C0008B870E94B5088B8520E030E04D2D50E0D1 +:1024D000922FBA01022E02C0759567950A94E2F711 +:1024E00060FF25C02E83CF82EE24E394F12C02C03E +:1024F000EE0CFF1C9A95E2F790E08E219F2121E0DF +:10250000892B09F420E028870E94401E8160782FE3 +:102510009A8789874E815F8168858A850E94C81263 +:10252000F801E359FE4F80818E25808306C02F5F1E +:102530003F4F2630310561F6A9CF0E94E12110916D +:102540006C010E94CE111817A1F00E94CE11809349 +:102550006C012B960FB6F894DEBF0FBECDBFDF9196 +:10256000CF911F910F91FF90EF90DF90CF900C943F +:10257000D30A2B960FB6F894DEBF0FBECDBFDF9106 +:10258000CF911F910F91FF90EF90DF90CF90089522 +:10259000CF93DF93CDB7DEB72B970FB6F894DEBF9E +:1025A0000FBECDBF4F83588769877A878B87DE013F +:1025B000119686E0FD0111928A95E9F785E0FE010A +:1025C000379601900D928A95E1F749815A816B8186 +:1025D0007C818D819E810E94091A2B960FB6F894FA +:1025E000DEBF0FBECDBFDF91CF9108950895CF9389 +:1025F000C82F882309F4C1C0823859F40E94CE1133 +:1026000081FDBBC089E30E94A81C0E94721D89E362 +:102610000CC0833879F40E94CE1180FDAEC083E5F2 +:102620000E94A81C0E94721D83E50E94E81CCF91A5 +:102630000C94721D843859F40E94CE1182FD9DC005 +:1026400087E40E94A81C0E94721D87E4EECF8CEFE5 +:102650008C0F813A48F48C2F0E94192481118DC06F +:102660008C2F0E94A81CE3CF80E28C0F883048F4A6 +:10267000C77081E001C0880FCA95EAF70E94291D42 +:10268000D6CF8BE58C0F833078F4C53A29F0C63A63 +:1026900031F482E890E005C081E890E002C083E870 +:1026A00090E0CF910C94F01188E58C0F833108F005 +:1026B00064C0C83A39F1C93A41F1CA3A49F1CB3A52 +:1026C00051F1CC3A59F1CD3A61F1C03B69F1CE3AC2 +:1026D00071F1CF3A79F1C13B81F1C23B89F1C33B42 +:1026E00091F1C43B99F1C53BA1F1C63BA9F1C73BB0 +:1026F000B1F1C83BB9F1C93BC1F1CA3BC9F58AE2A6 +:1027000092E038C082EE90E035C089EE90E032C0B1 +:102710008AEE90E02FC085EB90E02CC086EB90E035 +:1027200029C087EB90E026C08CEC90E023C08DECB4 +:1027300090E020C083E891E01DC08AE891E01AC0D3 +:1027400082E991E017C084E991E014C081E292E04F +:1027500011C083E292E00EC084E292E00BC085E2F9 +:1027600092E008C086E292E005C087E292E002C0F3 +:1027700080E090E0CF910C940612CF9108958823C9 +:1027800009F44BC0823859F40E94CE1181FF45C034 +:1027900089E30E94A81C0E94721D89E30CC0833843 +:1027A00071F40E94CE1180FF38C083E50E94A81CFE +:1027B0000E94721D83E50E94E81C0C94721D8438EF +:1027C00059F40E94CE1182FF28C087E40E94A81C01 +:1027D0000E94721D87E4EFCF9CEF980F913A58F357 +:1027E00090E2980F983050F4877091E001C0990FF3 +:1027F0008A95EAF7892F0E942F1DDFCF9BE5980F5E +:10280000933020F480E090E00C94F011885A8331EA +:1028100020F480E090E00C9406120895882321F0C3 +:102820000E94291D0C94721D0895882321F00E9496 +:102830002F1D0C94721D0895CF92DF92EF92FF929C +:102840000F931F93CF93DF93CDB7DEB728970FB6C3 +:10285000F894DEBF0FBECDBF8C0185E0F801DE012C +:10286000119601900D928A95E1F7F801D080E180F0 +:10287000F280258122952F7083819481892B39F0F4 +:10288000FFEFEF1206C081E0DF1203C003C081E05A +:1028900001C080E080FDCEC2C8012F830E94F612E5 +:1028A000D982EA8289819A810E94661C9E838887E8 +:1028B0000E94651C0E94381B2F814E816885FF2075 +:1028C00029F00E94461D68854E812F81E42FE295F4 +:1028D000EF70F0E0E154FF4F0C944B26842F807F83 +:1028E000142F1F70882311F01295107FFF2059F0CC +:1028F000112309F454C2812F68870E94391D0E9458 +:10290000721D68854CC2862F0E94BF13112309F4E3 +:1029100091C2812F0E943F1D28960FB6F894DEBF0A +:102920000FBECDBFDF91CF911F910F91FF90EF9020 +:10293000DF90CF900C94721D342F307F842F8F70D6 +:10294000303211F08295807F662319F0613019F1E1 +:102950002BC0FF20B1F0222309F493C1213009F0EC +:1029600090C128960FB6F894DEBF0FBECDBFDF91A1 +:10297000CF911F910F91FF90EF90DF90CF900C942B +:10298000591D222319F0213009F454C28E830E946C +:102990005C1D8E8189C1FF2021F0223008F04AC2DF +:1029A00070C1211147C280C1FF2021F0222309F408 +:1029B00068C1F5C1222309F477C105C2242F2695E9 +:1029C0002695237030E02115310521F021303105A5 +:1029D000C9F030C2FF2021F0862F942F937002C0DF +:1029E00080E090E028960FB6F894DEBF0FBECDBF12 +:1029F000DF91CF911F910F91FF90EF90DF90CF90DB +:102A00000C94F011FF2021F0862F942F937002C0B8 +:102A100080E090E028960FB6F894DEBF0FBECDBFE1 +:102A2000DF91CF911F910F91FF90EF90DF90CF90AA +:102A30000C940612862FFF2019F00E94E92002C094 +:102A40000E94512128960FB6F894DEBF0FBECDBF6D +:102A5000DF91CF911F910F91FF90EF90DF90CF907A +:102A60000C94D621842F837009F076C0F110E2C156 +:102A7000262F229526952770220F220F862F8F70E2 +:102A8000C82ED12CE12CF12C022E04C0CC0CDD1C64 +:102A9000EE1CFF1C0A94D2F764FF10C06FE070E0D8 +:102AA00080E090E004C0660F771F881F991F2A9569 +:102AB000D2F7609570958095909503C060E070E0C6 +:102AC000CB01242F269526952370422F50E04230CB +:102AD0005105D1F04330510559F16C297D298E29DA +:102AE0009F294130510541F128960FB6F894DEBF79 +:102AF0000FBECDBFDF91CF911F910F91FF90EF904F +:102B0000DF90CF900C945D1B6C297D298E299F2925 +:102B100028960FB6F894DEBF0FBECDBFDF91CF91E0 +:102B20001F910F91FF90EF90DF90CF900C94771B47 +:102B30000E945D1BC701B60128960FB6F894DEBF50 +:102B40000FBECDBFDF91CF911F910F91FF90EF90FE +:102B5000DF90CF900C94431BFF2019F0842F8170DD +:102B600001C08695882309F465C1262F22952695F4 +:102B70002770220F220F862F8F70C82ED12CE12CA8 +:102B8000F12C022E04C0CC0CDD1CEE1CFF1C0A94A0 +:102B9000D2F764FF10C06FE070E080E090E004C006 +:102BA000660F771F881F991F2A95D2F76095709539 +:102BB0008095909503C060E070E0CB01242F2695AE +:102BC00026952370422F50E042305105D1F043301A +:102BD000510559F16C297D298E299F2941305105D4 +:102BE00041F128960FB6F894DEBF0FBECDBFDF913E +:102BF000CF911F910F91FF90EF90DF90CF900C94A9 +:102C0000311C6C297D298E299F2928960FB6F894AE +:102C1000DEBF0FBECDBFDF91CF911F910F91FF900F +:102C2000EF90DF90CF900C944B1C0E94311CC70199 +:102C3000B60128960FB6F894DEBF0FBECDBFDF9168 +:102C4000CF911F910F91FF90EF90DF90CF900C9458 +:102C5000171C603FC9F118F4603E50F49BC0623FFE +:102C600009F460C008F44AC0633F09F46FC092C021 +:102C7000162F1F70842F8F71FF2099F00E94B01BB8 +:102C8000812F28960FB6F894DEBF0FBECDBFDF911F +:102C9000CF911F910F91FF90EF90DF90CF900C9408 +:102CA0000E140E94D11B812F28960FB6F894DEBF18 +:102CB0000FBECDBFDF91CF911F910F91FF90EF908D +:102CC000DF90CF900C941514FF20A1F02111B2C019 +:102CD000842F8F7128960FB6F894DEBF0FBECDBF3C +:102CE000DF91CF911F910F91FF90EF90DF90CF90E8 +:102CF0000C94F61B223008F09DC0EACFFF20A1F013 +:102D0000842F8F7128960FB6F894DEBF0FBECDBF0B +:102D1000DF91CF911F910F91FF90EF90DF90CF90B7 +:102D20000C94B01BFF2061F3842F8F7128960FB68F +:102D3000F894DEBF0FBECDBFDF91CF911F910F91F1 +:102D4000FF90EF90DF90CF900C94D11BFF2091F07B +:102D5000842F8F7128960FB6F894DEBF0FBECDBFBB +:102D6000DF91CF911F910F91FF90EF90DF90CF9067 +:102D70000C949B1B28960FB6F894DEBF0FBECDBFF8 +:102D8000DF91CF911F910F91FF90EF90DF90CF9047 +:102D90000C94911BFF20A1F0222309F4B1CF862FC0 +:102DA00028960FB6F894DEBF0FBECDBFDF91CF914E +:102DB0001F910F91FF90EF90DF90CF900C94F7123E +:102DC000222309F4B1CF862F28960FB6F894DEBFE0 +:102DD0000FBECDBFDF91CF911F910F91FF90EF906C +:102DE000DF90CF900C94BF134F70C8010E94040570 +:102DF00028960FB6F894DEBF0FBECDBFDF91CF91FE +:102E00001F910F91FF90EF90DF90CF900C94B61A26 +:102E10004F70C80128960FB6F894DEBF0FBECDBF25 +:102E2000DF91CF911F910F91FF90EF90DF90CF90A6 +:102E30000C94750928960FB6F894DEBF0FBECDBF6F +:102E4000DF91CF911F910F91FF90EF90DF90CF9086 +:102E500008950E94461D0E94561D0E941B1D0E943F +:102E6000721D0E9482220E94D62180E090E00E9482 +:102E7000F01180E090E00C9406120E94361D0C9434 +:102E800029170E94661C292F22952F7030E02C30C4 +:102E900031054CF42A3031056CF4225031092230CE +:102EA000310590F407C02C30310551F02F30310539 +:102EB00039F00AC0803E10F0803F31F481E008957F +:102EC00093FB882780F9089580E00895CF93DF93DE +:102ED00000D000D01F92CDB7DEB70F900F900F90AB +:102EE0000F900F90DF91CF910895CF93DF9300D093 +:102EF00000D000D0CDB7DEB726960FB6F894DEBF6F +:102F00000FBECDBFDF91CF9108951F93CF93DF9375 +:102F1000C0917B0116E080917C01C81799F0D0E048 +:102F20001C9FF0011D9FF00D1124E358FE4F4081BE +:102F3000518162817381848195810E9475172196E8 +:102F4000C770E9CFDF91CF911F9108954091AD01F6 +:102F50005091AE016091AF017091B0018091B101CB +:102F60009091B2010C947517CF938091B201829524 +:102F70008F7009F05FC08091AF01882309F45AC0B7 +:102F800020917B01A0917C016091AD017091AE0117 +:102F90008091B0019091B10131E06F3F09F030E0D4 +:102FA000B32FC6E02A1709F445C0009721F07F3FF0 +:102FB00021F44B2F03C041E001C040E030E040FD70 +:102FC00035C0C29FF001C39FF00D1124E358FE4F9E +:102FD000418174132BC04081641328C04281411188 +:102FE00025C0438154814817590710F441505109B5 +:102FF000481B590B483C5105C8F48091B2018F70B1 +:1030000080618093B20186E0829FF001839FF00D82 +:103010001124EE57FE4F80818F70806180838DEA8E +:1030200091E00E941C14CF910C9485172F5F3F4FA5 +:103030002770B8CFCF910895CF92DF92EF92FF9291 +:103040000F931F93CF93DF93CDB7DEB762970FB681 +:10305000F894DEBF0FBECDBF8C0185E0F801DE0124 +:103060001D9601900D928A95E1F7D8014C91119629 +:103070005C91119712966C9112971396ED90FC90BB +:1030800014977091AD01E091AE012091B0013091A3 +:10309000B1012115310531F0EF3F31F481E07F3F7F +:1030A00019F403C081E001C080E0B82FB170CB2ECD +:1030B00080FD6CC1D090AF01DD2009F4F5C0F09126 +:1030C000B201E216F30638F0C701821B930B883C6D +:1030D000910548F09BC0209530952E0D3F1D283C52 +:1030E000310508F093C08F2F807F09F052C0E5139F +:1030F00014C0741312C0D62E61110FC0FF70F0619E +:10310000F093B2010E94A6178DEA91E00E941C1470 +:103110008091B201F80185836CC1EF2831F05F3FE7 +:1031200031F481E04F3F19F403C081E001C080E039 +:1031300080FD03C081E0862701C080E0F82FF17098 +:10314000FF2E80FF1CC080917B0120917C0136E026 +:10315000821709F428C190E0389FF001399FF00DE3 +:103160001124E358FE4F7181571306C07081471335 +:1031700003C07281671303C001968770E9CFD62E12 +:10318000662309F436C18091B20181608093B20157 +:1031900053C0E51308C0741306C0611104C0D80100 +:1031A0001596FC93AEC04D875E878D859E856A8B94 +:1031B0000E9441176A89882329F1D62E662311F1CE +:1031C0002091B201822F82958F7090E002970CF4CB +:1031D00060C08091AD019091AE0198878F83198670 +:1031E000FB86EA862C87CE01079651C0E51731F1A0 +:1031F0004D875E878D859E856A8B0E9441176A89FF +:1032000081112EC0C8010E941C14A4C08F2F807F82 +:1032100069F77E2DF98AE88A89890E9466178DEA06 +:1032200091E00E941C14EDEAF1E086E0DF011D92BE +:103230008A95E9F70E94A617D12CDBC07413D8CF6A +:103240006111D6CFD8011596FC93C8010E941C14B9 +:10325000EDEAF1E086E0DF011D928A95E9F7C9C049 +:10326000D62E662379F22091B201822F82958F703B +:1032700090E0029774F08091AD019091AE019A8335 +:1032800089831B82FD82EC822E83CE0101960E94EF +:103290001C1486E0F801ADEAB1E001900D928A9528 +:1032A000E1F70E94B4176FC0E216F30628F0C701D9 +:1032B000821B930B9C0104C0209530952E0D3F1D61 +:1032C000283C310508F052C0D62E662309F49ACF67 +:1032D000E5132CC074132AC08091B20180FD1DC07B +:1032E000982F92959F70C9F0D80115968C931597D9 +:1032F0009F3039F09F5F9295907F8F70892B159644 +:103300008C93C8010E941C1486E0F801ADEAB1E07C +:1033100001900D928A95E1F736C086E0F801ADEA9A +:10332000B1E001900D928A95E1F763C04D875E8709 +:103330008D859E850E944117882379F086E0F801EB +:10334000ADEAB1E001900D928A95E1F70E94B417C1 +:103350000E94A617DD24D3944CC08091B2018160F5 +:103360008093B201C8010E941C1443C07E2DF98ACB +:10337000E88A89890E946617EDEAF1E086E0DF01BC +:103380001D928A95E9F70E94A61733C0662309F4B7 +:1033900039CF4D875E878D859E850E944117882392 +:1033A00009F430CFCBCF4D875E878D859E850E94F7 +:1033B000661C292F22952F7030E0223031052CF425 +:1033C0009F7041F0811106C00CC0243031052CF4EF +:1033D0009F7049F4805E883020F0C8010E941C1460 +:1033E000CF2CDC2C06C0D80115969C91907F91F7CC +:1033F000F8CF8D2D62960FB6F894DEBF0FBECDBF0D +:10340000DF91CF911F910F91FF90EF90DF90CF90C0 +:1034100008951F93CF93DF93CDB7DEB72C970FB6E8 +:10342000F894DEBF0FBECDBF4F83588769877A8778 +:103430008B879C87CE0107960E941C188823C1F0B9 +:103440002F8138858A859B85892B31F03F3F11F08C +:1034500080E003C02F3FE1F781E0811147C04F8139 +:10346000588569857A858B859C850E9475173EC035 +:1034700086E0FE013796DE01119601900D928A9545 +:10348000E1F7FF81E8854A855B854115510531F0FB +:10349000EF3F31F481E0FF3F19F403C081E001C048 +:1034A00080E080FD23C020917C0130E0C9010196BD +:1034B0008770992760917B0170E086179707F1F17B +:1034C000F983EA835D834C8396E0929FD001939FBA +:1034D000B00D1124A358BE4FFE01319601900D92FC +:1034E0009A95E1F780937C010E94851716E0809100 +:1034F0007B0190917C01891779F1189FC0011124FB +:1035000083589E4F0E941C18882331F1E0917B0163 +:103510001E9FF0011124E358FE4F408151816281CA +:103520007381848195810E94751780917B0190E061 +:1035300001968770992780937B01D9CF0E943D1710 +:1035400010927C0110927B01EDEAF1E086E0DF0150 +:103550001D928A95E9F7CACF2C960FB6F894DEBF74 +:103560000FBECDBFDF91CF911F910895EF92FF92D3 +:103570000F931F93CF93DF939C01009709F471C0C1 +:10358000F12CEE24E394E9012196F901849184372A +:1035900040F4843008F056C0813081F0823021F14F +:1035A00060C0853709F449C0C0F19CE7980F903797 +:1035B00008F057C08F770E94BF1346C089010E5F85 +:1035C0001F4FFE01849190E2980F983050F487705D +:1035D000FE2D01C0FF0F8A95EAF78F2F0E94491D2B +:1035E00015C00E94F71214C089010E5F1F4FFE0123 +:1035F000849190E2980F983068F48770FE2D01C096 +:10360000FF0F8A95EAF78F2F0E944F1D0E94721DAF +:10361000E8011AC00E94BF13FBCF2E5F3F4FFE018F +:10362000C491CC2341F08FE99FE00197F1F700C0EE +:103630000000C150F6CFE90107C0FE01F490E90196 +:10364000229602C00E94F7128F2D882341F0EFE9E5 +:10365000FFE03197F1F700C000008150F6CF9E01E6 +:1036600092CFDF91CF911F910F91FF90EF9008952E +:1036700008956093B7017093B8018093B901909356 +:10368000BA010C9429170F931F930091B701109161 +:10369000B8012091B9013091BA01062B172B282BC4 +:1036A000392B0093B7011093B8012093B9013093DF +:1036B000BA011F910F910C9429170F931F9300913A +:1036C000B7011091B8012091B9013091BA010623D8 +:1036D0001723282339230093B7011093B8012093AF +:1036E000B9013093BA011F910F910C9429170F93D0 +:1036F0001F930091B7011091B8012091B901309149 +:10370000BA0106271727282739270093B7011093F6 +:10371000B8012093B9013093BA011F910F910C9415 +:1037200029171092B3011092B4011092B5011092B2 +:10373000B6010C94291741E050E060E070E004C04D +:10374000440F551F661F771F8A95D2F74093B30128 +:103750005093B4016093B5017093B6010C9429178E +:1037600041E050E060E070E004C0440F551F661F68 +:10377000771F8A95D2F78091B3019091B401A091FF +:10378000B501B091B601842B952BA62BB72B809356 +:10379000B3019093B401A093B501B093B6010C941A +:1037A000291741E050E060E070E004C0440F551F6D +:1037B000661F771F8A95D2F7409550956095709552 +:1037C0008091B3019091B401A091B501B091B6017F +:1037D00084239523A623B7238093B3019093B40148 +:1037E000A093B501B093B6010C94291741E050E0C5 +:1037F00060E070E004C0440F551F661F771F8A9574 +:10380000D2F78091B3019091B401A091B501B0912C +:10381000B60184279527A627B7278093B3019093F5 +:10382000B401A093B501B093B6010C9429170F937E +:103830001F930091B3011091B4012091B501309113 +:10384000B601062B172B282B392B0093B3011093AD +:10385000B4012093B5013093B6011F910F910C94E0 +:1038600029170F931F930091B3011091B401209178 +:10387000B5013091B601062317232823392300937D +:10388000B3011093B4012093B5013093B6011F9199 +:103890000F910C9429170F931F930091B30110916E +:1038A000B4012091B5013091B601062717272827CA +:1038B00039270093B3011093B4012093B5013093DD +:1038C000B6011F910F910C9429170895CF92DF92A2 +:1038D000EF92FF920F931F93CF93DF93EC01C09071 +:1038E000B701D090B801E090B901F090BA01809191 +:1038F000B3019091B401A091B501B091B601C82A6D +:10390000D92AEA2AFB2A0FE110E0B701A601002E0E +:1039100004C076956795579547950A94D2F740FF6E +:1039200007C0BE01802F0E9498098130910539F4AB +:103930000150110950F7BE0180E00E949809DF9103 +:10394000CF911F910F91FF90EF90DF90CF9008954E +:1039500090910C019923D9F090910D019923B9F020 +:10396000982F9695969596959F3088F5E0910E0143 +:10397000F0910F01E90FF11D877021E030E001C0E7 +:10398000220F8A95EAF78181822B818308954091E5 +:103990000E0150910F0120E030E09FEFFA01E20F9D +:1039A000F31F6281681799F09F3F19F4611101C0FC +:1039B000922F2F5F3F4F2E30310581F79F3F39F017 +:1039C000FA01E90FF11D97FDFA9582830895089594 +:1039D00090910C019923E1F090910D019923C1F090 +:1039E000982F9695969596959F3020F5E0910E012B +:1039F000F0910F01E90FF11D877021E030E001C067 +:103A0000220F8A95EAF72095818128232183089542 +:103A100040910E0150910F0120E030E0FA01E20FD9 +:103A2000F31F9281981301C012822F5F3F4F2E30F7 +:103A30003105A1F7089581E090E0E0910E01F09149 +:103A40000F01E80FF91F1082019680319105A9F747 +:103A500008959091CE01982B9093CE010895809572 +:103A60009091CE0198239093CE0108951092CE01AB +:103A700008959091CD01982B9093CD010895809554 +:103A80009091CD0198239093CD0108951092CD018E +:103A900008959091CC01982B9093CC010895809536 +:103AA0009091CC0198239093CC0108951092CC0171 +:103AB00008958093BB0108951092BB010895409131 +:103AC0000E0150910F0120E030E080E0FA01E20F9A +:103AD000F31F918191118F5F2F5F3F4F2F30310581 +:103AE000A9F70895E0910E01F0910F018091CE01A8 +:103AF0008083E0910E01F0910F0180819091CD01C2 +:103B0000892B8083E0910E01F0910F0180819091CB +:103B1000CC01892B80839091BB01992361F0E091C6 +:103B20000E01F0910F018081892B80830E945F1D1F +:103B300081111092BB0180910E0190910F010C94A4 +:103B4000DA11CF92DF92EF92FF920F931F936C01E5 +:103B5000EE24FF24C114D104E104F10421F46B012B +:103B60007C0180E001C080E133272F2D1E2D0D2D1B +:103B7000011511052105310519F0885F68017901EA +:103B800097018601A4E03695279517950795AA9584 +:103B9000D1F7011511052105310519F08C5F680178 +:103BA000790197018601F2E03695279517950795DB +:103BB000FA95D1F7011511052105310519F08E5F30 +:103BC00068017901B701A6017695679557954795E4 +:103BD000452B462B472B09F08F5F1F910F91FF90CC +:103BE000EF90DF90CF9008958091E801843009F143 +:103BF0001092D00120E488E190E00FB6F894A895E7 +:103C0000809360000FBE2093600083B7817F846043 +:103C100083BF83B7816083BF7894889583B78E7F95 +:103C200083BF88E10FB6F894809360001092600023 +:103C30000FBE089508950895CF930E941A1E0E9402 +:103C4000C2070E941B1EC0E08C2F0E94AF0881118A +:103C500005C0CF5FCE30C1F780E001C081E0CF91D9 +:103C600008950E943D170E94CE110C94D30A82E061 +:103C700084BD93E095BD9AEF97BD80936E00089543 +:103C80002FB7F8948091D1019091D201A091D301E6 +:103C9000B091D4012FBF0895CF92DF92EF92FF929F +:103CA0000F931F932FB7F8944091D1015091D201F7 +:103CB0006091D3017091D4012FBF6A017B01EE2482 +:103CC000FF248C0120E030E0C016D106E206F306A6 +:103CD00010F441505109481B590BCA011F910F9113 +:103CE000FF90EF90DF90CF9008951F920F920FB644 +:103CF0000F9211248F939F93AF93BF938091D10123 +:103D00009091D201A091D301B091D4010196A11D4F +:103D1000B11D8093D1019093D201A093D301B093B0 +:103D2000D401BF91AF919F918F910F900FBE0F90D3 +:103D30001F9018950E94D40EF8942FEF87EA91E611 +:103D4000215080409040E1F700C0000087E090EBF8 +:103D5000DC018093F1019093F201A093F301B09301 +:103D6000F4012CE088E190E00FB6F894A8958093D8 +:103D700060000FBE20936000FFCFEF92FF920F9381 +:103D80001F93CF93DF93E82EF12C8F2D0E94AF0865 +:103D9000C0E0D0E0082F10E098010C2E02C035954D +:103DA00027950A94E2F720FD05C02196C630D1057B +:103DB00099F709C06C2F7F2D80E00E947609E812E8 +:103DC000F4CF81E005C0F3948EE0F812DECF80E0FE +:103DD000DF91CF911F910F91FF90EF900895CF93B6 +:103DE000C82F8CE20E94BD1E882321F08C2FCF911A +:103DF0000C94BD1E80E0CF910895CF930E94422085 +:103E0000811102C00E942820C5E6C15049F00E94DD +:103E1000C2078FE39CE90197F1F700C00000F5CFDE +:103E200089E20E94EF1E811111C18AE20E94EF1EF9 +:103E300081110E94282085E00E94EF1E81110E94BE +:103E40009A1E0E944D208093CF0187E00E94EF1EB2 +:103E5000882399F18BE10E94EF1E882351F0909105 +:103E6000CF0191FB882780F921E0822780FB91F91F +:103E700022C08EE00E94EF1E882351F09091CF0166 +:103E800092FB882780F921E0822780FB92F913C0FA +:103E900080E10E94EF1E9091CF01882341F093FBB7 +:103EA000882780F921E0822780FB93F904C0892FBD +:103EB000809580FB90F99093CF018091CF010E9473 +:103EC00051200E945F208093E20180EE0E94EF1E4D +:103ED000882341F08091E201982F909590FB80F922 +:103EE0008093E20189E30E94EF1E882359F09091AC +:103EF000E20191FB882780F921E0822780FB91F97C +:103F00009093E20182EE0E94EF1E882359F0909177 +:103F1000E20192FB882780F921E0822780FB92F959 +:103F20009093E20186EE0E94EF1E882359F0909153 +:103F3000E20193FB882780F921E0822780FB93F937 +:103F40009093E20183EE0E94EF1E882359F0909136 +:103F5000E20194FB882780F921E0822780FB94F915 +:103F60009093E20185E30E94EF1E882359F090911F +:103F7000E20195FB882780F921E0822780FB95F9F3 +:103F80009093E20181E30E94EF1E882359F0909103 +:103F9000E20196FB882780F921E0822780FB96F9D1 +:103FA0009093E20181E10E94EF1E882359F09091E5 +:103FB000E20197FB882780F921E0822780FB97F9AF +:103FC0009093E2018091E2010E9463208091E201DE +:103FD00087FB882780F980930D0187E20E94EF1EFE +:103FE000C82F8EE10E94EF1E8111C2608FE10E94F6 +:103FF000EF1E8111C46080E20E94EF1E8111C86033 +:1040000081E20E94EF1E8111C06182E20E94EF1ED8 +:104010008111C06283E20E94EF1E8111C06484E2BC +:104020000E94EF1E882311F0C06802C0CC2329F043 +:104030008C2F0E945A206C2F03C00E945620682F9C +:1040400070E080E090E0CF910C94391BCF910895FF +:104050006DEE7EEF80E090E00E94812660E082E0DD +:1040600090E00E94732660E083E090E00E94732657 +:1040700060E084E090E00E94732660E085E090E0DC +:104080000C94732680E090E00E946D2621E08D3E26 +:104090009E4F09F020E0822F089582E090E00C947A +:1040A0006526682F82E090E00C94732683E090E010 +:1040B0000C946526682F83E090E00C94732684E0CE +:1040C00090E00C946526682F84E090E00C947326B1 +:1040D0008091D70180FF0BC06091130185E0689F3C +:1040E000B001112475956795759567952AC081FF74 +:1040F00009C06091130185E0689FB0011124759596 +:1041000067951FC082FF07C06091130185E0689F1B +:10411000B001112416C04091D8014423C9F0609128 +:104120001201461788F72091130185E0289F90011E +:104130001124429FC001439F900D112470E00E9402 +:1041400037266038710540F46115710539F002C0F9 +:1041500065E070E0862F08958FE7089581E0089567 +:104160008091D70180FF08C06091110170E07595C2 +:1041700067957595679521C081FF06C06091110113 +:1041800070E07595679519C082FF04C060911101B8 +:1041900070E010C08091D8018823C1F060911001B7 +:1041A0008617A0F790911101989FC001112470E02B +:1041B0000E9437266038710528F46115710521F0D9 +:1041C000862F08958FE7089581E0089561E070E0FB +:1041D000F4CF803F21F40E946820819504C0813F84 +:1041E00029F40E9468208093DB010895823F21F426 +:1041F0000E946820819504C0833F29F40E946820B2 +:104200008093DA010895893F19F40E94B02005C017 +:104210008A3F31F40E94B02081958093DC0108959B +:104220008B3F21F40E94B020819504C08C3F29F47B +:104230000E94B0208093DD010895843F21F4809195 +:10424000D901816017C0853F21F48091D901826036 +:1042500011C0863F21F48091D90184600BC0873F53 +:1042600021F48091D901886005C0883F31F48091A4 +:10427000D90180618093D90108958D3F21F4809107 +:10428000D70181600BC08E3F21F48091D7018260FD +:1042900005C08F3F29F48091D70184608093D701B6 +:1042A0000895803F39F48091DB0187FF6CC0109244 +:1042B000DB0169C0813F29F48091DB011816BCF352 +:1042C00062C09091DA01823F29F497FF5CC010929E +:1042D000DA0159C0833F19F41916CCF354C0893F51 +:1042E00041F48091DC0118160CF04DC01092DC01F5 +:1042F0004AC08A3F29F48091DC0187FF44C0F6CF91 +:104300008B3F39F48091DD0187FF3DC01092DD01C4 +:104310003AC08C3F29F48091DD011816BCF333C0FC +:10432000843F21F48091D9018E7F17C0853F21F40D +:104330008091D9018D7F11C0863F21F48091D901F0 +:104340008B7F0BC0873F21F48091D901877F05C007 +:10435000883F31F48091D9018F7E8093D90113C0B9 +:104360008D3F21F48091D7018E7F0BC08E3F21F4C9 +:104370008091D7018D7F05C08F3F29F48091D701AF +:104380008B7F8093D7018091DA0181110EC08091DB +:10439000DB0181110AC08091DC01811106C080918E +:1043A000DD01811102C01092D801089589ED91E0DC +:1043B0000E94E5110E94401E9093D6018093D50182 +:1043C00008951F93CF93DF938091D5019091D601EB +:1043D0000E944C1E4091D801442321F020911401E9 +:1043E00030E006C0209115015AE0259F900111246C +:1043F0008217930708F482C08091DA011091DB01E3 +:10440000D091DC01C091DD01811107C0111105C0FF +:10441000D11103C0CC2309F471C04F3F19F04F5F95 +:104420004093D801181624F40E9468208093DA0182 +:104430008091DA0187FF05C00E94682081958093F2 +:10444000DA01111624F40E9468208093DB01809128 +:10445000DB0187FF05C00E94682081958093DB0106 +:104460006091DA01662339F11091DB01112319F112 +:10447000772767FD7095872F972F0E94482523E3A4 +:1044800033E343E35FE30E94AC250E94152560936C +:10449000DA01612F772767FD7095872F972F0E948C +:1044A000482523E333E343E35FE30E94AC250E9406 +:1044B00015256093DB011D1624F40E94B020809323 +:1044C000DC018091DC0187FF05C00E94B02081954E +:1044D0008093DC011C1624F40E94B0208093DD013F +:1044E0008091DD0187FF05C00E94B02081958093F7 +:1044F000DD01DF91CF911F910C94D621DF91CF91F7 +:104500001F910895E9EDF1E085E0DF011D928A95A4 +:10451000E9F71092D8011092D7010895833081F104 +:1045200028F4813059F08230D1F00895853009F4B3 +:1045300049C0B8F1863009F456C00895209115019C +:10454000862F90E0820F911D8F3F910520F4620F1E +:104550006093150108958FEF8093150108952091C0 +:104560001401862F90E0820F911D8F3F910520F45A +:10457000620F6093140108958FEF809314010895E2 +:1045800020911301862F90E0820F911D8F3F91059E +:1045900020F4620F6093130108958FEF809313014D +:1045A000089520911201862F90E0820F911D8F3F78 +:1045B000910520F4620F6093120108958FEF8093AC +:1045C0001201089520911101862F90E0820F911D14 +:1045D0008F3F910520F4620F6093110108958FEFD2 +:1045E00080931101089520911001862F90E0820F91 +:1045F000911D8F3F910520F4620F60931001089583 +:104600008FEF809310010895833011F128F48130E9 +:1046100049F0823091F00895853081F120F18630A3 +:10462000C1F1089580911501681720F4861B8093CD +:1046300015010895109215010895809114016817CD +:1046400020F4861B8093140108951092140108959C +:1046500080911301681720F4861B8093130108953D +:1046600010921301089580911201681720F4861B9F +:104670008093120108951092120108958091110102 +:10468000681720F4861B8093110108951092110180 +:10469000089580911001681720F4861B8093100103 +:1046A00008951092100108958D3109F442C020F54B +:1046B0008E3009F47CC070F4873009F45EC020F4B9 +:1046C000863009F442C033C08830D1F18B3009F410 +:1046D000AAC02DC0863109F4A6C038F4803109F48F +:1046E00070C0813109F47EC022C0893109F49BC0B9 +:1046F0008B3109F452C01BC0853309F48CC048F4D7 +:10470000873209F488C008F478C0893209F483C07C +:104710000EC0833438F48A3308F06DC0883309F44E +:1047200082C005C0833409F476C08834C1F080E0CB +:1047300008950E94CF240E94CE110E94D30A73C014 +:104740000E944D200E945F206EC08091CF01817F2A +:104750008E7F8093CF0181E08093DF0108950E94D6 +:104760003D172FEF83ED90E3215080409040E1F71B +:1047700000C000000E949A1E56C09091CF01892F60 +:104780008095817080FB90F919F09660986027C041 +:10479000997F977F9093CF0146C09091CF0191FB75 +:1047A000882780F921E0822780FB91F913C090913E +:1047B000CF0192FB882780F921E0822780FB92F9C4 +:1047C00009C09091CF0193FB882780F921E08227CF +:1047D00080FB93F99093CF01882329F19160909306 +:1047E000CF0108950E943D1780910D0191E0892726 +:1047F00080930D0118C027EC01C023EE280F61E063 +:1048000070E080E090E004C0660F771F881F991F5A +:104810002A95D2F704C061E070E080E090E00E9449 +:10482000391B0E943D1781E0089580E0089580E0E3 +:104830000895CF93C82F8091DF01813079F018F06F +:104840008230D1F184C0A0910E01B0910F018C9102 +:10485000813169F0823209F07CC009C0A0910E015B +:10486000B0910F018C91813111F0823249F48C2F7B +:104870000E94152481111DC08C2F0E9454231AC040 +:104880008C2F0E941724811114C0C43179F048F490 +:10489000CB3079F0C03109F060C082E08093DF0155 +:1048A00008C0C93219F0C83321F057C01092DF0197 +:1048B00054C081E0817053C0C93289F118F5C43108 +:1048C00071F1A8F4C73009F046C08AE08093150161 +:1048D00094E19093140193E090931301809312015B +:1048E00088E08093110188E28093100134C0CE519A +:1048F000C63088F5EC2FF0E0E65DFE4F80818093B6 +:10490000DE0129C0CE34E9F020F4CB3421F56AE091 +:1049100013C0C13579F0C235F1F461E00DC080916A +:10492000DE01882319F01092DE0115C081E080932A +:10493000DF0115C061E006C08091DE010E948E2279 +:104940000AC06AE08091DE010E94042304C0109234 +:10495000DF0180E004C081E002C080E0ABCFCF91F6 +:104960000895E1E8F0E08081886080838081816043 +:1049700080838FB7F89493E09093890090ED9093A3 +:1049800088008FBF0895EFE6F0E080818260808329 +:104990000895EFE6F0E080818D7F80830895EFE653 +:1049A000F0E0808192E08927808308951F920F9222 +:1049B0000FB60F9211242F933F934F935F936F93F2 +:1049C0007F938F939F93AF93BF93EF93FF938091C8 +:1049D000E0019091E10101969093E1018093E00163 +:1049E000811103C082E00E94D30AE091E101E695C3 +:1049F000E695F0E0EC51F84FE4918091E0018E13E0 +:104A000003C080E00E94D30AFF91EF91BF91AF9164 +:104A10009F918F917F916F915F914F913F912F91D6 +:104A20000F900FBE0F901F90189504D06894B1118D +:104A30008DC0089570D088F09F5790F0B92F9927B6 +:104A4000B751A0F0D1F0660F771F881F991F1AF099 +:104A5000BA95C9F712C0B13081F077D0B1E00895AE +:104A600074C0672F782F8827B85F39F0B93FCCF32F +:104A7000869577956795B395D9F73EF4909580958F +:104A8000709561957F4F8F4F9F4F0895E89409C0AF +:104A900097FB3EF490958095709561957F4F8F4F71 +:104AA0009F4F9923A9F0F92F96E9BB279395F69587 +:104AB000879577956795B795F111F8CFFAF4BB0F05 +:104AC00011F460FF1BC06F5F7F4F8F4F9F4F16C069 +:104AD000882311F096E911C0772321F09EE8872FF3 +:104AE000762F05C0662371F096E8862F70E060E0AF +:104AF0002AF09A95660F771F881FDAF7880F969528 +:104B0000879597F9089557FD9058440F551F59F010 +:104B10005F3F71F04795880F97FB991F61F09F3FAA +:104B200079F087950895121613061406551FF2CFD3 +:104B30004695F1DF08C0161617061806991FF1CF23 +:104B400086957105610508940895E894BB2766274A +:104B50007727CB0197F908950BD078C069D028F05A +:104B60006ED018F0952309F05AC05FC01124EECF23 +:104B7000CADFA0F3959FD1F3950F50E0551F629FB8 +:104B8000F001729FBB27F00DB11D639FAA27F00DA6 +:104B9000B11DAA1F649F6627B00DA11D661F829FCD +:104BA0002227B00DA11D621F739FB00DA11D621FB2 +:104BB000839FA00D611D221F749F3327A00D611DCF +:104BC000231F849F600D211D822F762F6A2F1124B1 +:104BD0009F5750408AF0E1F088234AF0EE0FFF1F04 +:104BE000BB1F661F771F881F91505040A9F79E3F3B +:104BF000510570F014C0AACF5F3FECF3983EDCF390 +:104C0000869577956795B795F795E7959F5FC1F777 +:104C1000FE2B880F911D9695879597F9089597F922 +:104C20009F6780E870E060E008959FEF80EC089552 +:104C300000240A941616170618060906089500247B +:104C40000A9412161306140605060895092E0394F5 +:104C5000000C11F4882352F0BB0F40F4BF2B11F469 +:104C600060FF04C06F5F7F4F8F4F9F4F089597FB8A +:104C7000072E16F4009407D077FD09D00E94512624 +:104C800007FC05D03EF4909581959F4F089570954F +:104C900061957F4F0895EE0FFF1F0590F491E02D71 +:104CA0000994AA1BBB1B51E107C0AA1FBB1FA61773 +:104CB000B70710F0A61BB70B881F991F5A95A9F7C5 +:104CC00080959095BC01CD010895F999FECF92BDD4 +:104CD00081BDF89A992780B50895A8E1B0E042E037 +:104CE00050E00C948826262FF999FECF1FBA92BD6A +:104CF00081BD20BD0FB6F894FA9AF99A0FBE0196BD +:104D000008950E947326272F0C947426DC01CB0192 +:104D1000FC01F999FECF06C0F2BDE1BDF89A3196CB +:104D200000B40D9241505040B8F70895F894FFCF69 +:104D30002002D50A620B3F0B0B0BD80A0101BC0104 +:104D400028080A03140A3F4D3639A50758072207D9 +:104D5000E9067C069506AE06C706010203040506B1 +:044D60000708090037 +:00000001FF diff --git a/keyboard/ergodox_ez/keymaps/german-manuneo/keymap.c b/keyboard/ergodox_ez/keymaps/german-manuneo/keymap.c new file mode 100644 index 0000000000..d8911af412 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/german-manuneo/keymap.c @@ -0,0 +1,783 @@ +#include "ergodox_ez.h" +#include "action_layer.h" +#include "keymap_common.h" +#include "keymap_extras/keymap_german.h" + +#define UC_ASYMPTOTICALLY_EQUAL_TO 0 +#define UC_DIVISION_SIGN 1 +#define UC_DOWNWARDS_ARROW 2 +#define UC_ELEMENT_OF 3 +#define UC_EMPTY_SET 4 +#define UC_FOR_ALL 5 +#define UC_GREEK_CAPITAL_LETTER_ALPHA 6 +#define UC_GREEK_CAPITAL_LETTER_BETA 7 +#define UC_GREEK_CAPITAL_LETTER_CHI 8 +#define UC_GREEK_CAPITAL_LETTER_DELTA 9 +#define UC_GREEK_CAPITAL_LETTER_EPSILON 10 +#define UC_GREEK_CAPITAL_LETTER_ETA 11 +#define UC_GREEK_CAPITAL_LETTER_GAMMA 12 +#define UC_GREEK_CAPITAL_LETTER_IOTA 13 +#define UC_GREEK_CAPITAL_LETTER_KAPPA 14 +#define UC_GREEK_CAPITAL_LETTER_LAMDA 15 +#define UC_GREEK_CAPITAL_LETTER_MU 16 +#define UC_GREEK_CAPITAL_LETTER_NU 17 +#define UC_GREEK_CAPITAL_LETTER_OMEGA 18 +#define UC_GREEK_CAPITAL_LETTER_OMICRON 19 +#define UC_GREEK_CAPITAL_LETTER_PHI 20 +#define UC_GREEK_CAPITAL_LETTER_PI 21 +#define UC_GREEK_CAPITAL_LETTER_PSI 22 +#define UC_GREEK_CAPITAL_LETTER_RHO 23 +#define UC_GREEK_CAPITAL_LETTER_SIGMA 24 +#define UC_GREEK_CAPITAL_LETTER_TAU 25 +#define UC_GREEK_CAPITAL_LETTER_THETA 26 +#define UC_GREEK_CAPITAL_LETTER_UPSILON 27 +#define UC_GREEK_CAPITAL_LETTER_XI 28 +#define UC_GREEK_CAPITAL_LETTER_ZETA 29 +#define UC_GREEK_SMALL_LETTER_ALPHA 30 +#define UC_GREEK_SMALL_LETTER_BETA 31 +#define UC_GREEK_SMALL_LETTER_CHI 32 +#define UC_GREEK_SMALL_LETTER_DELTA 33 +#define UC_GREEK_SMALL_LETTER_EPSILON 34 +#define UC_GREEK_SMALL_LETTER_ETA 35 +#define UC_GREEK_SMALL_LETTER_FINAL_SIGMA 36 +#define UC_GREEK_SMALL_LETTER_GAMMA 37 +#define UC_GREEK_SMALL_LETTER_IOTA 38 +#define UC_GREEK_SMALL_LETTER_KAPPA 39 +#define UC_GREEK_SMALL_LETTER_LAMDA 40 +#define UC_GREEK_SMALL_LETTER_MU 41 +#define UC_GREEK_SMALL_LETTER_NU 42 +#define UC_GREEK_SMALL_LETTER_OMEGA 43 +#define UC_GREEK_SMALL_LETTER_OMICRON 44 +#define UC_GREEK_SMALL_LETTER_PHI 45 +#define UC_GREEK_SMALL_LETTER_PI 46 +#define UC_GREEK_SMALL_LETTER_PSI 47 +#define UC_GREEK_SMALL_LETTER_RHO 48 +#define UC_GREEK_SMALL_LETTER_SIGMA 49 +#define UC_GREEK_SMALL_LETTER_TAU 50 +#define UC_GREEK_SMALL_LETTER_THETA 51 +#define UC_GREEK_SMALL_LETTER_UPSILON 52 +#define UC_GREEK_SMALL_LETTER_XI 53 +#define UC_GREEK_SMALL_LETTER_ZETA 54 +#define UC_INFINITY 55 +#define UC_LEFTWARDS_ARROW 56 +#define UC_MULTIPLICATION_SIGN 57 +#define UC_NOT_AN_ELEMENT_OF 58 +#define UC_NOT_EQUAL_TO 59 +#define UC_PLUS_MINUS_SIGN 60 +#define UC_RIGHTWARDS_ARROW 61 +#define UC_SUBSCRIPT_EIGHT 62 +#define UC_SUBSCRIPT_FIVE 63 +#define UC_SUBSCRIPT_FOUR 64 +#define UC_SUBSCRIPT_NINE 65 +#define UC_SUBSCRIPT_ONE 66 +#define UC_SUBSCRIPT_SEVEN 67 +#define UC_SUBSCRIPT_SIX 68 +#define UC_SUBSCRIPT_THREE 69 +#define UC_SUBSCRIPT_TWO 70 +#define UC_SUBSCRIPT_ZERO 71 +#define UC_SUPERSCRIPT_EIGHT 72 +#define UC_SUPERSCRIPT_FIVE 73 +#define UC_SUPERSCRIPT_FOUR 74 +#define UC_SUPERSCRIPT_LATIN_SMALL_LETTER_N 75 +#define UC_SUPERSCRIPT_NINE 76 +#define UC_SUPERSCRIPT_ONE 77 +#define UC_SUPERSCRIPT_SEVEN 78 +#define UC_SUPERSCRIPT_SIX 79 +#define UC_SUPERSCRIPT_THREE 80 +#define UC_SUPERSCRIPT_TWO 81 +#define UC_SUPERSCRIPT_ZERO 82 +#define UC_THERE_DOES_NOT_EXIST 83 +#define UC_THERE_EXISTS 84 +#define UC_UPWARDS_ARROW 85 +#define UC_VULGAR_FRACTION_ONE_EIGHTH 86 +#define UC_VULGAR_FRACTION_ONE_FIFTH 87 +#define UC_VULGAR_FRACTION_ONE_HALF 88 +#define UC_VULGAR_FRACTION_ONE_QUARTER 89 +#define UC_VULGAR_FRACTION_ONE_SIXTH 90 +#define UC_VULGAR_FRACTION_ONE_THIRD 91 +#define UC_VULGAR_FRACTION_THREE_QUARTERS 92 +#define UC_VULGAR_FRACTION_TWO_THIRDS 93 +#define UM 94 + +#define L0 0 // layer_0 +#define L1 1 // layer_1 +#define L2 2 // layer_2 +#define L3 3 // layer_3 +#define L4 4 // layer_4 +#define L5 5 // layer_5 +#define L6 6 // layer_6 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* + * .------------------------------------.------------------------------------. + * |MO(5)| 1 | 2 | 3 | 4 | 5 |ACUT | GRV | 6 | 7 | 8 | 9 | 0 |CIRC | + * !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----! + * |MO(4)| X | P | F | W | G |HOME |TG(2)| H | J | K | L | Q | Z | + * !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + * |MO(1)| U | I | A | E | O |-----!-----! S | N | R | T | D | SS | + * !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + * |MO(3)| UE | OE | AE | C | V |END | TAB | B | M |COMM| DOT| UP | Y | + * '-----+----+----+----+----+----------'----------+----+----+----+----+-----' + * | | |LGUI|LALT|LCTL| !RCTL|RALT|LEFT|DOWN|RGHT| + * '------------------------' '------------------------' + * .-----------. .-----------. + * |INS |TG(2)| !M(UM)|DELT | + * .-----+-----+-----! !-----+-----+-----. + * ! ! | APP | ! PGUP| ! ! + * ! ! !-----! !-----! ! ! + * |BSPC |LSFT | ESC | ! PGDN|ENTER|SPACE| + * '-----------------' '-----------------' + */ +[L0] = KEYMAP( + MO(5), DE_1, DE_2, DE_3, DE_4, DE_5, DE_ACUT, + MO(4), DE_X, DE_P, DE_F, DE_W, DE_G, KC_HOME, + MO(1), DE_U, DE_I, DE_A, DE_E, DE_O, + MO(3), DE_UE, DE_OE, DE_AE, DE_C, DE_V, KC_END, + KC_TRNS, KC_TRNS, KC_LGUI, KC_LALT, KC_LCTL, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_INS, TG(2), + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_APP, + /*-*/ /*-*/ /*-*/ /*-*/ KC_BSPC, KC_LSFT, KC_ESC, + DE_GRV, DE_6, DE_7, DE_8, DE_9, DE_0, DE_CIRC, + TG(2), DE_H, DE_J, DE_K, DE_L, DE_Q, DE_Z, + /*-*/ DE_S, DE_N, DE_R, DE_T, DE_D, DE_SS, + KC_TAB, DE_B, DE_M, DE_COMM, DE_DOT, KC_UP, DE_Y, + /*-*/ /*-*/ KC_RCTL, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT, + M(UM), KC_DELT, + KC_PGUP, + KC_PGDN, KC_ENTER, KC_SPACE +), +/* + * .------------------------------------.------------------------------------. + * | |EXLM|DQOT|PARA| | | | | | | | |RING| | + * !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----! + * | |ASTR|PIPE|SLSH|LCBR|RCBR| | |HASH|LESS|MORE| |DQOT| | + * !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + * | |UNDS|MINS|AMPR|LBRC|RBRC|-----!-----!DLR |LPRN|RPRN|TILD|QUOT| QST | + * !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + * | | |PLUS|EQL | | | | |BSLS|PERC|SCLN|COLN| ↑ | | + * '-----+----+----+----+----+----------'----------+----+----+----+----+-----' + * | | | | | | ! | | ← | ↓ | → | + * '------------------------' '------------------------' + * .-----------. .-----------. + * | | | ! | | + * .-----+-----+-----! !-----+-----+-----. + * ! ! | | ! | ! ! + * ! ! !-----! !-----! ! ! + * | | | | ! | | | + * '-----------------' '-----------------' + */ +[L1] = KEYMAP( + KC_TRNS, DE_EXLM, DE_DQOT, DE_PARA, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, DE_ASTR, DE_PIPE, DE_SLSH, DE_LCBR, DE_RCBR, KC_TRNS, + KC_TRNS, DE_UNDS, DE_MINS, DE_AMPR, DE_LBRC, DE_RBRC, + KC_TRNS, KC_TRNS, DE_PLUS, DE_EQL, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, + /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, DE_RING, KC_TRNS, + KC_TRNS, DE_HASH, DE_LESS, DE_MORE, KC_TRNS, DE_DQOT, KC_TRNS, + /*-*/ DE_DLR, DE_LPRN, DE_RPRN, DE_TILD, DE_QUOT, DE_QST, + KC_TRNS, DE_BSLS, DE_PERC, DE_SCLN, DE_COLN, M(UC_UPWARDS_ARROW), KC_TRNS, + /*-*/ /*-*/ KC_TRNS, KC_TRNS, M(UC_LEFTWARDS_ARROW), M(UC_DOWNWARDS_ARROW), M(UC_RIGHTWARDS_ARROW), + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS +), +/* + * .------------------------------------.------------------------------------. + * | | F1 | F2 | F3 | F4 | F5 | F11 | F12 | F6 | F7 | F8 | F9 |F10 |PEQL | + * !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----! + * | | | | | | | | | | P7 | P8 | P9 |PAST|PSLS | + * !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + * | | | | | | |-----!-----! | P4 | P5 | P6 |PMNS|PMNS | + * !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + * | | | | | | | | NLCK| | P1 | P2 | P3 |PPLS|PPLS | + * '-----+----+----+----+----+----------'----------+----+----+----+----+-----' + * | | | | | | ! P0 |PCMM|PDOT|PENT|PENT| + * '------------------------' '------------------------' + * .-----------. .-----------. + * | | | ! | | + * .-----+-----+-----! !-----+-----+-----. + * ! ! | | ! | ! ! + * ! ! !-----! !-----! ! ! + * | | | | ! | | | + * '-----------------' '-----------------' + */ +[L2] = KEYMAP( + KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F11, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, + /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, + KC_F12, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_PEQL, + KC_TRNS, KC_TRNS, KC_P7, KC_P8, KC_P9, KC_PAST, KC_PSLS, + /*-*/ KC_TRNS, KC_P4, KC_P5, KC_P6, KC_PMNS, KC_PMNS, + KC_NLCK, KC_TRNS, KC_P1, KC_P2, KC_P3, KC_PPLS, KC_PPLS, + /*-*/ /*-*/ KC_P0, KC_PCMM, KC_PDOT, KC_PENT, KC_PENT, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS +), +/* + * .------------------------------------.------------------------------------. + * | | ¹ | ² | ³ | ⁴ | ⁵ | ∀ | | ⁶ | ⁷ | ⁸ | ⁹ | ⁰ | | + * !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----! + * | | × | ½ | ÷ | ¼ | ⅕ | | | ⅙ | | ⅛ | | | | + * !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + * | | | ± | AT |EURO| ∅ |-----!-----! ∞ | ⁿ | ∃ | ∈ | | | + * !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + * | | ⅓ | ≠ | ⅔ | ¾ | ≃ | | |EXLM| | ∄ | ∉ | | | + * '-----+----+----+----+----+----------'----------+----+----+----+----+-----' + * | | | | | | ! | | | | | + * '------------------------' '------------------------' + * .-----------. .-----------. + * | | | ! | | + * .-----+-----+-----! !-----+-----+-----. + * ! ! | | ! | ! ! + * ! ! !-----! !-----! ! ! + * | | | | ! | | | + * '-----------------' '-----------------' + */ +[L3] = KEYMAP( + KC_TRNS, M(UC_SUPERSCRIPT_ONE), M(UC_SUPERSCRIPT_TWO), M(UC_SUPERSCRIPT_THREE), M(UC_SUPERSCRIPT_FOUR), M(UC_SUPERSCRIPT_FIVE), M(UC_FOR_ALL), + KC_TRNS, M(UC_MULTIPLICATION_SIGN), M(UC_VULGAR_FRACTION_ONE_HALF), M(UC_DIVISION_SIGN), M(UC_VULGAR_FRACTION_ONE_QUARTER), M(UC_VULGAR_FRACTION_ONE_FIFTH), KC_TRNS, + KC_TRNS, KC_TRNS, M(UC_PLUS_MINUS_SIGN), DE_AT, DE_EURO, M(UC_EMPTY_SET), + KC_TRNS, M(UC_VULGAR_FRACTION_ONE_THIRD), M(UC_NOT_EQUAL_TO), M(UC_VULGAR_FRACTION_TWO_THIRDS), M(UC_VULGAR_FRACTION_THREE_QUARTERS), M(UC_ASYMPTOTICALLY_EQUAL_TO), KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, + /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, M(UC_SUPERSCRIPT_SIX), M(UC_SUPERSCRIPT_SEVEN), M(UC_SUPERSCRIPT_EIGHT), M(UC_SUPERSCRIPT_NINE), M(UC_SUPERSCRIPT_ZERO), KC_TRNS, + KC_TRNS, M(UC_VULGAR_FRACTION_ONE_SIXTH), KC_TRNS, M(UC_VULGAR_FRACTION_ONE_EIGHTH), KC_TRNS, KC_TRNS, KC_TRNS, + /*-*/ M(UC_INFINITY), M(UC_SUPERSCRIPT_LATIN_SMALL_LETTER_N), M(UC_THERE_EXISTS), M(UC_ELEMENT_OF), KC_TRNS, KC_TRNS, + KC_TRNS, DE_EXLM, KC_TRNS, M(UC_THERE_DOES_NOT_EXIST), M(UC_NOT_AN_ELEMENT_OF), KC_TRNS, KC_TRNS, + /*-*/ /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS +), +/* + * .------------------------------------.------------------------------------. + * | | ₁ | ₂ | ₃ | ₄ | ₅ | | | ₆ | ₇ | ₈ | ₉ | ₀ | | + * !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----! + * | | χ | π | φ | ω | γ | | | η | ξ | κ | λ | | ζ | + * !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + * | | υ | ι | α | ε | ο |-----!-----! σ | ν | ρ | τ | δ | ς | + * !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + * | | | θ | | | | | | β | μ | | | | ψ | + * '-----+----+----+----+----+----------'----------+----+----+----+----+-----' + * | | | | | | ! | | | | | + * '------------------------' '------------------------' + * .-----------. .-----------. + * | | | ! | | + * .-----+-----+-----! !-----+-----+-----. + * ! ! | | ! | ! ! + * ! ! !-----! !-----! ! ! + * | | | | ! | | | + * '-----------------' '-----------------' + */ +[L4] = KEYMAP( + KC_TRNS, M(UC_SUBSCRIPT_ONE), M(UC_SUBSCRIPT_TWO), M(UC_SUBSCRIPT_THREE), M(UC_SUBSCRIPT_FOUR), M(UC_SUBSCRIPT_FIVE), KC_TRNS, + KC_TRNS, M(UC_GREEK_SMALL_LETTER_CHI), M(UC_GREEK_SMALL_LETTER_PI), M(UC_GREEK_SMALL_LETTER_PHI), M(UC_GREEK_SMALL_LETTER_OMEGA), M(UC_GREEK_SMALL_LETTER_GAMMA), KC_TRNS, + KC_TRNS, M(UC_GREEK_SMALL_LETTER_UPSILON), M(UC_GREEK_SMALL_LETTER_IOTA), M(UC_GREEK_SMALL_LETTER_ALPHA), M(UC_GREEK_SMALL_LETTER_EPSILON), M(UC_GREEK_SMALL_LETTER_OMICRON), + KC_TRNS, KC_TRNS, M(UC_GREEK_SMALL_LETTER_THETA), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, + /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, M(UC_SUBSCRIPT_SIX), M(UC_SUBSCRIPT_SEVEN), M(UC_SUBSCRIPT_EIGHT), M(UC_SUBSCRIPT_NINE), M(UC_SUBSCRIPT_ZERO), KC_TRNS, + KC_TRNS, M(UC_GREEK_SMALL_LETTER_ETA), M(UC_GREEK_SMALL_LETTER_XI), M(UC_GREEK_SMALL_LETTER_KAPPA), M(UC_GREEK_SMALL_LETTER_LAMDA), KC_TRNS, M(UC_GREEK_SMALL_LETTER_ZETA), + /*-*/ M(UC_GREEK_SMALL_LETTER_SIGMA), M(UC_GREEK_SMALL_LETTER_NU), M(UC_GREEK_SMALL_LETTER_RHO), M(UC_GREEK_SMALL_LETTER_TAU), M(UC_GREEK_SMALL_LETTER_DELTA), M(UC_GREEK_SMALL_LETTER_FINAL_SIGMA), + KC_TRNS, M(UC_GREEK_SMALL_LETTER_BETA), M(UC_GREEK_SMALL_LETTER_MU), KC_TRNS, KC_TRNS, KC_TRNS, M(UC_GREEK_SMALL_LETTER_PSI), + /*-*/ /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS +), +/* + * .------------------------------------.------------------------------------. + * | | | | | | | | | | | | | | | + * !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----! + * | | Χ | Π | Φ | Ω | Γ | | | Η | Ξ | Κ | Λ | | Ζ | + * !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + * | | Υ | Ι | Α | Ε | Ο |-----!-----! Σ | Ν | Ρ | Τ | Δ | | + * !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + * | | | Θ | | | | | | Β | Μ | | | | Ψ | + * '-----+----+----+----+----+----------'----------+----+----+----+----+-----' + * | | | | | | ! | | | | | + * '------------------------' '------------------------' + * .-----------. .-----------. + * | | | ! | | + * .-----+-----+-----! !-----+-----+-----. + * ! ! | | ! | ! ! + * ! ! !-----! !-----! ! ! + * | | | | ! | | | + * '-----------------' '-----------------' + */ +[L5] = KEYMAP( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, M(UC_GREEK_CAPITAL_LETTER_CHI), M(UC_GREEK_CAPITAL_LETTER_PI), M(UC_GREEK_CAPITAL_LETTER_PHI), M(UC_GREEK_CAPITAL_LETTER_OMEGA), M(UC_GREEK_CAPITAL_LETTER_GAMMA), KC_TRNS, + KC_TRNS, M(UC_GREEK_CAPITAL_LETTER_UPSILON), M(UC_GREEK_CAPITAL_LETTER_IOTA), M(UC_GREEK_CAPITAL_LETTER_ALPHA), M(UC_GREEK_CAPITAL_LETTER_EPSILON), M(UC_GREEK_CAPITAL_LETTER_OMICRON), + KC_TRNS, KC_TRNS, M(UC_GREEK_CAPITAL_LETTER_THETA), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, + /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, M(UC_GREEK_CAPITAL_LETTER_ETA), M(UC_GREEK_CAPITAL_LETTER_XI), M(UC_GREEK_CAPITAL_LETTER_KAPPA), M(UC_GREEK_CAPITAL_LETTER_LAMDA), KC_TRNS, M(UC_GREEK_CAPITAL_LETTER_ZETA), + /*-*/ M(UC_GREEK_CAPITAL_LETTER_SIGMA), M(UC_GREEK_CAPITAL_LETTER_NU), M(UC_GREEK_CAPITAL_LETTER_RHO), M(UC_GREEK_CAPITAL_LETTER_TAU), M(UC_GREEK_CAPITAL_LETTER_DELTA), KC_TRNS, + KC_TRNS, M(UC_GREEK_CAPITAL_LETTER_BETA), M(UC_GREEK_CAPITAL_LETTER_MU), KC_TRNS, KC_TRNS, KC_TRNS, M(UC_GREEK_CAPITAL_LETTER_PSI), + /*-*/ /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS +), +/* + * .------------------------------------.------------------------------------. + * | | | | | | | | | | | | | | | + * !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----! + * | | | | | | | | | | | | | | | + * !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + * | | | | | | |-----!-----! | | | | | | + * !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + * | | | | | | | | | | | | | | | + * '-----+----+----+----+----+----------'----------+----+----+----+----+-----' + * | | | | | | ! | | | | | + * '------------------------' '------------------------' + * .-----------. .-----------. + * | | | ! | | + * .-----+-----+-----! !-----+-----+-----. + * ! ! | | ! | ! ! + * ! ! !-----! !-----! ! ! + * | | | | ! | | | + * '-----------------' '-----------------' + */ +[L6] = KEYMAP( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, + /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + /*-*/ /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS +), +}; + +const uint16_t PROGMEM fn_actions[] = {}; + +#define UC_MODE_WIN 0 +#define UC_MODE_LINUX 1 +#define UC_MODE_OSX 2 + +// TODO: allow default mode to be configured +static uint16_t unicode_mode = UC_MODE_WIN; + +uint16_t hextokeycode(uint8_t hex) { + if (hex == 0x0) { + return KC_P0; + } + if (hex < 0xA) { + return KC_P1 + (hex - 0x1); + } + return KC_A + (hex - 0xA); +} + +void unicode_action_function(uint16_t hi, uint16_t lo) { + switch (unicode_mode) { + case UC_MODE_WIN: + register_code(KC_LALT); + + register_code(KC_PPLS); + unregister_code(KC_PPLS); + + register_code(hextokeycode((hi & 0xF0) >> 4)); + unregister_code(hextokeycode((hi & 0xF0) >> 4)); + register_code(hextokeycode((hi & 0x0F))); + unregister_code(hextokeycode((hi & 0x0F))); + register_code(hextokeycode((lo & 0xF0) >> 4)); + unregister_code(hextokeycode((lo & 0xF0) >> 4)); + register_code(hextokeycode((lo & 0x0F))); + unregister_code(hextokeycode((lo & 0x0F))); + + unregister_code(KC_LALT); + break; + case UC_MODE_LINUX: + register_code(KC_LCTL); + register_code(KC_LSFT); + + register_code(KC_U); + unregister_code(KC_U); + + register_code(hextokeycode((hi & 0xF0) >> 4)); + unregister_code(hextokeycode((hi & 0xF0) >> 4)); + register_code(hextokeycode((hi & 0x0F))); + unregister_code(hextokeycode((hi & 0x0F))); + register_code(hextokeycode((lo & 0xF0) >> 4)); + unregister_code(hextokeycode((lo & 0xF0) >> 4)); + register_code(hextokeycode((lo & 0x0F))); + unregister_code(hextokeycode((lo & 0x0F))); + + unregister_code(KC_LCTL); + unregister_code(KC_LSFT); + break; + case UC_MODE_OSX: + break; + } +} + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { + if (!record->event.pressed) { + return MACRO_NONE; + } + // MACRODOWN only works in this function + switch(id) { + case UM: + unicode_mode = (unicode_mode + 1) % 2; + break; + +case UC_GREEK_SMALL_LETTER_OMICRON: + unicode_action_function(0x03, 0xbf); + break; +case UC_LEFTWARDS_ARROW: + unicode_action_function(0x21, 0x90); + break; +case UC_GREEK_CAPITAL_LETTER_RHO: + unicode_action_function(0x03, 0xa1); + break; +case UC_SUBSCRIPT_THREE: + unicode_action_function(0x20, 0x83); + break; +case UC_VULGAR_FRACTION_ONE_EIGHTH: + unicode_action_function(0x21, 0x5b); + break; +case UC_GREEK_SMALL_LETTER_LAMDA: + unicode_action_function(0x03, 0xbb); + break; +case UC_VULGAR_FRACTION_ONE_THIRD: + unicode_action_function(0x21, 0x53); + break; +case UC_GREEK_SMALL_LETTER_XI: + unicode_action_function(0x03, 0xbe); + break; +case UC_THERE_DOES_NOT_EXIST: + unicode_action_function(0x22, 0x04); + break; +case UC_SUPERSCRIPT_ONE: + unicode_action_function(0x00, 0xb9); + break; +case UC_GREEK_SMALL_LETTER_BETA: + unicode_action_function(0x03, 0xb2); + break; +case UC_SUBSCRIPT_FIVE: + unicode_action_function(0x20, 0x85); + break; +case UC_GREEK_CAPITAL_LETTER_IOTA: + unicode_action_function(0x03, 0x99); + break; +case UC_VULGAR_FRACTION_ONE_FIFTH: + unicode_action_function(0x21, 0x55); + break; +case UC_GREEK_SMALL_LETTER_PSI: + unicode_action_function(0x03, 0xc8); + break; +case UC_SUBSCRIPT_NINE: + unicode_action_function(0x20, 0x89); + break; +case UC_SUPERSCRIPT_FOUR: + unicode_action_function(0x20, 0x74); + break; +case UC_RIGHTWARDS_ARROW: + unicode_action_function(0x21, 0x92); + break; +case UC_SUPERSCRIPT_SIX: + unicode_action_function(0x20, 0x76); + break; +case UC_DOWNWARDS_ARROW: + unicode_action_function(0x21, 0x93); + break; +case UC_GREEK_SMALL_LETTER_PI: + unicode_action_function(0x03, 0xc0); + break; +case UC_SUPERSCRIPT_TWO: + unicode_action_function(0x00, 0xb2); + break; +case UC_GREEK_CAPITAL_LETTER_OMEGA: + unicode_action_function(0x03, 0xa9); + break; +case UC_GREEK_CAPITAL_LETTER_PSI: + unicode_action_function(0x03, 0xa8); + break; +case UC_SUBSCRIPT_FOUR: + unicode_action_function(0x20, 0x84); + break; +case UC_GREEK_CAPITAL_LETTER_NU: + unicode_action_function(0x03, 0x9d); + break; +case UC_DIVISION_SIGN: + unicode_action_function(0x00, 0xf7); + break; +case UC_GREEK_SMALL_LETTER_SIGMA: + unicode_action_function(0x03, 0xc3); + break; +case UC_GREEK_SMALL_LETTER_RHO: + unicode_action_function(0x03, 0xc1); + break; +case UC_VULGAR_FRACTION_ONE_SIXTH: + unicode_action_function(0x21, 0x59); + break; +case UC_GREEK_SMALL_LETTER_GAMMA: + unicode_action_function(0x03, 0xb3); + break; +case UC_VULGAR_FRACTION_TWO_THIRDS: + unicode_action_function(0x21, 0x54); + break; +case UC_GREEK_SMALL_LETTER_NU: + unicode_action_function(0x03, 0xbd); + break; +case UC_GREEK_SMALL_LETTER_ZETA: + unicode_action_function(0x03, 0xb6); + break; +case UC_GREEK_SMALL_LETTER_EPSILON: + unicode_action_function(0x03, 0xb5); + break; +case UC_GREEK_SMALL_LETTER_KAPPA: + unicode_action_function(0x03, 0xba); + break; +case UC_SUPERSCRIPT_SEVEN: + unicode_action_function(0x20, 0x77); + break; +case UC_GREEK_CAPITAL_LETTER_PI: + unicode_action_function(0x03, 0xa0); + break; +case UC_GREEK_SMALL_LETTER_FINAL_SIGMA: + unicode_action_function(0x03, 0xc2); + break; +case UC_GREEK_CAPITAL_LETTER_XI: + unicode_action_function(0x03, 0x9e); + break; +case UC_GREEK_SMALL_LETTER_THETA: + unicode_action_function(0x03, 0xb8); + break; +case UC_GREEK_SMALL_LETTER_ETA: + unicode_action_function(0x03, 0xb7); + break; +case UC_SUBSCRIPT_TWO: + unicode_action_function(0x20, 0x82); + break; +case UC_ASYMPTOTICALLY_EQUAL_TO: + unicode_action_function(0x22, 0x43); + break; +case UC_GREEK_SMALL_LETTER_ALPHA: + unicode_action_function(0x03, 0xb1); + break; +case UC_GREEK_CAPITAL_LETTER_PHI: + unicode_action_function(0x03, 0xa6); + break; +case UC_GREEK_SMALL_LETTER_PHI: + unicode_action_function(0x03, 0xc6); + break; +case UC_INFINITY: + unicode_action_function(0x22, 0x1e); + break; +case UC_GREEK_CAPITAL_LETTER_OMICRON: + unicode_action_function(0x03, 0x9f); + break; +case UC_ELEMENT_OF: + unicode_action_function(0x22, 0x08); + break; +case UC_MULTIPLICATION_SIGN: + unicode_action_function(0x00, 0xd7); + break; +case UC_SUBSCRIPT_ZERO: + unicode_action_function(0x20, 0x80); + break; +case UC_GREEK_CAPITAL_LETTER_SIGMA: + unicode_action_function(0x03, 0xa3); + break; +case UC_GREEK_SMALL_LETTER_OMEGA: + unicode_action_function(0x03, 0xc9); + break; +case UC_SUBSCRIPT_ONE: + unicode_action_function(0x20, 0x81); + break; +case UC_GREEK_CAPITAL_LETTER_ZETA: + unicode_action_function(0x03, 0x96); + break; +case UC_GREEK_SMALL_LETTER_TAU: + unicode_action_function(0x03, 0xc4); + break; +case UC_SUPERSCRIPT_FIVE: + unicode_action_function(0x20, 0x75); + break; +case UC_THERE_EXISTS: + unicode_action_function(0x22, 0x03); + break; +case UC_PLUS_MINUS_SIGN: + unicode_action_function(0x00, 0xb1); + break; +case UC_VULGAR_FRACTION_THREE_QUARTERS: + unicode_action_function(0x00, 0xbe); + break; +case UC_SUPERSCRIPT_THREE: + unicode_action_function(0x00, 0xb3); + break; +case UC_EMPTY_SET: + unicode_action_function(0x22, 0x05); + break; +case UC_UPWARDS_ARROW: + unicode_action_function(0x21, 0x91); + break; +case UC_SUPERSCRIPT_NINE: + unicode_action_function(0x20, 0x79); + break; +case UC_GREEK_SMALL_LETTER_DELTA: + unicode_action_function(0x03, 0xb4); + break; +case UC_GREEK_SMALL_LETTER_MU: + unicode_action_function(0x03, 0xbc); + break; +case UC_GREEK_CAPITAL_LETTER_KAPPA: + unicode_action_function(0x03, 0x9a); + break; +case UC_SUBSCRIPT_EIGHT: + unicode_action_function(0x20, 0x88); + break; +case UC_GREEK_CAPITAL_LETTER_ALPHA: + unicode_action_function(0x03, 0x91); + break; +case UC_SUBSCRIPT_SEVEN: + unicode_action_function(0x20, 0x87); + break; +case UC_GREEK_CAPITAL_LETTER_BETA: + unicode_action_function(0x03, 0x92); + break; +case UC_GREEK_CAPITAL_LETTER_ETA: + unicode_action_function(0x03, 0x97); + break; +case UC_SUPERSCRIPT_EIGHT: + unicode_action_function(0x20, 0x78); + break; +case UC_SUPERSCRIPT_ZERO: + unicode_action_function(0x20, 0x70); + break; +case UC_NOT_AN_ELEMENT_OF: + unicode_action_function(0x22, 0x09); + break; +case UC_GREEK_SMALL_LETTER_UPSILON: + unicode_action_function(0x03, 0xc5); + break; +case UC_NOT_EQUAL_TO: + unicode_action_function(0x22, 0x60); + break; +case UC_GREEK_CAPITAL_LETTER_CHI: + unicode_action_function(0x03, 0xa7); + break; +case UC_FOR_ALL: + unicode_action_function(0x22, 0x00); + break; +case UC_GREEK_CAPITAL_LETTER_TAU: + unicode_action_function(0x03, 0xa4); + break; +case UC_VULGAR_FRACTION_ONE_QUARTER: + unicode_action_function(0x00, 0xbc); + break; +case UC_GREEK_SMALL_LETTER_CHI: + unicode_action_function(0x03, 0xc7); + break; +case UC_GREEK_CAPITAL_LETTER_THETA: + unicode_action_function(0x03, 0x98); + break; +case UC_GREEK_SMALL_LETTER_IOTA: + unicode_action_function(0x03, 0xb9); + break; +case UC_GREEK_CAPITAL_LETTER_LAMDA: + unicode_action_function(0x03, 0x9b); + break; +case UC_SUPERSCRIPT_LATIN_SMALL_LETTER_N: + unicode_action_function(0x20, 0x7f); + break; +case UC_GREEK_CAPITAL_LETTER_UPSILON: + unicode_action_function(0x03, 0xa5); + break; +case UC_GREEK_CAPITAL_LETTER_MU: + unicode_action_function(0x03, 0x9c); + break; +case UC_GREEK_CAPITAL_LETTER_EPSILON: + unicode_action_function(0x03, 0x95); + break; +case UC_GREEK_CAPITAL_LETTER_GAMMA: + unicode_action_function(0x03, 0x93); + break; +case UC_SUBSCRIPT_SIX: + unicode_action_function(0x20, 0x86); + break; +case UC_GREEK_CAPITAL_LETTER_DELTA: + unicode_action_function(0x03, 0x94); + break; +case UC_VULGAR_FRACTION_ONE_HALF: + unicode_action_function(0x00, 0xbd); + break; + default: + break; + } + return MACRO_NONE; +}; + +// Runs just one time when the keyboard initializes. +void matrix_init_user(void) { + +}; + +// Runs constantly in the background, in a loop. +void matrix_scan_user(void) { + uint8_t layer = biton32(layer_state); + + ergodox_board_led_off(); + ergodox_right_led_1_off(); + ergodox_right_led_2_off(); + ergodox_right_led_3_off(); + switch (layer) { + case L1: + ergodox_right_led_1_on(); + break; + case L2: + ergodox_right_led_2_on(); + break; + case L3: + ergodox_right_led_3_on(); + break; + case L4: + ergodox_right_led_1_on(); + ergodox_right_led_2_on(); + break; + case L5: + ergodox_right_led_1_on(); + ergodox_right_led_3_on(); + break; + // case L6: + // ergodox_right_led_2_on(); + // ergodox_right_led_3_on(); + // break; + // case L7: + // ergodox_right_led_1_on(); + // ergodox_right_led_2_on(); + // ergodox_right_led_3_on(); + // break; + default: + ergodox_board_led_off(); + break; + } +}; diff --git a/keyboard/ergodox_ez/keymaps/german-manuneo/keymap.md b/keyboard/ergodox_ez/keymaps/german-manuneo/keymap.md new file mode 100644 index 0000000000..2c9e0a8376 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/german-manuneo/keymap.md @@ -0,0 +1,188 @@ +# ManuNeo Ergodox Keyboard Layout + +Compile this file to a `keymap.c` file using `compile_keymap.py` + + python compile_keymap.py keymaps/german-manuneo/keymap.md + +Tested with python 2.7 and python 3.4 + + +# Layout Config + + { + "layout": "ergodox_ez", + "keymaps_includes": [ + "ergodox_ez.h", + "action_layer.h", + "keymap_common.h", + "keymap_extras/keymap_german.h", + ], + "key_prefixes": ["DE_", "KC_"], + "macros": { + // TODO: implement macros + // "MUC": "", + }, + // TODO: implement default unicode mode + } + + +# Layers + + +## Layer 0 + + .------------------------------------.------------------------------------. + |MO(5)| 1 | 2 | 3 | 4 | 5 |ACUT | GRV | 6 | 7 | 8 | 9 | 0 |CIRC | + !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----! + |MO(4)| X | P | F | W | G |HOME |TG(2)| H | J | K | L | Q | Z | + !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + |MO(1)| U | I | A | E | O |-----!-----! S | N | R | T | D | SS | + !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + |MO(3)| UE | OE | AE | C | V |END | TAB | B | M |COMM| DOT| UP | Y | + '-----+----+----+----+----+----------'----------+----+----+----+----+-----' + | | |LGUI|LALT|LCTL| !RCTL|RALT|LEFT|DOWN|RGHT| + '------------------------' '------------------------' + .-----------. .-----------. + |INS |TG(2)| !M(UM)|DELT | + .-----+-----+-----! !-----+-----+-----. + ! ! | APP | ! PGUP| ! ! + ! ! !-----! !-----! ! ! + |BSPC |LSFT | ESC | ! PGDN|ENTER|SPACE| + '-----------------' '-----------------' + + +## Layer 1 + + .------------------------------------.------------------------------------. + | |EXLM|DQOT|PARA| | | | | | | | |RING| | + !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----! + | |ASTR|PIPE|SLSH|LCBR|RCBR| | |HASH|LESS|MORE| |DQOT| | + !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + | |UNDS|MINS|AMPR|LBRC|RBRC|-----!-----!DLR |LPRN|RPRN|TILD|QUOT| QST | + !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + | | |PLUS|EQL | | | | |BSLS|PERC|SCLN|COLN| ↑ | | + '-----+----+----+----+----+----------'----------+----+----+----+----+-----' + | | | | | | ! | | ← | ↓ | → | + '------------------------' '------------------------' + .-----------. .-----------. + | | | ! | | + .-----+-----+-----! !-----+-----+-----. + ! ! | | ! | ! ! + ! ! !-----! !-----! ! ! + | | | | ! | | | + '-----------------' '-----------------' + + +## Layer 2 + + .------------------------------------.------------------------------------. + | | F1 | F2 | F3 | F4 | F5 | F11 | F12 | F6 | F7 | F8 | F9 |F10 |PEQL | + !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----! + | | | | | | | | | | P7 | P8 | P9 |PAST|PSLS | + !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + | | | | | | |-----!-----! | P4 | P5 | P6 |PMNS|PMNS | + !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + | | | | | | | | NLCK| | P1 | P2 | P3 |PPLS|PPLS | + '-----+----+----+----+----+----------'----------+----+----+----+----+-----' + | | | | | | ! P0 |PCMM|PDOT|PENT|PENT| + '------------------------' '------------------------' + .-----------. .-----------. + | | | ! | | + .-----+-----+-----! !-----+-----+-----. + ! ! | | ! | ! ! + ! ! !-----! !-----! ! ! + | | | | ! | | | + '-----------------' '-----------------' + + + +## Layer 3 + +http://symbolcodes.tlt.psu.edu/bylanguage/mathchart.html + + .------------------------------------.------------------------------------. + | | ¹ | ² | ³ | ⁴ | ⁵ | ∀ | | ⁶ | ⁷ | ⁸ | ⁹ | ⁰ | | + !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----! + | | × | ½ | ÷ | ¼ | ⅕ | | | ⅙ | | ⅛ | | | | + !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + | | | ± | AT |EURO| ∅ |-----!-----! ∞ | ⁿ | ∃ | ∈ | | | + !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + | | ⅓ | ≠ | ⅔ | ¾ | ≃ | | |EXLM| | ∄ | ∉ | | | + '-----+----+----+----+----+----------'----------+----+----+----+----+-----' + | | | | | | ! | | | | | + '------------------------' '------------------------' + .-----------. .-----------. + | | | ! | | + .-----+-----+-----! !-----+-----+-----. + ! ! | | ! | ! ! + ! ! !-----! !-----! ! ! + | | | | ! | | | + '-----------------' '-----------------' + + +## Layer 4 + + + .------------------------------------.------------------------------------. + | | ₁ | ₂ | ₃ | ₄ | ₅ | | | ₆ | ₇ | ₈ | ₉ | ₀ | | + !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----! + | | χ | π | φ | ω | γ | | | η | ξ | κ | λ | | ζ | + !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + | | υ | ι | α | ε | ο |-----!-----! σ | ν | ρ | τ | δ | ς | + !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + | | | θ | | | | | | β | μ | | | | ψ | + '-----+----+----+----+----+----------'----------+----+----+----+----+-----' + | | | | | | ! | | | | | + '------------------------' '------------------------' + .-----------. .-----------. + | | | ! | | + .-----+-----+-----! !-----+-----+-----. + ! ! | | ! | ! ! + ! ! !-----! !-----! ! ! + | | | | ! | | | + '-----------------' '-----------------' + + +## Layer 5 + + .------------------------------------.------------------------------------. + | | | | | | | | | | | | | | | + !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----! + | | Χ | Π | Φ | Ω | Γ | | | Η | Ξ | Κ | Λ | | Ζ | + !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + | | Υ | Ι | Α | Ε | Ο |-----!-----! Σ | Ν | Ρ | Τ | Δ | | + !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + | | | Θ | | | | | | Β | Μ | | | | Ψ | + '-----+----+----+----+----+----------'----------+----+----+----+----+-----' + | | | | | | ! | | | | | + '------------------------' '------------------------' + .-----------. .-----------. + | | | ! | | + .-----+-----+-----! !-----+-----+-----. + ! ! | | ! | ! ! + ! ! !-----! !-----! ! ! + | | | | ! | | | + '-----------------' '-----------------' + + +## Layer 6 + + .------------------------------------.------------------------------------. + | | | | | | | | | | | | | | | + !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----! + | | | | | | | | | | | | | | | + !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + | | | | | | |-----!-----! | | | | | | + !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + | | | | | | | | | | | | | | | + '-----+----+----+----+----+----------'----------+----+----+----+----+-----' + | | | | | | ! | | | | | + '------------------------' '------------------------' + .-----------. .-----------. + | | | ! | | + .-----+-----+-----! !-----+-----+-----. + ! ! | | ! | ! ! + ! ! !-----! !-----! ! ! + | | | | ! | | | + '-----------------' '-----------------' + diff --git a/keyboard/ergodox_ez/keymaps/german/german.hex b/keyboard/ergodox_ez/keymaps/german/german.hex new file mode 100644 index 0000000000..ce54b54767 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/german/german.hex @@ -0,0 +1,1121 @@ +:100000000C9465020C94AC020C94AC020C94AC02FF +:100010000C94AC020C94AC020C94AC020C94AC02A8 +:100020000C94AC020C94AC020C94C50B0C94970C81 +:100030000C94AC020C94AC020C94AC020C94AC0288 +:100040000C94AC020C940B210C94AC020C94AC02FA +:100050000C94AC020C949D1A0C94AC020C94AC025F +:100060000C94AC020C94AC020C94AC020C94AC0258 +:100070000C94AC020C94AC020C94AC020C94AC0248 +:100080000C94AC020C94AC020C94AC020C94AC0238 +:100090000C94AC020C94AC020C94AC020C94AC0228 +:1000A0000C94AC020C94AC020C94AC02040D260D22 +:1000B000190E260D190E6B0D8E0D190EE30DF60D92 +:1000C000E010E0100F110F1152118C1199139913B8 +:1000D000A51199139A129A126D13991399138413F7 +:1000E0000000F0A123024C003900E100648100000F +:1000F0001E00140004001D0031714D001F001A0085 +:1001000016001B002E002A00200008000700060031 +:1001100038002C00210015000900190030004A00A9 +:10012000220017000A00050000006574AE000154AB +:100130000000007F0000E300AB00025400000077E5 +:100140000000E20023001C000B00110000002971D8 +:10015000240018000D00100050004B0025000C007A +:100160000E00360051002800260012000F00370054 +:1001700052002B0027001300330038714F004E004F +:100180002D002F003482E500C100000001000100B5 +:1001900001000100010000003A001E0231002202AD +:1001A000010001003B001414210235000100010090 +:1001B0003C00241425022514010001003D002714F1 +:1001C00026022614010001003E0064142E023014A1 +:1001D000000001000100010000000100000001001A +:1001E0000100010000000100000001003F0052007A +:1001F00051002302000001004000240021001E00E5 +:10020000010001004100250022001F00370001000D +:100210004200260023002000270001004300300296 +:1002200030002D14270201004400450001000100A8 +:1002300001000000010001000100010001000000B8 +:100240003A000100F700FB00010001003B00F40050 +:10025000F200FA00FD00F5003C00F000F100F900AA +:10026000FE00F4003D00F500F300FC00FF0001007B +:100270003E000100F800F60000000100010001004E +:100280000000010000000100010001000000010069 +:10029000000001003F0001000100B4000000010067 +:1002A0004000AA00AC00B600010001004100A80017 +:1002B000AD00B5000100B7004200A900AE00B900D2 +:1002C0000100B60043000100AB00B70001000100CF +:1002D0004400450001000100010000001603450034 +:1002E000720067006F0044006F0078002000450036 +:1002F0005A00000016034500720067006F004400BA +:100300006F007800200045005A0000000403090433 +:1003100009026D00040100A0FA09040000010301B4 +:100320000100092111010001223F00070581030896 +:10033000000A090401000103010200092111010062 +:1003400001224D000705820308000A09040200018A +:100350000300000009211101000122360007058376 +:100360000308000A09040300010300000009211129 +:100370000100012239000705840310000112011059 +:100380000100000008EDFE07130100010200010555 +:10039000010906A101050719E029E71500250195C6 +:1003A0000875018102050819012905950575019156 +:1003B000029501750391010507190029771500259C +:1003C00001957875018102C005010980A1018502AE +:1003D00016010026B7001A01002AB7007510950112 +:1003E0008100C0050C0901A1018503160100269CAE +:1003F000021A01002A9C02751095018100C00501B6 +:100400000902A1010901A100050919012905150029 +:10041000250195057501810295017503810105018D +:10042000093009311581257F950275088106093843 +:100430001581257F950175088106050C0A3802157E +:1004400081257F950175088106C0C005010906A1B7 +:1004500001050719E029E7150025019508750181B7 +:100460000295017508810105081901290595057591 +:100470000191029501750391010507190029FF15E6 +:100480000025FF950675088100C0000000000000EF +:100490000000000000010204060A0F17202C3A4A4F +:1004A0005D71879DB3C7DAE9F5FCFFFCF5E9DAC7B2 +:1004B000B39D87715D4A3A2C20170F0A060402018A +:1004C0000000000000000000000011241FBECFEF5C +:1004D000DAE0DEBFCDBF04B603FE27C08091ED0198 +:1004E0009091EE01A091EF01B091F0018730904B17 +:1004F000A740B04BD1F41092ED011092EE01109292 +:10050000EF011092F00114BE84B7877F84BF0FB64D +:10051000F894A895809160008861809360001092A3 +:1005200060000FBEE0E0FFE3099511E0A0E0B1E05C +:10053000E8EBF5E402C005900D92A433B107D9F7BA +:1005400021E0A4E3B1E001C01D92AD3EB207E1F7A6 +:100550000E940C090C94DA220C94000061110BC06B +:10056000FC018281882321F085EE0E947A0F03C06E +:1005700085EE0E94421080E090E008950895609119 +:10058000B1017091B2018091B3019091B4010E94C8 +:10059000CA1956985E9825982D9826982E982798CF +:1005A0002F98813029F0823031F4269A2E9A0895BE +:1005B000259A2D9A089556985E9808950C94BF0236 +:1005C00056985E9825982D9826982E9827982F98BB +:1005D0008FEF90E0909389008093880090938B0038 +:1005E00080938A0090938D0080938C00259A2D9A99 +:1005F0002FEF80E792E0215080409040E1F700C06B +:100600000000269A2E9A2FEF80E792E0215080403A +:100610009040E1F700C00000279A2F9A2FEF80E763 +:1006200092E0215080409040E1F700C00000259802 +:100630002D982FEF80E792E0215080409040E1F725 +:1006400000C0000026982E982FEF80E792E02150FE +:1006500080409040E1F700C0000027982F985698FE +:100660005E9825982D9826982E9827982F9808956B +:1006700089EA8093800089E08093810024982C98F7 +:100680003F988AB18F748AB96E98479A8BB1806B04 +:100690008BB9769A0E94E0020C94BE0280E28093AD +:1006A00000018091340181110EC00E949D0381E000 +:1006B000809334012FEF83ED90E3215080409040F0 +:1006C000E1F700C0000080E40E94A30380930001D2 +:1006D00081112EC00E94CD0380930001811128C09A +:1006E0000E94CD0380930001811122C08FE30E94FC +:1006F000CD038093000181111BC00E94C50380E4DB +:100700000E94A30380930001811112C08CE00E941B +:10071000CD038093000181110BC00E94CD03809313 +:100720000001811105C08FE30E94CD038093000179 +:100730000E94C5038091000108951092B9008AE0DB +:100740008093B800089594EA9093BC009091BC0007 +:1007500097FFFCCF9091B900987F983021F09031AD +:1007600011F081E008958093BB0084E88093BC0081 +:100770008091BC0087FFFCCF8091B900887F8831D1 +:1007800011F0803471F780E0089584E98093BC0013 +:100790008091BC0084FDFCCF08958093BB0084E869 +:1007A0008093BC008091BC0087FFFCCF9091B90082 +:1007B000987F81E0983209F480E0089584E880937E +:1007C000BC008091BC0087FFFCCF8091BB000895E6 +:1007D00080910001811115C080E40E94A3038093E1 +:1007E000000181110CC082E10E94CD0380930001C1 +:1007F000811105C08FEF0E94CD03809300010E94FC +:10080000C50384B1807F84B985B1807F85B98AB101 +:10081000837F8AB98BB1837F8BB93E9846980895C0 +:100820000E944E03809300010E94E80380B38C7005 +:1008300080BB81B3836F81BBE4E4F1E0A6E3B1E068 +:1008400011921D9281E0E235F807D1F70C9438033C +:100850009F92AF92BF92CF92DF92EF92FF920F934F +:100860001F93CF93DF9380910001882379F08091CB +:1008700035018F5F80933501811108C00E944E03BE +:1008800080930001811102C00E94E00286E3E82EFD +:1008900081E0F82E8701C0E0D0E0BB24B39492E061 +:1008A000A92ECC24C394D12CC730D10500F580915A +:1008B0000001811164C080E40E94A30380930001C1 +:1008C000811112C082E10E94CD0380930001811149 +:1008D0000BC0C6010C2E01C0880F0A94EAF7809560 +:1008E0000E94CD03809300010E94C50348C0CA3016 +:1008F000A1F028F4C83059F0C93061F005C0CC30FF +:1009000089F070F0CD3089F0209A289810C0219A93 +:1009100029980DC0229A2A980AC0239A2B9807C0BA +:10092000529A01C0539A5B9802C03E9A4698E0EAF8 +:10093000EA95F1F78FB181708B25799902C032E089 +:1009400001C030E0832B7C9902C034E001C030E06C +:10095000832B7D9902C028E001C020E0822B7E9984 +:1009600002C090E101C090E0892B9FB19095991F42 +:100970009927991F9295990F907E892B0FC080918E +:10098000000181114AC080E40E94A303809300010A +:10099000882381F1912C0E94C503892DD8019C9157 +:1009A000981719F08C93A09201010E94E8032196F8 +:1009B0000F5F1F4FCE30D10509F076CF8091010136 +:1009C000882369F1815080930101882339F0EFE990 +:1009D000FFE03197F1F700C0000021C0E4E4F1E04E +:1009E000D7018D917D018193B4E4EB16B1E0FB0654 +:1009F000B9F715C083E10E94CD03809300018111F6 +:100A0000C9CF81E40E94A303809300018111C2CF6A +:100A10000E94DE03982E9094BECF80E0BFCF0E944C +:100A2000DE0281E0DF91CF911F910F91FF90EF9057 +:100A3000DF90CF90BF90AF909F900895E82FF0E0A7 +:100A4000EC5BFE4F8081089508958B3B910580F407 +:100A5000883A910548F5853A9105D8F48430910596 +:100A600008F0B2C0019709F06EC081E090E00895EF +:100A7000803E910508F467C0883E910508F4A4C043 +:100A80009C01205F31092031310508F05CC0906580 +:100A90000895853A910509F459C0863A910509F0FF +:100AA00058C082E890E40895883A910509F454C04A +:100AB000893A910509F453C08A3A910509F452C064 +:100AC0008B3A910509F451C08C3A910509F450C054 +:100AD0008D3A910509F44FC0803B910509F44EC051 +:100AE0008E3A910509F44DC08F3A910509F44CC036 +:100AF000813B910509F44BC0823B910509F44AC042 +:100B0000833B910509F449C0843B910509F448C031 +:100B1000853B910509F447C0863B910509F446C021 +:100B2000873B910509F445C0883B910509F444C011 +:100B3000893B910509F443C08A3B910509F442C001 +:100B400080E094E4089580E090E0089581E890E4E6 +:100B5000089583E890E4089582EE94E4089589EE80 +:100B600094E408958AEE94E4089585EB94E408955E +:100B700086EB94E4089587EB94E408958CEC94E478 +:100B800008958DEC94E4089583E895E408958AE847 +:100B900095E4089582E995E4089584E995E408953B +:100BA00081E296E4089583E296E4089584E296E46F +:100BB000089585E296E4089586E296E4089587E232 +:100BC00096E408958AE296E40895089524E5829FC4 +:100BD000C0011124FC0126E0729FE00DF11D1124DB +:100BE000E60FF11DEE0FFF1FEC51FF4F8591949121 +:100BF0000895880F991FFC01E05AF0408591949167 +:100C00000895880F991FFC01E052FF4F8591949140 +:100C1000089524E5829FC0011124FC0146E0749FE1 +:100C2000E00DF11D1124E60FF11DEE0FFF1FEC5139 +:100C3000FF4F859194919C013A9521154FE134071E +:100C400008F425C13F512115304120F49F700E94C6 +:100C5000010608959C0130532115304118F499275D +:100C6000906C0895811520E5920769F40E94BB13EA +:100C70004FEF84E39CE0415080409040E1F700C09A +:100C800000000C94C21A813020E5920731F4809163 +:100C9000CC0181608093CC0108959C0130552115D1 +:100CA000304108F05CC0292F33272F7033272130C3 +:100CB0003105E9F4AC0164E0440F551F6A95E1F792 +:100CC00044275370BC016370772702C0220F331F83 +:100CD0006A95E2F73C68242B352B73E0880F991F47 +:100CE0007A95E1F780769927822B932B089522300D +:100CF000310529F4982F8827816F906A0895233051 +:100D00003105A1F4AC0133E0440F551F3A95E1F7EA +:100D1000407E57708370992721E030E002C0220F97 +:100D2000331F8A95E2F7C9019C6816C0243031054B +:100D300031F5AC0123E0440F551F2A95E1F7407EC1 +:100D400057708370992721E030E002C0220F331FD3 +:100D50008A95E2F7C9019A68842B952B08959C0126 +:100D600030572115304118F49F70906208959C010E +:100D700030582115304118F49F70906A0895803ED4 +:100D80009105E0F4803C910558F58133910509F413 +:100D90006FC048F48932910509F463C08A32910525 +:100DA00009F46DC072C089339105E9F0823891056C +:100DB000D1F08533910509F44DC067C0833E91059C +:100DC00081F138F4803E9105B9F0823E9105D9F069 +:100DD0005CC0863E910561F1873E9105A1F155C049 +:100DE0000E94F90508952091DE0120FD02C021FF37 +:100DF0004CC080EE90E049C08091DE0180FFF9CFC9 +:100E000089E390E042C08091DE0182FF0EC08091B4 +:100E1000DE0184FF03C080E090E037C083EE90E005 +:100E200034C08091DE0182FFF2CF82EE90E02DC0CF +:100E30008091DE0183FF0BC08091DE0184FDEBCF4A +:100E400087EE90E022C08091DE0183FFF5CF86EE31 +:100E500090E01BC08091DE0185FF07C089E290E031 +:100E600014C08091DE0185FFF9CF85E390E00DC0CD +:100E70008091DE0186FF07C08AE290E006C0809183 +:100E8000DE0186FFF9CF81E390E00E9425050895F9 +:100E90000895809162010895CF93DF9300D01F924F +:100EA000CDB7DEB79C018091E401843019F593E061 +:100EB00099833B832A839093E9008FEF9091E80018 +:100EC000815095FD06C095ED9A95F1F700008111CE +:100ED000F5CF8091E80085FF0DC040E050E063E071 +:100EE00070E0CE0101960E94B9098091E8008E77EA +:100EF0008093E8000F900F900F90DF91CF910895AD +:100F0000CF93DF9300D01F92CDB7DEB72091E401DD +:100F1000243021F522E029839B838A8383E0809318 +:100F2000E9008FEF9091E800815095FD06C095EDA6 +:100F30009A95F1F700008111F5CF8091E80085FFC7 +:100F40000DC040E050E063E070E0CE0101960E94E9 +:100F5000B9098091E8008E778093E8000F900F9098 +:100F60000F90DF91CF9108959C018091E40184302E +:100F7000F9F482E08093E9009FEF8091E8009150BE +:100F800085FD06C085ED8A95F1F700009111F5CF3A +:100F90008091E80085FF0CC040E050E065E070E023 +:100FA000C9010E94B9098091E8008E778093E8001A +:100FB0000895CF93DF93EC018091E401843009F030 +:100FC00046C090910C019923D9F090910D0199237D +:100FD000B9F08093E9008FEF9091E800815095FD82 +:100FE00006C095E19A95F1F700008111F5CF809147 +:100FF000E80085FF2CC040E050E060E170E017C0E1 +:1010000081E08093E9008FEF9091E800815095FD99 +:1010100006C095ED9A95F1F700008111F5CF80910A +:10102000E80085FF14C040E050E068E070E0CE01C9 +:101030000E94B9098091E8008E778093E80080E1F2 +:10104000FE01A2E5B1E001900D928A95E1F7DF91F2 +:10105000CF9108958091E301811109C00E944A0B4C +:101060000E94A70B8091E20084608093E2000895C3 +:101070001092E301089508950C94F8200E94581AE4 +:101080000E94FE200E94520E0C94480742E061EC40 +:1010900081E00E94C30A42E061EC82E00E94C30A40 +:1010A00042E061EC83E00E94C30A42E161EC84E02B +:1010B0000C94C30A8091E601833009F455C030F4E2 +:1010C000813071F0823009F48EC008958A3009F4BD +:1010D0007AC08B3009F460C0893009F09CC020C010 +:1010E0008091E501813A09F096C08091E800877F00 +:1010F0008093E8008091E9019091EA01892B21F425 +:1011000060E182E591E003C060E080E090E070E0A3 +:101110000E94040A8091E8008B778093E80008958C +:101120008091E501813209F076C08091E9019091CA +:10113000EA01009719F0039709F06DC08091E8006B +:10114000877F8093E8008091E80082FD05C0809150 +:10115000E4018111F8CF5FC08091F10080936201BA +:101160008091E8008B7753C08091E501813A09F0C6 +:1011700052C08091E9019091EA01892B09F04BC09E +:101180008091E800877F8093E8008091E80080FFED +:10119000FCCF80910C0136C08091E5018132D9F5F8 +:1011A0008091E9019091EA01892BA9F58091E800ED +:1011B000877F8093E8000E94F80A8091E70180937E +:1011C0000C010C94BB138091E501813221F58091D3 +:1011D000E800877F8093E8000E94F80A8091E80188 +:1011E0008093630108958091E501813AA1F4809193 +:1011F000E800877F8093E8008091E80080FFFCCFC3 +:10120000809163018093F1008091E8008E77809354 +:10121000E8000C94F80A089584B7877F84BF0FB65E +:10122000F894A89580916000886180936000109286 +:1012300060000FBE90E080E80FB6F89480936100E4 +:10124000909361000FBE0E94A10E0E944A0B0E9463 +:10125000A70B8091E20084608093E20078940E9462 +:10126000320E0E94A30E82E091E00E944D0E0E9479 +:10127000E6208091E401853069F40E941A1A809179 +:10128000E2018823B1F30E94441A882391F30E945B +:10129000A309EFCF0E94A90EECCF292F33272330CB +:1012A0003105C9F060F42130310581F0223031057B +:1012B00009F041C08DE690E020E133E040C02132EA +:1012C0003105E1F02232310531F135C082E190E0A3 +:1012D0002DE733E034C099278130910549F028F09B +:1012E000029749F5ECEDF2E005C0ECE0F3E002C056 +:1012F000E4EFF2E0849190E09F0121C06430D8F4E3 +:10130000E62FF0E0EE0FFF1FEE5DFE4F20813181F2 +:1013100089E090E014C0643070F470E0FB01EE0FDF +:10132000FF1FE65EFE4F20813181FB01EA5EFE4F2A +:10133000808190E004C080E090E020E030E0FA019D +:1013400031832083089580E189BD82E189BD09B49C +:1013500000FEFDCF8091D8008F7D8093D8008091D2 +:10136000E00082608093E0008091E00081FDFCCF8E +:101370000895CF92DF92EF92FF920F931F93CF9336 +:10138000DF93EC018B016A010E94170B811133C0BE +:10139000C114D10439F0F60180819181081B190B29 +:1013A000C80FD91FE12CF12C0115110519F18091FD +:1013B000E80085FD16C08091E8008E778093E800F4 +:1013C000C114D10449F0F60180819181E80EF91E23 +:1013D000F182E08285E00FC00E94170B882321F381 +:1013E0000AC089918093F10001501109FFEFEF1AB3 +:1013F000FF0ADACF80E0DF91CF911F910F91FF902C +:10140000EF90DF90CF9008952091EB013091EC01A7 +:101410002617370748F06115710539F42091E80067 +:101420002E772093E80001C0B901FC0120E061158E +:10143000710579F18091E4018823F1F18530F1F1B2 +:101440008091E80083FD3CC08091E80082FD2EC0C1 +:101450008091E80080FFEBCF2091F3008091F200B3 +:1014600090E0922B6115710551F08830910538F4A8 +:1014700021912093F100615071090196F3CF21E091 +:10148000089709F020E08091E8008E778093E800CB +:10149000CECF2111CFCF0AC08091E401882361F023 +:1014A000853061F08091E80083FD0AC08091E800FA +:1014B00082FFF2CF80E0089582E0089583E00895EE +:1014C00081E008952091EB013091EC012617370758 +:1014D00048F06115710539F42091E8002E772093CA +:1014E000E80001C0B901FC0120E06115710591F12E +:1014F0008091E401882309F440C0853009F43FC09D +:101500008091E80083FD3DC08091E80082FD2FC0FE +:101510008091E80080FFE9CF2091F3008091F200F4 +:1015200090E0922B6115710559F08830910540F4D7 +:1015300024912093F1003196615071090196F2CF08 +:1015400021E0089709F020E08091E8008E778093F1 +:10155000E800CBCF2111CCCF0AC08091E4018823D1 +:1015600061F0853061F08091E80083FD0AC08091D0 +:10157000E80082FFF2CF80E0089582E0089583E0E2 +:10158000089581E00895982F973068F59093E900C9 +:10159000981739F07091EC002091ED005091F00017 +:1015A00003C0242F762F50E021FD02C09F5FECCFB7 +:1015B0003091EB003E7F3093EB003091ED003D7FAA +:1015C0003093ED003091EB0031603093EB0070937D +:1015D000EC002093ED005093F0002091EE0027FDE9 +:1015E000E5CF80E008958F708093E90081E0089551 +:1015F0008091E50187FF11C08091E80082FD05C060 +:101600008091E4018111F8CF11C08091E8008B77BF +:101610000BC08091E401882349F08091E80080FFAD +:10162000F8CF8091E8008E778093E80008952091AC +:10163000E4003091E50095E64091EC00842F817044 +:1016400040FF23C08091E80080FD1DC08091E4012F +:10165000882399F0853099F08091EB0085FD11C0C9 +:101660004091E4005091E5002417350729F391508B +:1016700011F09A01E1CF84E0089582E0089583E0BB +:10168000089581E0089580E008954091E80042FFC8 +:10169000DDCF08950E94B80B0E94C00BE0EEF0E091 +:1016A000808181608083E8EDF0E080818F778083A6 +:1016B00019BCA7EDB0E08C918E7F8C9380818F7EDA +:1016C00080831092E30108950F931F93CF93DF93CC +:1016D0000E94B80B0E94C00BC8EDD0E088818F77C4 +:1016E000888388818068888388818F7D888319BCFE +:1016F0001092E4011092E0011092E2011092E101D7 +:1017000000EE10E0F80180818B7F8083888181600A +:10171000888342E060E080E00E94C30AE1EEF0E0EE +:1017200080818E7F8083E2EEF0E080818160808323 +:10173000808188608083F80180818E7F80838881AA +:1017400080618883DF91CF911F910F910895E8ED1B +:10175000F0E080818F7E8083E7EDF0E08081816022 +:10176000808384E082BF81E08093E3010C94640B6A +:10177000E8EDF0E080818E7F80831092E200089592 +:101780001092DA001092E10008951F920F920FB6A6 +:101790000F9211242F933F934F935F936F937F93F7 +:1017A0008F939F93AF93BF93EF93FF938091E1004B +:1017B00082FF0BC08091E20082FF07C08091E100B0 +:1017C0008B7F8093E1000E94310E8091DA0080FFD0 +:1017D0001FC08091D80080FF1BC08091DA008E7FEF +:1017E0008093DA008091D90080FF0DC080E189BD2F +:1017F00082E189BD09B400FEFDCF81E08093E40160 +:101800000E942A0805C019BC1092E4010E94380801 +:101810008091E10080FF19C08091E20080FF15C037 +:101820008091E2008E7F8093E2008091E2008061EF +:101830008093E2008091D80080628093D80019BC28 +:1018400085E08093E4010E943C088091E10084FFE0 +:1018500030C08091E20084FF2CC080E189BD82E12C +:1018600089BD09B400FEFDCF8091D8008F7D8093A3 +:10187000D8008091E1008F7E8093E1008091E200AA +:101880008F7E8093E2008091E20081608093E2008D +:101890008091E001882311F084E007C08091E3008B +:1018A00087FD02C081E001C083E08093E4010E94D3 +:1018B0003E088091E10083FF29C08091E20083FF10 +:1018C00025C08091E100877F8093E10082E08093D2 +:1018D000E4011092E0018091E1008E7F8093E100AD +:1018E0008091E2008E7F8093E2008091E20080612F +:1018F0008093E20042E060E080E00E94C30A8091B1 +:10190000F00088608093F0000E943B08FF91EF9107 +:10191000BF91AF919F918F917F916F915F914F9107 +:101920003F912F910F900FBE0F901F9018951F920F +:101930000F920FB60F9211242F933F934F935F9303 +:101940006F937F938F939F93AF93BF93CF93DF93C7 +:10195000EF93FF93C091E900CF708091EC00D82FF6 +:10196000D17080FDD0E81092E9008091F000877F6F +:101970008093F00078940E94DB0C1092E900809133 +:10198000F00088608093F000CD2BCF70C093E90009 +:10199000FF91EF91DF91CF91BF91AF919F918F9187 +:1019A0007F916F915F914F913F912F910F900FBE5B +:1019B0000F901F9018951F93CF93DF93CDB7DEB78D +:1019C000AA970FB6F894DEBF0FBECDBFE5EEF1E0EB +:1019D0008091F100819321E0ED3EF207C9F70E946A +:1019E0005A088091E80083FF24C18091E50190911D +:1019F000E601492F50E04A30510508F01AC1FA01BA +:101A0000EA5AFF4F0C948F22803881F0823809F017 +:101A100010C18091E9018F708093E9008091EB0003 +:101A200085FB882780F91092E90006C08091E101CA +:101A30009091E201911182609091E800977F9093DC +:101A4000E8008093F1001092F100C8C0282F2D7F8C +:101A500009F0EFC0882319F0823061F0EAC080916C +:101A6000E701813009F0E5C0933009F080E0809310 +:101A7000E2012BC08091E701811127C08091E9012B +:101A80008F7009F4D6C08093E9002091EB0020FF0D +:101A90001CC0933021F48091EB00806214C09091BF +:101AA000EB0090619093EB0021E030E0A90102C0CF +:101AB000440F551F8A95E2F74093EA001092EA001E +:101AC0008091EB0088608093EB001092E900809198 +:101AD000E800877F86C08111ACC01091E7011F77B5 +:101AE0008091E3008078812B8093E3008091E8006F +:101AF000877F8093E8000E94F80A8091E80080FFC9 +:101B0000FCCF8091E30080688093E300111102C054 +:101B100082E001C083E08093E4018BC08058823072 +:101B200008F087C08091E7019091E8018C3D53E077 +:101B3000950779F583E08A838AE289834FB7F89421 +:101B4000DE01139620E03EE051E2E32FF0E05093F7 +:101B50005700E49120FF03C0E295EF703F5FEF7004 +:101B60008E2F90E0EA3010F0C79601C0C0968D939A +:101B70009D932F5F243149F74FBF8091E800877F05 +:101B80008093E8006AE270E0CE0101960E94040AA8 +:101B900014C0AE014F5F5F4F6091E9010E944D0993 +:101BA000BC01892B09F445C09091E800977F909380 +:101BB000E80089819A810E94620A8091E8008B770F +:101BC0008093E80036C08038A1F58091E800877FD7 +:101BD0008093E8008091E0018093F1008091E8001B +:101BE0008E778093E8000E94F80A23C0811121C0FB +:101BF0008091E7019091E80199270297D4F48091B0 +:101C0000E800877F8093E8008091E7018093E001FE +:101C10000E94F80A8091E001811106C08091E300E2 +:101C200087FD02C081E001C084E08093E4010E944E +:101C300046088091E80083FF0AC08091E800877F12 +:101C40008093E8008091EB0080628093EB00AA967D +:101C50000FB6F894DEBF0FBECDBFDF91CF911F91BD +:101C600008950895CF938091E4018823A1F0C09155 +:101C7000E900CF709091EC00892F817090FD80E891 +:101C8000C82B1092E9008091E80083FD0E94DB0CD4 +:101C9000CF70C093E900CF9108959093690180932C +:101CA00068010895E0916801F0916901309721F091 +:101CB0000190F081E02D099480E00895E0916801A1 +:101CC000F0916901309721F00280F381E02D0994B1 +:101CD0000895E0916801F0916901309721F0048046 +:101CE000F581E02D099408952091660130916701F6 +:101CF0002817390771F09093670180936601E0918E +:101D00006801F0916901309721F00680F781E02D9C +:101D100009940895209164013091650128173907CD +:101D200071F09093650180936401E0916801F091F6 +:101D30006901309721F00084F185E02D0994089520 +:101D400008950C94A00E0E945E1A0E9410040C9438 +:101D5000241BCF92DF92EF92FF920F931F93CF93AA +:101D6000DF93CDB7DEB72B970FB6F894DEBF0FBE6B +:101D7000CDBF0E9428048BE6C82E81E0D82E00E05B +:101D800010E0E02E802F0E941E05F60141916F01A8 +:101D9000F82EF426B1F40F5F1F4F0E30110589F7AE +:101DA0008FEF89838A831B820E94671A8160782F54 +:101DB0009D838C8349815A816B818D810E944C0F58 +:101DC00040C09091CC0191FF04C08B870E942405F4 +:101DD0008B8520E030E04F2D50E0922FBA01022E8B +:101DE00002C0759567950A94E2F760FF24C02E83C0 +:101DF000EF8221E030E0690102C0CC0CDD1C9A9535 +:101E0000E2F790E08C219D21892B09F420E02887BE +:101E10000E94671A8160782F9A8789874E815F8137 +:101E200068858A850E944C0FF801E559FE4F808134 +:101E3000C826C08206C02F5F3F4F2630310569F6A5 +:101E4000AACF0E940B1E0E94520E90916A01891720 +:101E5000A1F00E94520E80936A012B960FB6F8945F +:101E6000DEBF0FBECDBFDF91CF911F910F91FF90CD +:101E7000EF90DF90CF900C9448072B960FB6F89414 +:101E8000DEBF0FBECDBFDF91CF911F910F91FF90AD +:101E9000EF90DF90CF900895CF93DF93CDB7DEB76B +:101EA0002B970FB6F894DEBF0FBECDBF4F83588778 +:101EB00069877A878B87DE01119686E0FD01119292 +:101EC0008A95E9F785E0FE01379601900D928A9593 +:101ED000E1F749815A816B817C818D819E810E94CD +:101EE0004F162B960FB6F894DEBF0FBECDBFDF9115 +:101EF000CF910895CF93C82F882309F4C1C08238A9 +:101F000059F40E94520E81FDBBC089E30E94EC1877 +:101F10000E94A41989E30CC0833879F40E94520E00 +:101F200080FDAEC083E50E94EC180E94A41983E5F1 +:101F30000E942B19CF910C94A419843859F40E9453 +:101F4000520E82FD9DC087E40E94EC180E94A419E5 +:101F500087E4EECF8CEF8C0F813A48F48C2F0E94EF +:101F60004B2081118DC08C2F0E94EC18E3CF80E2B2 +:101F70008C0F883048F4C77081E001C0880FCA9583 +:101F8000EAF70E946D19D6CF8BE58C0F833078F479 +:101F9000C53A29F0C63A31F083E890E005C081E8FF +:101FA00090E002C082E890E0CF910C94740E88E536 +:101FB0008C0F833108F064C0C83A39F1C93A41F155 +:101FC000CA3A49F1CB3A51F1CC3A59F1CD3A61F1E3 +:101FD000C03B69F1CE3A71F1CF3A79F1C13B81F161 +:101FE000C23B89F1C33B91F1C43B99F1C53BA1F1DF +:101FF000C63BA9F1C73BB1F1C83BB9F1C93BC1F13F +:10200000CA3BC9F180E090E038C082EE90E035C074 +:1020100089EE90E032C08AEE90E02FC085EB90E030 +:102020002CC086EB90E029C087EB90E026C08CECBA +:1020300090E023C08DEC90E020C083E891E01DC0CB +:102040008AE891E01AC082E991E017C084E991E042 +:1020500014C081E292E011C083E292E00EC084E2FB +:1020600092E00BC085E292E008C086E292E005C0F3 +:1020700087E292E002C08AE292E0CF910C948A0E4D +:10208000CF910895882309F44BC0823859F40E94F7 +:10209000520E81FF45C089E30E94EC180E94A419EA +:1020A00089E30CC0833871F40E94520E80FF38C05F +:1020B00083E50E94EC180E94A41983E50E942B1965 +:1020C0000C94A419843859F40E94520E82FF28C03F +:1020D00087E40E94EC180E94A41987E4EFCF9CEFDC +:1020E000980F913A58F390E2980F983050F4877017 +:1020F00091E001C0990F8A95EAF7892F0E94731920 +:10210000DFCF9BE5980F933020F480E090E00C94B3 +:10211000740E885A833120F480E090E00C948A0E8B +:102120000895882321F00E946D190C94A419089534 +:10213000882321F00E9473190C94A4190895BF926A +:10214000CF92DF92EF92FF920F931F93CF93DF9383 +:1021500000D000D000D0CDB7DEB77C0185E0F7011C +:10216000DE01119601900D928A95E1F7F7018381C6 +:102170009481892B09F4DDC2908181818F3F19F40C +:102180009F3F09F4D6C2F7010281258122952F7065 +:1021900099838A8389819A812E830E94AB18182F94 +:1021A000B92E0E94AA180E947117EB2DE295EF70CC +:1021B0004E2F50E0FA01E05AFF4F2E810C948F22EF +:1021C0008B2D807F9B2D9F70F92E882319F0F29420 +:1021D00080EFF822002349F0FF2009F457C28F2D29 +:1021E0000E947D190E94A41951C2812F0E944210A1 +:1021F000FF2009F49EC28F2D0E94831926960FB6E8 +:10220000F894DEBF0FBECDBFDF91CF911F910F912C +:10221000FF90EF90DF90CF90BF900C94A4193B2DCE +:10222000307F8B2D8F70303211F08295807F11239B +:1022300019F0113021F12CC00023B9F0222309F448 +:1022400090C1213009F08DC126960FB6F894DEBFFB +:102250000FBECDBFDF91CF911F910F91FF90EF90F7 +:10226000DF90CF90BF900C948D19222319F021306C +:1022700009F45FC28E830E9490198E8186C100236B +:1022800021F0223008F055C26CC1211152C27DC12B +:10229000002321F0222309F464C1F8C1222309F4A8 +:1022A00074C109C28B2D86958695837019F0813093 +:1022B000D1F03FC2002321F0812F9B2D937002C0EB +:1022C00080E090E026960FB6F894DEBF0FBECDBF3B +:1022D000DF91CF911F910F91FF90EF90DF90CF9002 +:1022E000BF900C94740E002321F0812F9B2D9370CE +:1022F00002C080E090E026960FB6F894DEBF0FBED5 +:10230000CDBFDF91CF911F910F91FF90EF90DF90A4 +:10231000CF90BF900C948A0E812F002319F00E9459 +:10232000131D02C00E947B1D26960FB6F894DEBFD7 +:102330000FBECDBFDF91CF911F910F91FF90EF9016 +:10234000DF90CF90BF900C94001E8B2D837009F00E +:1023500075C00111EEC1812F829586958770880F17 +:10236000880F912F9F70C92ED12CE12CF12C082EB3 +:1023700004C0CC0CDD1CEE1CFF1C0A94D2F714FF29 +:1023800012C00FE010E020E030E004C0000F111F89 +:10239000221F331F8A95D2F7C901B8016095709545 +:1023A0008095909503C060E070E0CB014B2D469581 +:1023B000469543704230C1F060F56C297D298E2925 +:1023C0009F29413051F126960FB6F894DEBF0FBE1B +:1023D000CDBFDF91CF911F910F91FF90EF90DF90D4 +:1023E000CF90BF900C9498176C297D298E299F2936 +:1023F00026960FB6F894DEBF0FBECDBFDF91CF910A +:102400001F910F91FF90EF90DF90CF90BF900C94B1 +:10241000B4170E949817C701B60126960FB6F89414 +:10242000DEBF0FBECDBFDF91CF911F910F91FF9007 +:10243000EF90DF90CF90BF900C947C17002319F0A1 +:102440008B2D817001C08695882309F472C1812F7C +:10245000829586958770880F880F912F9F70C92E5F +:10246000D12CE12CF12C082E04C0CC0CDD1CEE1C70 +:10247000FF1C0A94D2F714FF12C00FE010E020E016 +:1024800030E004C0000F111F221F331F8A95D2F7BE +:10249000C901B801609570958095909503C060E082 +:1024A00070E0CB014B2D4695469543704230C1F00C +:1024B00060F56C297D298E299F29413051F126969E +:1024C0000FB6F894DEBF0FBECDBFDF91CF911F9145 +:1024D0000F91FF90EF90DF90CF90BF900C94721807 +:1024E0006C297D298E299F2926960FB6F894DEBF88 +:1024F0000FBECDBFDF91CF911F910F91FF90EF9055 +:10250000DF90CF90BF900C948E180E947218C70174 +:10251000B60126960FB6F894DEBF0FBECDBFDF9191 +:10252000CF911F910F91FF90EF90DF90CF90BF90D0 +:102530000C945618103FD1F118F4103E50F4A1C07D +:10254000123F09F463C008F44CC0133F09F473C090 +:1025500098C01F708B2D8F710023A1F00E94EF1780 +:10256000812F26960FB6F894DEBF0FBECDBFDF9148 +:10257000CF911F910F91FF90EF90DF90CF90BF9080 +:102580000C9491100E941018812F26960FB6F89483 +:10259000DEBF0FBECDBFDF91CF911F910F91FF9096 +:1025A000EF90DF90CF90BF900C9498100023A9F08B +:1025B0002111BFC08B2D8F7126960FB6F894DEBF08 +:1025C0000FBECDBFDF91CF911F910F91FF90EF9084 +:1025D000DF90CF90BF900C943518223008F0A9C03E +:1025E000E9CF0023A9F08B2D8F7126960FB6F894B2 +:1025F000DEBF0FBECDBFDF91CF911F910F91FF9036 +:10260000EF90DF90CF90BF900C94EF17002359F319 +:102610008B2D8F7126960FB6F894DEBF0FBECDBFFF +:10262000DF91CF911F910F91FF90EF90DF90CF90AE +:10263000BF900C941018002399F08B2D8F71269663 +:102640000FB6F894DEBF0FBECDBFDF91CF911F91C3 +:102650000F91FF90EF90DF90CF90BF900C94DA171E +:1026600026960FB6F894DEBF0FBECDBFDF91CF9197 +:102670001F910F91FF90EF90DF90CF90BF900C943F +:10268000D0170023A9F0222309F4ADCF812F26967D +:102690000FB6F894DEBF0FBECDBFDF91CF911F9173 +:1026A0000F91FF90EF90DF90CF90BF900C947A0F36 +:1026B000222309F4ADCF812F26960FB6F894DEBF02 +:1026C0000FBECDBFDF91CF911F910F91FF90EF9083 +:1026D000DF90CF90BF900C9442104B2D4F70612F24 +:1026E000C7010E94AE0226960FB6F894DEBF0FBE59 +:1026F000CDBFDF91CF911F910F91FF90EF90DF90B1 +:10270000CF90BF900C94F4164B2D4F70612FC701E2 +:1027100026960FB6F894DEBF0FBECDBFDF91CF91E6 +:102720001F910F91FF90EF90DF90CF90BF900C948E +:10273000E50526960FB6F894DEBF0FBECDBFDF913C +:10274000CF911F910F91FF90EF90DF90CF90BF90AE +:1027500008950E948A190E945F190E94A4190E947C +:10276000B01E0E94001E80E090E00E94740E80E087 +:1027700090E00C948A0E0E947A190C94A9130E947E +:10278000AB18292F22952F702C3030F42A3048F4C2 +:102790002250223078F405C02C3041F02F3031F037 +:1027A00009C0803E48F0803F29F406C093FB88278B +:1027B00080F9089580E0089581E00895CF93DF9334 +:1027C00000D000D01F92CDB7DEB70F900F900F90C2 +:1027D0000F900F90DF91CF910895CF93DF9300D0AA +:1027E00000D000D0CDB7DEB726960FB6F894DEBF86 +:1027F0000FBECDBFDF91CF9108951F93CF93DF938D +:10280000C091790116E080917A01C81799F0D0E063 +:102810001C9FF0011D9FF00D1124E558FE4F4081D3 +:10282000518162817381848195810E94ED1321968B +:10283000C770E9CFDF91CF911F9108954091AB010F +:102840005091AC016091AD017091AE018091AF01EA +:102850009091B0010C94ED138091B00182958F702E +:1028600009F054C08091AD01882309F44FC08091D4 +:102870007901A0917A014091AE015091AF01609130 +:10288000AB017091AC01B6E08A1709F43FC090E04B +:1028900041155105C1F17F3F11F46F3FA1F1B89F80 +:1028A000F001B99FF00D1124E558FE4F2181271347 +:1028B0002AC02081261327C02281211124C0238110 +:1028C00034812417350710F421503109241B350BAE +:1028D000283C3105C0F42091B0012F702061209375 +:1028E000B00126E0289FF001299FF00D1124E05847 +:1028F000FE4F80818F70806180838BEA91E00E941F +:102900009F100C94FD1301968770BECF0895CF924F +:10291000DF92EF92FF920F931F93CF93DF93CDB788 +:10292000DEB762970FB6F894DEBF0FBECDBF8C0145 +:1029300085E0F801DE011D9601900D928A95E1F780 +:10294000D8014C9111965C91119712966C918091DF +:10295000AE019091AF01009709F475C13091AB01C0 +:102960007091AC017F3F19F43F3F09F46CC1F8014D +:10297000C380D480E090AD01EE2009F4BEC0209168 +:10298000B001C816D90628F0D601A81BB90BCD0195 +:1029900004C0809590958C0D9D1DFF24F394883C78 +:1029A000910578F0F12C207F09F0C4C07C2DD98AE4 +:1029B000C88A89890E94DE138BEA91E00E949F10E9 +:1029C000AFC0822F807F09F045C0571313C0431357 +:1029D00011C061110FC02F7020612093B0010E94BF +:1029E0001E148BEA91E00E949F108091B001F801C3 +:1029F00085832EC0CD2819F15F3F11F44F3FF9F0C8 +:102A0000F62E61111CC08091790120917A0136E087 +:102A1000821709F45BC090E0389FF001399FF00DF8 +:102A20001124E558FE4F7181571306C0708147137A +:102A300003C07281711103C001968770E9CFF62E31 +:102A4000662309F41CC18091B00181608093B001BC +:102A5000F12C15C1571309C0431307C0611105C0FC +:102A60008091B001F8018583C8C04D875E878D8550 +:102A70009E856A8B0E94BF136A898823D1F16623E1 +:102A8000C1F12091B001822F82958F7090E0029762 +:102A900074F08091AB019091AC0198878F83198677 +:102AA000DB86CA862C87CE0107960E949F1086E09F +:102AB000F801ABEAB1E001900D928A95E1F70E942E +:102AC0002C140E941E14FF24F394D9C04D875E87F6 +:102AD0008D859E850E94AB18292F22952F7022305C +:102AE00008F0C1C09F7009F0BBC0805E883008F458 +:102AF000C6C0C8010E949F10E6CFC816D90608F4C8 +:102B000053C0F601E81BF90BCF01883C910508F48E +:102B100050C0F12C7C2DD98AC88A89890E94DE1385 +:102B2000EBEAF1E086E0DF011D928A95E9F70E9469 +:102B30001E14A5C0571314C0431312C0611110C056 +:102B40008091B001F8018583C8010E949F1086E042 +:102B5000EBEAF1E0DF011D928A95E9F7FE2C8FC0C8 +:102B60004D875E878D859E856A8B0E94BF136A891B +:102B7000882309F4BECF662309F4BBCF2091B001AE +:102B8000822F82958F7090E002970CF490CF809105 +:102B9000AB019091AC019A8389831B82DD82CC8248 +:102BA0002E83CE01019681CF809590958C0D9D1D31 +:102BB000ACCFF62E662309F49CCF571333C04313D2 +:102BC00031C02091B00120FD24C0822F82958F70EA +:102BD000482F50E041155105E1F0D80115962C938E +:102BE00015974F30510549F08F5F982F9295907F40 +:102BF000822F8F70892B15968C93C8010E949F108D +:102C000086E0F801ABEAB1E001900D928A95E1F718 +:102C10008ECF86E0F801ABEAB1E001900D928A9583 +:102C2000E1F72DC04D875E878D859E850E94BF137D +:102C300081113DCF8091B00181608093B001C801C6 +:102C40000E949F101CC0662309F453CF4D875E87F6 +:102C50008D859E850E94BF13882309F44ACF27CF14 +:102C6000811143CF0CC0243008F043CF9F7009F48A +:102C70003CCFD80115969C91907F09F036CF8F2DCF +:102C800062960FB6F894DEBF0FBECDBFDF91CF9135 +:102C90001F910F91FF90EF90DF90CF9008951F93B9 +:102CA000CF93DF93CDB7DEB72C970FB6F894DEBF86 +:102CB0000FBECDBF4F83588769877A878B879C87E4 +:102CC000CE0107960E948714882371F08A859B8520 +:102CD000892B09F441C088858F3F09F065C08F8139 +:102CE0008F3F09F061C038C086E0FE013796DE01F3 +:102CF000119601900D928A95E1F76A857B856115A1 +:102D0000710551F1FF81E885EF3F11F4FF3F21F19B +:102D100020917A0130E0C90101968770992740918E +:102D2000790150E08417950709F447C0F983EA83D5 +:102D30007D836C8396E0929FD001939FB00D112408 +:102D4000A558BE4FFE01319601900D929A95E1F77C +:102D500080937A010E94FD1316E080917901909191 +:102D60007A018917B9F1189FC001112485589E4F27 +:102D70000E948714882371F1E09179011E9FF00170 +:102D80001124E558FE4F4081518162817381848115 +:102D900095810E94ED138091790190E001968770F2 +:102DA000992780937901D9CF4F81588569857A8594 +:102DB0008B859C850E94ED13CFCF0E94BB13109290 +:102DC0007A0110927901EBEAF1E086E0DF011D92D1 +:102DD0008A95E9F72C960FB6F894DEBF0FBECDBFEB +:102DE000DF91CF911F910895EF92FF920F931F9360 +:102DF000CF93DF938C01892B09F46CC0F12CEE2466 +:102E0000E394E8012196F8018491843740F48430FA +:102E100008F051C0813081F0823019F15BC08537F4 +:102E200009F444C0A8F19CE7980F903708F052C00D +:102E30008F770E94421041C00E5F1F4FFE018491A8 +:102E400090E2980F983050F48770FE2D01C0FF0F6C +:102E50008A95EAF78F2F0E947D1914C00E947A0F7D +:102E60002DC00E5F1F4FFE01849190E2980F9830A5 +:102E700060F48770FE2D01C0FF0F8A95EAF78F2F4F +:102E80000E9483190E94A41919C00E94421016C002 +:102E90000E5F1F4FFE01C491CC2381F08FE99FE0AC +:102EA0000197F1F700C00000C150F6CF0E5F1F4F31 +:102EB000FE01F49003C00E947A0F8E018F2D8823AB +:102EC00009F49FCFEFE9FFE03197F1F700C0000070 +:102ED0008150F5CFDF91CF911F910F91FF90EF902F +:102EE000089508956093B5017093B6018093B7017A +:102EF0009093B8010C94A9130F931F930091B501FF +:102F00001091B6012091B7013091B801DC01CB01DD +:102F1000802B912BA22BB32B8093B5019093B601FC +:102F2000A093B701B093B8011F910F910C94A9130E +:102F30000F931F930091B5011091B6012091B70135 +:102F40003091B801DC01CB0180239123A223B3236C +:102F50008093B5019093B601A093B701B093B801E7 +:102F60001F910F910C94A9130F931F930091B5011A +:102F70001091B6012091B7013091B801DC01CB016D +:102F800080279127A227B3278093B5019093B6019C +:102F9000A093B701B093B8011F910F910C94A9139E +:102FA0001092B1011092B2011092B3011092B401CB +:102FB0000C94A91341E050E060E070E004C0440FBD +:102FC000551F661F771F8A95D2F74093B101509322 +:102FD000B2016093B3017093B4010C94A91341E062 +:102FE00050E060E070E004C0440F551F661F771F7B +:102FF0008A95D2F78091B1019091B201A091B3016D +:10300000B091B401482B592B6A2B7B2B4093B10113 +:103010005093B2016093B3017093B4010C94A9135F +:1030200041E050E060E070E004C0440F551F661FAF +:10303000771F8A95D2F7409550956095709580914D +:10304000B1019091B201A091B301B091B4014823B4 +:1030500059236A237B234093B1015093B2016093BB +:10306000B3017093B4010C94A91341E050E060E007 +:1030700070E004C0440F551F661F771F8A95D2F772 +:103080008091B1019091B201A091B301B091B401CE +:10309000482759276A277B274093B1015093B201F3 +:1030A0006093B3017093B4010C94A9130F931F9311 +:1030B0000091B1011091B2012091B3013091B4019E +:1030C000DC01CB01802B912BA22BB32B8093B10180 +:1030D0009093B201A093B301B093B4011F910F91EB +:1030E0000C94A9130F931F930091B1011091B20199 +:1030F0002091B3013091B401DC01CB0180239123F5 +:10310000A223B3238093B1019093B201A093B301A2 +:10311000B093B4011F910F910C94A9130F931F93B7 +:103120000091B1011091B2012091B3013091B4012D +:10313000DC01CB0180279127A227B3278093B1011F +:103140009093B201A093B301B093B4011F910F917A +:103150000C94A9130895CF92DF92EF92FF920F93F0 +:103160001F93CF93DF938C01C090B101D090B20137 +:10317000E090B301F090B4018091B5019091B60157 +:10318000A091B701B091B801C82AD92AEA2AFB2A2E +:10319000CFE1D0E0D701C6010C2E04C0B695A795AB +:1031A000979587950A94D2F780FF07C0B8018C2FB6 +:1031B0000E9409068130910531F4219758F7B80132 +:1031C00080E00E940906DF91CF911F910F91FF903F +:1031D000EF90DF90CF90089590910C019923F1F03A +:1031E00090910D019923D1F0982F969596959695EB +:1031F0009F3080F5E0910E01F0910F01E90FF11D74 +:10320000877021E030E0A90102C0440F551F8A9564 +:10321000E2F7CA019181892B8183089520910E01E3 +:1032200030910F01F90132969FEF40E051918517DF +:1032300089F09F3F19F4511101C0942F4F5F4E3018 +:10324000A9F79F3F39F0F901E90FF11D97FDFA95B4 +:1032500082830895089590910C019923F9F090913B +:103260000D019923D9F0982F9695969596959F30B4 +:1032700028F5E0910E01F0910F01E90FF11D877023 +:1032800021E030E0A90102C0440F551F8A95E2F702 +:10329000CA018095918189238183089520910E012F +:1032A00030910F01F9013296205F3F4F90818913D1 +:1032B00001C010823196E217F307C1F7089581E04B +:1032C00090E0E0910E01F0910F01E80FF91F1082DC +:1032D000019680319105A9F708959091CB01892B32 +:1032E0008093CB01089580959091CB0189238093A1 +:1032F000CB0108951092CB0108959091CA01892BBA +:103300008093CA01089580959091CA018923809382 +:10331000CA0108951092CA0108958093B9010895D1 +:103320001092B901089580910E0190910F01FC0156 +:1033300031969C01205F3F4F80E0919191118F5F0A +:10334000E217F307D1F70895E0910E01F0910F0114 +:103350008091CB018083E0910E01F0910F0190816B +:103360008091CA01892B80838091B901882361F003 +:10337000E0910E01F0910F019081892B80830E94D2 +:10338000931981111092B90180910E0190910F0152 +:103390000C945E0ECF92DF92EF92FF926C01EE24BE +:1033A000FF24C114D104E104F10421F0C701B601E6 +:1033B00020E101C020E0C72ED82EE92EFF24C11441 +:1033C000D104E104F10419F0285FC701B6016B01D3 +:1033D0007C0154E0F694E794D794C7945A95D1F7BA +:1033E000C114D104E104F10419F02C5FC701B60146 +:1033F0006B017C0142E0F694E794D794C7944A9518 +:10340000D1F7C114D104E104F10419F02E5FC70112 +:10341000B601DC01CB01B695A79597958795892BC9 +:103420008A2B8B2B09F02F5F822FFF90EF90DF907C +:10343000CF9008958091E401843011F120E488E177 +:1034400090E00FB6F894A895809360000FBE20938B +:10345000600083B7817F846083BF83B7816083BF4F +:103460007894889583B78E7F83BF0FB6F894A8951C +:1034700080916000886180936000109260000FBEB0 +:10348000089508950C94411ACF930E94421A0E9405 +:1034900028040E94411AC0E08C2F0E941E05811151 +:1034A00004C0CF5FCE30C1F701C081E0CF91089555 +:1034B0000E94BB130E94520E0C94480782E084BD08 +:1034C00093E095BD9AEF97BD80936E0008952FB756 +:1034D000F8948091CD019091CE01A091CF01B0914F +:1034E000D0012FBF0895CF92DF92EF92FF920F93FA +:1034F0001F932FB7F8944091CD015091CE01609168 +:10350000CF017091D0012FBF6A017B01EE24FF240F +:103510008C0120E030E0C016D106E206F30610F47C +:10352000415051099A01281B390BC9011F910F9174 +:10353000FF90EF90DF90CF9008951F920F920FB6FB +:103540000F9211248F939F93AF93BF938091CD01DE +:103550009091CE01A091CF01B091D0010196A11D13 +:10356000B11D8093CD019093CE01A093CF01B09374 +:10357000D001BF91AF919F918F910F900FBE0F908F +:103580001F9018950E944A0BF8942FEF87EA91E656 +:10359000215080409040E1F700C0000087E090EBB0 +:1035A000DC018093ED019093EE01A093EF01B093C5 +:1035B000F0019CE088E10FB6F894A8958093600034 +:1035C0000FBE90936000FFCFEF92FF920F931F9377 +:1035D000CF93DF93D82FC0E08C2F0E941E0500E010 +:1035E00010E0E82EF12CC701002E02C095958795BA +:1035F0000A94E2F780FD06C00F5F1F4F06301105E9 +:1036000091F709C0602F7C2F80E00E94E6058D13A2 +:10361000F3CF81E004C0CF5FCE30F1F680E0DF91E0 +:10362000CF911F910F91FF90EF900895CF93C82FE6 +:103630008CE20E94E41A882321F08C2FCF910C9405 +:10364000E41A80E0CF910895CF930E946B1C811102 +:1036500002C00E94511CC5E6C15049F00E942804D6 +:103660008FE39CE90197F1F700C00000F5CF89E2F4 +:103670000E94161B811113C18AE20E94161B811140 +:103680000E94511C85E00E94161B81110E94C21AE3 +:103690000E94761C8093CC0187E00E94161B882331 +:1036A000A9F18BE10E94161B882351F08091CC0177 +:1036B00081FB222720F991E0922790FB81F90EC02F +:1036C0008EE00E94161B882361F08091CC0182FB62 +:1036D000222720F991E0922790FB82F98093CC0178 +:1036E00015C080E10E94161B9091CC01882341F007 +:1036F00093FB222720F981E0822780FB93F904C005 +:10370000892F809580FB90F99093CC018091CC011A +:103710000E947A1C0E94881C8093DE0180EE0E9429 +:10372000161B882341F08091DE01982F909590FB25 +:1037300080F98093DE0189E30E94161B882359F0EB +:103740008091DE0181FB222720F991E0922790FBF6 +:1037500081F98093DE0182EE0E94161B882359F0C6 +:103760008091DE0182FB222720F991E0922790FBD5 +:1037700082F98093DE0186EE0E94161B882359F0A1 +:103780008091DE0183FB222720F991E0922790FBB4 +:1037900083F98093DE0183EE0E94161B882359F083 +:1037A0008091DE0184FB222720F991E0922790FB93 +:1037B00084F98093DE0185E30E94161B882359F06B +:1037C0008091DE0185FB222720F991E0922790FB72 +:1037D00085F98093DE0181E30E94161B882359F04E +:1037E0008091DE0186FB222720F991E0922790FB51 +:1037F00086F98093DE0181E10E94161B882359F02F +:103800008091DE0187FB222720F991E0922790FB2F +:1038100087F98093DE018091DE010E948C1C8091EB +:10382000DE0187FB882780F980930D0187E20E94E3 +:10383000161BC82F8EE10E94161B8111C2608FE1FA +:103840000E94161B8111C46080E20E94161B811128 +:10385000C86081E20E94161B8111C06182E20E9451 +:10386000161B8111C06283E20E94161B8111C06485 +:1038700084E20E94161B882311F0C06802C0CC238A +:1038800029F08C2F0E94831C6C2F03C00E947F1C88 +:10389000682F70E080E090E0CF910C947217CF9188 +:1038A00008956DEE7EEF80E090E00E94C52260E01A +:1038B00082E090E00E94B72260E083E090E00E9406 +:1038C000B72260E084E090E00E94B72260E085E0EB +:1038D00090E00C94B72280E090E00E94B12221E0B9 +:1038E0008D3E9E4F09F020E0822F089582E090E007 +:1038F0000C94A922682F82E090E00C94B72283E018 +:1039000090E00C94A922682F83E090E00C94B722F9 +:1039100084E090E00C94A922682F84E090E00C945D +:10392000B7228091D30180FF0BC06091130185E025 +:10393000689FB001112475956795759567952BC0A3 +:1039400081FF09C06091130185E0689FB0011124D7 +:103950007595679520C082FF07C06091130185E0CF +:10396000689FB001112417C09091D4019923D1F020 +:1039700060911201961788F72091130185E0289F26 +:1039800090011124929FA001939F500D112470E08B +:10399000CA010E947B226038710540F461157105EF +:1039A00019F406C065E070E0862F08958FE708954A +:1039B00081E008958091D30180FF08C060911101DA +:1039C00070E0759567957595679521C081FF06C074 +:1039D0006091110170E07595679519C082FF04C070 +:1039E0006091110170E010C09091D401992399F079 +:1039F000609110019617A0F780911101899FC00175 +:103A0000112470E00E947B226038710540F461153A +:103A1000710519F406C061E070E0862F08958FE704 +:103A2000089581E00895803F21F40E94911C8195C2 +:103A300004C0813F29F40E94911C8093D70108950E +:103A4000823F21F40E94911C819504C0833F29F498 +:103A50000E94911C8093D6010895893F19F40E9419 +:103A6000DA1C05C08A3F31F40E94DA1C81958093EC +:103A7000D80108958B3F21F40E94DA1C819504C07F +:103A80008C3F29F40E94DA1C8093D9010895843F69 +:103A900021F48091D501816017C0853F21F4809188 +:103AA000D501826011C0863F21F48091D5018460E8 +:103AB0000BC0873F21F48091D501886005C0883F05 +:103AC00031F48091D50180618093D50108958D3FB7 +:103AD00021F48091D30181600BC08E3F21F480914D +:103AE000D301826005C08F3F29F48091D3018460A7 +:103AF0008093D3010895803F39F48091D70187FFE7 +:103B00006CC01092D70169C0813F29F48091D70120 +:103B10001816BCF362C09091D601823F29F497FF3A +:103B20005CC01092D60159C0833F19F41916CCF32A +:103B300054C0893F41F48091D80118160CF04DC053 +:103B40001092D8014AC08A3F29F48091D80187FF9A +:103B500044C0F6CF8B3F39F48091D90187FF3DC037 +:103B60001092D9013AC08C3F29F48091D9011816DE +:103B7000BCF333C0843F21F48091D5018E7F17C000 +:103B8000853F21F48091D5018D7F11C0863F21F4BE +:103B90008091D5018B7F0BC0873F21F48091D501A7 +:103BA000877F05C0883F31F48091D5018F7E809357 +:103BB000D50113C08D3F21F48091D3018E7F0BC0BE +:103BC0008E3F21F48091D3018D7F05C08F3F29F472 +:103BD0008091D3018B7F8093D3018091D601811195 +:103BE0000EC08091D70181110AC08091D801811146 +:103BF00006C08091D901811102C01092D4010895AC +:103C000085ED91E00E94690E0E94671A9093D2019F +:103C10008093D10108951F93CF93DF938091D101B9 +:103C20009091D2010E94731AAC019091D401992312 +:103C300021F02091140130E006C0209115018AE0A6 +:103C4000289F900111244217530708F485C08091E2 +:103C5000D601C091D701D091D8011091D90181111D +:103C600007C0C11175C0D11173C0111171C074C0EA +:103C70009F3F19F09F5F9093D401181624F40E947F +:103C8000911C8093D6018091D60187FF05C00E94C8 +:103C9000911C81958093D6011C1624F40E94911CDE +:103CA0008093D7018091D70187FF05C00E94911CA6 +:103CB00081958093D7016091D601662331F1C0913F +:103CC000D701CC2311F1062E000C770B880B990B32 +:103CD0000E94822123E333E343E35FE30E94E62172 +:103CE0000E944A216093D6016C2FCC0F770B880B72 +:103CF000990B0E94822123E333E343E35FE30E94B5 +:103D0000E6210E944A216093D7011D1624F40E94E7 +:103D1000DA1C8093D8018091D80187FF05C00E94EA +:103D2000DA1C81958093D801111624F40E94DA1CC4 +:103D30008093D9018091D90187FF05C00E94DA1CC8 +:103D400081958093D901DF91CF911F910C94001E32 +:103D50009F3F09F08FCFA0CFDF91CF911F910895A2 +:103D6000E5EDF1E085E0DF011D928A95E9F710921B +:103D7000D4011092D3010895833081F128F4813069 +:103D800059F08230D1F00895853009F449C0B8F176 +:103D9000863009F456C0089580911501262F30E031 +:103DA000280F311D2F3F310524F4680F6093150152 +:103DB00008958FEF80931501089580911401262FA7 +:103DC00030E0280F311D2F3F310524F4680F609338 +:103DD000140108958FEF80931401089580911301C9 +:103DE000262F30E0280F311D2F3F310524F4680FB6 +:103DF0006093130108958FEF8093130108958091CC +:103E00001201262F30E0280F311D2F3F310524F4F9 +:103E1000680F6093120108958FEF80931201089547 +:103E200080911101262F30E0280F311D2F3F3105E1 +:103E300024F4680F6093110108958FEF80931101AE +:103E4000089580911001262F30E0280F311D2F3F5B +:103E5000310524F4680F6093100108958FEF80936B +:103E600010010895833011F128F4813049F0823037 +:103E700091F00895853081F120F18630C1F10895E7 +:103E800080911501681720F4861B80931501089511 +:103E900010921501089580911401681720F4861B73 +:103EA00080931401089510921401089580911301D4 +:103EB000681720F4861B8093130108951092130154 +:103EC000089580911201681720F4861B80931201D7 +:103ED000089510921201089580911101681720F43D +:103EE000861B80931101089510921101089580910D +:103EF0001001681720F4861B80931001089510921A +:103F0000100108950F931F938D3109F46BC008F0D1 +:103F10003FC08E3009F47DC0C0F4873009F46EC014 +:103F200068F4863009F0AFC08091CC01817F8E7F2C +:103F30008093CC0181E08093DB01A6C0883009F436 +:103F400058C08B3009F49BC09EC0863109F497C0DD +:103F500078F4803109F470C0813109F094C00E9476 +:103F6000BB1390910D0181E0892780930D0187C0DB +:103F7000893109F484C08B3109F085C08091CC016E +:103F800081FB222720F991E0922790FB81F94AC01A +:103F9000853309F45BC048F4873209F457C008F44C +:103FA0005AC0893209F452C06EC0833438F48A335F +:103FB00008F067C0883309F462C065C0833409F42F +:103FC00045C0883409F05FC00E94BB130FEF13EDAA +:103FD00020E3015010402040E1F700C000000E94A3 +:103FE000C21A4DC00E9404210E94520E0E9448072E +:103FF00046C00E94761C0E94881C41C09091CC0152 +:10400000892F817090FF12C0917F9E7F9093CC0189 +:104010003BC08091CC0182FB222720F991E09227BE +:1040200090FB82F98093CC01992349F18091CC01D6 +:1040300081608093CC0123C08091CC0183FB222737 +:1040400020F991E0922790FB83F9ECCF61E070E0DA +:1040500080E090E010C08D5141E050E060E070E001 +:104060008A019B0104C0000F111F221F331F8A9574 +:10407000D2F7C901B8010E9472170E94BB1381E0F8 +:1040800003C08953E9CF80E01F910F91089580E02C +:1040900008950C944720CF93C82F8091DB01813085 +:1040A00079F018F08230E9F187C0E0910E01F091CB +:1040B0000F018081813169F0823209F07FC009C02F +:1040C000E0910E01F0910F018081813111F0823277 +:1040D00061F48C2F0E944920811104C08C2F0E9412 +:1040E000821F1DC081E090E01AC08C2F0E944720E3 +:1040F000811114C0C43179F048F4CB3079F0C0316B +:1041000009F060C082E08093DB0108C0C93219F079 +:10411000C83321F057C01092DB0154C081E0817098 +:1041200053C0C93289F118F5C43171F1A8F4C73010 +:1041300009F046C08AE08093150194E19093140140 +:1041400093E0909313018093120188E08093110112 +:1041500088E28093100134C0CE51C63088F5EC2F30 +:10416000F0E0E65DFE4F80818093DA0129C0CE3415 +:10417000E9F020F4CB3421F56AE013C0C13579F0C1 +:10418000C235F1F461E00DC08091DA01882319F0A5 +:104190001092DA0115C081E08093DB0115C061E067 +:1041A00006C08091DA010E94BC1E0AC06AE08091BC +:1041B000DA010E94321F04C01092DB0180E004C0CB +:1041C00081E002C080E0ABCFCF910895E1E8F0E05C +:1041D0008081886080838081816080838FB7F8943C +:1041E00093E09093890090ED909388008FBF08959D +:1041F000EFE6F0E08081826080830895EFE6F0E0F2 +:1042000080818D7F80830895EFE6F0E0908182E0E9 +:104210008927808308951F920F920FB60F92112461 +:104220002F933F934F935F936F937F938F939F93BE +:10423000AF93BF93EF93FF938091DC019091DD01E9 +:1042400001969093DD018093DC01811103C082E02F +:104250000E944807E091DD01E695E695F0E0E6571B +:10426000FB4FE4918091DC018E1303C080E00E943B +:104270004807FF91EF91BF91AF919F918F917F91EF +:104280006F915F914F913F912F910F900FBE0F90C3 +:104290001F9018950E9451216894B1110C94E0214F +:1042A00008950E94C52188F09F5798F0B92F99274B +:1042B000B751B0F0E1F0660F771F881F991F1AF011 +:1042C000BA95C9F714C0B13091F00E94DF21B1E076 +:1042D00008950C94DF21672F782F8827B85F39F075 +:1042E000B93FCCF3869577956795B395D9F73EF4AA +:1042F00090958095709561957F4F8F4F9F4F089552 +:10430000E89409C097FB3EF490958095709561956F +:104310007F4F8F4F9F4F9923A9F0F92F96E9BB2725 +:104320009395F695879577956795B795F111F8CFA1 +:10433000FAF4BB0F11F460FF1BC06F5F7F4F8F4F0C +:104340009F4F16C0882311F096E911C0772321F002 +:104350009EE8872F762F05C0662371F096E8862F9A +:1043600070E060E02AF09A95660F771F881FDAF7F1 +:10437000880F9695879597F9089557FD9058440FA3 +:10438000551F59F05F3F71F04795880F97FB991FB4 +:1043900061F09F3F79F08795089512161306140671 +:1043A000551FF2CF4695F1DF08C0161617061806FE +:1043B000991FF1CF86957105610508940895E894D9 +:1043C000BB2766277727CB0197F908950E94F9212B +:1043D0000C946A220E945C2238F00E94632220F032 +:1043E000952311F00C9453220C94592211240C940F +:1043F000E0210E94BD2170F3959FC1F3950F50E01D +:10440000551F629FF001729FBB27F00DB11D639F86 +:10441000AA27F00DB11DAA1F649F6627B00DA11D2C +:10442000661F829F2227B00DA11D621F739FB00DD2 +:10443000A11D621F839FA00D611D221F749F332742 +:10444000A00D611D231F849F600D211D822F762FDB +:104450006A2F11249F5750409AF0F1F088234AF0B8 +:10446000EE0FFF1FBB1F661F771F881F9150504024 +:10447000A9F79E3F510580F00C9453220C94E02143 +:104480005F3FE4F3983ED4F3869577956795B795AB +:10449000F795E7959F5FC1F7FE2B880F911D9695C5 +:1044A000879597F9089597F99F6780E870E060E035 +:1044B00008959FEF80EC089500240A9416161706BD +:1044C00018060906089500240A9412161306140605 +:1044D00005060895092E0394000C11F4882352F068 +:1044E000BB0F40F4BF2B11F460FF04C06F5F7F4F20 +:1044F0008F4F9F4F089597FB072E16F4009407D017 +:1045000077FD09D00E94952207FC05D03EF49095D6 +:1045100081959F4F0895709561957F4F0895EE0F97 +:10452000FF1F0590F491E02D0994AA1BBB1B51E1DC +:1045300007C0AA1FBB1FA617B70710F0A61BB70B13 +:10454000881F991F5A95A9F780959095BC01CD01B8 +:104550000895F999FECF92BD81BDF89A992780B54B +:104560000895A8E1B0E042E050E00C94CC22262F60 +:10457000F999FECF1FBA92BD81BD20BD0FB6F89448 +:10458000FA9AF99A0FBE019608950E94B722272F32 +:104590000C94B822DC01CB01FC01F999FECF06C0D6 +:1045A000F2BDE1BDF89A319600B40D9241505040F1 +:0845B000B8F70895F894FFCF5D +:1045B80020024907D907B40780074C070101BA014F +:1045C80028080A03140A3F4D36394B04FE03C80372 +:1045D8008F0322033B0354036D0301020304050602 +:0445E80007080900B7 +:00000001FF diff --git a/keyboard/ergodox_ez/keymaps/keymap_german.c b/keyboard/ergodox_ez/keymaps/german/keymap.c similarity index 99% rename from keyboard/ergodox_ez/keymaps/keymap_german.c rename to keyboard/ergodox_ez/keymaps/german/keymap.c index d91f1e9373..7ec8d99cc0 100644 --- a/keyboard/ergodox_ez/keymaps/keymap_german.c +++ b/keyboard/ergodox_ez/keymaps/german/keymap.c @@ -157,12 +157,12 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) }; // Runs just one time when the keyboard initializes. -void * matrix_init_user(void) { +void matrix_init_user(void) { }; // Runs constantly in the background, in a loop. -void * matrix_scan_user(void) { +void matrix_scan_user(void) { uint8_t layer = biton32(layer_state); diff --git a/keyboard/ergodox_ez/keymaps/j3rn/j3rn.hex b/keyboard/ergodox_ez/keymaps/j3rn/j3rn.hex new file mode 100644 index 0000000000..40fcc2ba0d --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/j3rn/j3rn.hex @@ -0,0 +1,1121 @@ +:100000000C9465020C94AC020C94AC020C94AC02FF +:100010000C94AC020C94AC020C94AC020C94AC02A8 +:100020000C94AC020C94AC020C94C30B0C94950C85 +:100030000C94AC020C94AC020C94AC020C94AC0288 +:100040000C94AC020C9409210C94AC020C94AC02FC +:100050000C94AC020C949B1A0C94AC020C94AC0261 +:100060000C94AC020C94AC020C94AC020C94AC0258 +:100070000C94AC020C94AC020C94AC020C94AC0248 +:100080000C94AC020C94AC020C94AC020C94AC0238 +:100090000C94AC020C94AC020C94AC020C94AC0228 +:1000A0000C94AC020C94AC020C94AC02020D240D26 +:1000B000170E240D170E690D8C0D170EE10DF40DA2 +:1000C000DE10DE100D110D1150118A1197139713C8 +:1000D000A3119713981298126B1397139713821307 +:1000E0000000F0A135002B002971E100C1000000E3 +:1000F0001E00140004001D713400E1001F001A00EE +:1001000016001B00E104E3002000080007000600C1 +:1001100050002C0021001500090019004F004D006F +:10012000220017000A000500000065742F002D0052 +:100130000000007F00004A0030002E000000007721 +:1001400000004B0023001C000B001100000029716F +:10015000240018000D00100052004E0025000C0075 +:100160000E00360051002800260012000F00370054 +:100170002F002B0027001300338238713000E2007B +:100180002A0031003400E500C10000000100010038 +:1001900001000100010000003A001E0220022202BC +:1001A000010001003B001F022102230201000100A7 +:1001B0003C002F0226022F00010001003D0030020A +:1001C00027023000010001003E00310235003502F7 +:1001D000000001000100010000000100000001001A +:1001E0000100010000000100000001003F0052007A +:1001F00051002402000001004000240021001E00E4 +:10020000010001004100250022001F00370001000D +:1002100042002600230020002700010043002502A1 +:100220002E0231002E0001004400450001000100B3 +:1002300001000000010001000100010001000000B8 +:1002400001000100010001000100010001000100A6 +:10025000F2000100010001000100F000F1000100C6 +:10026000F400010001000100F3000100F5000100AD +:100270000100010001000100000001000100010077 +:100280000000010000000100010001000000010069 +:100290000000010001000100010001000000010058 +:1002A0000100010001000100A9000100010001009E +:1002B0000100AC00AA00B600010001000100AB0083 +:1002C000A80001000100010001000100010001007F +:1002D00001000100AE00010001000000160345000E +:1002E000720067006F0044006F0078002000450036 +:1002F0005A00000016034500720067006F004400BA +:100300006F007800200045005A0000000403090433 +:1003100009026D00040100A0FA09040000010301B4 +:100320000100092111010001223F00070581030896 +:10033000000A090401000103010200092111010062 +:1003400001224D000705820308000A09040200018A +:100350000300000009211101000122360007058376 +:100360000308000A09040300010300000009211129 +:100370000100012239000705840310000112011059 +:100380000100000008EDFE07130100010200010555 +:10039000010906A101050719E029E71500250195C6 +:1003A0000875018102050819012905950575019156 +:1003B000029501750391010507190029771500259C +:1003C00001957875018102C005010980A1018502AE +:1003D00016010026B7001A01002AB7007510950112 +:1003E0008100C0050C0901A1018503160100269CAE +:1003F000021A01002A9C02751095018100C00501B6 +:100400000902A1010901A100050919012905150029 +:10041000250195057501810295017503810105018D +:10042000093009311581257F950275088106093843 +:100430001581257F950175088106050C0A3802157E +:1004400081257F950175088106C0C005010906A1B7 +:1004500001050719E029E7150025019508750181B7 +:100460000295017508810105081901290595057591 +:100470000191029501750391010507190029FF15E6 +:100480000025FF950675088100C0000000000000EF +:100490000000000000010204060A0F17202C3A4A4F +:1004A0005D71879DB3C7DAE9F5FCFFFCF5E9DAC7B2 +:1004B000B39D87715D4A3A2C20170F0A060402018A +:1004C0000000000000000000000011241FBECFEF5C +:1004D000DAE0DEBFCDBF04B603FE27C08091ED0198 +:1004E0009091EE01A091EF01B091F0018730904B17 +:1004F000A740B04BD1F41092ED011092EE01109292 +:10050000EF011092F00114BE84B7877F84BF0FB64D +:10051000F894A895809160008861809360001092A3 +:1005200060000FBEE0E0FFE3099511E0A0E0B1E05C +:10053000E4EBF5E402C005900D92A433B107D9F7BE +:1005400021E0A4E3B1E001C01D92AD3EB207E1F7A6 +:100550000E940A090C94D8220C94000061110BC06F +:10056000FC018281882321F085EE0E94780F03C070 +:1005700085EE0E94401080E090E00895089560911B +:10058000B1017091B2018091B3019091B4010E94C8 +:10059000C81956985E9825982D9826982E982798D1 +:1005A0002F98813019F0823021F00895259A2D9AE4 +:1005B0000895269A2E9A08950C94BF0256985E9834 +:1005C00025982D9826982E9827982F988FEF90E0B1 +:1005D000909389008093880090938B0080938A0089 +:1005E00090938D0080938C00259A2D9A2FEF80E7B1 +:1005F00092E0215080409040E1F700C00000269A30 +:100600002E9A2FEF80E792E0215080409040E1F752 +:1006100000C00000279A2F9A2FEF80E792E0215028 +:1006200080409040E1F700C0000025982D982FEF02 +:1006300080E792E0215080409040E1F700C0000048 +:1006400026982E982FEF80E792E02150804090402E +:10065000E1F700C0000027982F9856985E982598DB +:100660002D9826982E9827982F98089589EA809398 +:10067000800089E08093810024982C983F988AB16B +:100680008F748AB96E98479A8BB1806B8BB9769AC2 +:100690000E94DE020C94BE0280E2809300018091F1 +:1006A000340181110EC00E949B0381E080933401CC +:1006B0002FEF83ED90E3215080409040E1F700C0A0 +:1006C000000080E40E94A1038093000181112EC0EC +:1006D0000E94CB0380930001811128C00E94CB03AC +:1006E00080930001811122C08FE30E94CB0380938D +:1006F000000181111BC00E94C30380E40E94A1037A +:1007000080930001811112C08CE00E94CB03809382 +:10071000000181110BC00E94CB0380930001811165 +:1007200005C08FE30E94CB03809300010E94C303A6 +:100730008091000108951092B9008AE08093B8007A +:10074000089594EA9093BC009091BC0097FFFCCF71 +:100750009091B900987F983021F0903111F081E0AC +:1007600008958093BB0084E88093BC008091BC0016 +:1007700087FFFCCF8091B900887F883111F08034E9 +:1007800071F780E0089584E98093BC008091BC00FB +:1007900084FDFCCF08958093BB0084E88093BC0067 +:1007A0008091BC0087FFFCCF9091B900987F81E0D9 +:1007B000983209F480E0089584E88093BC00809129 +:1007C000BC0087FFFCCF8091BB00089580910001A1 +:1007D000811115C080E40E94A10380930001811162 +:1007E0000CC082E10E94CB0380930001811105C0FF +:1007F0008FEF0E94CB03809300010E94C30384B15A +:10080000807F84B985B1807F85B98AB1837F8AB9B9 +:100810008BB1837F8BB93E98469808950E944C0314 +:10082000809300010E94E60380B38C7080BB81B38B +:10083000836F81BBE4E4F1E0A6E3B1E011921D9285 +:1008400081E0E235F807D1F70C9436039F92AF921E +:10085000BF92CF92DF92EF92FF920F931F93CF93AD +:10086000DF9380910001882379F0809135018F5FBB +:1008700080933501811108C00E944C0380930001D0 +:10088000811102C00E94DE0286E3E82E81E0F82E8C +:100890008701C0E0D0E0BB24B39492E0A92ECC2421 +:1008A000C394D12CC730D10500F58091000181118E +:1008B00064C080E40E94A10380930001811112C0F2 +:1008C00082E10E94CB038093000181110BC0C6011D +:1008D0000C2E01C0880F0A94EAF780950E94CB0382 +:1008E000809300010E94C30348C0CA30A1F028F4DD +:1008F000C83059F0C93061F005C0CC3089F070F0D3 +:10090000CD3089F0209A289810C0219A29980DC0DE +:10091000229A2A980AC0239A2B9807C0529A01C09B +:10092000539A5B9802C03E9A4698E0EAEA95F1F73E +:100930008FB181708B25799902C032E001C030E01F +:10094000832B7C9902C034E001C030E0832B7D9979 +:1009500002C028E001C020E0822B7E9902C090E115 +:1009600001C090E0892B9FB19095991F9927991FFD +:100970009295990F907E892B0FC080910001811173 +:100980004AC080E40E94A10380930001882381F182 +:10099000912C0E94C303892DD8019C91981719F0BE +:1009A0008C93A09201010E94E60321960F5F1F4FD6 +:1009B000CE30D10509F076CF80910101882369F10D +:1009C000815080930101882339F0EFE9FFE03197EE +:1009D000F1F700C0000021C0E4E4F1E0D7018D91FF +:1009E0007D018193B4E4EB16B1E0FB06B9F715C0C5 +:1009F00083E10E94CB03809300018111C9CF81E480 +:100A00000E94A103809300018111C2CF0E94DC03E8 +:100A1000982E9094BECF80E0BFCF0E94DC0281E090 +:100A2000DF91CF911F910F91FF90EF90DF90CF90CA +:100A3000BF90AF909F900895E82FF0E0EC5BFE4FE1 +:100A40008081089508958B3B910580F4883A910543 +:100A500048F5853A9105D8F48430910508F0B2C084 +:100A6000019709F06EC081E090E00895803E910505 +:100A700008F467C0883E910508F4A4C09C01205F7B +:100A800031092031310508F05CC090650895853A40 +:100A9000910509F459C0863A910509F058C082E8D9 +:100AA00090E40895883A910509F454C0893A910573 +:100AB00009F453C08A3A910509F452C08B3A910562 +:100AC00009F451C08C3A910509F450C08D3A910552 +:100AD00009F44FC0803B910509F44EC08E3A910550 +:100AE00009F44DC08F3A910509F44CC0813B910542 +:100AF00009F44BC0823B910509F44AC0833B910540 +:100B000009F449C0843B910509F448C0853B91052F +:100B100009F447C0863B910509F446C0873B91051F +:100B200009F445C0883B910509F444C0893B91050F +:100B300009F443C08A3B910509F442C080E094E483 +:100B4000089580E090E0089581E890E4089583E8B6 +:100B500090E4089582EE94E4089589EE94E4089573 +:100B60008AEE94E4089585EB94E4089586EB94E48A +:100B7000089587EB94E408958CEC94E408958DEC4B +:100B800094E4089583E895E408958AE895E4089547 +:100B900082E995E4089584E995E4089581E296E474 +:100BA000089583E296E4089584E296E4089585E248 +:100BB00096E4089586E296E4089587E296E408951F +:100BC0008AE296E40895089524E5829FC0011124E5 +:100BD000FC0126E0729FE00DF11D1124E60FF11DCE +:100BE000EE0FFF1FEC51FF4F859194910895880FF0 +:100BF000991FFC01E05AF040859194910895880F67 +:100C0000991FFC01E052FF4F85919491089524E5CE +:100C1000829FC0011124FC0146E0749FE00DF11D8C +:100C20001124E60FF11DEE0FFF1FEC51FF4F8591D0 +:100C300094919C013A9521154FE1340708F425C1A0 +:100C40003F512115304120F49F700E94FF05089507 +:100C50009C0130532115304118F49927906C089568 +:100C6000811520E5920769F40E94B9134FEF84E3E0 +:100C70009CE0415080409040E1F700C000000C949F +:100C8000C01A813020E5920731F48091CC01816057 +:100C90008093CC0108959C0130552115304108F016 +:100CA0005CC0292F33272F70332721303105E9F419 +:100CB000AC0164E0440F551F6A95E1F74427537077 +:100CC000BC016370772702C0220F331F6A95E2F7D9 +:100CD0003C68242B352B73E0880F991F7A95E1F738 +:100CE00080769927822B932B08952230310529F4A1 +:100CF000982F8827816F906A089523303105A1F4D9 +:100D0000AC0133E0440F551F3A95E1F7407E577030 +:100D10008370992721E030E002C0220F331F8A95AB +:100D2000E2F7C9019C6816C02430310531F5AC01E9 +:100D300023E0440F551F2A95E1F7407E57708370DA +:100D4000992721E030E002C0220F331F8A95E2F795 +:100D5000C9019A68842B952B08959C013057211561 +:100D6000304118F49F70906208959C01305821150D +:100D7000304118F49F70906A0895803E9105E0F428 +:100D8000803C910558F58133910509F46FC048F412 +:100D90008932910509F463C08A32910509F46DC066 +:100DA00072C089339105E9F082389105D1F085331D +:100DB000910509F44DC067C0833E910581F138F477 +:100DC000803E9105B9F0823E9105D9F05CC0863E27 +:100DD000910561F1873E9105A1F155C00E94F7058B +:100DE00008952091DE0120FD02C021FF4CC080EE5D +:100DF00090E049C08091DE0180FFF9CF89E390E067 +:100E000042C08091DE0182FF0EC08091DE0184FF2E +:100E100003C080E090E037C083EE90E034C0809162 +:100E2000DE0182FFF2CF82EE90E02DC08091DE01E4 +:100E300083FF0BC08091DE0184FDEBCF87EE90E055 +:100E400022C08091DE0183FFF5CF86EE90E01BC0CB +:100E50008091DE0185FF07C089E290E014C0809197 +:100E6000DE0185FFF9CF85E390E00DC08091DE01C2 +:100E700086FF07C08AE290E006C08091DE0186FF0F +:100E8000F9CF81E390E00E942305089508958091B1 +:100E900062010895CF93DF9300D01F92CDB7DEB7E4 +:100EA0009C018091E401843019F593E099833B83A0 +:100EB0002A839093E9008FEF9091E800815095FD8F +:100EC00006C095ED9A95F1F700008111F5CF80915C +:100ED000E80085FF0DC040E050E063E070E0CE0127 +:100EE00001960E94B7098091E8008E778093E80010 +:100EF0000F900F900F90DF91CF910895CF93DF93D4 +:100F000000D01F92CDB7DEB72091E401243021F547 +:100F100022E029839B838A8383E08093E9008FEF1B +:100F20009091E800815095FD06C095ED9A95F1F7F6 +:100F300000008111F5CF8091E80085FF0DC040E0F1 +:100F400050E063E070E0CE0101960E94B709809105 +:100F5000E8008E778093E8000F900F900F90DF915C +:100F6000CF9108959C018091E4018430F9F482E0EE +:100F70008093E9009FEF8091E800915085FD06C0C5 +:100F800085ED8A95F1F700009111F5CF8091E80089 +:100F900085FF0CC040E050E065E070E0C9010E94B0 +:100FA000B7098091E8008E778093E8000895CF9389 +:100FB000DF93EC018091E401843009F046C0909108 +:100FC0000C019923D9F090910D019923B9F08093E8 +:100FD000E9008FEF9091E800815095FD06C095E102 +:100FE0009A95F1F700008111F5CF8091E80085FF17 +:100FF0002CC040E050E060E170E017C081E08093D9 +:10100000E9008FEF9091E800815095FD06C095EDC5 +:101010009A95F1F700008111F5CF8091E80085FFE6 +:1010200014C040E050E068E070E0CE010E94B709D3 +:101030008091E8008E778093E80080E1FE01A2E5D0 +:10104000B1E001900D928A95E1F7DF91CF9108957B +:101050008091E301811109C00E94480B0E94A50BF9 +:101060008091E20084608093E20008951092E30191 +:10107000089508950C94F6200E94561A0E94FC20B0 +:101080000E94500E0C94460742E061EC81E00E9401 +:10109000C10A42E061EC82E00E94C10A42E061ECD8 +:1010A00083E00E94C10A42E161EC84E00C94C10A31 +:1010B0008091E601833009F455C030F4813071F03D +:1010C000823009F48EC008958A3009F47AC08B30DA +:1010D00009F460C0893009F09CC020C08091E5010E +:1010E000813A09F096C08091E800877F8093E800FC +:1010F0008091E9019091EA01892B21F460E182E578 +:1011000091E003C060E080E090E070E00E94020A9D +:101110008091E8008B778093E80008958091E50145 +:10112000813209F076C08091E9019091EA0100973F +:1011300019F0039709F06DC08091E800877F8093D4 +:10114000E8008091E80082FD05C08091E4018111F2 +:10115000F8CF5FC08091F100809362018091E80038 +:101160008B7753C08091E501813A09F052C080919C +:10117000E9019091EA01892B09F04BC08091E800C8 +:10118000877F8093E8008091E80080FFFCCF80910A +:101190000C0136C08091E5018132D9F58091E901D9 +:1011A0009091EA01892BA9F58091E800877F8093CF +:1011B000E8000E94F60A8091E70180930C010C94EC +:1011C000B9138091E501813221F58091E800877F94 +:1011D0008093E8000E94F60A8091E8018093630101 +:1011E00008958091E501813AA1F48091E800877F1C +:1011F0008093E8008091E80080FFFCCF809163013C +:101200008093F1008091E8008E778093E8000C9441 +:10121000F60A089584B7877F84BF0FB6F894A8951F +:1012200080916000886180936000109260000FBE22 +:1012300090E080E80FB6F89480936100909361008D +:101240000FBE0E949F0E0E94480B0E94A50B80912A +:10125000E20084608093E20078940E94300E0E9445 +:10126000A10E82E091E00E944B0E0E94E42080914A +:10127000E401853069F40E94181A8091E201882304 +:10128000B1F30E94421A882391F30E94A109EFCF83 +:101290000E94A70EECCF292F332723303105C9F048 +:1012A00060F42130310581F02230310509F041C070 +:1012B0008DE690E020E133E040C021323105E1F0DD +:1012C0002232310531F135C082E190E02DE733E083 +:1012D00034C099278130910549F028F0029749F5EB +:1012E000ECEDF2E005C0ECE0F3E002C0E4EFF2E088 +:1012F000849190E09F0121C06430D8F4E62FF0E0A3 +:10130000EE0FFF1FEE5DFE4F2081318189E090E0FE +:1013100014C0643070F470E0FB01EE0FFF1FE65E56 +:10132000FE4F20813181FB01EA5EFE4F808190E01B +:1013300004C080E090E020E030E0FA0131832083B7 +:10134000089580E189BD82E189BD09B400FEFDCF29 +:101350008091D8008F7D8093D8008091E0008260DA +:101360008093E0008091E00081FDFCCF0895CF9252 +:10137000DF92EF92FF920F931F93CF93DF93EC01D5 +:101380008B016A010E94150B811133C0C114D10475 +:1013900039F0F60180819181081B190BC80FD91F04 +:1013A000E12CF12C0115110519F18091E80085FD62 +:1013B00016C08091E8008E778093E800C114D104B4 +:1013C00049F0F60180819181E80EF91EF182E082F8 +:1013D00085E00FC00E94150B882321F30AC0899174 +:1013E0008093F10001501109FFEFEF1AFF0ADACFE5 +:1013F00080E0DF91CF911F910F91FF90EF90DF90F0 +:10140000CF9008952091EB013091EC01261737071A +:1014100048F06115710539F42091E8002E7720938A +:10142000E80001C0B901FC0120E06115710579F106 +:101430008091E4018823F1F18530F1F18091E80099 +:1014400083FD3CC08091E80082FD2EC08091E800C1 +:1014500080FFEBCF2091F3008091F20090E0922B7F +:101460006115710551F08830910538F42191209370 +:10147000F100615071090196F3CF21E0089709F05E +:1014800020E08091E8008E778093E800CECF211194 +:10149000CFCF0AC08091E401882361F0853061F0EC +:1014A0008091E80083FD0AC08091E80082FFF2CFBE +:1014B00080E0089582E0089583E0089581E0089532 +:1014C0002091EB013091EC012617370748F06115A8 +:1014D000710539F42091E8002E772093E80001C0CF +:1014E000B901FC0120E06115710591F18091E401E1 +:1014F000882309F440C0853009F43FC08091E8009A +:1015000083FD3DC08091E80082FD2FC08091E800FE +:1015100080FFE9CF2091F3008091F20090E0922BC0 +:101520006115710559F08830910540F4249120939C +:10153000F1003196615071090196F2CF21E00897D0 +:1015400009F020E08091E8008E778093E800CBCF0F +:101550002111CCCF0AC08091E401882361F085304D +:1015600061F08091E80083FD0AC08091E80082FF6D +:10157000F2CF80E0089582E0089583E0089581E04D +:101580000895982F973068F59093E900981739F0EF +:101590007091EC002091ED005091F00003C0242FD9 +:1015A000762F50E021FD02C09F5FECCF3091EB0021 +:1015B0003E7F3093EB003091ED003D7F3093ED00A6 +:1015C0003091EB0031603093EB007093EC0020938E +:1015D000ED005093F0002091EE0027FDE5CF80E074 +:1015E00008958F708093E90081E008958091E5016E +:1015F00087FF11C08091E80082FD05C08091E40161 +:101600008111F8CF11C08091E8008B770BC08091D9 +:10161000E401882349F08091E80080FFF8CF8091B1 +:10162000E8008E778093E80008952091E4003091DF +:10163000E50095E64091EC00842F817040FF23C0C7 +:101640008091E80080FD1DC08091E401882399F01D +:10165000853099F08091EB0085FD11C04091E40048 +:101660005091E5002417350729F3915011F09A01A4 +:10167000E1CF84E0089582E0089583E0089581E059 +:10168000089580E008954091E80042FFDDCF08957D +:101690000E94B60B0E94BE0BE0EEF0E080818160FC +:1016A0008083E8EDF0E080818F77808319BCA7ED1F +:1016B000B0E08C918E7F8C9380818F7E808310929E +:1016C000E30108950F931F93CF93DF930E94B60B0E +:1016D0000E94BE0BC8EDD0E088818F778883888117 +:1016E0008068888388818F7D888319BC1092E4018B +:1016F0001092E0011092E2011092E10100EE10E080 +:10170000F80180818B7F808388818160888342E0BB +:1017100060E080E00E94C10AE1EEF0E080818E7F0F +:101720008083E2EEF0E08081816080838081886048 +:101730008083F80180818E7F8083888180618883A7 +:10174000DF91CF911F910F910895E8EDF0E0808136 +:101750008F7E8083E7EDF0E080818160808384E08C +:1017600082BF81E08093E3010C94620BE8EDF0E02E +:1017700080818E7F80831092E20008951092DA00BB +:101780001092E10008951F920F920FB60F9211244C +:101790002F933F934F935F936F937F938F939F9379 +:1017A000AF93BF93EF93FF938091E10082FF0BC053 +:1017B0008091E20082FF07C08091E1008B7F8093DF +:1017C000E1000E942F0E8091DA0080FF1FC08091FF +:1017D000D80080FF1BC08091DA008E7F8093DA00F2 +:1017E0008091D90080FF0DC080E189BD82E189BD73 +:1017F00009B400FEFDCF81E08093E4010E94280837 +:1018000005C019BC1092E4010E9436088091E100E5 +:1018100080FF19C08091E20080FF15C08091E20036 +:101820008E7F8093E2008091E20080618093E200ED +:101830008091D80080628093D80019BC85E08093A5 +:10184000E4010E943A088091E10084FF30C0809159 +:10185000E20084FF2CC080E189BD82E189BD09B42A +:1018600000FEFDCF8091D8008F7D8093D8008091BD +:10187000E1008F7E8093E1008091E2008F7E809373 +:10188000E2008091E20081608093E2008091E001BB +:10189000882311F084E007C08091E30087FD02C037 +:1018A00081E001C083E08093E4010E943C088091C4 +:1018B000E10083FF29C08091E20083FF25C0809171 +:1018C000E100877F8093E10082E08093E401109241 +:1018D000E0018091E1008E7F8093E1008091E20041 +:1018E0008E7F8093E2008091E20080618093E2002D +:1018F00042E060E080E00E94C10A8091F0008860D0 +:101900008093F0000E943908FF91EF91BF91AF9151 +:101910009F918F917F916F915F914F913F912F9107 +:101920000F900FBE0F901F9018951F920F920FB639 +:101930000F9211242F933F934F935F936F937F9355 +:101940008F939F93AF93BF93CF93DF93EF93FF93C7 +:10195000C091E900CF708091EC00D82FD17080FD4C +:10196000D0E81092E9008091F000877F8093F0002A +:1019700078940E94D90C1092E9008091F000886060 +:101980008093F000CD2BCF70C093E900FF91EF91D1 +:10199000DF91CF91BF91AF919F918F917F916F9187 +:1019A0005F914F913F912F910F900FBE0F901F901D +:1019B00018951F93CF93DF93CDB7DEB7AA970FB6D5 +:1019C000F894DEBF0FBECDBFE5EEF1E08091F100EF +:1019D000819321E0ED3EF207C9F70E9458088091FB +:1019E000E80083FF24C18091E5019091E601492F31 +:1019F00050E04A30510508F01AC1FA01EA5AFF4F87 +:101A00000C948D22803881F0823809F010C18091C9 +:101A1000E9018F708093E9008091EB0085FB8827B6 +:101A200080F91092E90006C08091E1019091E201F5 +:101A3000911182609091E800977F9093E8008093E5 +:101A4000F1001092F100C8C0282F2D7F09F0EFC0DF +:101A5000882319F0823061F0EAC08091E70181307B +:101A600009F0E5C0933009F080E08093E2012BC0DB +:101A70008091E701811127C08091E9018F7009F4FD +:101A8000D6C08093E9002091EB0020FF1CC093306A +:101A900021F48091EB00806214C09091EB00906182 +:101AA0009093EB0021E030E0A90102C0440F551FE4 +:101AB0008A95E2F74093EA001092EA008091EB00E9 +:101AC00088608093EB001092E9008091E800877FA6 +:101AD00086C08111ACC01091E7011F778091E300AF +:101AE0008078812B8093E3008091E800877F80934A +:101AF000E8000E94F60A8091E80080FFFCCF809108 +:101B0000E30080688093E300111102C082E001C00D +:101B100083E08093E4018BC08058823008F087C056 +:101B20008091E7019091E8018C3D53E0950779F5AC +:101B300083E08A838AE289834FB7F894DE011396A3 +:101B400020E03EE051E2E32FF0E050935700E491B3 +:101B500020FF03C0E295EF703F5FEF708E2F90E0A3 +:101B6000EA3010F0C79601C0C0968D939D932F5F09 +:101B7000243149F74FBF8091E800877F8093E800C8 +:101B80006AE270E0CE0101960E94020A14C0AE0122 +:101B90004F5F5F4F6091E9010E944B09BC01892BA7 +:101BA00009F445C09091E800977F9093E8008981FF +:101BB0009A810E94600A8091E8008B778093E80008 +:101BC00036C08038A1F58091E800877F8093E800D7 +:101BD0008091E0018093F1008091E8008E778093FE +:101BE000E8000E94F60A23C0811121C08091E7011C +:101BF0009091E80199270297D4F48091E800877FBB +:101C00008093E8008091E7018093E0010E94F60A4A +:101C10008091E001811106C08091E30087FD02C040 +:101C200081E001C084E08093E4010E944408809137 +:101C3000E80083FF0AC08091E800877F8093E80076 +:101C40008091EB0080628093EB00AA960FB6F89427 +:101C5000DEBF0FBECDBFDF91CF911F9108950895D4 +:101C6000CF938091E4018823A1F0C091E900CF7067 +:101C70009091EC00892F817090FD80E8C82B109224 +:101C8000E9008091E80083FD0E94D90CCF70C093D9 +:101C9000E900CF91089590936901809368010895B8 +:101CA000E0916801F0916901309721F00190F08195 +:101CB000E02D099480E00895E0916801F0916901B8 +:101CC000309721F00280F381E02D09940895E0918E +:101CD0006801F0916901309721F00480F581E02DD1 +:101CE00009940895209166013091670128173907FA +:101CF00071F09093670180936601E0916801F09123 +:101D00006901309721F00680F781E02D099408954C +:101D100020916401309165012817390771F0909383 +:101D2000650180936401E0916801F0916901309749 +:101D300021F00084F185E02D0994089508950C9414 +:101D40009E0E0E945C1A0E940E040C94221BCF92DD +:101D5000DF92EF92FF920F931F93CF93DF93CDB754 +:101D6000DEB72B970FB6F894DEBF0FBECDBF0E9433 +:101D700026048BE6C82E81E0D82E00E010E0E02E8D +:101D8000802F0E941C05F60141916F01F82EF42668 +:101D9000B1F40F5F1F4F0E30110589F78FEF898364 +:101DA0008A831B820E94651A8160782F9D838C83B1 +:101DB00049815A816B818D810E944A0F40C0909168 +:101DC000CC0191FF04C08B870E9422058B8520E007 +:101DD00030E04F2D50E0922FBA01022E02C07595CF +:101DE00067950A94E2F760FF24C02E83EF8221E01A +:101DF00030E0690102C0CC0CDD1C9A95E2F790E05E +:101E00008C219D21892B09F420E028870E94651AE6 +:101E10008160782F9A8789874E815F8168858A855E +:101E20000E944A0FF801E559FE4F8081C826C08202 +:101E300006C02F5F3F4F2630310569F6AACF0E94BA +:101E4000091E0E94500E90916A018917A1F00E940C +:101E5000500E80936A012B960FB6F894DEBF0FBE2A +:101E6000CDBFDF91CF911F910F91FF90EF90DF9049 +:101E7000CF900C9446072B960FB6F894DEBF0FBE9A +:101E8000CDBFDF91CF911F910F91FF90EF90DF9029 +:101E9000CF900895CF93DF93CDB7DEB72B970FB6D2 +:101EA000F894DEBF0FBECDBF4F83588769877A870E +:101EB0008B87DE01119686E0FD0111928A95E9F784 +:101EC00085E0FE01379601900D928A95E1F74981F0 +:101ED0005A816B817C818D819E810E944D162B964B +:101EE0000FB6F894DEBF0FBECDBFDF91CF9108953E +:101EF000CF93C82F882309F4C1C0823859F40E94B7 +:101F0000500E81FDBBC089E30E94EA180E94A2190D +:101F100089E30CC0833879F40E94500E80FDAEC076 +:101F200083E50E94EA180E94A21983E50E942919FC +:101F3000CF910C94A219843859F40E94500E82FD5E +:101F40009DC087E40E94EA180E94A21987E4EECFA0 +:101F50008CEF8C0F813A48F48C2F0E94492081111C +:101F60008DC08C2F0E94EA18E3CF80E28C0F88305E +:101F700048F4C77081E001C0880FCA95EAF70E9453 +:101F80006B19D6CF8BE58C0F833078F4C53A29F0E6 +:101F9000C63A31F083E890E005C081E890E002C0E5 +:101FA00082E890E0CF910C94720E88E58C0F83311B +:101FB00008F064C0C83A39F1C93A41F1CA3A49F166 +:101FC000CB3A51F1CC3A59F1CD3A61F1C03B69F1CC +:101FD000CE3A71F1CF3A79F1C13B81F1C23B89F13F +:101FE000C33B91F1C43B99F1C53BA1F1C63BA9F1BB +:101FF000C73BB1F1C83BB9F1C93BC1F1CA3BC9F11B +:1020000080E090E038C082EE90E035C089EE90E04C +:1020100032C08AEE90E02FC085EB90E02CC086EBBA +:1020200090E029C087EB90E026C08CEC90E023C0C4 +:102030008DEC90E020C083E891E01DC08AE891E03B +:102040001AC082E991E017C084E991E014C081E2EE +:1020500092E011C083E292E00EC084E292E00BC0F5 +:1020600085E292E008C086E292E005C087E292E055 +:1020700002C08AE292E0CF910C94880ECF9108952D +:10208000882309F44BC0823859F40E94500E81FF16 +:1020900045C089E30E94EA180E94A21989E30CC096 +:1020A000833871F40E94500E80FF38C083E50E948F +:1020B000EA180E94A21983E50E9429190C94A2191A +:1020C000843859F40E94500E82FF28C087E40E9491 +:1020D000EA180E94A21987E4EFCF9CEF980F913A7B +:1020E00058F390E2980F983050F4877091E001C057 +:1020F000990F8A95EAF7892F0E947119DFCF9BE526 +:10210000980F933020F480E090E00C94720E885A7F +:10211000833120F480E090E00C94880E08958823A9 +:1021200021F00E946B190C94A2190895882321F0C4 +:102130000E9471190C94A2190895BF92CF92DF9258 +:10214000EF92FF920F931F93CF93DF9300D000D0B5 +:1021500000D0CDB7DEB77C0185E0F701DE01119636 +:1021600001900D928A95E1F7F70183819481892B83 +:1021700009F4DDC2908181818F3F19F49F3F09F4FA +:10218000D6C2F7010281258122952F7099838A8317 +:1021900089819A812E830E94A918182FB92E0E9436 +:1021A000A8180E946F17EB2DE295EF704E2F50E0AC +:1021B000FA01E05AFF4F2E810C948D228B2D807FE7 +:1021C0009B2D9F70F92E882319F0F29480EFF8224E +:1021D000002349F0FF2009F457C28F2D0E947B197C +:1021E0000E94A21951C2812F0E944010FF2009F4C1 +:1021F0009EC28F2D0E94811926960FB6F894DEBFDD +:102200000FBECDBFDF91CF911F910F91FF90EF9047 +:10221000DF90CF90BF900C94A2193B2D307F8B2D77 +:102220008F70303211F08295807F112319F01130B8 +:1022300021F12CC00023B9F0222309F490C12130F0 +:1022400009F08DC126960FB6F894DEBF0FBECDBF44 +:10225000DF91CF911F910F91FF90EF90DF90CF9082 +:10226000BF900C948B19222319F0213009F45FC21E +:102270008E830E948E198E8186C1002321F0223028 +:1022800008F055C26CC1211152C27DC1002321F05A +:10229000222309F464C1F8C1222309F474C109C2DC +:1022A0008B2D86958695837019F08130D1F03FC2D1 +:1022B000002321F0812F9B2D937002C080E090E0DD +:1022C00026960FB6F894DEBF0FBECDBFDF91CF913B +:1022D0001F910F91FF90EF90DF90CF90BF900C94E3 +:1022E000720E002321F0812F9B2D937002C080E09D +:1022F00090E026960FB6F894DEBF0FBECDBFDF91FB +:10230000CF911F910F91FF90EF90DF90CF90BF90F2 +:102310000C94880E812F002319F00E94111D02C019 +:102320000E94791D26960FB6F894DEBF0FBECDBF72 +:10233000DF91CF911F910F91FF90EF90DF90CF90A1 +:10234000BF900C94FE1D8B2D837009F075C0011198 +:10235000EEC1812F829586958770880F880F912F07 +:102360009F70C92ED12CE12CF12C082E04C0CC0C6E +:10237000DD1CEE1CFF1C0A94D2F714FF12C00FE004 +:1023800010E020E030E004C0000F111F221F331FB7 +:102390008A95D2F7C901B80160957095809590959E +:1023A00003C060E070E0CB014B2D4695469543702D +:1023B0004230C1F060F56C297D298E299F2941307A +:1023C00051F126960FB6F894DEBF0FBECDBFDF9158 +:1023D000CF911F910F91FF90EF90DF90CF90BF9022 +:1023E0000C9496176C297D298E299F2926960FB665 +:1023F000F894DEBF0FBECDBFDF91CF911F910F913B +:10240000FF90EF90DF90CF90BF900C94B2170E9496 +:102410009617C701B60126960FB6F894DEBF0FBE19 +:10242000CDBFDF91CF911F910F91FF90EF90DF9083 +:10243000CF90BF900C947A17002319F08B2D8170E8 +:1024400001C08695882309F472C1812F82958695F3 +:102450008770880F880F912F9F70C92ED12CE12C87 +:10246000F12C082E04C0CC0CDD1CEE1CFF1C0A94C1 +:10247000D2F714FF12C00FE010E020E030E004C0FB +:10248000000F111F221F331F8A95D2F7C901B8010F +:10249000609570958095909503C060E070E0CB01E9 +:1024A0004B2D4695469543704230C1F060F56C293E +:1024B0007D298E299F29413051F126960FB6F89437 +:1024C000DEBF0FBECDBFDF91CF911F910F91FF9067 +:1024D000EF90DF90CF90BF900C9470186C297D29FD +:1024E0008E299F2926960FB6F894DEBF0FBECDBF6A +:1024F000DF91CF911F910F91FF90EF90DF90CF90E0 +:10250000BF900C948C180E947018C701B6012696D3 +:102510000FB6F894DEBF0FBECDBFDF91CF911F91F4 +:102520000F91FF90EF90DF90CF90BF900C945418D4 +:10253000103FD1F118F4103E50F4A1C0123F09F43D +:1025400063C008F44CC0133F09F473C098C01F70F7 +:102550008B2D8F710023A1F00E94ED17812F2696FD +:102560000FB6F894DEBF0FBECDBFDF91CF911F91A4 +:102570000F91FF90EF90DF90CF90BF900C948F1051 +:102580000E940E18812F26960FB6F894DEBF0FBE5C +:10259000CDBFDF91CF911F910F91FF90EF90DF9012 +:1025A000CF90BF900C9496100023A9F02111BFC0CA +:1025B0008B2D8F7126960FB6F894DEBF0FBECDBF60 +:1025C000DF91CF911F910F91FF90EF90DF90CF900F +:1025D000BF900C943318223008F0A9C0E9CF002333 +:1025E000A9F08B2D8F7126960FB6F894DEBF0FBE23 +:1025F000CDBFDF91CF911F910F91FF90EF90DF90B2 +:10260000CF90BF900C94ED17002359F38B2D8F7151 +:1026100026960FB6F894DEBF0FBECDBFDF91CF91E7 +:102620001F910F91FF90EF90DF90CF90BF900C948F +:102630000E18002399F08B2D8F7126960FB6F89403 +:10264000DEBF0FBECDBFDF91CF911F910F91FF90E5 +:10265000EF90DF90CF90BF900C94D81726960FB6CE +:10266000F894DEBF0FBECDBFDF91CF911F910F91C8 +:10267000FF90EF90DF90CF90BF900C94CE17002387 +:10268000A9F0222309F4ADCF812F26960FB6F89436 +:10269000DEBF0FBECDBFDF91CF911F910F91FF9095 +:1026A000EF90DF90CF90BF900C94780F222309F425 +:1026B000ADCF812F26960FB6F894DEBF0FBECDBFEB +:1026C000DF91CF911F910F91FF90EF90DF90CF900E +:1026D000BF900C9440104B2D4F70612FC7010E948A +:1026E000AE0226960FB6F894DEBF0FBECDBFDF91C7 +:1026F000CF911F910F91FF90EF90DF90CF90BF90FF +:102700000C94F2164B2D4F70612FC70126960FB611 +:10271000F894DEBF0FBECDBFDF91CF911F910F9117 +:10272000FF90EF90DF90CF90BF900C94E30526963A +:102730000FB6F894DEBF0FBECDBFDF91CF911F91D2 +:102740000F91FF90EF90DF90CF90BF9008950E947F +:1027500088190E945D190E94A2190E94AE1E0E9453 +:10276000FE1D80E090E00E94720E80E090E00C94EC +:10277000880E0E9478190C94A7130E94A918292F7B +:1027800022952F702C3030F42A3048F42250223019 +:1027900078F405C02C3041F02F3031F009C0803E74 +:1027A00048F0803F29F406C093FB882780F90895FC +:1027B00080E0089581E00895CF93DF9300D000D0AA +:1027C0001F92CDB7DEB70F900F900F900F900F9024 +:1027D000DF91CF910895CF93DF9300D000D000D048 +:1027E000CDB7DEB726960FB6F894DEBF0FBECDBFCD +:1027F000DF91CF9108951F93CF93DF93C09179011B +:1028000016E080917A01C81799F0D0E01C9FF00182 +:102810001D9FF00D1124E558FE4F408151816281CA +:102820007381848195810E94EB132196C770E9CF53 +:10283000DF91CF911F9108954091AB015091AC0170 +:102840006091AD017091AE018091AF019091B001A6 +:102850000C94EB138091B00182958F7009F054C0F5 +:102860008091AD01882309F44FC080917901A09136 +:102870007A014091AE015091AF016091AB0170912E +:10288000AC01B6E08A1709F43FC090E0411551054C +:10289000C1F17F3F11F46F3FA1F1B89FF001B99FE3 +:1028A000F00D1124E558FE4F218127132AC0208105 +:1028B000261327C02281211124C0238134812417AB +:1028C000350710F421503109241B350B283C310504 +:1028D000C0F42091B0012F7020612093B00126E058 +:1028E000289FF001299FF00D1124E058FE4F8081B0 +:1028F0008F70806180838BEA91E00E949D100C9420 +:10290000FB1301968770BECF0895CF92DF92EF92AE +:10291000FF920F931F93CF93DF93CDB7DEB76297EC +:102920000FB6F894DEBF0FBECDBF8C0185E0F80175 +:10293000DE011D9601900D928A95E1F7D8014C9128 +:1029400011965C91119712966C918091AE019091C5 +:10295000AF01009709F475C13091AB017091AC01E2 +:102960007F3F19F43F3F09F46CC1F801C380D48064 +:10297000E090AD01EE2009F4BEC02091B001C81670 +:10298000D90628F0D601A81BB90BCD0104C080954B +:1029900090958C0D9D1DFF24F394883C910578F053 +:1029A000F12C207F09F0C4C07C2DD98AC88A89897E +:1029B0000E94DC138BEA91E00E949D10AFC0822F31 +:1029C000807F09F045C0571313C0431311C0611134 +:1029D0000FC02F7020612093B0010E941C148BEA5D +:1029E00091E00E949D108091B001F80185832EC076 +:1029F000CD2819F15F3F11F44F3FF9F0F62E611128 +:102A00001CC08091790120917A0136E0821709F487 +:102A10005BC090E0389FF001399FF00D1124E5581C +:102A2000FE4F7181571306C07081471303C0728136 +:102A3000711103C001968770E9CFF62E662309F461 +:102A40001CC18091B00181608093B001F12C15C14F +:102A5000571309C0431307C0611105C08091B0012D +:102A6000F8018583C8C04D875E878D859E856A8BFA +:102A70000E94BD136A898823D1F16623C1F1209198 +:102A8000B001822F82958F7090E0029774F0809150 +:102A9000AB019091AC0198878F831986DB86CA863B +:102AA0002C87CE0107960E949D1086E0F801ABEAC4 +:102AB000B1E001900D928A95E1F70E942A140E94DC +:102AC0001C14FF24F394D9C04D875E878D859E85A5 +:102AD0000E94A918292F22952F70223008F0C1C01A +:102AE0009F7009F0BBC0805E883008F4C6C0C80182 +:102AF0000E949D10E6CFC816D90608F453C0F6010F +:102B0000E81BF90BCF01883C910508F450C0F12C6B +:102B10007C2DD98AC88A89890E94DC13EBEAF1E00E +:102B200086E0DF011D928A95E9F70E941C14A5C07A +:102B3000571314C0431312C0611110C08091B0012B +:102B4000F8018583C8010E949D1086E0EBEAF1E060 +:102B5000DF011D928A95E9F7FE2C8FC04D875E87B5 +:102B60008D859E856A8B0E94BD136A89882309F42E +:102B7000BECF662309F4BBCF2091B001822F82958E +:102B80008F7090E002970CF490CF8091AB01909100 +:102B9000AC019A8389831B82DD82CC822E83CE0195 +:102BA000019681CF809590958C0D9D1DACCFF62E12 +:102BB000662309F49CCF571333C0431331C02091CF +:102BC000B00120FD24C0822F82958F70482F50E0E5 +:102BD00041155105E1F0D80115962C9315974F300A +:102BE000510549F08F5F982F9295907F822F8F70BB +:102BF000892B15968C93C8010E949D1086E0F801E0 +:102C0000ABEAB1E001900D928A95E1F78ECF86E0B4 +:102C1000F801ABEAB1E001900D928A95E1F72DC081 +:102C20004D875E878D859E850E94BD1381113DCFA6 +:102C30008091B00181608093B001C8010E949D1015 +:102C40001CC0662309F453CF4D875E878D859E8512 +:102C50000E94BD13882309F44ACF27CF811143CFA7 +:102C60000CC0243008F043CF9F7009F43CCFD8014A +:102C700015969C91907F09F036CF8F2D62960FB6F6 +:102C8000F894DEBF0FBECDBFDF91CF911F910F91A2 +:102C9000FF90EF90DF90CF9008951F93CF93DF9335 +:102CA000CDB7DEB72C970FB6F894DEBF0FBECDBF01 +:102CB0004F83588769877A878B879C87CE010796D1 +:102CC0000E948514882371F08A859B85892B09F4DD +:102CD00041C088858F3F09F065C08F818F3F09F023 +:102CE00061C038C086E0FE013796DE011196019082 +:102CF0000D928A95E1F76A857B856115710551F121 +:102D0000FF81E885EF3F11F4FF3F21F120917A0127 +:102D100030E0C9010196877099274091790150E010 +:102D20008417950709F447C0F983EA837D836C8390 +:102D300096E0929FD001939FB00D1124A558BE4FED +:102D4000FE01319601900D929A95E1F780937A01F8 +:102D50000E94FB1316E08091790190917A01891706 +:102D6000B9F1189FC001112485589E4F0E94851407 +:102D7000882371F1E09179011E9FF0011124E5583B +:102D8000FE4F4081518162817381848195810E94CF +:102D9000EB138091790190E00196877099278093D9 +:102DA0007901D9CF4F81588569857A858B859C8536 +:102DB0000E94EB13CFCF0E94B91310927A011092A8 +:102DC0007901EBEAF1E086E0DF011D928A95E9F7EF +:102DD0002C960FB6F894DEBF0FBECDBFDF91CF911A +:102DE0001F910895EF92FF920F931F93CF93DF935C +:102DF0008C01892B09F46CC0F12CEE24E394E801DA +:102E00002196F8018491843740F4843008F051C051 +:102E1000813081F0823019F15BC0853709F444C0FC +:102E2000A8F19CE7980F903708F052C08F770E9466 +:102E3000401041C00E5F1F4FFE01849190E2980F39 +:102E4000983050F48770FE2D01C0FF0F8A95EAF785 +:102E50008F2F0E947B1914C00E94780F2DC00E5F27 +:102E60001F4FFE01849190E2980F983060F48770B4 +:102E7000FE2D01C0FF0F8A95EAF78F2F0E9481195E +:102E80000E94A21919C00E94401016C00E5F1F4F69 +:102E9000FE01C491CC2381F08FE99FE00197F1F707 +:102EA00000C00000C150F6CF0E5F1F4FFE01F4902E +:102EB00003C00E94780F8E018F2D882309F49FCFC5 +:102EC000EFE9FFE03197F1F700C000008150F5CF46 +:102ED000DF91CF911F910F91FF90EF90089508958A +:102EE0006093B5017093B6018093B7019093B801D8 +:102EF0000C94A7130F931F930091B5011091B60185 +:102F00002091B7013091B801DC01CB01802B912BCE +:102F1000A22BB32B8093B5019093B601A093B70178 +:102F2000B093B8011F910F910C94A7130F931F93A7 +:102F30000091B5011091B6012091B7013091B8010F +:102F4000DC01CB0180239123A223B3238093B5011D +:102F50009093B601A093B701B093B8011F910F9160 +:102F60000C94A7130F931F930091B5011091B60114 +:102F70002091B7013091B801DC01CB018027912766 +:102F8000A227B3278093B5019093B601A093B70110 +:102F9000B093B8011F910F910C94A7131092B10137 +:102FA0001092B2011092B3011092B4010C94A713C5 +:102FB00041E050E060E070E004C0440F551F661F20 +:102FC000771F8A95D2F74093B1015093B201609375 +:102FD000B3017093B4010C94A71341E050E060E09A +:102FE00070E004C0440F551F661F771F8A95D2F703 +:102FF0008091B1019091B201A091B301B091B4015F +:10300000482B592B6A2B7B2B4093B1015093B20173 +:103010006093B3017093B4010C94A71341E050E0A6 +:1030200060E070E004C0440F551F661F771F8A954B +:10303000D2F740955095609570958091B10190912F +:10304000B201A091B301B091B401482359236A237E +:103050007B234093B1015093B2016093B30170930D +:10306000B4010C94A71341E050E060E070E004C0AC +:10307000440F551F661F771F8A95D2F78091B101C3 +:103080009091B201A091B301B091B40148275927A2 +:103090006A277B274093B1015093B2016093B3013B +:1030A0007093B4010C94A7130F931F930091B10177 +:1030B0001091B2012091B3013091B401DC01CB0138 +:1030C000802B912BA22BB32B8093B1019093B20153 +:1030D000A093B301B093B4011F910F910C94A71367 +:1030E0000F931F930091B1011091B2012091B30190 +:1030F0003091B401DC01CB0180239123A223B323BF +:103100008093B1019093B201A093B301B093B40145 +:103110001F910F910C94A7130F931F930091B1016E +:103120001091B2012091B3013091B401DC01CB01C7 +:1031300080279127A227B3278093B1019093B201F2 +:10314000A093B301B093B4011F910F910C94A713F6 +:103150000895CF92DF92EF92FF920F931F93CF9338 +:10316000DF938C01C090B101D090B201E090B30127 +:10317000F090B4018091B5019091B601A091B70192 +:10318000B091B801C82AD92AEA2AFB2ACFE1D0E0B7 +:10319000D701C6010C2E04C0B695A79597958795C3 +:1031A0000A94D2F780FF07C0B8018C2F0E9407064F +:1031B0008130910531F4219758F7B80180E00E94E1 +:1031C0000706DF91CF911F910F91FF90EF90DF9055 +:1031D000CF90089590910C019923F1F090910D01F9 +:1031E0009923D1F0982F9695969596959F3080F5D6 +:1031F000E0910E01F0910F01E90FF11D877021E0C0 +:1032000030E0A90102C0440F551F8A95E2F7CA01B8 +:103210009181892B8183089520910E0130910F01B6 +:10322000F90132969FEF40E05191851789F09F3F59 +:1032300019F4511101C0942F4F5F4E30A9F79F3FF1 +:1032400039F0F901E90FF11D97FDFA958283089590 +:10325000089590910C019923F9F090910D01992313 +:10326000D9F0982F9695969596959F3028F5E091F0 +:103270000E01F0910F01E90FF11D877021E030E0A0 +:10328000A90102C0440F551F8A95E2F7CA01809533 +:10329000918189238183089520910E0130910F013E +:1032A000F9013296205F3F4F9081891301C010824F +:1032B0003196E217F307C1F7089581E090E0E091BD +:1032C0000E01F0910F01E80FF91F10820196803175 +:1032D0009105A9F708959091CB01892B8093CB019B +:1032E000089580959091CB0189238093CB01089517 +:1032F0001092CB0108959091CA01892B8093CA0145 +:10330000089580959091CA0189238093CA010895F8 +:103310001092CA0108958093B90108951092B901DD +:10332000089580910E0190910F01FC0131969C014E +:10333000205F3F4F80E0919191118F5FE217F3077B +:10334000D1F70895E0910E01F0910F018091CB012A +:103350008083E0910E01F0910F0190818091CA016C +:10336000892B80838091B901882361F0E0910E015F +:10337000F0910F019081892B80830E949119811116 +:103380001092B90180910E0190910F010C945C0E86 +:10339000CF92DF92EF92FF926C01EE24FF24C114D2 +:1033A000D104E104F10421F0C701B60120E101C01C +:1033B00020E0C72ED82EE92EFF24C114D104E10449 +:1033C000F10419F0285FC701B6016B017C0154E0DC +:1033D000F694E794D794C7945A95D1F7C114D104C1 +:1033E000E104F10419F02C5FC701B6016B017C0107 +:1033F00042E0F694E794D794C7944A95D1F7C11464 +:10340000D104E104F10419F02E5FC701B601DC011B +:10341000CB01B695A79597958795892B8A2B8B2BF2 +:1034200009F02F5F822FFF90EF90DF90CF900895EB +:103430008091E401843011F120E488E190E00FB63E +:10344000F894A895809360000FBE2093600083B726 +:10345000817F846083BF83B7816083BF78948895C0 +:1034600083B78E7F83BF0FB6F894A89580916000D4 +:10347000886180936000109260000FBE08950895E7 +:103480000C943F1ACF930E94401A0E9426040E9477 +:103490003F1AC0E08C2F0E941C05811104C0CF5F31 +:1034A000CE30C1F701C081E0CF9108950E94B913D9 +:1034B0000E94500E0C94460782E084BD93E095BDB7 +:1034C0009AEF97BD80936E0008952FB7F89480917E +:1034D000CD019091CE01A091CF01B091D0012FBF2D +:1034E0000895CF92DF92EF92FF920F931F932FB721 +:1034F000F8944091CD015091CE016091CF0170912F +:10350000D0012FBF6A017B01EE24FF248C0120E053 +:1035100030E0C016D106E206F30610F4415051091E +:103520009A01281B390BC9011F910F91FF90EF9051 +:10353000DF90CF9008951F920F920FB60F92112433 +:103540008F939F93AF93BF938091CD019091CE01C4 +:10355000A091CF01B091D0010196A11DB11D809322 +:10356000CD019093CE01A093CF01B093D001BF9134 +:10357000AF919F918F910F900FBE0F901F90189554 +:103580000E94480BF8942FEF87EA91E62150804083 +:103590009040E1F700C0000087E090EBDC018093F1 +:1035A000ED019093EE01A093EF01B093F0019CE048 +:1035B00088E10FB6F894A895809360000FBE9093B1 +:1035C0006000FFCFEF92FF920F931F93CF93DF9393 +:1035D000D82FC0E08C2F0E941C0500E010E0E82EE0 +:1035E000F12CC701002E02C0959587950A94E2F749 +:1035F00080FD06C00F5F1F4F0630110591F709C00F +:10360000602F7C2F80E00E94E4058D13F3CF81E0D2 +:1036100004C0CF5FCE30F1F680E0DF91CF911F91F3 +:103620000F91FF90EF900895CF93C82F8CE20E94E6 +:10363000E21A882321F08C2FCF910C94E21A80E0BB +:10364000CF910895CF930E94691C811102C00E94FE +:103650004F1CC5E6C15049F00E9426048FE39CE947 +:103660000197F1F700C00000F5CF89E20E94141B1A +:10367000811113C18AE20E94141B81110E944F1C08 +:1036800085E00E94141B81110E94C01A0E94741CC4 +:103690008093CC0187E00E94141B8823A9F18BE161 +:1036A0000E94141B882351F08091CC0181FB2227BA +:1036B00020F991E0922790FB81F90EC08EE00E94E4 +:1036C000141B882361F08091CC0182FB222720F912 +:1036D00091E0922790FB82F98093CC0115C080E1A4 +:1036E0000E94141B9091CC01882341F093FB222768 +:1036F00020F981E0822780FB93F904C0892F80950F +:1037000080FB90F99093CC018091CC010E94781CB1 +:103710000E94861C8093DE0180EE0E94141B882389 +:1037200041F08091DE01982F909590FB80F9809375 +:10373000DE0189E30E94141B882359F08091DE0189 +:1037400081FB222720F991E0922790FB81F9809359 +:10375000DE0182EE0E94141B882359F08091DE0165 +:1037600082FB222720F991E0922790FB82F9809337 +:10377000DE0186EE0E94141B882359F08091DE0141 +:1037800083FB222720F991E0922790FB83F9809315 +:10379000DE0183EE0E94141B882359F08091DE0124 +:1037A00084FB222720F991E0922790FB84F98093F3 +:1037B000DE0185E30E94141B882359F08091DE010D +:1037C00085FB222720F991E0922790FB85F98093D1 +:1037D000DE0181E30E94141B882359F08091DE01F1 +:1037E00086FB222720F991E0922790FB86F98093AF +:1037F000DE0181E10E94141B882359F08091DE01D3 +:1038000087FB222720F991E0922790FB87F980938C +:10381000DE018091DE010E948A1C8091DE0187FB1F +:10382000882780F980930D0187E20E94141BC82F1E +:103830008EE10E94141B8111C2608FE10E94141B53 +:103840008111C46080E20E94141B8111C86081E272 +:103850000E94141B8111C06182E20E94141B81111D +:10386000C06283E20E94141B8111C06484E20E9442 +:10387000141B882311F0C06802C0CC2329F08C2FC0 +:103880000E94811C6C2F03C00E947D1C682F70E079 +:1038900080E090E0CF910C947017CF9108956DEE79 +:1038A0007EEF80E090E00E94C32260E082E090E042 +:1038B0000E94B52260E083E090E00E94B52260E0C3 +:1038C00084E090E00E94B52260E085E090E00C94F6 +:1038D000B52280E090E00E94AF2221E08D3E9E4F15 +:1038E00009F020E0822F089582E090E00C94A72256 +:1038F000682F82E090E00C94B52283E090E00C9475 +:10390000A722682F83E090E00C94B52284E090E039 +:103910000C94A722682F84E090E00C94B52280914B +:10392000D30180FF0BC06091130185E0689FB00157 +:10393000112475956795759567952BC081FF09C012 +:103940006091130185E0689FB0011124759567951A +:1039500020C082FF07C06091130185E0689FB0011D +:10396000112417C09091D4019923D1F060911201D4 +:10397000961788F72091130185E0289F9001112464 +:10398000929FA001939F500D112470E0CA010E94E4 +:1039900079226038710540F46115710519F406C08B +:1039A00065E070E0862F08958FE7089581E008951F +:1039B0008091D30180FF08C06091110170E075957E +:1039C00067957595679521C081FF06C060911101CB +:1039D00070E07595679519C082FF04C06091110170 +:1039E00070E010C09091D401992399F0609110017A +:1039F0009617A0F780911101899FC001112470E0F2 +:103A00000E9479226038710540F46115710519F43E +:103A100006C061E070E0862F08958FE7089581E089 +:103A20000895803F21F40E948F1C819504C0813F3E +:103A300029F40E948F1C8093D7010895823F21F4BE +:103A40000E948F1C819504C0833F29F40E948F1C23 +:103A50008093D6010895893F19F40E94D81C05C0AF +:103A60008A3F31F40E94D81C81958093D801089533 +:103A70008B3F21F40E94D81C819504C08C3F29F40F +:103A80000E94D81C8093D9010895843F21F480912D +:103A9000D501816017C0853F21F48091D5018260F6 +:103AA00011C0863F21F48091D50184600BC0873F0F +:103AB00021F48091D501886005C0883F31F4809160 +:103AC000D50180618093D50108958D3F21F48091C7 +:103AD000D30181600BC08E3F21F48091D3018260BD +:103AE00005C08F3F29F48091D30184608093D30176 +:103AF0000895803F39F48091D70187FF6CC0109200 +:103B0000D70169C0813F29F48091D7011816BCF311 +:103B100062C09091D601823F29F497FF5CC0109259 +:103B2000D60159C0833F19F41916CCF354C0893F0C +:103B300041F48091D80118160CF04DC01092D801B4 +:103B40004AC08A3F29F48091D80187FF44C0F6CF4C +:103B50008B3F39F48091D90187FF3DC01092D90184 +:103B60003AC08C3F29F48091D9011816BCF333C0B8 +:103B7000843F21F48091D5018E7F17C0853F21F4C9 +:103B80008091D5018D7F11C0863F21F48091D501B0 +:103B90008B7F0BC0873F21F48091D501877F05C0C3 +:103BA000883F31F48091D5018F7E8093D50113C079 +:103BB0008D3F21F48091D3018E7F0BC08E3F21F485 +:103BC0008091D3018D7F05C08F3F29F48091D3016F +:103BD0008B7F8093D3018091D60181110EC080919B +:103BE000D70181110AC08091D801811106C080914E +:103BF000D901811102C01092D401089585ED91E0A0 +:103C00000E94670E0E94651A9093D2018093D101A1 +:103C100008951F93CF93DF938091D1019091D201AA +:103C20000E94711AAC019091D401992321F0209146 +:103C3000140130E006C0209115018AE0289F900110 +:103C400011244217530708F485C08091D601C09112 +:103C5000D701D091D8011091D901811107C0C111AC +:103C600075C0D11173C0111171C074C09F3F19F09C +:103C70009F5F9093D401181624F40E948F1C8093A8 +:103C8000D6018091D60187FF05C00E948F1C8195C7 +:103C90008093D6011C1624F40E948F1C8093D701B8 +:103CA0008091D70187FF05C00E948F1C819580936A +:103CB000D7016091D601662331F1C091D701CC23A1 +:103CC00011F1062E000C770B880B990B0E948021B6 +:103CD00023E333E343E35FE30E94E4210E944821AE +:103CE0006093D6016C2FCC0F770B880B990B0E9439 +:103CF000802123E333E343E35FE30E94E4210E9456 +:103D000048216093D7011D1624F40E94D81C80938B +:103D1000D8018091D80187FF05C00E94D81C8195E9 +:103D20008093D801111624F40E94D81C8093D901E5 +:103D30008091D90187FF05C00E94D81C819580938E +:103D4000D901DF91CF911F910C94FE1D9F3F09F087 +:103D50008FCFA0CFDF91CF911F910895E5EDF1E0D6 +:103D600085E0DF011D928A95E9F71092D401109247 +:103D7000D3010895833081F128F4813059F08230E5 +:103D8000D1F00895853009F449C0B8F1863009F4BE +:103D900056C0089580911501262F30E0280F311D5F +:103DA0002F3F310524F4680F6093150108958FEFBC +:103DB00080931501089580911401262F30E0280F7B +:103DC000311D2F3F310524F4680F609314010895CD +:103DD0008FEF80931401089580911301262F30E016 +:103DE000280F311D2F3F310524F4680F6093130114 +:103DF00008958FEF80931301089580911201262F6B +:103E000030E0280F311D2F3F310524F4680F6093F7 +:103E1000120108958FEF809312010895809111018E +:103E2000262F30E0280F311D2F3F310524F4680F75 +:103E30006093110108958FEF80931101089580918F +:103E40001001262F30E0280F311D2F3F310524F4BB +:103E5000680F6093100108958FEF8093100108950B +:103E6000833011F128F4813049F0823091F00895C7 +:103E7000853081F120F18630C1F1089580911501DE +:103E8000681720F4861B8093150108951092150180 +:103E9000089580911401681720F4861B8093140103 +:103EA000089510921401089580911301681720F469 +:103EB000861B809313010895109213010895809139 +:103EC0001201681720F4861B809312010895109246 +:103ED0001201089580911101681720F4861B8093C8 +:103EE0001101089510921101089580911001681731 +:103EF00020F4861B809310010895109210010895FC +:103F00000F931F938D3109F46BC008F03FC08E30C2 +:103F100009F47DC0C0F4873009F46EC068F48630BF +:103F200009F0AFC08091CC01817F8E7F8093CC015E +:103F300081E08093DB01A6C0883009F458C08B3043 +:103F400009F49BC09EC0863109F497C078F4803193 +:103F500009F470C0813109F094C00E94B9139091A6 +:103F60000D0181E0892780930D0187C0893109F413 +:103F700084C08B3109F085C08091CC0181FB222760 +:103F800020F991E0922790FB81F94AC0853309F42A +:103F90005BC048F4873209F457C008F45AC089322C +:103FA00009F452C06EC0833438F48A3308F067C015 +:103FB000883309F462C065C0833409F445C088348D +:103FC00009F05FC00E94B9130FEF13ED20E3015019 +:103FD00010402040E1F700C000000E94C01A4DC010 +:103FE0000E9402210E94500E0E94460746C00E9475 +:103FF000741C0E94861C41C09091CC01892F817055 +:1040000090FF12C0917F9E7F9093CC013BC0809126 +:10401000CC0182FB222720F991E0922790FB82F9C4 +:104020008093CC01992349F18091CC0181608093E8 +:10403000CC0123C08091CC0183FB222720F991E0A1 +:10404000922790FB83F9ECCF61E070E080E090E094 +:1040500010C08D5141E050E060E070E08A019B01AA +:1040600004C0000F111F221F331F8A95D2F7C90108 +:10407000B8010E9470170E94B91381E003C08953F0 +:10408000E9CF80E01F910F91089580E008950C948E +:104090004520CF93C82F8091DB01813079F018F053 +:1040A0008230E9F187C0E0910E01F0910F0180812B +:1040B000813169F0823209F07FC009C0E0910E01C0 +:1040C000F0910F018081813111F0823261F48C2FE7 +:1040D0000E944720811104C08C2F0E94801F1DC0A8 +:1040E00081E090E01AC08C2F0E944520811114C0FD +:1040F000C43179F048F4CB3079F0C03109F060C0B8 +:1041000082E08093DB0108C0C93219F0C83321F086 +:1041100057C01092DB0154C081E0817053C0C93296 +:1041200089F118F5C43171F1A8F4C73009F046C01F +:104130008AE08093150194E19093140193E09093A9 +:1041400013018093120188E08093110188E280932B +:10415000100134C0CE51C63088F5EC2FF0E0E65D9A +:10416000FE4F80818093DA0129C0CE34E9F020F43B +:10417000CB3421F56AE013C0C13579F0C235F1F4D2 +:1041800061E00DC08091DA01882319F01092DA0104 +:1041900015C081E08093DB0115C061E006C080910D +:1041A000DA010E94BA1E0AC06AE08091DA010E9418 +:1041B000301F04C01092DB0180E004C081E002C027 +:1041C00080E0ABCFCF910895E1E8F0E08081886096 +:1041D00080838081816080838FB7F89493E090938F +:1041E000890090ED909388008FBF0895EFE6F0E08E +:1041F0008081826080830895EFE6F0E080818D7F8A +:1042000080830895EFE6F0E0908182E08927808343 +:1042100008951F920F920FB60F9211242F933F9380 +:104220004F935F936F937F938F939F93AF93BF93BE +:10423000EF93FF938091DC019091DD0101969093C3 +:10424000DD018093DC01811103C082E00E944607FA +:10425000E091DD01E695E695F0E0E657FB4FE4914D +:104260008091DC018E1303C080E00E944607FF911D +:10427000EF91BF91AF919F918F917F916F915F91DE +:104280004F913F912F910F900FBE0F901F90189557 +:104290000E944F216894B1110C94DE2108950E9470 +:1042A000C32188F09F5798F0B92F9927B751B0F0E4 +:1042B000E1F0660F771F881F991F1AF0BA95C9F7AA +:1042C00014C0B13091F00E94DD21B1E008950C944A +:1042D000DD21672F782F8827B85F39F0B93FCCF3FD +:1042E000869577956795B395D9F73EF49095809527 +:1042F000709561957F4F8F4F9F4F0895E89409C047 +:1043000097FB3EF490958095709561957F4F8F4F08 +:104310009F4F9923A9F0F92F96E9BB279395F6951E +:10432000879577956795B795F111F8CFFAF4BB0F9C +:1043300011F460FF1BC06F5F7F4F8F4F9F4F16C000 +:10434000882311F096E911C0772321F09EE8872F8A +:10435000762F05C0662371F096E8862F70E060E046 +:104360002AF09A95660F771F881FDAF7880F9695BF +:10437000879597F9089557FD9058440F551F59F0A8 +:104380005F3F71F04795880F97FB991F61F09F3F42 +:1043900079F087950895121613061406551FF2CF6B +:1043A0004695F1DF08C0161617061806991FF1CFBB +:1043B00086957105610508940895E894BB276627E2 +:1043C0007727CB0197F908950E94F7210C94682272 +:1043D0000E945A2238F00E94612220F0952311F0A9 +:1043E0000C9451220C94572211240C94DE210E942B +:1043F000BB2170F3959FC1F3950F50E0551F629F4D +:10440000F001729FBB27F00DB11D639FAA27F00D2D +:10441000B11DAA1F649F6627B00DA11D661F829F54 +:104420002227B00DA11D621F739FB00DA11D621F39 +:10443000839FA00D611D221F749F3327A00D611D56 +:10444000231F849F600D211D822F762F6A2F112438 +:104450009F5750409AF0F1F088234AF0EE0FFF1F6B +:10446000BB1F661F771F881F91505040A9F79E3FC2 +:10447000510580F00C9451220C94DE215F3FE4F34F +:10448000983ED4F3869577956795B795F795E79518 +:104490009F5FC1F7FE2B880F911D9695879597F921 +:1044A000089597F99F6780E870E060E008959FEFB6 +:1044B00080EC089500240A941616170618060906BB +:1044C000089500240A94121613061406050608958A +:1044D000092E0394000C11F4882352F0BB0F40F412 +:1044E000BF2B11F460FF04C06F5F7F4F8F4F9F4F52 +:1044F000089597FB072E16F4009407D077FD09D096 +:104500000E94932207FC05D03EF4909581959F4F21 +:104510000895709561957F4F0895EE0FFF1F0590E8 +:10452000F491E02D0994AA1BBB1B51E107C0AA1FFF +:10453000BB1FA617B70710F0A61BB70B881F991F44 +:104540005A95A9F780959095BC01CD010895F999E8 +:10455000FECF92BD81BDF89A992780B50895A8E154 +:10456000B0E042E050E00C94CA22262FF999FECF29 +:104570001FBA92BD81BD20BD0FB6F894FA9AF99A80 +:104580000FBE019608950E94B522272F0C94B622E3 +:10459000DC01CB01FC01F999FECF06C0F2BDE1BD03 +:1045A000F89A319600B40D9241505040B8F70895F2 +:0445B000F894FFCFAD +:1045B40020024707D707B2077E074A070101BA015D +:1045C40028080A03140A3F4D36394B04FE03C80376 +:1045D4008F0322033B0354036D0301020304050606 +:0445E40007080900BB +:00000001FF diff --git a/keyboard/ergodox_ez/keymaps/keymap_j3rn.c b/keyboard/ergodox_ez/keymaps/j3rn/keymap.c similarity index 88% rename from keyboard/ergodox_ez/keymaps/keymap_j3rn.c rename to keyboard/ergodox_ez/keymaps/j3rn/keymap.c index ddc64e55e7..6e271321d5 100644 --- a/keyboard/ergodox_ez/keymaps/keymap_j3rn.c +++ b/keyboard/ergodox_ez/keymaps/j3rn/keymap.c @@ -14,11 +14,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| * | Tab | Q | W | E | R | T | - | | = | Y | U | I | O | P | \ | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * |Ctrl/Esc| A | S | D | F | G |------| |------| H | J | K | L |; / L2| ' | + * |Ctrl/Esc|A / L2| S | D | F | G |------| |------| H | J | K | L | ; | ' | * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------| * | LShift |Z/Ctrl| X | C | V | B | | | | N | M | , | . |//Ctrl| RShift | * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | ~L1 | '" |AltShf| Left | Right| | Up | Down | [ | ] | ~L1 | + * | ~L1 | ~L2 |AltShf| Left | Right| | Up | Down | [ | ] | ~L1 | * `----------------------------------' `----------------------------------' * ,-------------. ,-------------. * | App | Home | | PgUp |Ctrl/Esc| @@ -34,9 +34,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // left hand KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LBRC, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_MINS, - CTL_T(KC_ESC), KC_A, KC_S, KC_D, KC_F, KC_G, + CTL_T(KC_ESC), LT(MDIA, KC_A),KC_S, KC_D, KC_F, KC_G, KC_LSFT, CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, ALL_T(KC_NO), - KC_FN1, KC_QUOT, LALT(KC_LSFT), KC_LEFT,KC_RGHT, + KC_FN1, KC_FN2, LALT(KC_LSFT), KC_LEFT,KC_RGHT, ALT_T(KC_APP), KC_HOME, KC_END, @@ -44,7 +44,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // right hand KC_RBRC, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, KC_EQL, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, - KC_H, KC_J, KC_K, KC_L, LT(MDIA, KC_SCLN),KC_QUOT, + KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, MEH_T(KC_NO),KC_N, KC_M, KC_COMM,KC_DOT, CTL_T(KC_SLSH), KC_RSFT, KC_UP, KC_DOWN,KC_LBRC,KC_RBRC, KC_FN1, @@ -99,13 +99,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * ,--------------------------------------------------. ,--------------------------------------------------. * | | | | | | | | | | | | | | | | * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | | | | MsUp | | | | | | | | | | | | + * | | | | | | | | | | | | Lclk | Rclk | | | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | |MsLeft|MsDown|MsRght| |------| |------| | | | | | Play | + * | | | | | | |------| |------|MsLeft|MsDown| MsUp |MsRght| | Play | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| * | | | | | | | | | | | | Prev | Next | | | * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | | | | Lclk | Rclk | |VolUp |VolDn | Mute | | | + * | | | | | | |VolUp |VolDn | Mute | | | * `----------------------------------' `----------------------------------' * ,-------------. ,-------------. * | | | | | | @@ -116,19 +116,19 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `--------------------' `--------------------' */ // MEDIA AND MOUSE -KEYMAP( +[MDIA] = KEYMAP( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, // right hand KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, + KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2, KC_TRNS, KC_TRNS, + KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, KC_TRNS, KC_MPLY, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS, KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, @@ -138,7 +138,8 @@ KEYMAP( }; const uint16_t PROGMEM fn_actions[] = { - [1] = ACTION_LAYER_TAP_TOGGLE(SYMB) // FN1 - Momentary Layer 1 (Symbols) + [1] = ACTION_LAYER_TAP_TOGGLE(SYMB), // FN1 - Momentary Layer 1 (Symbols) + [2] = ACTION_LAYER_TAP_TOGGLE(MDIA) // FN2 - Momentary Layer 2 (Media) }; const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) @@ -157,12 +158,12 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) }; // Runs just one time when the keyboard initializes. -void * matrix_init_user(void) { +void matrix_init_user(void) { }; // Runs constantly in the background, in a loop. -void * matrix_scan_user(void) { +void matrix_scan_user(void) { uint8_t layer = biton32(layer_state); diff --git a/keyboard/ergodox_ez/keymap_j3rn_README.md b/keyboard/ergodox_ez/keymaps/j3rn/readme.md similarity index 85% rename from keyboard/ergodox_ez/keymap_j3rn_README.md rename to keyboard/ergodox_ez/keymaps/j3rn/readme.md index b0c4d267bd..fc4b640426 100644 --- a/keyboard/ergodox_ez/keymap_j3rn_README.md +++ b/keyboard/ergodox_ez/keymaps/j3rn/readme.md @@ -1,10 +1,10 @@ -# J3RN's Mac-centric Ergodox EZ keymap +# J3RN's Mac-centric ErgoDox EZ keymap ## Motivation -Essentially, I wanted to switch to a layout that was less jarring than the default Ergodox EZ layout, and did not require finger gymnastics to perform common OS X shortcuts (most of which involve the CMD (LGui) key). +Essentially, I wanted to switch to a layout that was less jarring than the default ErgoDox EZ layout, and did not require finger gymnastics to perform common OS X shortcuts (most of which involve the CMD (LGui) key). -## How is it different from the default Ergodox EZ layout? +## How is it different from the default ErgoDox EZ layout? This layout more closely resembles that of the Mac keyboard, and has some other goodness baked in. Here is a rundown of what that means: @@ -18,6 +18,7 @@ This layout more closely resembles that of the Mac keyboard, and has some other ### Other changes - **The button to the left of "A" is Ctrl/Esc instead of Backspace.** This is actually how I have the keyboard on my Macbook set up to be, since it's loads more convenient than a CAPS LOCK key. This is the Ctrl key I find myself using most. +- **Mouse uses Vim-style navigation**. To activate "Media mode," hold the 'a' key. This allows you to move the mouse around with hjkl just like in Vim. Additionally, right and left click are the conveniently placed 'i' and 'o' keys. - **The key to the right of "5" and the key to left of "6" are "[" and "]", respectively, instead of Left and Right.** There is a more convenient set of Left and Right already present. Truth be told, I don't really use these keys, as they are a stretch to reach. - **The Toggle L1 keys have been replaced by the otherwise displaced "-" and "=".** They are laid out, left-to-right, in the same order as on the Mac keyboard. Honestly, they are not terribly conveniently placed, and their placement might change in a later version. I found that I did not toggle L1 frequently at all, and found using the momentary keys to access L1 to fit my workflow better. - **The "~"/L1 key in the bottom-left is now just momentary L1.** The "~" key was moved to the top-left as mentioned before, and I like to keep my multi-use keys to a minimum due to the latency for them to switch from "press" to "hold." diff --git a/keyboard/ergodox_ez/keymaps/jack/jack.hex b/keyboard/ergodox_ez/keymaps/jack/jack.hex new file mode 100644 index 0000000000..cfccb87265 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/jack/jack.hex @@ -0,0 +1,1121 @@ +:100000000C9465020C94AC020C94AC020C94AC02FF +:100010000C94AC020C94AC020C94AC020C94AC02A8 +:100020000C94AC020C94AC020C94C30B0C94950C85 +:100030000C94AC020C94AC020C94AC020C94AC0288 +:100040000C94AC020C9409210C94AC020C94AC02FC +:100050000C94AC020C949B1A0C94AC020C94AC0261 +:100060000C94AC020C94AC020C94AC020C94AC0258 +:100070000C94AC020C94AC020C94AC020C94AC0248 +:100080000C94AC020C94AC020C94AC020C94AC0238 +:100090000C94AC020C94AC020C94AC020C94AC0228 +:1000A0000C94AC020C94AC020C94AC02020D240D26 +:1000B000170E240D170E690D8C0D170EE10DF40DA2 +:1000C000DE10DE100D110D1150118A1197139713C8 +:1000D000A3119713981298126B1397139713821307 +:1000E0000000F0A100002B002900E100000000004A +:1000F0001E00140004001D00E0004D001F001A0047 +:1001000016001B00E2002C0020000800070006007B +:10011000E3002C00210015000900190002524A00DA +:10012000220017000A0005000000657400000000AE +:10013000000000000000E3000000000000000000DC +:100140000000000023001C000B0011000000000054 +:10015000240018000D00100001524B0025000C0077 +:100160000E00360050002C00260012000F00370051 +:1001700051002C00270013003300380052004E00BD +:1001800000002A00340028004F0000000100350064 +:1001900001000100010000003A001E003A0040008A +:1001A000010001003B001F003B0041000100010075 +:1001B0003C0020003C004200010001003D00210005 +:1001C0003D004300010001003E0022003E004400CB +:1001D000000001000100010000000100000001001A +:1001E0000100010000000100000001003F002300A9 +:1001F0003F00450000000100400024002D000000E9 +:1002000001000100410025002E000000AB000100AC +:10021000420026002F000000AA0001004300270032 +:1002200030000050A900010044002A003100010004 +:10023000AE000000010035020100010001000000D5 +:1002400001001E023A0040000100010001001F02EF +:100250003B00410001000100010020023C0042007F +:1002600001000100010021023D00430001000100E6 +:10027000010022023E0044000000010001000100D4 +:100280000000010000000100010001000000010069 +:1002900000000100010023023F00450000000100B2 +:1002A000010024022D0200000100010001002502CE +:1002B0002E020000AB000100010026022F02000008 +:1002C000AA0001000100270230020050A90001002D +:1002D00001002A0031020100AE00000016034500B3 +:1002E000720067006F0044006F0078002000450036 +:1002F0005A00000016034500720067006F004400BA +:100300006F007800200045005A0000000403090433 +:1003100009026D00040100A0FA09040000010301B4 +:100320000100092111010001223F00070581030896 +:10033000000A090401000103010200092111010062 +:1003400001224D000705820308000A09040200018A +:100350000300000009211101000122360007058376 +:100360000308000A09040300010300000009211129 +:100370000100012239000705840310000112011059 +:100380000100000008EDFE07130100010200010555 +:10039000010906A101050719E029E71500250195C6 +:1003A0000875018102050819012905950575019156 +:1003B000029501750391010507190029771500259C +:1003C00001957875018102C005010980A1018502AE +:1003D00016010026B7001A01002AB7007510950112 +:1003E0008100C0050C0901A1018503160100269CAE +:1003F000021A01002A9C02751095018100C00501B6 +:100400000902A1010901A100050919012905150029 +:10041000250195057501810295017503810105018D +:10042000093009311581257F950275088106093843 +:100430001581257F950175088106050C0A3802157E +:1004400081257F950175088106C0C005010906A1B7 +:1004500001050719E029E7150025019508750181B7 +:100460000295017508810105081901290595057591 +:100470000191029501750391010507190029FF15E6 +:100480000025FF950675088100C0000000000000EF +:100490000000000000010204060A0F17202C3A4A4F +:1004A0005D71879DB3C7DAE9F5FCFFFCF5E9DAC7B2 +:1004B000B39D87715D4A3A2C20170F0A060402018A +:1004C0000000000000000000000011241FBECFEF5C +:1004D000DAE0DEBFCDBF04B603FE27C08091ED0198 +:1004E0009091EE01A091EF01B091F0018730904B17 +:1004F000A740B04BD1F41092ED011092EE01109292 +:10050000EF011092F00114BE84B7877F84BF0FB64D +:10051000F894A895809160008861809360001092A3 +:1005200060000FBEE0E0FFE3099511E0A0E0B1E05C +:10053000E4EBF5E402C005900D92A433B107D9F7BE +:1005400021E0A4E3B1E001C01D92AD3EB207E1F7A6 +:100550000E940A090C94D8220C94000061110BC06F +:10056000FC018281882321F085EE0E94780F03C070 +:1005700085EE0E94401080E090E00895089560911B +:10058000B1017091B2018091B3019091B4010E94C8 +:10059000C81956985E9825982D9826982E982798D1 +:1005A0002F98813019F0823021F00895259A2D9AE4 +:1005B0000895269A2E9A08950C94BF0256985E9834 +:1005C00025982D9826982E9827982F988FEF90E0B1 +:1005D000909389008093880090938B0080938A0089 +:1005E00090938D0080938C00259A2D9A2FEF80E7B1 +:1005F00092E0215080409040E1F700C00000269A30 +:100600002E9A2FEF80E792E0215080409040E1F752 +:1006100000C00000279A2F9A2FEF80E792E0215028 +:1006200080409040E1F700C0000025982D982FEF02 +:1006300080E792E0215080409040E1F700C0000048 +:1006400026982E982FEF80E792E02150804090402E +:10065000E1F700C0000027982F9856985E982598DB +:100660002D9826982E9827982F98089589EA809398 +:10067000800089E08093810024982C983F988AB16B +:100680008F748AB96E98479A8BB1806B8BB9769AC2 +:100690000E94DE020C94BE0280E2809300018091F1 +:1006A000340181110EC00E949B0381E080933401CC +:1006B0002FEF83ED90E3215080409040E1F700C0A0 +:1006C000000080E40E94A1038093000181112EC0EC +:1006D0000E94CB0380930001811128C00E94CB03AC +:1006E00080930001811122C08FE30E94CB0380938D +:1006F000000181111BC00E94C30380E40E94A1037A +:1007000080930001811112C08CE00E94CB03809382 +:10071000000181110BC00E94CB0380930001811165 +:1007200005C08FE30E94CB03809300010E94C303A6 +:100730008091000108951092B9008AE08093B8007A +:10074000089594EA9093BC009091BC0097FFFCCF71 +:100750009091B900987F983021F0903111F081E0AC +:1007600008958093BB0084E88093BC008091BC0016 +:1007700087FFFCCF8091B900887F883111F08034E9 +:1007800071F780E0089584E98093BC008091BC00FB +:1007900084FDFCCF08958093BB0084E88093BC0067 +:1007A0008091BC0087FFFCCF9091B900987F81E0D9 +:1007B000983209F480E0089584E88093BC00809129 +:1007C000BC0087FFFCCF8091BB00089580910001A1 +:1007D000811115C080E40E94A10380930001811162 +:1007E0000CC082E10E94CB0380930001811105C0FF +:1007F0008FEF0E94CB03809300010E94C30384B15A +:10080000807F84B985B1807F85B98AB1837F8AB9B9 +:100810008BB1837F8BB93E98469808950E944C0314 +:10082000809300010E94E60380B38C7080BB81B38B +:10083000836F81BBE4E4F1E0A6E3B1E011921D9285 +:1008400081E0E235F807D1F70C9436039F92AF921E +:10085000BF92CF92DF92EF92FF920F931F93CF93AD +:10086000DF9380910001882379F0809135018F5FBB +:1008700080933501811108C00E944C0380930001D0 +:10088000811102C00E94DE0286E3E82E81E0F82E8C +:100890008701C0E0D0E0BB24B39492E0A92ECC2421 +:1008A000C394D12CC730D10500F58091000181118E +:1008B00064C080E40E94A10380930001811112C0F2 +:1008C00082E10E94CB038093000181110BC0C6011D +:1008D0000C2E01C0880F0A94EAF780950E94CB0382 +:1008E000809300010E94C30348C0CA30A1F028F4DD +:1008F000C83059F0C93061F005C0CC3089F070F0D3 +:10090000CD3089F0209A289810C0219A29980DC0DE +:10091000229A2A980AC0239A2B9807C0529A01C09B +:10092000539A5B9802C03E9A4698E0EAEA95F1F73E +:100930008FB181708B25799902C032E001C030E01F +:10094000832B7C9902C034E001C030E0832B7D9979 +:1009500002C028E001C020E0822B7E9902C090E115 +:1009600001C090E0892B9FB19095991F9927991FFD +:100970009295990F907E892B0FC080910001811173 +:100980004AC080E40E94A10380930001882381F182 +:10099000912C0E94C303892DD8019C91981719F0BE +:1009A0008C93A09201010E94E60321960F5F1F4FD6 +:1009B000CE30D10509F076CF80910101882369F10D +:1009C000815080930101882339F0EFE9FFE03197EE +:1009D000F1F700C0000021C0E4E4F1E0D7018D91FF +:1009E0007D018193B4E4EB16B1E0FB06B9F715C0C5 +:1009F00083E10E94CB03809300018111C9CF81E480 +:100A00000E94A103809300018111C2CF0E94DC03E8 +:100A1000982E9094BECF80E0BFCF0E94DC0281E090 +:100A2000DF91CF911F910F91FF90EF90DF90CF90CA +:100A3000BF90AF909F900895E82FF0E0EC5BFE4FE1 +:100A40008081089508958B3B910580F4883A910543 +:100A500048F5853A9105D8F48430910508F0B2C084 +:100A6000019709F06EC081E090E00895803E910505 +:100A700008F467C0883E910508F4A4C09C01205F7B +:100A800031092031310508F05CC090650895853A40 +:100A9000910509F459C0863A910509F058C082E8D9 +:100AA00090E40895883A910509F454C0893A910573 +:100AB00009F453C08A3A910509F452C08B3A910562 +:100AC00009F451C08C3A910509F450C08D3A910552 +:100AD00009F44FC0803B910509F44EC08E3A910550 +:100AE00009F44DC08F3A910509F44CC0813B910542 +:100AF00009F44BC0823B910509F44AC0833B910540 +:100B000009F449C0843B910509F448C0853B91052F +:100B100009F447C0863B910509F446C0873B91051F +:100B200009F445C0883B910509F444C0893B91050F +:100B300009F443C08A3B910509F442C080E094E483 +:100B4000089580E090E0089581E890E4089583E8B6 +:100B500090E4089582EE94E4089589EE94E4089573 +:100B60008AEE94E4089585EB94E4089586EB94E48A +:100B7000089587EB94E408958CEC94E408958DEC4B +:100B800094E4089583E895E408958AE895E4089547 +:100B900082E995E4089584E995E4089581E296E474 +:100BA000089583E296E4089584E296E4089585E248 +:100BB00096E4089586E296E4089587E296E408951F +:100BC0008AE296E40895089524E5829FC0011124E5 +:100BD000FC0126E0729FE00DF11D1124E60FF11DCE +:100BE000EE0FFF1FEC51FF4F859194910895880FF0 +:100BF000991FFC01E05AF040859194910895880F67 +:100C0000991FFC01E052FF4F85919491089524E5CE +:100C1000829FC0011124FC0146E0749FE00DF11D8C +:100C20001124E60FF11DEE0FFF1FEC51FF4F8591D0 +:100C300094919C013A9521154FE1340708F425C1A0 +:100C40003F512115304120F49F700E94FF05089507 +:100C50009C0130532115304118F49927906C089568 +:100C6000811520E5920769F40E94B9134FEF84E3E0 +:100C70009CE0415080409040E1F700C000000C949F +:100C8000C01A813020E5920731F48091CC01816057 +:100C90008093CC0108959C0130552115304108F016 +:100CA0005CC0292F33272F70332721303105E9F419 +:100CB000AC0164E0440F551F6A95E1F74427537077 +:100CC000BC016370772702C0220F331F6A95E2F7D9 +:100CD0003C68242B352B73E0880F991F7A95E1F738 +:100CE00080769927822B932B08952230310529F4A1 +:100CF000982F8827816F906A089523303105A1F4D9 +:100D0000AC0133E0440F551F3A95E1F7407E577030 +:100D10008370992721E030E002C0220F331F8A95AB +:100D2000E2F7C9019C6816C02430310531F5AC01E9 +:100D300023E0440F551F2A95E1F7407E57708370DA +:100D4000992721E030E002C0220F331F8A95E2F795 +:100D5000C9019A68842B952B08959C013057211561 +:100D6000304118F49F70906208959C01305821150D +:100D7000304118F49F70906A0895803E9105E0F428 +:100D8000803C910558F58133910509F46FC048F412 +:100D90008932910509F463C08A32910509F46DC066 +:100DA00072C089339105E9F082389105D1F085331D +:100DB000910509F44DC067C0833E910581F138F477 +:100DC000803E9105B9F0823E9105D9F05CC0863E27 +:100DD000910561F1873E9105A1F155C00E94F7058B +:100DE00008952091DE0120FD02C021FF4CC080EE5D +:100DF00090E049C08091DE0180FFF9CF89E390E067 +:100E000042C08091DE0182FF0EC08091DE0184FF2E +:100E100003C080E090E037C083EE90E034C0809162 +:100E2000DE0182FFF2CF82EE90E02DC08091DE01E4 +:100E300083FF0BC08091DE0184FDEBCF87EE90E055 +:100E400022C08091DE0183FFF5CF86EE90E01BC0CB +:100E50008091DE0185FF07C089E290E014C0809197 +:100E6000DE0185FFF9CF85E390E00DC08091DE01C2 +:100E700086FF07C08AE290E006C08091DE0186FF0F +:100E8000F9CF81E390E00E942305089508958091B1 +:100E900062010895CF93DF9300D01F92CDB7DEB7E4 +:100EA0009C018091E401843019F593E099833B83A0 +:100EB0002A839093E9008FEF9091E800815095FD8F +:100EC00006C095ED9A95F1F700008111F5CF80915C +:100ED000E80085FF0DC040E050E063E070E0CE0127 +:100EE00001960E94B7098091E8008E778093E80010 +:100EF0000F900F900F90DF91CF910895CF93DF93D4 +:100F000000D01F92CDB7DEB72091E401243021F547 +:100F100022E029839B838A8383E08093E9008FEF1B +:100F20009091E800815095FD06C095ED9A95F1F7F6 +:100F300000008111F5CF8091E80085FF0DC040E0F1 +:100F400050E063E070E0CE0101960E94B709809105 +:100F5000E8008E778093E8000F900F900F90DF915C +:100F6000CF9108959C018091E4018430F9F482E0EE +:100F70008093E9009FEF8091E800915085FD06C0C5 +:100F800085ED8A95F1F700009111F5CF8091E80089 +:100F900085FF0CC040E050E065E070E0C9010E94B0 +:100FA000B7098091E8008E778093E8000895CF9389 +:100FB000DF93EC018091E401843009F046C0909108 +:100FC0000C019923D9F090910D019923B9F08093E8 +:100FD000E9008FEF9091E800815095FD06C095E102 +:100FE0009A95F1F700008111F5CF8091E80085FF17 +:100FF0002CC040E050E060E170E017C081E08093D9 +:10100000E9008FEF9091E800815095FD06C095EDC5 +:101010009A95F1F700008111F5CF8091E80085FFE6 +:1010200014C040E050E068E070E0CE010E94B709D3 +:101030008091E8008E778093E80080E1FE01A2E5D0 +:10104000B1E001900D928A95E1F7DF91CF9108957B +:101050008091E301811109C00E94480B0E94A50BF9 +:101060008091E20084608093E20008951092E30191 +:10107000089508950C94F6200E94561A0E94FC20B0 +:101080000E94500E0C94460742E061EC81E00E9401 +:10109000C10A42E061EC82E00E94C10A42E061ECD8 +:1010A00083E00E94C10A42E161EC84E00C94C10A31 +:1010B0008091E601833009F455C030F4813071F03D +:1010C000823009F48EC008958A3009F47AC08B30DA +:1010D00009F460C0893009F09CC020C08091E5010E +:1010E000813A09F096C08091E800877F8093E800FC +:1010F0008091E9019091EA01892B21F460E182E578 +:1011000091E003C060E080E090E070E00E94020A9D +:101110008091E8008B778093E80008958091E50145 +:10112000813209F076C08091E9019091EA0100973F +:1011300019F0039709F06DC08091E800877F8093D4 +:10114000E8008091E80082FD05C08091E4018111F2 +:10115000F8CF5FC08091F100809362018091E80038 +:101160008B7753C08091E501813A09F052C080919C +:10117000E9019091EA01892B09F04BC08091E800C8 +:10118000877F8093E8008091E80080FFFCCF80910A +:101190000C0136C08091E5018132D9F58091E901D9 +:1011A0009091EA01892BA9F58091E800877F8093CF +:1011B000E8000E94F60A8091E70180930C010C94EC +:1011C000B9138091E501813221F58091E800877F94 +:1011D0008093E8000E94F60A8091E8018093630101 +:1011E00008958091E501813AA1F48091E800877F1C +:1011F0008093E8008091E80080FFFCCF809163013C +:101200008093F1008091E8008E778093E8000C9441 +:10121000F60A089584B7877F84BF0FB6F894A8951F +:1012200080916000886180936000109260000FBE22 +:1012300090E080E80FB6F89480936100909361008D +:101240000FBE0E949F0E0E94480B0E94A50B80912A +:10125000E20084608093E20078940E94300E0E9445 +:10126000A10E82E091E00E944B0E0E94E42080914A +:10127000E401853069F40E94181A8091E201882304 +:10128000B1F30E94421A882391F30E94A109EFCF83 +:101290000E94A70EECCF292F332723303105C9F048 +:1012A00060F42130310581F02230310509F041C070 +:1012B0008DE690E020E133E040C021323105E1F0DD +:1012C0002232310531F135C082E190E02DE733E083 +:1012D00034C099278130910549F028F0029749F5EB +:1012E000ECEDF2E005C0ECE0F3E002C0E4EFF2E088 +:1012F000849190E09F0121C06430D8F4E62FF0E0A3 +:10130000EE0FFF1FEE5DFE4F2081318189E090E0FE +:1013100014C0643070F470E0FB01EE0FFF1FE65E56 +:10132000FE4F20813181FB01EA5EFE4F808190E01B +:1013300004C080E090E020E030E0FA0131832083B7 +:10134000089580E189BD82E189BD09B400FEFDCF29 +:101350008091D8008F7D8093D8008091E0008260DA +:101360008093E0008091E00081FDFCCF0895CF9252 +:10137000DF92EF92FF920F931F93CF93DF93EC01D5 +:101380008B016A010E94150B811133C0C114D10475 +:1013900039F0F60180819181081B190BC80FD91F04 +:1013A000E12CF12C0115110519F18091E80085FD62 +:1013B00016C08091E8008E778093E800C114D104B4 +:1013C00049F0F60180819181E80EF91EF182E082F8 +:1013D00085E00FC00E94150B882321F30AC0899174 +:1013E0008093F10001501109FFEFEF1AFF0ADACFE5 +:1013F00080E0DF91CF911F910F91FF90EF90DF90F0 +:10140000CF9008952091EB013091EC01261737071A +:1014100048F06115710539F42091E8002E7720938A +:10142000E80001C0B901FC0120E06115710579F106 +:101430008091E4018823F1F18530F1F18091E80099 +:1014400083FD3CC08091E80082FD2EC08091E800C1 +:1014500080FFEBCF2091F3008091F20090E0922B7F +:101460006115710551F08830910538F42191209370 +:10147000F100615071090196F3CF21E0089709F05E +:1014800020E08091E8008E778093E800CECF211194 +:10149000CFCF0AC08091E401882361F0853061F0EC +:1014A0008091E80083FD0AC08091E80082FFF2CFBE +:1014B00080E0089582E0089583E0089581E0089532 +:1014C0002091EB013091EC012617370748F06115A8 +:1014D000710539F42091E8002E772093E80001C0CF +:1014E000B901FC0120E06115710591F18091E401E1 +:1014F000882309F440C0853009F43FC08091E8009A +:1015000083FD3DC08091E80082FD2FC08091E800FE +:1015100080FFE9CF2091F3008091F20090E0922BC0 +:101520006115710559F08830910540F4249120939C +:10153000F1003196615071090196F2CF21E00897D0 +:1015400009F020E08091E8008E778093E800CBCF0F +:101550002111CCCF0AC08091E401882361F085304D +:1015600061F08091E80083FD0AC08091E80082FF6D +:10157000F2CF80E0089582E0089583E0089581E04D +:101580000895982F973068F59093E900981739F0EF +:101590007091EC002091ED005091F00003C0242FD9 +:1015A000762F50E021FD02C09F5FECCF3091EB0021 +:1015B0003E7F3093EB003091ED003D7F3093ED00A6 +:1015C0003091EB0031603093EB007093EC0020938E +:1015D000ED005093F0002091EE0027FDE5CF80E074 +:1015E00008958F708093E90081E008958091E5016E +:1015F00087FF11C08091E80082FD05C08091E40161 +:101600008111F8CF11C08091E8008B770BC08091D9 +:10161000E401882349F08091E80080FFF8CF8091B1 +:10162000E8008E778093E80008952091E4003091DF +:10163000E50095E64091EC00842F817040FF23C0C7 +:101640008091E80080FD1DC08091E401882399F01D +:10165000853099F08091EB0085FD11C04091E40048 +:101660005091E5002417350729F3915011F09A01A4 +:10167000E1CF84E0089582E0089583E0089581E059 +:10168000089580E008954091E80042FFDDCF08957D +:101690000E94B60B0E94BE0BE0EEF0E080818160FC +:1016A0008083E8EDF0E080818F77808319BCA7ED1F +:1016B000B0E08C918E7F8C9380818F7E808310929E +:1016C000E30108950F931F93CF93DF930E94B60B0E +:1016D0000E94BE0BC8EDD0E088818F778883888117 +:1016E0008068888388818F7D888319BC1092E4018B +:1016F0001092E0011092E2011092E10100EE10E080 +:10170000F80180818B7F808388818160888342E0BB +:1017100060E080E00E94C10AE1EEF0E080818E7F0F +:101720008083E2EEF0E08081816080838081886048 +:101730008083F80180818E7F8083888180618883A7 +:10174000DF91CF911F910F910895E8EDF0E0808136 +:101750008F7E8083E7EDF0E080818160808384E08C +:1017600082BF81E08093E3010C94620BE8EDF0E02E +:1017700080818E7F80831092E20008951092DA00BB +:101780001092E10008951F920F920FB60F9211244C +:101790002F933F934F935F936F937F938F939F9379 +:1017A000AF93BF93EF93FF938091E10082FF0BC053 +:1017B0008091E20082FF07C08091E1008B7F8093DF +:1017C000E1000E942F0E8091DA0080FF1FC08091FF +:1017D000D80080FF1BC08091DA008E7F8093DA00F2 +:1017E0008091D90080FF0DC080E189BD82E189BD73 +:1017F00009B400FEFDCF81E08093E4010E94280837 +:1018000005C019BC1092E4010E9436088091E100E5 +:1018100080FF19C08091E20080FF15C08091E20036 +:101820008E7F8093E2008091E20080618093E200ED +:101830008091D80080628093D80019BC85E08093A5 +:10184000E4010E943A088091E10084FF30C0809159 +:10185000E20084FF2CC080E189BD82E189BD09B42A +:1018600000FEFDCF8091D8008F7D8093D8008091BD +:10187000E1008F7E8093E1008091E2008F7E809373 +:10188000E2008091E20081608093E2008091E001BB +:10189000882311F084E007C08091E30087FD02C037 +:1018A00081E001C083E08093E4010E943C088091C4 +:1018B000E10083FF29C08091E20083FF25C0809171 +:1018C000E100877F8093E10082E08093E401109241 +:1018D000E0018091E1008E7F8093E1008091E20041 +:1018E0008E7F8093E2008091E20080618093E2002D +:1018F00042E060E080E00E94C10A8091F0008860D0 +:101900008093F0000E943908FF91EF91BF91AF9151 +:101910009F918F917F916F915F914F913F912F9107 +:101920000F900FBE0F901F9018951F920F920FB639 +:101930000F9211242F933F934F935F936F937F9355 +:101940008F939F93AF93BF93CF93DF93EF93FF93C7 +:10195000C091E900CF708091EC00D82FD17080FD4C +:10196000D0E81092E9008091F000877F8093F0002A +:1019700078940E94D90C1092E9008091F000886060 +:101980008093F000CD2BCF70C093E900FF91EF91D1 +:10199000DF91CF91BF91AF919F918F917F916F9187 +:1019A0005F914F913F912F910F900FBE0F901F901D +:1019B00018951F93CF93DF93CDB7DEB7AA970FB6D5 +:1019C000F894DEBF0FBECDBFE5EEF1E08091F100EF +:1019D000819321E0ED3EF207C9F70E9458088091FB +:1019E000E80083FF24C18091E5019091E601492F31 +:1019F00050E04A30510508F01AC1FA01EA5AFF4F87 +:101A00000C948D22803881F0823809F010C18091C9 +:101A1000E9018F708093E9008091EB0085FB8827B6 +:101A200080F91092E90006C08091E1019091E201F5 +:101A3000911182609091E800977F9093E8008093E5 +:101A4000F1001092F100C8C0282F2D7F09F0EFC0DF +:101A5000882319F0823061F0EAC08091E70181307B +:101A600009F0E5C0933009F080E08093E2012BC0DB +:101A70008091E701811127C08091E9018F7009F4FD +:101A8000D6C08093E9002091EB0020FF1CC093306A +:101A900021F48091EB00806214C09091EB00906182 +:101AA0009093EB0021E030E0A90102C0440F551FE4 +:101AB0008A95E2F74093EA001092EA008091EB00E9 +:101AC00088608093EB001092E9008091E800877FA6 +:101AD00086C08111ACC01091E7011F778091E300AF +:101AE0008078812B8093E3008091E800877F80934A +:101AF000E8000E94F60A8091E80080FFFCCF809108 +:101B0000E30080688093E300111102C082E001C00D +:101B100083E08093E4018BC08058823008F087C056 +:101B20008091E7019091E8018C3D53E0950779F5AC +:101B300083E08A838AE289834FB7F894DE011396A3 +:101B400020E03EE051E2E32FF0E050935700E491B3 +:101B500020FF03C0E295EF703F5FEF708E2F90E0A3 +:101B6000EA3010F0C79601C0C0968D939D932F5F09 +:101B7000243149F74FBF8091E800877F8093E800C8 +:101B80006AE270E0CE0101960E94020A14C0AE0122 +:101B90004F5F5F4F6091E9010E944B09BC01892BA7 +:101BA00009F445C09091E800977F9093E8008981FF +:101BB0009A810E94600A8091E8008B778093E80008 +:101BC00036C08038A1F58091E800877F8093E800D7 +:101BD0008091E0018093F1008091E8008E778093FE +:101BE000E8000E94F60A23C0811121C08091E7011C +:101BF0009091E80199270297D4F48091E800877FBB +:101C00008093E8008091E7018093E0010E94F60A4A +:101C10008091E001811106C08091E30087FD02C040 +:101C200081E001C084E08093E4010E944408809137 +:101C3000E80083FF0AC08091E800877F8093E80076 +:101C40008091EB0080628093EB00AA960FB6F89427 +:101C5000DEBF0FBECDBFDF91CF911F9108950895D4 +:101C6000CF938091E4018823A1F0C091E900CF7067 +:101C70009091EC00892F817090FD80E8C82B109224 +:101C8000E9008091E80083FD0E94D90CCF70C093D9 +:101C9000E900CF91089590936901809368010895B8 +:101CA000E0916801F0916901309721F00190F08195 +:101CB000E02D099480E00895E0916801F0916901B8 +:101CC000309721F00280F381E02D09940895E0918E +:101CD0006801F0916901309721F00480F581E02DD1 +:101CE00009940895209166013091670128173907FA +:101CF00071F09093670180936601E0916801F09123 +:101D00006901309721F00680F781E02D099408954C +:101D100020916401309165012817390771F0909383 +:101D2000650180936401E0916801F0916901309749 +:101D300021F00084F185E02D0994089508950C9414 +:101D40009E0E0E945C1A0E940E040C94221BCF92DD +:101D5000DF92EF92FF920F931F93CF93DF93CDB754 +:101D6000DEB72B970FB6F894DEBF0FBECDBF0E9433 +:101D700026048BE6C82E81E0D82E00E010E0E02E8D +:101D8000802F0E941C05F60141916F01F82EF42668 +:101D9000B1F40F5F1F4F0E30110589F78FEF898364 +:101DA0008A831B820E94651A8160782F9D838C83B1 +:101DB00049815A816B818D810E944A0F40C0909168 +:101DC000CC0191FF04C08B870E9422058B8520E007 +:101DD00030E04F2D50E0922FBA01022E02C07595CF +:101DE00067950A94E2F760FF24C02E83EF8221E01A +:101DF00030E0690102C0CC0CDD1C9A95E2F790E05E +:101E00008C219D21892B09F420E028870E94651AE6 +:101E10008160782F9A8789874E815F8168858A855E +:101E20000E944A0FF801E559FE4F8081C826C08202 +:101E300006C02F5F3F4F2630310569F6AACF0E94BA +:101E4000091E0E94500E90916A018917A1F00E940C +:101E5000500E80936A012B960FB6F894DEBF0FBE2A +:101E6000CDBFDF91CF911F910F91FF90EF90DF9049 +:101E7000CF900C9446072B960FB6F894DEBF0FBE9A +:101E8000CDBFDF91CF911F910F91FF90EF90DF9029 +:101E9000CF900895CF93DF93CDB7DEB72B970FB6D2 +:101EA000F894DEBF0FBECDBF4F83588769877A870E +:101EB0008B87DE01119686E0FD0111928A95E9F784 +:101EC00085E0FE01379601900D928A95E1F74981F0 +:101ED0005A816B817C818D819E810E944D162B964B +:101EE0000FB6F894DEBF0FBECDBFDF91CF9108953E +:101EF000CF93C82F882309F4C1C0823859F40E94B7 +:101F0000500E81FDBBC089E30E94EA180E94A2190D +:101F100089E30CC0833879F40E94500E80FDAEC076 +:101F200083E50E94EA180E94A21983E50E942919FC +:101F3000CF910C94A219843859F40E94500E82FD5E +:101F40009DC087E40E94EA180E94A21987E4EECFA0 +:101F50008CEF8C0F813A48F48C2F0E94492081111C +:101F60008DC08C2F0E94EA18E3CF80E28C0F88305E +:101F700048F4C77081E001C0880FCA95EAF70E9453 +:101F80006B19D6CF8BE58C0F833078F4C53A29F0E6 +:101F9000C63A31F083E890E005C081E890E002C0E5 +:101FA00082E890E0CF910C94720E88E58C0F83311B +:101FB00008F064C0C83A39F1C93A41F1CA3A49F166 +:101FC000CB3A51F1CC3A59F1CD3A61F1C03B69F1CC +:101FD000CE3A71F1CF3A79F1C13B81F1C23B89F13F +:101FE000C33B91F1C43B99F1C53BA1F1C63BA9F1BB +:101FF000C73BB1F1C83BB9F1C93BC1F1CA3BC9F11B +:1020000080E090E038C082EE90E035C089EE90E04C +:1020100032C08AEE90E02FC085EB90E02CC086EBBA +:1020200090E029C087EB90E026C08CEC90E023C0C4 +:102030008DEC90E020C083E891E01DC08AE891E03B +:102040001AC082E991E017C084E991E014C081E2EE +:1020500092E011C083E292E00EC084E292E00BC0F5 +:1020600085E292E008C086E292E005C087E292E055 +:1020700002C08AE292E0CF910C94880ECF9108952D +:10208000882309F44BC0823859F40E94500E81FF16 +:1020900045C089E30E94EA180E94A21989E30CC096 +:1020A000833871F40E94500E80FF38C083E50E948F +:1020B000EA180E94A21983E50E9429190C94A2191A +:1020C000843859F40E94500E82FF28C087E40E9491 +:1020D000EA180E94A21987E4EFCF9CEF980F913A7B +:1020E00058F390E2980F983050F4877091E001C057 +:1020F000990F8A95EAF7892F0E947119DFCF9BE526 +:10210000980F933020F480E090E00C94720E885A7F +:10211000833120F480E090E00C94880E08958823A9 +:1021200021F00E946B190C94A2190895882321F0C4 +:102130000E9471190C94A2190895BF92CF92DF9258 +:10214000EF92FF920F931F93CF93DF9300D000D0B5 +:1021500000D0CDB7DEB77C0185E0F701DE01119636 +:1021600001900D928A95E1F7F70183819481892B83 +:1021700009F4DDC2908181818F3F19F49F3F09F4FA +:10218000D6C2F7010281258122952F7099838A8317 +:1021900089819A812E830E94A918182FB92E0E9436 +:1021A000A8180E946F17EB2DE295EF704E2F50E0AC +:1021B000FA01E05AFF4F2E810C948D228B2D807FE7 +:1021C0009B2D9F70F92E882319F0F29480EFF8224E +:1021D000002349F0FF2009F457C28F2D0E947B197C +:1021E0000E94A21951C2812F0E944010FF2009F4C1 +:1021F0009EC28F2D0E94811926960FB6F894DEBFDD +:102200000FBECDBFDF91CF911F910F91FF90EF9047 +:10221000DF90CF90BF900C94A2193B2D307F8B2D77 +:102220008F70303211F08295807F112319F01130B8 +:1022300021F12CC00023B9F0222309F490C12130F0 +:1022400009F08DC126960FB6F894DEBF0FBECDBF44 +:10225000DF91CF911F910F91FF90EF90DF90CF9082 +:10226000BF900C948B19222319F0213009F45FC21E +:102270008E830E948E198E8186C1002321F0223028 +:1022800008F055C26CC1211152C27DC1002321F05A +:10229000222309F464C1F8C1222309F474C109C2DC +:1022A0008B2D86958695837019F08130D1F03FC2D1 +:1022B000002321F0812F9B2D937002C080E090E0DD +:1022C00026960FB6F894DEBF0FBECDBFDF91CF913B +:1022D0001F910F91FF90EF90DF90CF90BF900C94E3 +:1022E000720E002321F0812F9B2D937002C080E09D +:1022F00090E026960FB6F894DEBF0FBECDBFDF91FB +:10230000CF911F910F91FF90EF90DF90CF90BF90F2 +:102310000C94880E812F002319F00E94111D02C019 +:102320000E94791D26960FB6F894DEBF0FBECDBF72 +:10233000DF91CF911F910F91FF90EF90DF90CF90A1 +:10234000BF900C94FE1D8B2D837009F075C0011198 +:10235000EEC1812F829586958770880F880F912F07 +:102360009F70C92ED12CE12CF12C082E04C0CC0C6E +:10237000DD1CEE1CFF1C0A94D2F714FF12C00FE004 +:1023800010E020E030E004C0000F111F221F331FB7 +:102390008A95D2F7C901B80160957095809590959E +:1023A00003C060E070E0CB014B2D4695469543702D +:1023B0004230C1F060F56C297D298E299F2941307A +:1023C00051F126960FB6F894DEBF0FBECDBFDF9158 +:1023D000CF911F910F91FF90EF90DF90CF90BF9022 +:1023E0000C9496176C297D298E299F2926960FB665 +:1023F000F894DEBF0FBECDBFDF91CF911F910F913B +:10240000FF90EF90DF90CF90BF900C94B2170E9496 +:102410009617C701B60126960FB6F894DEBF0FBE19 +:10242000CDBFDF91CF911F910F91FF90EF90DF9083 +:10243000CF90BF900C947A17002319F08B2D8170E8 +:1024400001C08695882309F472C1812F82958695F3 +:102450008770880F880F912F9F70C92ED12CE12C87 +:10246000F12C082E04C0CC0CDD1CEE1CFF1C0A94C1 +:10247000D2F714FF12C00FE010E020E030E004C0FB +:10248000000F111F221F331F8A95D2F7C901B8010F +:10249000609570958095909503C060E070E0CB01E9 +:1024A0004B2D4695469543704230C1F060F56C293E +:1024B0007D298E299F29413051F126960FB6F89437 +:1024C000DEBF0FBECDBFDF91CF911F910F91FF9067 +:1024D000EF90DF90CF90BF900C9470186C297D29FD +:1024E0008E299F2926960FB6F894DEBF0FBECDBF6A +:1024F000DF91CF911F910F91FF90EF90DF90CF90E0 +:10250000BF900C948C180E947018C701B6012696D3 +:102510000FB6F894DEBF0FBECDBFDF91CF911F91F4 +:102520000F91FF90EF90DF90CF90BF900C945418D4 +:10253000103FD1F118F4103E50F4A1C0123F09F43D +:1025400063C008F44CC0133F09F473C098C01F70F7 +:102550008B2D8F710023A1F00E94ED17812F2696FD +:102560000FB6F894DEBF0FBECDBFDF91CF911F91A4 +:102570000F91FF90EF90DF90CF90BF900C948F1051 +:102580000E940E18812F26960FB6F894DEBF0FBE5C +:10259000CDBFDF91CF911F910F91FF90EF90DF9012 +:1025A000CF90BF900C9496100023A9F02111BFC0CA +:1025B0008B2D8F7126960FB6F894DEBF0FBECDBF60 +:1025C000DF91CF911F910F91FF90EF90DF90CF900F +:1025D000BF900C943318223008F0A9C0E9CF002333 +:1025E000A9F08B2D8F7126960FB6F894DEBF0FBE23 +:1025F000CDBFDF91CF911F910F91FF90EF90DF90B2 +:10260000CF90BF900C94ED17002359F38B2D8F7151 +:1026100026960FB6F894DEBF0FBECDBFDF91CF91E7 +:102620001F910F91FF90EF90DF90CF90BF900C948F +:102630000E18002399F08B2D8F7126960FB6F89403 +:10264000DEBF0FBECDBFDF91CF911F910F91FF90E5 +:10265000EF90DF90CF90BF900C94D81726960FB6CE +:10266000F894DEBF0FBECDBFDF91CF911F910F91C8 +:10267000FF90EF90DF90CF90BF900C94CE17002387 +:10268000A9F0222309F4ADCF812F26960FB6F89436 +:10269000DEBF0FBECDBFDF91CF911F910F91FF9095 +:1026A000EF90DF90CF90BF900C94780F222309F425 +:1026B000ADCF812F26960FB6F894DEBF0FBECDBFEB +:1026C000DF91CF911F910F91FF90EF90DF90CF900E +:1026D000BF900C9440104B2D4F70612FC7010E948A +:1026E000AE0226960FB6F894DEBF0FBECDBFDF91C7 +:1026F000CF911F910F91FF90EF90DF90CF90BF90FF +:102700000C94F2164B2D4F70612FC70126960FB611 +:10271000F894DEBF0FBECDBFDF91CF911F910F9117 +:10272000FF90EF90DF90CF90BF900C94E30526963A +:102730000FB6F894DEBF0FBECDBFDF91CF911F91D2 +:102740000F91FF90EF90DF90CF90BF9008950E947F +:1027500088190E945D190E94A2190E94AE1E0E9453 +:10276000FE1D80E090E00E94720E80E090E00C94EC +:10277000880E0E9478190C94A7130E94A918292F7B +:1027800022952F702C3030F42A3048F42250223019 +:1027900078F405C02C3041F02F3031F009C0803E74 +:1027A00048F0803F29F406C093FB882780F90895FC +:1027B00080E0089581E00895CF93DF9300D000D0AA +:1027C0001F92CDB7DEB70F900F900F900F900F9024 +:1027D000DF91CF910895CF93DF9300D000D000D048 +:1027E000CDB7DEB726960FB6F894DEBF0FBECDBFCD +:1027F000DF91CF9108951F93CF93DF93C09179011B +:1028000016E080917A01C81799F0D0E01C9FF00182 +:102810001D9FF00D1124E558FE4F408151816281CA +:102820007381848195810E94EB132196C770E9CF53 +:10283000DF91CF911F9108954091AB015091AC0170 +:102840006091AD017091AE018091AF019091B001A6 +:102850000C94EB138091B00182958F7009F054C0F5 +:102860008091AD01882309F44FC080917901A09136 +:102870007A014091AE015091AF016091AB0170912E +:10288000AC01B6E08A1709F43FC090E0411551054C +:10289000C1F17F3F11F46F3FA1F1B89FF001B99FE3 +:1028A000F00D1124E558FE4F218127132AC0208105 +:1028B000261327C02281211124C0238134812417AB +:1028C000350710F421503109241B350B283C310504 +:1028D000C0F42091B0012F7020612093B00126E058 +:1028E000289FF001299FF00D1124E058FE4F8081B0 +:1028F0008F70806180838BEA91E00E949D100C9420 +:10290000FB1301968770BECF0895CF92DF92EF92AE +:10291000FF920F931F93CF93DF93CDB7DEB76297EC +:102920000FB6F894DEBF0FBECDBF8C0185E0F80175 +:10293000DE011D9601900D928A95E1F7D8014C9128 +:1029400011965C91119712966C918091AE019091C5 +:10295000AF01009709F475C13091AB017091AC01E2 +:102960007F3F19F43F3F09F46CC1F801C380D48064 +:10297000E090AD01EE2009F4BEC02091B001C81670 +:10298000D90628F0D601A81BB90BCD0104C080954B +:1029900090958C0D9D1DFF24F394883C910578F053 +:1029A000F12C207F09F0C4C07C2DD98AC88A89897E +:1029B0000E94DC138BEA91E00E949D10AFC0822F31 +:1029C000807F09F045C0571313C0431311C0611134 +:1029D0000FC02F7020612093B0010E941C148BEA5D +:1029E00091E00E949D108091B001F80185832EC076 +:1029F000CD2819F15F3F11F44F3FF9F0F62E611128 +:102A00001CC08091790120917A0136E0821709F487 +:102A10005BC090E0389FF001399FF00D1124E5581C +:102A2000FE4F7181571306C07081471303C0728136 +:102A3000711103C001968770E9CFF62E662309F461 +:102A40001CC18091B00181608093B001F12C15C14F +:102A5000571309C0431307C0611105C08091B0012D +:102A6000F8018583C8C04D875E878D859E856A8BFA +:102A70000E94BD136A898823D1F16623C1F1209198 +:102A8000B001822F82958F7090E0029774F0809150 +:102A9000AB019091AC0198878F831986DB86CA863B +:102AA0002C87CE0107960E949D1086E0F801ABEAC4 +:102AB000B1E001900D928A95E1F70E942A140E94DC +:102AC0001C14FF24F394D9C04D875E878D859E85A5 +:102AD0000E94A918292F22952F70223008F0C1C01A +:102AE0009F7009F0BBC0805E883008F4C6C0C80182 +:102AF0000E949D10E6CFC816D90608F453C0F6010F +:102B0000E81BF90BCF01883C910508F450C0F12C6B +:102B10007C2DD98AC88A89890E94DC13EBEAF1E00E +:102B200086E0DF011D928A95E9F70E941C14A5C07A +:102B3000571314C0431312C0611110C08091B0012B +:102B4000F8018583C8010E949D1086E0EBEAF1E060 +:102B5000DF011D928A95E9F7FE2C8FC04D875E87B5 +:102B60008D859E856A8B0E94BD136A89882309F42E +:102B7000BECF662309F4BBCF2091B001822F82958E +:102B80008F7090E002970CF490CF8091AB01909100 +:102B9000AC019A8389831B82DD82CC822E83CE0195 +:102BA000019681CF809590958C0D9D1DACCFF62E12 +:102BB000662309F49CCF571333C0431331C02091CF +:102BC000B00120FD24C0822F82958F70482F50E0E5 +:102BD00041155105E1F0D80115962C9315974F300A +:102BE000510549F08F5F982F9295907F822F8F70BB +:102BF000892B15968C93C8010E949D1086E0F801E0 +:102C0000ABEAB1E001900D928A95E1F78ECF86E0B4 +:102C1000F801ABEAB1E001900D928A95E1F72DC081 +:102C20004D875E878D859E850E94BD1381113DCFA6 +:102C30008091B00181608093B001C8010E949D1015 +:102C40001CC0662309F453CF4D875E878D859E8512 +:102C50000E94BD13882309F44ACF27CF811143CFA7 +:102C60000CC0243008F043CF9F7009F43CCFD8014A +:102C700015969C91907F09F036CF8F2D62960FB6F6 +:102C8000F894DEBF0FBECDBFDF91CF911F910F91A2 +:102C9000FF90EF90DF90CF9008951F93CF93DF9335 +:102CA000CDB7DEB72C970FB6F894DEBF0FBECDBF01 +:102CB0004F83588769877A878B879C87CE010796D1 +:102CC0000E948514882371F08A859B85892B09F4DD +:102CD00041C088858F3F09F065C08F818F3F09F023 +:102CE00061C038C086E0FE013796DE011196019082 +:102CF0000D928A95E1F76A857B856115710551F121 +:102D0000FF81E885EF3F11F4FF3F21F120917A0127 +:102D100030E0C9010196877099274091790150E010 +:102D20008417950709F447C0F983EA837D836C8390 +:102D300096E0929FD001939FB00D1124A558BE4FED +:102D4000FE01319601900D929A95E1F780937A01F8 +:102D50000E94FB1316E08091790190917A01891706 +:102D6000B9F1189FC001112485589E4F0E94851407 +:102D7000882371F1E09179011E9FF0011124E5583B +:102D8000FE4F4081518162817381848195810E94CF +:102D9000EB138091790190E00196877099278093D9 +:102DA0007901D9CF4F81588569857A858B859C8536 +:102DB0000E94EB13CFCF0E94B91310927A011092A8 +:102DC0007901EBEAF1E086E0DF011D928A95E9F7EF +:102DD0002C960FB6F894DEBF0FBECDBFDF91CF911A +:102DE0001F910895EF92FF920F931F93CF93DF935C +:102DF0008C01892B09F46CC0F12CEE24E394E801DA +:102E00002196F8018491843740F4843008F051C051 +:102E1000813081F0823019F15BC0853709F444C0FC +:102E2000A8F19CE7980F903708F052C08F770E9466 +:102E3000401041C00E5F1F4FFE01849190E2980F39 +:102E4000983050F48770FE2D01C0FF0F8A95EAF785 +:102E50008F2F0E947B1914C00E94780F2DC00E5F27 +:102E60001F4FFE01849190E2980F983060F48770B4 +:102E7000FE2D01C0FF0F8A95EAF78F2F0E9481195E +:102E80000E94A21919C00E94401016C00E5F1F4F69 +:102E9000FE01C491CC2381F08FE99FE00197F1F707 +:102EA00000C00000C150F6CF0E5F1F4FFE01F4902E +:102EB00003C00E94780F8E018F2D882309F49FCFC5 +:102EC000EFE9FFE03197F1F700C000008150F5CF46 +:102ED000DF91CF911F910F91FF90EF90089508958A +:102EE0006093B5017093B6018093B7019093B801D8 +:102EF0000C94A7130F931F930091B5011091B60185 +:102F00002091B7013091B801DC01CB01802B912BCE +:102F1000A22BB32B8093B5019093B601A093B70178 +:102F2000B093B8011F910F910C94A7130F931F93A7 +:102F30000091B5011091B6012091B7013091B8010F +:102F4000DC01CB0180239123A223B3238093B5011D +:102F50009093B601A093B701B093B8011F910F9160 +:102F60000C94A7130F931F930091B5011091B60114 +:102F70002091B7013091B801DC01CB018027912766 +:102F8000A227B3278093B5019093B601A093B70110 +:102F9000B093B8011F910F910C94A7131092B10137 +:102FA0001092B2011092B3011092B4010C94A713C5 +:102FB00041E050E060E070E004C0440F551F661F20 +:102FC000771F8A95D2F74093B1015093B201609375 +:102FD000B3017093B4010C94A71341E050E060E09A +:102FE00070E004C0440F551F661F771F8A95D2F703 +:102FF0008091B1019091B201A091B301B091B4015F +:10300000482B592B6A2B7B2B4093B1015093B20173 +:103010006093B3017093B4010C94A71341E050E0A6 +:1030200060E070E004C0440F551F661F771F8A954B +:10303000D2F740955095609570958091B10190912F +:10304000B201A091B301B091B401482359236A237E +:103050007B234093B1015093B2016093B30170930D +:10306000B4010C94A71341E050E060E070E004C0AC +:10307000440F551F661F771F8A95D2F78091B101C3 +:103080009091B201A091B301B091B40148275927A2 +:103090006A277B274093B1015093B2016093B3013B +:1030A0007093B4010C94A7130F931F930091B10177 +:1030B0001091B2012091B3013091B401DC01CB0138 +:1030C000802B912BA22BB32B8093B1019093B20153 +:1030D000A093B301B093B4011F910F910C94A71367 +:1030E0000F931F930091B1011091B2012091B30190 +:1030F0003091B401DC01CB0180239123A223B323BF +:103100008093B1019093B201A093B301B093B40145 +:103110001F910F910C94A7130F931F930091B1016E +:103120001091B2012091B3013091B401DC01CB01C7 +:1031300080279127A227B3278093B1019093B201F2 +:10314000A093B301B093B4011F910F910C94A713F6 +:103150000895CF92DF92EF92FF920F931F93CF9338 +:10316000DF938C01C090B101D090B201E090B30127 +:10317000F090B4018091B5019091B601A091B70192 +:10318000B091B801C82AD92AEA2AFB2ACFE1D0E0B7 +:10319000D701C6010C2E04C0B695A79597958795C3 +:1031A0000A94D2F780FF07C0B8018C2F0E9407064F +:1031B0008130910531F4219758F7B80180E00E94E1 +:1031C0000706DF91CF911F910F91FF90EF90DF9055 +:1031D000CF90089590910C019923F1F090910D01F9 +:1031E0009923D1F0982F9695969596959F3080F5D6 +:1031F000E0910E01F0910F01E90FF11D877021E0C0 +:1032000030E0A90102C0440F551F8A95E2F7CA01B8 +:103210009181892B8183089520910E0130910F01B6 +:10322000F90132969FEF40E05191851789F09F3F59 +:1032300019F4511101C0942F4F5F4E30A9F79F3FF1 +:1032400039F0F901E90FF11D97FDFA958283089590 +:10325000089590910C019923F9F090910D01992313 +:10326000D9F0982F9695969596959F3028F5E091F0 +:103270000E01F0910F01E90FF11D877021E030E0A0 +:10328000A90102C0440F551F8A95E2F7CA01809533 +:10329000918189238183089520910E0130910F013E +:1032A000F9013296205F3F4F9081891301C010824F +:1032B0003196E217F307C1F7089581E090E0E091BD +:1032C0000E01F0910F01E80FF91F10820196803175 +:1032D0009105A9F708959091CB01892B8093CB019B +:1032E000089580959091CB0189238093CB01089517 +:1032F0001092CB0108959091CA01892B8093CA0145 +:10330000089580959091CA0189238093CA010895F8 +:103310001092CA0108958093B90108951092B901DD +:10332000089580910E0190910F01FC0131969C014E +:10333000205F3F4F80E0919191118F5FE217F3077B +:10334000D1F70895E0910E01F0910F018091CB012A +:103350008083E0910E01F0910F0190818091CA016C +:10336000892B80838091B901882361F0E0910E015F +:10337000F0910F019081892B80830E949119811116 +:103380001092B90180910E0190910F010C945C0E86 +:10339000CF92DF92EF92FF926C01EE24FF24C114D2 +:1033A000D104E104F10421F0C701B60120E101C01C +:1033B00020E0C72ED82EE92EFF24C114D104E10449 +:1033C000F10419F0285FC701B6016B017C0154E0DC +:1033D000F694E794D794C7945A95D1F7C114D104C1 +:1033E000E104F10419F02C5FC701B6016B017C0107 +:1033F00042E0F694E794D794C7944A95D1F7C11464 +:10340000D104E104F10419F02E5FC701B601DC011B +:10341000CB01B695A79597958795892B8A2B8B2BF2 +:1034200009F02F5F822FFF90EF90DF90CF900895EB +:103430008091E401843011F120E488E190E00FB63E +:10344000F894A895809360000FBE2093600083B726 +:10345000817F846083BF83B7816083BF78948895C0 +:1034600083B78E7F83BF0FB6F894A89580916000D4 +:10347000886180936000109260000FBE08950895E7 +:103480000C943F1ACF930E94401A0E9426040E9477 +:103490003F1AC0E08C2F0E941C05811104C0CF5F31 +:1034A000CE30C1F701C081E0CF9108950E94B913D9 +:1034B0000E94500E0C94460782E084BD93E095BDB7 +:1034C0009AEF97BD80936E0008952FB7F89480917E +:1034D000CD019091CE01A091CF01B091D0012FBF2D +:1034E0000895CF92DF92EF92FF920F931F932FB721 +:1034F000F8944091CD015091CE016091CF0170912F +:10350000D0012FBF6A017B01EE24FF248C0120E053 +:1035100030E0C016D106E206F30610F4415051091E +:103520009A01281B390BC9011F910F91FF90EF9051 +:10353000DF90CF9008951F920F920FB60F92112433 +:103540008F939F93AF93BF938091CD019091CE01C4 +:10355000A091CF01B091D0010196A11DB11D809322 +:10356000CD019093CE01A093CF01B093D001BF9134 +:10357000AF919F918F910F900FBE0F901F90189554 +:103580000E94480BF8942FEF87EA91E62150804083 +:103590009040E1F700C0000087E090EBDC018093F1 +:1035A000ED019093EE01A093EF01B093F0019CE048 +:1035B00088E10FB6F894A895809360000FBE9093B1 +:1035C0006000FFCFEF92FF920F931F93CF93DF9393 +:1035D000D82FC0E08C2F0E941C0500E010E0E82EE0 +:1035E000F12CC701002E02C0959587950A94E2F749 +:1035F00080FD06C00F5F1F4F0630110591F709C00F +:10360000602F7C2F80E00E94E4058D13F3CF81E0D2 +:1036100004C0CF5FCE30F1F680E0DF91CF911F91F3 +:103620000F91FF90EF900895CF93C82F8CE20E94E6 +:10363000E21A882321F08C2FCF910C94E21A80E0BB +:10364000CF910895CF930E94691C811102C00E94FE +:103650004F1CC5E6C15049F00E9426048FE39CE947 +:103660000197F1F700C00000F5CF89E20E94141B1A +:10367000811113C18AE20E94141B81110E944F1C08 +:1036800085E00E94141B81110E94C01A0E94741CC4 +:103690008093CC0187E00E94141B8823A9F18BE161 +:1036A0000E94141B882351F08091CC0181FB2227BA +:1036B00020F991E0922790FB81F90EC08EE00E94E4 +:1036C000141B882361F08091CC0182FB222720F912 +:1036D00091E0922790FB82F98093CC0115C080E1A4 +:1036E0000E94141B9091CC01882341F093FB222768 +:1036F00020F981E0822780FB93F904C0892F80950F +:1037000080FB90F99093CC018091CC010E94781CB1 +:103710000E94861C8093DE0180EE0E94141B882389 +:1037200041F08091DE01982F909590FB80F9809375 +:10373000DE0189E30E94141B882359F08091DE0189 +:1037400081FB222720F991E0922790FB81F9809359 +:10375000DE0182EE0E94141B882359F08091DE0165 +:1037600082FB222720F991E0922790FB82F9809337 +:10377000DE0186EE0E94141B882359F08091DE0141 +:1037800083FB222720F991E0922790FB83F9809315 +:10379000DE0183EE0E94141B882359F08091DE0124 +:1037A00084FB222720F991E0922790FB84F98093F3 +:1037B000DE0185E30E94141B882359F08091DE010D +:1037C00085FB222720F991E0922790FB85F98093D1 +:1037D000DE0181E30E94141B882359F08091DE01F1 +:1037E00086FB222720F991E0922790FB86F98093AF +:1037F000DE0181E10E94141B882359F08091DE01D3 +:1038000087FB222720F991E0922790FB87F980938C +:10381000DE018091DE010E948A1C8091DE0187FB1F +:10382000882780F980930D0187E20E94141BC82F1E +:103830008EE10E94141B8111C2608FE10E94141B53 +:103840008111C46080E20E94141B8111C86081E272 +:103850000E94141B8111C06182E20E94141B81111D +:10386000C06283E20E94141B8111C06484E20E9442 +:10387000141B882311F0C06802C0CC2329F08C2FC0 +:103880000E94811C6C2F03C00E947D1C682F70E079 +:1038900080E090E0CF910C947017CF9108956DEE79 +:1038A0007EEF80E090E00E94C32260E082E090E042 +:1038B0000E94B52260E083E090E00E94B52260E0C3 +:1038C00084E090E00E94B52260E085E090E00C94F6 +:1038D000B52280E090E00E94AF2221E08D3E9E4F15 +:1038E00009F020E0822F089582E090E00C94A72256 +:1038F000682F82E090E00C94B52283E090E00C9475 +:10390000A722682F83E090E00C94B52284E090E039 +:103910000C94A722682F84E090E00C94B52280914B +:10392000D30180FF0BC06091130185E0689FB00157 +:10393000112475956795759567952BC081FF09C012 +:103940006091130185E0689FB0011124759567951A +:1039500020C082FF07C06091130185E0689FB0011D +:10396000112417C09091D4019923D1F060911201D4 +:10397000961788F72091130185E0289F9001112464 +:10398000929FA001939F500D112470E0CA010E94E4 +:1039900079226038710540F46115710519F406C08B +:1039A00065E070E0862F08958FE7089581E008951F +:1039B0008091D30180FF08C06091110170E075957E +:1039C00067957595679521C081FF06C060911101CB +:1039D00070E07595679519C082FF04C06091110170 +:1039E00070E010C09091D401992399F0609110017A +:1039F0009617A0F780911101899FC001112470E0F2 +:103A00000E9479226038710540F46115710519F43E +:103A100006C061E070E0862F08958FE7089581E089 +:103A20000895803F21F40E948F1C819504C0813F3E +:103A300029F40E948F1C8093D7010895823F21F4BE +:103A40000E948F1C819504C0833F29F40E948F1C23 +:103A50008093D6010895893F19F40E94D81C05C0AF +:103A60008A3F31F40E94D81C81958093D801089533 +:103A70008B3F21F40E94D81C819504C08C3F29F40F +:103A80000E94D81C8093D9010895843F21F480912D +:103A9000D501816017C0853F21F48091D5018260F6 +:103AA00011C0863F21F48091D50184600BC0873F0F +:103AB00021F48091D501886005C0883F31F4809160 +:103AC000D50180618093D50108958D3F21F48091C7 +:103AD000D30181600BC08E3F21F48091D3018260BD +:103AE00005C08F3F29F48091D30184608093D30176 +:103AF0000895803F39F48091D70187FF6CC0109200 +:103B0000D70169C0813F29F48091D7011816BCF311 +:103B100062C09091D601823F29F497FF5CC0109259 +:103B2000D60159C0833F19F41916CCF354C0893F0C +:103B300041F48091D80118160CF04DC01092D801B4 +:103B40004AC08A3F29F48091D80187FF44C0F6CF4C +:103B50008B3F39F48091D90187FF3DC01092D90184 +:103B60003AC08C3F29F48091D9011816BCF333C0B8 +:103B7000843F21F48091D5018E7F17C0853F21F4C9 +:103B80008091D5018D7F11C0863F21F48091D501B0 +:103B90008B7F0BC0873F21F48091D501877F05C0C3 +:103BA000883F31F48091D5018F7E8093D50113C079 +:103BB0008D3F21F48091D3018E7F0BC08E3F21F485 +:103BC0008091D3018D7F05C08F3F29F48091D3016F +:103BD0008B7F8093D3018091D60181110EC080919B +:103BE000D70181110AC08091D801811106C080914E +:103BF000D901811102C01092D401089585ED91E0A0 +:103C00000E94670E0E94651A9093D2018093D101A1 +:103C100008951F93CF93DF938091D1019091D201AA +:103C20000E94711AAC019091D401992321F0209146 +:103C3000140130E006C0209115018AE0289F900110 +:103C400011244217530708F485C08091D601C09112 +:103C5000D701D091D8011091D901811107C0C111AC +:103C600075C0D11173C0111171C074C09F3F19F09C +:103C70009F5F9093D401181624F40E948F1C8093A8 +:103C8000D6018091D60187FF05C00E948F1C8195C7 +:103C90008093D6011C1624F40E948F1C8093D701B8 +:103CA0008091D70187FF05C00E948F1C819580936A +:103CB000D7016091D601662331F1C091D701CC23A1 +:103CC00011F1062E000C770B880B990B0E948021B6 +:103CD00023E333E343E35FE30E94E4210E944821AE +:103CE0006093D6016C2FCC0F770B880B990B0E9439 +:103CF000802123E333E343E35FE30E94E4210E9456 +:103D000048216093D7011D1624F40E94D81C80938B +:103D1000D8018091D80187FF05C00E94D81C8195E9 +:103D20008093D801111624F40E94D81C8093D901E5 +:103D30008091D90187FF05C00E94D81C819580938E +:103D4000D901DF91CF911F910C94FE1D9F3F09F087 +:103D50008FCFA0CFDF91CF911F910895E5EDF1E0D6 +:103D600085E0DF011D928A95E9F71092D401109247 +:103D7000D3010895833081F128F4813059F08230E5 +:103D8000D1F00895853009F449C0B8F1863009F4BE +:103D900056C0089580911501262F30E0280F311D5F +:103DA0002F3F310524F4680F6093150108958FEFBC +:103DB00080931501089580911401262F30E0280F7B +:103DC000311D2F3F310524F4680F609314010895CD +:103DD0008FEF80931401089580911301262F30E016 +:103DE000280F311D2F3F310524F4680F6093130114 +:103DF00008958FEF80931301089580911201262F6B +:103E000030E0280F311D2F3F310524F4680F6093F7 +:103E1000120108958FEF809312010895809111018E +:103E2000262F30E0280F311D2F3F310524F4680F75 +:103E30006093110108958FEF80931101089580918F +:103E40001001262F30E0280F311D2F3F310524F4BB +:103E5000680F6093100108958FEF8093100108950B +:103E6000833011F128F4813049F0823091F00895C7 +:103E7000853081F120F18630C1F1089580911501DE +:103E8000681720F4861B8093150108951092150180 +:103E9000089580911401681720F4861B8093140103 +:103EA000089510921401089580911301681720F469 +:103EB000861B809313010895109213010895809139 +:103EC0001201681720F4861B809312010895109246 +:103ED0001201089580911101681720F4861B8093C8 +:103EE0001101089510921101089580911001681731 +:103EF00020F4861B809310010895109210010895FC +:103F00000F931F938D3109F46BC008F03FC08E30C2 +:103F100009F47DC0C0F4873009F46EC068F48630BF +:103F200009F0AFC08091CC01817F8E7F8093CC015E +:103F300081E08093DB01A6C0883009F458C08B3043 +:103F400009F49BC09EC0863109F497C078F4803193 +:103F500009F470C0813109F094C00E94B9139091A6 +:103F60000D0181E0892780930D0187C0893109F413 +:103F700084C08B3109F085C08091CC0181FB222760 +:103F800020F991E0922790FB81F94AC0853309F42A +:103F90005BC048F4873209F457C008F45AC089322C +:103FA00009F452C06EC0833438F48A3308F067C015 +:103FB000883309F462C065C0833409F445C088348D +:103FC00009F05FC00E94B9130FEF13ED20E3015019 +:103FD00010402040E1F700C000000E94C01A4DC010 +:103FE0000E9402210E94500E0E94460746C00E9475 +:103FF000741C0E94861C41C09091CC01892F817055 +:1040000090FF12C0917F9E7F9093CC013BC0809126 +:10401000CC0182FB222720F991E0922790FB82F9C4 +:104020008093CC01992349F18091CC0181608093E8 +:10403000CC0123C08091CC0183FB222720F991E0A1 +:10404000922790FB83F9ECCF61E070E080E090E094 +:1040500010C08D5141E050E060E070E08A019B01AA +:1040600004C0000F111F221F331F8A95D2F7C90108 +:10407000B8010E9470170E94B91381E003C08953F0 +:10408000E9CF80E01F910F91089580E008950C948E +:104090004520CF93C82F8091DB01813079F018F053 +:1040A0008230E9F187C0E0910E01F0910F0180812B +:1040B000813169F0823209F07FC009C0E0910E01C0 +:1040C000F0910F018081813111F0823261F48C2FE7 +:1040D0000E944720811104C08C2F0E94801F1DC0A8 +:1040E00081E090E01AC08C2F0E944520811114C0FD +:1040F000C43179F048F4CB3079F0C03109F060C0B8 +:1041000082E08093DB0108C0C93219F0C83321F086 +:1041100057C01092DB0154C081E0817053C0C93296 +:1041200089F118F5C43171F1A8F4C73009F046C01F +:104130008AE08093150194E19093140193E09093A9 +:1041400013018093120188E08093110188E280932B +:10415000100134C0CE51C63088F5EC2FF0E0E65D9A +:10416000FE4F80818093DA0129C0CE34E9F020F43B +:10417000CB3421F56AE013C0C13579F0C235F1F4D2 +:1041800061E00DC08091DA01882319F01092DA0104 +:1041900015C081E08093DB0115C061E006C080910D +:1041A000DA010E94BA1E0AC06AE08091DA010E9418 +:1041B000301F04C01092DB0180E004C081E002C027 +:1041C00080E0ABCFCF910895E1E8F0E08081886096 +:1041D00080838081816080838FB7F89493E090938F +:1041E000890090ED909388008FBF0895EFE6F0E08E +:1041F0008081826080830895EFE6F0E080818D7F8A +:1042000080830895EFE6F0E0908182E08927808343 +:1042100008951F920F920FB60F9211242F933F9380 +:104220004F935F936F937F938F939F93AF93BF93BE +:10423000EF93FF938091DC019091DD0101969093C3 +:10424000DD018093DC01811103C082E00E944607FA +:10425000E091DD01E695E695F0E0E657FB4FE4914D +:104260008091DC018E1303C080E00E944607FF911D +:10427000EF91BF91AF919F918F917F916F915F91DE +:104280004F913F912F910F900FBE0F901F90189557 +:104290000E944F216894B1110C94DE2108950E9470 +:1042A000C32188F09F5798F0B92F9927B751B0F0E4 +:1042B000E1F0660F771F881F991F1AF0BA95C9F7AA +:1042C00014C0B13091F00E94DD21B1E008950C944A +:1042D000DD21672F782F8827B85F39F0B93FCCF3FD +:1042E000869577956795B395D9F73EF49095809527 +:1042F000709561957F4F8F4F9F4F0895E89409C047 +:1043000097FB3EF490958095709561957F4F8F4F08 +:104310009F4F9923A9F0F92F96E9BB279395F6951E +:10432000879577956795B795F111F8CFFAF4BB0F9C +:1043300011F460FF1BC06F5F7F4F8F4F9F4F16C000 +:10434000882311F096E911C0772321F09EE8872F8A +:10435000762F05C0662371F096E8862F70E060E046 +:104360002AF09A95660F771F881FDAF7880F9695BF +:10437000879597F9089557FD9058440F551F59F0A8 +:104380005F3F71F04795880F97FB991F61F09F3F42 +:1043900079F087950895121613061406551FF2CF6B +:1043A0004695F1DF08C0161617061806991FF1CFBB +:1043B00086957105610508940895E894BB276627E2 +:1043C0007727CB0197F908950E94F7210C94682272 +:1043D0000E945A2238F00E94612220F0952311F0A9 +:1043E0000C9451220C94572211240C94DE210E942B +:1043F000BB2170F3959FC1F3950F50E0551F629F4D +:10440000F001729FBB27F00DB11D639FAA27F00D2D +:10441000B11DAA1F649F6627B00DA11D661F829F54 +:104420002227B00DA11D621F739FB00DA11D621F39 +:10443000839FA00D611D221F749F3327A00D611D56 +:10444000231F849F600D211D822F762F6A2F112438 +:104450009F5750409AF0F1F088234AF0EE0FFF1F6B +:10446000BB1F661F771F881F91505040A9F79E3FC2 +:10447000510580F00C9451220C94DE215F3FE4F34F +:10448000983ED4F3869577956795B795F795E79518 +:104490009F5FC1F7FE2B880F911D9695879597F921 +:1044A000089597F99F6780E870E060E008959FEFB6 +:1044B00080EC089500240A941616170618060906BB +:1044C000089500240A94121613061406050608958A +:1044D000092E0394000C11F4882352F0BB0F40F412 +:1044E000BF2B11F460FF04C06F5F7F4F8F4F9F4F52 +:1044F000089597FB072E16F4009407D077FD09D096 +:104500000E94932207FC05D03EF4909581959F4F21 +:104510000895709561957F4F0895EE0FFF1F0590E8 +:10452000F491E02D0994AA1BBB1B51E107C0AA1FFF +:10453000BB1FA617B70710F0A61BB70B881F991F44 +:104540005A95A9F780959095BC01CD010895F999E8 +:10455000FECF92BD81BDF89A992780B50895A8E154 +:10456000B0E042E050E00C94CA22262FF999FECF29 +:104570001FBA92BD81BD20BD0FB6F894FA9AF99A80 +:104580000FBE019608950E94B522272F0C94B622E3 +:10459000DC01CB01FC01F999FECF06C0F2BDE1BD03 +:1045A000F89A319600B40D9241505040B8F70895F2 +:0445B000F894FFCFAD +:1045B40020024707D707B2077E074A070101BA015D +:1045C40028080A03140A3F4D36394B04FE03C80376 +:1045D4008F0322033B0354036D0301020304050606 +:0445E40007080900BB +:00000001FF diff --git a/keyboard/ergodox_ez/keymaps/jack/keymap.c b/keyboard/ergodox_ez/keymaps/jack/keymap.c new file mode 100644 index 0000000000..80bf9d535d --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/jack/keymap.c @@ -0,0 +1,118 @@ +#include "ergodox_ez.h" +#include "debug.h" +#include "action_layer.h" + +// TODO: Define layer names that make sense for the ErgoDox EZ. +#define BASE 0 // default layer +#define SYMB 1 // symbols +#define MDIA 2 // media keys + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[BASE] = KEYMAP( // layer 0 : default + // left hand + KC_NO, KC_1, KC_2, KC_3, KC_4, KC_5, KC_NO, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_NO, + KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_NO, + KC_NO, KC_LCTL, KC_LALT,KC_LGUI, MO(2), + ALT_T(KC_APP), KC_LGUI, + KC_HOME, + KC_SPC,KC_SPC,KC_END, + // right hand + KC_NO, KC_6, KC_7, KC_8, KC_9, KC_0, KC_NO, + KC_NO, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_NO, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_ENT, + MO(1), KC_LEFT,KC_DOWN,KC_UP, KC_RGHT, + KC_NO, KC_NO, + KC_PGUP, + KC_PGDN, KC_SPC,KC_SPC + ), +[SYMB] = KEYMAP( + // left hand + KC_TRNS,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_TRNS, + KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, + KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,KC_TRNS, + KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, + KC_TRNS,KC_TRNS, + KC_TRNS, + KC_TRNS,KC_TRNS,KC_TRNS, + // right hand + KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + KC_TRNS, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, + KC_TRNS, KC_F12, KC_NO, KC_NO, KC_NO, RESET, KC_TRNS, + KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS +), +[MDIA] = KEYMAP( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_TRNS, + KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, + KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, + // right hand + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, + KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, + KC_TRNS, KC_F12, KC_NO, KC_NO, KC_NO, RESET, KC_TRNS, + KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS +), +}; + +const uint16_t PROGMEM fn_actions[] = { + [1] = ACTION_LAYER_TAP_TOGGLE(SYMB) // FN1 - Momentary Layer 1 (Symbols) +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch(id) { + case 0: + if (record->event.pressed) { + register_code(KC_RSFT); + } else { + unregister_code(KC_RSFT); + } + break; + } + return MACRO_NONE; +}; + +// Runs just one time when the keyboard initializes. +void matrix_init_user(void) { + +}; + +// Runs constantly in the background, in a loop. +void matrix_scan_user(void) { + + uint8_t layer = biton32(layer_state); + + ergodox_board_led_off(); + ergodox_right_led_1_off(); + ergodox_right_led_2_off(); + ergodox_right_led_3_off(); + switch (layer) { + // TODO: Make this relevant to the ErgoDox EZ. + case 1: + ergodox_right_led_1_on(); + break; + case 2: + ergodox_right_led_2_on(); + break; + default: + // none + break; + } + +}; diff --git a/keyboard/ergodox_ez/keymaps/jacobono/README.md b/keyboard/ergodox_ez/keymaps/jacobono/README.md new file mode 100644 index 0000000000..48de0509fc --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/jacobono/README.md @@ -0,0 +1,34 @@ +# Default Layer # + +I'm using the colemak layer -- customized a bit to work a bit better when using spacemacs as my editor. + +![default-layer](img/colemak-default-layer.png) + +## Special Keys ## + +`SC1` => `LGUI + TAB` + +`SC2` => `LGUI + SPACE + TAB` + +`L1` => Switch to QWERTY Layout + +`T(L2)` => Toggle Symbol Layer + +`T(L3)` => Toggle Number and D-Pad Layer + +# QWERTY # + +Nothing special here -- just need this layer tucked away for the `WASD`. Which is literally the only reason I use it. +Just have the same button to toggle back to colemak. + +# Symbol Layer # + +![symbol-layer](img/symbol-layer.png) + +This is just putting matching closing symbols next to each other -- useful when editing lisp. + +# Number and D-Pad Layer # + +Just a basic number layer with a D-PAD on the other side. + +![number-dpad-layer](img/number-dpad-layer.png) diff --git a/keyboard/ergodox_ez/keymaps/jacobono/img/colemak-default-layer.png b/keyboard/ergodox_ez/keymaps/jacobono/img/colemak-default-layer.png new file mode 100644 index 0000000000..06f63c4968 Binary files /dev/null and b/keyboard/ergodox_ez/keymaps/jacobono/img/colemak-default-layer.png differ diff --git a/keyboard/ergodox_ez/keymaps/jacobono/img/number-dpad-layer.png b/keyboard/ergodox_ez/keymaps/jacobono/img/number-dpad-layer.png new file mode 100644 index 0000000000..4dd7182785 Binary files /dev/null and b/keyboard/ergodox_ez/keymaps/jacobono/img/number-dpad-layer.png differ diff --git a/keyboard/ergodox_ez/keymaps/jacobono/img/symbol-layer.png b/keyboard/ergodox_ez/keymaps/jacobono/img/symbol-layer.png new file mode 100644 index 0000000000..ee224cf0c1 Binary files /dev/null and b/keyboard/ergodox_ez/keymaps/jacobono/img/symbol-layer.png differ diff --git a/keyboard/ergodox_ez/keymaps/jacobono/jacobono.hex b/keyboard/ergodox_ez/keymaps/jacobono/jacobono.hex new file mode 100644 index 0000000000..f780f648f3 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/jacobono/jacobono.hex @@ -0,0 +1,1142 @@ +:100000000C940D030C9454030C9454030C9454035B +:100010000C9454030C9454030C9454030C94540304 +:100020000C9454030C9454030C946B0C0C943D0DE1 +:100030000C9454030C9454030C9454030C945403E4 +:100040000C9454030C94B1210C9454030C94540359 +:100050000C9454030C94431B0C9454030C945403BD +:100060000C9454030C9454030C9454030C945403B4 +:100070000C9454030C9454030C9454030C945403A4 +:100080000C9454030C9454030C9454030C94540394 +:100090000C9454030C9454030C9454030C94540384 +:1000A0000C9454030C9454030C945403AA0DCC0DDB +:1000B000BF0ECC0DBF0E110E340EBF0E890E9C0E5E +:1000C00086118611B511B511F81132123F143F1483 +:1000D0004B123F144013401313143F143F142A14BF +:1000E0000000F0A201002B002A00E10001540000F2 +:1000F0001E00140004001D71010003521F001A00AD +:1001000015001B0001002800200009001600060051 +:1001100052002C00210013001700190002522C0A73 +:1001200022000A00070005000000E3005000010063 +:1001300000000100000065004F00010000002B08D6 +:100140000000297123000D000B000E000000E200EA +:1001500024000F001100100002522C0A2500180084 +:100160000800360051002C0026001C000C0037004F +:10017000010028002700330012003871E600035206 +:100180004C002B004C00E500E70000002A002B008B +:10019000E000E100010000001E00140004001D71D9 +:1001A00034004D001F001A0016001B00E104E3009C +:1001B000200008000700060050002C002100150058 +:1001C0000900190002524A00220017000A00050027 +:1001D00000002B00500001000000E20000004C0075 +:1001E0004F0001000000E6000000E20023001C00B8 +:1001F0000B00110000002971240018000D001000F0 +:1002000002524B0025000C000E0036005100280061 +:10021000260012000F0037002F00E7002700130010 +:100220003384387130004E004C003100E400E500AA +:10023000C1000000010001000100010001000000F8 +:100240003A00010031020100010001003B001F02E1 +:100250001E022202010001003C0025022E022302A0 +:10026000010001003D002E002D00210201000100CF +:100270003E002D02340224020000010001000100B2 +:100280000000010000000100010001000000010069 +:10029000000001003F00350234023300000001007D +:1002A00040002F0226022F00010001004100300211 +:1002B000270230000100010042002002340031001A +:1002C0000100010043003302350038000100010045 +:1002D0004400450001000100010000000100010090 +:1002E0000100010001000000010001000100010007 +:1002F00001000100010001005000010001000100A7 +:100300000100520051000100010001000100010044 +:100310004F00010001000100010001000100010087 +:1003200000000100010001000000010000000100C8 +:100330000100010000000100000001000100210295 +:100340002E002402000001000100240021001E00F4 +:10035000360001000100250022001F0027000100D7 +:1003600001002600230020003700010001002E02BA +:100370002D002502380001000100010001000100EC +:100380000100000001000100010001000100000067 +:100390000100010001000100010001000100010055 +:1003A000F2000100010001000100F000F100010075 +:1003B000F400010001000100F3000100F50001005C +:1003C0000100010001000100000001000100010026 +:1003D0000000010000000100010001000000010018 +:1003E0000000010001000100010001000000010007 +:1003F0000100010001000100A9000100010001004D +:100400000100AC00AA00B600010001000100AB0031 +:10041000A80001000100010001000100010001002D +:1004200001000100AE0001000100000016034500BC +:10043000720067006F0044006F00780020004500E4 +:100440005A00000016034500720067006F00440068 +:100450006F007800200045005A00000004030904E2 +:1004600009026D00040100A0FA0904000001030163 +:100470000100092111010001223F00070581030845 +:10048000000A090401000103010200092111010011 +:1004900001224D000705820308000A090402000139 +:1004A0000300000009211101000122360007058325 +:1004B0000308000A090403000103000000092111D8 +:1004C0000100012239000705840310000112011008 +:1004D0000100000008EDFE07130100010200010504 +:1004E000010906A101050719E029E7150025019575 +:1004F0000875018102050819012905950575019105 +:10050000029501750391010507190029771500254A +:1005100001957875018102C005010980A10185025C +:1005200016010026B7001A01002AB70075109501C0 +:100530008100C0050C0901A1018503160100269C5C +:10054000021A01002A9C02751095018100C0050164 +:100550000902A1010901A1000509190129051500D8 +:10056000250195057501810295017503810105013C +:10057000093009311581257F9502750881060938F2 +:100580001581257F950175088106050C0A3802152D +:1005900081257F950175088106C0C005010906A166 +:1005A00001050719E029E715002501950875018166 +:1005B0000295017508810105081901290595057540 +:1005C0000191029501750391010507190029FF1595 +:1005D0000025FF950675088100C00000000000009E +:1005E0000000000000010204060A0F17202C3A4AFE +:1005F0005D71879DB3C7DAE9F5FCFFFCF5E9DAC761 +:10060000B39D87715D4A3A2C20170F0A0604020138 +:100610000000000000000000000011241FBECFEF0A +:10062000DAE0DEBFCDBF04B603FE27C08091ED0146 +:100630009091EE01A091EF01B091F0018730904BC5 +:10064000A740B04BD1F41092ED011092EE01109240 +:10065000EF011092F00114BE84B7877F84BF0FB6FC +:10066000F894A89580916000886180936000109252 +:1006700060000FBEE0E0FFE3099511E0A0E0B1E00B +:10068000E4E0F7E402C005900D92A433B107D9F776 +:1006900021E0A4E3B1E001C01D92AD3EB207E1F755 +:1006A0000E94B2090C9480230C94000061110BC0CD +:1006B000FC018281882321F085EE0E94201003C076 +:1006C00085EE0E94E81080E090E008950895609122 +:1006D000B1017091B2018091B3019091B4010E9477 +:1006E000701A56985E9825982D9826982E982798D7 +:1006F0002F98813019F0823021F00895259A2D9A93 +:100700000895269A2E9A08950C94670356985E9839 +:1007100025982D9826982E9827982F988FEF90E05F +:10072000909389008093880090938B0080938A0037 +:1007300090938D0080938C00259A2D9A2FEF80E75F +:1007400092E0215080409040E1F700C00000269ADE +:100750002E9A2FEF80E792E0215080409040E1F701 +:1007600000C00000279A2F9A2FEF80E792E02150D7 +:1007700080409040E1F700C0000025982D982FEFB1 +:1007800080E792E0215080409040E1F700C00000F7 +:1007900026982E982FEF80E792E0215080409040DD +:1007A000E1F700C0000027982F9856985E9825988A +:1007B0002D9826982E9827982F98089589EA809347 +:1007C000800089E08093810024982C983F988AB11A +:1007D0008F748AB96E98479A8BB1806B8BB9769A71 +:1007E0000E9486030C94660380E28093000180914E +:1007F000340181110EC00E94430481E080933401D2 +:100800002FEF83ED90E3215080409040E1F700C04E +:10081000000080E40E9449048093000181112EC0F1 +:100820000E94730480930001811128C00E94730408 +:1008300080930001811122C08FE30E947304809392 +:10084000000181111BC00E946B0480E40E944904D6 +:1008500080930001811112C08CE00E947304809388 +:10086000000181110BC00E9473048093000181116B +:1008700005C08FE30E947304809300010E946B0403 +:100880008091000108951092B9008AE08093B80029 +:10089000089594EA9093BC009091BC0097FFFCCF20 +:1008A0009091B900987F983021F0903111F081E05B +:1008B00008958093BB0084E88093BC008091BC00C5 +:1008C00087FFFCCF8091B900887F883111F0803498 +:1008D00071F780E0089584E98093BC008091BC00AA +:1008E00084FDFCCF08958093BB0084E88093BC0016 +:1008F0008091BC0087FFFCCF9091B900987F81E088 +:10090000983209F480E0089584E88093BC008091D7 +:10091000BC0087FFFCCF8091BB000895809100014F +:10092000811115C080E40E94490480930001811167 +:100930000CC082E10E94730480930001811105C004 +:100940008FEF0E947304809300010E946B0484B1B6 +:10095000807F84B985B1807F85B98AB1837F8AB968 +:100960008BB1837F8BB93E98469808950E94F4031B +:10097000809300010E948E0480B38C7080BB81B391 +:10098000836F81BBE4E4F1E0A6E3B1E011921D9234 +:1009900081E0E235F807D1F70C94DE039F92AF9225 +:1009A000BF92CF92DF92EF92FF920F931F93CF935C +:1009B000DF9380910001882379F0809135018F5F6A +:1009C00080933501811108C00E94F40380930001D7 +:1009D000811102C00E94860386E3E82E81E0F82E92 +:1009E0008701C0E0D0E0BB24B39492E0A92ECC24D0 +:1009F000C394D12CC730D10500F58091000181113D +:100A000064C080E40E94490480930001811112C0F7 +:100A100082E10E9473048093000181110BC0C60122 +:100A20000C2E01C0880F0A94EAF780950E94730487 +:100A3000809300010E946B0448C0CA30A1F028F4E2 +:100A4000C83059F0C93061F005C0CC3089F070F081 +:100A5000CD3089F0209A289810C0219A29980DC08D +:100A6000229A2A980AC0239A2B9807C0529A01C04A +:100A7000539A5B9802C03E9A4698E0EAEA95F1F7ED +:100A80008FB181708B25799902C032E001C030E0CE +:100A9000832B7C9902C034E001C030E0832B7D9928 +:100AA00002C028E001C020E0822B7E9902C090E1C4 +:100AB00001C090E0892B9FB19095991F9927991FAC +:100AC0009295990F907E892B0FC080910001811122 +:100AD0004AC080E40E94490480930001882381F188 +:100AE000912C0E946B04892DD8019C91981719F0C4 +:100AF0008C93A09201010E948E0421960F5F1F4FDC +:100B0000CE30D10509F076CF80910101882369F1BB +:100B1000815080930101882339F0EFE9FFE031979C +:100B2000F1F700C0000021C0E4E4F1E0D7018D91AD +:100B30007D018193B4E4EB16B1E0FB06B9F715C073 +:100B400083E10E947304809300018111C9CF81E485 +:100B50000E944904809300018111C2CF0E94840445 +:100B6000982E9094BECF80E0BFCF0E94840381E096 +:100B7000DF91CF911F910F91FF90EF90DF90CF9079 +:100B8000BF90AF909F900895E82FF0E0EC5BFE4F90 +:100B90008081089508958B3B910580F4883A9105F2 +:100BA00048F5853A9105D8F48430910508F0B2C033 +:100BB000019709F06EC081E090E00895803E9105B4 +:100BC00008F467C0883E910508F4A4C09C01205F2A +:100BD00031092031310508F05CC090650895853AEF +:100BE000910509F459C0863A910509F058C082E888 +:100BF00090E40895883A910509F454C0893A910522 +:100C000009F453C08A3A910509F452C08B3A910510 +:100C100009F451C08C3A910509F450C08D3A910500 +:100C200009F44FC0803B910509F44EC08E3A9105FE +:100C300009F44DC08F3A910509F44CC0813B9105F0 +:100C400009F44BC0823B910509F44AC0833B9105EE +:100C500009F449C0843B910509F448C0853B9105DE +:100C600009F447C0863B910509F446C0873B9105CE +:100C700009F445C0883B910509F444C0893B9105BE +:100C800009F443C08A3B910509F442C080E094E432 +:100C9000089580E090E0089581E890E4089583E865 +:100CA00090E4089582EE94E4089589EE94E4089522 +:100CB0008AEE94E4089585EB94E4089586EB94E439 +:100CC000089587EB94E408958CEC94E408958DECFA +:100CD00094E4089583E895E408958AE895E40895F6 +:100CE00082E995E4089584E995E4089581E296E423 +:100CF000089583E296E4089584E296E4089585E2F7 +:100D000096E4089586E296E4089587E296E40895CD +:100D10008AE296E40895089524E5829FC001112493 +:100D2000FC0126E0729FE00DF11D1124E60FF11D7C +:100D3000EE0FFF1FEC51FF4F859194910895880F9E +:100D4000991FFC01E05AF040859194910895880F15 +:100D5000991FFC01E052FF4F85919491089524E57D +:100D6000829FC0011124FC0146E0749FE00DF11D3B +:100D70001124E60FF11DEE0FFF1FEC51FF4F85917F +:100D800094919C013A9521154FE1340708F425C14F +:100D90003F512115304120F49F700E94A70608950D +:100DA0009C0130532115304118F49927906C089517 +:100DB000811520E5920769F40E9461144FEF84E3E6 +:100DC0009CE0415080409040E1F700C000000C944E +:100DD000681B813020E5920731F48091CC0181605D +:100DE0008093CC0108959C0130552115304108F0C5 +:100DF0005CC0292F33272F70332721303105E9F4C8 +:100E0000AC0164E0440F551F6A95E1F74427537025 +:100E1000BC016370772702C0220F331F6A95E2F787 +:100E20003C68242B352B73E0880F991F7A95E1F7E6 +:100E300080769927822B932B08952230310529F44F +:100E4000982F8827816F906A089523303105A1F487 +:100E5000AC0133E0440F551F3A95E1F7407E5770DF +:100E60008370992721E030E002C0220F331F8A955A +:100E7000E2F7C9019C6816C02430310531F5AC0198 +:100E800023E0440F551F2A95E1F7407E5770837089 +:100E9000992721E030E002C0220F331F8A95E2F744 +:100EA000C9019A68842B952B08959C013057211510 +:100EB000304118F49F70906208959C0130582115BC +:100EC000304118F49F70906A0895803E9105E0F4D7 +:100ED000803C910558F58133910509F46FC048F4C1 +:100EE0008932910509F463C08A32910509F46DC015 +:100EF00072C089339105E9F082389105D1F08533CC +:100F0000910509F44DC067C0833E910581F138F425 +:100F1000803E9105B9F0823E9105D9F05CC0863ED5 +:100F2000910561F1873E9105A1F155C00E949F0690 +:100F300008952091DE0120FD02C021FF4CC080EE0B +:100F400090E049C08091DE0180FFF9CF89E390E015 +:100F500042C08091DE0182FF0EC08091DE0184FFDD +:100F600003C080E090E037C083EE90E034C0809111 +:100F7000DE0182FFF2CF82EE90E02DC08091DE0193 +:100F800083FF0BC08091DE0184FDEBCF87EE90E004 +:100F900022C08091DE0183FFF5CF86EE90E01BC07A +:100FA0008091DE0185FF07C089E290E014C0809146 +:100FB000DE0185FFF9CF85E390E00DC08091DE0171 +:100FC00086FF07C08AE290E006C08091DE0186FFBE +:100FD000F9CF81E390E00E94CB05089508958091B8 +:100FE00062010895CF93DF9300D01F92CDB7DEB793 +:100FF0009C018091E401843019F593E099833B834F +:101000002A839093E9008FEF9091E800815095FD3D +:1010100006C095ED9A95F1F700008111F5CF80910A +:10102000E80085FF0DC040E050E063E070E0CE01D5 +:1010300001960E945F0A8091E8008E778093E80015 +:101040000F900F900F90DF91CF910895CF93DF9382 +:1010500000D01F92CDB7DEB72091E401243021F5F6 +:1010600022E029839B838A8383E08093E9008FEFCA +:101070009091E800815095FD06C095ED9A95F1F7A5 +:1010800000008111F5CF8091E80085FF0DC040E0A0 +:1010900050E063E070E0CE0101960E945F0A80910B +:1010A000E8008E778093E8000F900F900F90DF910B +:1010B000CF9108959C018091E4018430F9F482E09D +:1010C0008093E9009FEF8091E800915085FD06C074 +:1010D00085ED8A95F1F700009111F5CF8091E80038 +:1010E00085FF0CC040E050E065E070E0C9010E945F +:1010F0005F0A8091E8008E778093E8000895CF938F +:10110000DF93EC018091E401843009F046C09091B6 +:101110000C019923D9F090910D019923B9F0809396 +:10112000E9008FEF9091E800815095FD06C095E1B0 +:101130009A95F1F700008111F5CF8091E80085FFC5 +:101140002CC040E050E060E170E017C081E0809387 +:10115000E9008FEF9091E800815095FD06C095ED74 +:101160009A95F1F700008111F5CF8091E80085FF95 +:1011700014C040E050E068E070E0CE010E945F0AD9 +:101180008091E8008E778093E80080E1FE01A2E57F +:10119000B1E001900D928A95E1F7DF91CF9108952A +:1011A0008091E301811109C00E94F00B0E944D0C57 +:1011B0008091E20084608093E20008951092E30140 +:1011C000089508950C949E210E94FE1A0E94A42165 +:1011D0000E94F80E0C94EE0742E061EC81E00E9460 +:1011E000690B42E061EC82E00E94690B42E061EC35 +:1011F00083E00E94690B42E161EC84E00C94690B8E +:101200008091E601833009F455C030F4813071F0EB +:10121000823009F48EC008958A3009F47AC08B3088 +:1012200009F460C0893009F09CC020C08091E501BC +:10123000813A09F096C08091E800877F8093E800AA +:101240008091E9019091EA01892B21F460E182E526 +:1012500091E003C060E080E090E070E00E94AA0AA4 +:101260008091E8008B778093E80008958091E501F4 +:10127000813209F076C08091E9019091EA010097EE +:1012800019F0039709F06DC08091E800877F809383 +:10129000E8008091E80082FD05C08091E4018111A1 +:1012A000F8CF5FC08091F100809362018091E800E7 +:1012B0008B7753C08091E501813A09F052C080914B +:1012C000E9019091EA01892B09F04BC08091E80077 +:1012D000877F8093E8008091E80080FFFCCF8091B9 +:1012E0000C0136C08091E5018132D9F58091E90188 +:1012F0009091EA01892BA9F58091E800877F80937E +:10130000E8000E949E0B8091E70180930C010C94F1 +:1013100061148091E501813221F58091E800877F99 +:101320008093E8000E949E0B8091E8018093630106 +:1013300008958091E501813AA1F48091E800877FCA +:101340008093E8008091E80080FFFCCF80916301EA +:101350008093F1008091E8008E778093E8000C94F0 +:101360009E0B089584B7877F84BF0FB6F894A89525 +:1013700080916000886180936000109260000FBED1 +:1013800090E080E80FB6F89480936100909361003C +:101390000FBE0E94470F0E94F00B0E944D0C8091DF +:1013A000E20084608093E20078940E94D80E0E944C +:1013B000490F82E091E00E94F30E0E948C218091FF +:1013C000E401853069F40E94C01A8091E20188230B +:1013D000B1F30E94EA1A882391F30E94490AEFCFE1 +:1013E0000E944F0FECCF292F332723303105C9F04E +:1013F00060F42130310581F02230310509F041C01F +:101400008DE690E020E634E040C021323105E1F085 +:101410002232310531F135C082E190E02DEC34E02B +:1014200034C099278130910549F028F0029749F599 +:10143000ECE2F4E005C0ECE5F4E002C0E4E4F4E042 +:10144000849190E09F0121C06430D8F4E62FF0E051 +:10145000EE0FFF1FEE5DFE4F2081318189E090E0AD +:1014600014C0643070F470E0FB01EE0FFF1FE65E05 +:10147000FE4F20813181FB01EA5EFE4F808190E0CA +:1014800004C080E090E020E030E0FA013183208366 +:10149000089580E189BD82E189BD09B400FEFDCFD8 +:1014A0008091D8008F7D8093D8008091E000826089 +:1014B0008093E0008091E00081FDFCCF0895CF9201 +:1014C000DF92EF92FF920F931F93CF93DF93EC0184 +:1014D0008B016A010E94BD0B811133C0C114D1047C +:1014E00039F0F60180819181081B190BC80FD91FB3 +:1014F000E12CF12C0115110519F18091E80085FD11 +:1015000016C08091E8008E778093E800C114D10462 +:1015100049F0F60180819181E80EF91EF182E082A6 +:1015200085E00FC00E94BD0B882321F30AC089917A +:101530008093F10001501109FFEFEF1AFF0ADACF93 +:1015400080E0DF91CF911F910F91FF90EF90DF909E +:10155000CF9008952091EB013091EC0126173707C9 +:1015600048F06115710539F42091E8002E77209339 +:10157000E80001C0B901FC0120E06115710579F1B5 +:101580008091E4018823F1F18530F1F18091E80048 +:1015900083FD3CC08091E80082FD2EC08091E80070 +:1015A00080FFEBCF2091F3008091F20090E0922B2E +:1015B0006115710551F08830910538F4219120931F +:1015C000F100615071090196F3CF21E0089709F00D +:1015D00020E08091E8008E778093E800CECF211143 +:1015E000CFCF0AC08091E401882361F0853061F09B +:1015F0008091E80083FD0AC08091E80082FFF2CF6D +:1016000080E0089582E0089583E0089581E00895E0 +:101610002091EB013091EC012617370748F0611556 +:10162000710539F42091E8002E772093E80001C07D +:10163000B901FC0120E06115710591F18091E4018F +:10164000882309F440C0853009F43FC08091E80048 +:1016500083FD3DC08091E80082FD2FC08091E800AD +:1016600080FFE9CF2091F3008091F20090E0922B6F +:101670006115710559F08830910540F4249120934B +:10168000F1003196615071090196F2CF21E008977F +:1016900009F020E08091E8008E778093E800CBCFBE +:1016A0002111CCCF0AC08091E401882361F08530FC +:1016B00061F08091E80083FD0AC08091E80082FF1C +:1016C000F2CF80E0089582E0089583E0089581E0FC +:1016D0000895982F973068F59093E900981739F09E +:1016E0007091EC002091ED005091F00003C0242F88 +:1016F000762F50E021FD02C09F5FECCF3091EB00D0 +:101700003E7F3093EB003091ED003D7F3093ED0054 +:101710003091EB0031603093EB007093EC0020933C +:10172000ED005093F0002091EE0027FDE5CF80E022 +:1017300008958F708093E90081E008958091E5011C +:1017400087FF11C08091E80082FD05C08091E4010F +:101750008111F8CF11C08091E8008B770BC0809188 +:10176000E401882349F08091E80080FFF8CF809160 +:10177000E8008E778093E80008952091E40030918E +:10178000E50095E64091EC00842F817040FF23C076 +:101790008091E80080FD1DC08091E401882399F0CC +:1017A000853099F08091EB0085FD11C04091E400F7 +:1017B0005091E5002417350729F3915011F09A0153 +:1017C000E1CF84E0089582E0089583E0089581E008 +:1017D000089580E008954091E80042FFDDCF08952C +:1017E0000E945E0C0E94660CE0EEF0E08081816059 +:1017F0008083E8EDF0E080818F77808319BCA7EDCE +:10180000B0E08C918E7F8C9380818F7E808310924C +:10181000E30108950F931F93CF93DF930E945E0C13 +:101820000E94660CC8EDD0E088818F77888388811C +:101830008068888388818F7D888319BC1092E40139 +:101840001092E0011092E2011092E10100EE10E02E +:10185000F80180818B7F808388818160888342E06A +:1018600060E080E00E94690BE1EEF0E080818E7F15 +:101870008083E2EEF0E080818160808380818860F7 +:101880008083F80180818E7F808388818061888356 +:10189000DF91CF911F910F910895E8EDF0E08081E5 +:1018A0008F7E8083E7EDF0E080818160808384E03B +:1018B00082BF81E08093E3010C940A0CE8EDF0E034 +:1018C00080818E7F80831092E20008951092DA006A +:1018D0001092E10008951F920F920FB60F921124FB +:1018E0002F933F934F935F936F937F938F939F9328 +:1018F000AF93BF93EF93FF938091E10082FF0BC002 +:101900008091E20082FF07C08091E1008B7F80938D +:10191000E1000E94D70E8091DA0080FF1FC0809105 +:10192000D80080FF1BC08091DA008E7F8093DA00A0 +:101930008091D90080FF0DC080E189BD82E189BD21 +:1019400009B400FEFDCF81E08093E4010E94D0083D +:1019500005C019BC1092E4010E94DE088091E100EC +:1019600080FF19C08091E20080FF15C08091E200E5 +:101970008E7F8093E2008091E20080618093E2009C +:101980008091D80080628093D80019BC85E0809354 +:10199000E4010E94E2088091E10084FF30C0809160 +:1019A000E20084FF2CC080E189BD82E189BD09B4D9 +:1019B00000FEFDCF8091D8008F7D8093D80080916C +:1019C000E1008F7E8093E1008091E2008F7E809322 +:1019D000E2008091E20081608093E2008091E0016A +:1019E000882311F084E007C08091E30087FD02C0E6 +:1019F00081E001C083E08093E4010E94E4088091CB +:101A0000E10083FF29C08091E20083FF25C080911F +:101A1000E100877F8093E10082E08093E4011092EF +:101A2000E0018091E1008E7F8093E1008091E200EF +:101A30008E7F8093E2008091E20080618093E200DB +:101A400042E060E080E00E94690B8091F0008860D5 +:101A50008093F0000E94E108FF91EF91BF91AF9158 +:101A60009F918F917F916F915F914F913F912F91B6 +:101A70000F900FBE0F901F9018951F920F920FB6E8 +:101A80000F9211242F933F934F935F936F937F9304 +:101A90008F939F93AF93BF93CF93DF93EF93FF9376 +:101AA000C091E900CF708091EC00D82FD17080FDFB +:101AB000D0E81092E9008091F000877F8093F000D9 +:101AC00078940E94810D1092E9008091F000886066 +:101AD0008093F000CD2BCF70C093E900FF91EF9180 +:101AE000DF91CF91BF91AF919F918F917F916F9136 +:101AF0005F914F913F912F910F900FBE0F901F90CC +:101B000018951F93CF93DF93CDB7DEB7AA970FB683 +:101B1000F894DEBF0FBECDBFE5EEF1E08091F1009D +:101B2000819321E0ED3EF207C9F70E940009809100 +:101B3000E80083FF24C18091E5019091E601492FDF +:101B400050E04A30510508F01AC1FA01EA5AFF4F35 +:101B50000C943523803881F0823809F010C18091CF +:101B6000E9018F708093E9008091EB0085FB882765 +:101B700080F91092E90006C08091E1019091E201A4 +:101B8000911182609091E800977F9093E800809394 +:101B9000F1001092F100C8C0282F2D7F09F0EFC08E +:101BA000882319F0823061F0EAC08091E70181302A +:101BB00009F0E5C0933009F080E08093E2012BC08A +:101BC0008091E701811127C08091E9018F7009F4AC +:101BD000D6C08093E9002091EB0020FF1CC0933019 +:101BE00021F48091EB00806214C09091EB00906131 +:101BF0009093EB0021E030E0A90102C0440F551F93 +:101C00008A95E2F74093EA001092EA008091EB0097 +:101C100088608093EB001092E9008091E800877F54 +:101C200086C08111ACC01091E7011F778091E3005D +:101C30008078812B8093E3008091E800877F8093F8 +:101C4000E8000E949E0B8091E80080FFFCCF80910D +:101C5000E30080688093E300111102C082E001C0BC +:101C600083E08093E4018BC08058823008F087C005 +:101C70008091E7019091E8018C3D53E0950779F55B +:101C800083E08A838AE289834FB7F894DE01139652 +:101C900020E03EE051E2E32FF0E050935700E49162 +:101CA00020FF03C0E295EF703F5FEF708E2F90E052 +:101CB000EA3010F0C79601C0C0968D939D932F5FB8 +:101CC000243149F74FBF8091E800877F8093E80077 +:101CD0006AE270E0CE0101960E94AA0A14C0AE0129 +:101CE0004F5F5F4F6091E9010E94F309BC01892BAE +:101CF00009F445C09091E800977F9093E8008981AE +:101D00009A810E94080B8091E8008B778093E8000D +:101D100036C08038A1F58091E800877F8093E80085 +:101D20008091E0018093F1008091E8008E778093AC +:101D3000E8000E949E0B23C0811121C08091E70121 +:101D40009091E80199270297D4F48091E800877F69 +:101D50008093E8008091E7018093E0010E949E0B50 +:101D60008091E001811106C08091E30087FD02C0EF +:101D700081E001C084E08093E4010E94EC0880913E +:101D8000E80083FF0AC08091E800877F8093E80025 +:101D90008091EB0080628093EB00AA960FB6F894D6 +:101DA000DEBF0FBECDBFDF91CF911F910895089583 +:101DB000CF938091E4018823A1F0C091E900CF7016 +:101DC0009091EC00892F817090FD80E8C82B1092D3 +:101DD000E9008091E80083FD0E94810DCF70C093DF +:101DE000E900CF9108959093690180936801089567 +:101DF000E0916801F0916901309721F00190F08144 +:101E0000E02D099480E00895E0916801F091690166 +:101E1000309721F00280F381E02D09940895E0913C +:101E20006801F0916901309721F00480F581E02D7F +:101E300009940895209166013091670128173907A8 +:101E400071F09093670180936601E0916801F091D1 +:101E50006901309721F00680F781E02D09940895FB +:101E600020916401309165012817390771F0909332 +:101E7000650180936401E0916801F09169013097F8 +:101E800021F00084F185E02D0994089508950C94C3 +:101E9000460F0E94041B0E94B6040C94CA1BCF92EA +:101EA000DF92EF92FF920F931F93CF93DF93CDB703 +:101EB000DEB72B970FB6F894DEBF0FBECDBF0E94E2 +:101EC000CE048BE6C82E81E0D82E00E010E0E02E94 +:101ED000802F0E94C405F60141916F01F82EF4266F +:101EE000B1F40F5F1F4F0E30110589F78FEF898313 +:101EF0008A831B820E940D1B8160782F9D838C83B7 +:101F000049815A816B818D810E94F20F40C090916E +:101F1000CC0191FF04C08B870E94CA058B8520E00D +:101F200030E04F2D50E0922FBA01022E02C075957D +:101F300067950A94E2F760FF24C02E83EF8221E0C8 +:101F400030E0690102C0CC0CDD1C9A95E2F790E00C +:101F50008C219D21892B09F420E028870E940D1BEC +:101F60008160782F9A8789874E815F8168858A850D +:101F70000E94F20FF801E559FE4F8081C826C08209 +:101F800006C02F5F3F4F2630310569F6AACF0E9469 +:101F9000B11E0E94F80E90916A018917A1F00E946B +:101FA000F80E80936A012B960FB6F894DEBF0FBE31 +:101FB000CDBFDF91CF911F910F91FF90EF90DF90F8 +:101FC000CF900C94EE072B960FB6F894DEBF0FBEA1 +:101FD000CDBFDF91CF911F910F91FF90EF90DF90D8 +:101FE000CF900895CF93DF93CDB7DEB72B970FB681 +:101FF000F894DEBF0FBECDBF4F83588769877A87BD +:102000008B87DE01119686E0FD0111928A95E9F732 +:1020100085E0FE01379601900D928A95E1F749819E +:102020005A816B817C818D819E810E94F5162B9651 +:102030000FB6F894DEBF0FBECDBFDF91CF910895EC +:10204000CF93C82F882309F4C1C0823859F40E9465 +:10205000F80E81FDBBC089E30E9492190E944A1AC2 +:1020600089E30CC0833879F40E94F80E80FDAEC07D +:1020700083E50E9492190E944A1A83E50E94D119B1 +:10208000CF910C944A1A843859F40E94F80E82FDBC +:102090009DC087E40E9492190E944A1A87E4EECFFD +:1020A0008CEF8C0F813A48F48C2F0E94F120811123 +:1020B0008DC08C2F0E949219E3CF80E28C0F883064 +:1020C00048F4C77081E001C0880FCA95EAF70E9402 +:1020D000131AD6CF8BE58C0F833078F4C53A29F0EC +:1020E000C63A31F083E890E005C081E890E002C094 +:1020F00082E890E0CF910C941A0F88E58C0F833121 +:1021000008F064C0C83A39F1C93A41F1CA3A49F114 +:10211000CB3A51F1CC3A59F1CD3A61F1C03B69F17A +:10212000CE3A71F1CF3A79F1C13B81F1C23B89F1ED +:10213000C33B91F1C43B99F1C53BA1F1C63BA9F169 +:10214000C73BB1F1C83BB9F1C93BC1F1CA3BC9F1C9 +:1021500080E090E038C082EE90E035C089EE90E0FB +:1021600032C08AEE90E02FC085EB90E02CC086EB69 +:1021700090E029C087EB90E026C08CEC90E023C073 +:102180008DEC90E020C083E891E01DC08AE891E0EA +:102190001AC082E991E017C084E991E014C081E29D +:1021A00092E011C083E292E00EC084E292E00BC0A4 +:1021B00085E292E008C086E292E005C087E292E004 +:1021C00002C08AE292E0CF910C94300FCF91089533 +:1021D000882309F44BC0823859F40E94F80E81FF1D +:1021E00045C089E30E9492190E944A1A89E30CC0F3 +:1021F000833871F40E94F80E80FF38C083E50E9496 +:1022000092190E944A1A83E50E94D1190C944A1A25 +:10221000843859F40E94F80E82FF28C087E40E9497 +:1022200092190E944A1A87E4EFCF9CEF980F913AD7 +:1022300058F390E2980F983050F4877091E001C005 +:10224000990F8A95EAF7892F0E94191ADFCF9BE52B +:10225000980F933020F480E090E00C941A0F885A85 +:10226000833120F480E090E00C94300F08958823AF +:1022700021F00E94131A0C944A1A0895882321F021 +:102280000E94191A0C944A1A0895BF92CF92DF92B5 +:10229000EF92FF920F931F93CF93DF9300D000D064 +:1022A00000D0CDB7DEB77C0185E0F701DE011196E5 +:1022B00001900D928A95E1F7F70183819481892B32 +:1022C00009F4DDC2908181818F3F19F49F3F09F4A9 +:1022D000D6C2F7010281258122952F7099838A83C6 +:1022E00089819A812E830E945119182FB92E0E943C +:1022F00050190E941718EB2DE295EF704E2F50E009 +:10230000FA01E05AFF4F2E810C9435238B2D807FEC +:102310009B2D9F70F92E882319F0F29480EFF822FC +:10232000002349F0FF2009F457C28F2D0E94231A81 +:102330000E944A1A51C2812F0E94E810FF2009F41E +:102340009EC28F2D0E94291A26960FB6F894DEBFE2 +:102350000FBECDBFDF91CF911F910F91FF90EF90F6 +:10236000DF90CF90BF900C944A1A3B2D307F8B2D7D +:102370008F70303211F08295807F112319F0113067 +:1023800021F12CC00023B9F0222309F490C121309F +:1023900009F08DC126960FB6F894DEBF0FBECDBFF3 +:1023A000DF91CF911F910F91FF90EF90DF90CF9031 +:1023B000BF900C94331A222319F0213009F45FC224 +:1023C0008E830E94361A8E8186C1002321F022302E +:1023D00008F055C26CC1211152C27DC1002321F009 +:1023E000222309F464C1F8C1222309F474C109C28B +:1023F0008B2D86958695837019F08130D1F03FC280 +:10240000002321F0812F9B2D937002C080E090E08B +:1024100026960FB6F894DEBF0FBECDBFDF91CF91E9 +:102420001F910F91FF90EF90DF90CF90BF900C9491 +:102430001A0F002321F0812F9B2D937002C080E0A2 +:1024400090E026960FB6F894DEBF0FBECDBFDF91A9 +:10245000CF911F910F91FF90EF90DF90CF90BF90A1 +:102460000C94300F812F002319F00E94B91D02C077 +:102470000E94211E26960FB6F894DEBF0FBECDBF78 +:10248000DF91CF911F910F91FF90EF90DF90CF9050 +:10249000BF900C94A61E8B2D837009F075C001119E +:1024A000EEC1812F829586958770880F880F912FB6 +:1024B0009F70C92ED12CE12CF12C082E04C0CC0C1D +:1024C000DD1CEE1CFF1C0A94D2F714FF12C00FE0B3 +:1024D00010E020E030E004C0000F111F221F331F66 +:1024E0008A95D2F7C901B80160957095809590954D +:1024F00003C060E070E0CB014B2D469546954370DC +:102500004230C1F060F56C297D298E299F29413028 +:1025100051F126960FB6F894DEBF0FBECDBFDF9106 +:10252000CF911F910F91FF90EF90DF90CF90BF90D0 +:102530000C943E186C297D298E299F2926960FB66A +:10254000F894DEBF0FBECDBFDF91CF911F910F91E9 +:10255000FF90EF90DF90CF90BF900C945A180E949C +:102560003E18C701B60126960FB6F894DEBF0FBE1F +:10257000CDBFDF91CF911F910F91FF90EF90DF9032 +:10258000CF90BF900C942218002319F08B2D8170EE +:1025900001C08695882309F472C1812F82958695A2 +:1025A0008770880F880F912F9F70C92ED12CE12C36 +:1025B000F12C082E04C0CC0CDD1CEE1CFF1C0A9470 +:1025C000D2F714FF12C00FE010E020E030E004C0AA +:1025D000000F111F221F331F8A95D2F7C901B801BE +:1025E000609570958095909503C060E070E0CB0198 +:1025F0004B2D4695469543704230C1F060F56C29ED +:102600007D298E299F29413051F126960FB6F894E5 +:10261000DEBF0FBECDBFDF91CF911F910F91FF9015 +:10262000EF90DF90CF90BF900C9418196C297D2902 +:102630008E299F2926960FB6F894DEBF0FBECDBF18 +:10264000DF91CF911F910F91FF90EF90DF90CF908E +:10265000BF900C9434190E941819C701B601269630 +:102660000FB6F894DEBF0FBECDBFDF91CF911F91A3 +:102670000F91FF90EF90DF90CF90BF900C94FC18DB +:10268000103FD1F118F4103E50F4A1C0123F09F4EC +:1026900063C008F44CC0133F09F473C098C01F70A6 +:1026A0008B2D8F710023A1F00E949518812F269603 +:1026B0000FB6F894DEBF0FBECDBFDF91CF911F9153 +:1026C0000F91FF90EF90DF90CF90BF900C94371157 +:1026D0000E94B618812F26960FB6F894DEBF0FBE63 +:1026E000CDBFDF91CF911F910F91FF90EF90DF90C1 +:1026F000CF90BF900C943E110023A9F02111BFC0D0 +:102700008B2D8F7126960FB6F894DEBF0FBECDBF0E +:10271000DF91CF911F910F91FF90EF90DF90CF90BD +:10272000BF900C94DB18223008F0A9C0E9CF002339 +:10273000A9F08B2D8F7126960FB6F894DEBF0FBED1 +:10274000CDBFDF91CF911F910F91FF90EF90DF9060 +:10275000CF90BF900C949518002359F38B2D8F7157 +:1027600026960FB6F894DEBF0FBECDBFDF91CF9196 +:102770001F910F91FF90EF90DF90CF90BF900C943E +:10278000B618002399F08B2D8F7126960FB6F8940A +:10279000DEBF0FBECDBFDF91CF911F910F91FF9094 +:1027A000EF90DF90CF90BF900C94801826960FB6D4 +:1027B000F894DEBF0FBECDBFDF91CF911F910F9177 +:1027C000FF90EF90DF90CF90BF900C94761800238D +:1027D000A9F0222309F4ADCF812F26960FB6F894E5 +:1027E000DEBF0FBECDBFDF91CF911F910F91FF9044 +:1027F000EF90DF90CF90BF900C942010222309F42B +:10280000ADCF812F26960FB6F894DEBF0FBECDBF99 +:10281000DF91CF911F910F91FF90EF90DF90CF90BC +:10282000BF900C94E8104B2D4F70612FC7010E9490 +:10283000560326960FB6F894DEBF0FBECDBFDF91CC +:10284000CF911F910F91FF90EF90DF90CF90BF90AD +:102850000C949A174B2D4F70612FC70126960FB617 +:10286000F894DEBF0FBECDBFDF91CF911F910F91C6 +:10287000FF90EF90DF90CF90BF900C948B06269640 +:102880000FB6F894DEBF0FBECDBFDF91CF911F9181 +:102890000F91FF90EF90DF90CF90BF9008950E942E +:1028A000301A0E94051A0E944A1A0E94561F0E945E +:1028B000A61E80E090E00E941A0F80E090E00C9449 +:1028C000300F0E94201A0C944F140E945119292F86 +:1028D00022952F702C3030F42A3048F422502230C8 +:1028E00078F405C02C3041F02F3031F009C0803E23 +:1028F00048F0803F29F406C093FB882780F90895AB +:1029000080E0089581E00895CF93DF9300D000D058 +:102910001F92CDB7DEB70F900F900F900F900F90D2 +:10292000DF91CF910895CF93DF9300D000D000D0F6 +:10293000CDB7DEB726960FB6F894DEBF0FBECDBF7B +:10294000DF91CF9108951F93CF93DF93C0917901C9 +:1029500016E080917A01C81799F0D0E01C9FF00131 +:102960001D9FF00D1124E558FE4F40815181628179 +:102970007381848195810E9493142196C770E9CF59 +:10298000DF91CF911F9108954091AB015091AC011F +:102990006091AD017091AE018091AF019091B00155 +:1029A0000C9493148091B00182958F7009F054C0FB +:1029B0008091AD01882309F44FC080917901A091E5 +:1029C0007A014091AE015091AF016091AB017091DD +:1029D000AC01B6E08A1709F43FC090E041155105FB +:1029E000C1F17F3F11F46F3FA1F1B89FF001B99F92 +:1029F000F00D1124E558FE4F218127132AC02081B4 +:102A0000261327C02281211124C023813481241759 +:102A1000350710F421503109241B350B283C3105B2 +:102A2000C0F42091B0012F7020612093B00126E006 +:102A3000289FF001299FF00D1124E058FE4F80815E +:102A40008F70806180838BEA91E00E9445110C9425 +:102A5000A31401968770BECF0895CF92DF92EF92B4 +:102A6000FF920F931F93CF93DF93CDB7DEB762979B +:102A70000FB6F894DEBF0FBECDBF8C0185E0F80124 +:102A8000DE011D9601900D928A95E1F7D8014C91D7 +:102A900011965C91119712966C918091AE01909174 +:102AA000AF01009709F475C13091AB017091AC0191 +:102AB0007F3F19F43F3F09F46CC1F801C380D48013 +:102AC000E090AD01EE2009F4BEC02091B001C8161F +:102AD000D90628F0D601A81BB90BCD0104C08095FA +:102AE00090958C0D9D1DFF24F394883C910578F002 +:102AF000F12C207F09F0C4C07C2DD98AC88A89892D +:102B00000E9484148BEA91E00E944511AFC0822F8D +:102B1000807F09F045C0571313C0431311C06111E2 +:102B20000FC02F7020612093B0010E94C4148BEA63 +:102B300091E00E9445118091B001F80185832EC07B +:102B4000CD2819F15F3F11F44F3FF9F0F62E6111D6 +:102B50001CC08091790120917A0136E0821709F436 +:102B60005BC090E0389FF001399FF00D1124E558CB +:102B7000FE4F7181571306C07081471303C07281E5 +:102B8000711103C001968770E9CFF62E662309F410 +:102B90001CC18091B00181608093B001F12C15C1FE +:102BA000571309C0431307C0611105C08091B001DC +:102BB000F8018583C8C04D875E878D859E856A8BA9 +:102BC0000E9465146A898823D1F16623C1F120919E +:102BD000B001822F82958F7090E0029774F08091FF +:102BE000AB019091AC0198878F831986DB86CA86EA +:102BF0002C87CE0107960E94451186E0F801ABEACA +:102C0000B1E001900D928A95E1F70E94D2140E94E2 +:102C1000C414FF24F394D9C04D875E878D859E85AB +:102C20000E945119292F22952F70223008F0C1C01F +:102C30009F7009F0BBC0805E883008F4C6C0C80130 +:102C40000E944511E6CFC816D90608F453C0F60114 +:102C5000E81BF90BCF01883C910508F450C0F12C1A +:102C60007C2DD98AC88A89890E948414EBEAF1E014 +:102C700086E0DF011D928A95E9F70E94C414A5C081 +:102C8000571314C0431312C0611110C08091B001DA +:102C9000F8018583C8010E94451186E0EBEAF1E066 +:102CA000DF011D928A95E9F7FE2C8FC04D875E8764 +:102CB0008D859E856A8B0E9465146A89882309F434 +:102CC000BECF662309F4BBCF2091B001822F82953D +:102CD0008F7090E002970CF490CF8091AB019091AF +:102CE000AC019A8389831B82DD82CC822E83CE0144 +:102CF000019681CF809590958C0D9D1DACCFF62EC1 +:102D0000662309F49CCF571333C0431331C020917D +:102D1000B00120FD24C0822F82958F70482F50E093 +:102D200041155105E1F0D80115962C9315974F30B8 +:102D3000510549F08F5F982F9295907F822F8F7069 +:102D4000892B15968C93C8010E94451186E0F801E5 +:102D5000ABEAB1E001900D928A95E1F78ECF86E063 +:102D6000F801ABEAB1E001900D928A95E1F72DC030 +:102D70004D875E878D859E850E94651481113DCFAC +:102D80008091B00181608093B001C8010E9445111B +:102D90001CC0662309F453CF4D875E878D859E85C1 +:102DA0000E946514882309F44ACF27CF811143CFAD +:102DB0000CC0243008F043CF9F7009F43CCFD801F9 +:102DC00015969C91907F09F036CF8F2D62960FB6A5 +:102DD000F894DEBF0FBECDBFDF91CF911F910F9151 +:102DE000FF90EF90DF90CF9008951F93CF93DF93E4 +:102DF000CDB7DEB72C970FB6F894DEBF0FBECDBFB0 +:102E00004F83588769877A878B879C87CE0107967F +:102E10000E942D15882371F08A859B85892B09F4E2 +:102E200041C088858F3F09F065C08F818F3F09F0D1 +:102E300061C038C086E0FE013796DE011196019030 +:102E40000D928A95E1F76A857B856115710551F1CF +:102E5000FF81E885EF3F11F4FF3F21F120917A01D6 +:102E600030E0C9010196877099274091790150E0BF +:102E70008417950709F447C0F983EA837D836C833F +:102E800096E0929FD001939FB00D1124A558BE4F9C +:102E9000FE01319601900D929A95E1F780937A01A7 +:102EA0000E94A31416E08091790190917A0189170C +:102EB000B9F1189FC001112485589E4F0E942D150D +:102EC000882371F1E09179011E9FF0011124E558EA +:102ED000FE4F4081518162817381848195810E947E +:102EE00093148091790190E00196877099278093DF +:102EF0007901D9CF4F81588569857A858B859C85E5 +:102F00000E949314CFCF0E94611410927A01109204 +:102F10007901EBEAF1E086E0DF011D928A95E9F79D +:102F20002C960FB6F894DEBF0FBECDBFDF91CF91C8 +:102F30001F910895EF92FF920F931F93CF93DF930A +:102F40008C01892B09F46CC0F12CEE24E394E80188 +:102F50002196F8018491843740F4843008F051C000 +:102F6000813081F0823019F15BC0853709F444C0AB +:102F7000A8F19CE7980F903708F052C08F770E9415 +:102F8000E81041C00E5F1F4FFE01849190E2980F40 +:102F9000983050F48770FE2D01C0FF0F8A95EAF734 +:102FA0008F2F0E94231A14C00E9420102DC00E5F84 +:102FB0001F4FFE01849190E2980F983060F4877063 +:102FC000FE2D01C0FF0F8A95EAF78F2F0E94291A64 +:102FD0000E944A1A19C00E94E81016C00E5F1F4FC7 +:102FE000FE01C491CC2381F08FE99FE00197F1F7B6 +:102FF00000C00000C150F6CF0E5F1F4FFE01F490DD +:1030000003C00E9420108E018F2D882309F49FCFCA +:10301000EFE9FFE03197F1F700C000008150F5CFF4 +:10302000DF91CF911F910F91FF90EF900895089538 +:103030006093B5017093B6018093B7019093B80186 +:103040000C944F140F931F930091B5011091B6018A +:103050002091B7013091B801DC01CB01802B912B7D +:10306000A22BB32B8093B5019093B601A093B70127 +:10307000B093B8011F910F910C944F140F931F93AD +:103080000091B5011091B6012091B7013091B801BE +:10309000DC01CB0180239123A223B3238093B501CC +:1030A0009093B601A093B701B093B8011F910F910F +:1030B0000C944F140F931F930091B5011091B6011A +:1030C0002091B7013091B801DC01CB018027912715 +:1030D000A227B3278093B5019093B601A093B701BF +:1030E000B093B8011F910F910C944F141092B1013D +:1030F0001092B2011092B3011092B4010C944F14CB +:1031000041E050E060E070E004C0440F551F661FCE +:10311000771F8A95D2F74093B1015093B201609323 +:10312000B3017093B4010C944F1441E050E060E09F +:1031300070E004C0440F551F661F771F8A95D2F7B1 +:103140008091B1019091B201A091B301B091B4010D +:10315000482B592B6A2B7B2B4093B1015093B20122 +:103160006093B3017093B4010C944F1441E050E0AC +:1031700060E070E004C0440F551F661F771F8A95FA +:10318000D2F740955095609570958091B1019091DE +:10319000B201A091B301B091B401482359236A232D +:1031A0007B234093B1015093B2016093B3017093BC +:1031B000B4010C944F1441E050E060E070E004C0B2 +:1031C000440F551F661F771F8A95D2F78091B10172 +:1031D0009091B201A091B301B091B4014827592751 +:1031E0006A277B274093B1015093B2016093B301EA +:1031F0007093B4010C944F140F931F930091B1017D +:103200001091B2012091B3013091B401DC01CB01E6 +:10321000802B912BA22BB32B8093B1019093B20101 +:10322000A093B301B093B4011F910F910C944F146C +:103230000F931F930091B1011091B2012091B3013E +:103240003091B401DC01CB0180239123A223B3236D +:103250008093B1019093B201A093B301B093B401F4 +:103260001F910F910C944F140F931F930091B10174 +:103270001091B2012091B3013091B401DC01CB0176 +:1032800080279127A227B3278093B1019093B201A1 +:10329000A093B301B093B4011F910F910C944F14FC +:1032A0000895CF92DF92EF92FF920F931F93CF93E7 +:1032B000DF938C01C090B101D090B201E090B301D6 +:1032C000F090B4018091B5019091B601A091B70141 +:1032D000B091B801C82AD92AEA2AFB2ACFE1D0E066 +:1032E000D701C6010C2E04C0B695A7959795879572 +:1032F0000A94D2F780FF07C0B8018C2F0E94AF0656 +:103300008130910531F4219758F7B80180E00E948F +:10331000AF06DF91CF911F910F91FF90EF90DF905B +:10332000CF90089590910C019923F1F090910D01A7 +:103330009923D1F0982F9695969596959F3080F584 +:10334000E0910E01F0910F01E90FF11D877021E06E +:1033500030E0A90102C0440F551F8A95E2F7CA0167 +:103360009181892B8183089520910E0130910F0165 +:10337000F90132969FEF40E05191851789F09F3F08 +:1033800019F4511101C0942F4F5F4E30A9F79F3FA0 +:1033900039F0F901E90FF11D97FDFA95828308953F +:1033A000089590910C019923F9F090910D019923C2 +:1033B000D9F0982F9695969596959F3028F5E0919F +:1033C0000E01F0910F01E90FF11D877021E030E04F +:1033D000A90102C0440F551F8A95E2F7CA018095E2 +:1033E000918189238183089520910E0130910F01ED +:1033F000F9013296205F3F4F9081891301C01082FE +:103400003196E217F307C1F7089581E090E0E0916B +:103410000E01F0910F01E80FF91F10820196803123 +:103420009105A9F708959091CB01892B8093CB0149 +:10343000089580959091CB0189238093CB010895C5 +:103440001092CB0108959091CA01892B8093CA01F3 +:10345000089580959091CA0189238093CA010895A7 +:103460001092CA0108958093B90108951092B9018C +:10347000089580910E0190910F01FC0131969C01FD +:10348000205F3F4F80E0919191118F5FE217F3072A +:10349000D1F70895E0910E01F0910F018091CB01D9 +:1034A0008083E0910E01F0910F0190818091CA011B +:1034B000892B80838091B901882361F0E0910E010E +:1034C000F0910F019081892B80830E94391A81111C +:1034D0001092B90180910E0190910F010C94040F8C +:1034E000CF92DF92EF92FF926C01EE24FF24C11481 +:1034F000D104E104F10421F0C701B60120E101C0CB +:1035000020E0C72ED82EE92EFF24C114D104E104F7 +:10351000F10419F0285FC701B6016B017C0154E08A +:10352000F694E794D794C7945A95D1F7C114D1046F +:10353000E104F10419F02C5FC701B6016B017C01B5 +:1035400042E0F694E794D794C7944A95D1F7C11412 +:10355000D104E104F10419F02E5FC701B601DC01CA +:10356000CB01B695A79597958795892B8A2B8B2BA1 +:1035700009F02F5F822FFF90EF90DF90CF9008959A +:103580008091E401843011F120E488E190E00FB6ED +:10359000F894A895809360000FBE2093600083B7D5 +:1035A000817F846083BF83B7816083BF789488956F +:1035B00083B78E7F83BF0FB6F894A8958091600083 +:1035C000886180936000109260000FBE0895089596 +:1035D0000C94E71ACF930E94E81A0E94CE040E942E +:1035E000E71AC0E08C2F0E94C405811104C0CF5F90 +:1035F000CE30C1F701C081E0CF9108950E946114DF +:103600000E94F80E0C94EE0782E084BD93E095BD15 +:103610009AEF97BD80936E0008952FB7F89480912C +:10362000CD019091CE01A091CF01B091D0012FBFDB +:103630000895CF92DF92EF92FF920F931F932FB7CF +:10364000F8944091CD015091CE016091CF017091DD +:10365000D0012FBF6A017B01EE24FF248C0120E002 +:1036600030E0C016D106E206F30610F441505109CD +:103670009A01281B390BC9011F910F91FF90EF9000 +:10368000DF90CF9008951F920F920FB60F921124E2 +:103690008F939F93AF93BF938091CD019091CE0173 +:1036A000A091CF01B091D0010196A11DB11D8093D1 +:1036B000CD019093CE01A093CF01B093D001BF91E3 +:1036C000AF919F918F910F900FBE0F901F90189503 +:1036D0000E94F00BF8942FEF87EA91E6215080408A +:1036E0009040E1F700C0000087E090EBDC018093A0 +:1036F000ED019093EE01A093EF01B093F0019CE0F7 +:1037000088E10FB6F894A895809360000FBE90935F +:103710006000FFCFEF92FF920F931F93CF93DF9341 +:10372000D82FC0E08C2F0E94C40500E010E0E82EE6 +:10373000F12CC701002E02C0959587950A94E2F7F7 +:1037400080FD06C00F5F1F4F0630110591F709C0BD +:10375000602F7C2F80E00E948C068D13F3CF81E0D8 +:1037600004C0CF5FCE30F1F680E0DF91CF911F91A2 +:103770000F91FF90EF900895CF93C82F8CE20E9495 +:103780008A1B882321F08C2FCF910C948A1B80E018 +:10379000CF910895CF930E94111D811102C00E9404 +:1037A000F71CC5E6C15049F00E94CE048FE39CE9A6 +:1037B0000197F1F700C00000F5CF89E20E94BC1B21 +:1037C000811113C18AE20E94BC1B81110E94F71C67 +:1037D00085E00E94BC1B81110E94681B0E941C1D79 +:1037E0008093CC0187E00E94BC1B8823A9F18BE168 +:1037F0000E94BC1B882351F08091CC0181FB2227C1 +:1038000020F991E0922790FB81F90EC08EE00E9492 +:10381000BC1B882361F08091CC0182FB222720F918 +:1038200091E0922790FB82F98093CC0115C080E152 +:103830000E94BC1B9091CC01882341F093FB22276E +:1038400020F981E0822780FB93F904C0892F8095BD +:1038500080FB90F99093CC018091CC010E94201DB7 +:103860000E942E1D8093DE0180EE0E94BC1B8823E7 +:1038700041F08091DE01982F909590FB80F9809324 +:10388000DE0189E30E94BC1B882359F08091DE0190 +:1038900081FB222720F991E0922790FB81F9809308 +:1038A000DE0182EE0E94BC1B882359F08091DE016C +:1038B00082FB222720F991E0922790FB82F98093E6 +:1038C000DE0186EE0E94BC1B882359F08091DE0148 +:1038D00083FB222720F991E0922790FB83F98093C4 +:1038E000DE0183EE0E94BC1B882359F08091DE012B +:1038F00084FB222720F991E0922790FB84F98093A2 +:10390000DE0185E30E94BC1B882359F08091DE0113 +:1039100085FB222720F991E0922790FB85F980937F +:10392000DE0181E30E94BC1B882359F08091DE01F7 +:1039300086FB222720F991E0922790FB86F980935D +:10394000DE0181E10E94BC1B882359F08091DE01D9 +:1039500087FB222720F991E0922790FB87F980933B +:10396000DE018091DE010E94321D8091DE0187FB25 +:10397000882780F980930D0187E20E94BC1BC82F25 +:103980008EE10E94BC1B8111C2608FE10E94BC1BB2 +:103990008111C46080E20E94BC1B8111C86081E279 +:1039A0000E94BC1B8111C06182E20E94BC1B81117C +:1039B000C06283E20E94BC1B8111C06484E20E9449 +:1039C000BC1B882311F0C06802C0CC2329F08C2FC7 +:1039D0000E94291D6C2F03C00E94251D682F70E0D6 +:1039E00080E090E0CF910C941818CF9108956DEE7F +:1039F0007EEF80E090E00E946B2360E082E090E048 +:103A00000E945D2360E083E090E00E945D2360E01F +:103A100084E090E00E945D2360E085E090E00C94FB +:103A20005D2380E090E00E94572321E08D3E9E4F71 +:103A300009F020E0822F089582E090E00C944F235B +:103A4000682F82E090E00C945D2383E090E00C947A +:103A50004F23682F83E090E00C945D2384E090E096 +:103A60000C944F23682F84E090E00C945D238091A8 +:103A7000D30180FF0BC06091130185E0689FB00106 +:103A8000112475956795759567952BC081FF09C0C1 +:103A90006091130185E0689FB001112475956795C9 +:103AA00020C082FF07C06091130185E0689FB001CC +:103AB000112417C09091D4019923D1F06091120183 +:103AC000961788F72091130185E0289F9001112413 +:103AD000929FA001939F500D112470E0CA010E9493 +:103AE00021236038710540F46115710519F406C091 +:103AF00065E070E0862F08958FE7089581E00895CE +:103B00008091D30180FF08C06091110170E075952C +:103B100067957595679521C081FF06C06091110179 +:103B200070E07595679519C082FF04C0609111011E +:103B300070E010C09091D401992399F06091100128 +:103B40009617A0F780911101899FC001112470E0A0 +:103B50000E9421236038710540F46115710519F444 +:103B600006C061E070E0862F08958FE7089581E038 +:103B70000895803F21F40E94371D819504C0813F44 +:103B800029F40E94371D8093D7010895823F21F4C4 +:103B90000E94371D819504C0833F29F40E94371D80 +:103BA0008093D6010895893F19F40E94801D05C0B5 +:103BB0008A3F31F40E94801D81958093D801089539 +:103BC0008B3F21F40E94801D819504C08C3F29F415 +:103BD0000E94801D8093D9010895843F21F4809133 +:103BE000D501816017C0853F21F48091D5018260A5 +:103BF00011C0863F21F48091D50184600BC0873FBE +:103C000021F48091D501886005C0883F31F480910E +:103C1000D50180618093D50108958D3F21F4809175 +:103C2000D30181600BC08E3F21F48091D30182606B +:103C300005C08F3F29F48091D30184608093D30124 +:103C40000895803F39F48091D70187FF6CC01092AE +:103C5000D70169C0813F29F48091D7011816BCF3C0 +:103C600062C09091D601823F29F497FF5CC0109208 +:103C7000D60159C0833F19F41916CCF354C0893FBB +:103C800041F48091D80118160CF04DC01092D80163 +:103C90004AC08A3F29F48091D80187FF44C0F6CFFB +:103CA0008B3F39F48091D90187FF3DC01092D90133 +:103CB0003AC08C3F29F48091D9011816BCF333C067 +:103CC000843F21F48091D5018E7F17C0853F21F478 +:103CD0008091D5018D7F11C0863F21F48091D5015F +:103CE0008B7F0BC0873F21F48091D501877F05C072 +:103CF000883F31F48091D5018F7E8093D50113C028 +:103D00008D3F21F48091D3018E7F0BC08E3F21F433 +:103D10008091D3018D7F05C08F3F29F48091D3011D +:103D20008B7F8093D3018091D60181110EC0809149 +:103D3000D70181110AC08091D801811106C08091FC +:103D4000D901811102C01092D401089585ED91E04E +:103D50000E940F0F0E940D1B9093D2018093D101FE +:103D600008951F93CF93DF938091D1019091D20159 +:103D70000E94191BAC019091D401992321F020914C +:103D8000140130E006C0209115018AE0289F9001BF +:103D900011244217530708F485C08091D601C091C1 +:103DA000D701D091D8011091D901811107C0C1115B +:103DB00075C0D11173C0111171C074C09F3F19F04B +:103DC0009F5F9093D401181624F40E94371D8093AE +:103DD000D6018091D60187FF05C00E94371D8195CD +:103DE0008093D6011C1624F40E94371D8093D701BE +:103DF0008091D70187FF05C00E94371D8195809370 +:103E0000D7016091D601662331F1C091D701CC234F +:103E100011F1062E000C770B880B990B0E942822BB +:103E200023E333E343E35FE30E948C220E94F0210B +:103E30006093D6016C2FCC0F770B880B990B0E94E7 +:103E4000282223E333E343E35FE30E948C220E94B2 +:103E5000F0216093D7011D1624F40E94801D8093E9 +:103E6000D8018091D80187FF05C00E94801D8195EF +:103E70008093D801111624F40E94801D8093D901EB +:103E80008091D90187FF05C00E94801D8195809394 +:103E9000D901DF91CF911F910C94A61E9F3F09F08D +:103EA0008FCFA0CFDF91CF911F910895E5EDF1E085 +:103EB00085E0DF011D928A95E9F71092D4011092F6 +:103EC000D3010895833081F128F4813059F0823094 +:103ED000D1F00895853009F449C0B8F1863009F46D +:103EE00056C0089580911501262F30E0280F311D0E +:103EF0002F3F310524F4680F6093150108958FEF6B +:103F000080931501089580911401262F30E0280F29 +:103F1000311D2F3F310524F4680F6093140108957B +:103F20008FEF80931401089580911301262F30E0C4 +:103F3000280F311D2F3F310524F4680F60931301C2 +:103F400008958FEF80931301089580911201262F19 +:103F500030E0280F311D2F3F310524F4680F6093A6 +:103F6000120108958FEF809312010895809111013D +:103F7000262F30E0280F311D2F3F310524F4680F24 +:103F80006093110108958FEF80931101089580913E +:103F90001001262F30E0280F311D2F3F310524F46A +:103FA000680F6093100108958FEF809310010895BA +:103FB000833011F128F4813049F0823091F0089576 +:103FC000853081F120F18630C1F10895809115018D +:103FD000681720F4861B809315010895109215012F +:103FE000089580911401681720F4861B80931401B2 +:103FF000089510921401089580911301681720F418 +:10400000861B8093130108951092130108958091E7 +:104010001201681720F4861B8093120108951092F4 +:104020001201089580911101681720F4861B809376 +:1040300011010895109211010895809110016817DF +:1040400020F4861B809310010895109210010895AA +:104050000F931F938D3109F46BC008F03FC08E3071 +:1040600009F47DC0C0F4873009F46EC068F486306E +:1040700009F0AFC08091CC01817F8E7F8093CC010D +:1040800081E08093DB01A6C0883009F458C08B30F2 +:1040900009F49BC09EC0863109F497C078F4803142 +:1040A00009F470C0813109F094C00E9461149091AC +:1040B0000D0181E0892780930D0187C0893109F4C2 +:1040C00084C08B3109F085C08091CC0181FB22270F +:1040D00020F991E0922790FB81F94AC0853309F4D9 +:1040E0005BC048F4873209F457C008F45AC08932DB +:1040F00009F452C06EC0833438F48A3308F067C0C4 +:10410000883309F462C065C0833409F445C088343B +:1041100009F05FC00E9461140FEF13ED20E301501E +:1041200010402040E1F700C000000E94681B4DC015 +:104130000E94AA210E94F80E0E94EE0746C00E942B +:104140001C1D0E942E1D41C09091CC01892F8170B1 +:1041500090FF12C0917F9E7F9093CC013BC08091D5 +:10416000CC0182FB222720F991E0922790FB82F973 +:104170008093CC01992349F18091CC018160809397 +:10418000CC0123C08091CC0183FB222720F991E050 +:10419000922790FB83F9ECCF61E070E080E090E043 +:1041A00010C08D5141E050E060E070E08A019B0159 +:1041B00004C0000F111F221F331F8A95D2F7C901B7 +:1041C000B8010E9418180E94611481E003C089534D +:1041D000E9CF80E01F910F91089580E008950C943D +:1041E000ED20CF93C82F8091DB01813079F018F05A +:1041F0008230E9F187C0E0910E01F0910F018081DA +:10420000813169F0823209F07FC009C0E0910E016E +:10421000F0910F018081813111F0823261F48C2F95 +:104220000E94EF20811104C08C2F0E9428201DC005 +:1042300081E090E01AC08C2F0E94ED20811114C003 +:10424000C43179F048F4CB3079F0C03109F060C066 +:1042500082E08093DB0108C0C93219F0C83321F035 +:1042600057C01092DB0154C081E0817053C0C93245 +:1042700089F118F5C43171F1A8F4C73009F046C0CE +:104280008AE08093150194E19093140193E0909358 +:1042900013018093120188E08093110188E28093DA +:1042A000100134C0CE51C63088F5EC2FF0E0E65D49 +:1042B000FE4F80818093DA0129C0CE34E9F020F4EA +:1042C000CB3421F56AE013C0C13579F0C235F1F481 +:1042D00061E00DC08091DA01882319F01092DA01B3 +:1042E00015C081E08093DB0115C061E006C08091BC +:1042F000DA010E94621F0AC06AE08091DA010E941E +:10430000D81F04C01092DB0180E004C081E002C02D +:1043100080E0ABCFCF910895E1E8F0E08081886044 +:1043200080838081816080838FB7F89493E090933D +:10433000890090ED909388008FBF0895EFE6F0E03C +:104340008081826080830895EFE6F0E080818D7F38 +:1043500080830895EFE6F0E0908182E089278083F2 +:1043600008951F920F920FB60F9211242F933F932F +:104370004F935F936F937F938F939F93AF93BF936D +:10438000EF93FF938091DC019091DD010196909372 +:10439000DD018093DC01811103C082E00E94EE0701 +:1043A000E091DD01E695E695F0E0E652FA4FE49102 +:1043B0008091DC018E1303C080E00E94EE07FF9124 +:1043C000EF91BF91AF919F918F917F916F915F918D +:1043D0004F913F912F910F900FBE0F901F90189506 +:1043E0000E94F7216894B1110C94862208950E94CE +:1043F0006B2288F09F5798F0B92F9927B751B0F0EA +:10440000E1F0660F771F881F991F1AF0BA95C9F758 +:1044100014C0B13091F00E948522B1E008950C944F +:104420008522672F782F8827B85F39F0B93FCCF302 +:10443000869577956795B395D9F73EF490958095D5 +:10444000709561957F4F8F4F9F4F0895E89409C0F5 +:1044500097FB3EF490958095709561957F4F8F4FB7 +:104460009F4F9923A9F0F92F96E9BB279395F695CD +:10447000879577956795B795F111F8CFFAF4BB0F4B +:1044800011F460FF1BC06F5F7F4F8F4F9F4F16C0AF +:10449000882311F096E911C0772321F09EE8872F39 +:1044A000762F05C0662371F096E8862F70E060E0F5 +:1044B0002AF09A95660F771F881FDAF7880F96956E +:1044C000879597F9089557FD9058440F551F59F057 +:1044D0005F3F71F04795880F97FB991F61F09F3FF1 +:1044E00079F087950895121613061406551FF2CF1A +:1044F0004695F1DF08C0161617061806991FF1CF6A +:1045000086957105610508940895E894BB27662790 +:104510007727CB0197F908950E949F220C941023CE +:104520000E94022338F00E94092320F0952311F005 +:104530000C94F9220C94FF2211240C9486220E94E0 +:10454000632270F3959FC1F3950F50E0551F629F52 +:10455000F001729FBB27F00DB11D639FAA27F00DDC +:10456000B11DAA1F649F6627B00DA11D661F829F03 +:104570002227B00DA11D621F739FB00DA11D621FE8 +:10458000839FA00D611D221F749F3327A00D611D05 +:10459000231F849F600D211D822F762F6A2F1124E7 +:1045A0009F5750409AF0F1F088234AF0EE0FFF1F1A +:1045B000BB1F661F771F881F91505040A9F79E3F71 +:1045C000510580F00C94F9220C9486225F3FE4F3AD +:1045D000983ED4F3869577956795B795F795E795C7 +:1045E0009F5FC1F7FE2B880F911D9695879597F9D0 +:1045F000089597F99F6780E870E060E008959FEF65 +:1046000080EC089500240A94161617061806090669 +:10461000089500240A941216130614060506089538 +:10462000092E0394000C11F4882352F0BB0F40F4C0 +:10463000BF2B11F460FF04C06F5F7F4F8F4F9F4F00 +:10464000089597FB072E16F4009407D077FD09D044 +:104650000E943B2307FC05D03EF4909581959F4F27 +:104660000895709561957F4F0895EE0FFF1F059097 +:10467000F491E02D0994AA1BBB1B51E107C0AA1FAE +:10468000BB1FA617B70710F0A61BB70B881F991FF3 +:104690005A95A9F780959095BC01CD010895F99997 +:1046A000FECF92BD81BDF89A992780B50895A8E103 +:1046B000B0E042E050E00C947223262FF999FECF2F +:1046C0001FBA92BD81BD20BD0FB6F894FA9AF99A2F +:1046D0000FBE019608950E945D23272F0C945E2340 +:1046E000DC01CB01FC01F999FECF06C0F2BDE1BDB2 +:1046F000F89A319600B40D9241505040B8F70895A1 +:04470000F894FFCF5B +:104704002002EF077F085A082608F2070101BA01C0 +:1047140028080A03140A3F4D36399B054E0518052F +:10472400DF0472048B04A404BD040102030405061F +:044734000708090069 +:00000001FF diff --git a/keyboard/ergodox_ez/keymaps/jacobono/keymap.c b/keyboard/ergodox_ez/keymaps/jacobono/keymap.c new file mode 100644 index 0000000000..6b19800af0 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/jacobono/keymap.c @@ -0,0 +1,273 @@ +#include "ergodox_ez.h" +#include "debug.h" +#include "action_layer.h" + +#define COLEMAK 0 // new colemak layout +#define QWERTY 1 // default layer +#define SYMB 2 // symbols +#define NUMPAD 3 // number pad +#define MDIA 4 // media keys + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Keymap 0: Basic COLEMAK layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | 1 | 2 | 3 | 4 | 5 | LEFT | | RIGHT| 6 | 7 | 8 | 9 | 0 | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | Tab | Q | W | F | P | G | | | | J | L | U | Y | ; | TAB | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | BkSp | A | R | S | T | D |------| |------| H | N | E | I | O | DEL | + * |--------+------+------+------+------+------| | LGUI(TAB)------+------+------+------+------+--------| + * | LShift |Z/Ctrl| X | C | V | B | | | | K | M | , | . |//Ctrl| RShift | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | L1 | | | UP |MO(L2)| |MO(L2)| Down | | ALT | RGUI | + * `----------------------------------' `------------------------------------' + * ,-------------. ,---------------. + * | LGUI | App | |Ctrl/Esc| Alt | + * ,------|------|------| |--------+--------+------. + * | | |QUKSL | | QUKSL | | | + * |Space |ENTER |------| |--------| ENTER |Space | + * | | |MO(L3)| | MO(L3) | | | + * `--------------------' `------------------------' + */ + + // If it accepts an argument (i.e, is a function), it doesn't need KC_. + // Otherwise, it needs KC_* + [COLEMAK] = KEYMAP( // layer 0 : Colemak layout default layer + // left hand + KC_TRNS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LEFT, + KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_TRNS, + KC_BSPC, KC_A, KC_R, KC_S, KC_T, KC_D, + KC_LSFT, CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_TRNS, + TG(QWERTY), KC_TRNS, KC_TRNS,KC_UP, MO(SYMB), + KC_LGUI, KC_APP, + LGUI(S(KC_SPC)), + KC_SPC,KC_ENT,MO(NUMPAD), + // right hand + KC_RGHT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DELT, + KC_TRNS, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_TAB, + KC_H, KC_N, KC_E, KC_I, KC_O, KC_DEL, + LGUI(KC_TAB), KC_K, KC_M, KC_COMM, KC_DOT, CTL_T(KC_SLSH), KC_RSFT, + MO(SYMB), KC_DOWN, KC_TRNS, KC_RALT, KC_RGUI, + CTL_T(KC_ESC), KC_LALT, + LGUI(S(KC_SPC)), + MO(NUMPAD), KC_ENT, KC_SPC), + + /* Keymap 1: Basic QWERTY layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | BkSp | 1 | 2 | 3 | 4 | 5 | LEFT | | RIGHT| 6 | 7 | 8 | 9 | 0 | DEL | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | Tab | Q | W | E | R | T | L0 | | L0 | Y | U | I | O | P | \ | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | Ctrl | A | S | D | F | G |------| |------| H | J | K | L |; / L4| CTRL | + * |--------+------+------+------+------+------| Alt | | Alt |------+------+------+------+------+--------| + * | LShift |Z/Ctrl| X | C | V | B | | | | N | M | , | . |//Ctrl| RShift | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * |Grv/L3| '" |AltShf| Left |MO(L2)| |MO(L2)| Down | [ | ] | ~L3 | + * `----------------------------------' `----------------------------------' + * ,-------------. ,---------------. + * | Tab | BkSp | | Alt |Ctrl/Esc| + * ,------|------|------| |------+--------+------. + * | | | Home | | PgUp | | | + * | Space| LGUI |------| |------| RGUI |Enter | + * | | | End | | PgDn | | | + * `--------------------' `----------------------' + */ + // If it accepts an argument (i.e, is a function), it doesn't need KC_. + // Otherwise, it needs KC_* + [QWERTY] = KEYMAP( // layer 1 + // left hand + KC_BSPC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LEFT, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_TRNS, + KC_LCTRL, KC_A, KC_S, KC_D, KC_F, KC_G, + KC_LSFT, CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_LALT, + KC_TRNS, KC_QUOT, LALT(KC_LSFT), KC_LEFT, MO(SYMB), + KC_TAB, KC_DELT, + KC_HOME, + KC_SPC, KC_LGUI, KC_END, + // right hand + KC_RGHT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DELT, + KC_TRNS, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, + KC_H, KC_J, KC_K, KC_L, LT(MDIA, KC_SCLN), KC_RCTRL, + KC_RALT, KC_N, KC_M, KC_COMM, KC_DOT, CTL_T(KC_SLSH), KC_RSFT, + MO(SYMB), KC_DOWN, KC_LBRC, KC_RBRC, KC_FN1, + KC_LALT, CTL_T(KC_ESC), + KC_PGUP, + KC_PGDN, KC_RGUI, KC_ENT), + + + /* Keymap 2: Symbol Layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | @ | * | = | _ | | | | ~ | { | } | # | : | F12 | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | ! | + | - | " |------| |------| " | ( | ) | ' | ` | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | % | ^ | $ | & | | | | ; | [ | ] | \ | / | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ + // SYMBOL + [SYMB] = KEYMAP( + // left hand + KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS, + KC_TRNS, KC_TRNS, KC_AT, KC_ASTR, KC_EQL, KC_UNDS, KC_TRNS, + KC_TRNS, KC_PIPE, KC_EXLM, KC_PLUS, KC_MINS, S(KC_QUOTE), + KC_TRNS, KC_TRNS, KC_PERC, KC_CIRC, KC_DLR, KC_AMPR, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, + + // right hand + KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + KC_TRNS, KC_TILD, KC_LCBR, KC_RCBR, KC_HASH, S(KC_SCLN), KC_F12, + S(KC_QUOTE),KC_LPRN, KC_RPRN, KC_QUOTE, KC_GRV, KC_TRNS, + KC_TRNS, KC_SCLN, KC_LBRC, KC_RBRC, KC_BSLS, KC_SLSH, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS), + + /* Keymap 3: Numpad Layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | | UP | | | | | | $ | 7 | 8 | 9 | + | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | LEFT | DOWN | RIGHT| |------| |------| = | 4 | 5 | 6 | - | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | | | | | | 1 | 2 | 3 | * | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | , | 0 | . | / | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ + // Numpad + [NUMPAD] = KEYMAP( + // left hand + KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, + KC_TRNS,KC_TRNS,KC_TRNS,KC_UP,KC_TRNS,KC_TRNS,KC_TRNS, + KC_TRNS,KC_TRNS,KC_LEFT,KC_DOWN,KC_RIGHT,KC_TRNS, + KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, + KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, + KC_TRNS,KC_TRNS, + KC_TRNS, + KC_TRNS,KC_TRNS,KC_TRNS, + // right hand + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_DLR, KC_7, KC_8, KC_9, KC_PLUS, KC_TRNS, + KC_EQL, KC_4, KC_5, KC_6, KC_MINS, KC_TRNS, + KC_TRNS, KC_AMPR, KC_1, KC_2, KC_3, KC_ASTR, KC_TRNS, + KC_COMMA,KC_0, KC_DOT, KC_SLSH, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS), + + /* Keymap 4: Media and mouse keys + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | | MsUp | | | | | | | | | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | |MsLeft|MsDown|MsRght| |------| |------| | | | | | Play | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | | | | | | | Prev | Next | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | Lclk | Rclk | |VolUp |VolDn | Mute | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | |Brwser| + * | | |------| |------| |Back | + * | | | | | | | | + * `--------------------' `--------------------' + */ + // MEDIA AND MOUSE + KEYMAP( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, + // right hand + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, + KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS, + KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_WBAK), +}; + +const uint16_t PROGMEM fn_actions[] = { + [1] = ACTION_LAYER_TAP_TOGGLE(SYMB) // FN1 - Momentary Layer 1 (Symbols) +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch(id) { + case 0: + if (record->event.pressed) { + register_code(KC_RSFT); + } else { + unregister_code(KC_RSFT); + } + break; + } + return MACRO_NONE; +}; + +// Runs just one time when the keyboard initializes. +void matrix_init_user(void) { + +}; + +// Runs constantly in the background, in a loop. +void matrix_scan_user(void) { + + uint8_t layer = biton32(layer_state); + + ergodox_board_led_off(); + ergodox_right_led_1_off(); + ergodox_right_led_2_off(); + ergodox_right_led_3_off(); + switch (layer) { + // TODO: Make this relevant to the ErgoDox EZ. + case 1: + ergodox_right_led_1_on(); + break; + case 2: + ergodox_right_led_2_on(); + break; + default: + // none + break; + } + +}; diff --git a/keyboard/ergodox_ez/keymaps/jgarr/jgarr.hex b/keyboard/ergodox_ez/keymaps/jgarr/jgarr.hex new file mode 100644 index 0000000000..38be3e4689 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/jgarr/jgarr.hex @@ -0,0 +1,1121 @@ +:100000000C9465020C94AC020C94AC020C94AC02FF +:100010000C94AC020C94AC020C94AC020C94AC02A8 +:100020000C94AC020C94AC020C94C30B0C94950C85 +:100030000C94AC020C94AC020C94AC020C94AC0288 +:100040000C94AC020C9409210C94AC020C94AC02FC +:100050000C94AC020C949B1A0C94AC020C94AC0261 +:100060000C94AC020C94AC020C94AC020C94AC0258 +:100070000C94AC020C94AC020C94AC020C94AC0248 +:100080000C94AC020C94AC020C94AC020C94AC0238 +:100090000C94AC020C94AC020C94AC020C94AC0228 +:1000A0000C94AC020C94AC020C94AC02020D240D26 +:1000B000170E240D170E690D8C0D170EE10DF40DA2 +:1000C000DE10DE100D110D1150118A1197139713C8 +:1000D000A3119713981298126B1397139713821307 +:1000E0000000F0A135002B002971E100E0000000C4 +:1000F0001E00340004003371E3004D001F00360081 +:1001000012001400E2002A002000370008000D0051 +:1001100050002C002100130018000E004F004A0070 +:1001200022001C000C001B000000E1044C000154E4 +:100130000000007F0000E3002A0001540000007767 +:100140000000E20023000900070005000000C100D4 +:1001500024000A000B00100052004B00250006008E +:1001600017001A0051002C0026001500110019007C +:100170002F00280027000F0016821D7130004E004E +:10018000310038002D00E5002E00000001000100C4 +:1001900001000100010000003A001E0220022202BC +:1001A000010001003B001F022102230201000100A7 +:1001B0003C002F0226022F00010001003D0030020A +:1001C00027023000010001003E00310235003502F7 +:1001D000000001000100010000000100000001001A +:1001E0000100010000000100000001003F0052007A +:1001F00051002402000001004000240021001E00E4 +:10020000010001004100250022001F00370001000D +:1002100042002600230020002700010043002502A1 +:100220002E0231002E0001004400450001000100B3 +:1002300001000000010001000100010001000000B8 +:1002400001000100010001000100010001000100A6 +:10025000F2000100010001000100F000F1000100C6 +:10026000F400010001000100F3000100F5000100AD +:100270000100010001000100000001000100010077 +:100280000000010000000100010001000000010069 +:100290000000010001000100010001000000010058 +:1002A0000100010001000100A9000100010001009E +:1002B0000100AC00AA00B600010001000100AB0083 +:1002C000A80001000100010001000100010001007F +:1002D00001000100AE00010001000000160345000E +:1002E000720067006F0044006F0078002000450036 +:1002F0005A00000016034500720067006F004400BA +:100300006F007800200045005A0000000403090433 +:1003100009026D00040100A0FA09040000010301B4 +:100320000100092111010001223F00070581030896 +:10033000000A090401000103010200092111010062 +:1003400001224D000705820308000A09040200018A +:100350000300000009211101000122360007058376 +:100360000308000A09040300010300000009211129 +:100370000100012239000705840310000112011059 +:100380000100000008EDFE07130100010200010555 +:10039000010906A101050719E029E71500250195C6 +:1003A0000875018102050819012905950575019156 +:1003B000029501750391010507190029771500259C +:1003C00001957875018102C005010980A1018502AE +:1003D00016010026B7001A01002AB7007510950112 +:1003E0008100C0050C0901A1018503160100269CAE +:1003F000021A01002A9C02751095018100C00501B6 +:100400000902A1010901A100050919012905150029 +:10041000250195057501810295017503810105018D +:10042000093009311581257F950275088106093843 +:100430001581257F950175088106050C0A3802157E +:1004400081257F950175088106C0C005010906A1B7 +:1004500001050719E029E7150025019508750181B7 +:100460000295017508810105081901290595057591 +:100470000191029501750391010507190029FF15E6 +:100480000025FF950675088100C0000000000000EF +:100490000000000000010204060A0F17202C3A4A4F +:1004A0005D71879DB3C7DAE9F5FCFFFCF5E9DAC7B2 +:1004B000B39D87715D4A3A2C20170F0A060402018A +:1004C0000000000000000000000011241FBECFEF5C +:1004D000DAE0DEBFCDBF04B603FE27C08091ED0198 +:1004E0009091EE01A091EF01B091F0018730904B17 +:1004F000A740B04BD1F41092ED011092EE01109292 +:10050000EF011092F00114BE84B7877F84BF0FB64D +:10051000F894A895809160008861809360001092A3 +:1005200060000FBEE0E0FFE3099511E0A0E0B1E05C +:10053000E4EBF5E402C005900D92A433B107D9F7BE +:1005400021E0A4E3B1E001C01D92AD3EB207E1F7A6 +:100550000E940A090C94D8220C94000061110BC06F +:10056000FC018281882321F085EE0E94780F03C070 +:1005700085EE0E94401080E090E00895089560911B +:10058000B1017091B2018091B3019091B4010E94C8 +:10059000C81956985E9825982D9826982E982798D1 +:1005A0002F98813019F0823021F00895259A2D9AE4 +:1005B0000895269A2E9A08950C94BF0256985E9834 +:1005C00025982D9826982E9827982F988FEF90E0B1 +:1005D000909389008093880090938B0080938A0089 +:1005E00090938D0080938C00259A2D9A2FEF80E7B1 +:1005F00092E0215080409040E1F700C00000269A30 +:100600002E9A2FEF80E792E0215080409040E1F752 +:1006100000C00000279A2F9A2FEF80E792E0215028 +:1006200080409040E1F700C0000025982D982FEF02 +:1006300080E792E0215080409040E1F700C0000048 +:1006400026982E982FEF80E792E02150804090402E +:10065000E1F700C0000027982F9856985E982598DB +:100660002D9826982E9827982F98089589EA809398 +:10067000800089E08093810024982C983F988AB16B +:100680008F748AB96E98479A8BB1806B8BB9769AC2 +:100690000E94DE020C94BE0280E2809300018091F1 +:1006A000340181110EC00E949B0381E080933401CC +:1006B0002FEF83ED90E3215080409040E1F700C0A0 +:1006C000000080E40E94A1038093000181112EC0EC +:1006D0000E94CB0380930001811128C00E94CB03AC +:1006E00080930001811122C08FE30E94CB0380938D +:1006F000000181111BC00E94C30380E40E94A1037A +:1007000080930001811112C08CE00E94CB03809382 +:10071000000181110BC00E94CB0380930001811165 +:1007200005C08FE30E94CB03809300010E94C303A6 +:100730008091000108951092B9008AE08093B8007A +:10074000089594EA9093BC009091BC0097FFFCCF71 +:100750009091B900987F983021F0903111F081E0AC +:1007600008958093BB0084E88093BC008091BC0016 +:1007700087FFFCCF8091B900887F883111F08034E9 +:1007800071F780E0089584E98093BC008091BC00FB +:1007900084FDFCCF08958093BB0084E88093BC0067 +:1007A0008091BC0087FFFCCF9091B900987F81E0D9 +:1007B000983209F480E0089584E88093BC00809129 +:1007C000BC0087FFFCCF8091BB00089580910001A1 +:1007D000811115C080E40E94A10380930001811162 +:1007E0000CC082E10E94CB0380930001811105C0FF +:1007F0008FEF0E94CB03809300010E94C30384B15A +:10080000807F84B985B1807F85B98AB1837F8AB9B9 +:100810008BB1837F8BB93E98469808950E944C0314 +:10082000809300010E94E60380B38C7080BB81B38B +:10083000836F81BBE4E4F1E0A6E3B1E011921D9285 +:1008400081E0E235F807D1F70C9436039F92AF921E +:10085000BF92CF92DF92EF92FF920F931F93CF93AD +:10086000DF9380910001882379F0809135018F5FBB +:1008700080933501811108C00E944C0380930001D0 +:10088000811102C00E94DE0286E3E82E81E0F82E8C +:100890008701C0E0D0E0BB24B39492E0A92ECC2421 +:1008A000C394D12CC730D10500F58091000181118E +:1008B00064C080E40E94A10380930001811112C0F2 +:1008C00082E10E94CB038093000181110BC0C6011D +:1008D0000C2E01C0880F0A94EAF780950E94CB0382 +:1008E000809300010E94C30348C0CA30A1F028F4DD +:1008F000C83059F0C93061F005C0CC3089F070F0D3 +:10090000CD3089F0209A289810C0219A29980DC0DE +:10091000229A2A980AC0239A2B9807C0529A01C09B +:10092000539A5B9802C03E9A4698E0EAEA95F1F73E +:100930008FB181708B25799902C032E001C030E01F +:10094000832B7C9902C034E001C030E0832B7D9979 +:1009500002C028E001C020E0822B7E9902C090E115 +:1009600001C090E0892B9FB19095991F9927991FFD +:100970009295990F907E892B0FC080910001811173 +:100980004AC080E40E94A10380930001882381F182 +:10099000912C0E94C303892DD8019C91981719F0BE +:1009A0008C93A09201010E94E60321960F5F1F4FD6 +:1009B000CE30D10509F076CF80910101882369F10D +:1009C000815080930101882339F0EFE9FFE03197EE +:1009D000F1F700C0000021C0E4E4F1E0D7018D91FF +:1009E0007D018193B4E4EB16B1E0FB06B9F715C0C5 +:1009F00083E10E94CB03809300018111C9CF81E480 +:100A00000E94A103809300018111C2CF0E94DC03E8 +:100A1000982E9094BECF80E0BFCF0E94DC0281E090 +:100A2000DF91CF911F910F91FF90EF90DF90CF90CA +:100A3000BF90AF909F900895E82FF0E0EC5BFE4FE1 +:100A40008081089508958B3B910580F4883A910543 +:100A500048F5853A9105D8F48430910508F0B2C084 +:100A6000019709F06EC081E090E00895803E910505 +:100A700008F467C0883E910508F4A4C09C01205F7B +:100A800031092031310508F05CC090650895853A40 +:100A9000910509F459C0863A910509F058C082E8D9 +:100AA00090E40895883A910509F454C0893A910573 +:100AB00009F453C08A3A910509F452C08B3A910562 +:100AC00009F451C08C3A910509F450C08D3A910552 +:100AD00009F44FC0803B910509F44EC08E3A910550 +:100AE00009F44DC08F3A910509F44CC0813B910542 +:100AF00009F44BC0823B910509F44AC0833B910540 +:100B000009F449C0843B910509F448C0853B91052F +:100B100009F447C0863B910509F446C0873B91051F +:100B200009F445C0883B910509F444C0893B91050F +:100B300009F443C08A3B910509F442C080E094E483 +:100B4000089580E090E0089581E890E4089583E8B6 +:100B500090E4089582EE94E4089589EE94E4089573 +:100B60008AEE94E4089585EB94E4089586EB94E48A +:100B7000089587EB94E408958CEC94E408958DEC4B +:100B800094E4089583E895E408958AE895E4089547 +:100B900082E995E4089584E995E4089581E296E474 +:100BA000089583E296E4089584E296E4089585E248 +:100BB00096E4089586E296E4089587E296E408951F +:100BC0008AE296E40895089524E5829FC0011124E5 +:100BD000FC0126E0729FE00DF11D1124E60FF11DCE +:100BE000EE0FFF1FEC51FF4F859194910895880FF0 +:100BF000991FFC01E05AF040859194910895880F67 +:100C0000991FFC01E052FF4F85919491089524E5CE +:100C1000829FC0011124FC0146E0749FE00DF11D8C +:100C20001124E60FF11DEE0FFF1FEC51FF4F8591D0 +:100C300094919C013A9521154FE1340708F425C1A0 +:100C40003F512115304120F49F700E94FF05089507 +:100C50009C0130532115304118F49927906C089568 +:100C6000811520E5920769F40E94B9134FEF84E3E0 +:100C70009CE0415080409040E1F700C000000C949F +:100C8000C01A813020E5920731F48091CC01816057 +:100C90008093CC0108959C0130552115304108F016 +:100CA0005CC0292F33272F70332721303105E9F419 +:100CB000AC0164E0440F551F6A95E1F74427537077 +:100CC000BC016370772702C0220F331F6A95E2F7D9 +:100CD0003C68242B352B73E0880F991F7A95E1F738 +:100CE00080769927822B932B08952230310529F4A1 +:100CF000982F8827816F906A089523303105A1F4D9 +:100D0000AC0133E0440F551F3A95E1F7407E577030 +:100D10008370992721E030E002C0220F331F8A95AB +:100D2000E2F7C9019C6816C02430310531F5AC01E9 +:100D300023E0440F551F2A95E1F7407E57708370DA +:100D4000992721E030E002C0220F331F8A95E2F795 +:100D5000C9019A68842B952B08959C013057211561 +:100D6000304118F49F70906208959C01305821150D +:100D7000304118F49F70906A0895803E9105E0F428 +:100D8000803C910558F58133910509F46FC048F412 +:100D90008932910509F463C08A32910509F46DC066 +:100DA00072C089339105E9F082389105D1F085331D +:100DB000910509F44DC067C0833E910581F138F477 +:100DC000803E9105B9F0823E9105D9F05CC0863E27 +:100DD000910561F1873E9105A1F155C00E94F7058B +:100DE00008952091DE0120FD02C021FF4CC080EE5D +:100DF00090E049C08091DE0180FFF9CF89E390E067 +:100E000042C08091DE0182FF0EC08091DE0184FF2E +:100E100003C080E090E037C083EE90E034C0809162 +:100E2000DE0182FFF2CF82EE90E02DC08091DE01E4 +:100E300083FF0BC08091DE0184FDEBCF87EE90E055 +:100E400022C08091DE0183FFF5CF86EE90E01BC0CB +:100E50008091DE0185FF07C089E290E014C0809197 +:100E6000DE0185FFF9CF85E390E00DC08091DE01C2 +:100E700086FF07C08AE290E006C08091DE0186FF0F +:100E8000F9CF81E390E00E942305089508958091B1 +:100E900062010895CF93DF9300D01F92CDB7DEB7E4 +:100EA0009C018091E401843019F593E099833B83A0 +:100EB0002A839093E9008FEF9091E800815095FD8F +:100EC00006C095ED9A95F1F700008111F5CF80915C +:100ED000E80085FF0DC040E050E063E070E0CE0127 +:100EE00001960E94B7098091E8008E778093E80010 +:100EF0000F900F900F90DF91CF910895CF93DF93D4 +:100F000000D01F92CDB7DEB72091E401243021F547 +:100F100022E029839B838A8383E08093E9008FEF1B +:100F20009091E800815095FD06C095ED9A95F1F7F6 +:100F300000008111F5CF8091E80085FF0DC040E0F1 +:100F400050E063E070E0CE0101960E94B709809105 +:100F5000E8008E778093E8000F900F900F90DF915C +:100F6000CF9108959C018091E4018430F9F482E0EE +:100F70008093E9009FEF8091E800915085FD06C0C5 +:100F800085ED8A95F1F700009111F5CF8091E80089 +:100F900085FF0CC040E050E065E070E0C9010E94B0 +:100FA000B7098091E8008E778093E8000895CF9389 +:100FB000DF93EC018091E401843009F046C0909108 +:100FC0000C019923D9F090910D019923B9F08093E8 +:100FD000E9008FEF9091E800815095FD06C095E102 +:100FE0009A95F1F700008111F5CF8091E80085FF17 +:100FF0002CC040E050E060E170E017C081E08093D9 +:10100000E9008FEF9091E800815095FD06C095EDC5 +:101010009A95F1F700008111F5CF8091E80085FFE6 +:1010200014C040E050E068E070E0CE010E94B709D3 +:101030008091E8008E778093E80080E1FE01A2E5D0 +:10104000B1E001900D928A95E1F7DF91CF9108957B +:101050008091E301811109C00E94480B0E94A50BF9 +:101060008091E20084608093E20008951092E30191 +:10107000089508950C94F6200E94561A0E94FC20B0 +:101080000E94500E0C94460742E061EC81E00E9401 +:10109000C10A42E061EC82E00E94C10A42E061ECD8 +:1010A00083E00E94C10A42E161EC84E00C94C10A31 +:1010B0008091E601833009F455C030F4813071F03D +:1010C000823009F48EC008958A3009F47AC08B30DA +:1010D00009F460C0893009F09CC020C08091E5010E +:1010E000813A09F096C08091E800877F8093E800FC +:1010F0008091E9019091EA01892B21F460E182E578 +:1011000091E003C060E080E090E070E00E94020A9D +:101110008091E8008B778093E80008958091E50145 +:10112000813209F076C08091E9019091EA0100973F +:1011300019F0039709F06DC08091E800877F8093D4 +:10114000E8008091E80082FD05C08091E4018111F2 +:10115000F8CF5FC08091F100809362018091E80038 +:101160008B7753C08091E501813A09F052C080919C +:10117000E9019091EA01892B09F04BC08091E800C8 +:10118000877F8093E8008091E80080FFFCCF80910A +:101190000C0136C08091E5018132D9F58091E901D9 +:1011A0009091EA01892BA9F58091E800877F8093CF +:1011B000E8000E94F60A8091E70180930C010C94EC +:1011C000B9138091E501813221F58091E800877F94 +:1011D0008093E8000E94F60A8091E8018093630101 +:1011E00008958091E501813AA1F48091E800877F1C +:1011F0008093E8008091E80080FFFCCF809163013C +:101200008093F1008091E8008E778093E8000C9441 +:10121000F60A089584B7877F84BF0FB6F894A8951F +:1012200080916000886180936000109260000FBE22 +:1012300090E080E80FB6F89480936100909361008D +:101240000FBE0E949F0E0E94480B0E94A50B80912A +:10125000E20084608093E20078940E94300E0E9445 +:10126000A10E82E091E00E944B0E0E94E42080914A +:10127000E401853069F40E94181A8091E201882304 +:10128000B1F30E94421A882391F30E94A109EFCF83 +:101290000E94A70EECCF292F332723303105C9F048 +:1012A00060F42130310581F02230310509F041C070 +:1012B0008DE690E020E133E040C021323105E1F0DD +:1012C0002232310531F135C082E190E02DE733E083 +:1012D00034C099278130910549F028F0029749F5EB +:1012E000ECEDF2E005C0ECE0F3E002C0E4EFF2E088 +:1012F000849190E09F0121C06430D8F4E62FF0E0A3 +:10130000EE0FFF1FEE5DFE4F2081318189E090E0FE +:1013100014C0643070F470E0FB01EE0FFF1FE65E56 +:10132000FE4F20813181FB01EA5EFE4F808190E01B +:1013300004C080E090E020E030E0FA0131832083B7 +:10134000089580E189BD82E189BD09B400FEFDCF29 +:101350008091D8008F7D8093D8008091E0008260DA +:101360008093E0008091E00081FDFCCF0895CF9252 +:10137000DF92EF92FF920F931F93CF93DF93EC01D5 +:101380008B016A010E94150B811133C0C114D10475 +:1013900039F0F60180819181081B190BC80FD91F04 +:1013A000E12CF12C0115110519F18091E80085FD62 +:1013B00016C08091E8008E778093E800C114D104B4 +:1013C00049F0F60180819181E80EF91EF182E082F8 +:1013D00085E00FC00E94150B882321F30AC0899174 +:1013E0008093F10001501109FFEFEF1AFF0ADACFE5 +:1013F00080E0DF91CF911F910F91FF90EF90DF90F0 +:10140000CF9008952091EB013091EC01261737071A +:1014100048F06115710539F42091E8002E7720938A +:10142000E80001C0B901FC0120E06115710579F106 +:101430008091E4018823F1F18530F1F18091E80099 +:1014400083FD3CC08091E80082FD2EC08091E800C1 +:1014500080FFEBCF2091F3008091F20090E0922B7F +:101460006115710551F08830910538F42191209370 +:10147000F100615071090196F3CF21E0089709F05E +:1014800020E08091E8008E778093E800CECF211194 +:10149000CFCF0AC08091E401882361F0853061F0EC +:1014A0008091E80083FD0AC08091E80082FFF2CFBE +:1014B00080E0089582E0089583E0089581E0089532 +:1014C0002091EB013091EC012617370748F06115A8 +:1014D000710539F42091E8002E772093E80001C0CF +:1014E000B901FC0120E06115710591F18091E401E1 +:1014F000882309F440C0853009F43FC08091E8009A +:1015000083FD3DC08091E80082FD2FC08091E800FE +:1015100080FFE9CF2091F3008091F20090E0922BC0 +:101520006115710559F08830910540F4249120939C +:10153000F1003196615071090196F2CF21E00897D0 +:1015400009F020E08091E8008E778093E800CBCF0F +:101550002111CCCF0AC08091E401882361F085304D +:1015600061F08091E80083FD0AC08091E80082FF6D +:10157000F2CF80E0089582E0089583E0089581E04D +:101580000895982F973068F59093E900981739F0EF +:101590007091EC002091ED005091F00003C0242FD9 +:1015A000762F50E021FD02C09F5FECCF3091EB0021 +:1015B0003E7F3093EB003091ED003D7F3093ED00A6 +:1015C0003091EB0031603093EB007093EC0020938E +:1015D000ED005093F0002091EE0027FDE5CF80E074 +:1015E00008958F708093E90081E008958091E5016E +:1015F00087FF11C08091E80082FD05C08091E40161 +:101600008111F8CF11C08091E8008B770BC08091D9 +:10161000E401882349F08091E80080FFF8CF8091B1 +:10162000E8008E778093E80008952091E4003091DF +:10163000E50095E64091EC00842F817040FF23C0C7 +:101640008091E80080FD1DC08091E401882399F01D +:10165000853099F08091EB0085FD11C04091E40048 +:101660005091E5002417350729F3915011F09A01A4 +:10167000E1CF84E0089582E0089583E0089581E059 +:10168000089580E008954091E80042FFDDCF08957D +:101690000E94B60B0E94BE0BE0EEF0E080818160FC +:1016A0008083E8EDF0E080818F77808319BCA7ED1F +:1016B000B0E08C918E7F8C9380818F7E808310929E +:1016C000E30108950F931F93CF93DF930E94B60B0E +:1016D0000E94BE0BC8EDD0E088818F778883888117 +:1016E0008068888388818F7D888319BC1092E4018B +:1016F0001092E0011092E2011092E10100EE10E080 +:10170000F80180818B7F808388818160888342E0BB +:1017100060E080E00E94C10AE1EEF0E080818E7F0F +:101720008083E2EEF0E08081816080838081886048 +:101730008083F80180818E7F8083888180618883A7 +:10174000DF91CF911F910F910895E8EDF0E0808136 +:101750008F7E8083E7EDF0E080818160808384E08C +:1017600082BF81E08093E3010C94620BE8EDF0E02E +:1017700080818E7F80831092E20008951092DA00BB +:101780001092E10008951F920F920FB60F9211244C +:101790002F933F934F935F936F937F938F939F9379 +:1017A000AF93BF93EF93FF938091E10082FF0BC053 +:1017B0008091E20082FF07C08091E1008B7F8093DF +:1017C000E1000E942F0E8091DA0080FF1FC08091FF +:1017D000D80080FF1BC08091DA008E7F8093DA00F2 +:1017E0008091D90080FF0DC080E189BD82E189BD73 +:1017F00009B400FEFDCF81E08093E4010E94280837 +:1018000005C019BC1092E4010E9436088091E100E5 +:1018100080FF19C08091E20080FF15C08091E20036 +:101820008E7F8093E2008091E20080618093E200ED +:101830008091D80080628093D80019BC85E08093A5 +:10184000E4010E943A088091E10084FF30C0809159 +:10185000E20084FF2CC080E189BD82E189BD09B42A +:1018600000FEFDCF8091D8008F7D8093D8008091BD +:10187000E1008F7E8093E1008091E2008F7E809373 +:10188000E2008091E20081608093E2008091E001BB +:10189000882311F084E007C08091E30087FD02C037 +:1018A00081E001C083E08093E4010E943C088091C4 +:1018B000E10083FF29C08091E20083FF25C0809171 +:1018C000E100877F8093E10082E08093E401109241 +:1018D000E0018091E1008E7F8093E1008091E20041 +:1018E0008E7F8093E2008091E20080618093E2002D +:1018F00042E060E080E00E94C10A8091F0008860D0 +:101900008093F0000E943908FF91EF91BF91AF9151 +:101910009F918F917F916F915F914F913F912F9107 +:101920000F900FBE0F901F9018951F920F920FB639 +:101930000F9211242F933F934F935F936F937F9355 +:101940008F939F93AF93BF93CF93DF93EF93FF93C7 +:10195000C091E900CF708091EC00D82FD17080FD4C +:10196000D0E81092E9008091F000877F8093F0002A +:1019700078940E94D90C1092E9008091F000886060 +:101980008093F000CD2BCF70C093E900FF91EF91D1 +:10199000DF91CF91BF91AF919F918F917F916F9187 +:1019A0005F914F913F912F910F900FBE0F901F901D +:1019B00018951F93CF93DF93CDB7DEB7AA970FB6D5 +:1019C000F894DEBF0FBECDBFE5EEF1E08091F100EF +:1019D000819321E0ED3EF207C9F70E9458088091FB +:1019E000E80083FF24C18091E5019091E601492F31 +:1019F00050E04A30510508F01AC1FA01EA5AFF4F87 +:101A00000C948D22803881F0823809F010C18091C9 +:101A1000E9018F708093E9008091EB0085FB8827B6 +:101A200080F91092E90006C08091E1019091E201F5 +:101A3000911182609091E800977F9093E8008093E5 +:101A4000F1001092F100C8C0282F2D7F09F0EFC0DF +:101A5000882319F0823061F0EAC08091E70181307B +:101A600009F0E5C0933009F080E08093E2012BC0DB +:101A70008091E701811127C08091E9018F7009F4FD +:101A8000D6C08093E9002091EB0020FF1CC093306A +:101A900021F48091EB00806214C09091EB00906182 +:101AA0009093EB0021E030E0A90102C0440F551FE4 +:101AB0008A95E2F74093EA001092EA008091EB00E9 +:101AC00088608093EB001092E9008091E800877FA6 +:101AD00086C08111ACC01091E7011F778091E300AF +:101AE0008078812B8093E3008091E800877F80934A +:101AF000E8000E94F60A8091E80080FFFCCF809108 +:101B0000E30080688093E300111102C082E001C00D +:101B100083E08093E4018BC08058823008F087C056 +:101B20008091E7019091E8018C3D53E0950779F5AC +:101B300083E08A838AE289834FB7F894DE011396A3 +:101B400020E03EE051E2E32FF0E050935700E491B3 +:101B500020FF03C0E295EF703F5FEF708E2F90E0A3 +:101B6000EA3010F0C79601C0C0968D939D932F5F09 +:101B7000243149F74FBF8091E800877F8093E800C8 +:101B80006AE270E0CE0101960E94020A14C0AE0122 +:101B90004F5F5F4F6091E9010E944B09BC01892BA7 +:101BA00009F445C09091E800977F9093E8008981FF +:101BB0009A810E94600A8091E8008B778093E80008 +:101BC00036C08038A1F58091E800877F8093E800D7 +:101BD0008091E0018093F1008091E8008E778093FE +:101BE000E8000E94F60A23C0811121C08091E7011C +:101BF0009091E80199270297D4F48091E800877FBB +:101C00008093E8008091E7018093E0010E94F60A4A +:101C10008091E001811106C08091E30087FD02C040 +:101C200081E001C084E08093E4010E944408809137 +:101C3000E80083FF0AC08091E800877F8093E80076 +:101C40008091EB0080628093EB00AA960FB6F89427 +:101C5000DEBF0FBECDBFDF91CF911F9108950895D4 +:101C6000CF938091E4018823A1F0C091E900CF7067 +:101C70009091EC00892F817090FD80E8C82B109224 +:101C8000E9008091E80083FD0E94D90CCF70C093D9 +:101C9000E900CF91089590936901809368010895B8 +:101CA000E0916801F0916901309721F00190F08195 +:101CB000E02D099480E00895E0916801F0916901B8 +:101CC000309721F00280F381E02D09940895E0918E +:101CD0006801F0916901309721F00480F581E02DD1 +:101CE00009940895209166013091670128173907FA +:101CF00071F09093670180936601E0916801F09123 +:101D00006901309721F00680F781E02D099408954C +:101D100020916401309165012817390771F0909383 +:101D2000650180936401E0916801F0916901309749 +:101D300021F00084F185E02D0994089508950C9414 +:101D40009E0E0E945C1A0E940E040C94221BCF92DD +:101D5000DF92EF92FF920F931F93CF93DF93CDB754 +:101D6000DEB72B970FB6F894DEBF0FBECDBF0E9433 +:101D700026048BE6C82E81E0D82E00E010E0E02E8D +:101D8000802F0E941C05F60141916F01F82EF42668 +:101D9000B1F40F5F1F4F0E30110589F78FEF898364 +:101DA0008A831B820E94651A8160782F9D838C83B1 +:101DB00049815A816B818D810E944A0F40C0909168 +:101DC000CC0191FF04C08B870E9422058B8520E007 +:101DD00030E04F2D50E0922FBA01022E02C07595CF +:101DE00067950A94E2F760FF24C02E83EF8221E01A +:101DF00030E0690102C0CC0CDD1C9A95E2F790E05E +:101E00008C219D21892B09F420E028870E94651AE6 +:101E10008160782F9A8789874E815F8168858A855E +:101E20000E944A0FF801E559FE4F8081C826C08202 +:101E300006C02F5F3F4F2630310569F6AACF0E94BA +:101E4000091E0E94500E90916A018917A1F00E940C +:101E5000500E80936A012B960FB6F894DEBF0FBE2A +:101E6000CDBFDF91CF911F910F91FF90EF90DF9049 +:101E7000CF900C9446072B960FB6F894DEBF0FBE9A +:101E8000CDBFDF91CF911F910F91FF90EF90DF9029 +:101E9000CF900895CF93DF93CDB7DEB72B970FB6D2 +:101EA000F894DEBF0FBECDBF4F83588769877A870E +:101EB0008B87DE01119686E0FD0111928A95E9F784 +:101EC00085E0FE01379601900D928A95E1F74981F0 +:101ED0005A816B817C818D819E810E944D162B964B +:101EE0000FB6F894DEBF0FBECDBFDF91CF9108953E +:101EF000CF93C82F882309F4C1C0823859F40E94B7 +:101F0000500E81FDBBC089E30E94EA180E94A2190D +:101F100089E30CC0833879F40E94500E80FDAEC076 +:101F200083E50E94EA180E94A21983E50E942919FC +:101F3000CF910C94A219843859F40E94500E82FD5E +:101F40009DC087E40E94EA180E94A21987E4EECFA0 +:101F50008CEF8C0F813A48F48C2F0E94492081111C +:101F60008DC08C2F0E94EA18E3CF80E28C0F88305E +:101F700048F4C77081E001C0880FCA95EAF70E9453 +:101F80006B19D6CF8BE58C0F833078F4C53A29F0E6 +:101F9000C63A31F083E890E005C081E890E002C0E5 +:101FA00082E890E0CF910C94720E88E58C0F83311B +:101FB00008F064C0C83A39F1C93A41F1CA3A49F166 +:101FC000CB3A51F1CC3A59F1CD3A61F1C03B69F1CC +:101FD000CE3A71F1CF3A79F1C13B81F1C23B89F13F +:101FE000C33B91F1C43B99F1C53BA1F1C63BA9F1BB +:101FF000C73BB1F1C83BB9F1C93BC1F1CA3BC9F11B +:1020000080E090E038C082EE90E035C089EE90E04C +:1020100032C08AEE90E02FC085EB90E02CC086EBBA +:1020200090E029C087EB90E026C08CEC90E023C0C4 +:102030008DEC90E020C083E891E01DC08AE891E03B +:102040001AC082E991E017C084E991E014C081E2EE +:1020500092E011C083E292E00EC084E292E00BC0F5 +:1020600085E292E008C086E292E005C087E292E055 +:1020700002C08AE292E0CF910C94880ECF9108952D +:10208000882309F44BC0823859F40E94500E81FF16 +:1020900045C089E30E94EA180E94A21989E30CC096 +:1020A000833871F40E94500E80FF38C083E50E948F +:1020B000EA180E94A21983E50E9429190C94A2191A +:1020C000843859F40E94500E82FF28C087E40E9491 +:1020D000EA180E94A21987E4EFCF9CEF980F913A7B +:1020E00058F390E2980F983050F4877091E001C057 +:1020F000990F8A95EAF7892F0E947119DFCF9BE526 +:10210000980F933020F480E090E00C94720E885A7F +:10211000833120F480E090E00C94880E08958823A9 +:1021200021F00E946B190C94A2190895882321F0C4 +:102130000E9471190C94A2190895BF92CF92DF9258 +:10214000EF92FF920F931F93CF93DF9300D000D0B5 +:1021500000D0CDB7DEB77C0185E0F701DE01119636 +:1021600001900D928A95E1F7F70183819481892B83 +:1021700009F4DDC2908181818F3F19F49F3F09F4FA +:10218000D6C2F7010281258122952F7099838A8317 +:1021900089819A812E830E94A918182FB92E0E9436 +:1021A000A8180E946F17EB2DE295EF704E2F50E0AC +:1021B000FA01E05AFF4F2E810C948D228B2D807FE7 +:1021C0009B2D9F70F92E882319F0F29480EFF8224E +:1021D000002349F0FF2009F457C28F2D0E947B197C +:1021E0000E94A21951C2812F0E944010FF2009F4C1 +:1021F0009EC28F2D0E94811926960FB6F894DEBFDD +:102200000FBECDBFDF91CF911F910F91FF90EF9047 +:10221000DF90CF90BF900C94A2193B2D307F8B2D77 +:102220008F70303211F08295807F112319F01130B8 +:1022300021F12CC00023B9F0222309F490C12130F0 +:1022400009F08DC126960FB6F894DEBF0FBECDBF44 +:10225000DF91CF911F910F91FF90EF90DF90CF9082 +:10226000BF900C948B19222319F0213009F45FC21E +:102270008E830E948E198E8186C1002321F0223028 +:1022800008F055C26CC1211152C27DC1002321F05A +:10229000222309F464C1F8C1222309F474C109C2DC +:1022A0008B2D86958695837019F08130D1F03FC2D1 +:1022B000002321F0812F9B2D937002C080E090E0DD +:1022C00026960FB6F894DEBF0FBECDBFDF91CF913B +:1022D0001F910F91FF90EF90DF90CF90BF900C94E3 +:1022E000720E002321F0812F9B2D937002C080E09D +:1022F00090E026960FB6F894DEBF0FBECDBFDF91FB +:10230000CF911F910F91FF90EF90DF90CF90BF90F2 +:102310000C94880E812F002319F00E94111D02C019 +:102320000E94791D26960FB6F894DEBF0FBECDBF72 +:10233000DF91CF911F910F91FF90EF90DF90CF90A1 +:10234000BF900C94FE1D8B2D837009F075C0011198 +:10235000EEC1812F829586958770880F880F912F07 +:102360009F70C92ED12CE12CF12C082E04C0CC0C6E +:10237000DD1CEE1CFF1C0A94D2F714FF12C00FE004 +:1023800010E020E030E004C0000F111F221F331FB7 +:102390008A95D2F7C901B80160957095809590959E +:1023A00003C060E070E0CB014B2D4695469543702D +:1023B0004230C1F060F56C297D298E299F2941307A +:1023C00051F126960FB6F894DEBF0FBECDBFDF9158 +:1023D000CF911F910F91FF90EF90DF90CF90BF9022 +:1023E0000C9496176C297D298E299F2926960FB665 +:1023F000F894DEBF0FBECDBFDF91CF911F910F913B +:10240000FF90EF90DF90CF90BF900C94B2170E9496 +:102410009617C701B60126960FB6F894DEBF0FBE19 +:10242000CDBFDF91CF911F910F91FF90EF90DF9083 +:10243000CF90BF900C947A17002319F08B2D8170E8 +:1024400001C08695882309F472C1812F82958695F3 +:102450008770880F880F912F9F70C92ED12CE12C87 +:10246000F12C082E04C0CC0CDD1CEE1CFF1C0A94C1 +:10247000D2F714FF12C00FE010E020E030E004C0FB +:10248000000F111F221F331F8A95D2F7C901B8010F +:10249000609570958095909503C060E070E0CB01E9 +:1024A0004B2D4695469543704230C1F060F56C293E +:1024B0007D298E299F29413051F126960FB6F89437 +:1024C000DEBF0FBECDBFDF91CF911F910F91FF9067 +:1024D000EF90DF90CF90BF900C9470186C297D29FD +:1024E0008E299F2926960FB6F894DEBF0FBECDBF6A +:1024F000DF91CF911F910F91FF90EF90DF90CF90E0 +:10250000BF900C948C180E947018C701B6012696D3 +:102510000FB6F894DEBF0FBECDBFDF91CF911F91F4 +:102520000F91FF90EF90DF90CF90BF900C945418D4 +:10253000103FD1F118F4103E50F4A1C0123F09F43D +:1025400063C008F44CC0133F09F473C098C01F70F7 +:102550008B2D8F710023A1F00E94ED17812F2696FD +:102560000FB6F894DEBF0FBECDBFDF91CF911F91A4 +:102570000F91FF90EF90DF90CF90BF900C948F1051 +:102580000E940E18812F26960FB6F894DEBF0FBE5C +:10259000CDBFDF91CF911F910F91FF90EF90DF9012 +:1025A000CF90BF900C9496100023A9F02111BFC0CA +:1025B0008B2D8F7126960FB6F894DEBF0FBECDBF60 +:1025C000DF91CF911F910F91FF90EF90DF90CF900F +:1025D000BF900C943318223008F0A9C0E9CF002333 +:1025E000A9F08B2D8F7126960FB6F894DEBF0FBE23 +:1025F000CDBFDF91CF911F910F91FF90EF90DF90B2 +:10260000CF90BF900C94ED17002359F38B2D8F7151 +:1026100026960FB6F894DEBF0FBECDBFDF91CF91E7 +:102620001F910F91FF90EF90DF90CF90BF900C948F +:102630000E18002399F08B2D8F7126960FB6F89403 +:10264000DEBF0FBECDBFDF91CF911F910F91FF90E5 +:10265000EF90DF90CF90BF900C94D81726960FB6CE +:10266000F894DEBF0FBECDBFDF91CF911F910F91C8 +:10267000FF90EF90DF90CF90BF900C94CE17002387 +:10268000A9F0222309F4ADCF812F26960FB6F89436 +:10269000DEBF0FBECDBFDF91CF911F910F91FF9095 +:1026A000EF90DF90CF90BF900C94780F222309F425 +:1026B000ADCF812F26960FB6F894DEBF0FBECDBFEB +:1026C000DF91CF911F910F91FF90EF90DF90CF900E +:1026D000BF900C9440104B2D4F70612FC7010E948A +:1026E000AE0226960FB6F894DEBF0FBECDBFDF91C7 +:1026F000CF911F910F91FF90EF90DF90CF90BF90FF +:102700000C94F2164B2D4F70612FC70126960FB611 +:10271000F894DEBF0FBECDBFDF91CF911F910F9117 +:10272000FF90EF90DF90CF90BF900C94E30526963A +:102730000FB6F894DEBF0FBECDBFDF91CF911F91D2 +:102740000F91FF90EF90DF90CF90BF9008950E947F +:1027500088190E945D190E94A2190E94AE1E0E9453 +:10276000FE1D80E090E00E94720E80E090E00C94EC +:10277000880E0E9478190C94A7130E94A918292F7B +:1027800022952F702C3030F42A3048F42250223019 +:1027900078F405C02C3041F02F3031F009C0803E74 +:1027A00048F0803F29F406C093FB882780F90895FC +:1027B00080E0089581E00895CF93DF9300D000D0AA +:1027C0001F92CDB7DEB70F900F900F900F900F9024 +:1027D000DF91CF910895CF93DF9300D000D000D048 +:1027E000CDB7DEB726960FB6F894DEBF0FBECDBFCD +:1027F000DF91CF9108951F93CF93DF93C09179011B +:1028000016E080917A01C81799F0D0E01C9FF00182 +:102810001D9FF00D1124E558FE4F408151816281CA +:102820007381848195810E94EB132196C770E9CF53 +:10283000DF91CF911F9108954091AB015091AC0170 +:102840006091AD017091AE018091AF019091B001A6 +:102850000C94EB138091B00182958F7009F054C0F5 +:102860008091AD01882309F44FC080917901A09136 +:102870007A014091AE015091AF016091AB0170912E +:10288000AC01B6E08A1709F43FC090E0411551054C +:10289000C1F17F3F11F46F3FA1F1B89FF001B99FE3 +:1028A000F00D1124E558FE4F218127132AC0208105 +:1028B000261327C02281211124C0238134812417AB +:1028C000350710F421503109241B350B283C310504 +:1028D000C0F42091B0012F7020612093B00126E058 +:1028E000289FF001299FF00D1124E058FE4F8081B0 +:1028F0008F70806180838BEA91E00E949D100C9420 +:10290000FB1301968770BECF0895CF92DF92EF92AE +:10291000FF920F931F93CF93DF93CDB7DEB76297EC +:102920000FB6F894DEBF0FBECDBF8C0185E0F80175 +:10293000DE011D9601900D928A95E1F7D8014C9128 +:1029400011965C91119712966C918091AE019091C5 +:10295000AF01009709F475C13091AB017091AC01E2 +:102960007F3F19F43F3F09F46CC1F801C380D48064 +:10297000E090AD01EE2009F4BEC02091B001C81670 +:10298000D90628F0D601A81BB90BCD0104C080954B +:1029900090958C0D9D1DFF24F394883C910578F053 +:1029A000F12C207F09F0C4C07C2DD98AC88A89897E +:1029B0000E94DC138BEA91E00E949D10AFC0822F31 +:1029C000807F09F045C0571313C0431311C0611134 +:1029D0000FC02F7020612093B0010E941C148BEA5D +:1029E00091E00E949D108091B001F80185832EC076 +:1029F000CD2819F15F3F11F44F3FF9F0F62E611128 +:102A00001CC08091790120917A0136E0821709F487 +:102A10005BC090E0389FF001399FF00D1124E5581C +:102A2000FE4F7181571306C07081471303C0728136 +:102A3000711103C001968770E9CFF62E662309F461 +:102A40001CC18091B00181608093B001F12C15C14F +:102A5000571309C0431307C0611105C08091B0012D +:102A6000F8018583C8C04D875E878D859E856A8BFA +:102A70000E94BD136A898823D1F16623C1F1209198 +:102A8000B001822F82958F7090E0029774F0809150 +:102A9000AB019091AC0198878F831986DB86CA863B +:102AA0002C87CE0107960E949D1086E0F801ABEAC4 +:102AB000B1E001900D928A95E1F70E942A140E94DC +:102AC0001C14FF24F394D9C04D875E878D859E85A5 +:102AD0000E94A918292F22952F70223008F0C1C01A +:102AE0009F7009F0BBC0805E883008F4C6C0C80182 +:102AF0000E949D10E6CFC816D90608F453C0F6010F +:102B0000E81BF90BCF01883C910508F450C0F12C6B +:102B10007C2DD98AC88A89890E94DC13EBEAF1E00E +:102B200086E0DF011D928A95E9F70E941C14A5C07A +:102B3000571314C0431312C0611110C08091B0012B +:102B4000F8018583C8010E949D1086E0EBEAF1E060 +:102B5000DF011D928A95E9F7FE2C8FC04D875E87B5 +:102B60008D859E856A8B0E94BD136A89882309F42E +:102B7000BECF662309F4BBCF2091B001822F82958E +:102B80008F7090E002970CF490CF8091AB01909100 +:102B9000AC019A8389831B82DD82CC822E83CE0195 +:102BA000019681CF809590958C0D9D1DACCFF62E12 +:102BB000662309F49CCF571333C0431331C02091CF +:102BC000B00120FD24C0822F82958F70482F50E0E5 +:102BD00041155105E1F0D80115962C9315974F300A +:102BE000510549F08F5F982F9295907F822F8F70BB +:102BF000892B15968C93C8010E949D1086E0F801E0 +:102C0000ABEAB1E001900D928A95E1F78ECF86E0B4 +:102C1000F801ABEAB1E001900D928A95E1F72DC081 +:102C20004D875E878D859E850E94BD1381113DCFA6 +:102C30008091B00181608093B001C8010E949D1015 +:102C40001CC0662309F453CF4D875E878D859E8512 +:102C50000E94BD13882309F44ACF27CF811143CFA7 +:102C60000CC0243008F043CF9F7009F43CCFD8014A +:102C700015969C91907F09F036CF8F2D62960FB6F6 +:102C8000F894DEBF0FBECDBFDF91CF911F910F91A2 +:102C9000FF90EF90DF90CF9008951F93CF93DF9335 +:102CA000CDB7DEB72C970FB6F894DEBF0FBECDBF01 +:102CB0004F83588769877A878B879C87CE010796D1 +:102CC0000E948514882371F08A859B85892B09F4DD +:102CD00041C088858F3F09F065C08F818F3F09F023 +:102CE00061C038C086E0FE013796DE011196019082 +:102CF0000D928A95E1F76A857B856115710551F121 +:102D0000FF81E885EF3F11F4FF3F21F120917A0127 +:102D100030E0C9010196877099274091790150E010 +:102D20008417950709F447C0F983EA837D836C8390 +:102D300096E0929FD001939FB00D1124A558BE4FED +:102D4000FE01319601900D929A95E1F780937A01F8 +:102D50000E94FB1316E08091790190917A01891706 +:102D6000B9F1189FC001112485589E4F0E94851407 +:102D7000882371F1E09179011E9FF0011124E5583B +:102D8000FE4F4081518162817381848195810E94CF +:102D9000EB138091790190E00196877099278093D9 +:102DA0007901D9CF4F81588569857A858B859C8536 +:102DB0000E94EB13CFCF0E94B91310927A011092A8 +:102DC0007901EBEAF1E086E0DF011D928A95E9F7EF +:102DD0002C960FB6F894DEBF0FBECDBFDF91CF911A +:102DE0001F910895EF92FF920F931F93CF93DF935C +:102DF0008C01892B09F46CC0F12CEE24E394E801DA +:102E00002196F8018491843740F4843008F051C051 +:102E1000813081F0823019F15BC0853709F444C0FC +:102E2000A8F19CE7980F903708F052C08F770E9466 +:102E3000401041C00E5F1F4FFE01849190E2980F39 +:102E4000983050F48770FE2D01C0FF0F8A95EAF785 +:102E50008F2F0E947B1914C00E94780F2DC00E5F27 +:102E60001F4FFE01849190E2980F983060F48770B4 +:102E7000FE2D01C0FF0F8A95EAF78F2F0E9481195E +:102E80000E94A21919C00E94401016C00E5F1F4F69 +:102E9000FE01C491CC2381F08FE99FE00197F1F707 +:102EA00000C00000C150F6CF0E5F1F4FFE01F4902E +:102EB00003C00E94780F8E018F2D882309F49FCFC5 +:102EC000EFE9FFE03197F1F700C000008150F5CF46 +:102ED000DF91CF911F910F91FF90EF90089508958A +:102EE0006093B5017093B6018093B7019093B801D8 +:102EF0000C94A7130F931F930091B5011091B60185 +:102F00002091B7013091B801DC01CB01802B912BCE +:102F1000A22BB32B8093B5019093B601A093B70178 +:102F2000B093B8011F910F910C94A7130F931F93A7 +:102F30000091B5011091B6012091B7013091B8010F +:102F4000DC01CB0180239123A223B3238093B5011D +:102F50009093B601A093B701B093B8011F910F9160 +:102F60000C94A7130F931F930091B5011091B60114 +:102F70002091B7013091B801DC01CB018027912766 +:102F8000A227B3278093B5019093B601A093B70110 +:102F9000B093B8011F910F910C94A7131092B10137 +:102FA0001092B2011092B3011092B4010C94A713C5 +:102FB00041E050E060E070E004C0440F551F661F20 +:102FC000771F8A95D2F74093B1015093B201609375 +:102FD000B3017093B4010C94A71341E050E060E09A +:102FE00070E004C0440F551F661F771F8A95D2F703 +:102FF0008091B1019091B201A091B301B091B4015F +:10300000482B592B6A2B7B2B4093B1015093B20173 +:103010006093B3017093B4010C94A71341E050E0A6 +:1030200060E070E004C0440F551F661F771F8A954B +:10303000D2F740955095609570958091B10190912F +:10304000B201A091B301B091B401482359236A237E +:103050007B234093B1015093B2016093B30170930D +:10306000B4010C94A71341E050E060E070E004C0AC +:10307000440F551F661F771F8A95D2F78091B101C3 +:103080009091B201A091B301B091B40148275927A2 +:103090006A277B274093B1015093B2016093B3013B +:1030A0007093B4010C94A7130F931F930091B10177 +:1030B0001091B2012091B3013091B401DC01CB0138 +:1030C000802B912BA22BB32B8093B1019093B20153 +:1030D000A093B301B093B4011F910F910C94A71367 +:1030E0000F931F930091B1011091B2012091B30190 +:1030F0003091B401DC01CB0180239123A223B323BF +:103100008093B1019093B201A093B301B093B40145 +:103110001F910F910C94A7130F931F930091B1016E +:103120001091B2012091B3013091B401DC01CB01C7 +:1031300080279127A227B3278093B1019093B201F2 +:10314000A093B301B093B4011F910F910C94A713F6 +:103150000895CF92DF92EF92FF920F931F93CF9338 +:10316000DF938C01C090B101D090B201E090B30127 +:10317000F090B4018091B5019091B601A091B70192 +:10318000B091B801C82AD92AEA2AFB2ACFE1D0E0B7 +:10319000D701C6010C2E04C0B695A79597958795C3 +:1031A0000A94D2F780FF07C0B8018C2F0E9407064F +:1031B0008130910531F4219758F7B80180E00E94E1 +:1031C0000706DF91CF911F910F91FF90EF90DF9055 +:1031D000CF90089590910C019923F1F090910D01F9 +:1031E0009923D1F0982F9695969596959F3080F5D6 +:1031F000E0910E01F0910F01E90FF11D877021E0C0 +:1032000030E0A90102C0440F551F8A95E2F7CA01B8 +:103210009181892B8183089520910E0130910F01B6 +:10322000F90132969FEF40E05191851789F09F3F59 +:1032300019F4511101C0942F4F5F4E30A9F79F3FF1 +:1032400039F0F901E90FF11D97FDFA958283089590 +:10325000089590910C019923F9F090910D01992313 +:10326000D9F0982F9695969596959F3028F5E091F0 +:103270000E01F0910F01E90FF11D877021E030E0A0 +:10328000A90102C0440F551F8A95E2F7CA01809533 +:10329000918189238183089520910E0130910F013E +:1032A000F9013296205F3F4F9081891301C010824F +:1032B0003196E217F307C1F7089581E090E0E091BD +:1032C0000E01F0910F01E80FF91F10820196803175 +:1032D0009105A9F708959091CB01892B8093CB019B +:1032E000089580959091CB0189238093CB01089517 +:1032F0001092CB0108959091CA01892B8093CA0145 +:10330000089580959091CA0189238093CA010895F8 +:103310001092CA0108958093B90108951092B901DD +:10332000089580910E0190910F01FC0131969C014E +:10333000205F3F4F80E0919191118F5FE217F3077B +:10334000D1F70895E0910E01F0910F018091CB012A +:103350008083E0910E01F0910F0190818091CA016C +:10336000892B80838091B901882361F0E0910E015F +:10337000F0910F019081892B80830E949119811116 +:103380001092B90180910E0190910F010C945C0E86 +:10339000CF92DF92EF92FF926C01EE24FF24C114D2 +:1033A000D104E104F10421F0C701B60120E101C01C +:1033B00020E0C72ED82EE92EFF24C114D104E10449 +:1033C000F10419F0285FC701B6016B017C0154E0DC +:1033D000F694E794D794C7945A95D1F7C114D104C1 +:1033E000E104F10419F02C5FC701B6016B017C0107 +:1033F00042E0F694E794D794C7944A95D1F7C11464 +:10340000D104E104F10419F02E5FC701B601DC011B +:10341000CB01B695A79597958795892B8A2B8B2BF2 +:1034200009F02F5F822FFF90EF90DF90CF900895EB +:103430008091E401843011F120E488E190E00FB63E +:10344000F894A895809360000FBE2093600083B726 +:10345000817F846083BF83B7816083BF78948895C0 +:1034600083B78E7F83BF0FB6F894A89580916000D4 +:10347000886180936000109260000FBE08950895E7 +:103480000C943F1ACF930E94401A0E9426040E9477 +:103490003F1AC0E08C2F0E941C05811104C0CF5F31 +:1034A000CE30C1F701C081E0CF9108950E94B913D9 +:1034B0000E94500E0C94460782E084BD93E095BDB7 +:1034C0009AEF97BD80936E0008952FB7F89480917E +:1034D000CD019091CE01A091CF01B091D0012FBF2D +:1034E0000895CF92DF92EF92FF920F931F932FB721 +:1034F000F8944091CD015091CE016091CF0170912F +:10350000D0012FBF6A017B01EE24FF248C0120E053 +:1035100030E0C016D106E206F30610F4415051091E +:103520009A01281B390BC9011F910F91FF90EF9051 +:10353000DF90CF9008951F920F920FB60F92112433 +:103540008F939F93AF93BF938091CD019091CE01C4 +:10355000A091CF01B091D0010196A11DB11D809322 +:10356000CD019093CE01A093CF01B093D001BF9134 +:10357000AF919F918F910F900FBE0F901F90189554 +:103580000E94480BF8942FEF87EA91E62150804083 +:103590009040E1F700C0000087E090EBDC018093F1 +:1035A000ED019093EE01A093EF01B093F0019CE048 +:1035B00088E10FB6F894A895809360000FBE9093B1 +:1035C0006000FFCFEF92FF920F931F93CF93DF9393 +:1035D000D82FC0E08C2F0E941C0500E010E0E82EE0 +:1035E000F12CC701002E02C0959587950A94E2F749 +:1035F00080FD06C00F5F1F4F0630110591F709C00F +:10360000602F7C2F80E00E94E4058D13F3CF81E0D2 +:1036100004C0CF5FCE30F1F680E0DF91CF911F91F3 +:103620000F91FF90EF900895CF93C82F8CE20E94E6 +:10363000E21A882321F08C2FCF910C94E21A80E0BB +:10364000CF910895CF930E94691C811102C00E94FE +:103650004F1CC5E6C15049F00E9426048FE39CE947 +:103660000197F1F700C00000F5CF89E20E94141B1A +:10367000811113C18AE20E94141B81110E944F1C08 +:1036800085E00E94141B81110E94C01A0E94741CC4 +:103690008093CC0187E00E94141B8823A9F18BE161 +:1036A0000E94141B882351F08091CC0181FB2227BA +:1036B00020F991E0922790FB81F90EC08EE00E94E4 +:1036C000141B882361F08091CC0182FB222720F912 +:1036D00091E0922790FB82F98093CC0115C080E1A4 +:1036E0000E94141B9091CC01882341F093FB222768 +:1036F00020F981E0822780FB93F904C0892F80950F +:1037000080FB90F99093CC018091CC010E94781CB1 +:103710000E94861C8093DE0180EE0E94141B882389 +:1037200041F08091DE01982F909590FB80F9809375 +:10373000DE0189E30E94141B882359F08091DE0189 +:1037400081FB222720F991E0922790FB81F9809359 +:10375000DE0182EE0E94141B882359F08091DE0165 +:1037600082FB222720F991E0922790FB82F9809337 +:10377000DE0186EE0E94141B882359F08091DE0141 +:1037800083FB222720F991E0922790FB83F9809315 +:10379000DE0183EE0E94141B882359F08091DE0124 +:1037A00084FB222720F991E0922790FB84F98093F3 +:1037B000DE0185E30E94141B882359F08091DE010D +:1037C00085FB222720F991E0922790FB85F98093D1 +:1037D000DE0181E30E94141B882359F08091DE01F1 +:1037E00086FB222720F991E0922790FB86F98093AF +:1037F000DE0181E10E94141B882359F08091DE01D3 +:1038000087FB222720F991E0922790FB87F980938C +:10381000DE018091DE010E948A1C8091DE0187FB1F +:10382000882780F980930D0187E20E94141BC82F1E +:103830008EE10E94141B8111C2608FE10E94141B53 +:103840008111C46080E20E94141B8111C86081E272 +:103850000E94141B8111C06182E20E94141B81111D +:10386000C06283E20E94141B8111C06484E20E9442 +:10387000141B882311F0C06802C0CC2329F08C2FC0 +:103880000E94811C6C2F03C00E947D1C682F70E079 +:1038900080E090E0CF910C947017CF9108956DEE79 +:1038A0007EEF80E090E00E94C32260E082E090E042 +:1038B0000E94B52260E083E090E00E94B52260E0C3 +:1038C00084E090E00E94B52260E085E090E00C94F6 +:1038D000B52280E090E00E94AF2221E08D3E9E4F15 +:1038E00009F020E0822F089582E090E00C94A72256 +:1038F000682F82E090E00C94B52283E090E00C9475 +:10390000A722682F83E090E00C94B52284E090E039 +:103910000C94A722682F84E090E00C94B52280914B +:10392000D30180FF0BC06091130185E0689FB00157 +:10393000112475956795759567952BC081FF09C012 +:103940006091130185E0689FB0011124759567951A +:1039500020C082FF07C06091130185E0689FB0011D +:10396000112417C09091D4019923D1F060911201D4 +:10397000961788F72091130185E0289F9001112464 +:10398000929FA001939F500D112470E0CA010E94E4 +:1039900079226038710540F46115710519F406C08B +:1039A00065E070E0862F08958FE7089581E008951F +:1039B0008091D30180FF08C06091110170E075957E +:1039C00067957595679521C081FF06C060911101CB +:1039D00070E07595679519C082FF04C06091110170 +:1039E00070E010C09091D401992399F0609110017A +:1039F0009617A0F780911101899FC001112470E0F2 +:103A00000E9479226038710540F46115710519F43E +:103A100006C061E070E0862F08958FE7089581E089 +:103A20000895803F21F40E948F1C819504C0813F3E +:103A300029F40E948F1C8093D7010895823F21F4BE +:103A40000E948F1C819504C0833F29F40E948F1C23 +:103A50008093D6010895893F19F40E94D81C05C0AF +:103A60008A3F31F40E94D81C81958093D801089533 +:103A70008B3F21F40E94D81C819504C08C3F29F40F +:103A80000E94D81C8093D9010895843F21F480912D +:103A9000D501816017C0853F21F48091D5018260F6 +:103AA00011C0863F21F48091D50184600BC0873F0F +:103AB00021F48091D501886005C0883F31F4809160 +:103AC000D50180618093D50108958D3F21F48091C7 +:103AD000D30181600BC08E3F21F48091D3018260BD +:103AE00005C08F3F29F48091D30184608093D30176 +:103AF0000895803F39F48091D70187FF6CC0109200 +:103B0000D70169C0813F29F48091D7011816BCF311 +:103B100062C09091D601823F29F497FF5CC0109259 +:103B2000D60159C0833F19F41916CCF354C0893F0C +:103B300041F48091D80118160CF04DC01092D801B4 +:103B40004AC08A3F29F48091D80187FF44C0F6CF4C +:103B50008B3F39F48091D90187FF3DC01092D90184 +:103B60003AC08C3F29F48091D9011816BCF333C0B8 +:103B7000843F21F48091D5018E7F17C0853F21F4C9 +:103B80008091D5018D7F11C0863F21F48091D501B0 +:103B90008B7F0BC0873F21F48091D501877F05C0C3 +:103BA000883F31F48091D5018F7E8093D50113C079 +:103BB0008D3F21F48091D3018E7F0BC08E3F21F485 +:103BC0008091D3018D7F05C08F3F29F48091D3016F +:103BD0008B7F8093D3018091D60181110EC080919B +:103BE000D70181110AC08091D801811106C080914E +:103BF000D901811102C01092D401089585ED91E0A0 +:103C00000E94670E0E94651A9093D2018093D101A1 +:103C100008951F93CF93DF938091D1019091D201AA +:103C20000E94711AAC019091D401992321F0209146 +:103C3000140130E006C0209115018AE0289F900110 +:103C400011244217530708F485C08091D601C09112 +:103C5000D701D091D8011091D901811107C0C111AC +:103C600075C0D11173C0111171C074C09F3F19F09C +:103C70009F5F9093D401181624F40E948F1C8093A8 +:103C8000D6018091D60187FF05C00E948F1C8195C7 +:103C90008093D6011C1624F40E948F1C8093D701B8 +:103CA0008091D70187FF05C00E948F1C819580936A +:103CB000D7016091D601662331F1C091D701CC23A1 +:103CC00011F1062E000C770B880B990B0E948021B6 +:103CD00023E333E343E35FE30E94E4210E944821AE +:103CE0006093D6016C2FCC0F770B880B990B0E9439 +:103CF000802123E333E343E35FE30E94E4210E9456 +:103D000048216093D7011D1624F40E94D81C80938B +:103D1000D8018091D80187FF05C00E94D81C8195E9 +:103D20008093D801111624F40E94D81C8093D901E5 +:103D30008091D90187FF05C00E94D81C819580938E +:103D4000D901DF91CF911F910C94FE1D9F3F09F087 +:103D50008FCFA0CFDF91CF911F910895E5EDF1E0D6 +:103D600085E0DF011D928A95E9F71092D401109247 +:103D7000D3010895833081F128F4813059F08230E5 +:103D8000D1F00895853009F449C0B8F1863009F4BE +:103D900056C0089580911501262F30E0280F311D5F +:103DA0002F3F310524F4680F6093150108958FEFBC +:103DB00080931501089580911401262F30E0280F7B +:103DC000311D2F3F310524F4680F609314010895CD +:103DD0008FEF80931401089580911301262F30E016 +:103DE000280F311D2F3F310524F4680F6093130114 +:103DF00008958FEF80931301089580911201262F6B +:103E000030E0280F311D2F3F310524F4680F6093F7 +:103E1000120108958FEF809312010895809111018E +:103E2000262F30E0280F311D2F3F310524F4680F75 +:103E30006093110108958FEF80931101089580918F +:103E40001001262F30E0280F311D2F3F310524F4BB +:103E5000680F6093100108958FEF8093100108950B +:103E6000833011F128F4813049F0823091F00895C7 +:103E7000853081F120F18630C1F1089580911501DE +:103E8000681720F4861B8093150108951092150180 +:103E9000089580911401681720F4861B8093140103 +:103EA000089510921401089580911301681720F469 +:103EB000861B809313010895109213010895809139 +:103EC0001201681720F4861B809312010895109246 +:103ED0001201089580911101681720F4861B8093C8 +:103EE0001101089510921101089580911001681731 +:103EF00020F4861B809310010895109210010895FC +:103F00000F931F938D3109F46BC008F03FC08E30C2 +:103F100009F47DC0C0F4873009F46EC068F48630BF +:103F200009F0AFC08091CC01817F8E7F8093CC015E +:103F300081E08093DB01A6C0883009F458C08B3043 +:103F400009F49BC09EC0863109F497C078F4803193 +:103F500009F470C0813109F094C00E94B9139091A6 +:103F60000D0181E0892780930D0187C0893109F413 +:103F700084C08B3109F085C08091CC0181FB222760 +:103F800020F991E0922790FB81F94AC0853309F42A +:103F90005BC048F4873209F457C008F45AC089322C +:103FA00009F452C06EC0833438F48A3308F067C015 +:103FB000883309F462C065C0833409F445C088348D +:103FC00009F05FC00E94B9130FEF13ED20E3015019 +:103FD00010402040E1F700C000000E94C01A4DC010 +:103FE0000E9402210E94500E0E94460746C00E9475 +:103FF000741C0E94861C41C09091CC01892F817055 +:1040000090FF12C0917F9E7F9093CC013BC0809126 +:10401000CC0182FB222720F991E0922790FB82F9C4 +:104020008093CC01992349F18091CC0181608093E8 +:10403000CC0123C08091CC0183FB222720F991E0A1 +:10404000922790FB83F9ECCF61E070E080E090E094 +:1040500010C08D5141E050E060E070E08A019B01AA +:1040600004C0000F111F221F331F8A95D2F7C90108 +:10407000B8010E9470170E94B91381E003C08953F0 +:10408000E9CF80E01F910F91089580E008950C948E +:104090004520CF93C82F8091DB01813079F018F053 +:1040A0008230E9F187C0E0910E01F0910F0180812B +:1040B000813169F0823209F07FC009C0E0910E01C0 +:1040C000F0910F018081813111F0823261F48C2FE7 +:1040D0000E944720811104C08C2F0E94801F1DC0A8 +:1040E00081E090E01AC08C2F0E944520811114C0FD +:1040F000C43179F048F4CB3079F0C03109F060C0B8 +:1041000082E08093DB0108C0C93219F0C83321F086 +:1041100057C01092DB0154C081E0817053C0C93296 +:1041200089F118F5C43171F1A8F4C73009F046C01F +:104130008AE08093150194E19093140193E09093A9 +:1041400013018093120188E08093110188E280932B +:10415000100134C0CE51C63088F5EC2FF0E0E65D9A +:10416000FE4F80818093DA0129C0CE34E9F020F43B +:10417000CB3421F56AE013C0C13579F0C235F1F4D2 +:1041800061E00DC08091DA01882319F01092DA0104 +:1041900015C081E08093DB0115C061E006C080910D +:1041A000DA010E94BA1E0AC06AE08091DA010E9418 +:1041B000301F04C01092DB0180E004C081E002C027 +:1041C00080E0ABCFCF910895E1E8F0E08081886096 +:1041D00080838081816080838FB7F89493E090938F +:1041E000890090ED909388008FBF0895EFE6F0E08E +:1041F0008081826080830895EFE6F0E080818D7F8A +:1042000080830895EFE6F0E0908182E08927808343 +:1042100008951F920F920FB60F9211242F933F9380 +:104220004F935F936F937F938F939F93AF93BF93BE +:10423000EF93FF938091DC019091DD0101969093C3 +:10424000DD018093DC01811103C082E00E944607FA +:10425000E091DD01E695E695F0E0E657FB4FE4914D +:104260008091DC018E1303C080E00E944607FF911D +:10427000EF91BF91AF919F918F917F916F915F91DE +:104280004F913F912F910F900FBE0F901F90189557 +:104290000E944F216894B1110C94DE2108950E9470 +:1042A000C32188F09F5798F0B92F9927B751B0F0E4 +:1042B000E1F0660F771F881F991F1AF0BA95C9F7AA +:1042C00014C0B13091F00E94DD21B1E008950C944A +:1042D000DD21672F782F8827B85F39F0B93FCCF3FD +:1042E000869577956795B395D9F73EF49095809527 +:1042F000709561957F4F8F4F9F4F0895E89409C047 +:1043000097FB3EF490958095709561957F4F8F4F08 +:104310009F4F9923A9F0F92F96E9BB279395F6951E +:10432000879577956795B795F111F8CFFAF4BB0F9C +:1043300011F460FF1BC06F5F7F4F8F4F9F4F16C000 +:10434000882311F096E911C0772321F09EE8872F8A +:10435000762F05C0662371F096E8862F70E060E046 +:104360002AF09A95660F771F881FDAF7880F9695BF +:10437000879597F9089557FD9058440F551F59F0A8 +:104380005F3F71F04795880F97FB991F61F09F3F42 +:1043900079F087950895121613061406551FF2CF6B +:1043A0004695F1DF08C0161617061806991FF1CFBB +:1043B00086957105610508940895E894BB276627E2 +:1043C0007727CB0197F908950E94F7210C94682272 +:1043D0000E945A2238F00E94612220F0952311F0A9 +:1043E0000C9451220C94572211240C94DE210E942B +:1043F000BB2170F3959FC1F3950F50E0551F629F4D +:10440000F001729FBB27F00DB11D639FAA27F00D2D +:10441000B11DAA1F649F6627B00DA11D661F829F54 +:104420002227B00DA11D621F739FB00DA11D621F39 +:10443000839FA00D611D221F749F3327A00D611D56 +:10444000231F849F600D211D822F762F6A2F112438 +:104450009F5750409AF0F1F088234AF0EE0FFF1F6B +:10446000BB1F661F771F881F91505040A9F79E3FC2 +:10447000510580F00C9451220C94DE215F3FE4F34F +:10448000983ED4F3869577956795B795F795E79518 +:104490009F5FC1F7FE2B880F911D9695879597F921 +:1044A000089597F99F6780E870E060E008959FEFB6 +:1044B00080EC089500240A941616170618060906BB +:1044C000089500240A94121613061406050608958A +:1044D000092E0394000C11F4882352F0BB0F40F412 +:1044E000BF2B11F460FF04C06F5F7F4F8F4F9F4F52 +:1044F000089597FB072E16F4009407D077FD09D096 +:104500000E94932207FC05D03EF4909581959F4F21 +:104510000895709561957F4F0895EE0FFF1F0590E8 +:10452000F491E02D0994AA1BBB1B51E107C0AA1FFF +:10453000BB1FA617B70710F0A61BB70B881F991F44 +:104540005A95A9F780959095BC01CD010895F999E8 +:10455000FECF92BD81BDF89A992780B50895A8E154 +:10456000B0E042E050E00C94CA22262FF999FECF29 +:104570001FBA92BD81BD20BD0FB6F894FA9AF99A80 +:104580000FBE019608950E94B522272F0C94B622E3 +:10459000DC01CB01FC01F999FECF06C0F2BDE1BD03 +:1045A000F89A319600B40D9241505040B8F70895F2 +:0445B000F894FFCFAD +:1045B40020024707D707B2077E074A070101BA015D +:1045C40028080A03140A3F4D36394B04FE03C80376 +:1045D4008F0322033B0354036D0301020304050606 +:0445E40007080900BB +:00000001FF diff --git a/keyboard/ergodox_ez/keymaps/keymap_jgarr.c b/keyboard/ergodox_ez/keymaps/jgarr/keymap.c similarity index 99% rename from keyboard/ergodox_ez/keymaps/keymap_jgarr.c rename to keyboard/ergodox_ez/keymaps/jgarr/keymap.c index fbdc25109e..a3ad2040f4 100644 --- a/keyboard/ergodox_ez/keymaps/keymap_jgarr.c +++ b/keyboard/ergodox_ez/keymaps/jgarr/keymap.c @@ -155,12 +155,12 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) }; // Runs just one time when the keyboard initializes. -void * matrix_init_user(void) { +void matrix_init_user(void) { }; // Runs constantly in the background, in a loop. -void * matrix_scan_user(void) { +void matrix_scan_user(void) { uint8_t layer = biton32(layer_state); diff --git a/keyboard/ergodox_ez/keymaps/kastyle/kastyle.hex b/keyboard/ergodox_ez/keymaps/kastyle/kastyle.hex new file mode 100644 index 0000000000..684e65404a --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/kastyle/kastyle.hex @@ -0,0 +1,1121 @@ +:100000000C9465020C94AC020C94AC020C94AC02FF +:100010000C94AC020C94AC020C94AC020C94AC02A8 +:100020000C94AC020C94AC020C94C30B0C94950C85 +:100030000C94AC020C94AC020C94AC020C94AC0288 +:100040000C94AC020C9409210C94AC020C94AC02FC +:100050000C94AC020C949B1A0C94AC020C94AC0261 +:100060000C94AC020C94AC020C94AC020C94AC0258 +:100070000C94AC020C94AC020C94AC020C94AC0248 +:100080000C94AC020C94AC020C94AC020C94AC0238 +:100090000C94AC020C94AC020C94AC020C94AC0228 +:1000A0000C94AC020C94AC020C94AC02020D240D26 +:1000B000170E240D170E690D8C0D170EE10DF40DA2 +:1000C000DE10DE100D110D1150118A1197139713C8 +:1000D000A3119713981298126B1397139713821307 +:1000E0000000F0A12E002B00E000E10035810000AF +:1000F0001E00140004001D7134004D001F001A0082 +:1001000016001B00E1044C00200008000700060058 +:1001100050002A0021001500090019004F004A0074 +:10012000220017000A00050000002971E3000154B5 +:100130000000007F00006574650001540000007736 +:100140000000E20023001C000B00110000002971D8 +:10015000240018000D00100052004B0025000C0078 +:100160000E00360051002C00260012000F00370050 +:100170002F002800270013003382387130004E0012 +:100180002D0031003400E500C10000000100010035 +:1001900001000100010000003A001E0220022202BC +:1001A000010001003B001F022102230201000100A7 +:1001B0003C002F0226022F00010001003D0030020A +:1001C00027023000010001003E00310235003502F7 +:1001D000000001000100010000000100000001001A +:1001E0000100010000000100000001003F0052007A +:1001F00051002402000001004000240021001E00E4 +:10020000010001004100250022001F00370001000D +:1002100042002600230020002700010043002502A1 +:100220002E0231002E0001004400450001000100B3 +:1002300001000000010001000100010001000000B8 +:1002400001000100010001000100010001000100A6 +:10025000F2000100010001000100F000F1000100C6 +:10026000F400010001000100F3000100F5000100AD +:100270000100010001000100000001000100010077 +:100280000000010000000100010001000000010069 +:100290000000010001000100010001000000010058 +:1002A0000100010001000100A9000100010001009E +:1002B0000100AC00AA00B600010001000100AB0083 +:1002C000A80001000100010001000100010001007F +:1002D00001000100AE00010001000000160345000E +:1002E000720067006F0044006F0078002000450036 +:1002F0005A00000016034500720067006F004400BA +:100300006F007800200045005A0000000403090433 +:1003100009026D00040100A0FA09040000010301B4 +:100320000100092111010001223F00070581030896 +:10033000000A090401000103010200092111010062 +:1003400001224D000705820308000A09040200018A +:100350000300000009211101000122360007058376 +:100360000308000A09040300010300000009211129 +:100370000100012239000705840310000112011059 +:100380000100000008EDFE07130100010200010555 +:10039000010906A101050719E029E71500250195C6 +:1003A0000875018102050819012905950575019156 +:1003B000029501750391010507190029771500259C +:1003C00001957875018102C005010980A1018502AE +:1003D00016010026B7001A01002AB7007510950112 +:1003E0008100C0050C0901A1018503160100269CAE +:1003F000021A01002A9C02751095018100C00501B6 +:100400000902A1010901A100050919012905150029 +:10041000250195057501810295017503810105018D +:10042000093009311581257F950275088106093843 +:100430001581257F950175088106050C0A3802157E +:1004400081257F950175088106C0C005010906A1B7 +:1004500001050719E029E7150025019508750181B7 +:100460000295017508810105081901290595057591 +:100470000191029501750391010507190029FF15E6 +:100480000025FF950675088100C0000000000000EF +:100490000000000000010204060A0F17202C3A4A4F +:1004A0005D71879DB3C7DAE9F5FCFFFCF5E9DAC7B2 +:1004B000B39D87715D4A3A2C20170F0A060402018A +:1004C0000000000000000000000011241FBECFEF5C +:1004D000DAE0DEBFCDBF04B603FE27C08091ED0198 +:1004E0009091EE01A091EF01B091F0018730904B17 +:1004F000A740B04BD1F41092ED011092EE01109292 +:10050000EF011092F00114BE84B7877F84BF0FB64D +:10051000F894A895809160008861809360001092A3 +:1005200060000FBEE0E0FFE3099511E0A0E0B1E05C +:10053000E4EBF5E402C005900D92A433B107D9F7BE +:1005400021E0A4E3B1E001C01D92AD3EB207E1F7A6 +:100550000E940A090C94D8220C94000061110BC06F +:10056000FC018281882321F085EE0E94780F03C070 +:1005700085EE0E94401080E090E00895089560911B +:10058000B1017091B2018091B3019091B4010E94C8 +:10059000C81956985E9825982D9826982E982798D1 +:1005A0002F98813019F0823021F00895259A2D9AE4 +:1005B0000895269A2E9A08950C94BF0256985E9834 +:1005C00025982D9826982E9827982F988FEF90E0B1 +:1005D000909389008093880090938B0080938A0089 +:1005E00090938D0080938C00259A2D9A2FEF80E7B1 +:1005F00092E0215080409040E1F700C00000269A30 +:100600002E9A2FEF80E792E0215080409040E1F752 +:1006100000C00000279A2F9A2FEF80E792E0215028 +:1006200080409040E1F700C0000025982D982FEF02 +:1006300080E792E0215080409040E1F700C0000048 +:1006400026982E982FEF80E792E02150804090402E +:10065000E1F700C0000027982F9856985E982598DB +:100660002D9826982E9827982F98089589EA809398 +:10067000800089E08093810024982C983F988AB16B +:100680008F748AB96E98479A8BB1806B8BB9769AC2 +:100690000E94DE020C94BE0280E2809300018091F1 +:1006A000340181110EC00E949B0381E080933401CC +:1006B0002FEF83ED90E3215080409040E1F700C0A0 +:1006C000000080E40E94A1038093000181112EC0EC +:1006D0000E94CB0380930001811128C00E94CB03AC +:1006E00080930001811122C08FE30E94CB0380938D +:1006F000000181111BC00E94C30380E40E94A1037A +:1007000080930001811112C08CE00E94CB03809382 +:10071000000181110BC00E94CB0380930001811165 +:1007200005C08FE30E94CB03809300010E94C303A6 +:100730008091000108951092B9008AE08093B8007A +:10074000089594EA9093BC009091BC0097FFFCCF71 +:100750009091B900987F983021F0903111F081E0AC +:1007600008958093BB0084E88093BC008091BC0016 +:1007700087FFFCCF8091B900887F883111F08034E9 +:1007800071F780E0089584E98093BC008091BC00FB +:1007900084FDFCCF08958093BB0084E88093BC0067 +:1007A0008091BC0087FFFCCF9091B900987F81E0D9 +:1007B000983209F480E0089584E88093BC00809129 +:1007C000BC0087FFFCCF8091BB00089580910001A1 +:1007D000811115C080E40E94A10380930001811162 +:1007E0000CC082E10E94CB0380930001811105C0FF +:1007F0008FEF0E94CB03809300010E94C30384B15A +:10080000807F84B985B1807F85B98AB1837F8AB9B9 +:100810008BB1837F8BB93E98469808950E944C0314 +:10082000809300010E94E60380B38C7080BB81B38B +:10083000836F81BBE4E4F1E0A6E3B1E011921D9285 +:1008400081E0E235F807D1F70C9436039F92AF921E +:10085000BF92CF92DF92EF92FF920F931F93CF93AD +:10086000DF9380910001882379F0809135018F5FBB +:1008700080933501811108C00E944C0380930001D0 +:10088000811102C00E94DE0286E3E82E81E0F82E8C +:100890008701C0E0D0E0BB24B39492E0A92ECC2421 +:1008A000C394D12CC730D10500F58091000181118E +:1008B00064C080E40E94A10380930001811112C0F2 +:1008C00082E10E94CB038093000181110BC0C6011D +:1008D0000C2E01C0880F0A94EAF780950E94CB0382 +:1008E000809300010E94C30348C0CA30A1F028F4DD +:1008F000C83059F0C93061F005C0CC3089F070F0D3 +:10090000CD3089F0209A289810C0219A29980DC0DE +:10091000229A2A980AC0239A2B9807C0529A01C09B +:10092000539A5B9802C03E9A4698E0EAEA95F1F73E +:100930008FB181708B25799902C032E001C030E01F +:10094000832B7C9902C034E001C030E0832B7D9979 +:1009500002C028E001C020E0822B7E9902C090E115 +:1009600001C090E0892B9FB19095991F9927991FFD +:100970009295990F907E892B0FC080910001811173 +:100980004AC080E40E94A10380930001882381F182 +:10099000912C0E94C303892DD8019C91981719F0BE +:1009A0008C93A09201010E94E60321960F5F1F4FD6 +:1009B000CE30D10509F076CF80910101882369F10D +:1009C000815080930101882339F0EFE9FFE03197EE +:1009D000F1F700C0000021C0E4E4F1E0D7018D91FF +:1009E0007D018193B4E4EB16B1E0FB06B9F715C0C5 +:1009F00083E10E94CB03809300018111C9CF81E480 +:100A00000E94A103809300018111C2CF0E94DC03E8 +:100A1000982E9094BECF80E0BFCF0E94DC0281E090 +:100A2000DF91CF911F910F91FF90EF90DF90CF90CA +:100A3000BF90AF909F900895E82FF0E0EC5BFE4FE1 +:100A40008081089508958B3B910580F4883A910543 +:100A500048F5853A9105D8F48430910508F0B2C084 +:100A6000019709F06EC081E090E00895803E910505 +:100A700008F467C0883E910508F4A4C09C01205F7B +:100A800031092031310508F05CC090650895853A40 +:100A9000910509F459C0863A910509F058C082E8D9 +:100AA00090E40895883A910509F454C0893A910573 +:100AB00009F453C08A3A910509F452C08B3A910562 +:100AC00009F451C08C3A910509F450C08D3A910552 +:100AD00009F44FC0803B910509F44EC08E3A910550 +:100AE00009F44DC08F3A910509F44CC0813B910542 +:100AF00009F44BC0823B910509F44AC0833B910540 +:100B000009F449C0843B910509F448C0853B91052F +:100B100009F447C0863B910509F446C0873B91051F +:100B200009F445C0883B910509F444C0893B91050F +:100B300009F443C08A3B910509F442C080E094E483 +:100B4000089580E090E0089581E890E4089583E8B6 +:100B500090E4089582EE94E4089589EE94E4089573 +:100B60008AEE94E4089585EB94E4089586EB94E48A +:100B7000089587EB94E408958CEC94E408958DEC4B +:100B800094E4089583E895E408958AE895E4089547 +:100B900082E995E4089584E995E4089581E296E474 +:100BA000089583E296E4089584E296E4089585E248 +:100BB00096E4089586E296E4089587E296E408951F +:100BC0008AE296E40895089524E5829FC0011124E5 +:100BD000FC0126E0729FE00DF11D1124E60FF11DCE +:100BE000EE0FFF1FEC51FF4F859194910895880FF0 +:100BF000991FFC01E05AF040859194910895880F67 +:100C0000991FFC01E052FF4F85919491089524E5CE +:100C1000829FC0011124FC0146E0749FE00DF11D8C +:100C20001124E60FF11DEE0FFF1FEC51FF4F8591D0 +:100C300094919C013A9521154FE1340708F425C1A0 +:100C40003F512115304120F49F700E94FF05089507 +:100C50009C0130532115304118F49927906C089568 +:100C6000811520E5920769F40E94B9134FEF84E3E0 +:100C70009CE0415080409040E1F700C000000C949F +:100C8000C01A813020E5920731F48091CC01816057 +:100C90008093CC0108959C0130552115304108F016 +:100CA0005CC0292F33272F70332721303105E9F419 +:100CB000AC0164E0440F551F6A95E1F74427537077 +:100CC000BC016370772702C0220F331F6A95E2F7D9 +:100CD0003C68242B352B73E0880F991F7A95E1F738 +:100CE00080769927822B932B08952230310529F4A1 +:100CF000982F8827816F906A089523303105A1F4D9 +:100D0000AC0133E0440F551F3A95E1F7407E577030 +:100D10008370992721E030E002C0220F331F8A95AB +:100D2000E2F7C9019C6816C02430310531F5AC01E9 +:100D300023E0440F551F2A95E1F7407E57708370DA +:100D4000992721E030E002C0220F331F8A95E2F795 +:100D5000C9019A68842B952B08959C013057211561 +:100D6000304118F49F70906208959C01305821150D +:100D7000304118F49F70906A0895803E9105E0F428 +:100D8000803C910558F58133910509F46FC048F412 +:100D90008932910509F463C08A32910509F46DC066 +:100DA00072C089339105E9F082389105D1F085331D +:100DB000910509F44DC067C0833E910581F138F477 +:100DC000803E9105B9F0823E9105D9F05CC0863E27 +:100DD000910561F1873E9105A1F155C00E94F7058B +:100DE00008952091DE0120FD02C021FF4CC080EE5D +:100DF00090E049C08091DE0180FFF9CF89E390E067 +:100E000042C08091DE0182FF0EC08091DE0184FF2E +:100E100003C080E090E037C083EE90E034C0809162 +:100E2000DE0182FFF2CF82EE90E02DC08091DE01E4 +:100E300083FF0BC08091DE0184FDEBCF87EE90E055 +:100E400022C08091DE0183FFF5CF86EE90E01BC0CB +:100E50008091DE0185FF07C089E290E014C0809197 +:100E6000DE0185FFF9CF85E390E00DC08091DE01C2 +:100E700086FF07C08AE290E006C08091DE0186FF0F +:100E8000F9CF81E390E00E942305089508958091B1 +:100E900062010895CF93DF9300D01F92CDB7DEB7E4 +:100EA0009C018091E401843019F593E099833B83A0 +:100EB0002A839093E9008FEF9091E800815095FD8F +:100EC00006C095ED9A95F1F700008111F5CF80915C +:100ED000E80085FF0DC040E050E063E070E0CE0127 +:100EE00001960E94B7098091E8008E778093E80010 +:100EF0000F900F900F90DF91CF910895CF93DF93D4 +:100F000000D01F92CDB7DEB72091E401243021F547 +:100F100022E029839B838A8383E08093E9008FEF1B +:100F20009091E800815095FD06C095ED9A95F1F7F6 +:100F300000008111F5CF8091E80085FF0DC040E0F1 +:100F400050E063E070E0CE0101960E94B709809105 +:100F5000E8008E778093E8000F900F900F90DF915C +:100F6000CF9108959C018091E4018430F9F482E0EE +:100F70008093E9009FEF8091E800915085FD06C0C5 +:100F800085ED8A95F1F700009111F5CF8091E80089 +:100F900085FF0CC040E050E065E070E0C9010E94B0 +:100FA000B7098091E8008E778093E8000895CF9389 +:100FB000DF93EC018091E401843009F046C0909108 +:100FC0000C019923D9F090910D019923B9F08093E8 +:100FD000E9008FEF9091E800815095FD06C095E102 +:100FE0009A95F1F700008111F5CF8091E80085FF17 +:100FF0002CC040E050E060E170E017C081E08093D9 +:10100000E9008FEF9091E800815095FD06C095EDC5 +:101010009A95F1F700008111F5CF8091E80085FFE6 +:1010200014C040E050E068E070E0CE010E94B709D3 +:101030008091E8008E778093E80080E1FE01A2E5D0 +:10104000B1E001900D928A95E1F7DF91CF9108957B +:101050008091E301811109C00E94480B0E94A50BF9 +:101060008091E20084608093E20008951092E30191 +:10107000089508950C94F6200E94561A0E94FC20B0 +:101080000E94500E0C94460742E061EC81E00E9401 +:10109000C10A42E061EC82E00E94C10A42E061ECD8 +:1010A00083E00E94C10A42E161EC84E00C94C10A31 +:1010B0008091E601833009F455C030F4813071F03D +:1010C000823009F48EC008958A3009F47AC08B30DA +:1010D00009F460C0893009F09CC020C08091E5010E +:1010E000813A09F096C08091E800877F8093E800FC +:1010F0008091E9019091EA01892B21F460E182E578 +:1011000091E003C060E080E090E070E00E94020A9D +:101110008091E8008B778093E80008958091E50145 +:10112000813209F076C08091E9019091EA0100973F +:1011300019F0039709F06DC08091E800877F8093D4 +:10114000E8008091E80082FD05C08091E4018111F2 +:10115000F8CF5FC08091F100809362018091E80038 +:101160008B7753C08091E501813A09F052C080919C +:10117000E9019091EA01892B09F04BC08091E800C8 +:10118000877F8093E8008091E80080FFFCCF80910A +:101190000C0136C08091E5018132D9F58091E901D9 +:1011A0009091EA01892BA9F58091E800877F8093CF +:1011B000E8000E94F60A8091E70180930C010C94EC +:1011C000B9138091E501813221F58091E800877F94 +:1011D0008093E8000E94F60A8091E8018093630101 +:1011E00008958091E501813AA1F48091E800877F1C +:1011F0008093E8008091E80080FFFCCF809163013C +:101200008093F1008091E8008E778093E8000C9441 +:10121000F60A089584B7877F84BF0FB6F894A8951F +:1012200080916000886180936000109260000FBE22 +:1012300090E080E80FB6F89480936100909361008D +:101240000FBE0E949F0E0E94480B0E94A50B80912A +:10125000E20084608093E20078940E94300E0E9445 +:10126000A10E82E091E00E944B0E0E94E42080914A +:10127000E401853069F40E94181A8091E201882304 +:10128000B1F30E94421A882391F30E94A109EFCF83 +:101290000E94A70EECCF292F332723303105C9F048 +:1012A00060F42130310581F02230310509F041C070 +:1012B0008DE690E020E133E040C021323105E1F0DD +:1012C0002232310531F135C082E190E02DE733E083 +:1012D00034C099278130910549F028F0029749F5EB +:1012E000ECEDF2E005C0ECE0F3E002C0E4EFF2E088 +:1012F000849190E09F0121C06430D8F4E62FF0E0A3 +:10130000EE0FFF1FEE5DFE4F2081318189E090E0FE +:1013100014C0643070F470E0FB01EE0FFF1FE65E56 +:10132000FE4F20813181FB01EA5EFE4F808190E01B +:1013300004C080E090E020E030E0FA0131832083B7 +:10134000089580E189BD82E189BD09B400FEFDCF29 +:101350008091D8008F7D8093D8008091E0008260DA +:101360008093E0008091E00081FDFCCF0895CF9252 +:10137000DF92EF92FF920F931F93CF93DF93EC01D5 +:101380008B016A010E94150B811133C0C114D10475 +:1013900039F0F60180819181081B190BC80FD91F04 +:1013A000E12CF12C0115110519F18091E80085FD62 +:1013B00016C08091E8008E778093E800C114D104B4 +:1013C00049F0F60180819181E80EF91EF182E082F8 +:1013D00085E00FC00E94150B882321F30AC0899174 +:1013E0008093F10001501109FFEFEF1AFF0ADACFE5 +:1013F00080E0DF91CF911F910F91FF90EF90DF90F0 +:10140000CF9008952091EB013091EC01261737071A +:1014100048F06115710539F42091E8002E7720938A +:10142000E80001C0B901FC0120E06115710579F106 +:101430008091E4018823F1F18530F1F18091E80099 +:1014400083FD3CC08091E80082FD2EC08091E800C1 +:1014500080FFEBCF2091F3008091F20090E0922B7F +:101460006115710551F08830910538F42191209370 +:10147000F100615071090196F3CF21E0089709F05E +:1014800020E08091E8008E778093E800CECF211194 +:10149000CFCF0AC08091E401882361F0853061F0EC +:1014A0008091E80083FD0AC08091E80082FFF2CFBE +:1014B00080E0089582E0089583E0089581E0089532 +:1014C0002091EB013091EC012617370748F06115A8 +:1014D000710539F42091E8002E772093E80001C0CF +:1014E000B901FC0120E06115710591F18091E401E1 +:1014F000882309F440C0853009F43FC08091E8009A +:1015000083FD3DC08091E80082FD2FC08091E800FE +:1015100080FFE9CF2091F3008091F20090E0922BC0 +:101520006115710559F08830910540F4249120939C +:10153000F1003196615071090196F2CF21E00897D0 +:1015400009F020E08091E8008E778093E800CBCF0F +:101550002111CCCF0AC08091E401882361F085304D +:1015600061F08091E80083FD0AC08091E80082FF6D +:10157000F2CF80E0089582E0089583E0089581E04D +:101580000895982F973068F59093E900981739F0EF +:101590007091EC002091ED005091F00003C0242FD9 +:1015A000762F50E021FD02C09F5FECCF3091EB0021 +:1015B0003E7F3093EB003091ED003D7F3093ED00A6 +:1015C0003091EB0031603093EB007093EC0020938E +:1015D000ED005093F0002091EE0027FDE5CF80E074 +:1015E00008958F708093E90081E008958091E5016E +:1015F00087FF11C08091E80082FD05C08091E40161 +:101600008111F8CF11C08091E8008B770BC08091D9 +:10161000E401882349F08091E80080FFF8CF8091B1 +:10162000E8008E778093E80008952091E4003091DF +:10163000E50095E64091EC00842F817040FF23C0C7 +:101640008091E80080FD1DC08091E401882399F01D +:10165000853099F08091EB0085FD11C04091E40048 +:101660005091E5002417350729F3915011F09A01A4 +:10167000E1CF84E0089582E0089583E0089581E059 +:10168000089580E008954091E80042FFDDCF08957D +:101690000E94B60B0E94BE0BE0EEF0E080818160FC +:1016A0008083E8EDF0E080818F77808319BCA7ED1F +:1016B000B0E08C918E7F8C9380818F7E808310929E +:1016C000E30108950F931F93CF93DF930E94B60B0E +:1016D0000E94BE0BC8EDD0E088818F778883888117 +:1016E0008068888388818F7D888319BC1092E4018B +:1016F0001092E0011092E2011092E10100EE10E080 +:10170000F80180818B7F808388818160888342E0BB +:1017100060E080E00E94C10AE1EEF0E080818E7F0F +:101720008083E2EEF0E08081816080838081886048 +:101730008083F80180818E7F8083888180618883A7 +:10174000DF91CF911F910F910895E8EDF0E0808136 +:101750008F7E8083E7EDF0E080818160808384E08C +:1017600082BF81E08093E3010C94620BE8EDF0E02E +:1017700080818E7F80831092E20008951092DA00BB +:101780001092E10008951F920F920FB60F9211244C +:101790002F933F934F935F936F937F938F939F9379 +:1017A000AF93BF93EF93FF938091E10082FF0BC053 +:1017B0008091E20082FF07C08091E1008B7F8093DF +:1017C000E1000E942F0E8091DA0080FF1FC08091FF +:1017D000D80080FF1BC08091DA008E7F8093DA00F2 +:1017E0008091D90080FF0DC080E189BD82E189BD73 +:1017F00009B400FEFDCF81E08093E4010E94280837 +:1018000005C019BC1092E4010E9436088091E100E5 +:1018100080FF19C08091E20080FF15C08091E20036 +:101820008E7F8093E2008091E20080618093E200ED +:101830008091D80080628093D80019BC85E08093A5 +:10184000E4010E943A088091E10084FF30C0809159 +:10185000E20084FF2CC080E189BD82E189BD09B42A +:1018600000FEFDCF8091D8008F7D8093D8008091BD +:10187000E1008F7E8093E1008091E2008F7E809373 +:10188000E2008091E20081608093E2008091E001BB +:10189000882311F084E007C08091E30087FD02C037 +:1018A00081E001C083E08093E4010E943C088091C4 +:1018B000E10083FF29C08091E20083FF25C0809171 +:1018C000E100877F8093E10082E08093E401109241 +:1018D000E0018091E1008E7F8093E1008091E20041 +:1018E0008E7F8093E2008091E20080618093E2002D +:1018F00042E060E080E00E94C10A8091F0008860D0 +:101900008093F0000E943908FF91EF91BF91AF9151 +:101910009F918F917F916F915F914F913F912F9107 +:101920000F900FBE0F901F9018951F920F920FB639 +:101930000F9211242F933F934F935F936F937F9355 +:101940008F939F93AF93BF93CF93DF93EF93FF93C7 +:10195000C091E900CF708091EC00D82FD17080FD4C +:10196000D0E81092E9008091F000877F8093F0002A +:1019700078940E94D90C1092E9008091F000886060 +:101980008093F000CD2BCF70C093E900FF91EF91D1 +:10199000DF91CF91BF91AF919F918F917F916F9187 +:1019A0005F914F913F912F910F900FBE0F901F901D +:1019B00018951F93CF93DF93CDB7DEB7AA970FB6D5 +:1019C000F894DEBF0FBECDBFE5EEF1E08091F100EF +:1019D000819321E0ED3EF207C9F70E9458088091FB +:1019E000E80083FF24C18091E5019091E601492F31 +:1019F00050E04A30510508F01AC1FA01EA5AFF4F87 +:101A00000C948D22803881F0823809F010C18091C9 +:101A1000E9018F708093E9008091EB0085FB8827B6 +:101A200080F91092E90006C08091E1019091E201F5 +:101A3000911182609091E800977F9093E8008093E5 +:101A4000F1001092F100C8C0282F2D7F09F0EFC0DF +:101A5000882319F0823061F0EAC08091E70181307B +:101A600009F0E5C0933009F080E08093E2012BC0DB +:101A70008091E701811127C08091E9018F7009F4FD +:101A8000D6C08093E9002091EB0020FF1CC093306A +:101A900021F48091EB00806214C09091EB00906182 +:101AA0009093EB0021E030E0A90102C0440F551FE4 +:101AB0008A95E2F74093EA001092EA008091EB00E9 +:101AC00088608093EB001092E9008091E800877FA6 +:101AD00086C08111ACC01091E7011F778091E300AF +:101AE0008078812B8093E3008091E800877F80934A +:101AF000E8000E94F60A8091E80080FFFCCF809108 +:101B0000E30080688093E300111102C082E001C00D +:101B100083E08093E4018BC08058823008F087C056 +:101B20008091E7019091E8018C3D53E0950779F5AC +:101B300083E08A838AE289834FB7F894DE011396A3 +:101B400020E03EE051E2E32FF0E050935700E491B3 +:101B500020FF03C0E295EF703F5FEF708E2F90E0A3 +:101B6000EA3010F0C79601C0C0968D939D932F5F09 +:101B7000243149F74FBF8091E800877F8093E800C8 +:101B80006AE270E0CE0101960E94020A14C0AE0122 +:101B90004F5F5F4F6091E9010E944B09BC01892BA7 +:101BA00009F445C09091E800977F9093E8008981FF +:101BB0009A810E94600A8091E8008B778093E80008 +:101BC00036C08038A1F58091E800877F8093E800D7 +:101BD0008091E0018093F1008091E8008E778093FE +:101BE000E8000E94F60A23C0811121C08091E7011C +:101BF0009091E80199270297D4F48091E800877FBB +:101C00008093E8008091E7018093E0010E94F60A4A +:101C10008091E001811106C08091E30087FD02C040 +:101C200081E001C084E08093E4010E944408809137 +:101C3000E80083FF0AC08091E800877F8093E80076 +:101C40008091EB0080628093EB00AA960FB6F89427 +:101C5000DEBF0FBECDBFDF91CF911F9108950895D4 +:101C6000CF938091E4018823A1F0C091E900CF7067 +:101C70009091EC00892F817090FD80E8C82B109224 +:101C8000E9008091E80083FD0E94D90CCF70C093D9 +:101C9000E900CF91089590936901809368010895B8 +:101CA000E0916801F0916901309721F00190F08195 +:101CB000E02D099480E00895E0916801F0916901B8 +:101CC000309721F00280F381E02D09940895E0918E +:101CD0006801F0916901309721F00480F581E02DD1 +:101CE00009940895209166013091670128173907FA +:101CF00071F09093670180936601E0916801F09123 +:101D00006901309721F00680F781E02D099408954C +:101D100020916401309165012817390771F0909383 +:101D2000650180936401E0916801F0916901309749 +:101D300021F00084F185E02D0994089508950C9414 +:101D40009E0E0E945C1A0E940E040C94221BCF92DD +:101D5000DF92EF92FF920F931F93CF93DF93CDB754 +:101D6000DEB72B970FB6F894DEBF0FBECDBF0E9433 +:101D700026048BE6C82E81E0D82E00E010E0E02E8D +:101D8000802F0E941C05F60141916F01F82EF42668 +:101D9000B1F40F5F1F4F0E30110589F78FEF898364 +:101DA0008A831B820E94651A8160782F9D838C83B1 +:101DB00049815A816B818D810E944A0F40C0909168 +:101DC000CC0191FF04C08B870E9422058B8520E007 +:101DD00030E04F2D50E0922FBA01022E02C07595CF +:101DE00067950A94E2F760FF24C02E83EF8221E01A +:101DF00030E0690102C0CC0CDD1C9A95E2F790E05E +:101E00008C219D21892B09F420E028870E94651AE6 +:101E10008160782F9A8789874E815F8168858A855E +:101E20000E944A0FF801E559FE4F8081C826C08202 +:101E300006C02F5F3F4F2630310569F6AACF0E94BA +:101E4000091E0E94500E90916A018917A1F00E940C +:101E5000500E80936A012B960FB6F894DEBF0FBE2A +:101E6000CDBFDF91CF911F910F91FF90EF90DF9049 +:101E7000CF900C9446072B960FB6F894DEBF0FBE9A +:101E8000CDBFDF91CF911F910F91FF90EF90DF9029 +:101E9000CF900895CF93DF93CDB7DEB72B970FB6D2 +:101EA000F894DEBF0FBECDBF4F83588769877A870E +:101EB0008B87DE01119686E0FD0111928A95E9F784 +:101EC00085E0FE01379601900D928A95E1F74981F0 +:101ED0005A816B817C818D819E810E944D162B964B +:101EE0000FB6F894DEBF0FBECDBFDF91CF9108953E +:101EF000CF93C82F882309F4C1C0823859F40E94B7 +:101F0000500E81FDBBC089E30E94EA180E94A2190D +:101F100089E30CC0833879F40E94500E80FDAEC076 +:101F200083E50E94EA180E94A21983E50E942919FC +:101F3000CF910C94A219843859F40E94500E82FD5E +:101F40009DC087E40E94EA180E94A21987E4EECFA0 +:101F50008CEF8C0F813A48F48C2F0E94492081111C +:101F60008DC08C2F0E94EA18E3CF80E28C0F88305E +:101F700048F4C77081E001C0880FCA95EAF70E9453 +:101F80006B19D6CF8BE58C0F833078F4C53A29F0E6 +:101F9000C63A31F083E890E005C081E890E002C0E5 +:101FA00082E890E0CF910C94720E88E58C0F83311B +:101FB00008F064C0C83A39F1C93A41F1CA3A49F166 +:101FC000CB3A51F1CC3A59F1CD3A61F1C03B69F1CC +:101FD000CE3A71F1CF3A79F1C13B81F1C23B89F13F +:101FE000C33B91F1C43B99F1C53BA1F1C63BA9F1BB +:101FF000C73BB1F1C83BB9F1C93BC1F1CA3BC9F11B +:1020000080E090E038C082EE90E035C089EE90E04C +:1020100032C08AEE90E02FC085EB90E02CC086EBBA +:1020200090E029C087EB90E026C08CEC90E023C0C4 +:102030008DEC90E020C083E891E01DC08AE891E03B +:102040001AC082E991E017C084E991E014C081E2EE +:1020500092E011C083E292E00EC084E292E00BC0F5 +:1020600085E292E008C086E292E005C087E292E055 +:1020700002C08AE292E0CF910C94880ECF9108952D +:10208000882309F44BC0823859F40E94500E81FF16 +:1020900045C089E30E94EA180E94A21989E30CC096 +:1020A000833871F40E94500E80FF38C083E50E948F +:1020B000EA180E94A21983E50E9429190C94A2191A +:1020C000843859F40E94500E82FF28C087E40E9491 +:1020D000EA180E94A21987E4EFCF9CEF980F913A7B +:1020E00058F390E2980F983050F4877091E001C057 +:1020F000990F8A95EAF7892F0E947119DFCF9BE526 +:10210000980F933020F480E090E00C94720E885A7F +:10211000833120F480E090E00C94880E08958823A9 +:1021200021F00E946B190C94A2190895882321F0C4 +:102130000E9471190C94A2190895BF92CF92DF9258 +:10214000EF92FF920F931F93CF93DF9300D000D0B5 +:1021500000D0CDB7DEB77C0185E0F701DE01119636 +:1021600001900D928A95E1F7F70183819481892B83 +:1021700009F4DDC2908181818F3F19F49F3F09F4FA +:10218000D6C2F7010281258122952F7099838A8317 +:1021900089819A812E830E94A918182FB92E0E9436 +:1021A000A8180E946F17EB2DE295EF704E2F50E0AC +:1021B000FA01E05AFF4F2E810C948D228B2D807FE7 +:1021C0009B2D9F70F92E882319F0F29480EFF8224E +:1021D000002349F0FF2009F457C28F2D0E947B197C +:1021E0000E94A21951C2812F0E944010FF2009F4C1 +:1021F0009EC28F2D0E94811926960FB6F894DEBFDD +:102200000FBECDBFDF91CF911F910F91FF90EF9047 +:10221000DF90CF90BF900C94A2193B2D307F8B2D77 +:102220008F70303211F08295807F112319F01130B8 +:1022300021F12CC00023B9F0222309F490C12130F0 +:1022400009F08DC126960FB6F894DEBF0FBECDBF44 +:10225000DF91CF911F910F91FF90EF90DF90CF9082 +:10226000BF900C948B19222319F0213009F45FC21E +:102270008E830E948E198E8186C1002321F0223028 +:1022800008F055C26CC1211152C27DC1002321F05A +:10229000222309F464C1F8C1222309F474C109C2DC +:1022A0008B2D86958695837019F08130D1F03FC2D1 +:1022B000002321F0812F9B2D937002C080E090E0DD +:1022C00026960FB6F894DEBF0FBECDBFDF91CF913B +:1022D0001F910F91FF90EF90DF90CF90BF900C94E3 +:1022E000720E002321F0812F9B2D937002C080E09D +:1022F00090E026960FB6F894DEBF0FBECDBFDF91FB +:10230000CF911F910F91FF90EF90DF90CF90BF90F2 +:102310000C94880E812F002319F00E94111D02C019 +:102320000E94791D26960FB6F894DEBF0FBECDBF72 +:10233000DF91CF911F910F91FF90EF90DF90CF90A1 +:10234000BF900C94FE1D8B2D837009F075C0011198 +:10235000EEC1812F829586958770880F880F912F07 +:102360009F70C92ED12CE12CF12C082E04C0CC0C6E +:10237000DD1CEE1CFF1C0A94D2F714FF12C00FE004 +:1023800010E020E030E004C0000F111F221F331FB7 +:102390008A95D2F7C901B80160957095809590959E +:1023A00003C060E070E0CB014B2D4695469543702D +:1023B0004230C1F060F56C297D298E299F2941307A +:1023C00051F126960FB6F894DEBF0FBECDBFDF9158 +:1023D000CF911F910F91FF90EF90DF90CF90BF9022 +:1023E0000C9496176C297D298E299F2926960FB665 +:1023F000F894DEBF0FBECDBFDF91CF911F910F913B +:10240000FF90EF90DF90CF90BF900C94B2170E9496 +:102410009617C701B60126960FB6F894DEBF0FBE19 +:10242000CDBFDF91CF911F910F91FF90EF90DF9083 +:10243000CF90BF900C947A17002319F08B2D8170E8 +:1024400001C08695882309F472C1812F82958695F3 +:102450008770880F880F912F9F70C92ED12CE12C87 +:10246000F12C082E04C0CC0CDD1CEE1CFF1C0A94C1 +:10247000D2F714FF12C00FE010E020E030E004C0FB +:10248000000F111F221F331F8A95D2F7C901B8010F +:10249000609570958095909503C060E070E0CB01E9 +:1024A0004B2D4695469543704230C1F060F56C293E +:1024B0007D298E299F29413051F126960FB6F89437 +:1024C000DEBF0FBECDBFDF91CF911F910F91FF9067 +:1024D000EF90DF90CF90BF900C9470186C297D29FD +:1024E0008E299F2926960FB6F894DEBF0FBECDBF6A +:1024F000DF91CF911F910F91FF90EF90DF90CF90E0 +:10250000BF900C948C180E947018C701B6012696D3 +:102510000FB6F894DEBF0FBECDBFDF91CF911F91F4 +:102520000F91FF90EF90DF90CF90BF900C945418D4 +:10253000103FD1F118F4103E50F4A1C0123F09F43D +:1025400063C008F44CC0133F09F473C098C01F70F7 +:102550008B2D8F710023A1F00E94ED17812F2696FD +:102560000FB6F894DEBF0FBECDBFDF91CF911F91A4 +:102570000F91FF90EF90DF90CF90BF900C948F1051 +:102580000E940E18812F26960FB6F894DEBF0FBE5C +:10259000CDBFDF91CF911F910F91FF90EF90DF9012 +:1025A000CF90BF900C9496100023A9F02111BFC0CA +:1025B0008B2D8F7126960FB6F894DEBF0FBECDBF60 +:1025C000DF91CF911F910F91FF90EF90DF90CF900F +:1025D000BF900C943318223008F0A9C0E9CF002333 +:1025E000A9F08B2D8F7126960FB6F894DEBF0FBE23 +:1025F000CDBFDF91CF911F910F91FF90EF90DF90B2 +:10260000CF90BF900C94ED17002359F38B2D8F7151 +:1026100026960FB6F894DEBF0FBECDBFDF91CF91E7 +:102620001F910F91FF90EF90DF90CF90BF900C948F +:102630000E18002399F08B2D8F7126960FB6F89403 +:10264000DEBF0FBECDBFDF91CF911F910F91FF90E5 +:10265000EF90DF90CF90BF900C94D81726960FB6CE +:10266000F894DEBF0FBECDBFDF91CF911F910F91C8 +:10267000FF90EF90DF90CF90BF900C94CE17002387 +:10268000A9F0222309F4ADCF812F26960FB6F89436 +:10269000DEBF0FBECDBFDF91CF911F910F91FF9095 +:1026A000EF90DF90CF90BF900C94780F222309F425 +:1026B000ADCF812F26960FB6F894DEBF0FBECDBFEB +:1026C000DF91CF911F910F91FF90EF90DF90CF900E +:1026D000BF900C9440104B2D4F70612FC7010E948A +:1026E000AE0226960FB6F894DEBF0FBECDBFDF91C7 +:1026F000CF911F910F91FF90EF90DF90CF90BF90FF +:102700000C94F2164B2D4F70612FC70126960FB611 +:10271000F894DEBF0FBECDBFDF91CF911F910F9117 +:10272000FF90EF90DF90CF90BF900C94E30526963A +:102730000FB6F894DEBF0FBECDBFDF91CF911F91D2 +:102740000F91FF90EF90DF90CF90BF9008950E947F +:1027500088190E945D190E94A2190E94AE1E0E9453 +:10276000FE1D80E090E00E94720E80E090E00C94EC +:10277000880E0E9478190C94A7130E94A918292F7B +:1027800022952F702C3030F42A3048F42250223019 +:1027900078F405C02C3041F02F3031F009C0803E74 +:1027A00048F0803F29F406C093FB882780F90895FC +:1027B00080E0089581E00895CF93DF9300D000D0AA +:1027C0001F92CDB7DEB70F900F900F900F900F9024 +:1027D000DF91CF910895CF93DF9300D000D000D048 +:1027E000CDB7DEB726960FB6F894DEBF0FBECDBFCD +:1027F000DF91CF9108951F93CF93DF93C09179011B +:1028000016E080917A01C81799F0D0E01C9FF00182 +:102810001D9FF00D1124E558FE4F408151816281CA +:102820007381848195810E94EB132196C770E9CF53 +:10283000DF91CF911F9108954091AB015091AC0170 +:102840006091AD017091AE018091AF019091B001A6 +:102850000C94EB138091B00182958F7009F054C0F5 +:102860008091AD01882309F44FC080917901A09136 +:102870007A014091AE015091AF016091AB0170912E +:10288000AC01B6E08A1709F43FC090E0411551054C +:10289000C1F17F3F11F46F3FA1F1B89FF001B99FE3 +:1028A000F00D1124E558FE4F218127132AC0208105 +:1028B000261327C02281211124C0238134812417AB +:1028C000350710F421503109241B350B283C310504 +:1028D000C0F42091B0012F7020612093B00126E058 +:1028E000289FF001299FF00D1124E058FE4F8081B0 +:1028F0008F70806180838BEA91E00E949D100C9420 +:10290000FB1301968770BECF0895CF92DF92EF92AE +:10291000FF920F931F93CF93DF93CDB7DEB76297EC +:102920000FB6F894DEBF0FBECDBF8C0185E0F80175 +:10293000DE011D9601900D928A95E1F7D8014C9128 +:1029400011965C91119712966C918091AE019091C5 +:10295000AF01009709F475C13091AB017091AC01E2 +:102960007F3F19F43F3F09F46CC1F801C380D48064 +:10297000E090AD01EE2009F4BEC02091B001C81670 +:10298000D90628F0D601A81BB90BCD0104C080954B +:1029900090958C0D9D1DFF24F394883C910578F053 +:1029A000F12C207F09F0C4C07C2DD98AC88A89897E +:1029B0000E94DC138BEA91E00E949D10AFC0822F31 +:1029C000807F09F045C0571313C0431311C0611134 +:1029D0000FC02F7020612093B0010E941C148BEA5D +:1029E00091E00E949D108091B001F80185832EC076 +:1029F000CD2819F15F3F11F44F3FF9F0F62E611128 +:102A00001CC08091790120917A0136E0821709F487 +:102A10005BC090E0389FF001399FF00D1124E5581C +:102A2000FE4F7181571306C07081471303C0728136 +:102A3000711103C001968770E9CFF62E662309F461 +:102A40001CC18091B00181608093B001F12C15C14F +:102A5000571309C0431307C0611105C08091B0012D +:102A6000F8018583C8C04D875E878D859E856A8BFA +:102A70000E94BD136A898823D1F16623C1F1209198 +:102A8000B001822F82958F7090E0029774F0809150 +:102A9000AB019091AC0198878F831986DB86CA863B +:102AA0002C87CE0107960E949D1086E0F801ABEAC4 +:102AB000B1E001900D928A95E1F70E942A140E94DC +:102AC0001C14FF24F394D9C04D875E878D859E85A5 +:102AD0000E94A918292F22952F70223008F0C1C01A +:102AE0009F7009F0BBC0805E883008F4C6C0C80182 +:102AF0000E949D10E6CFC816D90608F453C0F6010F +:102B0000E81BF90BCF01883C910508F450C0F12C6B +:102B10007C2DD98AC88A89890E94DC13EBEAF1E00E +:102B200086E0DF011D928A95E9F70E941C14A5C07A +:102B3000571314C0431312C0611110C08091B0012B +:102B4000F8018583C8010E949D1086E0EBEAF1E060 +:102B5000DF011D928A95E9F7FE2C8FC04D875E87B5 +:102B60008D859E856A8B0E94BD136A89882309F42E +:102B7000BECF662309F4BBCF2091B001822F82958E +:102B80008F7090E002970CF490CF8091AB01909100 +:102B9000AC019A8389831B82DD82CC822E83CE0195 +:102BA000019681CF809590958C0D9D1DACCFF62E12 +:102BB000662309F49CCF571333C0431331C02091CF +:102BC000B00120FD24C0822F82958F70482F50E0E5 +:102BD00041155105E1F0D80115962C9315974F300A +:102BE000510549F08F5F982F9295907F822F8F70BB +:102BF000892B15968C93C8010E949D1086E0F801E0 +:102C0000ABEAB1E001900D928A95E1F78ECF86E0B4 +:102C1000F801ABEAB1E001900D928A95E1F72DC081 +:102C20004D875E878D859E850E94BD1381113DCFA6 +:102C30008091B00181608093B001C8010E949D1015 +:102C40001CC0662309F453CF4D875E878D859E8512 +:102C50000E94BD13882309F44ACF27CF811143CFA7 +:102C60000CC0243008F043CF9F7009F43CCFD8014A +:102C700015969C91907F09F036CF8F2D62960FB6F6 +:102C8000F894DEBF0FBECDBFDF91CF911F910F91A2 +:102C9000FF90EF90DF90CF9008951F93CF93DF9335 +:102CA000CDB7DEB72C970FB6F894DEBF0FBECDBF01 +:102CB0004F83588769877A878B879C87CE010796D1 +:102CC0000E948514882371F08A859B85892B09F4DD +:102CD00041C088858F3F09F065C08F818F3F09F023 +:102CE00061C038C086E0FE013796DE011196019082 +:102CF0000D928A95E1F76A857B856115710551F121 +:102D0000FF81E885EF3F11F4FF3F21F120917A0127 +:102D100030E0C9010196877099274091790150E010 +:102D20008417950709F447C0F983EA837D836C8390 +:102D300096E0929FD001939FB00D1124A558BE4FED +:102D4000FE01319601900D929A95E1F780937A01F8 +:102D50000E94FB1316E08091790190917A01891706 +:102D6000B9F1189FC001112485589E4F0E94851407 +:102D7000882371F1E09179011E9FF0011124E5583B +:102D8000FE4F4081518162817381848195810E94CF +:102D9000EB138091790190E00196877099278093D9 +:102DA0007901D9CF4F81588569857A858B859C8536 +:102DB0000E94EB13CFCF0E94B91310927A011092A8 +:102DC0007901EBEAF1E086E0DF011D928A95E9F7EF +:102DD0002C960FB6F894DEBF0FBECDBFDF91CF911A +:102DE0001F910895EF92FF920F931F93CF93DF935C +:102DF0008C01892B09F46CC0F12CEE24E394E801DA +:102E00002196F8018491843740F4843008F051C051 +:102E1000813081F0823019F15BC0853709F444C0FC +:102E2000A8F19CE7980F903708F052C08F770E9466 +:102E3000401041C00E5F1F4FFE01849190E2980F39 +:102E4000983050F48770FE2D01C0FF0F8A95EAF785 +:102E50008F2F0E947B1914C00E94780F2DC00E5F27 +:102E60001F4FFE01849190E2980F983060F48770B4 +:102E7000FE2D01C0FF0F8A95EAF78F2F0E9481195E +:102E80000E94A21919C00E94401016C00E5F1F4F69 +:102E9000FE01C491CC2381F08FE99FE00197F1F707 +:102EA00000C00000C150F6CF0E5F1F4FFE01F4902E +:102EB00003C00E94780F8E018F2D882309F49FCFC5 +:102EC000EFE9FFE03197F1F700C000008150F5CF46 +:102ED000DF91CF911F910F91FF90EF90089508958A +:102EE0006093B5017093B6018093B7019093B801D8 +:102EF0000C94A7130F931F930091B5011091B60185 +:102F00002091B7013091B801DC01CB01802B912BCE +:102F1000A22BB32B8093B5019093B601A093B70178 +:102F2000B093B8011F910F910C94A7130F931F93A7 +:102F30000091B5011091B6012091B7013091B8010F +:102F4000DC01CB0180239123A223B3238093B5011D +:102F50009093B601A093B701B093B8011F910F9160 +:102F60000C94A7130F931F930091B5011091B60114 +:102F70002091B7013091B801DC01CB018027912766 +:102F8000A227B3278093B5019093B601A093B70110 +:102F9000B093B8011F910F910C94A7131092B10137 +:102FA0001092B2011092B3011092B4010C94A713C5 +:102FB00041E050E060E070E004C0440F551F661F20 +:102FC000771F8A95D2F74093B1015093B201609375 +:102FD000B3017093B4010C94A71341E050E060E09A +:102FE00070E004C0440F551F661F771F8A95D2F703 +:102FF0008091B1019091B201A091B301B091B4015F +:10300000482B592B6A2B7B2B4093B1015093B20173 +:103010006093B3017093B4010C94A71341E050E0A6 +:1030200060E070E004C0440F551F661F771F8A954B +:10303000D2F740955095609570958091B10190912F +:10304000B201A091B301B091B401482359236A237E +:103050007B234093B1015093B2016093B30170930D +:10306000B4010C94A71341E050E060E070E004C0AC +:10307000440F551F661F771F8A95D2F78091B101C3 +:103080009091B201A091B301B091B40148275927A2 +:103090006A277B274093B1015093B2016093B3013B +:1030A0007093B4010C94A7130F931F930091B10177 +:1030B0001091B2012091B3013091B401DC01CB0138 +:1030C000802B912BA22BB32B8093B1019093B20153 +:1030D000A093B301B093B4011F910F910C94A71367 +:1030E0000F931F930091B1011091B2012091B30190 +:1030F0003091B401DC01CB0180239123A223B323BF +:103100008093B1019093B201A093B301B093B40145 +:103110001F910F910C94A7130F931F930091B1016E +:103120001091B2012091B3013091B401DC01CB01C7 +:1031300080279127A227B3278093B1019093B201F2 +:10314000A093B301B093B4011F910F910C94A713F6 +:103150000895CF92DF92EF92FF920F931F93CF9338 +:10316000DF938C01C090B101D090B201E090B30127 +:10317000F090B4018091B5019091B601A091B70192 +:10318000B091B801C82AD92AEA2AFB2ACFE1D0E0B7 +:10319000D701C6010C2E04C0B695A79597958795C3 +:1031A0000A94D2F780FF07C0B8018C2F0E9407064F +:1031B0008130910531F4219758F7B80180E00E94E1 +:1031C0000706DF91CF911F910F91FF90EF90DF9055 +:1031D000CF90089590910C019923F1F090910D01F9 +:1031E0009923D1F0982F9695969596959F3080F5D6 +:1031F000E0910E01F0910F01E90FF11D877021E0C0 +:1032000030E0A90102C0440F551F8A95E2F7CA01B8 +:103210009181892B8183089520910E0130910F01B6 +:10322000F90132969FEF40E05191851789F09F3F59 +:1032300019F4511101C0942F4F5F4E30A9F79F3FF1 +:1032400039F0F901E90FF11D97FDFA958283089590 +:10325000089590910C019923F9F090910D01992313 +:10326000D9F0982F9695969596959F3028F5E091F0 +:103270000E01F0910F01E90FF11D877021E030E0A0 +:10328000A90102C0440F551F8A95E2F7CA01809533 +:10329000918189238183089520910E0130910F013E +:1032A000F9013296205F3F4F9081891301C010824F +:1032B0003196E217F307C1F7089581E090E0E091BD +:1032C0000E01F0910F01E80FF91F10820196803175 +:1032D0009105A9F708959091CB01892B8093CB019B +:1032E000089580959091CB0189238093CB01089517 +:1032F0001092CB0108959091CA01892B8093CA0145 +:10330000089580959091CA0189238093CA010895F8 +:103310001092CA0108958093B90108951092B901DD +:10332000089580910E0190910F01FC0131969C014E +:10333000205F3F4F80E0919191118F5FE217F3077B +:10334000D1F70895E0910E01F0910F018091CB012A +:103350008083E0910E01F0910F0190818091CA016C +:10336000892B80838091B901882361F0E0910E015F +:10337000F0910F019081892B80830E949119811116 +:103380001092B90180910E0190910F010C945C0E86 +:10339000CF92DF92EF92FF926C01EE24FF24C114D2 +:1033A000D104E104F10421F0C701B60120E101C01C +:1033B00020E0C72ED82EE92EFF24C114D104E10449 +:1033C000F10419F0285FC701B6016B017C0154E0DC +:1033D000F694E794D794C7945A95D1F7C114D104C1 +:1033E000E104F10419F02C5FC701B6016B017C0107 +:1033F00042E0F694E794D794C7944A95D1F7C11464 +:10340000D104E104F10419F02E5FC701B601DC011B +:10341000CB01B695A79597958795892B8A2B8B2BF2 +:1034200009F02F5F822FFF90EF90DF90CF900895EB +:103430008091E401843011F120E488E190E00FB63E +:10344000F894A895809360000FBE2093600083B726 +:10345000817F846083BF83B7816083BF78948895C0 +:1034600083B78E7F83BF0FB6F894A89580916000D4 +:10347000886180936000109260000FBE08950895E7 +:103480000C943F1ACF930E94401A0E9426040E9477 +:103490003F1AC0E08C2F0E941C05811104C0CF5F31 +:1034A000CE30C1F701C081E0CF9108950E94B913D9 +:1034B0000E94500E0C94460782E084BD93E095BDB7 +:1034C0009AEF97BD80936E0008952FB7F89480917E +:1034D000CD019091CE01A091CF01B091D0012FBF2D +:1034E0000895CF92DF92EF92FF920F931F932FB721 +:1034F000F8944091CD015091CE016091CF0170912F +:10350000D0012FBF6A017B01EE24FF248C0120E053 +:1035100030E0C016D106E206F30610F4415051091E +:103520009A01281B390BC9011F910F91FF90EF9051 +:10353000DF90CF9008951F920F920FB60F92112433 +:103540008F939F93AF93BF938091CD019091CE01C4 +:10355000A091CF01B091D0010196A11DB11D809322 +:10356000CD019093CE01A093CF01B093D001BF9134 +:10357000AF919F918F910F900FBE0F901F90189554 +:103580000E94480BF8942FEF87EA91E62150804083 +:103590009040E1F700C0000087E090EBDC018093F1 +:1035A000ED019093EE01A093EF01B093F0019CE048 +:1035B00088E10FB6F894A895809360000FBE9093B1 +:1035C0006000FFCFEF92FF920F931F93CF93DF9393 +:1035D000D82FC0E08C2F0E941C0500E010E0E82EE0 +:1035E000F12CC701002E02C0959587950A94E2F749 +:1035F00080FD06C00F5F1F4F0630110591F709C00F +:10360000602F7C2F80E00E94E4058D13F3CF81E0D2 +:1036100004C0CF5FCE30F1F680E0DF91CF911F91F3 +:103620000F91FF90EF900895CF93C82F8CE20E94E6 +:10363000E21A882321F08C2FCF910C94E21A80E0BB +:10364000CF910895CF930E94691C811102C00E94FE +:103650004F1CC5E6C15049F00E9426048FE39CE947 +:103660000197F1F700C00000F5CF89E20E94141B1A +:10367000811113C18AE20E94141B81110E944F1C08 +:1036800085E00E94141B81110E94C01A0E94741CC4 +:103690008093CC0187E00E94141B8823A9F18BE161 +:1036A0000E94141B882351F08091CC0181FB2227BA +:1036B00020F991E0922790FB81F90EC08EE00E94E4 +:1036C000141B882361F08091CC0182FB222720F912 +:1036D00091E0922790FB82F98093CC0115C080E1A4 +:1036E0000E94141B9091CC01882341F093FB222768 +:1036F00020F981E0822780FB93F904C0892F80950F +:1037000080FB90F99093CC018091CC010E94781CB1 +:103710000E94861C8093DE0180EE0E94141B882389 +:1037200041F08091DE01982F909590FB80F9809375 +:10373000DE0189E30E94141B882359F08091DE0189 +:1037400081FB222720F991E0922790FB81F9809359 +:10375000DE0182EE0E94141B882359F08091DE0165 +:1037600082FB222720F991E0922790FB82F9809337 +:10377000DE0186EE0E94141B882359F08091DE0141 +:1037800083FB222720F991E0922790FB83F9809315 +:10379000DE0183EE0E94141B882359F08091DE0124 +:1037A00084FB222720F991E0922790FB84F98093F3 +:1037B000DE0185E30E94141B882359F08091DE010D +:1037C00085FB222720F991E0922790FB85F98093D1 +:1037D000DE0181E30E94141B882359F08091DE01F1 +:1037E00086FB222720F991E0922790FB86F98093AF +:1037F000DE0181E10E94141B882359F08091DE01D3 +:1038000087FB222720F991E0922790FB87F980938C +:10381000DE018091DE010E948A1C8091DE0187FB1F +:10382000882780F980930D0187E20E94141BC82F1E +:103830008EE10E94141B8111C2608FE10E94141B53 +:103840008111C46080E20E94141B8111C86081E272 +:103850000E94141B8111C06182E20E94141B81111D +:10386000C06283E20E94141B8111C06484E20E9442 +:10387000141B882311F0C06802C0CC2329F08C2FC0 +:103880000E94811C6C2F03C00E947D1C682F70E079 +:1038900080E090E0CF910C947017CF9108956DEE79 +:1038A0007EEF80E090E00E94C32260E082E090E042 +:1038B0000E94B52260E083E090E00E94B52260E0C3 +:1038C00084E090E00E94B52260E085E090E00C94F6 +:1038D000B52280E090E00E94AF2221E08D3E9E4F15 +:1038E00009F020E0822F089582E090E00C94A72256 +:1038F000682F82E090E00C94B52283E090E00C9475 +:10390000A722682F83E090E00C94B52284E090E039 +:103910000C94A722682F84E090E00C94B52280914B +:10392000D30180FF0BC06091130185E0689FB00157 +:10393000112475956795759567952BC081FF09C012 +:103940006091130185E0689FB0011124759567951A +:1039500020C082FF07C06091130185E0689FB0011D +:10396000112417C09091D4019923D1F060911201D4 +:10397000961788F72091130185E0289F9001112464 +:10398000929FA001939F500D112470E0CA010E94E4 +:1039900079226038710540F46115710519F406C08B +:1039A00065E070E0862F08958FE7089581E008951F +:1039B0008091D30180FF08C06091110170E075957E +:1039C00067957595679521C081FF06C060911101CB +:1039D00070E07595679519C082FF04C06091110170 +:1039E00070E010C09091D401992399F0609110017A +:1039F0009617A0F780911101899FC001112470E0F2 +:103A00000E9479226038710540F46115710519F43E +:103A100006C061E070E0862F08958FE7089581E089 +:103A20000895803F21F40E948F1C819504C0813F3E +:103A300029F40E948F1C8093D7010895823F21F4BE +:103A40000E948F1C819504C0833F29F40E948F1C23 +:103A50008093D6010895893F19F40E94D81C05C0AF +:103A60008A3F31F40E94D81C81958093D801089533 +:103A70008B3F21F40E94D81C819504C08C3F29F40F +:103A80000E94D81C8093D9010895843F21F480912D +:103A9000D501816017C0853F21F48091D5018260F6 +:103AA00011C0863F21F48091D50184600BC0873F0F +:103AB00021F48091D501886005C0883F31F4809160 +:103AC000D50180618093D50108958D3F21F48091C7 +:103AD000D30181600BC08E3F21F48091D3018260BD +:103AE00005C08F3F29F48091D30184608093D30176 +:103AF0000895803F39F48091D70187FF6CC0109200 +:103B0000D70169C0813F29F48091D7011816BCF311 +:103B100062C09091D601823F29F497FF5CC0109259 +:103B2000D60159C0833F19F41916CCF354C0893F0C +:103B300041F48091D80118160CF04DC01092D801B4 +:103B40004AC08A3F29F48091D80187FF44C0F6CF4C +:103B50008B3F39F48091D90187FF3DC01092D90184 +:103B60003AC08C3F29F48091D9011816BCF333C0B8 +:103B7000843F21F48091D5018E7F17C0853F21F4C9 +:103B80008091D5018D7F11C0863F21F48091D501B0 +:103B90008B7F0BC0873F21F48091D501877F05C0C3 +:103BA000883F31F48091D5018F7E8093D50113C079 +:103BB0008D3F21F48091D3018E7F0BC08E3F21F485 +:103BC0008091D3018D7F05C08F3F29F48091D3016F +:103BD0008B7F8093D3018091D60181110EC080919B +:103BE000D70181110AC08091D801811106C080914E +:103BF000D901811102C01092D401089585ED91E0A0 +:103C00000E94670E0E94651A9093D2018093D101A1 +:103C100008951F93CF93DF938091D1019091D201AA +:103C20000E94711AAC019091D401992321F0209146 +:103C3000140130E006C0209115018AE0289F900110 +:103C400011244217530708F485C08091D601C09112 +:103C5000D701D091D8011091D901811107C0C111AC +:103C600075C0D11173C0111171C074C09F3F19F09C +:103C70009F5F9093D401181624F40E948F1C8093A8 +:103C8000D6018091D60187FF05C00E948F1C8195C7 +:103C90008093D6011C1624F40E948F1C8093D701B8 +:103CA0008091D70187FF05C00E948F1C819580936A +:103CB000D7016091D601662331F1C091D701CC23A1 +:103CC00011F1062E000C770B880B990B0E948021B6 +:103CD00023E333E343E35FE30E94E4210E944821AE +:103CE0006093D6016C2FCC0F770B880B990B0E9439 +:103CF000802123E333E343E35FE30E94E4210E9456 +:103D000048216093D7011D1624F40E94D81C80938B +:103D1000D8018091D80187FF05C00E94D81C8195E9 +:103D20008093D801111624F40E94D81C8093D901E5 +:103D30008091D90187FF05C00E94D81C819580938E +:103D4000D901DF91CF911F910C94FE1D9F3F09F087 +:103D50008FCFA0CFDF91CF911F910895E5EDF1E0D6 +:103D600085E0DF011D928A95E9F71092D401109247 +:103D7000D3010895833081F128F4813059F08230E5 +:103D8000D1F00895853009F449C0B8F1863009F4BE +:103D900056C0089580911501262F30E0280F311D5F +:103DA0002F3F310524F4680F6093150108958FEFBC +:103DB00080931501089580911401262F30E0280F7B +:103DC000311D2F3F310524F4680F609314010895CD +:103DD0008FEF80931401089580911301262F30E016 +:103DE000280F311D2F3F310524F4680F6093130114 +:103DF00008958FEF80931301089580911201262F6B +:103E000030E0280F311D2F3F310524F4680F6093F7 +:103E1000120108958FEF809312010895809111018E +:103E2000262F30E0280F311D2F3F310524F4680F75 +:103E30006093110108958FEF80931101089580918F +:103E40001001262F30E0280F311D2F3F310524F4BB +:103E5000680F6093100108958FEF8093100108950B +:103E6000833011F128F4813049F0823091F00895C7 +:103E7000853081F120F18630C1F1089580911501DE +:103E8000681720F4861B8093150108951092150180 +:103E9000089580911401681720F4861B8093140103 +:103EA000089510921401089580911301681720F469 +:103EB000861B809313010895109213010895809139 +:103EC0001201681720F4861B809312010895109246 +:103ED0001201089580911101681720F4861B8093C8 +:103EE0001101089510921101089580911001681731 +:103EF00020F4861B809310010895109210010895FC +:103F00000F931F938D3109F46BC008F03FC08E30C2 +:103F100009F47DC0C0F4873009F46EC068F48630BF +:103F200009F0AFC08091CC01817F8E7F8093CC015E +:103F300081E08093DB01A6C0883009F458C08B3043 +:103F400009F49BC09EC0863109F497C078F4803193 +:103F500009F470C0813109F094C00E94B9139091A6 +:103F60000D0181E0892780930D0187C0893109F413 +:103F700084C08B3109F085C08091CC0181FB222760 +:103F800020F991E0922790FB81F94AC0853309F42A +:103F90005BC048F4873209F457C008F45AC089322C +:103FA00009F452C06EC0833438F48A3308F067C015 +:103FB000883309F462C065C0833409F445C088348D +:103FC00009F05FC00E94B9130FEF13ED20E3015019 +:103FD00010402040E1F700C000000E94C01A4DC010 +:103FE0000E9402210E94500E0E94460746C00E9475 +:103FF000741C0E94861C41C09091CC01892F817055 +:1040000090FF12C0917F9E7F9093CC013BC0809126 +:10401000CC0182FB222720F991E0922790FB82F9C4 +:104020008093CC01992349F18091CC0181608093E8 +:10403000CC0123C08091CC0183FB222720F991E0A1 +:10404000922790FB83F9ECCF61E070E080E090E094 +:1040500010C08D5141E050E060E070E08A019B01AA +:1040600004C0000F111F221F331F8A95D2F7C90108 +:10407000B8010E9470170E94B91381E003C08953F0 +:10408000E9CF80E01F910F91089580E008950C948E +:104090004520CF93C82F8091DB01813079F018F053 +:1040A0008230E9F187C0E0910E01F0910F0180812B +:1040B000813169F0823209F07FC009C0E0910E01C0 +:1040C000F0910F018081813111F0823261F48C2FE7 +:1040D0000E944720811104C08C2F0E94801F1DC0A8 +:1040E00081E090E01AC08C2F0E944520811114C0FD +:1040F000C43179F048F4CB3079F0C03109F060C0B8 +:1041000082E08093DB0108C0C93219F0C83321F086 +:1041100057C01092DB0154C081E0817053C0C93296 +:1041200089F118F5C43171F1A8F4C73009F046C01F +:104130008AE08093150194E19093140193E09093A9 +:1041400013018093120188E08093110188E280932B +:10415000100134C0CE51C63088F5EC2FF0E0E65D9A +:10416000FE4F80818093DA0129C0CE34E9F020F43B +:10417000CB3421F56AE013C0C13579F0C235F1F4D2 +:1041800061E00DC08091DA01882319F01092DA0104 +:1041900015C081E08093DB0115C061E006C080910D +:1041A000DA010E94BA1E0AC06AE08091DA010E9418 +:1041B000301F04C01092DB0180E004C081E002C027 +:1041C00080E0ABCFCF910895E1E8F0E08081886096 +:1041D00080838081816080838FB7F89493E090938F +:1041E000890090ED909388008FBF0895EFE6F0E08E +:1041F0008081826080830895EFE6F0E080818D7F8A +:1042000080830895EFE6F0E0908182E08927808343 +:1042100008951F920F920FB60F9211242F933F9380 +:104220004F935F936F937F938F939F93AF93BF93BE +:10423000EF93FF938091DC019091DD0101969093C3 +:10424000DD018093DC01811103C082E00E944607FA +:10425000E091DD01E695E695F0E0E657FB4FE4914D +:104260008091DC018E1303C080E00E944607FF911D +:10427000EF91BF91AF919F918F917F916F915F91DE +:104280004F913F912F910F900FBE0F901F90189557 +:104290000E944F216894B1110C94DE2108950E9470 +:1042A000C32188F09F5798F0B92F9927B751B0F0E4 +:1042B000E1F0660F771F881F991F1AF0BA95C9F7AA +:1042C00014C0B13091F00E94DD21B1E008950C944A +:1042D000DD21672F782F8827B85F39F0B93FCCF3FD +:1042E000869577956795B395D9F73EF49095809527 +:1042F000709561957F4F8F4F9F4F0895E89409C047 +:1043000097FB3EF490958095709561957F4F8F4F08 +:104310009F4F9923A9F0F92F96E9BB279395F6951E +:10432000879577956795B795F111F8CFFAF4BB0F9C +:1043300011F460FF1BC06F5F7F4F8F4F9F4F16C000 +:10434000882311F096E911C0772321F09EE8872F8A +:10435000762F05C0662371F096E8862F70E060E046 +:104360002AF09A95660F771F881FDAF7880F9695BF +:10437000879597F9089557FD9058440F551F59F0A8 +:104380005F3F71F04795880F97FB991F61F09F3F42 +:1043900079F087950895121613061406551FF2CF6B +:1043A0004695F1DF08C0161617061806991FF1CFBB +:1043B00086957105610508940895E894BB276627E2 +:1043C0007727CB0197F908950E94F7210C94682272 +:1043D0000E945A2238F00E94612220F0952311F0A9 +:1043E0000C9451220C94572211240C94DE210E942B +:1043F000BB2170F3959FC1F3950F50E0551F629F4D +:10440000F001729FBB27F00DB11D639FAA27F00D2D +:10441000B11DAA1F649F6627B00DA11D661F829F54 +:104420002227B00DA11D621F739FB00DA11D621F39 +:10443000839FA00D611D221F749F3327A00D611D56 +:10444000231F849F600D211D822F762F6A2F112438 +:104450009F5750409AF0F1F088234AF0EE0FFF1F6B +:10446000BB1F661F771F881F91505040A9F79E3FC2 +:10447000510580F00C9451220C94DE215F3FE4F34F +:10448000983ED4F3869577956795B795F795E79518 +:104490009F5FC1F7FE2B880F911D9695879597F921 +:1044A000089597F99F6780E870E060E008959FEFB6 +:1044B00080EC089500240A941616170618060906BB +:1044C000089500240A94121613061406050608958A +:1044D000092E0394000C11F4882352F0BB0F40F412 +:1044E000BF2B11F460FF04C06F5F7F4F8F4F9F4F52 +:1044F000089597FB072E16F4009407D077FD09D096 +:104500000E94932207FC05D03EF4909581959F4F21 +:104510000895709561957F4F0895EE0FFF1F0590E8 +:10452000F491E02D0994AA1BBB1B51E107C0AA1FFF +:10453000BB1FA617B70710F0A61BB70B881F991F44 +:104540005A95A9F780959095BC01CD010895F999E8 +:10455000FECF92BD81BDF89A992780B50895A8E154 +:10456000B0E042E050E00C94CA22262FF999FECF29 +:104570001FBA92BD81BD20BD0FB6F894FA9AF99A80 +:104580000FBE019608950E94B522272F0C94B622E3 +:10459000DC01CB01FC01F999FECF06C0F2BDE1BD03 +:1045A000F89A319600B40D9241505040B8F70895F2 +:0445B000F894FFCFAD +:1045B40020024707D707B2077E074A070101BA015D +:1045C40028080A03140A3F4D36394B04FE03C80376 +:1045D4008F0322033B0354036D0301020304050606 +:0445E40007080900BB +:00000001FF diff --git a/keyboard/ergodox_ez/keymaps/keymap_kastyle.c b/keyboard/ergodox_ez/keymaps/kastyle/keymap.c similarity index 99% rename from keyboard/ergodox_ez/keymaps/keymap_kastyle.c rename to keyboard/ergodox_ez/keymaps/kastyle/keymap.c index ecf1be8724..3982e0a19f 100644 --- a/keyboard/ergodox_ez/keymaps/keymap_kastyle.c +++ b/keyboard/ergodox_ez/keymaps/kastyle/keymap.c @@ -155,12 +155,12 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) }; // Runs just one time when the keyboard initializes. -void * matrix_init_user(void) { +void matrix_init_user(void) { }; // Runs constantly in the background, in a loop. -void * matrix_scan_user(void) { +void matrix_scan_user(void) { uint8_t layer = biton32(layer_state); diff --git a/keyboard/ergodox_ez/keymaps/keymap_andrew_osx.hex b/keyboard/ergodox_ez/keymaps/keymap_andrew_osx.hex deleted file mode 100644 index e3ee9afd3e..0000000000 --- a/keyboard/ergodox_ez/keymaps/keymap_andrew_osx.hex +++ /dev/null @@ -1,1471 +0,0 @@ -:100000000C9400070C9444070C9444070C94440788 -:100010000C9444070C9444070C9444070C94440734 -:100020000C9444070C9444070C9458120C942A1313 -:100030000C9444070C9444070C9444070C94440714 -:100040000C9444070C94022C0C9444070C94440721 -:100050000C9444070C94FA210C9444070C94440724 -:100060000C9444070C9444070C9444070C944407E4 -:100070000C9444070C9444070C9444070C944407D4 -:100080000C9444070C9444070C9444070C944407C4 -:100090000C9444070C9444070C9444070C944407B4 -:1000A0000C9444070C9444070C9444079713B91319 -:1000B000A714B913A714FE132114A71476148914D6 -:1000C000D017D017FF17FF17431881189B1A9B1AD8 -:1000D0009A189B1A9B199B196F1A9B1A9B1A861ABE -:1000E0000000F0A12E002B002971E10035810000F5 -:1000F0001E00140004001D71E20027021F001A00F8 -:1001000016001B00E104E3002000080007000600C1 -:1001100050002C0021001500090019004F00260294 -:10012000220017000A000500000065743400C100B9 -:100130000000007F0000E3003400C10000000077F1 -:100140000000290023001C000B0011000000297191 -:10015000240018000D00100052002F0225000C0092 -:100160000E00360051002800260012000F00370054 -:100170002F00E7002700130033823871300030026F -:100180002A002D003100E5000154000001000100AB -:1001900001000100010000003A001E0220022202BC -:1001A000010001003B001F022102230201000100A7 -:1001B0003C002F0226022F00010001003D0030020A -:1001C00027023000010001003E00310235003502F7 -:1001D000000001000100010000000100000001001A -:1001E0000100010000000100000001003F0052007A -:1001F00051002402000001004000240021001E00E4 -:10020000010001004100250022001F00370001000D -:1002100042002600230020002700010043002502A1 -:100220002E0231002E0001004400450001000100B3 -:1002300001000000010001000100010001000000B8 -:1002400001000100010001000100010001000100A6 -:10025000F2000100010001000100F000F1000100C6 -:10026000F400010001000100F3000100F5000100AD -:100270000100010001000100000001000100010077 -:100280000000010000000100010001000000010069 -:100290000000010001000100010001000000010058 -:1002A0000100010001000100A9000100010001009E -:1002B0000100AC00AA00B600010001000100AB0083 -:1002C000A80001000100010001000100010001007F -:1002D00001000100AE000100010000000A0025300D -:1002E000313662003A200025303258000A722F63FE -:1002F0002030313233343536373839414243444582 -:10030000460A000A002530325800626F756E636538 -:10031000213A20006C6566742073696465206174FD -:100320007461636865640A006C656674207369644F -:1003300065206E6F7420726573706F6E64696E678E -:100340000A00747279696E6720746F207265736534 -:1003500074206D637032333031380A000A444542EC -:1003600055473A20656E61626C65642E0A005B73C6 -:100370005D004B6579626F617264207374617274A1 -:100380002E0A005B575D005B535D005B525D005BB6 -:10039000445D005B435D0016034500720067006F1B -:1003A0000044006F007800200045005A000000164D -:1003B000034500720067006F0044006F0078002062 -:1003C0000045005A0000000403090409028D0005DD -:1003D0000100A0FA09040000010301010009211134 -:1003E000010001223F000705810308000A090401FA -:1003F000000103010200092111010001224D000743 -:1004000005820308000A0904020001030000000934 -:1004100021110100012236000705830308000A09A3 -:100420000403000203000000092111010001222041 -:1004300000070584032000010705040320000109CB -:100440000404000103000000092111010001223908 -:1004500000070585031000011201100100000008CB -:10046000EDFE071301000102000105010906A101CB -:10047000050719E029E71500250195087501810296 -:100480000508190129059505750191029501750366 -:100490009101050719002977150025019578750147 -:1004A0008102C00631FF0974A1010975150025FFFD -:1004B0009520750881020976150025FF952075089D -:1004C0009102C005010980A101850216010026B72D -:1004D000001A01002AB700751095018100C0050CB3 -:1004E0000901A1018503160100269C021A01002AB8 -:1004F0009C02751095018100C005010902A1010946 -:1005000001A10005091901290515002501950575A9 -:100510000181029501750381010501093009311539 -:1005200081257F95027508810609381581257F95FB -:100530000175088106050C0A38021581257F950191 -:1005400075088106C0C005010906A101050719E06B -:1005500029E71500250195087501810295017508A7 -:10056000810105081901290595057501910295017B -:10057000750391010507190029FF150025FF950650 -:1005800075088100C00A002530325820006B65795B -:10059000626F6172645F7265706F72743A20000AF4 -:1005A0000025303258006B6579626F6172645F7349 -:1005B00065745F6C65643A200064656C5F6B657997 -:1005C0005F6269743A2063616E27742064656C3AD7 -:1005D00020253032580A006164645F6B65795F6280 -:1005E00069743A2063616E2774206164643A20253F -:1005F0003032580A00646F6E652E0A00626F6F67B2 -:100600006D61676963207363616E3A202E2E2E2020 -:1006100000290A002575002F002575005D2800259A -:10062000640020002564002000256400200025646B -:10063000007C0025303258006D6F7573656B6579ED -:10064000205B62746E7C782079207620685D287249 -:1006500065702F61636C293A205B006D6B5F776872 -:1006600065656C5F74696D655F746F5F6D6178203F -:100670003D2025640A006D6B5F776865656C5F6D72 -:1006800061785F7370656564203D2025640A006DA4 -:100690006B5F74696D655F746F5F6D6178203D207D -:1006A00025640A006D6B5F6D61785F7370656564CA -:1006B000203D2025640A006D6B5F696E746572765B -:1006C000616C203D2025640A006D6B5F64656C6180 -:1006D00079203D2025640A006D6B5F776865656C45 -:1006E0005F74696D655F746F5F6D6178203D202573 -:1006F000640A006D6B5F776865656C5F6D61785F3C -:100700007370656564203D2025640A006D6B5F741D -:10071000696D655F746F5F6D6178203D2025640AA7 -:10072000006D6B5F6D61785F7370656564203D205F -:1007300025640A006D6B5F696E74657276616C206A -:100740003D2025640A006D6B5F64656C6179203D16 -:100750002025640A000A00257500363A207768656E -:10076000656C5F74696D655F746F5F6D61783A2069 -:10077000000A00257500353A20776865656C5F6D65 -:1007800061785F73706565643A20000A0025750022 -:10079000343A2074696D655F746F5F6D61783A20DB -:1007A000000A00257500333A206D61785F7370652B -:1007B00065643A20000A00257500323A20696E749B -:1007C000657276616C286D73293A20000A002575E0 -:1007D00000313A2064656C6179282A31306D7329C3 -:1007E0003A20000A092D2056616C756573202D0A88 -:1007F000004D3E004D25643E20003F00736574208F -:1008000064656661756C740A00433E200077686514 -:1008100072652064656C74613A20637572736F72DF -:100820003D25642C20776865656C3D25640A536519 -:100830006520687474703A2F2F656E2E77696B6926 -:1008400070656469612E6F72672F77696B692F4DD0 -:100850006F7573655F6B6579730A000A092D204D0A -:100860006F7573656B6579202D0A4553432F713A77 -:1008700009717569740A313A0964656C6179282ACD -:1008800031306D73290A323A09696E746572766186 -:100890006C286D73290A333A096D61785F7370654E -:1008A00065640A343A0974696D655F746F5F6D61E0 -:1008B000780A353A09776865656C5F6D61785F73B2 -:1008C000706565640A363A09776865656C5F7469B6 -:1008D0006D655F746F5F6D61780A0A703A097072B6 -:1008E000696E742076616C7565730A643A09736584 -:1008F000742064656661756C74730A75703A092BAF -:10090000310A646F776E3A092D310A706775703A53 -:10091000092B31300A7067646F776E3A092D3130D8 -:100920000A0A7370656564203D2064656C746120FB -:100930002A206D61785F7370656564202A202872B3 -:100940006570656174202F2074696D655F746F5FD9 -:100950006D6178290A003F004D3E2000433E200093 -:100960004C25640A000A092D20436F6E736F6C6575 -:10097000202D0A4553432F713A09717569740A6D28 -:100980003A096D6F7573656B65790A000A092D2048 -:100990004D61676963202D0A643A09646562756771 -:1009A0000A783A096465627567206D6174726978C6 -:1009B0000A6B3A096465627567206B6579626F61DD -:1009C00072640A6D3A096465627567206D6F7573AC -:1009D000650A763A0976657273696F6E0A733A0929 -:1009E0007374617475730A633A09636F6E736F6C25 -:1009F00065206D6F64650A302D343A096C61796544 -:100A000072302D34284631302D4634290A50617514 -:100A1000733A09626F6F746C6F616465720A653A4C -:100A200009656570726F6D0A6E3A094E4B524F0A36 -:100A30007A3A09736C656570204C4544207465737F -:100A4000740A000A002575002E6E6B726F3A200042 -:100A50000A002575002E737761705F6261636B73A6 -:100A60006C6173685F6261636B73706163653A2088 -:100A7000000A002575002E737761705F67726176DA -:100A8000655F6573633A20000A002575002E6E6F5E -:100A90005F6775693A20000A002575002E7377613B -:100AA000705F72616C745F726775693A20000A004A -:100AB0002575002E737761705F6C616C745F6C6775 -:100AC00075693A20000A002575002E636170736C09 -:100AD0006F636B5F746F5F636F6E74726F6C3A20DD -:100AE000000A002575002E737761705F636F6E7466 -:100AF000726F6C5F636170736C6F636B3A20000A96 -:100B00000025303258006B65796D61705F636F6EE0 -:100B10006669672E7261773A20000A002575002EFB -:100B20006D6F7573653A20000A002575002E6B65A0 -:100B300079626F6172643A20000A002575002E6D9B -:100B400061747269783A20000A002575002E656E7E -:100B500061626C653A20000A0025303258006465F5 -:100B60006275675F636F6E6669672E7261773A20A0 -:100B7000000A0025750064656661756C745F6C61C0 -:100B80007965723A20003F004E4B524F3A206F6613 -:100B9000660A004E4B524F3A206F6E0A0074696D20 -:100BA00065725F636F756E743A202530346C580A35 -:100BB000006B6579626F6172645F6E6B726F3A2071 -:100BC00025580A006B6579626F6172645F69646CB5 -:100BD000653A2025580A006B6579626F6172645F1F -:100BE00070726F746F636F6C3A2025580A00686FDB -:100BF00073745F6B6579626F6172645F6C65647357 -:100C000028293A2025580A000A092D2053746174B6 -:100C10007573202D0A004743433A20342E392E3372 -:100C2000204156522D4C4942433A20312E382E3124 -:100C3000204156525F415243483A20617672350A4C -:100C4000004F5054494F4E533A204C554641204294 -:100C50004F4F544D41474943204D4F5553454B4508 -:100C6000592045585452414B455920434F4E534FFC -:100C70004C4520434F4D4D414E44204E4B524F204A -:100C80003531320A004255494C443A2030663263CD -:100C9000373733202831313A30393A3531204A61FB -:100CA0006E2020352032303136290A005649443A28 -:100CB00020307846454544284572676F446F782058 -:100CC000455A29205049443A20307831333037286A -:100CD0004572676F446F7820455A29205645523A2D -:100CE000203078303030310A00444553433A207484 -:100CF0002E6D2E6B2E206B6579626F61726420669B -:100D000069726D7761726520666F72204572676FD8 -:100D1000646F780A000A092D2056657273696F6E38 -:100D2000202D0A000A6D6F7573653A206F66660A9A -:100D3000000A6D6F7573653A206F6E0A000A6B6565 -:100D400079626F6172643A206F66660A000A6B65A9 -:100D500079626F6172643A206F6E0A000A6D617485 -:100D60007269783A206F66660A000A6D617472696A -:100D7000783A206F6E0A000A64656275673A206FE0 -:100D80006E0A000A64656275673A206F66660A003B -:100D90000A0A626F6F746C6F616465722E2E2E206A -:100DA00000433E20006565636F6E6669673A0A001E -:100DB000536C656570204C454420746573740A005B -:100DC0000000000000000000000000010204060A0C -:100DD0000F17202C3A4A5D71879DB3C7DAE9F5FCFD -:100DE000FFFCF5E9DAC7B39D87715D4A3A2C2017FD -:100DF0000F0A0604020100000000000000000000CD -:100E000011241FBECFEFDAE0DEBFCDBF04B603FE74 -:100E100024C08091F9019091FA01A091FB01B09159 -:100E2000FC018730904BA740B04BB9F41092F90108 -:100E30001092FA011092FB011092FC0114BE84B7CB -:100E4000877F84BF88E10FB6F8948093600010928A -:100E500060000FBEE0E0FFE3099511E0A0E0B1E023 -:100E6000E0EAFBE502C005900D92AA33B107D9F77D -:100E700011E0AAE3B1E001C01D92A93FB107E1F77B -:100E80000E94900F0C94CE2D0C940000FF93EF93D2 -:100E9000E0913A01F0913B01309709F00995EF910B -:100EA000FF910895FC018591803011F0EFDFFBCFB9 -:100EB0000895FF27E0E230E247FF0CC0419597FF1D -:100EC00009C0EDE26095709580959095611D711D4A -:100ED000811D911D27FF02C0219530E350E2AA2712 -:100EE000660F771F881F991FAA1FA41710F0A41B55 -:100EF00063955A95A9F7AA3008F0A95FA05DAF9352 -:100F0000F395611571058105910541F7ED3211F4F5 -:100F1000EF93F395F21718F43F93F395FBCF8F916E -:100F2000B5DFFA95E1F70895E991F991859180305F -:100F300021F0853219F0AADFF9CF089520E0E89476 -:100F400055915532C1F3503311F4689455915A3389 -:100F500048F4505390F3220F022E220F220F200D3F -:100F6000250FF4CF0EF4219589919991533619F3F9 -:100F7000533729F1533559F1BC0188279927E89453 -:100F80005C3621F48991999168945591543639F4DD -:100F900046EF7EF077FF0DC08FEF9FEF0AC0553709 -:100FA0004AE039F0583540E121F0523642E009F08C -:100FB0000895FF93EF937DDFEF91FF91B7CFFF93FC -:100FC000EF93FC0181918030B9F360DFFBCFFF9399 -:100FD000EF9368DFF1CFDF93CF93CDB7DEB72596E0 -:100FE000A3DFCF91DF91089561110BC0FC018281D5 -:100FF000882321F085EE0E946D1603C085EE0E94C5 -:10100000351780E090E0089508956091BC017091DB -:10101000BD018091BE019091BF010E94FD205698B4 -:101020005E9825982D9826982E9827982F9881308D -:1010300019F0823021F00895259A2D9A0895269A64 -:101040002E9A089585E098E0892B11F00E940508FA -:1010500080E090E0089556985E9825982D982698FF -:101060002E9827982F988FEF90E090938900809387 -:10107000880090938B0080938A0090938D008093DA -:101080008C00259A2D9A2FEF80E792E02150804026 -:101090009040E1F700C00000269A2E9A2FEF80E7DB -:1010A00092E0215080409040E1F700C00000279A74 -:1010B0002F9A2FEF80E792E0215080409040E1F797 -:1010C00000C0000025982D982FEF80E792E0215076 -:1010D00080409040E1F700C0000026982E982FEF46 -:1010E00080E792E0215080409040E1F700C000008E -:1010F00027982F9856985E9825982D9826982E9880 -:1011000027982F98089589EA8093800089E080933A -:10111000810024982C983F988AB18F748AB96E9870 -:10112000479A8BB1806B8BB9769A0E942B0884E02A -:1011300098E0892B11F00E94040880E090E0089567 -:1011400080E28093000180913C0181110EC00E94D9 -:10115000EF0881E080933C012FEF83ED90E3215075 -:1011600080409040E1F700C0000080E40E94F50854 -:101170008093000181112EC00E941F0980930001FD -:10118000811128C00E941F0980930001811122C093 -:101190008FE30E941F098093000181111BC00E94F0 -:1011A000170980E40E94F50880930001811112C0A4 -:1011B0008CE00E941F098093000181110BC00E94E6 -:1011C0001F0980930001811105C08FE30E941F0950 -:1011D000809300010E9417098091000108951092E8 -:1011E000B9008AE08093B800089594EA9093BC0017 -:1011F0009091BC0097FFFCCF9091B900987F9830F8 -:1012000021F0903111F081E008958093BB0084E8D3 -:101210008093BC008091BC0087FFFCCF8091B90017 -:10122000887F883111F0803471F780E0089584E977 -:101230008093BC008091BC0084FDFCCF0895809316 -:10124000BB0084E88093BC008091BC0087FFFCCF8A -:101250009091B900987F81E0983209F480E0089578 -:1012600084E88093BC008091BC0087FFFCCF809114 -:10127000BB00089580910001811115C080E40E9497 -:10128000F5088093000181110CC082E10E941F09C2 -:1012900080930001811105C08FEF0E941F09809388 -:1012A00000010E94170984B1807F84B985B1807FD5 -:1012B00085B98AB1837F8AB98BB1837F8BB93E9818 -:1012C000469808950E94A008809300010E943A0960 -:1012D00080B38C7080BB81B3836F81BBAEE3B1E020 -:1012E000ECE4F1E08EE08E0F11921D928E13FCCF94 -:1012F00083E898E0892B11F00C94830808959F925D -:10130000AF92BF92CF92DF92EF92FF920F931F9313 -:10131000CF93DF93809100018823E1F080913D011C -:101320008F5F80933D01811115C082E493E00E949C -:1013300052070E94A00880930001882329F088E2C8 -:1013400093E00E94520706C084E193E00E94520796 -:101350000E942B080EE311E0C0E0D0E0BB24B39460 -:1013600082E0A82ECC24C394D12C25E0E22E23E0E9 -:10137000F22EC730D10500F580910001811164C0C3 -:1013800080E40E94F50880930001811112C082E17F -:101390000E941F098093000181110BC0C6010C2E11 -:1013A00001C0880F0A94EAF780950E941F09809374 -:1013B00000010E94170948C0CA30A1F028F4C830C3 -:1013C00059F0C93061F005C0CC3089F070F0CD30F3 -:1013D00089F0209A289810C0219A29980DC0229A45 -:1013E0002A980AC0239A2B9807C0529A01C0539A90 -:1013F0005B9802C03E9A469890EA9A95F1F79FB1A1 -:10140000799902C082E001C080E091709B25982B01 -:101410007C9902C084E001C080E0892B7D9902C0E4 -:1014200038E001C030E0832B7E9902C020E101C08A -:1014300020E0822B9FB19095991F9927991F929533 -:10144000990F907E892B10C080910001811174C08A -:1014500080E40E94F50880930001882309F459C0B4 -:10146000912C0E941709892DF8019081981739F164 -:10147000808380910101882301F18091D70180FF51 -:1014800004C08AE093E00E9452078091D70180FF58 -:101490000CC0809101011F928F93FF92EF920E94E6 -:1014A000EB070F900F900F900F908091D70180FF66 -:1014B00004C083E093E00E945207A09201010E94C1 -:1014C0003A0921960F5F1F4FCE30D10509F051CF59 -:1014D000809101018823B1F081508093010188231C -:1014E00039F08FE99FE00197F1F700C000000AC0D2 -:1014F000ACE4B1E0EEE3F1E0CF01825F91919D9326 -:101500008E13FCCF82E298E0892BC1F00E94220862 -:1015100015C083E10E941F09809300018111A0CFB3 -:1015200081E40E94F50880930001811199CF0E9407 -:101530003009982E909495CF80E096CF81E0DF918E -:10154000CF911F910F91FF90EF90DF90CF90BF90C0 -:10155000AF909F900895E82FF0E0E45BFE4F80810C -:101560000895CF92DF92EF92FF920F931F93CF9344 -:10157000DF938CEE92E00E9452078CE4E82E81E02B -:10158000F82EC0E0D0E097EEC92E92E0D92E0EEDF5 -:1015900012E0DF93CF93DF92CF920E94EB0784EEAD -:1015A00092E00E945207F70181917F0190E00E9432 -:1015B00063219F938F931F930F930E94EB078CEDF2 -:1015C00092E00E94520721968DB79EB708960FB6FB -:1015D000F8949EBF0FBE8DBFCE30D105D1F6DF91FE -:1015E000CF911F910F91FF90EF90DF90CF900895D2 -:1015F0008B3B910578F4883A910540F5853A910541 -:10160000D0F48430910508F0B1C08130910509F41F -:10161000ADC06BC0803E910508F467C0883E91055F -:1016200008F4A4C09C01205F31092031310508F085 -:101630005CC090650895853A910509F459C0863AD1 -:10164000910509F058C082E890E40895883A910520 -:1016500009F454C0893A910509F453C08A3A9105B6 -:1016600009F452C08B3A910509F451C08C3A9105A6 -:1016700009F450C08D3A910509F44FC0803B9105A3 -:1016800009F44EC08E3A910509F44DC08F3A910588 -:1016900009F44CC0813B910509F44BC0823B910594 -:1016A00009F44AC0833B910509F449C0843B910584 -:1016B00009F448C0853B910509F447C0863B910574 -:1016C00009F446C0873B910509F445C0883B910564 -:1016D00009F444C0893B910509F443C08A3B910554 -:1016E00009F442C080E094E4089580E090E0089519 -:1016F00081E890E4089583E890E4089582EE94E40C -:10170000089589EE94E408958AEE94E4089585EBB3 -:1017100094E4089586EB94E4089587EB94E40895A7 -:101720008CEC94E408958DEC94E4089583E895E4BA -:1017300008958AE895E4089582E995E4089584E996 -:1017400095E4089581E296E4089583E296E408958D -:1017500084E296E4089585E296E4089586E296E4AC -:10176000089587E296E408958AE296E4089508953C -:1017700096E0799FF001112494E5899FE00DF11D19 -:101780001124E60FF11DEE0FFF1FEC51FF4F859165 -:1017900094910895880F991FFC01E05AF0408591BB -:1017A00094910895880F991FFC01E052FF4F859195 -:1017B0009491089526E0729FF001112444E5849FDE -:1017C000E00DF11D1124E60FF11DEE0FFF1FEC518E -:1017D000FF4F859194919C013A9521154FE1340773 -:1017E00008F41EC13F512115304120F49F700E9422 -:1017F000D20B08959C0130532115304118F49927DC -:10180000906C0895811520E5920769F40E94BD1A35 -:101810004FEF84E39CE0415080409040E1F700C0EE -:1018200000000C941F22813020E5920751F48CE5D2 -:1018300093E00E9452078091D70181608093D70185 -:1018400008959C0130552115304108F051C0292FD1 -:1018500033272F70332721303105D9F4AC01437081 -:10186000552702C0220F331F4A95E2F73C68AC01AE -:1018700064E0440F551F6A95E1F744275370242B09 -:10188000352B73E0880F991F7A95E1F780769927B9 -:101890001DC02230310529F4982F8827816F906A66 -:1018A000089523303105A9F4AC014370552721E098 -:1018B00030E002C0220F331F4A95E2F73C6843E054 -:1018C000880F991F4A95E1F7807E9770822B932BA2 -:1018D000089524303105E1F4AC014370552721E02F -:1018E00030E002C0220F331F4A95E2F73A68E7CF93 -:1018F0009C0130572115304118F49F709062089573 -:101900009C0130582115304118F49F70906A089559 -:10191000803E9105E0F4803C910558F581339105B6 -:1019200009F46FC048F48932910509F463C08A3222 -:10193000910509F46DC072C089339105E9F08238D0 -:101940009105D1F08533910509F44DC067C0833E00 -:10195000910581F138F4803E9105B9F0823E910500 -:10196000D9F05CC0863E910561F1873E9105A1F1F9 -:1019700055C00E94CA0B08952091EA0120FD02C0C3 -:1019800021FF4CC080EE90E049C08091EA0180FFC9 -:10199000F9CF89E390E042C08091EA0182FF0EC056 -:1019A0008091EA0184FF03C080E090E037C083EEBD -:1019B00090E034C08091EA0182FFF2CF82EE90E0A5 -:1019C0002DC08091EA0183FF0BC08091EA0184FD64 -:1019D000EBCF87EE90E022C08091EA0183FFF5CF44 -:1019E00086EE90E01BC08091EA0185FF07C089E286 -:1019F00090E014C08091EA0185FFF9CF85E390E083 -:101A00000DC08091EA0186FF07C08AE290E006C01F -:101A10008091EA0186FFF9CF81E390E00E94F80A05 -:101A20000895089580916D0108959FB7F8941092DC -:101A30005C019FBF9091F001943009F057C09091E4 -:101A4000E9009F703091EC00232F217030FD20E8D9 -:101A5000922B24E02093E9002091EB0020FF43C06B -:101A60002091EE0027FF3FC020915A01222321F050 -:101A70002091E80025FF37C010925A0126E03091EE -:101A8000E80035FD15C03091F001343061F530913A -:101A9000EB0035FD28C0215021F481E080935A01EC -:101AA00022C0EFE9FFE03197F1F700C00000E7CF77 -:101AB0008093F1008091E80085FD0AC08091E800E4 -:101AC00080FFFCCF8091E8008E778093E80006C00D -:101AD0008FB7F89421E020935C018FBF9F709093A3 -:101AE000E90080E008959F709093E9008FEF0895DA -:101AF000CF93DF9300D01F92CDB7DEB79C018091CA -:101B0000F001843019F593E099833B832A83909305 -:101B1000E9008FEF9091E800815095FD06C095EDAA -:101B20009A95F1F700008111F5CF8091E80085FFCB -:101B30000DC040E050E063E070E0CE0101960E94ED -:101B400048108091E8008E778093E8000F900F9006 -:101B50000F90DF91CF910895CF93DF9300D01F9224 -:101B6000CDB7DEB72091F001243021F522E02983A2 -:101B70009B838A8383E08093E9008FEF9091E80054 -:101B8000815095FD06C095ED9A95F1F70000811101 -:101B9000F5CF8091E80085FF0DC040E050E063E0A4 -:101BA00070E0CE0101960E9448108091E8008E7787 -:101BB0008093E8000F900F900F90DF91CF910895E0 -:101BC0002091F0012430F1F422E02093E9002FEF7E -:101BD0003091E800215035FD06C035ED3A95F1F71A -:101BE00000002111F5CF2091E80025FF0BC040E057 -:101BF00050E065E070E00E9448108091E8008E7728 -:101C00008093E8000895CF93DF932091F001243072 -:101C100009F048C0EC0180910C018823E1F080912B -:101C20000D018823C1F085E08093E9008FEF90914A -:101C3000E800815095FD06C095E19A95F1F7000006 -:101C40008111F5CF8091E80085FF2CC040E050E085 -:101C500060E170E017C081E08093E9008FEF909120 -:101C6000E800815095FD06C095ED9A95F1F70000CA -:101C70008111F5CF8091E80085FF14C040E050E06D -:101C800068E070E0CE010E9448108091E8008E77F5 -:101C90008093E80080E1FE01ADE5B1E001900D9296 -:101CA0008A95E1F7DF91CF91089583E993E00E944F -:101CB00052078091EF01811109C00E94DD110E943D -:101CC0003A128091E20084608093E20008958FE8E8 -:101CD00093E00E9452071092EF0108958BE893E081 -:101CE0000C94520787E893E00E9452070C94EF2B64 -:101CF00083E893E00E9452070E94B9210E94F52BCD -:101D00000E94DF140C94110D20915B012F5F822F34 -:101D100062E30E94632D992319F020935B010895DB -:101D200010925B0180915C01882371F18091F00138 -:101D3000843041F58091E9008F702091EC00922F62 -:101D4000917020FD90E8892B94E09093E9009091A8 -:101D5000EB0090FF14C09091EE0097FF10C090919F -:101D6000E80095FF03C01092F100F9CF9091E800D0 -:101D700090FF05C09091E8009E779093E8008F70E7 -:101D80008093E90010925C01089542E061EC81E0EB -:101D90000E94571142E061EC82E00E94571142E03C -:101DA00061EC83E00E94571142E261EC84E00E9402 -:101DB000571142E161EC85E00C9457118091F201DA -:101DC000833009F455C030F4813071F0823009F469 -:101DD0008EC008958A3009F47AC08B3009F460C04F -:101DE000893009F09CC020C08091F101813A09F04E -:101DF00096C08091E800877F8093E8008091F5018C -:101E00009091F601892B21F460E18DE591E003C00A -:101E100060E080E090E070E00E9493108091E80024 -:101E20008B778093E80008958091F101813209F069 -:101E300076C08091F5019091F601009719F0049712 -:101E400009F06DC08091E800877F8093E800809161 -:101E5000E80082FD05C08091F0018111F8CF5FC0DC -:101E60008091F10080936D018091E8008B7753C0E1 -:101E70008091F101813A09F052C08091F501909171 -:101E8000F601892B09F04BC08091E800877F809391 -:101E9000E8008091E80080FFFCCF80910C0136C003 -:101EA0008091F1018132D9F58091F5019091F6018F -:101EB000892BA9F58091E800877F8093E8000E9434 -:101EC0008C118091F30180930C010C94BD1A8091C8 -:101ED000F101813221F58091E800877F8093E8004D -:101EE0000E948C118091F40180936E01089580917D -:101EF000F101813AA1F48091E800877F8093E800A6 -:101F00008091E80080FFFCCF80916E018093F1000A -:101F10008091E8008E778093E8000C948C110895EE -:101F200084B7877F84BF88E10FB6F8948093600000 -:101F3000109260000FBE90E080E80FB6F894809396 -:101F40006100909361000FBE0E946C150E94DD112C -:101F50000E943A128091E20084608093E20085E161 -:101F60009DE00E94F82078940E94BF140E946E1594 -:101F700082E091E00E94DA140E94DD2B82E793E078 -:101F80000E9452078091F001853089F48EE693E03B -:101F90000E9452070E947D218091EE01882391F3D7 -:101FA0000E94A521882371F30E943210EBCF0E947A -:101FB0009C15E8CF292F332723303105C9F064F46D -:101FC0002130310581F02230310509F043C08DE820 -:101FD00090E02BEC33E042C021323105F1F02232A7 -:101FE000310541F137C082E190E028E534E036C0A8 -:101FF00099278130910541F08230910541F0892B7C -:1020000049F5E7ECF3E005C0EFEAF3E002C0E7E9E9 -:10201000F3E0849190E09F0121C06530D8F4E62F71 -:10202000F0E0EE0FFF1FEB5DFE4F2081318189E074 -:1020300090E014C0653070F470E0FB01EE0FFF1FFC -:10204000E55EFE4F20813181FB01EA5EFE4F80811B -:1020500090E004C080E090E020E030E0FA013183BD -:102060002083089580E189BD82E189BD09B400FE25 -:10207000FDCF8091D8008F7D8093D8008091E000C3 -:1020800082608093E0008091E00081FDFCCF0895A4 -:10209000CF92DF92EF92FF920F931F93CF93DF9334 -:1020A000EC018B016A010E94AB11811133C0C11494 -:1020B000D10439F0F60180819181081B190BC80FFA -:1020C000D91FE12CF12C0115110519F18091E800BF -:1020D00085FD16C08091E8008E778093E800C114DA -:1020E000D10449F0F60180819181E80EF91EF18258 -:1020F000E08285E00FC00E94AB11882321F30AC063 -:1021000089918093F10001501109FFEFEF1AFF0A46 -:10211000DACF80E0DF91CF911F910F91FF90EF9088 -:10212000DF90CF9008952091F7013091F8012617A4 -:10213000370748F06115710539F42091E8002E77D2 -:102140002093E80001C0B90140E061157105A9F1D3 -:102150002091F001222309F443C0253009F442C044 -:102160002091E80023FD40C02091E80022FD32C00C -:102170002091E80020FFE9CF4091F3002091F20088 -:1021800030E0342BFC01CF016115710559F0283086 -:10219000310540F481918093F100615071092F5F06 -:1021A0003F4FF1CF41E02830310509F040E0209168 -:1021B000E8002E772093E800C8CF4111C9CF0AC0AC -:1021C0008091F001882361F0853061F08091E80012 -:1021D00083FD0AC08091E80082FFF2CF80E008957D -:1021E00082E0089583E0089581E008952091F70149 -:1021F0003091F8012617370748F06115710539F459 -:102200002091E8002E772093E80001C0B901FC017D -:1022100020E06115710591F18091F001882309F4A6 -:1022200040C0853009F43FC08091E80083FD3DC087 -:102230008091E80082FD2FC08091E80080FFE9CF07 -:102240002091F3008091F20090E0922B61157105CE -:1022500059F08830910540F424912093F100319693 -:10226000615071090196F2CF21E0089709F020E052 -:102270008091E8008E778093E800CBCF2111CCCFFE -:102280000AC08091F001882361F0853061F080916F -:10229000E80083FD0AC08091E80082FFF2CF80E071 -:1022A000089582E0089583E0089581E00895982FCD -:1022B000973058F59093E900981739F07091EC0039 -:1022C0002091ED005091F00003C0242F762F50E0B4 -:1022D00021FF19C03091EB003E7F3093EB0030912D -:1022E000ED003D7F3093ED003091EB003160309395 -:1022F000EB007093EC002093ED005093F0002091E0 -:10230000EE0027FF07C09F5FD3CF8F708093E90057 -:1023100081E0089580E008958091F10187FF11C068 -:102320008091E80082FD05C08091F0018111F8CF15 -:1023300011C08091E8008B770BC08091F001882359 -:1023400049F08091E80080FFF8CF8091E8008E7717 -:102350008093E80008952091E4003091E50095E62F -:102360004091EC00842F817040FF22C08091E800F2 -:1023700080FD1CC08091F001882391F0853091F0A0 -:102380008091EB0085FD10C04091E4005091E50084 -:102390004217530729F39A01915011F784E00895E9 -:1023A00082E0089583E0089581E0089580E0089533 -:1023B0004091E80042FFDECF08950E944B120E9438 -:1023C0005312E0EEF0E0808181608083E8EDF0E080 -:1023D00080818F77808319BCA7EDB0E08C918E7FD0 -:1023E0008C9380818F7E80831092EF0108950F93EC -:1023F0001F93CF93DF930E944B120E945312C8ED9C -:10240000D0E088818F7788838881806888838881FD -:102410008F7D888319BC1092F0011092EC0110920C -:10242000EE011092ED0100EE10E0F80180818B7F4B -:10243000808388818160888342E060E080E00E9440 -:102440005711E1EEF0E080818E7F8083E2EEF0E0D4 -:10245000808181608083808188608083F8018081B1 -:102460008E7F8083888180618883DF91CF911F91E7 -:102470000F910895E8EDF0E080818F7E8083E7ED95 -:10248000F0E080818160808384E082BF81E080937E -:10249000EF010C94F711E8EDF0E080818E7F8083EE -:1024A0001092E20008951092DA001092E10008956F -:1024B0001F920F920FB60F9211242F933F934F93B9 -:1024C0005F936F937F938F939F93AF93BF93EF939C -:1024D000FF938091E10082FF0BC08091E20082FFB8 -:1024E00007C08091E1008B7F8093E1000E94840E01 -:1024F0008091DA0080FF1FC08091D80080FF1BC050 -:102500008091DA008E7F8093DA008091D90080FF7D -:102510000DC080E189BD82E189BD09B400FEFDCF17 -:1025200081E08093F0010E94550E05C019BC109205 -:10253000F0010E94670E8091E10080FF19C0809138 -:10254000E20080FF15C08091E2008E7F8093E20060 -:102550008091E20080618093E2008091D8008062E7 -:102560008093D80019BC85E08093F0010E94720E20 -:102570008091E10084FF30C08091E20084FF2CC094 -:1025800080E189BD82E189BD09B400FEFDCF809163 -:10259000D8008F7D8093D8008091E1008F7E80935A -:1025A000E1008091E2008F7E8093E2008091E20062 -:1025B00081608093E2008091EC01882311F084E037 -:1025C00007C08091E30087FD02C081E001C083E085 -:1025D0008093F0010E94780E8091E10083FF29C072 -:1025E0008091E20083FF25C08091E100877F809386 -:1025F000E10082E08093F0011092EC018091E10013 -:102600008E7F8093E1008091E2008E7F8093E200D4 -:102610008091E20080618093E20042E060E080E02F -:102620000E9457118091F00088608093F0000E9412 -:102630006E0EFF91EF91BF91AF919F918F917F911E -:102640006F915F914F913F912F910F900FBE0F901F -:102650001F9018951F920F920FB60F9211242F936F -:102660003F934F935F936F937F938F939F93AF931A -:10267000BF93CF93DF93EF93FF93C091E900CF70A7 -:102680008091EC00D82FD17080FDD0E81092E90045 -:102690008091F000877F8093F00078940E946E1301 -:1026A0001092E9008091F00088608093F000CD2BBB -:1026B000CF70C093E900FF91EF91DF91CF91BF916F -:1026C000AF919F918F917F916F915F914F913F91CA -:1026D0002F910F900FBE0F901F9018951F93CF93BF -:1026E000DF93CDB7DEB7AA970FB6F894DEBF0FBE63 -:1026F000CDBFE1EFF1E088E08E0F9091F100919372 -:102700008E13FBCF0E94DE0E8091E80083FF1FC175 -:102710008091F1019091F201492F50E04A3051052A -:1027200008F015C1FA01EA5AFF4F0C94832D803846 -:1027300081F0823809F00BC18091F5018F70809390 -:10274000E9008091EB0085FB882780F91092E90071 -:1027500006C08091ED019091EE01911182609091FF -:10276000E800977F9093E8008093F1001092F100C9 -:10277000C8C0282F2D7F09F0EAC0882319F08230C5 -:1027800061F0E5C08091F301813009F0E0C0933041 -:1027900009F080E08093EE012BC08091F30181115C -:1027A00027C08091F5018F7009F4D1C08093E900B2 -:1027B0002091EB0020FF1CC0933021F48091EB00AE -:1027C000806214C09091EB0090619093EB0021E047 -:1027D00030E0A90102C0440F551F8A95E2F74093EB -:1027E000EA001092EA008091EB0088608093EB0091 -:1027F0001092E9008091E800877F86C08111A7C010 -:102800001091F3011F778091E3008078812B8093F2 -:10281000E3008091E800877F8093E8000E948C119C -:102820008091E80080FFFCCF8091E3008068809376 -:10283000E300111102C082E001C083E08093F00147 -:1028400086C08058823008F082C08091F301909158 -:10285000F4018C3D53E0950779F583E08A838AE2A1 -:1028600089834FB7F894DE01139620E03EE051E2F1 -:10287000E32FF0E050935700E49120FF03C0E2956E -:10288000EF703F5FEF708E2F90E0EA3010F0C79648 -:1028900001C0C0968D939D932F5F243149F74FBFA0 -:1028A0008091E800877F8093E8006AE270E0CE01C3 -:1028B00001960E94931014C0AE014F5F5F4F60916C -:1028C000F5010E94DA0FBC01892B09F440C09091F8 -:1028D000E800977F9093E80089819A810E94F61022 -:1028E0008091E8008B778093E80031C0803879F5DB -:1028F0008091E800877F8093E8008091EC018093CD -:10290000F1008091E8008E778093E8000E948C119E -:102910001EC081111CC09091F3019230C0F48091CF -:10292000E800877F8093E8009093EC010E948C116F -:102930008091EC01811106C08091E30087FD02C007 -:1029400081E001C084E08093F0010E94C50E809177 -:10295000E80083FF0AC08091E800877F8093E80049 -:102960008091EB0080628093EB00AA960FB6F894FA -:10297000DEBF0FBECDBFDF91CF911F910895CF93E2 -:102980008091F0018823A1F0C091E900CF7090916F -:10299000EC00892F817090FD80E8C82B1092E9002F -:1029A0008091E80083FD0E946E13CF70C093E90010 -:1029B000CF91089590937401809373010895E091ED -:1029C0007301F0917401309721F00190F081E02DB6 -:1029D000099480E00895EF92FF920F931F93CF9395 -:1029E000DF93E0917301F09174013097B1F18C01A4 -:1029F0000280F381E02D09958091D70182FF2DC0DF -:102A000080FF04C08DE895E00E945207E80110E1C4 -:102A100087E8E82E85E0F82E8091D70180FF0BC073 -:102A200088811F928F93FF92EF920E94EB070F9085 -:102A30000F900F900F90115021961111EDCF8091B2 -:102A4000D70180FF0AC085E895E0DF91CF911F9103 -:102A50000F91FF90EF900C945207DF91CF911F914F -:102A60000F91FF90EF900895E0917301F091740140 -:102A7000309721F00480F581E02D0994089520918C -:102A80007101309172018217930771F09093720176 -:102A900080937101E0917301F0917401309721F0FE -:102AA0000680F781E02D0994089520916F013091FF -:102AB00070018217930771F09093700180936F01FA -:102AC000E0917301F0917401309721F00084F18559 -:102AD000E02D0994089508950C946B150E94BB2174 -:102AE0000E9462090C948122CF93C82F8091D70154 -:102AF00082FF1EC080FF04C086EA95E00E94520754 -:102B00008091D70180FF0CC01F92CF9381EA95E09E -:102B10009F938F930E94EB070F900F900F900F9051 -:102B20008091D70180FF04C08FE995E00E94520791 -:102B30008C2FCF910C94110DCF92DF92EF92FF92D8 -:102B40000F931F93CF93DF93CDB7DEB72B970FB6BD -:102B5000F894DEBF0FBECDBF0E947F0986E7C82E66 -:102B600081E0D82E00E010E0E02E802F0E94AB0A1A -:102B7000F60141916F01F42EF826B1F40F5F1F4F5B -:102B80000E30110589F78FEF89838A831B820E949B -:102B9000C4218160782F9D838C8349815A816B8108 -:102BA0008D810E943F1640C09091D70191FF04C0D3 -:102BB0008B870E94B10A8B8520E030E04F2D50E0DA -:102BC000922FBA01022E02C0759567950A94E2F71A -:102BD00060FF24C02E83EF8221E030E0690102C053 -:102BE000CC0CDD1C9A95E2F790E08C219D21892B7D -:102BF00009F420E028870E94C4218160782F9A87F9 -:102C000089874E815F8168858A850E943F16F80119 -:102C1000EA58FE4F8081C826C08206C02F5F3F4F12 -:102C20002630310569F6AACF0E94F2251091750170 -:102C30000E94DF141817A1F00E94DF148093750121 -:102C40002B960FB6F894DEBF0FBECDBFDF91CF91AC -:102C50001F910F91FF90EF90DF90CF900C9474151F -:102C60002B960FB6F894DEBF0FBECDBFDF91CF918C -:102C70001F910F91FF90EF90DF90CF900895CF9329 -:102C8000DF93CDB7DEB72B970FB6F894DEBF0FBE3C -:102C9000CDBF4F83588769877A878B87DE0111966E -:102CA00086E0FD0111928A95E9F785E0FE013796ED -:102CB00001900D928A95E1F749815A816B817C815F -:102CC0008D819E810E94571D2B960FB6F894DEBF12 -:102CD0000FBECDBFDF91CF910895CF93882309F424 -:102CE000C2C0C82F823859F40E94DF1481FDBBC0D6 -:102CF00089E30E94F31F0E94D22089E30CC083382D -:102D000079F40E94DF1480FDAEC083E50E94F31FBA -:102D10000E94D22083E50E944620CF910C94D220BD -:102D2000843859F40E94DF1482FD9DC087E40E941C -:102D3000F31F0E94D22087E4EECF8CEF8C0F813AF4 -:102D400048F48C2F0E94852A81118DC08C2F0E94FF -:102D5000F31FE3CF80E28C0F883048F4C77081E026 -:102D600001C0880FCA95EAF70E949B20D6CF8BE559 -:102D70008C0F833078F4C53A29F0C63A31F083E8F5 -:102D800090E005C081E890E002C082E890E0CF9139 -:102D90000C943F1588E58C0F833108F064C0C83A65 -:102DA00039F1C93A41F1CA3A49F1CB3A51F1CC3A39 -:102DB00059F1CD3A61F1C03B69F1CE3A71F1CF3AA8 -:102DC00079F1C13B81F1C23B89F1C33B91F1C43B35 -:102DD00099F1C53BA1F1C63BA9F1C73BB1F1C83B95 -:102DE000B9F1C93BC1F1CA3BC9F180E090E038C0FC -:102DF00082EE90E035C089EE90E032C08AEE90E03D -:102E00002FC085EB90E02CC086EB90E029C087EBCB -:102E100090E026C08CEC90E023C08DEC90E020C0C8 -:102E200083E891E01DC08AE891E01AC082E991E050 -:102E300017C084E991E014C081E292E011C083E2FE -:102E400092E00EC084E292E00BC085E292E008C0FE -:102E500086E292E005C087E292E002C08AE292E058 -:102E6000CF910C945515CF910895882309F44BC048 -:102E7000823859F40E94DF1481FF45C089E30E9423 -:102E8000F31F0E94D22089E30CC0833871F40E94A2 -:102E9000DF1480FF38C083E50E94F31F0E94D22018 -:102EA00083E50E9446200C94D220843859F40E9475 -:102EB000DF1482FF28C087E40E94F31F0E94D22003 -:102EC00087E4EFCF9CEF980F913A58F390E2980F78 -:102ED000983050F4877091E001C0990F8A95EAF715 -:102EE000892F0E94A120DFCF9BE5980F933020F41B -:102EF00080E090E00C943F15885A833120F480E004 -:102F000090E00C9455150895882321F00E949B2091 -:102F10000C94D2200895882321F00E94A1200C94C3 -:102F2000D2200895BF92CF92DF92EF92FF920F933B -:102F30001F93CF93DF9300D000D000D0CDB7DEB782 -:102F400025E0FC01DE01119601900D922A95E1F732 -:102F5000FC01408131810281258122952F7063819E -:102F60007481672B09F4E7C23F3F19F44F3F09F41E -:102F7000E2C27C0149833A8389819A812E830E942F -:102F8000B21F182FB92E0E94B11F0E94781EEB2D80 -:102F9000E295EF70F0E0E05AFF4F2E810C94832D04 -:102FA0008B2D807F9B2D9F70F92E882319F0F29432 -:102FB00080EFF822002349F0FF2009F469C28F2D29 -:102FC0000E94AB200E94D22063C2812F0E9435173D -:102FD000FF2009F4B0C28F2D0E94B12026960FB6B3 -:102FE000F894DEBF0FBECDBFDF91CF911F910F913F -:102FF000FF90EF90DF90CF90BF900C94D2203B2DAC -:10300000307F8B2D8F70303211F08295807F1123AD -:1030100019F0113021F12DC00023B9F0222309F459 -:10302000A1C1213009F09EC126960FB6F894DEBFEB -:103030000FBECDBFDF91CF911F910F91FF90EF9009 -:10304000DF90CF90BF900C94BB20222319F0213049 -:1030500009F471C28E830E94BE208E8197C1002325 -:1030600021F0263008F067C27DC1253008F063C228 -:103070008DC1002321F0222309F474C109C2222347 -:1030800009F484C11AC22B2D26952695237030E0B1 -:103090002115310521F021303105D1F04CC200233A -:1030A00021F0812F9B2D937002C080E090E0269646 -:1030B0000FB6F894DEBF0FBECDBFDF91CF911F9149 -:1030C0000F91FF90EF90DF90CF90BF900C943F1541 -:1030D000002321F0812F9B2D937002C080E090E0AF -:1030E00026960FB6F894DEBF0FBECDBFDF91CF910D -:1030F0001F910F91FF90EF90DF90CF90BF900C94B5 -:103100005515812F002319F00E94782402C00E94D7 -:10311000E02426960FB6F894DEBF0FBECDBFDF9138 -:10312000CF911F910F91FF90EF90DF90CF90BF90C4 -:103130000C9465258B2D837009F07BC00111FBC1B8 -:10314000812F829586958770880F880F912F9F70A9 -:10315000C92ED12CE12CF12C082E04C0CC0CDD1C86 -:10316000EE1CFF1C0A94D2F714FF12C04FE050E08F -:1031700060E070E004C0440F551F661F771F8A95FA -:10318000D2F7CB01BA01609570958095909503C0F8 -:1031900060E070E0CB012B2D269526952370422F01 -:1031A00050E042305105D9F04330510569F16C29A6 -:1031B0007D298E299F294130510551F126960FB660 -:1031C000F894DEBF0FBECDBFDF91CF911F910F915D -:1031D000FF90EF90DF90CF90BF900C949F1E6C29D2 -:1031E0007D298E299F2926960FB6F894DEBF0FBE43 -:1031F000CDBFDF91CF911F910F91FF90EF90DF90A6 -:10320000CF90BF900C94BB1E0E949F1EC701B601B9 -:1032100026960FB6F894DEBF0FBECDBFDF91CF91DB -:103220001F910F91FF90EF90DF90CF90BF900C9483 -:10323000831E002319F08B2D817001C08695882391 -:1032400009F479C1812F829586958770880F880F40 -:10325000912F9F70C92ED12CE12CF12C082E04C087 -:10326000CC0CDD1CEE1CFF1C0A94D2F714FF12C01C -:103270004FE050E060E070E004C0440F551F661F4F -:10328000771F8A95D2F7CB01BA016095709580952A -:10329000909503C060E070E0CB012B2D269526951C -:1032A0002370422F50E042305105D9F04330510590 -:1032B00069F16C297D298E299F294130510551F1F1 -:1032C00026960FB6F894DEBF0FBECDBFDF91CF912B -:1032D0001F910F91FF90EF90DF90CF90BF900C94D3 -:1032E000791F6C297D298E299F2926960FB6F8947F -:1032F000DEBF0FBECDBFDF91CF911F910F91FF9029 -:10330000EF90DF90CF90BF900C94951F0E94791F93 -:10331000C701B60126960FB6F894DEBF0FBECDBF2B -:10332000DF91CF911F910F91FF90EF90DF90CF90A1 -:10333000BF900C945D1F103FD1F118F4103E50F473 -:10334000A2C0123F09F464C008F44DC0133F09F451 -:1033500074C099C01F708B2D8F710023A1F00E9443 -:10336000F61E812F26960FB6F894DEBF0FBECDBF96 -:10337000DF91CF911F910F91FF90EF90DF90CF9051 -:10338000BF900C9484170E94171F812F26960FB6AA -:10339000F894DEBF0FBECDBFDF91CF911F910F918B -:1033A000FF90EF90DF90CF90BF900C948B1700238D -:1033B000B1F0253008F0BFC08B2D8F7126960FB667 -:1033C000F894DEBF0FBECDBFDF91CF911F910F915B -:1033D000FF90EF90DF90CF90BF900C943C1F263071 -:1033E00008F0A9C0E9CF0023A9F08B2D8F71269694 -:1033F0000FB6F894DEBF0FBECDBFDF91CF911F9106 -:103400000F91FF90EF90DF90CF90BF900C94F61E3D -:10341000002359F38B2D8F7126960FB6F894DEBFDB -:103420000FBECDBFDF91CF911F910F91FF90EF9015 -:10343000DF90CF90BF900C94171F002399F08B2D35 -:103440008F7126960FB6F894DEBF0FBECDBFDF9109 -:10345000CF911F910F91FF90EF90DF90CF90BF9091 -:103460000C94E11E26960FB6F894DEBF0FBECDBFBA -:10347000DF91CF911F910F91FF90EF90DF90CF9050 -:10348000BF900C94D71E0023A9F0222309F4ADCFDE -:10349000812F26960FB6F894DEBF0FBECDBFDF9109 -:1034A000CF911F910F91FF90EF90DF90CF90BF9041 -:1034B0000C946D16222309F4ADCF812F26960FB6FA -:1034C000F894DEBF0FBECDBFDF91CF911F910F915A -:1034D000FF90EF90DF90CF90BF900C9435174B2D5D -:1034E0004F70612FC7010E94F40726960FB6F8941B -:1034F000DEBF0FBECDBFDF91CF911F910F91FF9027 -:10350000EF90DF90CF90BF900C94FB1D4B2D4F7030 -:10351000612FC70126960FB6F894DEBF0FBECDBF50 -:10352000DF91CF911F910F91FF90EF90DF90CF909F -:10353000BF900C94B70B26960FB6F894DEBF0FBE63 -:10354000CDBFDF91CF911F910F91FF90EF90DF9052 -:10355000CF90BF9008950E94B8200E948D200E94B5 -:10356000D2200E9498260E94652580E090E00E946B -:103570003F1580E090E00C9455150E94A8200C9413 -:10358000AB1A0E94B21F292F22952F7030E02C30E9 -:1035900031054CF42A3031056CF4225031092230C7 -:1035A000310588F407C02C30310549F02F30310542 -:1035B00031F009C0803E48F0803F29F406C093FBFB -:1035C000882780F9089580E0089581E00895CF93D9 -:1035D000DF9300D000D01F92CDB7DEB70F900F90D1 -:1035E0000F900F900F90DF91CF910895CF93DF93BD -:1035F00000D000D000D0CDB7DEB726960FB6F89435 -:10360000DEBF0FBECDBFDF91CF9108951F93CF9343 -:10361000DF93C091840116E080918501C81799F06D -:10362000D0E01C9FF0011D9FF00D1124EA57FE4FC2 -:103630004081518162817381848195810E94F61A53 -:103640002196C770E9CFDF91CF911F9108954091E6 -:10365000B6015091B7016091B8017091B9018091A4 -:10366000BA019091BB010C94F61A8091BB0182952E -:103670008F7009F054C08091B801882309F44FC0BD -:1036800080918401A09185016091B6017091B7018C -:103690004091B9015091BA01B6E08A1709F43FC0D0 -:1036A00090E041155105C1F17F3F11F46F3FA1F149 -:1036B000B89FF001B99FF00D1124EA57FE4F218108 -:1036C00072132AC02081621327C02281211124C0D5 -:1036D000238134812417350710F421503109241B2C -:1036E000350B283C3105C0F42091BB012F702061BF -:1036F0002093BB0126E0289FF001299FF00D1124A3 -:10370000E557FE4F80818F708061808386EB91E06A -:103710000E9492170C94061B01968770BECF0895E5 -:10372000CF92DF92EF92FF920F931F93CF93DF938D -:10373000CDB7DEB762970FB6F894DEBF0FBECDBF30 -:103740008C0185E0F801DE011D9601900D928A95AD -:10375000E1F7D8014C9111965C91119712966C91FA -:1037600012971396CD90DC9014973091B60170911A -:10377000B7018091B9019091BA01009709F46BC12A -:103780007F3F19F43F3F09F466C1E090B801EE2095 -:1037900009F4C0C02091BB01C816D90628F0F60173 -:1037A000E81BF90BCF0104C0809590958C0D9D1DF1 -:1037B000FF24F394883C910578F0F12C207F09F0E8 -:1037C000C6C07C2DD98AC88A89890E94E71A86EBEF -:1037D00091E00E949217B1C0822F807F09F046C00D -:1037E000751314C0341312C0611110C02F70206102 -:1037F0002093BB010E94271B86EB91E00E94921749 -:103800008091BB01D80115968C932EC0CD2819F15B -:103810005F3F11F44F3FF9F0F62E61111CC080910B -:1038200084012091850136E0821709F45AC090E0A6 -:10383000389FF001399FF00D1124EA57FE4F718136 -:10384000571306C07081471303C07281711103C002 -:1038500001968770E9CFF62E662309F418C180918E -:10386000BB0181608093BB01F12C11C1751308C0AD -:10387000341306C0611104C08091BB01D801C3C0DC -:103880004D875E878D859E856A8B0E94C11A6A89E5 -:103890008823E1F16623D1F12091BB01822F82952B -:1038A0008F7090E0029774F08091B6019091B7010B -:1038B00098878F831986DB86CA862C87CE01079668 -:1038C0000E94921786E0F801A6EBB1E001900D92FC -:1038D0008A95E1F70E94351B0E94271BFF24F39471 -:1038E000D6C04D875E878D859E850E94B21F292F89 -:1038F00022952F7030E0223031050CF0BCC09F7053 -:1039000009F0B6C0805E883008F4C1C0C8010E94CA -:103910009217E4CFC816D90608F453C0F601E81B85 -:10392000F90BCF01883C910508F450C0F12C7C2D97 -:10393000D98AC88A89890E94E71AE6EBF1E086E015 -:10394000DF011D928A95E9F70E94271BA0C075131D -:1039500014C0341312C0611110C08091BB01F80172 -:103960008583C8010E94921786E0E6EBF1E0DF0153 -:103970001D928A95E9F7FE2C8AC04D875E878D855A -:103980009E856A8B0E94C11A6A89882309F4BECF7A -:10399000662309F4BBCF2091BB01822F82958F70E3 -:1039A00090E002970CF48ECF8091B6019091B70110 -:1039B0009A8389831B82DD82CC822E83CE0101967D -:1039C0007FCF809590958C0D9D1DACCFF62E6623F4 -:1039D00009F49CCF75132EC034132CC02091BB0169 -:1039E00020FD1FC0822F82958F70D9F0D8011596C7 -:1039F0002C9315978F3049F08F5F982F9295907F79 -:103A0000822F8F70892B15968C93C8010E94921774 -:103A100086E0F801A6EBB1E001900D928A95E1F7FE -:103A200093CF86E0F801A6EBB1E001900D928A9564 -:103A3000E1F72DC04D875E878D859E850E94C11A56 -:103A4000811140CF8091BB0181608093BB01C8018F -:103A50000E9492171CC0662309F458CF4D875E87D9 -:103A60008D859E850E94C11A882309F44FCF2ACFE5 -:103A7000811148CF0CC0243031050CF047CF9F7026 -:103A800009F440CFF8019581907F09F03BCF8F2D4D -:103A900062960FB6F894DEBF0FBECDBFDF91CF9117 -:103AA0001F910F91FF90EF90DF90CF9008951F939B -:103AB000CF93DF93CDB7DEB72C970FB6F894DEBF68 -:103AC0000FBECDBF4F83588769877A878B879C87C6 -:103AD000CE0107960E94901B882369F08F819885FC -:103AE0002A853B85232BF1F19F3F09F063C08F3F6F -:103AF00009F060C037C086E0FE013796DE011196FE -:103B000001900D928A95E1F76F817885EA85FB85B2 -:103B1000309741F17F3F11F46F3F21F120918501F2 -:103B200030E0C9010196877099274091840150E0E7 -:103B30008417950709F447C069837A83FD83EC8372 -:103B400096E0929FD001939FB00D1124AA57BE4FCB -:103B5000FE01319601900D929A95E1F780938501CF -:103B60000E94061B16E080918401909185018917BF -:103B7000C1F1189FC00111248A579E4F0E94901BCB -:103B8000882379F1E09184011E9FF0011124EA5706 -:103B9000FE4F4081518162817381848195810E94B1 -:103BA000F61A8091840190E001968770992780939E -:103BB0008401D9CF4F81588569857A858B859C850D -:103BC0000E94F61ACFCF0E94BD1A10928501109262 -:103BD0008401E6EBF1E086E0DF011D928A95E9F7CA -:103BE000C1CF2C960FB6F894DEBF0FBECDBFDF91CC -:103BF000CF911F910895EF92FF920F931F93CF9350 -:103C0000DF938C01892B09F46CC0F12CEE24E39432 -:103C1000E8012196F8018491843740F4843008F05B -:103C200051C0813081F0823019F15BC0853709F4D1 -:103C300044C0A8F19CE7980F903708F052C08F77E6 -:103C40000E94351741C00E5F1F4FFE01C49180E2F4 -:103C50008C0F883048F4C7708E2D01C0880FCA952C -:103C6000EAF70E94AB2014C08C2F0E946D162DC065 -:103C70000E5F1F4FFE01C49180E28C0F883058F414 -:103C8000C7708E2D01C0880FCA95EAF70E94B12037 -:103C90000E94D2201AC08C2F0E94351716C00E5FCA -:103CA0001F4FFE01C491CC2381F08FE99FE0019763 -:103CB000F1F700C00000C150F6CF0E5F1F4FFE01AC -:103CC000F49003C00E946D168E018F2D882309F495 -:103CD0009FCFEFE9FFE03197F1F700C0000081507E -:103CE000F5CFDF91CF911F910F91FF90EF90089545 -:103CF00008956093C0017093C1018093C2019093B5 -:103D0000C3010C94AB1A0F931F930091C001109143 -:103D1000C1012091C2013091C301DC01CB01802B94 -:103D2000912BA22BB32B8093C0019093C101A09340 -:103D3000C201B093C3011F910F910C94AB1A0F9362 -:103D40001F930091C0011091C1012091C2013091D7 -:103D5000C301DC01CB0180239123A223B3238093F1 -:103D6000C0019093C101A093C201B093C3011F9100 -:103D70000F910C94AB1A0F931F930091C0011091F7 -:103D8000C1012091C2013091C301DC01CB01802728 -:103D90009127A227B3278093C0019093C101A093DC -:103DA000C201B093C3011F910F910C94AB1A1092F2 -:103DB000BC011092BD011092BE011092BF010C9483 -:103DC000AB1A41E050E060E070E004C0440F551FC2 -:103DD000661F771F8A95D2F74093BC015093BD01AF -:103DE0006093BE017093BF010C94AB1A41E050E0A8 -:103DF00060E070E004C0440F551F661F771F8A956E -:103E0000D2F78091BC019091BD01A091BE01B0910B -:103E1000BF01482B592B6A2B7B2B4093BC0150933D -:103E2000BD016093BE017093BF010C94AB1A41E0D9 -:103E300050E060E070E004C0440F551F661F771F1C -:103E40008A95D2F740955095609570958091BC0108 -:103E50009091BD01A091BE01B091BF0148235923AB -:103E60006A237B234093BC015093BD016093BE0144 -:103E70007093BF010C94AB1A41E050E060E070E039 -:103E800004C0440F551F661F771F8A95D2F7809193 -:103E9000BC019091BD01A091BE01B091BF01482726 -:103EA00059276A277B274093BC015093BD0160933B -:103EB000BE017093BF010C94AB1A0F931F93009136 -:103EC000BC011091BD012091BE013091BF01DC0108 -:103ED000CB01802B912BA22BB32B8093BC01909311 -:103EE000BD01A093BE01B093BF011F910F910C942F -:103EF000AB1A0F931F930091BC011091BD0120914B -:103F0000BE013091BF01DC01CB0180239123A223AC -:103F1000B3238093BC019093BD01A093BE01B093E5 -:103F2000BF011F910F910C94AB1A0F931F93009137 -:103F3000BC011091BD012091BE013091BF01DC0197 -:103F4000CB0180279127A227B3278093BC019093B0 -:103F5000BD01A093BE01B093BF011F910F910C94BE -:103F6000AB1A0895CF92DF92EF92FF920F931F93B7 -:103F7000CF93DF938C01C090C001D090C101E0903D -:103F8000C201F090C3014091BC015091BD0160910C -:103F9000BE017091BF01C42AD52AE62AF72ACFE1D3 -:103FA000D0E0D701C6010C2E04C0B695A795979511 -:103FB00087950A94D2F780FF07C0B8018C2F0E9422 -:103FC000DA0B8130910531F4219758F7B80180E080 -:103FD0000E94DA0BDF91CF911F910F91FF90EF902C -:103FE000DF90CF90089590910C01992321F090914A -:103FF0000D01911109C020910E0130910F01F901BD -:1040000032969FEF40E030C0982F96959695969502 -:104010009F30A0F4E0910E01F0910F01E90FF11D26 -:10402000877021E030E0A90102C0440F551F8A9536 -:10403000E2F7CA019181892B818308959091D7017C -:1040400090FF23C01F928F9387ED95E09F938F93EE -:104050000E94EB070F900F900F900F9008959F3FD5 -:1040600039F04F5F4E3041F051915813F8CF0DC0E9 -:104070005111F7CF942FF5CF9F3F39F0F901E90F98 -:10408000F11D97FDFA9582830895089590910C0192 -:10409000992321F090910D01911109C020910E01F9 -:1040A00030910F01F9013296205F3F4F30C0982FB9 -:1040B0009695969596959F30A8F4E0910E01F09113 -:1040C0000F01E90FF11D877021E030E0A90102C066 -:1040D000440F551F8A95E2F7CA0180959181892383 -:1040E000818308959091D70190FF16C01F928F93FE -:1040F00089EB95E09F938F930E94EB070F900F90B1 -:104100000F900F9008953196E217F30729F09081F0 -:104110009813F9CF1082F7CF089581E090E0E091F5 -:104120000E01F0910F01E80FF91F10820196803106 -:104130009105A9F708959091D601892B8093D60116 -:10414000089580959091D60189238093D601089592 -:104150001092D60108959091D501892B8093D501B5 -:10416000089580959091D50189238093D501089574 -:104170001092D50108958093C40108951092C4014E -:10418000089580910E0190910F01FC0131969C01E0 -:10419000205F3F4F80E0919191118F5FE217F3070D -:1041A000D1F70895E0910E01F0910F018091D601B1 -:1041B0008083E0910E01F0910F0190818091D501F3 -:1041C000892B80838091C401882361F0E0910E01E6 -:1041D000F0910F019081892B80830E94C120811171 -:1041E0001092C40180910E0190910F010C94EB1478 -:1041F00090933B0180933A010895CF92DF92EF9222 -:10420000FF926C01EE24FF24C114D104E104F104F7 -:1042100021F0C701B60120E101C020E0C72ED82E51 -:10422000E92EFF24C114D104E104F10419F0285F40 -:10423000C701B6016B017C0154E0F694E794D79472 -:10424000C7945A95D1F7C114D104E104F10419F0CF -:104250002C5FC701B6016B017C0142E0F694E79444 -:10426000D794C7944A95D1F7C114D104E104F1045D -:1042700019F02E5FC701B601DC01CB01B695A795F9 -:1042800097958795892B8A2B8B2B09F02F5F822F8F -:10429000FF90EF90DF90CF9008958295982F9C7CAF -:1042A000392F36953695282F237344E0249FC0017B -:1042B0001124932F982B292F2A7A2695892F8575DB -:1042C000880F822B08951F93CF93DF931F92CDB752 -:1042D000DEB799830E944D21182F9981892F0E9462 -:1042E0004D21212F30E0322F2227A901482BCA016E -:1042F0000F90DF91CF911F9108958091F00184304C -:1043000009F11092D80120E488E190E00FB6F8940A -:10431000A895809360000FBE2093600083B7817FD3 -:10432000846083BF83B7816083BF7894889583B7A7 -:104330008E7F83BF88E10FB6F8948093600010925F -:1043400060000FBE089508950895CF930E94A321A1 -:104350000E947F090E94A421C0E08C2F0E94AB0A1A -:10436000811104C0CF5FCE30C1F701C081E0CF9191 -:1043700008950C94BD1A82E084BD93E095BD9AEF38 -:1043800097BD80936E0008952FB7F8948091D9015E -:104390009091DA01A091DB01B091DC012FBF08956B -:1043A000CF92DF92EF92FF920F931F932FB7F89463 -:1043B0004091D9015091DA016091DB017091DC01EB -:1043C0002FBF6A017B01EE24FF248C0120E030E046 -:1043D000C016D106E206F30610F4415051099A01C5 -:1043E000281B390BC9011F910F91FF90EF90DF90AF -:1043F000CF9008951F920F920FB60F9211248F93B2 -:104400009F93AF93BF938091D9019091DA01A091CE -:10441000DB01B091DC010196A11DB11D8093D90192 -:104420009093DA01A093DB01B093DC01BF91AF91CF -:104430009F918F910F900FBE0F901F9018950E9423 -:10444000DD11F8942FEF87EA91E6215080409040EB -:10445000E1F700C0000087E090EBDC018093F901F8 -:104460009093FA01A093FB01B093FC019CE088E1DA -:104470000FB6F894A895809360000FBE90936000EB -:10448000FFCFEF92FF920F931F93CF93DF93D82F1D -:10449000C0E08C2F0E94AB0A00E010E0E82EF12C67 -:1044A000C701002E02C0959587950A94E2F780FD1A -:1044B00006C00F5F1F4F0630110591F709C0602F2E -:1044C0007C2F80E00E94B80BD813F3CF81E004C0AA -:1044D000CF5FCE30F1F680E0DF91CF911F910F9149 -:1044E000FF90EF900895CF93C82F8CE20E94412255 -:1044F000882321F08C2FCF910C94412280E0CF9122 -:104500000895CF930E94D023811102C00E94B62348 -:104510008CEF95E00E945207C5E6C15049F00E9419 -:104520007F098FE39CE90197F1F700C00000F5CF08 -:1045300085EF95E00E94520789E20E947322811163 -:1045400013C18AE20E94732281110E94B62385E082 -:104550000E94732281110E941F220E94DB238093FC -:10456000D70187E00E9473228823A9F18BE10E9482 -:104570007322882351F08091D70181FB222720F9F3 -:1045800091E0922790FB81F90EC08EE00E94732289 -:10459000882361F08091D70182FB222720F991E0E6 -:1045A000922790FB82F98093D70115C080E10E9489 -:1045B00073229091D701882341F093FB222720F9A1 -:1045C00081E0822780FB93F904C0892F809580FBCE -:1045D00090F99093D7018091D7010E94DF230E9428 -:1045E000ED238093EA0180EE0E947322882341F03C -:1045F0008091EA01982F909590FB80F98093EA01D1 -:1046000089E30E947322882359F08091EA0181FB9B -:10461000222720F991E0922790FB81F98093EA010B -:1046200082EE0E947322882359F08091EA0182FB76 -:10463000222720F991E0922790FB82F98093EA01EA -:1046400086EE0E947322882359F08091EA0183FB51 -:10465000222720F991E0922790FB83F98093EA01C9 -:1046600083EE0E947322882359F08091EA0184FB33 -:10467000222720F991E0922790FB84F98093EA01A8 -:1046800085E30E947322882359F08091EA0185FB1B -:10469000222720F991E0922790FB85F98093EA0187 -:1046A00081E30E947322882359F08091EA0186FBFE -:1046B000222720F991E0922790FB86F98093EA0166 -:1046C00081E10E947322882359F08091EA0187FBDF -:1046D000222720F991E0922790FB87F98093EA0145 -:1046E0008091EA010E94F1238091EA0187FB8827EB -:1046F00080F980930D0187E20E947322C82F8EE11A -:104700000E9473228111C2608FE10E947322811185 -:10471000C46080E20E9473228111C86081E20E941D -:1047200073228111C06182E20E9473228111C062F2 -:1047300083E20E9473228111C06484E20E9473228A -:10474000882311F0C06802C0CC2329F08C2F0E946E -:10475000E8236C2F03C00E94E423682F70E080E000 -:1047600090E0CF910C94791ECF9108956DEE7EEF7D -:1047700080E090E00E94B92D60E082E090E00E942D -:10478000AB2D60E083E090E00E94AB2D60E084E020 -:1047900090E00E94AB2D60E085E090E00C94AB2DA2 -:1047A00080E090E00E94A52D21E08D3E9E4F09F013 -:1047B00020E0822F089582E090E00C949D2D682FD8 -:1047C00082E090E00C94AB2D83E090E00C949D2D62 -:1047D000682F83E090E00C94AB2D84E090E00C9483 -:1047E0009D2D682F84E090E00C94AB2D8091DF012B -:1047F00080FF0BC06091130185E0689FB001112418 -:1048000075956795759567952BC081FF09C0609177 -:10481000130185E0689FB00111247595679520C04C -:1048200082FF07C06091130185E0689FB0011124E9 -:1048300017C09091E0019923D1F060911201961771 -:1048400088F72091130185E0289F90011124929F01 -:10485000A001939F500D112470E0CA010E946F2D9A -:104860006038710540F46115710539F002C065E0EA -:1048700070E0862F08958FE7089581E00895809174 -:10488000DF0180FF08C06091110170E075956795A8 -:104890007595679521C081FF06C06091110170E098 -:1048A0007595679519C082FF04C06091110170E091 -:1048B00010C09091E0019923C1F06091100196170A -:1048C000A0F780911101899FC001112470E00E941E -:1048D0006F2D6038710528F46115710521F0862F60 -:1048E00008958FE7089581E0089561E070E0F4CFC6 -:1048F000803F21F40E94F623819504C0813F29F472 -:104900000E94F6238093E3010895823F21F40E94E0 -:10491000F623819504C0833F29F40E94F6238093F7 -:10492000E2010895893F19F40E943F2405C08A3F9F -:1049300031F40E943F2481958093E40108958B3FD8 -:1049400021F40E943F24819504C08C3F29F40E94E9 -:104950003F248093E5010895843F21F48091E10193 -:10496000816017C0853F21F48091E101826011C010 -:10497000863F21F48091E10184600BC0873F21F4E0 -:104980008091E101886005C0883F31F48091E101A8 -:1049900080618093E10108958D3F21F48091DF01D2 -:1049A00081600BC08E3F21F48091DF01826005C0E1 -:1049B0008F3F29F48091DF0184608093DF010895A7 -:1049C000803F39F48091E30187FF6CC01092E301CE -:1049D00069C0813F29F48091E3011816BCF362C0DD -:1049E0009091E201823F29F497FF5CC01092E201AE -:1049F00059C0833F19F41916CCF354C0893F41F4D0 -:104A00008091E40118160CF04DC01092E4014AC0E8 -:104A10008A3F29F48091E40187FF44C0F6CF8B3FA1 -:104A200039F48091E50187FF3DC01092E5013AC05D -:104A30008C3F29F48091E5011816BCF333C0843F04 -:104A400021F48091E1018E7F17C0853F21F4809190 -:104A5000E1018D7F11C0863F21F48091E1018B7FC0 -:104A60000BC0873F21F48091E101877F05C0883F1B -:104A700031F48091E1018F7E8093E10113C08D3F7D -:104A800021F48091DF018E7F0BC08E3F21F4809155 -:104A9000DF018D7F05C08F3F29F48091DF018B7F7F -:104AA0008093DF018091E20181110EC08091E301CA -:104AB00081110AC08091E401811106C08091E50155 -:104AC000811102C01092E00108958091D70183FF07 -:104AD0007EC088E396E00E9452078091E1011F9218 -:104AE0008F9383E396E09F938F930E94EB0781E37C -:104AF00096E00E9452078091E201282F332727FD7C -:104B000030953F938F938EE296E09F938F930E9410 -:104B1000EB078CE296E00E9452078091E301282F78 -:104B2000332727FD30953F938F9389E296E09F933B -:104B30008F930E94EB0787E296E00E9452078091D4 -:104B4000E401282F332727FD30953F938F9384E28C -:104B500096E09F938F930E94EB0782E296E00E947B -:104B600052078091E501282F332727FD30953F9389 -:104B70008F938FE196E09F938F930E94EB078CE1D8 -:104B800096E00E9452078091E0011F928F9389E185 -:104B900096E09F938F930E94EB0787E196E00E9437 -:104BA00052078091DF011F928F9384E196E09F93DB -:104BB0008F930E94EB0781E196E00E9452078DB728 -:104BC0009EB74C960FB6F8949EBF0FBE8DBF81EE78 -:104BD00091E00E9434150E94C4219093DE018093DD -:104BE000DD0108951F93CF93DF938091DD019091B4 -:104BF000DE010E94D021AC019091E001992321F0C7 -:104C00002091140130E006C0209115018AE0289F10 -:104C1000900111244217530708F486C08091E201E5 -:104C2000C091E301D091E4011091E501811107C029 -:104C3000C11176C0D11174C0111172C075C09F3FEF -:104C400019F09F5F9093E001181624F40E94F62358 -:104C50008093E2018091E20187FF05C00E94F62364 -:104C600081958093E2011C1624F40E94F623809320 -:104C7000E3018091E30187FF05C00E94F62381953F -:104C80008093E3016091E201662339F1C091E30171 -:104C9000CC2319F1772767FD7095872F972F0E94F6 -:104CA000742C23E333E343E35FE30E94D82C0E9498 -:104CB000412C6093E2016C2F772767FD7095872F59 -:104CC000972F0E94742C23E333E343E35FE30E94B6 -:104CD000D82C0E94412C6093E3011D1624F40E94FD -:104CE0003F248093E4018091E40187FF05C00E9486 -:104CF0003F2481958093E401111624F40E943F24FF -:104D00008093E5018091E50187FF05C00E943F2463 -:104D100081958093E501DF91CF911F910C946525DA -:104D20009F3F09F08ECF96CFDF91CF911F910895CD -:104D3000E1EEF1E085E0DF011D928A95E9F710923E -:104D4000E0011092DF0108958BE598E00E94520780 -:104D50001F9281E08F931F9285E08F938DE098E002 -:104D60009F938F930E94EB070F900F900F900F90DF -:104D70000F900F9008958330E9F128F4813061F0AD -:104D8000823009F10895853009F462C008F449C001 -:104D9000863009F474C0089580911501262F30E003 -:104DA000280F311D2F3F310524F4680F6093150142 -:104DB00003C08FEF80931501809115011F928F938F -:104DC00086E497E072C080911401262F30E0280F0E -:104DD000311D2F3F310524F4680F6093140103C087 -:104DE0008FEF80931401809114011F928F9384E3BD -:104DF00097E05BC080911301262F30E0280F311D12 -:104E00002F3F310524F4680F6093130103C08FEF27 -:104E100080931301809113011F928F9381E297E099 -:104E200044C080911201262F30E0280F311D2F3F02 -:104E3000310524F4680F6093120103C08FEF809353 -:104E40001201809112011F928F938CE097E02DC088 -:104E500080911101262F30E0280F311D2F3F3105A1 -:104E600024F4680F6093110103C08FEF8093110148 -:104E7000809111011F928F9383EF96E016C080916D -:104E80001001262F30E0280F311D2F3F310524F46B -:104E9000680F6093100103C08FEF80931001809121 -:104EA00010011F928F9388ED96E09F938F930E943D -:104EB000EB070F900F900F900F900895833081F1C2 -:104EC00028F4813059F08230D1F00895853009F40A -:104ED00049C0B8F1863009F456C008958091150193 -:104EE000681720F4861B8093150102C010921501EB -:104EF000809115011F928F9389EC96E054C08091A8 -:104F00001401681720F4861B8093140102C01092CC -:104F10001401809114011F928F9387EB96E043C098 -:104F200080911301681720F4861B8093130102C03F -:104F300010921301809113011F928F9384EA96E0DF -:104F400032C080911201681720F4861B80931201F1 -:104F500002C010921201809112011F928F938FE86C -:104F600096E021C080911101681720F4861B809380 -:104F7000110102C010921101809111011F928F93B3 -:104F800086E796E010C080911001681720F4861B18 -:104F90008093100102C010921001809110011F92A5 -:104FA0008F938BE596E09F938F930E94EB070F9072 -:104FB0000F900F900F900895CF93C82F1F928F934B -:104FC00080E699E09F938F930E94EB0781E090E049 -:104FD000A0E0B0E0BC01CD0104C0660F771F881FC0 -:104FE000991FCA95D2F70E94791E0F900F900F90CB -:104FF0000F90CF910C94BD1ACF938D3109F465C0F9 -:10500000B0F58E3009F4CCC100F5873009F49BC1AE -:10501000A8F4863009F06DC28091D701817F8E7F20 -:105020008093D70185E699E00E94520781EA9DE0CE -:105030000E94520781E08093E70180C1883009F423 -:105040004FC08B3009F47CC154C2863109F4F0C1E1 -:1050500038F4803109F4B8C1813109F430C249C251 -:10506000893109F4CEC18B3109F486C142C285333E -:1050700009F437C248F4873209F433C208F433C262 -:10508000893209F42EC235C2833438F48A3308F0E9 -:105090002CC2883309F454C12CC2833409F421C2D0 -:1050A000883409F026C20E94BD1A80E99DE00E9462 -:1050B00052079FEF23ED80E3915020408040E1F7BD -:1050C00000C000000E941F2239C180EB9DE00E94B9 -:1050D00052070E94FB2B0E94DF140E94110D2EC16B -:1050E00085EA9DE00E94520786E79BE00E945207F6 -:1050F0000E94E4231F928F9383E79BE09F938F93FB -:105100000E94EB0781E79BE00E9452070E94DB238D -:10511000C82F8EE59BE00E9452071F92CF9389E52E -:105120009BE09F938F930E94EB0787E59BE00E9493 -:1051300052078DE49BE00E9452078C2F81701F92D2 -:105140008F938AE49BE09F938F930E94EB0788E400 -:105150009BE00E9452078EE39BE00E945207C1FB36 -:10516000882780F91F928F938BE39BE09F938F9307 -:105170000E94EB0789E39BE00E9452078DE29BE0CF -:105180000E945207C2FB882780F91F928F938AE200 -:105190009BE09F938F930E94EB0788E29BE00E9425 -:1051A00052078FE19BE00E945207C3FBCC27C0F956 -:1051B0001F92CF938CE19BE09F938F930E94EB070C -:1051C0008AE19BE00E9452070E94ED23C82F86E0EF -:1051D0009BE00E9452071F92CF9381E09BE09F9338 -:1051E0008F930E94EB078FEF9AE00E94520786EEA2 -:1051F0009AE00E9452078C2F81701F928F9383EE4A -:105200009AE09F938F930E94EB078DB79EB780968D -:105210000FB6F8949EBF0FBE8DBF81EE9AE00E943C -:1052200052078AEC9AE00E945207C1FB882780F956 -:105230001F928F9387EC9AE09F938F930E94EB07C6 -:1052400085EC9AE00E94520783EB9AE00E94520795 -:10525000C2FB882780F91F928F9380EB9AE09F937F -:105260008F930E94EB078EEA9AE00E9452078CE926 -:105270009AE00E945207C3FB882780F91F928F9300 -:1052800089E99AE09F938F930E94EB0787E99AE060 -:105290000E9452078DE89AE00E945207C4FB8827BB -:1052A00080F91F928F938AE89AE09F938F930E94D0 -:1052B000EB0788E89AE00E94520786E79AE00E948E -:1052C0005207C5FB882780F91F928F9383E79AE0E6 -:1052D0009F938F930E94EB0781E79AE00E94520709 -:1052E00085E59AE00E945207C6FB882780F91F9245 -:1052F0008F9382E59AE09F938F930E94EB0780E55E -:105300009AE00E94520788E49AE00E945207C7FB85 -:10531000CC27C0F91F92CF9385E49AE09F938F9397 -:105320000E94EB0783E49AE00E9452078DB79EB774 -:105330004C960FB6F8949EBF0FBE8DBFC1E0DEC085 -:105340008CE899E05BC08091D701C82FC17080FFC5 -:1053500009C083E89DE00E9452078091D701817FB8 -:105360008E7F47C087E79DE00E9452078091D7015A -:1053700081608093D701E2CF9091D70191FBCC2738 -:10538000C0F981E0C827892FC0FB81F98093D7013C -:10539000CC2319F08AE69DE027C08CE59DE02EC065 -:1053A0009091D70192FBCC27C0F981E0C827892FC3 -:1053B000C0FB82F98093D701CC2319F08DE49DE0E6 -:1053C00013C08DE39DE01AC09091D70193FBCC27C9 -:1053D000C0F981E0C827892FC0FB83F98093D701EA -:1053E000CC2351F081E39DE00E9452078091D701C8 -:1053F00081608093D70182C084E29DE00E945207C1 -:105400009DCF85E19DE00E94520789EE9CE00E94BD -:1054100052078CEA9CE00E94520785E89CE00E94BB -:10542000520781E49CE00E94520786E19CE0E6CFAF -:1054300088E09CE00E9452070E94DF141F928F9325 -:105440008EEE9BE09F938F930E94EB0780910C015F -:105450001F928F9387ED9BE09F938F930E94EB07A2 -:1054600080916E011F928F9384EC9BE09F938F93AA -:105470000E94EB0780910D011F928F9381EB9BE0BF -:105480009F938F930E94EB078091D9019091DA014D -:10549000A091DB01B091DC01BF93AF939F938F93F9 -:1054A0008DE99BE09F938F930E94EB078DB79EB78A -:1054B00046960FB6F8949EBF0FBE8DBF3FCF0E9499 -:1054C000BD1AC0910D0181E0C827C0930D01CC2306 -:1054D00029F083E99BE00E94520710C088E89BE016 -:1054E0008DCF80E003C08D5101C089530E94DC271D -:1054F00025CF86E89BE00E945207C0E08C2FCF9119 -:10550000089580E0089580E00895CF93C82F80919A -:10551000E701813081F020F0823009F44FC045C1AD -:10552000E0910E01F0910F018081813169F08232AA -:1055300009F03DC109C0E0910E01F0910F01808199 -:10554000813111F0823261F48C2F0E94812A811105 -:1055500004C08C2F0E94FC272FC081E090E02CC05B -:105560008C2F0E94832A811126C0C431E1F070F48F -:10557000CB3081F0C031D1F40E94A42688E599E0B7 -:105580000E94520782E08093E70115C0C93259F0AA -:10559000C83361F485E699E00E9452078CE599E0F2 -:1055A0000E94520708C01092E70103C186E599E006 -:1055B0000E945207FEC081E08170FDC0C43220F518 -:1055C000CE3108F0C0C0CB3099F1C8F4C73009F033 -:1055D000D2C08AE08093150194E19093140193E086 -:1055E000909313018093120188E08093110188E267 -:1055F000809310018CEF97E00E945207BFC0C33127 -:1056000049F1C431C1F0B7C0CB3409F4A9C028F4C2 -:10561000C93289F0C83361F0AEC0C13509F49EC00B -:10562000C23509F499C0CE3409F0A5C06AE09EC025 -:105630000E94A426A3C08091E601882319F010924D -:10564000E6019CC089E098E00E94520781E08093C7 -:10565000E701B1C083EE97E00E94520781ED97E029 -:105660000E945207809115011F928F938EEC97E054 -:105670009F938F930E94EB078CEC97E00E94520758 -:105680008AEB97E00E945207809114011F928F933A -:1056900087EB97E09F938F930E94EB0785EB97E052 -:1056A0000E94520786EA97E00E94520780911301F8 -:1056B0001F928F9383EA97E09F938F930E94EB074B -:1056C00081EA97E00E94520780E997E00E94520722 -:1056D000809112011F928F938DE897E09F938F9393 -:1056E0000E94EB078BE897E00E94520786E797E05D -:1056F0000E945207809111011F928F9383E797E0D8 -:105700009F938F930E94EB0781E797E00E945207D7 -:105710008AE597E00E945207809110011F928F93B3 -:1057200087E597E09F938F930E94EB0785E597E0CD -:105730000E9452078DB79EB748960FB6F8949EBF49 -:105740000FBE8DBF1BC0CE51EC2FF0E0E15DFE4FD0 -:1057500080818093E60112C061E003C061E006C071 -:105760006AE08091E6010E94BB2608C08091E601B4 -:105770000E945E2703C08AEF97E013C08091E60184 -:10578000882369F01F928F9384EF97E09F938F9304 -:105790000E94EB070F900F900F900F9004C081EFC5 -:1057A00097E00E94520781E006C01092E70180E076 -:1057B00002C080E001CFCF910895E1E8F0E0808160 -:1057C000886080838081816080838FB7F89493E0C4 -:1057D0009093890090ED909388008FBF0895EFE635 -:1057E000F0E08081826080830895EFE6F0E08081C0 -:1057F0008D7F80830895EFE6F0E0908182E0892735 -:10580000808308951F920F920FB60F9211242F9349 -:105810003F934F935F936F937F938F939F93AF9338 -:10582000BF93EF93FF938091E8019091E901019676 -:105830009093E9018093E801811103C082E00E9406 -:10584000110DE091E901E695E695F0E0E054F24FA4 -:10585000E4918091E8018E1303C080E00E94110D55 -:10586000FF91EF91BF91AF919F918F917F916F9138 -:105870005F914F913F912F910F900FBE0F901F900E -:10588000189504D06894B1118DC0089570D088F037 -:105890009F5790F0B92F9927B751A0F0D1F0660F1C -:1058A000771F881F991F1AF0BA95C9F712C0B13037 -:1058B00081F077D0B1E0089574C0672F782F8827E2 -:1058C000B85F39F0B93FCCF3869577956795B39576 -:1058D000D9F73EF490958095709561957F4F8F4FE5 -:1058E0009F4F0895E89409C097FB3EF490958095EA -:1058F000709561957F4F8F4F9F4F9923A9F0F92F96 -:1059000096E9BB279395F695879577956795B79513 -:10591000F111F8CFFAF4BB0F11F460FF1BC06F5FF9 -:105920007F4F8F4F9F4F16C0882311F096E911C00B -:10593000772321F09EE8872F762F05C0662371F02C -:1059400096E8862F70E060E02AF09A95660F771F40 -:10595000881FDAF7880F9695879597F9089557FD70 -:105960009058440F551F59F05F3F71F04795880FCD -:1059700097FB991F61F09F3F79F087950895121664 -:1059800013061406551FF2CF4695F1DF08C0161610 -:1059900017061806991FF1CF8695710561050894C1 -:1059A0000895E894BB2766277727CB0197F90895D8 -:1059B0000BD078C069D028F06ED018F0952309F08C -:1059C0005AC05FC01124EECFCADFA0F3959FD1F378 -:1059D000950F50E0551F629FF001729FBB27F00D9D -:1059E000B11D639FAA27F00DB11DAA1F649F6627F2 -:1059F000B00DA11D661F829F2227B00DA11D621F41 -:105A0000739FB00DA11D621F839FA00D611D221FFA -:105A1000749F3327A00D611D231F849F600D211DDE -:105A2000822F762F6A2F11249F5750408AF0E1F081 -:105A300088234AF0EE0FFF1FBB1F661F771F881FCA -:105A400091505040A9F79E3F510570F014C0AACF65 -:105A50005F3FECF3983EDCF3869577956795B795B5 -:105A6000F795E7959F5FC1F7FE2B880F911D9695DF -:105A7000879597F9089597F99F6780E870E060E04F -:105A800008959FEF80EC089500240A9416161706D7 -:105A900018060906089500240A941216130614061F -:105AA00005060895092E0394000C11F4882352F082 -:105AB000BB0F40F4BF2B11F460FF04C06F5F7F4F3A -:105AC0008F4F9F4F0895991B79E004C0991F961737 -:105AD00008F0961B881F7A95C9F78095089597FB63 -:105AE000072E16F4009407D077FD09D00E94892D67 -:105AF00007FC05D03EF4909581959F4F08957095D1 -:105B000061957F4F0895EE0FFF1F0590F491E02DF2 -:105B10000994AA1BBB1B51E107C0AA1FBB1FA617F4 -:105B2000B70710F0A61BB70B881F991F5A95A9F746 -:105B300080959095BC01CD010895F999FECF92BD55 -:105B400081BDF89A992780B50895A8E1B0E042E0B8 -:105B500050E00C94C02D262FF999FECF1FBA92BDAC -:105B600081BD20BD0FB6F894FA9AF99A0FBE01963E -:105B700008950E94AB2D272F0C94AC2DDC01CB0196 -:105B8000FC01F999FECF06C0F2BDE1BDF89A31964D -:105B900000B40D9241505040B8F70895F894FFCFEB -:105BA0002002120D030EE00DAC0D780D0101C501B0 -:105BB00028080A03140A3F4D3620394605F904C364 -:105BC00004A3046A04DD03F6030F04280448040157 -:0A5BD000020304050607080900009F -:00000001FF diff --git a/keyboard/ergodox_ez/keymaps/keymap_coderkun_neo2.c b/keyboard/ergodox_ez/keymaps/keymap_coderkun_neo2.c deleted file mode 100644 index bec67e7d4c..0000000000 --- a/keyboard/ergodox_ez/keymaps/keymap_coderkun_neo2.c +++ /dev/null @@ -1,137 +0,0 @@ -#include "ergodox_ez.h" -#include "debug.h" -#include "action_layer.h" -#include "keymap_extras/keymap_neo2.h" - -// Layer names -#define BASE 0 // default layer -#define FMU 1 // FMU layer - - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -/* Layer 0 (default) - * ┌───────┬─────┬─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┬─────┬───────┐ - * │ TAB │ 1 │ 2 │ 3 │ 4 │ 5 │ ` │ │ ´ │ 6 │ 7 │ 8 │ 9 │ 0 │ BKSPC │ - * ├───────┼─────┼─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┼─────┼─────┼───────┤ - * │ Y │ X │ V │ L │ C │ W │ HOM │ │ END │ K │ H │ G │ F │ Q │ ß │ - * ├───────┼─────┼─────┼─────╆─────╅─────┤ E │ │ ├─────╆─────╅─────┼─────┼─────┼───────┤ - * │ Mod3 │ U │ I │ A │ E │ O ├─────┤ ├─────┤ S │ N │ R │ T │ D │ Mod3 │ - * ├───────┼─────┼─────┼─────╄─────╃─────┤ TL2 │ │ TL3 ├─────╄─────╃─────┼─────┼─────┼───────┤ - * │ LSHFT │ Ü │ Ö │ Ä │ P │ Z │ │ │ │ B │ M │ , │ . │ J │ Shift │ - * └─┬─────┼─────┼─────┼─────┼─────┼─────┴─────┘ └─────┴─────┼─────┼─────┼─────┼─────┼─────┬─┘ - * │ CTL │ ALT │ MO1 │ Win │ Mod4│ │ Mod4│ Win │ MO1 │ Alt │ CTL │ - * └─────┴─────┴─────┴─────┴─────┘ ┌─────┬─────┐ ┌─────┬─────┐ └─────┴─────┴─────┴─────┴─────┘ - * │ ← │ ↑ │ │ ↓ │ → │ - * ┌─────┼─────┼─────┤ ├─────┼─────┼─────┐ - * │ │ │ ─ │ │ ─ │ │ │ - * │ SPC │ RTN ├─────┤ ├─────┤ RTN │ SPC │ - * │ │ │ HYP │ │ MEH │ │ │ - * └─────┴─────┴─────┘ └─────┴─────┴─────┘ - */ -[BASE] = KEYMAP( - // left hand - KC_TAB, KC_1, KC_2, KC_3, KC_4, KC_5, KC_EQL, - NEO_Y, NEO_X, NEO_V, NEO_L, NEO_C, NEO_W, KC_HOME, - NEO_L1_L, NEO_U, NEO_I, NEO_A, NEO_E, NEO_O, - KC_LSFT, NEO_UE, NEO_OE, NEO_AE, NEO_P, NEO_Z, KC_TRNS, - KC_LCTL, KC_LALT,MO(FMU),KC_LGUI,NEO_L2_L, - KC_LEFT, KC_UP, - KC_MINS, - KC_SPC, KC_ENT, ALL_T(KC_NO), - // right hand - DE_ACUT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, - KC_END, NEO_K, NEO_H, NEO_G, NEO_F, NEO_Q, NEO_SS, - NEO_S, NEO_N, NEO_R, NEO_T, NEO_D, NEO_L1_R, - KC_TRNS, NEO_B, NEO_M, KC_COMM,KC_DOT, NEO_J, KC_RSFT, - NEO_L2_R,KC_RGUI,MO(FMU),KC_RALT,KC_RCTL, - KC_DOWN, KC_RGHT, - KC_MINS, - MEH_T(KC_NO),KC_ENT,KC_SPC - ), -/* Layer 1 (F-keys, Mouse and Unicode) - * ┌───────┬─────┬─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┬─────┬───────┐ - * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - * ├───────┼─────┼─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┼─────┼─────┼───────┤ - * │ │ │ │ │ ✕ │ │ │ │ │ │ F9 │ F10 │ F11 │ F12 │ │ - * ├───────┼─────┼─────┼─────╆─────╅─────┤ │ │ ├─────╆─────╅─────┼─────┼─────┼───────┤ - * │ │ │ │ │ ✓ │ ├─────┤ ├─────┤ │ F5 │ F6 │ F7 │ F8 │ │ - * ├───────┼─────┼─────┼─────╄─────╃─────┤ │ │ ├─────╄─────╃─────┼─────┼─────┼───────┤ - * │ │ │ │ │ │ │ │ │ │ │ F1 │ F2 │ F3 │ F4 │ │ - * └─┬─────┼─────┼─────┼─────┼─────┼─────┴─────┘ └─────┴─────┼─────┼─────┼─────┼─────┼─────┬─┘ - * │ │ │(MO1)│ │ │ │ │ │(MO1)│ │ │ - * └─────┴─────┴─────┴─────┴─────┘ ┌─────┬─────┐ ┌─────┬─────┐ └─────┴─────┴─────┴─────┴─────┘ - * │ Ms← │ Ms↑ │ │ Ms↓ │ Ms→ │ - * ┌─────┼─────┼─────┤ ├─────┼─────┼─────┐ - * │ │ │ MLC │ │ MRC │ │ │ - * │ │ ├─────┤ ├─────┤ │ │ - * │ │ │ │ │ │ │ │ - * └─────┴─────┴─────┘ └─────┴─────┴─────┘ - */ -[FMU] = KEYMAP( - // left hand - KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, - KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,UC(0x2713),KC_TRNS,KC_TRNS, - KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,UC(0x2715),KC_TRNS, - KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, - KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, - KC_MS_L, KC_MS_U, - KC_BTN1, - KC_TRNS,KC_TRNS, KC_TRNS, - // right hand - KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, - KC_TRNS, KC_TRNS,KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, - KC_TRNS,KC_F5, KC_F6, KC_F7, KC_F8, KC_TRNS, - KC_TRNS, KC_TRNS,KC_F1, KC_F2, KC_F3, KC_F4, KC_TRNS, - KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, - KC_MS_D, KC_MS_R, - KC_BTN2, - KC_TRNS, KC_TRNS,KC_TRNS - ), -}; - -const uint16_t PROGMEM fn_actions[] = { - [1] = ACTION_LAYER_TAP_TOGGLE(FMU) -}; - - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - // MACRODOWN only works in this function - switch(id) { - case 0: - if (record->event.pressed) { - register_code(KC_RSFT); - } - else { - unregister_code(KC_RSFT); - } - break; - } - - return MACRO_NONE; -}; - - -// Runs just one time when the keyboard initializes. -void * matrix_init_user(void) { -}; - - -// Runs constantly in the background, in a loop. -void * matrix_scan_user(void) -{ - uint8_t layer = biton32(layer_state); - - ergodox_board_led_off(); - ergodox_right_led_1_off(); - ergodox_right_led_2_off(); - ergodox_right_led_3_off(); - switch (layer) { - case FMU: - ergodox_right_led_1_on(); - default: - ergodox_board_led_off(); - break; - } - -}; diff --git a/keyboard/ergodox_ez/keymaps/keymap_dave.hex b/keyboard/ergodox_ez/keymaps/keymap_dave.hex deleted file mode 100644 index 767a9ca117..0000000000 --- a/keyboard/ergodox_ez/keymaps/keymap_dave.hex +++ /dev/null @@ -1,1483 +0,0 @@ -:100000000C94FE060C9442070C9442070C94420791 -:100010000C9442070C9442070C9442070C9442073C -:100020000C9442070C9442070C94B2120C94841363 -:100030000C9442070C9442070C9442070C9442071C -:100040000C9442070C945C2C0C9442070C944207CD -:100050000C9442070C9463220C9442070C944207C0 -:100060000C9442070C9442070C9442070C944207EC -:100070000C9442070C9442070C9442070C944207DC -:100080000C9442070C9442070C9442070C944207CC -:100090000C9442070C9442070C9442070C944207BC -:1000A0000C9442070C9442070C944207E9130B147A -:1000B000F6140B14F6144D147014F614C514D81459 -:1000C00026182618541854189718D318D41AD41A66 -:1000D000EB18D41AE219E219AE1AD41AD41AC21AB9 -:1000E00029002B00E000E100357100001E00140023 -:1000F00004001D006400E3001F001A0016001B002E -:1001000000000252200008000700060000002C003A -:100110002100150009001900E2001151220017000A -:100120000A0005000000460023001C0000000B0030 -:100130000000650023000A000000050000004800E0 -:1001400024001C000B0011000000007525001800A1 -:100150000D001000E600115126000C000E003600C4 -:1001600000002C00270012000F0037002F00015262 -:100170002D001300330038003000E7002A0028006B -:100180002800E500347100000100010001000100B9 -:100190000100000001001E022002220201000100F5 -:1001A00001001F02210223020100010001002F02B1 -:1001B00026022F000100010001003002270230005A -:1001C000010012510100310235003502000001002A -:1001D0000100010000000100000001000100010019 -:1001E0000000010000000100010001000100010009 -:1001F0000000010000005F005C0059006200125125 -:10020000540060005D005A0062000100550061006A -:100210005E005B0063000100560057005700580065 -:10022000580001002E0032003400010001000000DF -:100230000100010001000100010000003A004A0035 -:100240005000F400F20001003B0052005100F000A9 -:10025000F10001003C004D004F00F500F3000100EB -:100260003D0049004C000100010010513E004B00D0 -:100270004E0001000000A5003F0001000000010049 -:1002800000004C05400001000000010000000100DA -:1002900041000100010001000000010042000100D6 -:1002A000B600AC00AA001051430049004C00AE005B -:1002B000A800010044000100B700AB00A900010044 -:1002C00045000100010001000100010001000100E2 -:1002D00001000100010000000A00253031366200F3 -:1002E0003A200025303258000A722F632030313214 -:1002F000333435363738394142434445460A000ADB -:10030000002530325800626F756E6365213A200017 -:100310006C656674207369646520617474616368D8 -:1003200065640A006C6566742073696465206E6F8D -:100330007420726573706F6E64696E670A00747200 -:1003400079696E6720746F207265736574206D63C0 -:100350007032333031380A000A44454255473A205A -:10036000656E61626C65642E0A005B735D004B65AF -:1003700079626F6172642073746172742E0A005B1B -:10038000575D005B535D005B525D005B445D005B4D -:10039000435D0016034500720067006F0044006F64 -:1003A000007800200045005A000000160345007246 -:1003B0000067006F0044006F007800200045005A7D -:1003C0000000000403090409028D00050100A0FAE1 -:1003D00009040000010301010009211101000122AB -:1003E0003F000705810308000A0904010001030119 -:1003F0000200092111010001224D000705820308B6 -:10040000000A090402000103000000092111010093 -:10041000012236000705830308000A0904030002CD -:1004200003000000092111010001222000070584BA -:100430000320000107050403200001090404000152 -:100440000300000009211101000122390007058580 -:10045000031000011201100100000008EDFE071357 -:1004600001000102000105010906A101050719E0CB -:1004700029E7150025019508750181020508190174 -:1004800029059505750191029501750391010507EF -:100490001900297715002501957875018102C0069C -:1004A00031FF0974A1010975150025FF9520750814 -:1004B00081020976150025FF952075089102C00577 -:1004C000010980A101850216010026B7001A01006A -:1004D0002AB700751095018100C0050C0901A10122 -:1004E0008503160100269C021A01002A9C02751041 -:1004F00095018100C005010902A1010901A10005C2 -:100500000919012905150025019505750181029537 -:1005100001750381010501093009311581257F9598 -:10052000027508810609381581257F9501750881B6 -:1005300006050C0A38021581257F9501750881068C -:10054000C0C005010906A101050719E029E715004A -:10055000250195087501810295017508810105083D -:100560001901290595057501910295017503910100 -:100570000507190029FF150025FF9506750881005C -:10058000C00A002530325820006B6579626F6172B5 -:10059000645F7265706F72743A20000A0025303211 -:1005A00058006B6579626F6172645F7365745F6C2C -:1005B00065643A200064656C5F6B65795F6269749D -:1005C0003A2063616E27742064656C3A20253032CE -:1005D000580A006164645F6B65795F6269743A20F0 -:1005E00063616E2774206164643A20253032580AB2 -:1005F00000646F6E652E0A00626F6F676D616769D8 -:1006000063207363616E3A202E2E2E2000290A008B -:100610002575002F002575005D2800256400200049 -:10062000256400200025640020002564007C00254E -:10063000303258006D6F7573656B6579205B62743D -:100640006E7C782079207620685D287265702F6135 -:10065000636C293A205B006D6B5F776865656C5F42 -:1006600074696D655F746F5F6D6178203D202564EE -:100670000A006D6B5F776865656C5F6D61785F73AD -:1006800070656564203D2025640A006D6B5F7469A8 -:100690006D655F746F5F6D6178203D2025640A0091 -:1006A0006D6B5F6D61785F7370656564203D2025BB -:1006B000640A006D6B5F696E74657276616C203DD3 -:1006C0002025640A006D6B5F64656C6179203D20B4 -:1006D00025640A006D6B5F776865656C5F74696D92 -:1006E000655F746F5F6D6178203D2025640A006D41 -:1006F0006B5F776865656C5F6D61785F737065656A -:1007000064203D2025640A006D6B5F74696D655F30 -:10071000746F5F6D6178203D2025640A006D6B5F0A -:100720006D61785F7370656564203D2025640A0003 -:100730006D6B5F696E74657276616C203D20256417 -:100740000A006D6B5F64656C6179203D2025640A49 -:10075000000A00257500363A20776865656C5F747D -:10076000696D655F746F5F6D61783A20000A0025DE -:100770007500353A20776865656C5F6D61785F73E9 -:10078000706565643A20000A00257500343A2074CB -:10079000696D655F746F5F6D61783A20000A0025AE -:1007A0007500333A206D61785F73706565643A2037 -:1007B000000A00257500323A20696E746572766110 -:1007C0006C286D73293A20000A00257500313A2003 -:1007D00064656C6179282A31306D73293A20000AEA -:1007E000092D2056616C756573202D0A004D3E0061 -:1007F0004D25643E20003F0073657420646566618A -:10080000756C740A00433E20007768657265206449 -:10081000656C74613A20637572736F723D25642C48 -:1008200020776865656C3D25640A536565206874AA -:1008300074703A2F2F656E2E77696B6970656469E5 -:10084000612E6F72672F77696B692F4D6F757365B6 -:100850005F6B6579730A000A092D204D6F7573650A -:100860006B6579202D0A4553432F713A09717569DB -:10087000740A313A0964656C6179282A31306D73E4 -:10088000290A323A09696E74657276616C286D7353 -:10089000290A333A096D61785F73706565640A34BB -:1008A0003A0974696D655F746F5F6D61780A353AF6 -:1008B00009776865656C5F6D61785F737065656405 -:1008C0000A363A09776865656C5F74696D655F74AF -:1008D0006F5F6D61780A0A703A097072696E7420F0 -:1008E00076616C7565730A643A0973657420646592 -:1008F0006661756C74730A75703A092B310A646FFE -:10090000776E3A092D310A706775703A092B3130CC -:100910000A7067646F776E3A092D31300A0A737076 -:10092000656564203D2064656C7461202A206D61DA -:10093000785F7370656564202A2028726570656130 -:1009400074202F2074696D655F746F5F6D61782905 -:100950000A003F004D3E2000433E20004C25640A23 -:10096000000A092D20436F6E736F6C65202D0A45B8 -:1009700053432F713A09717569740A6D3A096D6FA5 -:100980007573656B65790A000A092D204D616769E9 -:1009900063202D0A643A0964656275670A783A092A -:1009A0006465627567206D61747269780A6B3A09D3 -:1009B0006465627567206B6579626F6172640A6D48 -:1009C0003A096465627567206D6F7573650A763ADA -:1009D0000976657273696F6E0A733A09737461748C -:1009E00075730A633A09636F6E736F6C65206D6F80 -:1009F00064650A302D343A096C61796572302D34A2 -:100A0000284631302D4634290A506175733A0962FF -:100A10006F6F746C6F616465720A653A0965657021 -:100A2000726F6D0A6E3A094E4B524F0A7A3A097349 -:100A30006C656570204C454420746573740A000A27 -:100A4000002575002E6E6B726F3A20000A00257526 -:100A5000002E737761705F6261636B736C617368A2 -:100A60005F6261636B73706163653A20000A002501 -:100A700075002E737761705F67726176655F65736D -:100A8000633A20000A002575002E6E6F5F67756956 -:100A90003A20000A002575002E737761705F72613D -:100AA0006C745F726775693A20000A002575002E24 -:100AB000737761705F6C616C745F6C6775693A2005 -:100AC000000A002575002E636170736C6F636B5FA5 -:100AD000746F5F636F6E74726F6C3A20000A00254A -:100AE00075002E737761705F636F6E74726F6C5FE9 -:100AF000636170736C6F636B3A20000A00253032BB -:100B000058006B65796D61705F636F6E6669672E03 -:100B10007261773A20000A002575002E6D6F75739B -:100B2000653A20000A002575002E6B6579626F61B9 -:100B300072643A20000A002575002E6D6174726996 -:100B4000783A20000A002575002E656E61626C659A -:100B50003A20000A00253032580064656275675FEC -:100B6000636F6E6669672E7261773A20000A00250E -:100B7000750064656661756C745F6C617965723A65 -:100B800020003F004E4B524F3A206F66660A004EDF -:100B90004B524F3A206F6E0A0074696D65725F6345 -:100BA0006F756E743A202530346C580A006B657985 -:100BB000626F6172645F6E6B726F3A2025580A0033 -:100BC0006B6579626F6172645F69646C653A202558 -:100BD000580A006B6579626F6172645F70726F743E -:100BE0006F636F6C3A2025580A00686F73745F6BEF -:100BF0006579626F6172645F6C65647328293A205D -:100C000025580A000A092D20537461747573202D2C -:100C10000A004743433A20342E382E3220415652A0 -:100C20002D4C4942433A20312E382E302041565225 -:100C30005F415243483A20617672350A004F505462 -:100C4000494F4E533A204C55464120424F4F544D48 -:100C500041474943204D4F5553454B455920455831 -:100C60005452414B455920434F4E534F4C4520431E -:100C70004F4D4D414E44204E4B524F203531320A9C -:100C8000004255494C443A203135316565303420B5 -:100C90002832303A35393A343720446563203230CF -:100CA0002032303135290A005649443A20307846FE -:100CB000454544284572676F446F7820455A29207E -:100CC0005049443A20307831333037284572676FC5 -:100CD000446F7820455A29205645523A20307830C2 -:100CE0003030310A00444553433A20742E6D2E6B48 -:100CF0002E206B6579626F617264206669726D7710 -:100D000061726520666F72204572676F646F780A42 -:100D1000000A092D2056657273696F6E202D0A0036 -:100D20000A6D6F7573653A206F66660A000A6D6F0B -:100D30007573653A206F6E0A000A6B6579626F61A0 -:100D400072643A206F66660A000A6B6579626F61A9 -:100D500072643A206F6E0A000A6D61747269783AA3 -:100D6000206F66660A000A6D61747269783A206FB6 -:100D70006E0A000A64656275673A206F6E0A000A9F -:100D800064656275673A206F66660A000A0A626FD8 -:100D90006F746C6F616465722E2E2E2000433E20AE -:100DA000006565636F6E6669673A0A00536C656536 -:100DB00070204C454420746573740A0000000000E4 -:100DC00000000000000000010204060A0F17202C9A -:100DD0003A4A5D71879DB3C7DAE9F5FCFFFCF5E996 -:100DE000DAC7B39D87715D4A3A2C20170F0A0604B3 -:100DF00002010000000000000000000011241FBEDE -:100E0000CFEFDAE0DEBFCDBF04B603FE24C0809191 -:100E1000FD019091FE01A091FF01B0910002873089 -:100E2000904BA740B04BB9F41092FD011092FE0117 -:100E30001092FF011092000214BE84B7877F84BF16 -:100E400088E10FB6F89480936000109260000FBEA6 -:100E5000E0E0FFE3099511E0A0E0B1E0E4E5FCE5A6 -:100E600002C005900D92AA33B107D9F711E0AAE3A9 -:100E7000B1E001C01D92AD3FB107E1F70E94EC0F58 -:100E80000C94282E0C940000FF93EF93E0913A010C -:100E9000F0913B01309709F00995EF91FF9108958A -:100EA000FC018591803011F0EFDFFBCF0895FF2723 -:100EB000E0E230E247FF0CC0419597FF09C0EDE248 -:100EC0006095709580959095611D711D811D911D96 -:100ED00027FF02C0219530E350E2AA27660F771F53 -:100EE000881F991FAA1FA41710F0A41B63955A9579 -:100EF000A9F7AA3008F0A95FA05DAF93F39561153B -:100F000071058105910541F7ED3211F4EF93F395E9 -:100F1000F21718F43F93F395FBCF8F91B5DFFA9555 -:100F2000E1F70895E991F9918591803021F08532BA -:100F300019F0AADFF9CF089520E0E89455915532D1 -:100F4000C1F3503311F4689455915A3348F4505317 -:100F500090F3220F022E220F220F200D250FF4CF27 -:100F60000EF4219589919991533619F3533729F14C -:100F7000533559F1BC0188279927E8945C3621F450 -:100F80008991999168945591543639F446EF7EF0E1 -:100F900077FF0DC08FEF9FEF0AC055374AE039F059 -:100FA000583540E121F0523642E009F00895FF93B0 -:100FB000EF937DDFEF91FF91B7CFFF93EF93FC01AC -:100FC00081918030B9F360DFFBCFFF93EF9368DF4F -:100FD000F1CFDF93CF93CDB7DEB72596A3DFCF91C7 -:100FE000DF91089561110BC0FC018281882321F0FB -:100FF00085EE0E94BA1603C085EE0E94821780E03B -:1010000090E0089580E090E00895EF92FF921F93A2 -:10101000CF93DF936091C0017091C1018091C201B3 -:101020009091C3010E94672156985E9821E030E0BC -:10103000682F70E0EB01C45CDE4FE1E0F0E0122FBE -:10104000821307C0AB019881A1E09F3F61F4A0E04B -:101050000AC0A901D901A45CBE4F9C91A1E09111E5 -:1010600001C0A0E0A1959A0FDA01A45CBE4F9C9349 -:101070004C5F5F4F992309F194B17F0102C0EE0CE0 -:10108000FF1C4A95E2F79E2994B995B19E2995B91E -:101090004C9150E0113029F450938900409388001E -:1010A0001AC0123029F450938B0040938A0013C069 -:1010B00050938D0040938C000EC094B1DF0102C0AC -:1010C000AA0FBB1F4A95E2F7AD014095942394B94E -:1010D00095B1942395B92F5F3F4F2430310509F026 -:1010E000AECF80E090E0DF91CF911F91FF90EF9025 -:1010F000089585E098E0892B11F00E94050880E0B2 -:1011000090E0089556985E9825982D9826982E98E8 -:1011100027982F988FEF90E0909389008093880014 -:1011200090938B0080938A0090938D0080938C0025 -:10113000259A2D9A2FEF80E792E021508040904031 -:10114000E1F700C00000269A2E9A2FEF80E792E088 -:10115000215080409040E1F700C00000279A2F9A6C -:101160002FEF80E792E0215080409040E1F700C0EF -:10117000000025982D982FEF80E792E021508040C5 -:101180009040E1F700C0000026982E982FEF80E7EE -:1011900092E0215080409040E1F700C00000279885 -:1011A0002F9856985E9825982D9826982E982798CF -:1011B0002F98089589EA8093800089E080938100C8 -:1011C00024982C983F988AB18F748AB96E98479A60 -:1011D0008BB1806B8BB9769A0E94820882E098E08E -:1011E000892B11F00E94020880E090E0089580E2CF -:1011F000809300018091400181110EC00E94460938 -:1012000081E0809340012FEF83ED90E321508040F7 -:101210009040E1F700C0000080E40E944C098093F8 -:10122000000181112EC00E94760980930001811176 -:1012300028C00E94760980930001811122C08FE3AB -:101240000E9476098093000181111BC00E946E09E3 -:1012500080E40E944C0980930001811112C08CE04F -:101260000E9476098093000181110BC00E947609CB -:1012700080930001811105C08FE30E94760980935D -:1012800000010E946E098091000108951092B9003A -:101290008AE08093B800089594EA9093BC009091FE -:1012A000BC0097FFFCCF9091B900987F983021F057 -:1012B000903111F081E008958093BB0084E8809321 -:1012C000BC008091BC0087FFFCCF8091B900887F73 -:1012D000883111F0803471F780E0089584E98093BB -:1012E000BC008091BC0084FDFCCF08958093BB00BE -:1012F00084E88093BC008091BC0087FFFCCF909174 -:10130000B900987F81E0983209F480E0089584E87C -:101310008093BC008091BC0087FFFCCF8091BB0014 -:10132000089580910001811115C080E40E944C094C -:101330008093000181110CC082E10E9476098093A4 -:101340000001811105C08FEF0E9476098093000192 -:101350000E946E0984B1807F84B985B1807F85B990 -:101360008AB1837F8AB98BB1837F8BB93E984698C7 -:1013700008950E94F708809300010E94910980B3AC -:101380008C7080BB81B3836F81BBE0E5F1E0A2E4A8 -:10139000B1E011921D9281E0EE35F807D1F78AEDA8 -:1013A00098E0892B11F00C94DA0808959F92AF927F -:1013B000BF92CF92DF92EF92FF920F931F93CF9342 -:1013C000DF93809100018823E1F0809141018F5FDC -:1013D00080934101811115C08EE393E00E94500774 -:1013E0000E94F70880930001882329F084E293E0AB -:1013F0000E94500706C080E193E00E9450070E94BF -:10140000820802E411E0C0E0D0E0BB24B39482E0A3 -:10141000A82ECC24C394D12C21E0E22E23E0F22E7E -:10142000C73000F580910001811162C080E40E9404 -:101430004C0980930001811112C082E10E9476095B -:101440008093000181110BC0C6010C2E01C0880FD2 -:101450000A94EAF780950E947609809300010E9421 -:101460006E0946C0CA30A1F028F4C83059F0C9301E -:1014700061F005C0CC3089F070F0CD3089F0209A51 -:10148000289810C0219A29980DC0229A2A980AC03B -:10149000239A2B9807C0529A01C0539A5B9802C0B6 -:1014A0003E9A4698E0EAEA95F1F78FB1799985C0BE -:1014B00092E081708B25892B7C9B02C090E001C05B -:1014C00094E0892B7D9B02C090E001C098E0892BBD -:1014D0007E9B02C090E001C090E1892B9FB1909566 -:1014E000991F9927991F9295990F907E892B10C06B -:1014F00080910001811176C080E40E944C098093A4 -:101500000001882309F45BC0912C0E946E09892D8B -:10151000F8019081981739F1808380910101882327 -:1015200001F18091DB0180FF04C086E093E00E941E -:1015300050078091DB0180FF0CC0809101011F9258 -:101540008F93FF92EF920E94E9070F900F900F90F8 -:101550000F908091DB0180FF04C08FEF92E00E942A -:101560005007A09201010E94910921960F5F1F4F21 -:10157000CE30D10509F054CF809101018823B1F01C -:10158000815080930101882339F08FE99FE0019712 -:10159000F1F700C000000AC0A0E5B1E0E2E4F1E02C -:1015A00081918D9391E0E035F907D1F789E798E0D3 -:1015B000892BD1F00E94790817C090E07ACF83E19F -:1015C0000E9476098093000181119ECF81E40E94E0 -:1015D0004C0980930001811197CF0E948709982EB2 -:1015E000909493CF80E094CF81E0DF91CF911F91D1 -:1015F0000F91FF90EF90DF90CF90BF90AF909F90B2 -:101600000895E82FF0E0E05BFE4F80810895CF92CF -:10161000DF92EF92FF920F931F93CF93DF9388EEA9 -:1016200092E00E94500730E5E32E31E0F32EC0E057 -:10163000D0E043EEC42E42E0D42E0AED12E0DF9358 -:10164000CF93DF92CF920E94E90780EE92E00E9452 -:101650005007F70181917F0190E00E94CC219F9378 -:101660008F931F930F930E94E90788ED92E00E94E9 -:10167000500721968DB79EB708960FB6F8949EBF77 -:101680000FBE8DBFCE30D105D1F6DF91CF911F9126 -:101690000F91FF90EF90DF90CF9008958B3B9105D5 -:1016A00078F4883A910540F5853A9105D0F4843074 -:1016B000910508F0B1C08130910509F4ADC06BC04F -:1016C000803E910508F467C0883E910508F4A4C0E7 -:1016D0009C01205F31092031310508F05CC0906524 -:1016E0000895853A910509F459C0863A910509F49F -:1016F00058C083E890E40895883A910509F454C0ED -:10170000893A910509F453C08A3A910509F452C007 -:101710008B3A910509F451C08C3A910509F450C0F7 -:101720008D3A910509F44FC0803B910509F44EC0F4 -:101730008E3A910509F44DC08F3A910509F44CC0D9 -:10174000813B910509F44BC0823B910509F44AC0E5 -:10175000833B910509F449C0843B910509F448C0D5 -:10176000853B910509F447C0863B910509F446C0C5 -:10177000873B910509F445C0883B910509F444C0B5 -:10178000893B910509F443C08A3B910509F042C0A9 -:101790008AE296E4089580E090E0089581E890E47C -:1017A000089582E890E4089582EE94E4089589EE25 -:1017B00094E408958AEE94E4089585EB94E4089502 -:1017C00086EB94E4089587EB94E408958CEC94E41C -:1017D00008958DEC94E4089583E895E408958AE8EB -:1017E00095E4089582E995E4089584E995E40895DF -:1017F00081E296E4089583E296E4089584E296E413 -:10180000089585E296E4089586E296E4089587E2D5 -:1018100096E4089580E094E40895089596E0799F11 -:10182000F001112494E5899FE00DF11D1124E60FCC -:10183000F11DEE0FFF1FE052FF4F85919491089527 -:10184000880F991F805A9040FC01859194910895CA -:10185000880F991F80529F4FFC01859194910895A4 -:1018600026E0729FF001112444E5849FE00DF11DF4 -:101870001124E60FF11DEE0FFF1FE052FF4F2591DF -:101880003491C9019A9581159F4110F4C9010895B9 -:10189000C90190528115904128F4C9019F700E949E -:1018A000280C0895C90190538115904120F4C90175 -:1018B0009927906C0895211580E5380769F40E94F6 -:1018C000F51A9FEF24E34CE0915020404040E1F7AF -:1018D00000C000000C948822213080E5380751F4C4 -:1018E00088E593E00E9450078091DB01816080933E -:1018F000DB010895C90190558115904108F050C051 -:10190000832F99278F70992781309105D9F4A901E8 -:101910004370552702C0880F991F4A95E2F79C68CB -:10192000A90164E0440F551F6A95E1F744275370FD -:10193000842B952B73E0220F331F7A95E1F72076E5 -:1019400033271DC08230910529F4922F8827816F9B -:10195000906A089583309105A9F4A9014370552731 -:1019600081E090E002C0880F991F4A95E2F79C68D9 -:1019700043E0220F331F4A95E1F7207E3770822B18 -:10198000932B08950497F1F4A9014370552781E042 -:1019900090E002C0880F991F4A95E2F79A68E8CF55 -:1019A000C90190578115904120F4C9019F70906240 -:1019B0000895C90190588115904120F4C9019F7084 -:1019C000906A0895203E3105E0F4203C310558F539 -:1019D0002133310509F470C048F42932310509F486 -:1019E00064C02A32310509F46EC074C02933310550 -:1019F000F1F022383105D9F02533310509F44EC014 -:101A000069C0233E310589F138F4203E3105C1F02B -:101A1000223E3105E1F05EC0263E310569F1273EE8 -:101A20003105A9F157C0C9010E94200C0895809189 -:101A3000EE0180FD02C081FF4DC080EE90E04BC002 -:101A40008091EE0180FFF9CF89E390E044C080915E -:101A5000EE0182FF0EC08091EE0184FF03C080E0A2 -:101A600090E039C083EE90E036C08091EE0182FFB5 -:101A7000F2CF82EE90E02FC08091EE0183FF0BC089 -:101A80008091EE0184FDEBCF87EE90E024C0809141 -:101A9000EE0183FFF5CF86EE90E01DC08091EE0150 -:101AA00085FF07C089E290E016C08091EE0185FFB6 -:101AB000F9CF85E390E00FC08091EE0186FF07C06B -:101AC0008AE290E008C08091EE0186FFF9CF81E3C1 -:101AD00090E001C0C9010E944E0B089508958091C5 -:101AE000710108959FB7F894109260019FBF909183 -:101AF000F401943009F058C09091E9009F70209152 -:101B0000EC0020FF02C020E801C020E0292B94E077 -:101B10009093E9009091EB0090FF43C09091EE000C -:101B200097FF3FC090915E01992321F09091E800CA -:101B300095FF37C010925E0196E03091E80035FDC8 -:101B400015C03091F401343061F53091EB0035FD72 -:101B500028C0915021F481E080935E0122C0EFE91A -:101B6000FFE03197F1F700C00000E7CF8093F1006C -:101B70008091E80085FD0AC08091E80080FFFCCFDD -:101B80008091E8008E778093E80006C08FB7F894C4 -:101B900091E0909360018FBF2F702093E90080E067 -:101BA00008952F702093E9008FEF0895CF93DF936E -:101BB00000D01F92CDB7DEB72091F401243019F583 -:101BC00023E029839B838A832093E9008FEF909100 -:101BD000E800815095FD06C095ED9A95F1F700005B -:101BE0008111F5CF8091E80085FF0DC040E050E005 -:101BF00063E070E0CE0101960E94A5108091E8009C -:101C00008E778093E8000F900F900F90DF91CF9127 -:101C10000895CF93DF9300D01F92CDB7DEB7209108 -:101C2000F401243021F522E029839B838A8383E019 -:101C30008093E9008FEF9091E800815095FD06C0F8 -:101C400095ED9A95F1F700008111F5CF8091E800AC -:101C500085FF0DC040E050E063E070E0CE010196EA -:101C60000E94A5108091E8008E778093E8000F9085 -:101C70000F900F90DF91CF9108952091F4012430BF -:101C8000F1F422E02093E9002FEF3091E800215099 -:101C900035FD06C035ED3A95F1F700002111F5CF7D -:101CA0002091E80025FF0BC040E050E065E070E0C7 -:101CB0000E94A5108091E8008E778093E800089537 -:101CC000CF93DF93EC018091F401843009F047C099 -:101CD00080910C018823E1F080910D018823C1F0EF -:101CE00085E08093E9008FEF9091E800815095FDA9 -:101CF00006C095E19A95F1F700008111F5CF80912A -:101D0000E80085FF2CC040E050E060E170E017C0C3 -:101D100081E08093E9008FEF9091E800815095FD7C -:101D200006C095ED9A95F1F700008111F5CF8091ED -:101D3000E80085FF14C040E050E068E070E0CE01AC -:101D40000E94A5108091E8008E778093E80080E1E2 -:101D5000FE01A1E6B1E001900D928A95E1F7DF91D5 -:101D6000CF9108958FE893E00E9450078091F3018E -:101D7000811109C00E9437120E9494128091E200E2 -:101D800084608093E20008958BE893E00E945007FE -:101D90001092F301089587E893E00C94500783E8CC -:101DA00093E00E9450070C94492C8FE793E00E9427 -:101DB00050070E9423220E944F2C0E9430150C9441 -:101DC0006E0D80915F018F5F80935F0162E30E94DF -:101DD000BD2D911135C010925F0180916001882363 -:101DE00079F18091F401843049F58091E9008F7098 -:101DF0009091EC0090FF02C090E801C090E0982B19 -:101E000084E08093E9008091EB0080FF14C0809112 -:101E1000EE0087FF10C08091E80085FF03C010929C -:101E2000F100F9CF8091E80080FF05C08091E800C3 -:101E30008E778093E8009F709093E9001092600184 -:101E4000089542E061EC81E00E94B11142E061EC52 -:101E500082E00E94B11142E061EC83E00E94B11186 -:101E600042E261EC84E00E94B11142E161EC85E064 -:101E70000C94B1118091F601833009F455C030F40F -:101E8000813071F0823009F48EC008958A3009F4EF -:101E90007AC08B3009F460C0893009F09CC020C042 -:101EA0008091F501813A09F096C08091E800877F22 -:101EB0008093E8008091F9019091FA01892B21F03B -:101EC00060E080E090E003C060E181E691E070E0D6 -:101ED0000E94EE108091E8008B778093E8000895CF -:101EE0008091F501813209F076C08091F9019091DD -:101EF000FA01009719F0049709F06DC08091E8008D -:101F0000877F8093E8008091E80082FD05C0809182 -:101F1000F4018111F8CF5FC08091F10080937101CD -:101F20008091E8008B7753C08091F501813A09F0E8 -:101F300052C08091F9019091FA01892B09F04BC0B0 -:101F40008091E800877F8093E8008091E80080FF1F -:101F5000FCCF80910C0136C08091F5018132D9F51A -:101F60008091F9019091FA01892BA9F58091E800FF -:101F7000877F8093E8000E94E6118091F7018093AB -:101F80000C010C94F51A8091F501813221F58091B4 -:101F9000E800877F8093E8000E94E6118091F801B5 -:101FA0008093720108958091F501813AA1F48091A6 -:101FB000E800877F8093E8008091E80080FFFCCFF5 -:101FC000809172018093F1008091E8008E77809378 -:101FD000E8000C94E611089584B7877F84BF88E1F8 -:101FE0000FB6F89480936000109260000FBE90E0EE -:101FF00080E80FB6F89480936100909361000FBE63 -:102000000E94B9150E9437120E9494128091E2003A -:1020100084608093E20082E79DE00E9462217894D0 -:102020000E940E150E94BB1582E091E00E942B15C4 -:102030000E94372C8EE693E00E9450078091F401B5 -:10204000853089F48AE693E00E9450070E94E621D9 -:102050008091F201882391F30E940E22882371F36C -:102060000E948F10EBCF0E94E915E8CF292F33276C -:1020700023303105A9F06CF42130310509F442C058 -:102080002230310509F043C08DE890E027EC33E0C1 -:1020900042C021323105C9F02232310519F137C071 -:1020A00099278130910541F08230910541F0892BCB -:1020B00071F5E3ECF3E005C0EBEAF3E002C0E3E91D -:1020C000F3E0849190E09F0126C0653000F5E62F93 -:1020D000F0E0EE0FFF1FEB5DFE4F2081318189E0C4 -:1020E00090E019C0653098F4E62FF0E0DF01AA0F08 -:1020F000BB1FA55EBE4F2D913C91EA5EFE4F8081D5 -:1021000090E009C082E190E024E534E004C080E082 -:1021100090E020E030E0FA0131832083089580E1EF -:1021200089BD82E189BD09B400FEFDCF8091D80050 -:102130008F7D8093D8008091E00082608093E000E2 -:102140008091E00081FDFCCF0895CF92DF92EF9265 -:10215000FF920F931F93CF93DF937C018B01EA01D2 -:102160000E940712811131C0209731F08881998136 -:10217000081B190BE80EF91EC12CD12C01151105F5 -:1021800019F18091E80085FD14C08091E8008E77F8 -:102190008093E800209741F0888199818C0D9D1DE6 -:1021A0009983888385E011C00E940712882331F348 -:1021B0000CC0F70181917F018093F100015011095A -:1021C000FFEFCF1ADF0ADACF80E0DF91CF911F91C6 -:1021D0000F91FF90EF90DF90CF9008952091FB0139 -:1021E0003091FC012617370748F06115710539F465 -:1021F0002091E8002E772093E80001C0B901FC018E -:1022000020E061157105B9F18091F401882309F48A -:1022100040C0853009F43FC08091E80083FD3DC097 -:102220008091E80082FF06C08091E80082FF26C00E -:1022300080E008958091E80080FFE3CF2091F300D3 -:102240008091F20090E0922B6115710551F0883079 -:10225000910538F421912093F100615071090196A4 -:10226000F3CF21E0089709F020E08091E8008E7715 -:102270008093E800C6CF2111C7CFD6CF8091F4015B -:10228000882339F0853039F08091E80083FFCCCF86 -:1022900004C082E0089583E0089581E008952091CC -:1022A000FB013091FC012617370748F061157105D5 -:1022B00039F42091E8002E772093E80001C0B9019D -:1022C000FC0120E061157105C1F18091F4018823C2 -:1022D00009F441C0853009F440C08091E80083FDD5 -:1022E0003EC08091E80082FF06C08091E80082FF36 -:1022F00027C080E008958091E80080FFE3CF20911F -:10230000F3008091F20090E0922B6115710559F075 -:102310008830910540F424912093F100319661506A -:1023200071090196F2CF21E0089709F020E0809131 -:10233000E8008E778093E800C5CF2111C6CFD5CFB6 -:102340008091F401882339F0853039F08091E800DC -:1023500083FFCBCF04C082E0089583E0089581E03D -:102360000895982F973058F59093E900981739F011 -:102370007091EC002091ED005091F00003C0242FEB -:10238000762F50E021FF19C03091EB003E7F309353 -:10239000EB003091ED003D7F3093ED003091EB008C -:1023A00031603093EB007093EC002093ED0050937C -:1023B000F0002091EE0027FF07C09F5FD3CF8F7002 -:1023C0008093E90081E0089580E008958091F5010F -:1023D00087FD05C08091E80080FF0EC012C080918B -:1023E000E80082FD05C08091F4018111F8CF0895C5 -:1023F0008091E8008B7708C08091F4018111EACFC9 -:1024000008958091E8008E778093E8000895809188 -:10241000E4009091E50045E62091EC0020FF21C00A -:102420002091E80020FD21C02091F401222389F0B1 -:10243000253089F02091EB0025FD0FC02091E400AC -:102440003091E5002817390739F3415041F0C901AF -:10245000E3CF82E0089583E0089581E0089584E069 -:1024600008952091E80022FFDFCF80E008950E94C8 -:10247000A5120E94AD12E0EEF0E0808181608083C1 -:10248000E8EDF0E080818F77808319BCA7EDB0E0A4 -:102490008C918E7F8C9380818F7E80831092F3014C -:1024A00008950F931F93CF93DF930E94A5120E946C -:1024B000AD12C8EDD0E088818F77888388818068ED -:1024C000888388818F7D888319BC1092F4011092D3 -:1024D000F0011092F2011092F10100EE10E0F8010B -:1024E00080818B7F808388818160888342E060E087 -:1024F00080E00E94B111E1EEF0E080818E7F808368 -:10250000E2EEF0E08081816080838081886080835A -:10251000F80180818E7F8083888180618883DF914C -:10252000CF911F910F910895E8EDF0E080818F7EAB -:102530008083E7EDF0E080818160808384E082BF6A -:1025400081E08093F3010C945112E8EDF0E080817A -:102550008E7F80831092E20008951092DA0010922C -:10256000E10008951F920F920FB60F9211242F933E -:102570003F934F935F936F937F938F939F93AF930B -:10258000BF93EF93FF938091E10082FF0BC0809196 -:10259000E20082FF07C08091E1008B7F8093E10021 -:1025A0000E94E10E8091DA0080FF1FC08091D80068 -:1025B00080FF1BC08091DA008E7F8093DA008091CB -:1025C000D90080FF0DC080E189BD82E189BD09B4D9 -:1025D00000FEFDCF81E08093F4010E94B20E05C0A1 -:1025E00019BC1092F4010E94C40E8091E10080FF9A -:1025F00019C08091E20080FF15C08091E2008E7FBB -:102600008093E2008091E20080618093E2008091FB -:10261000D80080628093D80019BC85E08093F401D3 -:102620000E94CF0E8091E10084FF30C08091E200D3 -:1026300084FF2CC080E189BD82E189BD09B400FE20 -:10264000FDCF8091D8008F7D8093D8008091E100EC -:102650008F7E8093E1008091E2008F7E8093E20084 -:102660008091E20081608093E2008091F0018823F4 -:1026700011F084E007C08091E30087FF02C083E08F -:1026800001C081E08093F4010E94D50E8091E100A9 -:1026900083FF29C08091E20083FF25C08091E10083 -:1026A000877F8093E10082E08093F4011092F00133 -:1026B0008091E1008E7F8093E1008091E2008E7F27 -:1026C0008093E2008091E20080618093E20042E02A -:1026D00060E080E00E94B1118091F00088608093FA -:1026E000F0000E94CB0EFF91EF91BF91AF919F91AF -:1026F0008F917F916F915F914F913F912F910F90AB -:102700000FBE0F901F9018951F920F920FB60F9249 -:1027100011242F933F934F935F936F937F938F93E6 -:102720009F93AF93BF93CF93EF93FF93C091E90033 -:10273000CF708091EC001092E9008091F000877FCB -:102740008093F00078940E94C0131092E900809169 -:10275000F00088608093F000C093E900FF91EF9152 -:10276000CF91BF91AF919F918F917F916F915F9129 -:102770004F913F912F910F900FBE0F901F90189582 -:102780001F93CF93DF93CDB7DEB7AA970FB6F89418 -:10279000DEBF0FBECDBFE5EFF1E08091F100819388 -:1027A00021E0ED3FF207C9F70E943A0F8091E8005F -:1027B00083FF1CC12091F5013091F601832F90E039 -:1027C0008A30910508F012C1FC01EA5AFF4F0C94BF -:1027D000DD2D203881F0223809F008C18091F901FF -:1027E0008F708093E9008091EB0085FB882780F94A -:1027F0001092E90006C08091F1019091F2019111CF -:1028000082609091E800977F9093E8008093F100B8 -:102810001092F100C5C0822F8D7F09F0E7C02223FE -:1028200019F0223061F0E2C08091F701813009F0A7 -:10283000DDC0333009F080E08093F20128C0809140 -:10284000F701811124C02091F9012F7009F4CEC045 -:102850002093E9008091EB0080FF19C08091EB008C -:10286000333011F4806211C080618093EB0081E00D -:1028700090E0022E01C0880F0A94EAF78093EA00E4 -:102880001092EA008091EB0088608093EB00109238 -:10289000E9008091E800877F86C02111A7C01091D0 -:1028A000F7011F778091E3008078812B8093E3000C -:1028B0008091E800877F8093E8000E94E611809174 -:1028C000E80080FFFCCF8091E30080688093E30004 -:1028D000112311F083E001C082E08093F40186C0EF -:1028E0002058223008F082C08091F7019091F801C1 -:1028F0008C3D23E0920779F583E08A838AE289831D -:102900004FB7F894DE01139620E03EE051E2E32F4A -:10291000F0E050935700E49120FF03C0E295EF7080 -:102920003F5FEF708E2F90E0EA3010F0C79601C045 -:10293000C0968D939D932F5F243149F74FBF8091AF -:10294000E800877F8093E8006AE270E0CE0101969C -:102950000E94EE1014C0AE014F5F5F4F6091F9010D -:102960000E943610009709F441C02091E800277FAB -:102970002093E800BC0189819A810E944F118091C7 -:10298000E8008B778093E80031C0203879F580919A -:10299000E800877F8093E8008091F0018093F10048 -:1029A0008091E8008E778093E8000E94E6111EC0B7 -:1029B00021111CC09091F7019230C0F48091E80081 -:1029C000877F8093E8009093F0010E94E611809148 -:1029D000F001811104C08091E30087FF02C084E010 -:1029E00001C081E08093F4010E94210F8091E800F2 -:1029F00083FF0AC08091E800877F8093E800809180 -:102A0000EB0080628093EB00AA960FB6F894DEBFCD -:102A10000FBECDBFDF91CF911F910895CF938091CD -:102A2000F4018823B1F08091E9008F709091EC005F -:102A300090FF02C090E801C090E0C92FC82B10920F -:102A4000E9008091E80083FD0E94C013CF70C0931D -:102A5000E900CF91089590937801809377010895CC -:102A6000E0917701F0917801309721F00190F081A9 -:102A7000E02D099480E00895FF920F931F93CF9368 -:102A8000DF938C01E0917701F0917801309799F113 -:102A90000280F381E02D09958091DB0182FF2BC03C -:102AA00080FF04C089E895E00E945007E80180E1BA -:102AB000F82E03E815E08091DB0180FF0BC08881D0 -:102AC0001F928F931F930F930E94E9070F900F900F -:102AD0000F900F90FA942196F110EDCF8091DB01C9 -:102AE00080FF09C081E895E0DF91CF911F910F91A0 -:102AF000FF900C945007DF91CF911F910F91FF90A1 -:102B00000895E0917701F0917801309721F00480E9 -:102B1000F581E02D09940895209175013091760199 -:102B20008217930771F09093760180937501E0917D -:102B30007701F0917801309721F00680F781E02D40 -:102B400009940895209173013091740182179307BD -:102B500071F09093740180937301E0917701F0918B -:102B60007801309721F00084F185E02D09940895D3 -:102B700008950C94B8150E9425220E94B9090C945E -:102B8000EB22CF93C82F8091DB0182FF1EC080FF14 -:102B900004C082EA95E00E9450078091DB0180FF2B -:102BA0000CC01F92CF932DE935E03F932F930E94E5 -:102BB000E9070F900F900F900F908091DB0180FF3D -:102BC00004C08BE995E00E9450078C2FCF910C94A4 -:102BD0006E0DCF92DF92EF92FF920F931F93CF93E0 -:102BE000DF93CDB7DEB72B970FB6F894DEBF0FBEDD -:102BF000CDBF0E94D6093AE7E32E31E0F32E00E084 -:102C000010E0C02E802F0E94010BF701D1907F01B0 -:102C1000D826B1F40F5F1F4F0E30110591F78FEFDB -:102C200089838A831B820E942E228160782F9D8354 -:102C30008C8349815A816B818D810E948C1641C0A1 -:102C40009091DB0191FF04C08B870E94070B8B855D -:102C500020E030E04D2D50E0922FBA01022E02C04C -:102C6000759567950A94E2F760FF25C02E83CF82A1 -:102C7000EE24E394F12C02C0EE0CFF1C9A95E2F7CF -:102C800090E08E219F2121E0892B09F420E0288704 -:102C90000E942E228160782F9A8789874E815F81DA -:102CA00068858A850E948C16F801E658FE4F80815F -:102CB0008E25808306C02F5F3F4F2630310561F699 -:102CC000A9CF0E945926109179010E94301518173A -:102CD000A1F00E943015809379012B960FB6F894DD -:102CE000DEBF0FBECDBFDF91CF911F910F91FF903F -:102CF000EF90DF90CF900C94C1152B960FB6F894FF -:102D0000DEBF0FBECDBFDF91CF911F910F91FF901E -:102D1000EF90DF90CF900895CF93DF93CDB7DEB7DC -:102D20002B970FB6F894DEBF0FBECDBF4F835887E9 -:102D300069877A878B87DE01119686E0FD01119203 -:102D40008A95E9F785E0FE01379601900D928A9504 -:102D5000E1F749815A816B817C818D819E810E943E -:102D6000C11D2B960FB6F894DEBF0FBECDBFDF910D -:102D7000CF910895CF93C82F882309F4C1C082381A -:102D800059F40E94301581FDBBC089E30E94602088 -:102D90000E943C2189E30CC0833879F40E943015ED -:102DA00080FDAEC083E50E9460200E943C2183E547 -:102DB0000E94B120CF910C943C21843859F40E9498 -:102DC000301582FD9DC087E40E9460200E943C2156 -:102DD00087E4EECF8CEF8C0F813A48F48C2F0E9461 -:102DE000E22A81118DC08C2F0E946020E3CF80E207 -:102DF0008C0F883048F4C77081E001C0880FCA95F5 -:102E0000EAF70E940321D6CF8BE58C0F833078F44C -:102E1000C53A29F0C63A31F482E890E005C081E86D -:102E200090E002C083E890E0CF910C948C1588E587 -:102E30008C0F833108F064C0C83A39F1C93A41F1C6 -:102E4000CA3A49F1CB3A51F1CC3A59F1CD3A61F154 -:102E5000C03B69F1CE3A71F1CF3A79F1C13B81F1D2 -:102E6000C23B89F1C33B91F1C43B99F1C53BA1F150 -:102E7000C63BA9F1C73BB1F1C83BB9F1C93BC1F1B0 -:102E8000CA3BC9F58AE292E038C082EE90E035C0D4 -:102E900089EE90E032C08AEE90E02FC085EB90E0A2 -:102EA0002CC086EB90E029C087EB90E026C08CEC2C -:102EB00090E023C08DEC90E020C083E891E01DC03D -:102EC0008AE891E01AC082E991E017C084E991E0B4 -:102ED00014C081E292E011C083E292E00EC084E26D -:102EE00092E00BC085E292E008C086E292E005C065 -:102EF00087E292E002C080E090E0CF910C94A215AE -:102F0000CF910895882309F44BC0823859F40E9468 -:102F1000301581FF45C089E30E9460200E943C215A -:102F200089E30CC0833871F40E94301580FF38C0EB -:102F300083E50E9460200E943C2183E50E94B1202D -:102F40000C943C21843859F40E94301582FF28C02B -:102F500087E40E9460200E943C2187E4EFCF9CEF31 -:102F6000980F913A58F390E2980F983050F4877088 -:102F700091E001C0990F8A95EAF7892F0E940921F3 -:102F8000DFCF9BE5980F933020F480E090E00C9425 -:102F90008C15885A833120F480E090E00C94A215BF -:102FA0000895882321F00E9403210C943C21089568 -:102FB000882321F00E9409210C943C210895CF928E -:102FC000DF92EF92FF920F931F93CF93DF93CDB7D2 -:102FD000DEB728970FB6F894DEBF0FBECDBF8C01C9 -:102FE00085E0F801DE01119601900D928A95E1F7D6 -:102FF000F80140813181F280258122952F708381F3 -:103000009481892B31F03F3F31F481E04F3F19F437 -:1030100003C081E001C080E080FDC6C249833A83DD -:1030200089819A812F830E941E209E8388870E9417 -:103030001D200E94F01E4E81E42FE295EF70F0E01B -:10304000E05AFF4F2F8168850C94DD2D842F807FFF -:10305000142F1F70882311F01295107FFF2059F054 -:10306000112309F456C2812F68870E9413210E9400 -:103070003C2168854EC2862F0E948217112309F4D5 -:1030800093C2812F0E94192128960FB6F894DEBFB3 -:103090000FBECDBFDF91CF911F910F91FF90EF90A9 -:1030A000DF90CF900C943C21342F307F842F8F7091 -:1030B000303211F08295807F662319F0613019F16A -:1030C0002CC0FF20B1F0222309F494C1213009F073 -:1030D00091C128960FB6F894DEBF0FBECDBFDF9129 -:1030E000CF911F910F91FF90EF90DF90CF900C94B4 -:1030F0002321222319F0213009F456C28E830E9425 -:1031000026218E818AC1FF2021F0263008F04CC292 -:1031100071C1253008F048C280C1FF2021F0222370 -:1031200009F468C1F6C1222309F477C106C2242F2D -:1031300026952695237030E02115310521F02130A8 -:103140003105C9F031C2FF2021F0862F942F9370F2 -:1031500002C080E090E028960FB6F894DEBF0FBE64 -:10316000CDBFDF91CF911F910F91FF90EF90DF9036 -:10317000CF900C948C15FF2021F0862F942F937004 -:1031800002C080E090E028960FB6F894DEBF0FBE34 -:10319000CDBFDF91CF911F910F91FF90EF90DF9006 -:1031A000CF900C94A215862FFF2019F00E94DF24E7 -:1031B00002C00E94472528960FB6F894DEBF0FBEC6 -:1031C000CDBFDF91CF911F910F91FF90EF90DF90D6 -:1031D000CF900C94CC25842F837009F076C0F11029 -:1031E000E3C1262F229526952770220F220F862FC6 -:1031F0008F70C82ED12CE12CF12C022E04C0CC0CE7 -:10320000DD1CEE1CFF1C0A94D2F764FF10C06FE0B7 -:1032100070E080E090E004C0660F771F881F991F60 -:103220002A95D2F7609570958095909503C060E0DF -:1032300070E0CB01242F269526952370422F50E075 -:1032400042305105D1F04330510559F16C297D29A7 -:103250008E299F294130510541F128960FB6F894E7 -:10326000DEBF0FBECDBFDF91CF911F910F91FF90B9 -:10327000EF90DF90CF900C94151F6C297D298E293B -:103280009F2928960FB6F894DEBF0FBECDBFDF9101 -:10329000CF911F910F91FF90EF90DF90CF900C9402 -:1032A0002F1F0E94151FC701B60128960FB6F8946C -:1032B000DEBF0FBECDBFDF91CF911F910F91FF9069 -:1032C000EF90DF90CF900C94FB1EFF2019F0842F1D -:1032D000817001C08695882309F466C1262F229546 -:1032E00026952770220F220F862F8F70C82ED12C83 -:1032F000E12CF12C022E04C0CC0CDD1CEE1CFF1CBA -:103300000A94D2F764FF10C06FE070E080E090E0B4 -:1033100004C0660F771F881F991F2A95D2F7609502 -:1033200070958095909503C060E070E0CB01242FEC -:10333000269526952370422F50E042305105D1F05A -:103340004330510559F16C297D298E299F2941303F -:10335000510541F128960FB6F894DEBF0FBECDBFE0 -:10336000DF91CF911F910F91FF90EF90DF90CF9061 -:103370000C94E91F6C297D298E299F2928960FB668 -:10338000F894DEBF0FBECDBFDF91CF911F910F919B -:10339000FF90EF90DF90CF900C9403200E94E91FE4 -:1033A000C701B60128960FB6F894DEBF0FBECDBF99 -:1033B000DF91CF911F910F91FF90EF90DF90CF9011 -:1033C0000C94CF1F603FC9F118F4603E50F49CC0CC -:1033D000623F09F461C008F44BC0633F09F470C058 -:1033E00093C0162F1F70842F8F71FF2099F00E94B9 -:1033F000681F812F28960FB6F894DEBF0FBECDBF91 -:10340000DF91CF911F910F91FF90EF90DF90CF90C0 -:103410000C94D1170E94891F812F28960FB6F8941B -:10342000DEBF0FBECDBFDF91CF911F910F91FF90F7 -:10343000EF90DF90CF900C94D817FF20A9F02530A3 -:1034400008F0B2C0842F8F7128960FB6F894DEBFB3 -:103450000FBECDBFDF91CF911F910F91FF90EF90E5 -:10346000DF90CF900C94AE1F263008F09DC0EACFBD -:10347000FF20A1F0842F8F7128960FB6F894DEBF3D -:103480000FBECDBFDF91CF911F910F91FF90EF90B5 -:10349000DF90CF900C94681FFF2061F3842F8F7111 -:1034A00028960FB6F894DEBF0FBECDBFDF91CF9147 -:1034B0001F910F91FF90EF90DF90CF900C94891F98 -:1034C000FF2091F0842F8F7128960FB6F894DEBFFD -:1034D0000FBECDBFDF91CF911F910F91FF90EF9065 -:1034E000DF90CF900C94531F28960FB6F894DEBF50 -:1034F0000FBECDBFDF91CF911F910F91FF90EF9045 -:10350000DF90CF900C94491FFF20A1F0222309F4F3 -:10351000B1CF862F28960FB6F894DEBF0FBECDBF71 -:10352000DF91CF911F910F91FF90EF90DF90CF909F -:103530000C94BA16222309F4B1CF862F28960FB621 -:10354000F894DEBF0FBECDBFDF91CF911F910F91D9 -:10355000FF90EF90DF90CF900C9482174F70C801CE -:103560000E94F20728960FB6F894DEBF0FBECDBFBB -:10357000DF91CF911F910F91FF90EF90DF90CF904F -:103580000C946E1E4F70C80128960FB6F894DEBFDB -:103590000FBECDBFDF91CF911F910F91FF90EF90A4 -:1035A000DF90CF900C940D0C28960FB6F894DEBFE8 -:1035B0000FBECDBFDF91CF911F910F91FF90EF9084 -:1035C000DF90CF9008950E9420210E94F5200E9454 -:1035D0003C210E94FA260E94CC2580E090E00E94C7 -:1035E0008C1580E090E00C94A2150E9410210C94A0 -:1035F000E31A0E941E20292F22952F7030E02C30D4 -:1036000031054CF42A3031056CF422503109223056 -:10361000310590F407C02C30310551F02F303105C1 -:1036200039F00AC0803E10F0803F31F481E0089507 -:1036300093FB882780F9089580E00895CF93DF9366 -:1036400000D000D01F92CDB7DEB70F900F900F9033 -:103650000F900F90DF91CF910895CF93DF9300D01B -:1036600000D000D0CDB7DEB726960FB6F894DEBFF7 -:103670000FBECDBFDF91CF9108951F93CF93DF93FE -:10368000C091880116E080918901C81799F0D0E0B7 -:103690001C9FF0011D9FF00D1124E657FE4F408145 -:1036A000518162817381848195810E942D1B2196B5 -:1036B000C770E9CFDF91CF911F9108954091BA0172 -:1036C0005091BB016091BC017091BD018091BE0120 -:1036D0009091BF010C942D1BCF938091BF018295D7 -:1036E0008F7009F05FC08091BC01882309F45AC033 -:1036F00020918801A09189016091BA017091BB016C -:103700008091BD019091BE0131E06F3F09F030E042 -:10371000B32FC6E02A1709F445C0009721F07F3F78 -:1037200021F44B2F03C041E001C040E030E040FDF8 -:1037300035C0C29FF001C39FF00D1124E657FE4F24 -:10374000418174132BC04081641328C04281411110 -:1037500025C0438154814817590710F4415051093D -:10376000481B590B483C5105C8F48091BF018F702C -:1037700080618093BF0186E0829FF001839FF00DFE -:103780001124E157FE4F80818F70806180838AEB26 -:1037900091E00E94DF17CF910C943D1B2F5F3F4FAC -:1037A0002770B8CFCF910895CF92DF92EF92FF921A -:1037B0000F931F93CF93DF93CDB7DEB762970FB60A -:1037C000F894DEBF0FBECDBF8C0185E0F801DE01AD -:1037D0001D9601900D928A95E1F7D8014C911196B2 -:1037E0005C91119712966C9112971396ED90FC9044 -:1037F00014977091BA01E091BB012091BD01309105 -:10380000BE012115310531F0EF3F31F481E07F3FFA -:1038100019F403C081E001C080E0B82FB170CB2E55 -:1038200080FD6CC1D090BC01DD2009F4F5C0F091A1 -:10383000BF01E216F30638F0C701821B930B883CE8 -:10384000910548F09BC0209530952E0D3F1D283CDA -:10385000310508F093C08F2F807F09F052C0E51327 -:1038600014C0741312C0D62E61110FC0FF70F06126 -:10387000F093BF010E945E1B8AEB91E00E94DF176C -:103880008091BF01F80185836CC1EF2831F05F3F63 -:1038900031F481E04F3F19F403C081E001C080E0C2 -:1038A00080FD03C081E0862701C080E0F82FF17021 -:1038B000FF2E80FF1CC0809188012091890136E095 -:1038C000821709F428C190E0389FF001399FF00D6C -:1038D0001124E657FE4F7181571306C070814713BC -:1038E00003C07281671303C001968770E9CFD62E9B -:1038F000662309F436C18091BF0181608093BF01C6 -:1039000053C0E51308C0741306C0611104C0D80188 -:103910001596FC93AEC04D875E878D859E856A8B1C -:103920000E94F91A6A89882329F1D62E662311F19B -:103930002091BF01822F82958F7090E002970CF446 -:1039400060C08091BA019091BB0198878F831986DE -:10395000FB86EA862C87CE01079651C0E51731F128 -:103960004D875E878D859E856A8B0E94F91A6A89CC -:1039700081112EC0C8010E94DF17A4C08F2F807F45 -:1039800069F77E2DF98AE88A89890E941E1B8AEBD5 -:1039900091E00E94DF17EAEBF1E086E0DF011D9283 -:1039A0008A95E9F70E945E1BD12CDBC07413D8CF37 -:1039B0006111D6CFD8011596FC93C8010E94DF177C -:1039C000EAEBF1E086E0DF011D928A95E9F7C9C0D4 -:1039D000D62E662379F22091BF01822F82958F70B7 -:1039E00090E0029774F08091BA019091BB019A83A4 -:1039F00089831B82FD82EC822E83CE0101960E9478 -:103A0000DF1786E0F801AAEBB1E001900D928A95EC -:103A1000E1F70E946C1B6FC0E216F30628F0C701A5 -:103A2000821B930B9C0104C0209530952E0D3F1DE9 -:103A3000283C310508F052C0D62E662309F49ACFEF -:103A4000E5132CC074132AC08091BF0180FD1DC0F6 -:103A5000982F92959F70C9F0D80115968C93159761 -:103A60009F3039F09F5F9295907F8F70892B1596CC -:103A70008C93C8010E94DF1786E0F801AAEBB1E041 -:103A800001900D928A95E1F736C086E0F801AAEB25 -:103A9000B1E001900D928A95E1F763C04D875E8792 -:103AA0008D859E850E94F91A882379F086E0F801B9 -:103AB000AAEBB1E001900D928A95E1F70E946C1B90 -:103AC0000E945E1BDD24D3944CC08091BF018160B5 -:103AD0008093BF01C8010E94DF1743C07E2DF98A81 -:103AE000E88A89890E941E1BEAEBF1E086E0DF018B -:103AF0001D928A95E9F70E945E1B33C0662309F484 -:103B000039CF4D875E878D859E850E94F91A88235F -:103B100009F430CFCBCF4D875E878D859E850E947F -:103B20001E20292F22952F7030E0223031052CF4F1 -:103B30009F7041F0811106C00CC0243031052CF477 -:103B40009F7049F4805E883020F0C8010E94DF1722 -:103B5000CF2CDC2C06C0D80115969C91907F91F754 -:103B6000F8CF8D2D62960FB6F894DEBF0FBECDBF95 -:103B7000DF91CF911F910F91FF90EF90DF90CF9049 -:103B800008951F93CF93DF93CDB7DEB72C970FB671 -:103B9000F894DEBF0FBECDBF4F83588769877A8701 -:103BA0008B879C87CE0107960E94D41B8823C1F087 -:103BB0002F8138858A859B85892B31F03F3F11F015 -:103BC00080E003C02F3FE1F781E0811147C04F81C2 -:103BD000588569857A858B859C850E942D1B3EC002 -:103BE00086E0FE013796DE01119601900D928A95CE -:103BF000E1F7FF81E8854A855B854115510531F084 -:103C0000EF3F31F481E0FF3F19F403C081E001C0D0 -:103C100080E080FD23C02091890130E0C901019638 -:103C2000877099276091880170E086179707F1F1F6 -:103C3000F983EA835D834C8396E0929FD001939F42 -:103C4000B00D1124A657BE4FFE01319601900D9282 -:103C50009A95E1F7809389010E943D1B16E08091BF -:103C6000880190918901891779F1189FC001112469 -:103C700086579E4F0E94D41B882331F1E091880122 -:103C80001E9FF0011124E657FE4F40815181628151 -:103C90007381848195810E942D1B8091880190E021 -:103CA00001968770992780938801D9CF0E94F51AD1 -:103CB0001092890110928801EAEBF1E086E0DF01C1 -:103CC0001D928A95E9F7CACF2C960FB6F894DEBFFD -:103CD0000FBECDBFDF91CF911F910895EF92FF925C -:103CE0000F931F93CF93DF939C01009709F471C04A -:103CF000F12CEE24E394E9012196F90184918437B3 -:103D000040F4843008F056C0813081F0823021F1D7 -:103D100060C0853709F449C0C0F19CE7980F90371F -:103D200008F057C08F770E94821746C089010E5F46 -:103D30001F4FFE01849190E2980F983050F48770E5 -:103D4000FE2D01C0FF0F8A95EAF78F2F0E941321E5 -:103D500015C00E94BA1614C089010E5F1F4FFE01E4 -:103D6000849190E2980F983068F48770FE2D01C01E -:103D7000FF0F8A95EAF78F2F0E9419210E943C219C -:103D8000E8011AC00E948217FBCF2E5F3F4FFE0151 -:103D9000C491CC2341F08FE99FE00197F1F700C077 -:103DA0000000C150F6CFE90107C0FE01F490E9011F -:103DB000229602C00E94BA168F2D882341F0EFE9A7 -:103DC000FFE03197F1F700C000008150F6CF9E016F -:103DD00092CFDF91CF911F910F91FF90EF900895B7 -:103DE00008956093C4017093C5018093C6019093B8 -:103DF000C7010C94E31A0F931F930091C401109113 -:103E0000C5012091C6013091C701062B172B282B25 -:103E1000392B0093C4011093C5012093C601309340 -:103E2000C7011F910F910C94E31A0F931F930091F8 -:103E3000C4011091C5012091C6013091C70106232C -:103E40001723282339230093C4011093C50120931D -:103E5000C6013093C7011F910F910C94E31A0F9381 -:103E60001F930091C4011091C5012091C6013091AA -:103E7000C70106271727282739270093C401109365 -:103E8000C5012093C6013093C7011F910F910C9477 -:103E9000E31A1092C0011092C1011092C201109257 -:103EA000C3010C94E31A41E050E060E070E004C00C -:103EB000440F551F661F771F8A95D2F74093C001A4 -:103EC0005093C1016093C2017093C3010C94E31A33 -:103ED00041E050E060E070E004C0440F551F661FF1 -:103EE000771F8A95D2F78091C0019091C101A0916E -:103EF000C201B091C301842B952BA62BB72B8093C5 -:103F0000C0019093C101A093C201B093C3010C946E -:103F1000E31A41E050E060E070E004C0440F551F38 -:103F2000661F771F8A95D2F74095509560957095DA -:103F30008091C0019091C101A091C201B091C301D3 -:103F400084239523A623B7238093C0019093C101B6 -:103F5000A093C201B093C3010C94E31A41E050E076 -:103F600060E070E004C0440F551F661F771F8A95FC -:103F7000D2F78091C0019091C101A091C201B0918E -:103F8000C30184279527A627B7278093C001909364 -:103F9000C101A093C201B093C3010C94E31A0F9323 -:103FA0001F930091C0011091C1012091C201309175 -:103FB000C301062B172B282B392B0093C00110931C -:103FC000C1012093C2013093C3011F910F910C9442 -:103FD000E31A0F931F930091C0011091C10120912A -:103FE000C2013091C30106231723282339230093EC -:103FF000C0011093C1012093C2013093C3011F91EE -:104000000F910C94E31A0F931F930091C00110912C -:10401000C1012091C2013091C3010627172728272B -:1040200039270093C0011093C1012093C20130933E -:10403000C3011F910F910C94E31A0895CF92DF9260 -:10404000EF92FF920F931F93CF93DF93EC01C090F9 -:10405000C401D090C501E090C601F090C7018091E5 -:10406000C0019091C101A091C201B091C301C82AC1 -:10407000D92AEA2AFB2A0FE110E0B701A601002E97 -:1040800004C076956795579547950A94D2F740FFF7 -:1040900007C0BE01802F0E94300C8130910539F499 -:1040A0000150110950F7BE0180E00E94300CDF91F1 -:1040B000CF911F910F91FF90EF90DF90CF900895D7 -:1040C00090910C01992361F190910D01992341F197 -:1040D000982F9695969596959F3088F4E0910E01CD -:1040E000F0910F01E90FF11D877021E030E001C070 -:1040F000220F8A95EAF78181822B8183089590911E -:10410000DB0190FF2DC01F928F9383ED95E09F936D -:104110008F930E94E9070F900F900F900F900895D2 -:1041200040910E0150910F0120E030E09FEFFA0125 -:10413000E20FF31F6281681799F09F3F19F4611134 -:1041400001C0922F2F5F3F4F2E30310581F79F3FE7 -:1041500039F0FA01E90FF11D97FDFA958283089570 -:10416000089590910C01992369F190910D01992383 -:1041700049F1982F9695969596959F3090F4E091F9 -:104180000E01F0910F01E90FF11D877021E030E081 -:1041900001C0220F8A95EAF7209581812823218387 -:1041A00008959091DB0190FF1FC01F928F9385EBC4 -:1041B00095E09F938F930E94E9070F900F900F90C7 -:1041C0000F90089540910E0150910F0120E030E0D2 -:1041D000FA01E20FF31F9281981301C012822F5F40 -:1041E0003F4F2E303105A1F7089581E090E0E09136 -:1041F0000E01F0910F01E80FF91F10820196803136 -:104200009105A9F708959091DA01982B9093DA011E -:10421000089580959091DA0198239093DA0108959A -:104220001092DA0108959091D901982B9093D901B9 -:10423000089580959091D90198239093D90108957C -:104240001092D90108958093C80108951092C80171 -:10425000089540910E0150910F0120E030E080E080 -:10426000FA01E20FF31F918191118F5F2F5F3F4F92 -:104270002F303105A9F70895E0910E01F0910F015B -:104280008091DA018083E0910E01F0910F0180812D -:104290009091D901892B80839091C801992361F075 -:1042A000E0910E01F0910F018081892B80830E94A3 -:1042B000292181111092C80180910E0190910F0166 -:1042C0000C943C1590933B0180933A010895CF9252 -:1042D000DF92EF92FF920F931F936C01EE24FF2465 -:1042E000C114D104E104F10421F46B017C0180E0EC -:1042F00001C080E133272F2D1E2D0D2D0115110535 -:104300002105310519F0885F68017901970186015F -:10431000A4E03695279517950795AA95D1F701152D -:1043200011052105310519F08C5F680179019701AC -:104330008601F2E03695279517950795FA95D1F7FE -:10434000011511052105310519F08E5F680179010C -:10435000B701A6017695679557954795452B462B4E -:10436000472B09F08F5F1F910F91FF90EF90DF9027 -:10437000CF9008958295982F9C7C969596958373FF -:1043800044E0849F90011124922B892F8A7A86958C -:104390009575990F892B08951F93CF93DF931F92E3 -:1043A000CDB7DEB799830E94BA21182F9981892F42 -:1043B0000E94BA21212F30E0322F2227A901482B59 -:1043C000CA010F90DF91CF911F9108958091F40160 -:1043D000843009F11092DC0120E488E190E00FB60E -:1043E000F894A895809360000FBE2093600083B777 -:1043F000817F846083BF83B7816083BF7894889511 -:1044000083B78E7F83BF88E10FB6F89480936000F6 -:10441000109260000FBE089508950895CF930E94F2 -:104420000C220E94D6090E940D22C0E08C2F0E940F -:10443000010B811105C0CF5FCE30C1F780E001C014 -:1044400081E0CF9108950C94F51A82E084BD93E049 -:1044500095BD9AEF97BD80936E0008952FB7F8949D -:104460008091DD019091DE01A091DF01B091E0012A -:104470002FBF0895CF92DF92EF92FF920F931F9379 -:104480002FB7F8944091DD015091DE016091DF017A -:104490007091E0012FBF6A017B01EE24FF248C01A3 -:1044A00020E030E0C016D106E206F30610F44150D9 -:1044B0005109481B590BCA011F910F91FF90EF90B2 -:1044C000DF90CF9008951F920F920FB60F92112494 -:1044D0008F939F93AF93BF938091DD019091DE0105 -:1044E000A091DF01B091E0010196A11DB11D809363 -:1044F000DD019093DE01A093DF01B093E001BF9155 -:10450000AF919F918F910F900FBE0F901F901895B4 -:104510000E943712F8942FEF87EA91E621508040ED -:104520009040E1F700C0000087E090EBDC01809351 -:10453000FD019093FE01A093FF01B09300022CE0D7 -:1045400088E190E00FB6F894A895809360000FBEC4 -:1045500020936000FFCFEF92FF920F931F93CF93B2 -:10456000DF93E82EF12C8F2D0E94010BC0E0D0E0EC -:10457000082F10E098010C2E02C0359527950A945B -:10458000E2F720FD05C02196C630D10599F709C094 -:104590006C2F7F2D80E00E940E0CE812F4CF81E09A -:1045A00005C0F3948EE0F812DECF80E0DF91CF916A -:1045B0001F910F91FF90EF900895CF93C82F8CE239 -:1045C0000E94AB22882321F08C2FCF910C94AB2238 -:1045D00080E0CF910895CF930E943824811102C0CA -:1045E0000E941E2488EF95E00E945007C5E6C15046 -:1045F00049F00E94D6098FE39CE90197F1F700C0CA -:104600000000F5CF81EF95E00E94500789E20E94FB -:10461000DD22811111C18AE20E94DD2281110E94F6 -:104620001E2485E00E94DD2281110E9488220E94C2 -:1046300043248093DB0187E00E94DD22882399F1E7 -:104640008BE10E94DD22882351F09091DB0191FBE8 -:10465000882780F921E0822780FB91F922C08EE033 -:104660000E94DD22882351F09091DB0192FB882784 -:1046700080F921E0822780FB92F913C080E10E943B -:10468000DD229091DB01882341F093FB882780F99C -:1046900021E0822780FB93F904C0892F809580FB5D -:1046A00090F99093DB018091DB010E9447240E94E6 -:1046B00055248093EE0180EE0E94DD22882341F094 -:1046C0008091EE01982F909590FB80F98093EE01F8 -:1046D00089E30E94DD22882359F09091EE0191FB3D -:1046E000882780F921E0822780FB91F99093EE01E1 -:1046F00082EE0E94DD22882359F09091EE0192FB18 -:10470000882780F921E0822780FB92F99093EE01BF -:1047100086EE0E94DD22882359F09091EE0193FBF2 -:10472000882780F921E0822780FB93F99093EE019E -:1047300083EE0E94DD22882359F09091EE0194FBD4 -:10474000882780F921E0822780FB94F99093EE017D -:1047500085E30E94DD22882359F09091EE0195FBBC -:10476000882780F921E0822780FB95F99093EE015C -:1047700081E30E94DD22882359F09091EE0196FB9F -:10478000882780F921E0822780FB96F99093EE013B -:1047900081E10E94DD22882359F09091EE0197FB80 -:1047A000882780F921E0822780FB97F99093EE011A -:1047B0008091EE010E9459248091EE0187FB8827A9 -:1047C00080F980930D0187E20E94DD22C82F8EE1DF -:1047D0000E94DD228111C2608FE10E94DD228111E1 -:1047E000C46080E20E94DD228111C86081E20E94E3 -:1047F000DD228111C06182E20E94DD228111C0624E -:1048000083E20E94DD228111C06484E20E94DD22E5 -:10481000882311F0C06802C0CC2329F08C2F0E949D -:1048200050246C2F03C00E944C24682F70E080E05D -:1048300090E0CF910C94F11ECF9108956DEE7EEF34 -:1048400080E090E00E94132E60E082E090E00E9401 -:10485000052E60E083E090E00E94052E60E084E099 -:1048600090E00E94052E60E085E090E00C94052E1B -:1048700080E090E00E94FF2D21E08D3E9E4F09F0E8 -:1048800020E0822F089582E090E00C94F72D682FAD -:1048900082E090E00C94052E83E090E00C94F72DDC -:1048A000682F83E090E00C94052E84E090E00C9457 -:1048B000F72D682F84E090E00C94052E8091E301A1 -:1048C00080FF0BC06091130185E0689FB001112447 -:1048D00075956795759567952AC081FF09C06091A8 -:1048E000130185E0689FB0011124759567951FC07D -:1048F00082FF07C06091130185E0689FB001112419 -:1049000016C04091E4014423C9F06091120146179A -:1049100088F72091130185E0289F90011124429F80 -:10492000C001439F900D112470E00E94C92D603892 -:10493000710540F46115710539F002C065E070E061 -:10494000862F08958FE7089581E008958091E3010F -:1049500080FF08C06091110170E0759567957595AD -:10496000679521C081FF06C06091110170E07595C7 -:10497000679519C082FF04C06091110170E010C0FA -:104980008091E4018823C1F0609110018617A0F79F -:1049900090911101989FC001112470E00E94C92DCF -:1049A0006038710528F46115710521F0862F08958E -:1049B0008FE7089581E0089561E070E0F4CF803FD3 -:1049C00021F40E945E24819504C0813F29F40E9455 -:1049D0005E248093E7010895823F21F40E945E24C3 -:1049E000819504C0833F29F40E945E248093E601F0 -:1049F0000895893F19F40E94A62405C08A3F31F426 -:104A00000E94A62481958093E80108958B3F21F4AC -:104A10000E94A624819504C08C3F29F40E94A624FC -:104A20008093E9010895843F21F48091E50181603C -:104A300017C0853F21F48091E501826011C0863F57 -:104A400021F48091E50184600BC0873F21F48091BF -:104A5000E501886005C0883F31F48091E5018061FF -:104A60008093E50108958D3F21F48091E3018160F9 -:104A70000BC08E3F21F48091E301826005C08F3F1F -:104A800029F48091E30184608093E3010895803FDD -:104A900039F48091E70187FF6CC01092E70169C08B -:104AA000813F29F48091E7011816BCF362C0909110 -:104AB000E601823F29F497FF5CC01092E60159C0DD -:104AC000833F19F41916CCF354C0893F41F4809107 -:104AD000E80118160CF04DC01092E8014AC08A3F58 -:104AE00029F48091E80187FF44C0F6CF8B3F39F469 -:104AF0008091E90187FF3DC01092E9013AC08C3FE7 -:104B000029F48091E9011816BCF333C0843F21F4E5 -:104B10008091E5018E7F17C0853F21F48091E501EA -:104B20008D7F11C0863F21F48091E5018B7F0BC002 -:104B3000873F21F48091E501877F05C0883F31F4EC -:104B40008091E5018F7E8093E50113C08D3F21F4B4 -:104B50008091E3018E7F0BC08E3F21F48091E301B1 -:104B60008D7F05C08F3F29F48091E3018B7F809377 -:104B7000E3018091E60181110EC08091E70181116E -:104B80000AC08091E801811106C08091E90181117C -:104B900002C01092E40108958091DB0183FF7EC082 -:104BA00084E396E00E9450078091E5011F928F9365 -:104BB0008FE296E09F938F930E94E9078DE296E043 -:104BC0000E9450072091E601822F992787FD90953A -:104BD0009F932F938AE296E09F938F930E94E90719 -:104BE00088E296E00E9450072091E701822F9927E2 -:104BF00087FD90959F932F9385E296E09F938F93E7 -:104C00000E94E90783E296E00E9450072091E801A4 -:104C1000822F992787FD90959F932F9380E296E0AE -:104C20009F938F930E94E9078EE196E00E945007C0 -:104C30002091E901822F992787FD90959F932F93CB -:104C40008BE196E09F938F930E94E90788E196E0BD -:104C50000E9450078091E4011F928F9385E196E0B6 -:104C60009F938F930E94E90783E196E00E9450078B -:104C70008091E3011F928F9380E196E09F938F9341 -:104C80000E94E9078DE096E00E9450078DB79EB71D -:104C90004C960FB6F8949EBF0FBE8DBF85EE91E087 -:104CA0000E9481150E942E229093E2018093E101DF -:104CB00008951F93CF93DF938091E1019091E201DA -:104CC0000E943A224091E401442321F020911401F2 -:104CD00030E006C0209115015AE0259F9001112473 -:104CE0008217930708F482C08091E6011091E701D2 -:104CF000D091E801C091E901811107C0111105C0EF -:104D0000D11103C0CC2309F471C04F3F19F04F5F9C -:104D10004093E401181624F40E945E248093E60177 -:104D20008091E60187FF05C00E945E2481958093F3 -:104D3000E601111624F40E945E248093E70180911D -:104D4000E70187FF05C00E945E2481958093E701FB -:104D50006091E601662339F11091E701112319F101 -:104D6000772767FD7095872F972F0E94CE2C23E31E -:104D700033E343E35FE30E94322D0E949B2C609358 -:104D8000E601612F772767FD7095872F972F0E9487 -:104D9000CE2C23E333E343E35FE30E94322D0E94F2 -:104DA0009B2C6093E7011D1624F40E94A624809397 -:104DB000E8018091E80187FF05C00E94A624819543 -:104DC0008093E8011C1624F40E94A6248093E90134 -:104DD0008091E90187FF05C00E94A62481958093F8 -:104DE000E901DF91CF911F910C94CC25DF91CF91F8 -:104DF0001F910895E5EEF1E085E0DF011D928A95AF -:104E0000E9F71092E4011092E301089587E598E034 -:104E10000E9450071F9281E08F931F9285E08F932D -:104E200089E098E09F938F930E94E9070F900F907D -:104E30000F900F900F900F9008958330E9F128F4B0 -:104E4000813061F0823009F10895853009F462C043 -:104E500008F449C0863009F474C008952091150102 -:104E6000862F90E0820F911D8F3F910520F4620FF5 -:104E70006093150103C08FEF809315018091150198 -:104E80001F928F9382E497E072C020911401862FC5 -:104E900090E0820F911D8F3F910520F4620F609387 -:104EA000140103C08FEF80931401809114011F92AD -:104EB0008F9380E397E05BC020911301862F90E0F1 -:104EC000820F911D8F3F910520F4620F60931301B3 -:104ED00003C08FEF80931301809113011F928F9372 -:104EE0008DE197E044C020911201862F90E0820F5F -:104EF000911D8F3F910520F4620F6093120103C052 -:104F00008FEF80931201809112011F928F9388E09E -:104F100097E02DC020911101862F90E0820F911D06 -:104F20008F3F910520F4620F6093110103C08FEF52 -:104F300080931101809111011F928F938FEE96E063 -:104F400016C020911001862F90E0820F911D8F3F97 -:104F5000910520F4620F6093100103C08FEF8093DE -:104F60001001809110011F928F9384ED96E09F9322 -:104F70008F930E94E9070F900F900F900F90089564 -:104F8000833081F128F4813059F08230D1F00895D6 -:104F9000853009F449C0B8F1863009F456C0089547 -:104FA00080911501681720F4861B8093150102C0BB -:104FB00010921501809115011F928F9385EC96E058 -:104FC00054C080911401681720F4861B809314014B -:104FD00002C010921401809114011F928F9383EBF1 -:104FE00096E043C080911301681720F4861B8093DC -:104FF000130102C010921301809113011F928F932D -:1050000080EA96E032C080911201681720F4861B76 -:105010008093120102C010921201809112011F921E -:105020008F938BE896E021C080911101681720F4DE -:10503000861B8093110102C0109211018091110111 -:105040001F928F9382E796E010C08091100168173D -:1050500020F4861B8093100102C0109210018091F1 -:1050600010011F928F9387E596E09F938F930E9484 -:10507000E9070F900F900F900F900895CF93C82FCE -:105080001F928F932CE539E03F932F930E94E907FD -:1050900061E070E080E090E004C0660F771F881F39 -:1050A000991FCA95D2F70E94F11E0F900F900F9092 -:1050B0000F90CF910C94F51ACF938D3109F465C000 -:1050C000B0F58E3009F4CBC100F5873009F49BC1EF -:1050D000A8F4863009F06AC28091DB01817F8E7F5F -:1050E0008093DB0181E699E00E9450078DE99DE005 -:1050F0000E94500781E08093EB0180C1883009F461 -:105100004FC08B3009F47CC151C2863109F4EDC126 -:1051100038F4803109F4B6C1813109F42DC246C298 -:10512000893109F4CBC18B3109F486C13FC2853383 -:1051300009F434C248F4873209F430C208F430C2AA -:10514000893209F42BC232C2833438F48A3308F02E -:1051500029C2883309F454C129C2833409F41EC218 -:10516000883409F023C20E94F51A8CE89DE00E9461 -:1051700050079FEF23ED80E3915020408040E1F7FE -:1051800000C000000E94882239C18CEA9DE00E9484 -:1051900050070E94552C0E9430150E946E0D2EC1A2 -:1051A00081EA9DE00E94500782E79BE00E94500741 -:1051B0000E944C241F928F938FE69BE09F938F93C6 -:1051C0000E94E9078DE69BE00E9450070E9443245D -:1051D000C82F8AE59BE00E9450071F92CF9325E5D8 -:1051E0003BE03F932F930E94E90783E59BE00E94F9 -:1051F000500789E49BE00E9450078C2F81701F921A -:105200008F9326E43BE03F932F930E94E90784E4C9 -:105210009BE00E9450078AE39BE00E945007C1FB7D -:10522000882780F91F928F9327E33BE03F932F93CA -:105230000E94E90785E39BE00E94500789E29BE01A -:105240000E945007C2FB882780F91F928F9326E2A5 -:105250003BE03F932F930E94E90784E29BE00E948A -:1052600050078BE19BE00E945007C3FBCC27C0F99D -:105270001F92CF9388E19BE09F938F930E94E90751 -:1052800086E19BE00E9450070E945524C82F82E0CF -:105290009BE00E9450071F92CF932DEF3AE03F937F -:1052A0002F930E94E9078BEF9AE00E94500782EE4D -:1052B0009AE00E9450078C2F81701F928F932FEDE0 -:1052C0003AE03F932F930E94E9078DB79EB78096EF -:1052D0000FB6F8949EBF0FBE8DBF8DED9AE00E9471 -:1052E000500786EC9AE00E945007C1FB882780F99E -:1052F0001F928F9323EC3AE03F932F930E94E9078C -:1053000081EC9AE00E9450078FEA9AE00E945007D1 -:10531000C2FB882780F91F928F932CEA3AE03F93D3 -:105320002F930E94E9078AEA9AE00E94500788E9D1 -:105330009AE00E945007C3FB882780F91F928F9341 -:1053400025E93AE03F932F930E94E90783E99AE029 -:105350000E94500789E89AE00E945007C4FB882702 -:1053600080F91F928F9326E83AE03F932F930E9493 -:10537000E90784E89AE00E94500782E79AE00E94D9 -:105380005007C5FB882780F91F928F932FE63AE0DC -:105390003F932F930E94E9078DE69AE00E94500701 -:1053A00081E59AE00E945007C6FB882780F91F928A -:1053B0008F932EE43AE03F932F930E94E9078CE409 -:1053C0009AE00E94500784E49AE00E945007C7FBCD -:1053D000CC27C0F91F92CF9381E49AE09F938F93DB -:1053E0000E94E9078FE39AE00E9450078DB79EB7AD -:1053F0004C960FB6F8949EBF0FBE8DBFC1E0DBC0C8 -:1054000088E899E058C08091DB01C82FC17080FF07 -:1054100009C08FE79DE00E9450078091DB01817FEA -:105420008E7F44C083E79DE00E9450078091DB019E -:1054300081608093DB01E2CF8091DB0181FBCC278F -:10544000C0F991E0C927C0FB81F98093DB01CC232F -:1054500019F086E69DE025C088E59DE02CC080918E -:10546000DB0182FBCC27C0F991E0C927C0FB82F9A0 -:105470008093DB01CC2319F089E49DE012C089E31D -:105480009DE019C08091DB0183FBCC27C0F991E03E -:10549000C927C0FB83F98093DB01CC2351F08DE257 -:1054A0009DE00E9450078091DB0181608093DB01C9 -:1054B00082C080E29DE00E945007A0CF81E19DE084 -:1054C0000E94500785EE9CE00E94500788EA9CE00D -:1054D0000E94500781E89CE00E9450078DE39CE009 -:1054E0000E94500782E19CE0E6CF84E09CE00E94AD -:1054F00050070E9430151F928F938AEE9BE09F9376 -:105500008F930E94E90780910C011F928F9383ED86 -:105510009BE09F938F930E94E907809172011F92F5 -:105520008F9380EC9BE09F938F930E94E90780917B -:105530000D011F928F938DEA9BE09F938F930E94A2 -:10554000E9078091DD019091DE01A091DF01B0912A -:10555000E001BF93AF939F938F9389E99BE09F9363 -:105560008F930E94E9078DB79EB746960FB6F894C1 -:105570009EBF0FBE8DBF42CF0E94F51AC0910D0194 -:1055800081E0C827C0930D01CC2329F08FE89BE070 -:105590000E94500710C084E89BE08DCF80E003C0DC -:1055A0008D5101C089530E943E2828CF82E89BE09C -:1055B0000E945007C0E08C2FCF91089580E008959D -:1055C00080E00895CF93C82F8091EB01813081F066 -:1055D00020F0823009F44CC042C1A0910E01B0917C -:1055E0000F018C91813169F0823209F03AC109C012 -:1055F000A0910E01B0910F018C91813111F0823296 -:1056000049F48C2F0E94DE2A81112FC08C2F0E941A -:105610005C282CC08C2F0E94E02A811126C0C43146 -:10562000E1F070F4CB3081F0C031D1F40E94062754 -:1056300084E599E00E94500782E08093EB0115C059 -:10564000C93259F0C83361F481E699E00E945007ED -:1056500088E599E00E94500708C01092EB0103C151 -:1056600082E599E00E945007FEC081E08170FDC094 -:10567000C43220F5CE3108F0C0C0CB3099F1C8F467 -:10568000C73009F0D2C08AE08093150194E190936D -:10569000140193E0909313018093120188E08093AA -:1056A000110188E28093100188EF97E00E94500773 -:1056B000BFC0C33149F1C431C1F0B7C0CB3409F424 -:1056C000A9C028F4C93289F0C83361F0AEC0C13531 -:1056D00009F49EC0C23509F499C0CE3409F0A5C0C2 -:1056E0006AE09EC00E940627A3C08091EA01882339 -:1056F00019F01092EA019CC085E098E00E945007E2 -:1057000081E08093EB01B1C08FED97E00E945007DC -:105710008DEC97E00E945007809115011F928F93A6 -:105720008AEC97E09F938F930E94E90788EC97E0BB -:105730000E94500786EB97E00E9450078091140169 -:105740001F928F9383EB97E09F938F930E94E907BB -:1057500081EB97E00E94500782EA97E00E94500791 -:10576000809113011F928F938FE997E09F938F93FE -:105770000E94E9078DE997E00E9450078CE897E0C6 -:105780000E945007809112011F928F9389E897E041 -:105790009F938F930E94E90787E897E00E94500744 -:1057A00082E797E00E945007809111011F928F932A -:1057B0008FE697E09F938F930E94E9078DE697E02D -:1057C0000E94500786E597E00E94500780911001E3 -:1057D0001F928F9383E597E09F938F930E94E90731 -:1057E00081E597E00E9450078DB79EB748960FB6A7 -:1057F000F8949EBF0FBE8DBF1BC0CE51EC2FF0E0C2 -:10580000E15DFE4F80818093EA0112C061E003C038 -:1058100061E006C06AE08091EA010E941D2708C08D -:105820008091EA010E94C02703C086EF97E013C071 -:105830008091EA01882369F01F928F9380EF97E0AF -:105840009F938F930E94E9070F900F900F900F90F6 -:1058500004C08DEE97E00E94500781E006C01092D0 -:10586000EB0180E002C080E001CFCF910895E1E834 -:10587000F0E08081886080838081816080838FB741 -:10588000F89493E09093890090ED909388008FBFF7 -:105890000895EFE6F0E08081826080830895EFE66E -:1058A000F0E080818D7F80830895EFE6F0E08081D5 -:1058B00092E08927808308951F920F920FB60F926E -:1058C00011242F933F934F935F936F937F938F9305 -:1058D0009F93AF93BF93EF93FF938091EC019091CF -:1058E000ED0101969093ED018093EC01811103C0CD -:1058F00082E00E946E0DE091ED01E695E695F0E004 -:10590000E454F24FE4918091EC018E1303C080E0E7 -:105910000E946E0DFF91EF91BF91AF919F918F917A -:105920007F916F915F914F913F912F910F900FBE9B -:105930000F901F90189504D06894B1118DC00895F0 -:1059400070D088F09F5790F0B92F9927B751A0F0E9 -:10595000D1F0660F771F881F991F1AF0BA95C9F703 -:1059600012C0B13081F077D0B1E0089574C0672FD4 -:10597000782F8827B85F39F0B93FCCF386957795B3 -:105980006795B395D9F73EF490958095709561959C -:105990007F4F8F4F9F4F0895E89409C097FB3EF4C7 -:1059A00090958095709561957F4F8F4F9F4F99236C -:1059B000A9F0F92F96E9BB279395F69587957795EA -:1059C0006795B795F111F8CFFAF4BB0F11F460FFAA -:1059D0001BC06F5F7F4F8F4F9F4F16C0882311F002 -:1059E00096E911C0772321F09EE8872F762F05C016 -:1059F000662371F096E8862F70E060E02AF09A95B1 -:105A0000660F771F881FDAF7880F9695879597F9A5 -:105A1000089557FD9058440F551F59F05F3F71F09E -:105A20004795880F97FB991F61F09F3F79F0879505 -:105A30000895121613061406551FF2CF4695F1DF8E -:105A400008C0161617061806991FF1CF869571051E -:105A5000610508940895E894BB2766277727CB0152 -:105A600097F908950BD078C069D028F06ED018F05F -:105A7000952309F05AC05FC01124EECFCADFA0F30E -:105A8000959FD1F3950F50E0551F629FF001729FD3 -:105A9000BB27F00DB11D639FAA27F00DB11DAA1FF2 -:105AA000649F6627B00DA11D661F829F2227B00D3F -:105AB000A11D621F739FB00DA11D621F839FA00DCA -:105AC000611D221F749F3327A00D611D231F849F1A -:105AD000600D211D822F762F6A2F11249F57504071 -:105AE0008AF0E1F088234AF0EE0FFF1FBB1F661F0C -:105AF000771F881F91505040A9F79E3F510570F0C5 -:105B000014C0AACF5F3FECF3983EDCF386957795FF -:105B10006795B795F795E7959F5FC1F7FE2B880FBF -:105B2000911D9695879597F9089597F99F6780E855 -:105B300070E060E008959FEF80EC089500240A94DF -:105B40001616170618060906089500240A94121658 -:105B50001306140605060895092E0394000C11F48B -:105B6000882352F0BB0F40F4BF2B11F460FF04C038 -:105B70006F5F7F4F8F4F9F4F0895991B79E004C04F -:105B8000991F961708F0961B881F7A95C9F780957C -:105B9000089597FB072E16F4009407D077FD09D0DF -:105BA0000E94E32D07FC05D03EF4909581959F4F10 -:105BB0000895709561957F4F0895EE0FFF1F059032 -:105BC000F491E02D0994AA1BBB1B51E107C0AA1F49 -:105BD000BB1FA617B70710F0A61BB70B881F991F8E -:105BE0005A95A9F780959095BC01CD010895F99932 -:105BF000FECF92BD81BDF89A992780B50895A8E19E -:105C0000B0E042E050E00C941A2E262FF999FECF16 -:105C10001FBA92BD81BD20BD0FB6F894FA9AF99AC9 -:105C20000FBE019608950E94052E272F0C94062E74 -:105C3000DC01CB01FC01F999FECF06C0F2BDE1BD4C -:105C4000F89A319600B40D9241505040B8F708953B -:045C5000F894FFCFF6 -:105C540020026F0D600E3D0E090ED60D0101C90123 -:105C640028080A03140A3F4D3620394205F504BFBB -:105C7400049F046604D903F2030B042404440401BE -:0A5C840002030405060708090000EA -:00000001FF diff --git a/keyboard/ergodox_ez/keymaps/keymap_default.hex b/keyboard/ergodox_ez/keymaps/keymap_default.hex deleted file mode 100644 index eedabc2db5..0000000000 --- a/keyboard/ergodox_ez/keymaps/keymap_default.hex +++ /dev/null @@ -1,1472 +0,0 @@ -:100000000C9403070C9447070C9447070C9447077C -:100010000C9447070C9447070C9447070C94470728 -:100020000C9447070C9447070C945E120C94301301 -:100030000C9447070C9447070C9447070C94470708 -:100040000C9447070C94082C0C9447070C94470712 -:100050000C9447070C940F220C9447070C94470705 -:100060000C9447070C9447070C9447070C944707D8 -:100070000C9447070C9447070C9447070C944707C8 -:100080000C9447070C9447070C9447070C944707B8 -:100090000C9447070C9447070C9447070C944707A8 -:1000A0000C9447070C9447070C9447079513B71314 -:1000B000A214B713A214F9131C14A21471148414FB -:1000C000D217D2170018001843187F18801A801A08 -:1000D0009718801A8E198E195A1A801A801A6E1A59 -:1000E0000000F0A12E004C002A00E1003581000044 -:1000F0001E00140004001D7134004D001F001A0082 -:1001000016001B00E1042A0020000800070006007A -:1001100050002C0021001500090019004F004A0072 -:10012000220017000A000500000065745000015409 -:100130000000007F0000E3004F0001540000007742 -:100140000000E20023001C000B00110000002971D8 -:10015000240018000D00100052004B0025000C0078 -:100160000E00360051002800260012000F00370054 -:100170002F002B00270013003382387130004E000F -:100180002D0031003400E500C10000000100010035 -:1001900001000100010000003A001E0220022202BC -:1001A000010001003B001F022102230201000100A7 -:1001B0003C002F0226022F00010001003D0030020A -:1001C00027023000010001003E00310235003502F7 -:1001D000000001000100010000000100000001001A -:1001E0000100010000000100000001003F0052007A -:1001F00051002402000001004000240021001E00E4 -:10020000010001004100250022001F00370001000D -:1002100042002600230020002700010043002502A1 -:100220002E0231002E0001004400450001000100B3 -:1002300001000000010001000100010001000000B8 -:1002400001000100010001000100010001000100A6 -:10025000F2000100010001000100F000F1000100C6 -:10026000F400010001000100F3000100F5000100AD -:100270000100010001000100000001000100010077 -:100280000000010000000100010001000000010069 -:100290000000010001000100010001000000010058 -:1002A0000100010001000100A9000100010001009E -:1002B0000100AC00AA00B600010001000100AB0083 -:1002C000A80001000100010001000100010001007F -:1002D00001000100AE000100010000000A0025300D -:1002E000313662003A200025303258000A722F63FE -:1002F0002030313233343536373839414243444582 -:10030000460A000A002530325800626F756E636538 -:10031000213A20006C6566742073696465206174FD -:100320007461636865640A006C656674207369644F -:1003300065206E6F7420726573706F6E64696E678E -:100340000A00747279696E6720746F207265736534 -:1003500074206D637032333031380A000A444542EC -:1003600055473A20656E61626C65642E0A005B73C6 -:100370005D004B6579626F617264207374617274A1 -:100380002E0A005B575D005B535D005B525D005BB6 -:10039000445D005B435D0016034500720067006F1B -:1003A0000044006F007800200045005A000000164D -:1003B000034500720067006F0044006F0078002062 -:1003C0000045005A0000000403090409028D0005DD -:1003D0000100A0FA09040000010301010009211134 -:1003E000010001223F000705810308000A090401FA -:1003F000000103010200092111010001224D000743 -:1004000005820308000A0904020001030000000934 -:1004100021110100012236000705830308000A09A3 -:100420000403000203000000092111010001222041 -:1004300000070584032000010705040320000109CB -:100440000404000103000000092111010001223908 -:1004500000070585031000011201100100000008CB -:10046000EDFE071301000102000105010906A101CB -:10047000050719E029E71500250195087501810296 -:100480000508190129059505750191029501750366 -:100490009101050719002977150025019578750147 -:1004A0008102C00631FF0974A1010975150025FFFD -:1004B0009520750881020976150025FF952075089D -:1004C0009102C005010980A101850216010026B72D -:1004D000001A01002AB700751095018100C0050CB3 -:1004E0000901A1018503160100269C021A01002AB8 -:1004F0009C02751095018100C005010902A1010946 -:1005000001A10005091901290515002501950575A9 -:100510000181029501750381010501093009311539 -:1005200081257F95027508810609381581257F95FB -:100530000175088106050C0A38021581257F950191 -:1005400075088106C0C005010906A101050719E06B -:1005500029E71500250195087501810295017508A7 -:10056000810105081901290595057501910295017B -:10057000750391010507190029FF150025FF950650 -:1005800075088100C00A002530325820006B65795B -:10059000626F6172645F7265706F72743A20000AF4 -:1005A0000025303258006B6579626F6172645F7349 -:1005B00065745F6C65643A200064656C5F6B657997 -:1005C0005F6269743A2063616E27742064656C3AD7 -:1005D00020253032580A006164645F6B65795F6280 -:1005E00069743A2063616E2774206164643A20253F -:1005F0003032580A00646F6E652E0A00626F6F67B2 -:100600006D61676963207363616E3A202E2E2E2020 -:1006100000290A002575002F002575005D2800259A -:10062000640020002564002000256400200025646B -:10063000007C0025303258006D6F7573656B6579ED -:10064000205B62746E7C782079207620685D287249 -:1006500065702F61636C293A205B006D6B5F776872 -:1006600065656C5F74696D655F746F5F6D6178203F -:100670003D2025640A006D6B5F776865656C5F6D72 -:1006800061785F7370656564203D2025640A006DA4 -:100690006B5F74696D655F746F5F6D6178203D207D -:1006A00025640A006D6B5F6D61785F7370656564CA -:1006B000203D2025640A006D6B5F696E746572765B -:1006C000616C203D2025640A006D6B5F64656C6180 -:1006D00079203D2025640A006D6B5F776865656C45 -:1006E0005F74696D655F746F5F6D6178203D202573 -:1006F000640A006D6B5F776865656C5F6D61785F3C -:100700007370656564203D2025640A006D6B5F741D -:10071000696D655F746F5F6D6178203D2025640AA7 -:10072000006D6B5F6D61785F7370656564203D205F -:1007300025640A006D6B5F696E74657276616C206A -:100740003D2025640A006D6B5F64656C6179203D16 -:100750002025640A000A00257500363A207768656E -:10076000656C5F74696D655F746F5F6D61783A2069 -:10077000000A00257500353A20776865656C5F6D65 -:1007800061785F73706565643A20000A0025750022 -:10079000343A2074696D655F746F5F6D61783A20DB -:1007A000000A00257500333A206D61785F7370652B -:1007B00065643A20000A00257500323A20696E749B -:1007C000657276616C286D73293A20000A002575E0 -:1007D00000313A2064656C6179282A31306D7329C3 -:1007E0003A20000A092D2056616C756573202D0A88 -:1007F000004D3E004D25643E20003F00736574208F -:1008000064656661756C740A00433E200077686514 -:1008100072652064656C74613A20637572736F72DF -:100820003D25642C20776865656C3D25640A536519 -:100830006520687474703A2F2F656E2E77696B6926 -:1008400070656469612E6F72672F77696B692F4DD0 -:100850006F7573655F6B6579730A000A092D204D0A -:100860006F7573656B6579202D0A4553432F713A77 -:1008700009717569740A313A0964656C6179282ACD -:1008800031306D73290A323A09696E746572766186 -:100890006C286D73290A333A096D61785F7370654E -:1008A00065640A343A0974696D655F746F5F6D61E0 -:1008B000780A353A09776865656C5F6D61785F73B2 -:1008C000706565640A363A09776865656C5F7469B6 -:1008D0006D655F746F5F6D61780A0A703A097072B6 -:1008E000696E742076616C7565730A643A09736584 -:1008F000742064656661756C74730A75703A092BAF -:10090000310A646F776E3A092D310A706775703A53 -:10091000092B31300A7067646F776E3A092D3130D8 -:100920000A0A7370656564203D2064656C746120FB -:100930002A206D61785F7370656564202A202872B3 -:100940006570656174202F2074696D655F746F5FD9 -:100950006D6178290A003F004D3E2000433E200093 -:100960004C25640A000A092D20436F6E736F6C6575 -:10097000202D0A4553432F713A09717569740A6D28 -:100980003A096D6F7573656B65790A000A092D2048 -:100990004D61676963202D0A643A09646562756771 -:1009A0000A783A096465627567206D6174726978C6 -:1009B0000A6B3A096465627567206B6579626F61DD -:1009C00072640A6D3A096465627567206D6F7573AC -:1009D000650A763A0976657273696F6E0A733A0929 -:1009E0007374617475730A633A09636F6E736F6C25 -:1009F00065206D6F64650A302D343A096C61796544 -:100A000072302D34284631302D4634290A50617514 -:100A1000733A09626F6F746C6F616465720A653A4C -:100A200009656570726F6D0A6E3A094E4B524F0A36 -:100A30007A3A09736C656570204C4544207465737F -:100A4000740A000A002575002E6E6B726F3A200042 -:100A50000A002575002E737761705F6261636B73A6 -:100A60006C6173685F6261636B73706163653A2088 -:100A7000000A002575002E737761705F67726176DA -:100A8000655F6573633A20000A002575002E6E6F5E -:100A90005F6775693A20000A002575002E7377613B -:100AA000705F72616C745F726775693A20000A004A -:100AB0002575002E737761705F6C616C745F6C6775 -:100AC00075693A20000A002575002E636170736C09 -:100AD0006F636B5F746F5F636F6E74726F6C3A20DD -:100AE000000A002575002E737761705F636F6E7466 -:100AF000726F6C5F636170736C6F636B3A20000A96 -:100B00000025303258006B65796D61705F636F6EE0 -:100B10006669672E7261773A20000A002575002EFB -:100B20006D6F7573653A20000A002575002E6B65A0 -:100B300079626F6172643A20000A002575002E6D9B -:100B400061747269783A20000A002575002E656E7E -:100B500061626C653A20000A0025303258006465F5 -:100B60006275675F636F6E6669672E7261773A20A0 -:100B7000000A0025750064656661756C745F6C61C0 -:100B80007965723A20003F004E4B524F3A206F6613 -:100B9000660A004E4B524F3A206F6E0A0074696D20 -:100BA00065725F636F756E743A202530346C580A35 -:100BB000006B6579626F6172645F6E6B726F3A2071 -:100BC00025580A006B6579626F6172645F69646CB5 -:100BD000653A2025580A006B6579626F6172645F1F -:100BE00070726F746F636F6C3A2025580A00686FDB -:100BF00073745F6B6579626F6172645F6C65647357 -:100C000028293A2025580A000A092D2053746174B6 -:100C10007573202D0A004743433A20342E382E3274 -:100C2000204156522D4C4942433A20312E382E3025 -:100C3000204156525F415243483A20617672350A4C -:100C4000004F5054494F4E533A204C554641204294 -:100C50004F4F544D41474943204D4F5553454B4508 -:100C6000592045585452414B455920434F4E534FFC -:100C70004C4520434F4D4D414E44204E4B524F204A -:100C80003531320A004255494C443A2035653337F4 -:100C90003663622D6469727479202832323A3239AF -:100CA0003A3538204A616E203132203230313629CF -:100CB0000A005649443A2030784645454428457252 -:100CC000676F446F7820455A29205049443A2030B4 -:100CD0007831333037284572676F446F7820455A32 -:100CE00029205645523A203078303030310A0044BD -:100CF0004553433A20742E6D2E6B2E206B6579621E -:100D00006F617264206669726D7761726520666FCB -:100D100072204572676F646F780A000A092D2056A9 -:100D2000657273696F6E202D0A000A6D6F757365A9 -:100D30003A206F66660A000A6D6F7573653A206F18 -:100D40006E0A000A6B6579626F6172643A206F66A1 -:100D5000660A000A6B6579626F6172643A206F6E91 -:100D60000A000A6D61747269783A206F66660A003B -:100D70000A6D61747269783A206F6E0A000A6465C0 -:100D80006275673A206F6E0A000A64656275673A99 -:100D9000206F66660A000A0A626F6F746C6F616486 -:100DA00065722E2E2E2000433E20006565636F6E17 -:100DB0006669673A0A00536C656570204C454420AB -:100DC000746573740A000000000000000000000059 -:100DD00000010204060A0F17202C3A4A5D71879D14 -:100DE000B3C7DAE9F5FCFFFCF5E9DAC7B39D877113 -:100DF0005D4A3A2C20170F0A060402010000000089 -:100E000000000000000011241FBECFEFDAE0DEBFBB -:100E1000CDBF04B603FE24C08091F9019091FA0180 -:100E2000A091FB01B091FC018730904BA740B04BE3 -:100E3000B9F41092F9011092FA011092FB0110928C -:100E4000FC0114BE84B7877F84BF88E10FB6F89495 -:100E500080936000109260000FBEE0E0FFE3099510 -:100E600011E0A0E0B1E0ECEAFBE502C005900D92D4 -:100E7000AA33B107D9F711E0AAE3B1E001C01D928E -:100E8000A93FB107E1F70E94980F0C94D42D0C9460 -:100E90000000FF93EF93E0913A01F0913B0130970E -:100EA00009F00995EF91FF910895FC01859180303B -:100EB00011F0EFDFFBCF0895FF27E0E230E247FFBC -:100EC0000CC0419597FF09C0EDE260957095809543 -:100ED0009095611D711D811D911D27FF02C02195F7 -:100EE00030E350E2AA27660F771F881F991FAA1FB9 -:100EF000A41710F0A41B63955A95A9F7AA3008F01F -:100F0000A95FA05DAF93F39561157105810591050A -:100F100041F7ED3211F4EF93F395F21718F43F9384 -:100F2000F395FBCF8F91B5DFFA95E1F70895E9913D -:100F3000F9918591803021F0853219F0AADFF9CF3F -:100F4000089520E0E89455915532C1F3503311F4DF -:100F5000689455915A3348F4505390F3220F022E5F -:100F6000220F220F200D250FF4CF0EF42195899129 -:100F70009991533619F3533729F1533559F1BC017F -:100F800088279927E8945C3621F48991999168948F -:100F90005591543639F446EF7EF077FF0DC08FEF50 -:100FA0009FEF0AC055374AE039F0583540E121F04B -:100FB000523642E009F00895FF93EF937DDFEF9101 -:100FC000FF91B7CFFF93EF93FC0181918030B9F38C -:100FD00060DFFBCFFF93EF9368DFF1CFDF93CF9319 -:100FE000CDB7DEB72596A3DFCF91DF9108956111CC -:100FF0000BC0FC018281882321F085EE0E946616D9 -:1010000003C085EE0E942E1780E090E008950895B9 -:101010006091BC017091BD018091BE019091BF01B2 -:101020000E94132156985E9825982D9826982E9800 -:1010300027982F98813019F0823021F00895259A51 -:101040002D9A0895269A2E9A089588E098E0892B83 -:1010500011F00E94080880E090E0089556985E988C -:1010600025982D9826982E9827982F988FEF90E006 -:10107000909389008093880090938B0080938A00DE -:1010800090938D0080938C00259A2D9A2FEF80E706 -:1010900092E0215080409040E1F700C00000269A85 -:1010A0002E9A2FEF80E792E0215080409040E1F7A8 -:1010B00000C00000279A2F9A2FEF80E792E021507E -:1010C00080409040E1F700C0000025982D982FEF58 -:1010D00080E792E0215080409040E1F700C000009E -:1010E00026982E982FEF80E792E021508040904084 -:1010F000E1F700C0000027982F9856985E98259831 -:101100002D9826982E9827982F98089589EA8093ED -:10111000800089E08093810024982C983F988AB1C0 -:101120008F748AB96E98479A8BB1806B8BB9769A17 -:101130000E942E0887E098E0892B11F00E94070892 -:1011400080E090E0089580E28093000180913C016E -:1011500081110EC00E94F20881E080933C012FEFC4 -:1011600083ED90E3215080409040E1F700C0000003 -:1011700080E40E94F8088093000181112EC00E9433 -:10118000220980930001811128C00E9422098093C6 -:101190000001811122C08FE30E9422098093000187 -:1011A00081111BC00E941A0980E40E94F8088093F4 -:1011B0000001811112C08CE00E942209809300017D -:1011C00081110BC00E94220980930001811105C08A -:1011D0008FE30E942209809300010E941A098091E6 -:1011E000000108951092B9008AE08093B800089534 -:1011F00094EA9093BC009091BC0097FFFCCF909133 -:10120000B900987F983021F0903111F081E0089575 -:101210008093BB0084E88093BC008091BC0087FF72 -:10122000FCCF8091B900887F883111F0803471F74C -:1012300080E0089584E98093BC008091BC0084FD27 -:10124000FCCF08958093BB0084E88093BC0080911C -:10125000BC0087FFFCCF9091B900987F81E0983265 -:1012600009F480E0089584E88093BC008091BC007C -:1012700087FFFCCF8091BB00089580910001811110 -:1012800015C080E40E94F8088093000181110CC011 -:1012900082E10E94220980930001811105C08FEF35 -:1012A0000E942209809300010E941A0984B1807F64 -:1012B00084B985B1807F85B98AB1837F8AB98BB1C2 -:1012C000837F8BB93E98469808950E94A308809327 -:1012D00000010E943D0980B38C7080BB81B3836F95 -:1012E00081BBECE4F1E0AEE3B1E011921D9281E04C -:1012F000EA35F807D1F786E898E0892B11F00C94CD -:10130000860808959F92AF92BF92CF92DF92EF929C -:10131000FF920F931F93CF93DF9380910001882357 -:10132000E1F080913D018F5F80933D01811115C0F7 -:1013300082E493E00E9455070E94A3088093000175 -:10134000882329F088E293E00E94550706C084E1D3 -:1013500093E00E9455070E942E080EE311E0C0E0C2 -:10136000D0E0BB24B39482E0A82ECC24C394D12C2B -:1013700025E0E22E23E0F22EC73000F58091000137 -:10138000811162C080E40E94F808809300018111FD -:1013900012C082E10E9422098093000181110BC0DA -:1013A000C6010C2E01C0880F0A94EAF780950E94AE -:1013B0002209809300010E941A0946C0CA30A1F098 -:1013C00028F4C83059F0C93061F005C0CC3089F03C -:1013D00070F0CD3089F0209A289810C0219A299871 -:1013E0000DC0229A2A980AC0239A2B9807C0529AB5 -:1013F00001C0539A5B9802C03E9A4698E0EAEA958B -:10140000F1F78FB1799985C092E081708B25892B96 -:101410007C9B02C090E001C094E0892B7D9B02C0C0 -:1014200090E001C098E0892B7E9B02C090E001C053 -:1014300090E1892B9FB19095991F9927991F9295BB -:10144000990F907E892B10C080910001811176C088 -:1014500080E40E94F80880930001882309F45BC0AF -:10146000912C0E941A09892DF8019081981739F161 -:10147000808380910101882301F18091D70180FF51 -:1014800004C08AE093E00E9455078091D70180FF55 -:101490000CC0809101011F928F93FF92EF920E94E6 -:1014A000EE070F900F900F900F908091D70180FF63 -:1014B00004C083E093E00E945507A09201010E94BE -:1014C0003D0921960F5F1F4FCE30D10509F054CF53 -:1014D000809101018823B1F081508093010188231C -:1014E00039F08FE99FE00197F1F700C000000AC0D2 -:1014F000ACE4B1E0EEE3F1E081918D9391E0EC3466 -:10150000F907D1F785E298E0892BD1F00E942508F0 -:1015100017C090E07ACF83E10E94220980930001F6 -:1015200081119ECF81E40E94F8088093000181110F -:1015300097CF0E943309982E909493CF80E094CF58 -:1015400081E0DF91CF911F910F91FF90EF90DF909D -:10155000CF90BF90AF909F900895E82FF0E0E45BAC -:10156000FE4F80810895CF92DF92EF92FF920F930A -:101570001F93CF93DF938CEE92E00E9455073CE4DB -:10158000E32E31E0F32EC0E0D0E047EEC42E42E07F -:10159000D42E0EED12E0DF93CF93DF92CF920E9414 -:1015A000EE0784EE92E00E945507F70181917F01DA -:1015B00090E00E9478219F938F931F930F930E9436 -:1015C000EE078CED92E00E94550721968DB79EB7ED -:1015D00008960FB6F8949EBF0FBE8DBFCE30D105D2 -:1015E000D1F6DF91CF911F910F91FF90EF90DF9097 -:1015F000CF9008958B3B910578F4883A910540F59A -:10160000853A9105D0F48430910508F0B1C081305D -:10161000910509F4ADC06BC0803E910508F467C028 -:10162000883E910508F4A4C09C01205F3109203157 -:10163000310508F05CC090650895853A910509F47C -:1016400059C0863A910509F458C083E890E408959A -:10165000883A910509F454C0893A910509F453C0B8 -:101660008A3A910509F452C08B3A910509F451C0A8 -:101670008C3A910509F450C08D3A910509F44FC098 -:10168000803B910509F44EC08E3A910509F44DC096 -:101690008F3A910509F44CC0813B910509F44BC088 -:1016A000823B910509F44AC0833B910509F449C086 -:1016B000843B910509F448C0853B910509F447C076 -:1016C000863B910509F446C0873B910509F445C066 -:1016D000883B910509F444C0893B910509F443C056 -:1016E0008A3B910509F042C08AE296E4089580E0C1 -:1016F00090E0089581E890E4089582E890E40895E8 -:1017000082EE94E4089589EE94E408958AEE94E4D8 -:10171000089585EB94E4089586EB94E4089587EBAF -:1017200094E408958CEC94E408958DEC94E4089589 -:1017300083E895E408958AE895E4089582E995E4BC -:10174000089584E995E4089581E296E4089583E29A -:1017500096E4089584E296E4089585E296E4089577 -:1017600086E296E4089587E296E4089580E094E4A2 -:101770000895089596E0799FF001112494E5899FDA -:10178000E00DF11D1124E60FF11DEE0FFF1FEC51CE -:10179000FF4F859194910895880F991F805A90402A -:1017A000FC01859194910895880F991F80529F4F55 -:1017B000FC0185919491089526E0729FF001112417 -:1017C00044E5849FE00DF11D1124E60FF11DEE0F9D -:1017D000FF1FEC51FF4F25913491C9019A95811556 -:1017E0009F4110F4C9010895C9019052811590419B -:1017F00028F4C9019F700E94D40B0895C901905329 -:101800008115904120F4C9019927906C0895211504 -:1018100080E5380769F40E94A11A9FEF24E34CE0A9 -:10182000915020404040E1F700C000000C94342269 -:10183000213080E5380751F48CE593E00E9455078C -:101840008091D70181608093D7010895C901905597 -:101850008115904108F050C0832F99278F709927E8 -:1018600081309105D9F4A9014370552702C0880F32 -:10187000991F4A95E2F79C68A90164E0440F551F3F -:101880006A95E1F744275370842B952B73E0220F60 -:10189000331F7A95E1F7207633271DC082309105FA -:1018A00029F4922F8827816F906A089583309105DB -:1018B000A9F4A9014370552781E090E002C0880F88 -:1018C000991F4A95E2F79C6843E0220F331F4A951F -:1018D000E1F7207E3770822B932B08950497F1F463 -:1018E000A9014370552781E090E002C0880F991F3D -:1018F0004A95E2F79A68E8CFC9019057811590415F -:1019000020F4C9019F7090620895C9019058811513 -:10191000904120F4C9019F70906A0895203E3105DE -:10192000E0F4203C310558F52133310509F470C04D -:1019300048F42932310509F464C02A32310509F42A -:101940006EC074C029333105F1F022383105D9F069 -:101950002533310509F44EC069C0233E310589F1B4 -:1019600038F4203E3105C1F0223E3105E1F05EC081 -:10197000263E310569F1273E3105A9F157C0C9015D -:101980000E94CC0B08958091EA0180FD02C081FF86 -:101990004DC080EE90E04BC08091EA0180FFF9CF0E -:1019A00089E390E044C08091EA0182FF0EC08091FB -:1019B000EA0184FF03C080E090E039C083EE90E04C -:1019C00036C08091EA0182FFF2CF82EE90E02FC014 -:1019D0008091EA0183FF0BC08091EA0184FDEBCF87 -:1019E00087EE90E024C08091EA0183FFF5CF86EE78 -:1019F00090E01DC08091EA0185FF07C089E290E078 -:101A000016C08091EA0185FFF9CF85E390E00FC011 -:101A10008091EA0186FF07C08AE290E008C08091C9 -:101A2000EA0186FFF9CF81E390E001C0C9010E947D -:101A3000FA0A0895089580916D0108959FB7F8946A -:101A400010925C019FBF9091F001943009F058C052 -:101A50009091E9009F702091EC0020FF02C020E8E7 -:101A600001C020E0292B94E09093E9009091EB00D5 -:101A700090FF43C09091EE0097FF3FC090915A01B4 -:101A8000992321F09091E80095FF37C010925A01F8 -:101A900096E03091E80035FD15C03091F00134300A -:101AA00061F53091EB0035FD28C0915021F481E0C3 -:101AB00080935A0122C0EFE9FFE03197F1F700C0AF -:101AC0000000E7CF8093F1008091E80085FD0AC017 -:101AD0008091E80080FFFCCF8091E8008E778093B2 -:101AE000E80006C08FB7F89491E090935C018FBF37 -:101AF0002F702093E90080E008952F702093E90073 -:101B00008FEF0895CF93DF9300D01F92CDB7DEB74C -:101B10002091F001243019F523E029839B838A83E7 -:101B20002093E9008FEF9091E800815095FD06C069 -:101B300095ED9A95F1F700008111F5CF8091E800BD -:101B400085FF0DC040E050E063E070E0CE010196FB -:101B50000E9451108091E8008E778093E8000F90EA -:101B60000F900F90DF91CF910895CF93DF9300D026 -:101B70001F92CDB7DEB72091F001243021F522E08D -:101B800029839B838A8383E08093E9008FEF909180 -:101B9000E800815095FD06C095ED9A95F1F700009B -:101BA0008111F5CF8091E80085FF0DC040E050E045 -:101BB00063E070E0CE0101960E9451108091E80030 -:101BC0008E778093E8000F900F900F90DF91CF9168 -:101BD00008952091F0012430F1F422E02093E900EF -:101BE0002FEF3091E800215035FD06C035ED3A95D4 -:101BF000F1F700002111F5CF2091E80025FF0BC07F -:101C000040E050E065E070E00E9451108091E800F3 -:101C10008E778093E8000895CF93DF93EC01809155 -:101C2000F001843009F047C080910C018823E1F075 -:101C300080910D018823C1F085E08093E9008FEF4A -:101C40009091E800815095FD06C095E19A95F1F7D5 -:101C500000008111F5CF8091E80085FF2CC040E0A5 -:101C600050E060E170E017C081E08093E9008FEF01 -:101C70009091E800815095FD06C095ED9A95F1F799 -:101C800000008111F5CF8091E80085FF14C040E08D -:101C900050E068E070E0CE010E9451108091E800B1 -:101CA0008E778093E80080E1FE01ADE5B1E0019020 -:101CB0000D928A95E1F7DF91CF91089583E993E042 -:101CC0000E9455078091EF01811109C00E94E31124 -:101CD0000E9440128091E20084608093E2000895A7 -:101CE0008FE893E00E9455071092EF0108958BE86A -:101CF00093E00C94550787E893E00E9455070C94F5 -:101D0000F52B83E893E00E9455070E94CF210E94A3 -:101D1000FB2B0E94DC140C941A0D80915B018F5FE9 -:101D200080935B0162E30E94692D911135C010928E -:101D30005B0180915C01882379F18091F00184300E -:101D400049F58091E9008F709091EC0090FF02C0FE -:101D500090E801C090E0982B84E08093E9008091A6 -:101D6000EB0080FF14C08091EE0087FF10C08091CF -:101D7000E80085FF03C01092F100F9CF8091E800E0 -:101D800080FF05C08091E8008E778093E8009F7007 -:101D90009093E90010925C01089542E061EC81E0CB -:101DA0000E945D1142E061EC82E00E945D1142E020 -:101DB00061EC83E00E945D1142E261EC84E00E94EC -:101DC0005D1142E161EC85E00C945D118091F201BE -:101DD000833009F455C030F4813071F0823009F459 -:101DE0008EC008958A3009F47AC08B3009F460C03F -:101DF000893009F09CC020C08091F101813A09F03E -:101E000096C08091E800877F8093E8008091F5017B -:101E10009091F601892B21F060E080E090E003C012 -:101E200060E18DE591E070E00E949A108091E800F9 -:101E30008B778093E80008958091F101813209F059 -:101E400076C08091F5019091F601009719F0049702 -:101E500009F06DC08091E800877F8093E800809151 -:101E6000E80082FD05C08091F0018111F8CF5FC0CC -:101E70008091F10080936D018091E8008B7753C0D1 -:101E80008091F101813A09F052C08091F501909161 -:101E9000F601892B09F04BC08091E800877F809381 -:101EA000E8008091E80080FFFCCF80910C0136C0F3 -:101EB0008091F1018132D9F58091F5019091F6017F -:101EC000892BA9F58091E800877F8093E8000E9424 -:101ED00092118091F30180930C010C94A11A8091CE -:101EE000F101813221F58091E800877F8093E8003D -:101EF0000E9492118091F40180936E010895809167 -:101F0000F101813AA1F48091E800877F8093E80095 -:101F10008091E80080FFFCCF80916E018093F100FA -:101F20008091E8008E778093E8000C9492110895D8 -:101F300084B7877F84BF88E10FB6F89480936000F0 -:101F4000109260000FBE90E080E80FB6F894809386 -:101F50006100909361000FBE0E9465150E94E3111D -:101F60000E9440128091E20084608093E2008EE142 -:101F70009DE00E940E2178940E94BA140E94671579 -:101F800082E091E00E94D7140E94E32B82E793E065 -:101F90000E9455078091F001853089F48EE693E028 -:101FA0000E9455070E9492218091EE01882391F3AF -:101FB0000E94BA21882371F30E943B10EBCF0E944C -:101FC0009515E8CF292F332723303105A9F06CF47C -:101FD0002130310509F442C02230310509F043C0F7 -:101FE0008DE890E02BEC33E042C021323105C9F09E -:101FF0002232310519F137C099278130910541F01E -:102000008230910541F0892B71F5E7ECF3E005C0D2 -:10201000EFEAF3E002C0E7E9F3E0849190E09F018A -:1020200026C0653000F5E62FF0E0EE0FFF1FEB5DF8 -:10203000FE4F2081318189E090E019C0653098F42D -:10204000E62FF0E0DF01AA0FBB1FA55EBE4F2D916A -:102050003C91EA5EFE4F808190E009C082E190E011 -:1020600028E534E004C080E090E020E030E0FA01B0 -:1020700031832083089580E189BD82E189BD09B45F -:1020800000FEFDCF8091D8008F7D8093D800809195 -:10209000E00082608093E0008091E00081FDFCCF51 -:1020A0000895CF92DF92EF92FF920F931F93CF93F9 -:1020B000DF937C018B01EA010E94B311811131C0D1 -:1020C000209731F088819981081B190BE80EF91EC1 -:1020D000C12CD12C0115110519F18091E80085FD65 -:1020E00014C08091E8008E778093E800209741F03B -:1020F000888199818C0D9D1D9983888385E011C00D -:102100000E94B311882331F30CC0F70181917F0144 -:102110008093F10001501109FFEFCF1ADF0ADACFE7 -:1021200080E0DF91CF911F910F91FF90EF90DF90B2 -:10213000CF9008952091F7013091F80126173707C5 -:1021400048F06115710539F42091E8002E7720934D -:10215000E80001C0B901FC0120E061157105B9F189 -:102160008091F001882309F440C0853009F43FC014 -:102170008091E80083FD3DC08091E80082FF06C0A9 -:102180008091E80082FF26C080E008958091E800F9 -:1021900080FFE3CF2091F3008091F20090E0922B3A -:1021A0006115710551F08830910538F42191209323 -:1021B000F100615071090196F3CF21E0089709F011 -:1021C00020E08091E8008E778093E800C6CF21114F -:1021D000C7CFD6CF8091F001882339F0853039F010 -:1021E0008091E80083FFCCCF04C082E0089583E0B3 -:1021F000089581E008952091F7013091F8012617A4 -:10220000370748F06115710539F42091E8002E7701 -:102210002093E80001C0B901FC0120E061157105BF -:10222000C1F18091F001882309F441C0853009F49F -:1022300040C08091E80083FD3EC08091E80082FFAD -:1022400006C08091E80082FF27C080E00895809159 -:10225000E80080FFE3CF2091F3008091F20090E04E -:10226000922B6115710559F08830910540F4249145 -:102270002093F1003196615071090196F2CF21E06F -:10228000089709F020E08091E8008E778093E800BD -:10229000C5CF2111C6CFD5CF8091F001882339F069 -:1022A000853039F08091E80083FFCBCF04C082E015 -:1022B000089583E0089581E00895982F973058F5A8 -:1022C0009093E900981739F07091EC002091ED009F -:1022D0005091F00003C0242F762F50E021FF19C049 -:1022E0003091EB003E7F3093EB003091ED003D7F6D -:1022F0003093ED003091EB0031603093EB00709340 -:10230000EC002093ED005093F0002091EE0027FFA9 -:1023100007C09F5FD3CF8F708093E90081E008955D -:1023200080E008958091F10187FD05C08091E8006B -:1023300080FF0EC012C08091E80082FD05C0809130 -:10234000F0018111F8CF08958091E8008B7708C0E3 -:102350008091F0018111EACF08958091E8008E7795 -:102360008093E80008958091E4009091E50045E6AF -:102370002091EC0020FF21C02091E80020FD21C029 -:102380002091F001222389F0253089F02091EB0083 -:1023900025FD0FC02091E4003091E5002817390792 -:1023A00039F3415041F0C901E3CF82E0089583E061 -:1023B000089581E0089584E008952091E80022FFC7 -:1023C000DFCF80E008950E9451120E945912E0EE82 -:1023D000F0E0808181608083E8EDF0E080818F779C -:1023E000808319BCA7EDB0E08C918E7F8C938081A7 -:1023F0008F7E80831092EF0108950F931F93CF93E8 -:10240000DF930E9451120E945912C8EDD0E08881DA -:102410008F77888388818068888388818F7D88838F -:1024200019BC1092F0011092EC011092EE01109282 -:10243000ED0100EE10E0F80180818B7F80838881C0 -:102440008160888342E060E080E00E945D11E1EEFF -:10245000F0E080818E7F8083E2EEF0E08081816019 -:102460008083808188608083F80180818E7F808373 -:10247000888180618883DF91CF911F910F910895AA -:10248000E8EDF0E080818F7E8083E7EDF0E08081F1 -:102490008160808384E082BF81E08093EF010C94AF -:1024A000FD11E8EDF0E080818E7F80831092E200E4 -:1024B00008951092DA001092E10008951F920F9291 -:1024C0000FB60F9211242F933F934F935F936F9307 -:1024D0007F938F939F93AF93BF93EF93FF938091DD -:1024E000E10082FF0BC08091E20082FF07C0809173 -:1024F000E1008B7F8093E1000E948D0E8091DA00D5 -:1025000080FF1FC08091D80080FF1BC08091DA003F -:102510008E7F8093DA008091D90080FF0DC080E12A -:1025200089BD82E189BD09B400FEFDCF81E08093C1 -:10253000F0010E945E0E05C019BC1092F0010E94CD -:10254000700E8091E10080FF19C08091E20080FF51 -:1025500015C08091E2008E7F8093E2008091E200BE -:1025600080618093E2008091D80080628093D800DF -:1025700019BC85E08093F0010E947B0E8091E10000 -:1025800084FF30C08091E20084FF2CC080E189BDCF -:1025900082E189BD09B400FEFDCF8091D8008F7D16 -:1025A0008093D8008091E1008F7E8093E10080913C -:1025B000E2008F7E8093E2008091E2008160809350 -:1025C000E2008091EC01882311F084E007C0809143 -:1025D000E30087FF02C083E001C081E08093F00147 -:1025E0000E94810E8091E10083FF29C08091E2006A -:1025F00083FF25C08091E100877F8093E10082E026 -:102600008093F0011092EC018091E1008E7F809325 -:10261000E1008091E2008E7F8093E2008091E200F1 -:1026200080618093E20042E060E080E00E945D1102 -:102630008091F00088608093F0000E94770EFF91F7 -:10264000EF91BF91AF919F918F917F916F915F912A -:102650004F913F912F910F900FBE0F901F901895A3 -:102660001F920F920FB60F9211242F933F934F9307 -:102670005F936F937F938F939F93AF93BF93CF930A -:10268000EF93FF93C091E900CF708091EC0010921E -:10269000E9008091F000877F8093F00078940E9499 -:1026A0006C131092E9008091F00088608093F00034 -:1026B000C093E900FF91EF91CF91BF91AF919F91AE -:1026C0008F917F916F915F914F913F912F910F90DB -:1026D0000FBE0F901F9018951F93CF93DF93CDB728 -:1026E000DEB7AA970FB6F894DEBF0FBECDBFE1EFFD -:1026F000F1E08091F100819321E0E93FF207C9F711 -:102700000E94E60E8091E80083FF1CC12091F10138 -:102710003091F201832F90E08A30910508F012C1C8 -:10272000FC01EA5AFF4F0C94892D203881F02238A1 -:1027300009F008C18091F5018F708093E9008091C4 -:10274000EB0085FB882780F91092E90006C0809194 -:10275000ED019091EE01911182609091E800977FD8 -:102760009093E8008093F1001092F100C5C0822F91 -:102770008D7F09F0E7C0222319F0223061F0E2C01A -:102780008091F301813009F0DDC0333009F080E041 -:102790008093EE0128C08091F301811124C0209123 -:1027A000F5012F7009F4CEC02093E9008091EB0071 -:1027B00080FF19C08091EB00333011F4806211C0AA -:1027C00080618093EB0081E090E0022E01C0880FD1 -:1027D0000A94EAF78093EA001092EA008091EB00F5 -:1027E00088608093EB001092E9008091E800877F79 -:1027F00086C02111A7C01091F3011F778091E300DB -:102800008078812B8093E3008091E800877F80931C -:10281000E8000E9492118091E80080FFFCCF809137 -:10282000E30080688093E300112311F083E001C08E -:1028300082E08093F00186C02058223008F082C0E8 -:102840008091F3019091F4018C3D23E0920779F59A -:1028500083E08A838AE289834FB7F894DE01139676 -:1028600020E03EE051E2E32FF0E050935700E49186 -:1028700020FF03C0E295EF703F5FEF708E2F90E076 -:10288000EA3010F0C79601C0C0968D939D932F5FDC -:10289000243149F74FBF8091E800877F8093E8009B -:1028A0006AE270E0CE0101960E949A1014C0AE0157 -:1028B0004F5F5F4F6091F5010E94E20F009709F4AE -:1028C00041C02091E800277F2093E800BC01898166 -:1028D0009A810E94FB108091E8008B778093E8003A -:1028E00031C0203879F58091E800877F8093E80037 -:1028F0008091EC018093F1008091E8008E778093C5 -:10290000E8000E9492111EC021111CC09091F30199 -:102910009230C0F48091E800877F8093E800909324 -:10292000EC010E9492118091EC01811104C0809110 -:10293000E30087FF02C084E001C081E08093F001E2 -:102940000E94CD0E8091E80083FF0AC08091E800CC -:10295000877F8093E8008091EB0080628093EB009A -:10296000AA960FB6F894DEBF0FBECDBFDF91CF9110 -:102970001F910895CF938091F0018823B1F0809149 -:10298000E9008F709091EC0090FF02C090E801C0C8 -:1029900090E0C92FC82B1092E9008091E80083FDD8 -:1029A0000E946C13CF70C093E900CF91089590936B -:1029B0007401809373010895E0917301F0917401A3 -:1029C000309721F00190F081E02D099480E0089586 -:1029D000FF920F931F93CF93DF938C01E0917301CC -:1029E000F0917401309799F10280F381E02D0995FF -:1029F0008091D70182FF2BC080FF04C08DE895E055 -:102A00000E945507E80180E1F82E07E815E0809163 -:102A1000D70180FF0BC088811F928F931F930F9364 -:102A20000E94EE070F900F900F900F90FA9421964E -:102A3000F110EDCF8091D70180FF09C085E895E0C6 -:102A4000DF91CF911F910F91FF900C945507DF916B -:102A5000CF911F910F91FF900895E0917301F09134 -:102A60007401309721F00480F581E02D09940895D8 -:102A700020917101309172018217930771F0909348 -:102A8000720180937101E0917301F09174013097AC -:102A900021F00680F781E02D0994089520916F01BF -:102AA000309170018217930771F0909370018093B9 -:102AB0006F01E0917301F0917401309721F000846F -:102AC000F185E02D0994089508950C9464150E94F1 -:102AD000D1210E9465090C949722CF93C82F809131 -:102AE000D70182FF1EC080FF04C086EA95E00E94E5 -:102AF00055078091D70180FF0CC01F92CF9321EA28 -:102B000035E03F932F930E94EE070F900F900F90A8 -:102B10000F908091D70180FF04C08FE995E00E945B -:102B200055078C2FCF910C941A0DCF92DF92EF9214 -:102B3000FF920F931F93CF93DF93CDB7DEB72B9701 -:102B40000FB6F894DEBF0FBECDBF0E94820936E7F4 -:102B5000E32E31E0F32E00E010E0C02E802F0E9423 -:102B6000AD0AF701D1907F01D826B1F40F5F1F4F56 -:102B70000E30110591F78FEF89838A831B820E94A3 -:102B8000DA218160782F9D838C8349815A816B8102 -:102B90008D810E94381641C09091D70191FF04C0E9 -:102BA0008B870E94B30A8B8520E030E04D2D50E0EA -:102BB000922FBA01022E02C0759567950A94E2F72A -:102BC00060FF25C02E83CF82EE24E394F12C02C057 -:102BD000EE0CFF1C9A95E2F790E08E219F2121E0F8 -:102BE000892B09F420E028870E94DA218160782F60 -:102BF0009A8789874E815F8168858A850E94381609 -:102C0000F801EA58FE4F80818E25808306C02F5F31 -:102C10003F4F2630310561F6A9CF0E94052610915D -:102C200075010E94DC141817A1F00E94DC14809337 -:102C300075012B960FB6F894DEBF0FBECDBFDF91A6 -:102C4000CF911F910F91FF90EF90DF90CF900C9458 -:102C50006D152B960FB6F894DEBF0FBECDBFDF917A -:102C6000CF911F910F91FF90EF90DF90CF9008953B -:102C7000CF93DF93CDB7DEB72B970FB6F894DEBFB7 -:102C80000FBECDBF4F83588769877A878B87DE0158 -:102C9000119686E0FD0111928A95E9F785E0FE0123 -:102CA000379601900D928A95E1F749815A816B819F -:102CB0007C818D819E810E946D1D2B960FB6F894AC -:102CC000DEBF0FBECDBFDF91CF910895CF93C82F48 -:102CD000882309F4C1C0823859F40E94DC1481FDB4 -:102CE000BBC089E30E940C200E94E82089E30CC04D -:102CF000833879F40E94DC1480FDAEC083E50E9425 -:102D00000C200E94E82083E50E945D20CF910C9466 -:102D1000E820843859F40E94DC1482FD9DC087E4C9 -:102D20000E940C200E94E82087E4EECF8CEF8C0FED -:102D3000813A48F48C2F0E948E2A81118DC08C2FED -:102D40000E940C20E3CF80E28C0F883048F4C770DB -:102D500081E001C0880FCA95EAF70E94AF20D6CF64 -:102D60008BE58C0F833078F4C53A29F0C63A31F4FC -:102D700082E890E005C081E890E002C083E890E03E -:102D8000CF910C94381588E58C0F833108F064C01E -:102D9000C83A39F1C93A41F1CA3A49F1CB3A51F14D -:102DA000CC3A59F1CD3A61F1C03B69F1CE3A71F1BB -:102DB000CF3A79F1C13B81F1C23B89F1C33B91F13B -:102DC000C43B99F1C53BA1F1C63BA9F1C73BB1F1A9 -:102DD000C83BB9F1C93BC1F1CA3BC9F58AE292E0EF -:102DE00038C082EE90E035C089EE90E032C08AEEC5 -:102DF00090E02FC085EB90E02CC086EB90E029C0DE -:102E000087EB90E026C08CEC90E023C08DEC90E046 -:102E100020C083E891E01DC08AE891E01AC082E9F1 -:102E200091E017C084E991E014C081E292E011C002 -:102E300083E292E00EC084E292E00BC085E292E071 -:102E400008C086E292E005C087E292E002C080E01E -:102E500090E0CF910C944E15CF910895882309F4FA -:102E60004BC0823859F40E94DC1481FF45C089E3CD -:102E70000E940C200E94E82089E30CC0833871F482 -:102E80000E94DC1480FF38C083E50E940C200E9461 -:102E9000E82083E50E945D200C94E820843859F4F2 -:102EA0000E94DC1482FF28C087E40E940C200E944C -:102EB000E82087E4EFCF9CEF980F913A58F390E227 -:102EC000980F983050F4877091E001C0990F8A955F -:102ED000EAF7892F0E94B520DFCF9BE5980F93304A -:102EE00020F480E090E00C943815885A833120F467 -:102EF00080E090E00C944E150895882321F00E9404 -:102F0000AF200C94E8200895882321F00E94B5207A -:102F10000C94E8200895CF92DF92EF92FF920F93E6 -:102F20001F93CF93DF93CDB7DEB728970FB6F894F2 -:102F3000DEBF0FBECDBF8C0185E0F801DE0111962A -:102F400001900D928A95E1F7F80140813181F2807C -:102F5000258122952F7083819481892B31F03F3F09 -:102F600031F481E04F3F19F403C081E001C080E0FB -:102F700080FDC6C249833A8389819A812F830E944A -:102F8000CA1F9E8388870E94C91F0E949C1E4E8173 -:102F9000E42FE295EF70F0E0E05AFF4F2F81688553 -:102FA0000C94892D842F807F142F1F70882311F09B -:102FB0001295107FFF2059F0112309F456C2812F7A -:102FC00068870E94BF200E94E82068854EC2862F35 -:102FD0000E942E17112309F493C2812F0E94C5204D -:102FE00028960FB6F894DEBF0FBECDBFDF91CF910C -:102FF0001F910F91FF90EF90DF90CF900C94E820FD -:10300000342F307F842F8F70303211F08295807F83 -:10301000662319F0613019F12CC0FF20B1F0222392 -:1030200009F494C1213009F091C128960FB6F894A3 -:10303000DEBF0FBECDBFDF91CF911F910F91FF90EB -:10304000EF90DF90CF900C94CF20222319F0213005 -:1030500009F456C28E830E94D2208E818AC1FF203D -:1030600021F0263008F04CC271C1253008F048C26A -:1030700080C1FF2021F0222309F468C1F6C1222378 -:1030800009F477C106C2242F26952695237030E0D7 -:103090002115310521F021303105C9F031C2FF2061 -:1030A00021F0862F942F937002C080E090E0289644 -:1030B0000FB6F894DEBF0FBECDBFDF91CF911F9149 -:1030C0000F91FF90EF90DF90CF900C943815FF2078 -:1030D00021F0862F942F937002C080E090E0289614 -:1030E0000FB6F894DEBF0FBECDBFDF91CF911F9119 -:1030F0000F91FF90EF90DF90CF900C944E15862F9C -:10310000FF2019F00E948B2402C00E94F32428960D -:103110000FB6F894DEBF0FBECDBFDF91CF911F91E8 -:103120000F91FF90EF90DF90CF900C947825842F33 -:10313000837009F076C0F110E3C1262F2295269501 -:103140002770220F220F862F8F70C82ED12CE12CD2 -:10315000F12C022E04C0CC0CDD1CEE1CFF1C0A94CA -:10316000D2F764FF10C06FE070E080E090E004C030 -:10317000660F771F881F991F2A95D2F76095709563 -:103180008095909503C060E070E0CB01242F2695D8 -:1031900026952370422F50E042305105D1F0433044 -:1031A000510559F16C297D298E299F2941305105FE -:1031B00041F128960FB6F894DEBF0FBECDBFDF9168 -:1031C000CF911F910F91FF90EF90DF90CF900C94D3 -:1031D000C11E6C297D298E299F2928960FB6F89447 -:1031E000DEBF0FBECDBFDF91CF911F910F91FF903A -:1031F000EF90DF90CF900C94DB1E0E94C11EC701A0 -:10320000B60128960FB6F894DEBF0FBECDBFDF9192 -:10321000CF911F910F91FF90EF90DF90CF900C9482 -:10322000A71EFF2019F0842F817001C08695882386 -:1032300009F466C1262F229526952770220F220FAA -:10324000862F8F70C82ED12CE12CF12C022E04C0B9 -:10325000CC0CDD1CEE1CFF1C0A94D2F764FF10C0DE -:103260006FE070E080E090E004C0660F771F881F79 -:10327000991F2A95D2F7609570958095909503C017 -:1032800060E070E0CB01242F269526952370422F15 -:1032900050E042305105D1F04330510559F16C29CD -:1032A0007D298E299F294130510541F128960FB67D -:1032B000F894DEBF0FBECDBFDF91CF911F910F916C -:1032C000FF90EF90DF90CF900C94951F6C297D2993 -:1032D0008E299F2928960FB6F894DEBF0FBECDBF6A -:1032E000DF91CF911F910F91FF90EF90DF90CF90E2 -:1032F0000C94AF1F0E94951FC701B60128960FB608 -:10330000F894DEBF0FBECDBFDF91CF911F910F911B -:10331000FF90EF90DF90CF900C947B1F603FC9F13E -:1033200018F4603E50F49CC0623F09F461C008F498 -:103330004BC0633F09F470C093C0162F1F70842FD9 -:103340008F71FF2099F00E94141F812F28960FB6CD -:10335000F894DEBF0FBECDBFDF91CF911F910F91CB -:10336000FF90EF90DF90CF900C947D170E94351F57 -:10337000812F28960FB6F894DEBF0FBECDBFDF9128 -:10338000CF911F910F91FF90EF90DF90CF900C9411 -:103390008417FF20A9F0253008F0B2C0842F8F7168 -:1033A00028960FB6F894DEBF0FBECDBFDF91CF9148 -:1033B0001F910F91FF90EF90DF90CF900C945A1FC8 -:1033C000263008F09DC0EACFFF20A1F0842F8F7136 -:1033D00028960FB6F894DEBF0FBECDBFDF91CF9118 -:1033E0001F910F91FF90EF90DF90CF900C94141FDE -:1033F000FF2061F3842F8F7128960FB6F894DEBFFB -:103400000FBECDBFDF91CF911F910F91FF90EF9035 -:10341000DF90CF900C94351FFF2091F0842F8F7197 -:1034200028960FB6F894DEBF0FBECDBFDF91CF91C7 -:103430001F910F91FF90EF90DF90CF900C94FF1EA3 -:1034400028960FB6F894DEBF0FBECDBFDF91CF91A7 -:103450001F910F91FF90EF90DF90CF900C94F51E8D -:10346000FF20A1F0222309F4B1CF862F28960FB6B2 -:10347000F894DEBF0FBECDBFDF91CF911F910F91AA -:10348000FF90EF90DF90CF900C946616222309F402 -:10349000B1CF862F28960FB6F894DEBF0FBECDBFF2 -:1034A000DF91CF911F910F91FF90EF90DF90CF9020 -:1034B0000C942E174F70C8010E94F70728960FB67C -:1034C000F894DEBF0FBECDBFDF91CF911F910F915A -:1034D000FF90EF90DF90CF900C941A1E4F70C801B0 -:1034E00028960FB6F894DEBF0FBECDBFDF91CF9107 -:1034F0001F910F91FF90EF90DF90CF900C94B90B3C -:1035000028960FB6F894DEBF0FBECDBFDF91CF91E6 -:103510001F910F91FF90EF90DF90CF9008950E9440 -:10352000CC200E94A1200E94E8200E94A6260E9492 -:10353000782580E090E00E94381580E090E00C94BF -:103540004E150E94BC200C948F1A0E94CA1F292F6E -:1035500022952F7030E02C3031054CF42A303105A3 -:103560006CF4225031092230310590F407C02C3020 -:10357000310551F02F30310539F00AC0803E10F08E -:10358000803F31F481E0089593FB882780F9089506 -:1035900080E00895CF93DF9300D000D01F92CDB785 -:1035A000DEB70F900F900F900F900F90DF91CF919B -:1035B0000895CF93DF9300D000D000D0CDB7DEB711 -:1035C00026960FB6F894DEBF0FBECDBFDF91CF9128 -:1035D00008951F93CF93DF93C091840116E08091EB -:1035E0008501C81799F0D0E01C9FF0011D9FF00DD8 -:1035F0001124EA57FE4F4081518162817381848199 -:1036000095810E94D91A2196C770E9CFDF91CF9199 -:103610001F9108954091B6015091B7016091B80192 -:103620007091B9018091BA019091BB010C94D91AA3 -:10363000CF938091BB0182958F7009F05FC080911C -:10364000B801882309F45AC020918401A091850112 -:103650006091B6017091B7018091B9019091BA0162 -:1036600031E06F3F09F030E0B32FC6E02A1709F4CC -:1036700045C0009721F07F3F21F44B2F03C041E06C -:1036800001C040E030E040FD35C0C29FF001C39F63 -:10369000F00D1124EA57FE4F418174132BC0408175 -:1036A000641328C04281411125C0438154814817C9 -:1036B000590710F441505109481B590B483C51051A -:1036C000C8F48091BB018F7080618093BB0186E05C -:1036D000829FF001839FF00D1124E557FE4F8081FA -:1036E0008F708061808386EB91E00E948B17CF9171 -:1036F0000C94E91A2F5F3F4F2770B8CFCF910895F0 -:10370000CF92DF92EF92FF920F931F93CF93DF93AD -:10371000CDB7DEB762970FB6F894DEBF0FBECDBF50 -:103720008C0185E0F801DE011D9601900D928A95CD -:10373000E1F7D8014C9111965C91119712966C911A -:1037400012971396ED90FC9014977091B601E0914A -:10375000B7012091B9013091BA012115310531F03D -:10376000EF3F31F481E07F3F19F403C081E001C0F5 -:1037700080E0B82FB170CB2E80FD6CC1D090B80125 -:10378000DD2009F4F5C0F091BB01E216F30638F034 -:10379000C701821B930B883C910548F09BC0209584 -:1037A00030952E0D3F1D283C310508F093C08F2F1A -:1037B000807F09F052C0E51314C0741312C0D62ED6 -:1037C00061110FC0FF70F061F093BB010E940A1BF2 -:1037D00086EB91E00E948B178091BB01F8018583F5 -:1037E0006CC1EF2831F05F3F31F481E04F3F19F4B5 -:1037F00003C081E001C080E080FD03C081E0862736 -:1038000001C080E0F82FF170FF2E80FF1CC0809176 -:1038100084012091850136E0821709F428C190E0E7 -:10382000389FF001399FF00D1124EA57FE4F718146 -:10383000571306C07081471303C07281671303C01A -:1038400001968770E9CFD62E662309F436C18091A0 -:10385000BB0181608093BB0153C0E51308C07413A2 -:1038600006C0611104C0D8011596FC93AEC04D8707 -:103870005E878D859E856A8B0E94A51A6A8988233A -:1038800029F1D62E662311F12091BB01822F82955A -:103890008F7090E002970CF460C08091B601909117 -:1038A000B70198878F831986FB86EA862C87CE011D -:1038B000079651C0E51731F14D875E878D859E854E -:1038C0006A8B0E94A51A6A8981112EC0C8010E94C4 -:1038D0008B17A4C08F2F807F69F77E2DF98AE88A25 -:1038E00089890E94CA1A86EB91E00E948B17E6EB49 -:1038F000F1E086E0DF011D928A95E9F70E940A1B3C -:10390000D12CDBC07413D8CF6111D6CFD801159656 -:10391000FC93C8010E948B17E6EBF1E086E0DF0123 -:103920001D928A95E9F7C9C0D62E662379F22091B7 -:10393000BB01822F82958F7090E0029774F0809186 -:10394000B6019091B7019A8389831B82FD82EC8234 -:103950002E83CE0101960E948B1786E0F801A6EB1C -:10396000B1E001900D928A95E1F70E94181B6FC09B -:10397000E216F30628F0C701821B930B9C0104C0DA -:10398000209530952E0D3F1D283C310508F052C082 -:10399000D62E662309F49ACFE5132CC074132AC0DF -:1039A0008091BB0180FD1DC0982F92959F70C9F03A -:1039B000D80115968C9315979F3039F09F5F92959B -:1039C000907F8F70892B15968C93C8010E948B175E -:1039D00086E0F801A6EBB1E001900D928A95E1F73F -:1039E00036C086E0F801A6EBB1E001900D928A9511 -:1039F000E1F763C04D875E878D859E850E94A51A7D -:103A0000882379F086E0F801A6EBB1E001900D92F1 -:103A10008A95E1F70E94181B0E940A1BDD24D394AB -:103A20004CC08091BB0181608093BB01C8010E94A2 -:103A30008B1743C07E2DF98AE88A89890E94CA1AA9 -:103A4000E6EBF1E086E0DF011D928A95E9F70E943E -:103A50000A1B33C0662309F439CF4D875E878D85F5 -:103A60009E850E94A51A882309F430CFCBCF4D87BD -:103A70005E878D859E850E94CA1F292F22952F70F3 -:103A800030E0223031052CF49F7041F0811106C0E6 -:103A90000CC0243031052CF49F7049F4805E8830CE -:103AA00020F0C8010E948B17CF2CDC2C06C0D80157 -:103AB00015969C91907F91F7F8CF8D2D62960FB659 -:103AC000F894DEBF0FBECDBFDF91CF911F910F9154 -:103AD000FF90EF90DF90CF9008951F93CF93DF93E7 -:103AE000CDB7DEB72C970FB6F894DEBF0FBECDBFB3 -:103AF0004F83588769877A878B879C87CE01079683 -:103B00000E94801B8823C1F02F8138858A859B8580 -:103B1000892B31F03F3F11F080E003C02F3FE1F7E8 -:103B200081E0811147C04F81588569857A858B85F1 -:103B30009C850E94D91A3EC086E0FE013796DE01C0 -:103B4000119601900D928A95E1F7FF81E8854A85EB -:103B50005B854115510531F0EF3F31F481E0FF3FC6 -:103B600019F403C081E001C080E080FD23C02091F2 -:103B7000850130E0C9010196877099276091840121 -:103B800070E086179707F1F1F983EA835D834C8330 -:103B900096E0929FD001939FB00D1124AA57BE4F7B -:103BA000FE01319601900D929A95E1F7809385017F -:103BB0000E94E91A16E0809184019091850189178D -:103BC00079F1189FC00111248A579E4F0E94801BD3 -:103BD000882331F1E09184011E9FF0011124EA57FE -:103BE000FE4F4081518162817381848195810E9461 -:103BF000D91A8091840190E001968770992780936B -:103C00008401D9CF0E94A11A1092850110928401DB -:103C1000E6EBF1E086E0DF011D928A95E9F7CACF75 -:103C20002C960FB6F894DEBF0FBECDBFDF91CF91BB -:103C30001F910895EF92FF920F931F93CF93DF93FD -:103C40009C01009709F471C0F12CEE24E394E90182 -:103C50002196F9018491843740F4843008F056C0ED -:103C6000813081F0823021F160C0853709F449C08C -:103C7000C0F19CE7980F903708F057C08F770E94EB -:103C80002E1746C089010E5F1F4FFE01849190E2FE -:103C9000980F983050F48770FE2D01C0FF0F8A9561 -:103CA000EAF78F2F0E94BF2015C00E94661614C02D -:103CB00089010E5F1F4FFE01849190E2980F9830AA -:103CC00068F48770FE2D01C0FF0F8A95EAF78F2FE9 -:103CD0000E94C5200E94E820E8011AC00E942E1709 -:103CE000FBCF2E5F3F4FFE01C491CC2341F08FE903 -:103CF0009FE00197F1F700C00000C150F6CFE90145 -:103D000007C0FE01F490E901229602C00E946616E7 -:103D10008F2D882341F0EFE9FFE03197F1F700C0E4 -:103D200000008150F6CF9E0192CFDF91CF911F917D -:103D30000F91FF90EF90089508956093C0017093E4 -:103D4000C1018093C2019093C3010C948F1A0F9309 -:103D50001F930091C0011091C1012091C2013091C7 -:103D6000C301062B172B282B392B0093C00110936E -:103D7000C1012093C2013093C3011F910F910C9494 -:103D80008F1A0F931F930091C0011091C1012091D0 -:103D9000C2013091C301062317232823392300933E -:103DA000C0011093C1012093C2013093C3011F9140 -:103DB0000F910C948F1A0F931F930091C0011091D3 -:103DC000C1012091C2013091C3010627172728277E -:103DD00039270093C0011093C1012093C201309391 -:103DE000C3011F910F910C948F1A1092BC01109275 -:103DF000BD011092BE011092BF010C948F1A41E0D8 -:103E000050E060E070E004C0440F551F661F771F4C -:103E10008A95D2F74093BC015093BD016093BE01D7 -:103E20007093BF010C948F1A41E050E060E070E0A5 -:103E300004C0440F551F661F771F8A95D2F78091E3 -:103E4000BC019091BD01A091BE01B091BF01842B36 -:103E5000952BA62BB72B8093BC019093BD01A0930B -:103E6000BE01B093BF010C948F1A41E050E060E0B6 -:103E700070E004C0440F551F661F771F8A95D2F764 -:103E800040955095609570958091BC019091BD01D1 -:103E9000A091BE01B091BF0184239523A623B7232F -:103EA0008093BC019093BD01A093BE01B093BF016C -:103EB0000C948F1A41E050E060E070E004C0440FC1 -:103EC000551F661F771F8A95D2F78091BC0190918C -:103ED000BD01A091BE01B091BF0184279527A627FF -:103EE000B7278093BC019093BD01A093BE01B0930E -:103EF000BF010C948F1A0F931F930091BC01109176 -:103F0000BD012091BE013091BF01062B172B282B3C -:103F1000392B0093BC011093BD012093BE01309357 -:103F2000BF011F910F910C948F1A0F931F93009153 -:103F3000BC011091BD012091BE013091BF0106234B -:103F40001723282339230093BC011093BD0120932C -:103F5000BE013093BF011F910F910C948F1A0F93E4 -:103F60001F930091BC011091BD012091BE013091C1 -:103F7000BF0106271727282739270093BC01109374 -:103F8000BD012093BE013093BF011F910F910C948E -:103F90008F1A0895CF92DF92EF92FF920F931F93A3 -:103FA000CF93DF93EC01C090C001D090C101E090AD -:103FB000C201F090C3018091BC019091BD01A0911C -:103FC000BE01B091BF01C82AD92AEA2AFB2A0FE113 -:103FD00010E0B701A601002E04C0769567955795AD -:103FE00047950A94D2F740FF07C0BE01802F0E9478 -:103FF000DC0B8130910539F40150110950F7BE01F5 -:1040000080E00E94DC0BDF91CF911F910F91FF9018 -:10401000EF90DF90CF90089590910C01992361F17A -:1040200090910D01992341F1982F9695969596952B -:104030009F3088F4E0910E01F0910F01E90FF11D1E -:10404000877021E030E001C0220F8A95EAF7818174 -:10405000822B818308959091D70190FF2DC01F92EC -:104060008F9387ED95E09F938F930E94EE070F90BB -:104070000F900F900F90089540910E0150910F01F5 -:1040800020E030E09FEFFA01E20FF31F6281681732 -:1040900099F09F3F19F4611101C0922F2F5F3F4F9C -:1040A0002E30310581F79F3F39F0FA01E90FF11DFC -:1040B00097FDFA9582830895089590910C019923B4 -:1040C00069F190910D01992349F1982F9695969554 -:1040D00096959F3090F4E0910E01F0910F01E90F59 -:1040E000F11D877021E030E001C0220F8A95EAF7C8 -:1040F000209581812823218308959091D70190FFF5 -:104100001FC01F928F9389EB95E09F938F930E941E -:10411000EE070F900F900F900F90089540910E01B1 -:1041200050910F0120E030E0FA01E20FF31F92817D -:10413000981301C012822F5F3F4F2E303105A1F737 -:10414000089581E090E0E0910E01F0910F01E80FF9 -:10415000F91F1082019680319105A9F70895909179 -:10416000D601982B9093D601089580959091D60111 -:1041700098239093D60108951092D60108959091B6 -:10418000D501982B9093D501089580959091D501F4 -:1041900098239093D50108951092D50108958093A6 -:1041A000C40108951092C401089540910E015091E8 -:1041B0000F0120E030E080E0FA01E20FF31F91816F -:1041C00091118F5F2F5F3F4F2F303105A9F7089571 -:1041D000E0910E01F0910F018091D6018083E09172 -:1041E0000E01F0910F0180819091D501892B808380 -:1041F0009091C401992361F0E0910E01F0910F01BB -:104200008081892B80830E94D52081111092C40166 -:1042100080910E0190910F010C94E81490933B0152 -:1042200080933A010895CF92DF92EF92FF920F931D -:104230001F936C01EE24FF24C114D104E104F104A6 -:1042400021F46B017C0180E001C080E133272F2D38 -:104250001E2D0D2D011511052105310519F0885F61 -:104260006801790197018601A4E036952795179595 -:104270000795AA95D1F7011511052105310519F00A -:104280008C5F6801790197018601F2E036952795E8 -:1042900017950795FA95D1F70115110521053105F7 -:1042A00019F08E5F68017901B701A60176956795CF -:1042B00057954795452B462B472B09F08F5F1F914C -:1042C0000F91FF90EF90DF90CF9008958295982FF7 -:1042D0009C7C96959695837344E0849F900111246D -:1042E000922B892F8A7A86959575990F892B089537 -:1042F0001F93CF93DF931F92CDB7DEB799830E94B0 -:104300006621182F9981892F0E946621212F30E084 -:10431000322F2227A901482BCA010F90DF91CF919C -:104320001F9108958091F001843009F11092D80115 -:1043300020E488E190E00FB6F894A895809360009F -:104340000FBE2093600083B7817F846083BF83B7F3 -:10435000816083BF7894889583B78E7F83BF88E11F -:104360000FB6F89480936000109260000FBE08951D -:1043700008950895CF930E94B8210E9482090E9457 -:10438000B921C0E08C2F0E94AD0A811105C0CF5F1A -:10439000CE30C1F780E001C081E0CF9108950C9448 -:1043A000A11A82E084BD93E095BD9AEF97BD8093FA -:1043B0006E0008952FB7F8948091D9019091DA0199 -:1043C000A091DB01B091DC012FBF0895CF92DF9265 -:1043D000EF92FF920F931F932FB7F8944091D9015A -:1043E0005091DA016091DB017091DC012FBF6A010D -:1043F0007B01EE24FF248C0120E030E0C016D106C2 -:10440000E206F30610F441505109481B590BCA014A -:104410001F910F91FF90EF90DF90CF9008951F9222 -:104420000F920FB60F9211248F939F93AF93BF9368 -:104430008091D9019091DA01A091DB01B091DC016A -:104440000196A11DB11D8093D9019093DA01A0932B -:10445000DB01B093DC01BF91AF919F918F910F90E1 -:104460000FBE0F901F9018950E94E311F8942FEF44 -:1044700087EA91E6215080409040E1F700C00000BB -:1044800087E090EBDC018093F9019093FA01A0930F -:10449000FB01B093FC012CE088E190E00FB6F894AA -:1044A000A895809360000FBE20936000FFCFEF922D -:1044B000FF920F931F93CF93DF93E82EF12C8F2D54 -:1044C0000E94AD0AC0E0D0E0082F10E098010C2E49 -:1044D00002C0359527950A94E2F720FD05C0219684 -:1044E000C630D10599F709C06C2F7F2D80E00E945E -:1044F000BA0BE812F4CF81E005C0F3948EE0F81215 -:10450000DECF80E0DF91CF911F910F91FF90EF9070 -:104510000895CF93C82F8CE20E945722882321F060 -:104520008C2FCF910C94572280E0CF910895CF9398 -:104530000E94E423811102C00E94CA238CEF95E0FF -:104540000E945507C5E6C15049F00E9482098FE3D9 -:104550009CE90197F1F700C00000F5CF85EF95E0E9 -:104560000E94550789E20E948922811111C18AE2C5 -:104570000E94892281110E94CA2385E00E9489221B -:1045800081110E9434220E94EF238093D70187E09B -:104590000E948922882399F18BE10E948922882335 -:1045A00051F09091D70191FB882780F921E0822773 -:1045B00080FB91F922C08EE00E948922882351F06D -:1045C0009091D70192FB882780F921E0822780FB18 -:1045D00092F913C080E10E9489229091D70188232B -:1045E00041F093FB882780F921E0822780FB93F933 -:1045F00004C0892F809580FB90F99093D70180911A -:10460000D7010E94F3230E9401248093EA0180EEE7 -:104610000E948922882341F08091EA01982F909589 -:1046200090FB80F98093EA0189E30E948922882324 -:1046300059F09091EA0191FB882780F921E08227C7 -:1046400080FB91F99093EA0182EE0E9489228823EF -:1046500059F09091EA0192FB882780F921E08227A6 -:1046600080FB92F99093EA0186EE0E9489228823CA -:1046700059F09091EA0193FB882780F921E0822785 -:1046800080FB93F99093EA0183EE0E9489228823AC -:1046900059F09091EA0194FB882780F921E0822764 -:1046A00080FB94F99093EA0185E30E948922882394 -:1046B00059F09091EA0195FB882780F921E0822743 -:1046C00080FB95F99093EA0181E30E948922882377 -:1046D00059F09091EA0196FB882780F921E0822722 -:1046E00080FB96F99093EA0181E10E948922882358 -:1046F00059F09091EA0197FB882780F921E0822701 -:1047000080FB97F99093EA018091EA010E940524C9 -:104710008091EA0187FB882780F980930D0187E269 -:104720000E948922C82F8EE10E9489228111C260D5 -:104730008FE10E9489228111C46080E20E94892257 -:104740008111C86081E20E9489228111C06182E2E8 -:104750000E9489228111C06283E20E948922811114 -:10476000C06484E20E948922882311F0C06802C0DC -:10477000CC2329F08C2F0E94FC236C2F03C00E94B5 -:10478000F823682F70E080E090E0CF910C949D1E9C -:10479000CF9108956DEE7EEF80E090E00E94BF2DF6 -:1047A00060E082E090E00E94B12D60E083E090E064 -:1047B0000E94B12D60E084E090E00E94B12D60E0A5 -:1047C00085E090E00C94B12D80E090E00E94AB2D4C -:1047D00021E08D3E9E4F09F020E0822F089582E077 -:1047E00090E00C94A32D682F82E090E00C94B12D02 -:1047F00083E090E00C94A32D682F83E090E00C946C -:10480000B12D84E090E00C94A32D682F84E090E01B -:104810000C94B12D8091DF0180FF0BC060911301DA -:1048200085E0689FB001112475956795759567952A -:104830002AC081FF09C06091130185E0689FB00123 -:104840001124759567951FC082FF07C06091130101 -:1048500085E0689FB001112416C04091E001442317 -:10486000C9F060911201461788F72091130185E085 -:10487000289F90011124429FC001439F900D112455 -:1048800070E00E94752D6038710540F46115710566 -:1048900039F002C065E070E0862F08958FE7089533 -:1048A00081E008958091DF0180FF08C060911101CF -:1048B00070E0759567957595679521C081FF06C075 -:1048C0006091110170E07595679519C082FF04C071 -:1048D0006091110170E010C08091E0018823C1F067 -:1048E000609110018617A0F790911101989FC00167 -:1048F000112470E00E94752D6038710528F461154F -:10490000710521F0862F08958FE7089581E00895BD -:1049100061E070E0F4CF803F21F40E940A24819589 -:1049200004C0813F29F40E940A248093E301089582 -:10493000823F21F40E940A24819504C0833F29F418 -:104940000E940A248093E2010895893F19F40E948D -:10495000522405C08A3F31F40E94522481958093ED -:10496000E40108958B3F21F40E945224819504C0F4 -:104970008C3F29F40E9452248093E5010895843FDE -:1049800021F48091E101816017C0853F21F480917D -:10499000E101826011C0863F21F48091E1018460D1 -:1049A0000BC0873F21F48091E101886005C0883FFA -:1049B00031F48091E10180618093E10108958D3FA0 -:1049C00021F48091DF0181600BC08E3F21F4809142 -:1049D000DF01826005C08F3F29F48091DF01846090 -:1049E0008093DF010895803F39F48091E30187FFD0 -:1049F0006CC01092E30169C0813F29F48091E3010A -:104A00001816BCF362C09091E201823F29F497FF2F -:104A10005CC01092E20159C0833F19F41916CCF31F -:104A200054C0893F41F48091E40118160CF04DC048 -:104A30001092E4014AC08A3F29F48091E40187FF83 -:104A400044C0F6CF8B3F39F48091E50187FF3DC02C -:104A50001092E5013AC08C3F29F48091E5011816C7 -:104A6000BCF333C0843F21F48091E1018E7F17C0F5 -:104A7000853F21F48091E1018D7F11C0863F21F4B3 -:104A80008091E1018B7F0BC0873F21F48091E10190 -:104A9000877F05C0883F31F48091E1018F7E80934C -:104AA000E10113C08D3F21F48091DF018E7F0BC0A7 -:104AB0008E3F21F48091DF018D7F05C08F3F29F467 -:104AC0008091DF018B7F8093DF018091E201811172 -:104AD0000EC08091E30181110AC08091E40181112F -:104AE00006C08091E501811102C01092E001089595 -:104AF0008091D70183FF7EC088E396E00E9455072E -:104B00008091E1011F928F9383E396E09F938F93AF -:104B10000E94EE0781E396E00E9455072091E20192 -:104B2000822F992787FD90959F932F938EE296E091 -:104B30009F938F930E94EE078CE296E00E945507A8 -:104B40002091E301822F992787FD90959F932F93C2 -:104B500089E296E09F938F930E94EE0787E296E0AA -:104B60000E9455072091E401822F992787FD909597 -:104B70009F932F9384E296E09F938F930E94EE077A -:104B800082E296E00E9455072091E501822F992745 -:104B900087FD90959F932F938FE196E09F938F933E -:104BA0000E94EE078CE196E00E9455078091E0019B -:104BB0001F928F9389E196E09F938F930E94EE0757 -:104BC00087E196E00E9455078091DF011F928F9345 -:104BD00084E196E09F938F930E94EE0781E196E037 -:104BE0000E9455078DB79EB74C960FB6F8949EBF9E -:104BF0000FBE8DBF81EE91E00E942D150E94DA213B -:104C00009093DE018093DD0108951F93CF93DF938E -:104C10008091DD019091DE010E94E6214091E0014A -:104C2000442321F02091140130E006C020911501A9 -:104C30005AE0259F900111248217930708F482C03F -:104C40008091E2011091E301D091E401C091E5016E -:104C5000811107C0111105C0D11103C0CC2309F483 -:104C600071C04F3F19F04F5F4093E001181624F4D4 -:104C70000E940A248093E2018091E20187FF05C02F -:104C80000E940A2481958093E201111624F40E9467 -:104C90000A248093E3018091E30187FF05C00E940D -:104CA0000A2481958093E3016091E201662339F142 -:104CB0001091E301112319F1772767FD7095872F74 -:104CC000972F0E947A2C23E333E343E35FE30E94B0 -:104CD000DE2C0E94472C6093E201612F772767FD4D -:104CE0007095872F972F0E947A2C23E333E343E3B9 -:104CF0005FE30E94DE2C0E94472C6093E3011D16A7 -:104D000024F40E9452248093E4018091E40187FFFF -:104D100005C00E94522481958093E4011C1624F45E -:104D20000E9452248093E5018091E50187FF05C030 -:104D30000E94522481958093E501DF91CF911F91CC -:104D40000C947825DF91CF911F910895E1EEF1E069 -:104D500085E0DF011D928A95E9F71092E00110923B -:104D6000DF0108958BE598E00E9455071F9281E0CE -:104D70008F931F9285E08F938DE098E09F938F93A0 -:104D80000E94EE070F900F900F900F900F900F90D2 -:104D900008958330E9F128F4813061F0823009F11F -:104DA0000895853009F462C008F449C0863009F4DA -:104DB00074C0089520911501862F90E0820F911DF7 -:104DC0008F3F910520F4620F6093150103C08FEFB0 -:104DD00080931501809115011F928F9386E497E0CF -:104DE00072C020911401862F90E0820F911D8F3F99 -:104DF000910520F4620F6093140103C08FEF80933C -:104E00001401809114011F928F9384E397E05BC09B -:104E100020911301862F90E0820F911D8F3F910505 -:104E200020F4620F6093130103C08FEF809313018E -:104E3000809113011F928F9381E297E044C02091EB -:104E40001201862F90E0820F911D8F3F910520F473 -:104E5000620F6093120103C08FEF80931201809163 -:104E600012011F928F938CE097E02DC020911101C9 -:104E7000862F90E0820F911D8F3F910520F4620FE5 -:104E80006093110103C08FEF809311018091110194 -:104E90001F928F9383EF96E016C020911001862F0A -:104EA00090E0820F911D8F3F910520F4620F609377 -:104EB000100103C08FEF80931001809110011F92A9 -:104EC0008F9388ED96E09F938F930E94EE070F904B -:104ED0000F900F900F900895833081F128F4813066 -:104EE00059F08230D1F00895853009F449C0B8F105 -:104EF000863009F456C0089580911501681720F492 -:104F0000861B8093150102C0109215018091150136 -:104F10001F928F9389EC96E054C08091140168171A -:104F200020F4861B8093140102C01092140180911A -:104F300014011F928F9387EB96E043C08091130179 -:104F4000681720F4861B8093130102C0109213018E -:104F5000809113011F928F9384EA96E032C0809172 -:104F60001201681720F4861B8093120102C0109270 -:104F70001201809112011F928F938FE896E021C059 -:104F800080911101681720F4861B8093110102C0E3 -:104F900010921101809111011F928F9386E796E084 -:104FA00010C080911001681720F4861B80931001B7 -:104FB00002C010921001809110011F928F938BE517 -:104FC00096E09F938F930E94EE070F900F900F90A3 -:104FD0000F900895CF93C82F1F928F9320E639E04A -:104FE0003F932F930E94EE0761E070E080E090E035 -:104FF00004C0660F771F881F991FCA95D2F70E94B9 -:105000009D1E0F900F900F900F90CF910C94A11AAE -:10501000CF938D3109F465C0B0F58E3009F4CBC162 -:1050200000F5873009F49BC1A8F4863009F06AC204 -:105030008091D701817F8E7F8093D70185E699E0AB -:105040000E94550787EA9DE00E94550781E0809302 -:10505000E70180C1883009F44FC08B3009F47CC16E -:1050600051C2863109F4EDC138F4803109F4B6C17A -:10507000813109F42DC246C2893109F4CBC18B318B -:1050800009F486C13FC2853309F434C248F487323B -:1050900009F430C208F430C2893209F42BC232C29A -:1050A000833438F48A3308F029C2883309F454C1B0 -:1050B00029C2833409F41EC2883409F023C20E9435 -:1050C000A11A86E99DE00E9455079FEF23ED80E33A -:1050D000915020408040E1F700C000000E9434223F -:1050E00039C186EB9DE00E9455070E94012C0E9469 -:1050F000DC140E941A0D2EC18BEA9DE00E94550718 -:1051000086E79BE00E9455070E94F8231F928F9329 -:1051100083E79BE09F938F930E94EE0781E79BE0DC -:105120000E9455070E94EF23C82F8EE59BE00E9446 -:1051300055071F92CF9329E53BE03F932F930E94A1 -:10514000EE0787E59BE00E9455078DE49BE00E94F7 -:1051500055078C2F81701F928F932AE43BE03F9379 -:105160002F930E94EE0788E49BE00E9455078EE390 -:105170009BE00E945507C1FB882780F91F928F93FF -:105180002BE33BE03F932F930E94EE0789E39BE0E4 -:105190000E9455078DE29BE00E945507C2FB8827BD -:1051A00080F91F928F932AE23BE03F932F930E9456 -:1051B000EE0788E29BE00E9455078FE19BE00E948A -:1051C0005507C3FBCC27C0F91F92CF938CE19BE01E -:1051D0009F938F930E94EE078AE19BE00E94550700 -:1051E0000E940124C82F86E09BE00E9455071F9271 -:1051F000CF9321E03BE03F932F930E94EE078FEF88 -:105200009AE00E94550786EE9AE00E9455078C2F7F -:1052100081701F928F9323EE3AE03F932F930E9469 -:10522000EE078DB79EB780960FB6F8949EBF0FBE5F -:105230008DBF81EE9AE00E9455078AEC9AE00E94A9 -:105240005507C1FB882780F91F928F9327EC3AE01E -:105250003F932F930E94EE0785EC9AE00E9455073A -:1052600083EB9AE00E945507C2FB882780F91F92C2 -:105270008F9320EB3AE03F932F930E94EE078EEA44 -:105280009AE00E9455078CE99AE00E945507C3FBFB -:10529000882780F91F928F9329E93AE03F932F9353 -:1052A0000E94EE0787E99AE00E9455078DE89AE090 -:1052B0000E945507C4FB882780F91F928F932AE824 -:1052C0003AE03F932F930E94EE0788E89AE00E940D -:1052D000550786E79AE00E945507C5FB882780F9A5 -:1052E0001F928F9323E73AE03F932F930E94EE079C -:1052F00081E79AE00E94550785E59AE00E945507EC -:10530000C6FB882780F91F928F9322E53AE03F93EE -:105310002F930E94EE0780E59AE00E94550788E4EB -:105320009AE00E945507C7FBCC27C0F91F92CF9384 -:1053300085E49AE09F938F930E94EE0783E49AE0BE -:105340000E9455078DB79EB74C960FB6F8949EBF36 -:105350000FBE8DBFC1E0DBC08CE899E058C08091E2 -:10536000D701C82FC17080FF09C089E89DE00E9465 -:1053700055078091D701817F8E7F44C08DE79DE0E6 -:105380000E9455078091D70181608093D701E2CFB9 -:105390008091D70181FBCC27C0F991E0C927C0FBE0 -:1053A00081F98093D701CC2319F080E79DE025C0D7 -:1053B00082E69DE02CC08091D70182FBCC27C0F90A -:1053C00091E0C927C0FB82F98093D701CC2319F063 -:1053D00083E59DE012C083E49DE019C08091D70170 -:1053E00083FBCC27C0F991E0C927C0FB83F98093E8 -:1053F000D701CC2351F087E39DE00E9455078091AF -:10540000D70181608093D70182C08AE29DE00E942B -:105410005507A0CF8BE19DE00E9455078FEE9CE0E1 -:105420000E94550782EB9CE00E94550785E89CE0AE -:105430000E94550781E49CE00E94550786E19CE0AC -:10544000E6CF88E09CE00E9455070E94DC141F9282 -:105450008F938EEE9BE09F938F930E94EE07809137 -:105460000C011F928F9387ED9BE09F938F930E9477 -:10547000EE0780916E011F928F9384EC9BE09F93C7 -:105480008F930E94EE0780910D011F928F9381EB05 -:105490009BE09F938F930E94EE078091D90190919A -:1054A000DA01A091DB01B091DC01BF93AF939F9330 -:1054B0008F938DE99BE09F938F930E94EE078DB7AA -:1054C0009EB746960FB6F8949EBF0FBE8DBF42CFD3 -:1054D0000E94A11AC0910D0181E0C827C0930D015F -:1054E000CC2329F083E99BE00E94550710C088E88F -:1054F0009BE08DCF80E003C08D5101C089530E9495 -:10550000EA2728CF86E89BE00E945507C0E08C2F51 -:10551000CF91089580E0089580E00895CF93C82F3B -:105520008091E701813081F020F0823009F44CC095 -:1055300042C1A0910E01B0910F018C91813169F0AF -:10554000823209F03AC109C0A0910E01B0910F0159 -:105550008C91813111F0823249F48C2F0E948A2A79 -:1055600081112FC08C2F0E9408282CC08C2F0E94E4 -:105570008C2A811126C0C431E1F070F4CB3081F067 -:10558000C031D1F40E94B22688E599E00E94550707 -:1055900082E08093E70115C0C93259F0C83361F445 -:1055A00085E699E00E9455078CE599E00E94550731 -:1055B00008C01092E70103C186E599E00E945507F3 -:1055C000FEC081E08170FDC0C43220F5CE3108F00C -:1055D000C0C0CB3099F1C8F4C73009F0D2C08AE01E -:1055E0008093150194E19093140193E0909313013B -:1055F0008093120188E08093110188E2809310016A -:105600008CEF97E00E945507BFC0C33149F1C43108 -:10561000C1F0B7C0CB3409F4A9C028F4C93289F06D -:10562000C83361F0AEC0C13509F49EC0C23509F47B -:1056300099C0CE3409F0A5C06AE09EC00E94B2268F -:10564000A3C08091E601882319F01092E6019CC066 -:1056500089E098E00E94550781E08093E701B1C09E -:1056600083EE97E00E94550781ED97E00E94550771 -:10567000809115011F928F938EEC97E09F938F93EB -:105680000E94EE078CEC97E00E9455078AEB97E0AA -:105690000E945507809114011F928F9387EB97E02A -:1056A0009F938F930E94EE0785EB97E00E9455072A -:1056B00086EA97E00E945507809113011F928F930D -:1056C00083EA97E09F938F930E94EE0781EA97E029 -:1056D0000E94550780E997E00E94550780911201CA -:1056E0001F928F938DE897E09F938F930E94EE0710 -:1056F0008BE897E00E94550786E797E00E945507E0 -:10570000809111011F928F9383E797E09F938F936E -:105710000E94EE0781E797E00E9455078AE597E02F -:105720000E945507809110011F928F9387E597E0A3 -:105730009F938F930E94EE0785E597E00E9455079F -:105740008DB79EB748960FB6F8949EBF0FBE8DBF1B -:105750001BC0CE51EC2FF0E0E15DFE4F80818093C5 -:10576000E60112C061E003C061E006C06AE080911A -:10577000E6010E94C92608C08091E6010E946C27BC -:1057800003C08AEF97E013C08091E601882369F097 -:105790001F928F9384EF97E09F938F930E94EE0761 -:1057A0000F900F900F900F9004C081EF97E00E9430 -:1057B000550781E006C01092E70180E002C080E05A -:1057C00001CFCF910895E1E8F0E080818860808387 -:1057D0008081816080838FB7F89493E090938900F3 -:1057E00090ED909388008FBF0895EFE6F0E0808100 -:1057F000826080830895EFE6F0E080818D7F808372 -:105800000895EFE6F0E0808192E089278083089593 -:105810001F920F920FB60F9211242F933F934F9325 -:105820005F936F937F938F939F93AF93BF93EF9308 -:10583000FF938091E8019091E90101969093E9012D -:105840008093E801811103C082E00E941A0DE0916B -:10585000E901E695E695F0E0EA53F24FE491809194 -:10586000E8018E1303C080E00E941A0DFF91EF91B2 -:10587000BF91AF919F918F917F916F915F914F9168 -:105880003F912F910F900FBE0F901F90189504D04D -:105890006894B1118DC0089570D088F09F5790F032 -:1058A000B92F9927B751A0F0D1F0660F771F881F45 -:1058B000991F1AF0BA95C9F712C0B13081F077D0AC -:1058C000B1E0089574C0672F782F8827B85F39F04A -:1058D000B93FCCF3869577956795B395D9F73EF4A4 -:1058E00090958095709561957F4F8F4F9F4F08954C -:1058F000E89409C097FB3EF490958095709561956A -:105900007F4F8F4F9F4F9923A9F0F92F96E9BB271F -:105910009395F695879577956795B795F111F8CF9B -:10592000FAF4BB0F11F460FF1BC06F5F7F4F8F4F06 -:105930009F4F16C0882311F096E911C0772321F0FC -:105940009EE8872F762F05C0662371F096E8862F94 -:1059500070E060E02AF09A95660F771F881FDAF7EB -:10596000880F9695879597F9089557FD9058440F9D -:10597000551F59F05F3F71F04795880F97FB991FAE -:1059800061F09F3F79F0879508951216130614066B -:10599000551FF2CF4695F1DF08C0161617061806F8 -:1059A000991FF1CF86957105610508940895E894D3 -:1059B000BB2766277727CB0197F908950BD078C0CE -:1059C00069D028F06ED018F0952309F05AC05FC056 -:1059D0001124EECFCADFA0F3959FD1F3950F50E0CD -:1059E000551F629FF001729FBB27F00DB11D639F91 -:1059F000AA27F00DB11DAA1F649F6627B00DA11D37 -:105A0000661F829F2227B00DA11D621F739FB00DDC -:105A1000A11D621F839FA00D611D221F749F33274C -:105A2000A00D611D231F849F600D211D822F762FE5 -:105A30006A2F11249F5750408AF0E1F088234AF0E2 -:105A4000EE0FFF1FBB1F661F771F881F915050402E -:105A5000A9F79E3F510570F014C0AACF5F3FECF349 -:105A6000983EDCF3869577956795B795F795E7951A -:105A70009F5FC1F7FE2B880F911D9695879597F92B -:105A8000089597F99F6780E870E060E008959FEFC0 -:105A900080EC089500240A941616170618060906C5 -:105AA000089500240A941216130614060506089594 -:105AB000092E0394000C11F4882352F0BB0F40F41C -:105AC000BF2B11F460FF04C06F5F7F4F8F4F9F4F5C -:105AD0000895991B79E004C0991F961708F0961B4A -:105AE000881F7A95C9F78095089597FB072E16F4BD -:105AF000009407D077FD09D00E948F2D07FC05D0B8 -:105B00003EF4909581959F4F0895709561957F4FD4 -:105B10000895EE0FFF1F0590F491E02D0994AA1B44 -:105B2000BB1B51E107C0AA1FBB1FA617B70710F088 -:105B3000A61BB70B881F991F5A95A9F780959095BA -:105B4000BC01CD010895F999FECF92BD81BDF89AAF -:105B5000992780B50895A8E1B0E042E050E00C94A8 -:105B6000C62D262FF999FECF1FBA92BD81BD20BD4B -:105B70000FB6F894FA9AF99A0FBE019608950E940A -:105B8000B12D272F0C94B22DDC01CB01FC01F9992A -:105B9000FECF06C0F2BDE1BDF89A319600B40D9279 -:0C5BA00041505040B8F70895F894FFCF32 -:105BAC0020021B0D0C0EE90DB50D820D0101C50176 -:105BBC0028080A03140A3F4D3620394605F904C358 -:105BCC0004A3046A04DD03F6030F0428044804014B -:0A5BDC000203040506070809000093 -:00000001FF diff --git a/keyboard/ergodox_ez/keymaps/keymap_default.png b/keyboard/ergodox_ez/keymaps/keymap_default.png deleted file mode 100644 index f0c5840153..0000000000 Binary files a/keyboard/ergodox_ez/keymaps/keymap_default.png and /dev/null differ diff --git a/keyboard/ergodox_ez/keymaps/keymap_default_highres.png b/keyboard/ergodox_ez/keymaps/keymap_default_highres.png deleted file mode 100644 index 169d31367c..0000000000 Binary files a/keyboard/ergodox_ez/keymaps/keymap_default_highres.png and /dev/null differ diff --git a/keyboard/ergodox_ez/keymaps/keymap_default_osx.hex b/keyboard/ergodox_ez/keymaps/keymap_default_osx.hex deleted file mode 100644 index 3a1cc4f79e..0000000000 --- a/keyboard/ergodox_ez/keymaps/keymap_default_osx.hex +++ /dev/null @@ -1,1467 +0,0 @@ -:100000000C9403070C9447070C9447070C9447077C -:100010000C9447070C9447070C9447070C94470728 -:100020000C9447070C9447070C9432120C94041359 -:100030000C9447070C9447070C9447070C94470708 -:100040000C9447070C94DC2B0C9447070C9447073F -:100050000C9447070C94E3210C9447070C94470732 -:100060000C9447070C9447070C9447070C944707D8 -:100070000C9447070C9447070C9447070C944707C8 -:100080000C9447070C9447070C9447070C944707B8 -:100090000C9447070C9447070C9447070C944707A8 -:1000A0000C9447070C9447070C94470769138B136C -:1000B00076148B137614CD13F0137614451458145C -:1000C000A617A617D417D41717185318541A541A6A -:1000D0006B18541A621962192E1A541A541A421AB9 -:1000E0000000F0A12E004C002A00E1003581000044 -:1000F0001E00140004001D7134004D001F001A0082 -:1001000016001B00E1042A0020000800070006007A -:1001100050002C0021001500090019004F004A0072 -:10012000220017000A000500000065745000015409 -:100130000000007F0000E3004F0001540000007742 -:100140000000E20023001C000B00110000002971D8 -:10015000240018000D00100052004B0025000C0078 -:100160000E00360051002800260012000F00370054 -:100170002F002B00270013003382387130004E000F -:100180002D003100E300E500C10000000100010086 -:1001900001000100010000003A001E0220022202BC -:1001A000010001003B001F022102230201000100A7 -:1001B0003C002F0226022F00010001003D0030020A -:1001C00027023000010001003E00310235003502F7 -:1001D000000001000100010000000100000001001A -:1001E0000100010000000100000001003F0052007A -:1001F00051002402000001004000240021001E00E4 -:10020000010001004100250022001F00370001000D -:1002100042002600230020002700010043002502A1 -:100220002E0231002E0001004400450001000100B3 -:1002300001000000010001000100010001000000B8 -:1002400001000100010001000100010001000100A6 -:10025000F2000100010001000100F000F1000100C6 -:10026000F400010001000100F3000100F5000100AD -:100270000100010001000100000001000100010077 -:100280000000010000000100010001000000010069 -:100290000000010001000100010001000000010058 -:1002A0000100010001000100A9000100010001009E -:1002B0000100AC00AA00B600010001000100AB0083 -:1002C000A80001000100010001000100010001007F -:1002D00001000100AE000100010000000A0025300D -:1002E000313662003A200025303258000A722F63FE -:1002F0002030313233343536373839414243444582 -:10030000460A000A002530325800626F756E636538 -:10031000213A20006C6566742073696465206174FD -:100320007461636865640A006C656674207369644F -:1003300065206E6F7420726573706F6E64696E678E -:100340000A00747279696E6720746F207265736534 -:1003500074206D637032333031380A000A444542EC -:1003600055473A20656E61626C65642E0A005B73C6 -:100370005D004B6579626F617264207374617274A1 -:100380002E0A005B575D005B535D005B525D005BB6 -:10039000445D005B435D0016034500720067006F1B -:1003A0000044006F007800200045005A000000164D -:1003B000034500720067006F0044006F0078002062 -:1003C0000045005A0000000403090409028D0005DD -:1003D0000100A0FA09040000010301010009211134 -:1003E000010001223F000705810308000A090401FA -:1003F000000103010200092111010001224D000743 -:1004000005820308000A0904020001030000000934 -:1004100021110100012236000705830308000A09A3 -:100420000403000203000000092111010001222041 -:1004300000070584032000010705040320000109CB -:100440000404000103000000092111010001223908 -:1004500000070585031000011201100100000008CB -:10046000EDFE071301000102000105010906A101CB -:10047000050719E029E71500250195087501810296 -:100480000508190129059505750191029501750366 -:100490009101050719002977150025019578750147 -:1004A0008102C00631FF0974A1010975150025FFFD -:1004B0009520750881020976150025FF952075089D -:1004C0009102C005010980A101850216010026B72D -:1004D000001A01002AB700751095018100C0050CB3 -:1004E0000901A1018503160100269C021A01002AB8 -:1004F0009C02751095018100C005010902A1010946 -:1005000001A10005091901290515002501950575A9 -:100510000181029501750381010501093009311539 -:1005200081257F95027508810609381581257F95FB -:100530000175088106050C0A38021581257F950191 -:1005400075088106C0C005010906A101050719E06B -:1005500029E71500250195087501810295017508A7 -:10056000810105081901290595057501910295017B -:10057000750391010507190029FF150025FF950650 -:1005800075088100C00A002530325820006B65795B -:10059000626F6172645F7265706F72743A20000AF4 -:1005A0000025303258006B6579626F6172645F7349 -:1005B00065745F6C65643A200064656C5F6B657997 -:1005C0005F6269743A2063616E27742064656C3AD7 -:1005D00020253032580A006164645F6B65795F6280 -:1005E00069743A2063616E2774206164643A20253F -:1005F0003032580A00646F6E652E0A00626F6F67B2 -:100600006D61676963207363616E3A202E2E2E2020 -:1006100000290A002575002F002575005D2800259A -:10062000640020002564002000256400200025646B -:10063000007C0025303258006D6F7573656B6579ED -:10064000205B62746E7C782079207620685D287249 -:1006500065702F61636C293A205B006D6B5F776872 -:1006600065656C5F74696D655F746F5F6D6178203F -:100670003D2025640A006D6B5F776865656C5F6D72 -:1006800061785F7370656564203D2025640A006DA4 -:100690006B5F74696D655F746F5F6D6178203D207D -:1006A00025640A006D6B5F6D61785F7370656564CA -:1006B000203D2025640A006D6B5F696E746572765B -:1006C000616C203D2025640A006D6B5F64656C6180 -:1006D00079203D2025640A006D6B5F776865656C45 -:1006E0005F74696D655F746F5F6D6178203D202573 -:1006F000640A006D6B5F776865656C5F6D61785F3C -:100700007370656564203D2025640A006D6B5F741D -:10071000696D655F746F5F6D6178203D2025640AA7 -:10072000006D6B5F6D61785F7370656564203D205F -:1007300025640A006D6B5F696E74657276616C206A -:100740003D2025640A006D6B5F64656C6179203D16 -:100750002025640A000A00257500363A207768656E -:10076000656C5F74696D655F746F5F6D61783A2069 -:10077000000A00257500353A20776865656C5F6D65 -:1007800061785F73706565643A20000A0025750022 -:10079000343A2074696D655F746F5F6D61783A20DB -:1007A000000A00257500333A206D61785F7370652B -:1007B00065643A20000A00257500323A20696E749B -:1007C000657276616C286D73293A20000A002575E0 -:1007D00000313A2064656C6179282A31306D7329C3 -:1007E0003A20000A092D2056616C756573202D0A88 -:1007F000004D3E004D25643E20003F00736574208F -:1008000064656661756C740A00433E200077686514 -:1008100072652064656C74613A20637572736F72DF -:100820003D25642C20776865656C3D25640A536519 -:100830006520687474703A2F2F656E2E77696B6926 -:1008400070656469612E6F72672F77696B692F4DD0 -:100850006F7573655F6B6579730A000A092D204D0A -:100860006F7573656B6579202D0A4553432F713A77 -:1008700009717569740A313A0964656C6179282ACD -:1008800031306D73290A323A09696E746572766186 -:100890006C286D73290A333A096D61785F7370654E -:1008A00065640A343A0974696D655F746F5F6D61E0 -:1008B000780A353A09776865656C5F6D61785F73B2 -:1008C000706565640A363A09776865656C5F7469B6 -:1008D0006D655F746F5F6D61780A0A703A097072B6 -:1008E000696E742076616C7565730A643A09736584 -:1008F000742064656661756C74730A75703A092BAF -:10090000310A646F776E3A092D310A706775703A53 -:10091000092B31300A7067646F776E3A092D3130D8 -:100920000A0A7370656564203D2064656C746120FB -:100930002A206D61785F7370656564202A202872B3 -:100940006570656174202F2074696D655F746F5FD9 -:100950006D6178290A003F004D3E2000433E200093 -:100960004C25640A000A092D20436F6E736F6C6575 -:10097000202D0A4553432F713A09717569740A6D28 -:100980003A096D6F7573656B65790A000A092D2048 -:100990004D61676963202D0A643A09646562756771 -:1009A0000A783A096465627567206D6174726978C6 -:1009B0000A6B3A096465627567206B6579626F61DD -:1009C00072640A6D3A096465627567206D6F7573AC -:1009D000650A763A0976657273696F6E0A733A0929 -:1009E0007374617475730A633A09636F6E736F6C25 -:1009F00065206D6F64650A302D343A096C61796544 -:100A000072302D34284631302D4634290A50617514 -:100A1000733A09626F6F746C6F616465720A653A4C -:100A200009656570726F6D0A6E3A094E4B524F0A36 -:100A30007A3A09736C656570204C4544207465737F -:100A4000740A000A002575002E6E6B726F3A200042 -:100A50000A002575002E737761705F6261636B73A6 -:100A60006C6173685F6261636B73706163653A2088 -:100A7000000A002575002E737761705F67726176DA -:100A8000655F6573633A20000A002575002E6E6F5E -:100A90005F6775693A20000A002575002E7377613B -:100AA000705F72616C745F726775693A20000A004A -:100AB0002575002E737761705F6C616C745F6C6775 -:100AC00075693A20000A002575002E636170736C09 -:100AD0006F636B5F746F5F636F6E74726F6C3A20DD -:100AE000000A002575002E737761705F636F6E7466 -:100AF000726F6C5F636170736C6F636B3A20000A96 -:100B00000025303258006B65796D61705F636F6EE0 -:100B10006669672E7261773A20000A002575002EFB -:100B20006D6F7573653A20000A002575002E6B65A0 -:100B300079626F6172643A20000A002575002E6D9B -:100B400061747269783A20000A002575002E656E7E -:100B500061626C653A20000A0025303258006465F5 -:100B60006275675F636F6E6669672E7261773A20A0 -:100B7000000A0025750064656661756C745F6C61C0 -:100B80007965723A20003F004E4B524F3A206F6613 -:100B9000660A004E4B524F3A206F6E0A0074696D20 -:100BA00065725F636F756E743A202530346C580A35 -:100BB000006B6579626F6172645F6E6B726F3A2071 -:100BC00025580A006B6579626F6172645F69646CB5 -:100BD000653A2025580A006B6579626F6172645F1F -:100BE00070726F746F636F6C3A2025580A00686FDB -:100BF00073745F6B6579626F6172645F6C65647357 -:100C000028293A2025580A000A092D2053746174B6 -:100C10007573202D0A004743433A20342E382E3274 -:100C2000204156522D4C4942433A20312E382E3025 -:100C3000204156525F415243483A20617672350A4C -:100C4000004F5054494F4E533A204C554641204294 -:100C50004F4F544D41474943204D4F5553454B4508 -:100C6000592045585452414B455920434F4E534FFC -:100C70004C4520434F4D4D414E44204E4B524F204A -:100C80003531320A004255494C443A2063376334C7 -:100C90003134622D6469727479202830343A3038E6 -:100CA0003A303820446563203138203230313529DC -:100CB0000A005649443A2030784645454428457252 -:100CC000676F446F7820455A29205049443A2030B4 -:100CD0007831333037284572676F446F7820455A32 -:100CE00029205645523A203078303030310A0044BD -:100CF0004553433A20742E6D2E6B2E206B6579621E -:100D00006F617264206669726D7761726520666FCB -:100D100072204572676F646F780A000A092D2056A9 -:100D2000657273696F6E202D0A000A6D6F757365A9 -:100D30003A206F66660A000A6D6F7573653A206F18 -:100D40006E0A000A6B6579626F6172643A206F66A1 -:100D5000660A000A6B6579626F6172643A206F6E91 -:100D60000A000A6D61747269783A206F66660A003B -:100D70000A6D61747269783A206F6E0A000A6465C0 -:100D80006275673A206F6E0A000A64656275673A99 -:100D9000206F66660A000A0A626F6F746C6F616486 -:100DA00065722E2E2E2000433E20006565636F6E17 -:100DB0006669673A0A00536C656570204C454420AB -:100DC000746573740A000000000000000000000059 -:100DD00000010204060A0F17202C3A4A5D71879D14 -:100DE000B3C7DAE9F5FCFFFCF5E9DAC7B39D877113 -:100DF0005D4A3A2C20170F0A060402010000000089 -:100E000000000000000011241FBECFEFDAE0DEBFBB -:100E1000CDBF04B603FE24C08091F9019091FA0180 -:100E2000A091FB01B091FC018730904BA740B04BE3 -:100E3000B9F41092F9011092FA011092FB0110928C -:100E4000FC0114BE84B7877F84BF88E10FB6F89495 -:100E500080936000109260000FBEE0E0FFE3099510 -:100E600011E0A0E0B1E0E4E5FBE502C005900D92E1 -:100E7000AA33B107D9F711E0AAE3B1E001C01D928E -:100E8000A93FB107E1F70E946C0F0C94A82D0C94B8 -:100E90000000FF93EF93E0913A01F0913B0130970E -:100EA00009F00995EF91FF910895FC01859180303B -:100EB00011F0EFDFFBCF0895FF27E0E230E247FFBC -:100EC0000CC0419597FF09C0EDE260957095809543 -:100ED0009095611D711D811D911D27FF02C02195F7 -:100EE00030E350E2AA27660F771F881F991FAA1FB9 -:100EF000A41710F0A41B63955A95A9F7AA3008F01F -:100F0000A95FA05DAF93F39561157105810591050A -:100F100041F7ED3211F4EF93F395F21718F43F9384 -:100F2000F395FBCF8F91B5DFFA95E1F70895E9913D -:100F3000F9918591803021F0853219F0AADFF9CF3F -:100F4000089520E0E89455915532C1F3503311F4DF -:100F5000689455915A3348F4505390F3220F022E5F -:100F6000220F220F200D250FF4CF0EF42195899129 -:100F70009991533619F3533729F1533559F1BC017F -:100F800088279927E8945C3621F48991999168948F -:100F90005591543639F446EF7EF077FF0DC08FEF50 -:100FA0009FEF0AC055374AE039F0583540E121F04B -:100FB000523642E009F00895FF93EF937DDFEF9101 -:100FC000FF91B7CFFF93EF93FC0181918030B9F38C -:100FD00060DFFBCFFF93EF9368DFF1CFDF93CF9319 -:100FE000CDB7DEB72596A3DFCF91DF9108956111CC -:100FF0000BC0FC018281882321F085EE0E943A1605 -:1010000003C085EE0E94021780E090E008950895E5 -:101010006091BC017091BD018091BE019091BF01B2 -:101020000E94E72056985E9825982D9826982E982D -:1010300027982F98813019F0823021F00895259A51 -:101040002D9A0895269A2E9A089588E098E0892B83 -:1010500011F00C940808089556985E9825982D98DC -:1010600026982E9827982F988FEF90E090938900DC -:101070008093880090938B0080938A0090938D00DA -:1010800080938C00569A5E9A259A2D9A269A2E9ACB -:10109000279A2F9A2FE782E490E1215080409040D8 -:1010A000E1F700C0000056985E9825982D98269884 -:1010B0002E9827982F98089589EA8093800089E0D8 -:1010C0008093810024982C983F988AB18F748AB9B4 -:1010D0006E98479A8BB1806B8BB9769A0E942C08D8 -:1010E00087E098E0892B11F00C940708089580E2BE -:1010F0008093000180913C0181110EC00E94C608BE -:1011000081E080933C012FEF83ED90E321508040FC -:101110009040E1F700C0000080E40E94CC0880937A -:10112000000181112EC00E94F608809300018111F8 -:1011300028C00E94F60880930001811122C08FE32D -:101140000E94F6088093000181111BC00E94EE08E6 -:1011500080E40E94CC0880930001811112C08CE0D1 -:101160000E94F6088093000181110BC00E94F608CE -:1011700080930001811105C08FE30E94F6088093DF -:1011800000010E94EE088091000108951092B900BC -:101190008AE08093B800089594EA9093BC009091FF -:1011A000BC0097FFFCCF9091B900987F983021F058 -:1011B000903111F081E008958093BB0084E8809322 -:1011C000BC008091BC0087FFFCCF8091B900887F74 -:1011D000883111F0803471F780E0089584E98093BC -:1011E000BC008091BC0084FDFCCF08958093BB00BF -:1011F00084E88093BC008091BC0087FFFCCF909175 -:10120000B900987F81E0983209F480E0089584E87D -:101210008093BC008091BC0087FFFCCF8091BB0015 -:10122000089580910001811115C080E40E94CC08CE -:101230008093000181110CC082E10E94F608809326 -:101240000001811105C08FEF0E94F6088093000114 -:101250000E94EE0884B1807F84B985B1807F85B912 -:101260008AB1837F8AB98BB1837F8BB93E984698C8 -:1012700008950E947708809300010E94110980B3AD -:101280008C7080BB81B3836F81BBECE4F1E0AEE393 -:10129000B1E011921D9281E0EA35F807D1F78CE5B3 -:1012A00098E0892B11F00C945C0808959F92AF92FE -:1012B000BF92CF92DF92EF92FF920F931F93CF9343 -:1012C000DF93809100018823E1F080913D018F5FE1 -:1012D00080933D01811115C082E493E00E9455077F -:1012E0000E94770880930001882329F088E293E028 -:1012F0000E94550706C084E193E00E9455070E94B2 -:101300002C080EE311E0C0E0D0E0BB24B39482E0EF -:10131000A82ECC24C394D12C25E0E22E23E0F22E7B -:10132000C73000F580910001811162C080E40E9405 -:10133000CC0880930001811112C082E10E94F6085E -:101340008093000181110BC0C6010C2E01C0880FD3 -:101350000A94EAF780950E94F608809300010E94A3 -:10136000EE0846C0CA30A1F028F4C83059F0C930A0 -:1013700061F005C0CC3089F070F0CD3089F0209A52 -:10138000289810C0219A29980DC0229A2A980AC03C -:10139000239A2B9807C0529A01C0539A5B9802C0B7 -:1013A0003E9A4698E0EAEA95F1F78FB1799985C0BF -:1013B00092E081708B25892B7C9B02C090E001C05C -:1013C00094E0892B7D9B02C090E001C098E0892BBE -:1013D0007E9B02C090E001C090E1892B9FB1909567 -:1013E000991F9927991F9295990F907E892B10C06C -:1013F00080910001811176C080E40E94CC08809326 -:101400000001882309F45BC0912C0E94EE08892D0D -:10141000F8019081981739F1808380910101882328 -:1014200001F18091D70180FF04C08AE093E00E941F -:1014300055078091D70180FF0CC0809101011F9258 -:101440008F93FF92EF920E94EE070F900F900F90F4 -:101450000F908091D70180FF04C083E093E00E9449 -:101460005507A09201010E94110921960F5F1F4F9D -:10147000CE30D10509F054CF809101018823B1F01D -:10148000815080930101882339F08FE99FE0019713 -:10149000F1F700C000000AC0ACE4B1E0EEE3F1E017 -:1014A00081918D9391E0EC34F907D1F785E298E0D2 -:1014B000892BD1F00E94250817C090E07ACF83E1F4 -:1014C0000E94F6088093000181119ECF81E40E9462 -:1014D000CC0880930001811197CF0E940709982EB4 -:1014E000909493CF80E094CF81E0DF91CF911F91D2 -:1014F0000F91FF90EF90DF90CF90BF90AF909F90B3 -:101500000895E82FF0E0E45BFE4F80810895CF92CC -:10151000DF92EF92FF920F931F93CF93DF938CEEA6 -:1015200092E00E9455073CE4E32E31E0F32EC0E048 -:10153000D0E047EEC42E42E0D42E0EED12E0DF9351 -:10154000CF93DF92CF920E94EE0784EE92E00E944A -:101550005507F70181917F0190E00E944C219F93F4 -:101560008F931F930F930E94EE078CED92E00E94E1 -:10157000550721968DB79EB708960FB6F8949EBF73 -:101580000FBE8DBFCE30D105D1F6DF91CF911F9127 -:101590000F91FF90EF90DF90CF9008958B3B9105D6 -:1015A00078F4883A910540F5853A9105D0F4843075 -:1015B000910508F0B1C08130910509F4ADC06BC050 -:1015C000803E910508F467C0883E910508F4A4C0E8 -:1015D0009C01205F31092031310508F05CC0906525 -:1015E0000895853A910509F459C0863A910509F4A0 -:1015F00058C083E890E40895883A910509F454C0EE -:10160000893A910509F453C08A3A910509F452C008 -:101610008B3A910509F451C08C3A910509F450C0F8 -:101620008D3A910509F44FC0803B910509F44EC0F5 -:101630008E3A910509F44DC08F3A910509F44CC0DA -:10164000813B910509F44BC0823B910509F44AC0E6 -:10165000833B910509F449C0843B910509F448C0D6 -:10166000853B910509F447C0863B910509F446C0C6 -:10167000873B910509F445C0883B910509F444C0B6 -:10168000893B910509F443C08A3B910509F042C0AA -:101690008AE296E4089580E090E0089581E890E47D -:1016A000089582E890E4089582EE94E4089589EE26 -:1016B00094E408958AEE94E4089585EB94E4089503 -:1016C00086EB94E4089587EB94E408958CEC94E41D -:1016D00008958DEC94E4089583E895E408958AE8EC -:1016E00095E4089582E995E4089584E995E40895E0 -:1016F00081E296E4089583E296E4089584E296E414 -:10170000089585E296E4089586E296E4089587E2D6 -:1017100096E4089580E094E40895089596E0799F12 -:10172000F001112494E5899FE00DF11D1124E60FCD -:10173000F11DEE0FFF1FEC51FF4F8591949108951D -:10174000880F991F805A9040FC01859194910895CB -:10175000880F991F80529F4FFC01859194910895A5 -:1017600026E0729FF001112444E5849FE00DF11DF5 -:101770001124E60FF11DEE0FFF1FEC51FF4F2591D5 -:101780003491C9019A9581159F4110F4C9010895BA -:10179000C90190528115904128F4C9019F700E949F -:1017A000A80B0895C90190538115904120F4C901F7 -:1017B0009927906C0895211580E5380769F40E94F7 -:1017C000751A9FEF24E34CE0915020404040E1F730 -:1017D00000C000000C940822213080E5380751F445 -:1017E0008CE593E00E9455078091D701816080933A -:1017F000D7010895C90190558115904108F050C056 -:10180000832F99278F70992781309105D9F4A901E9 -:101810004370552702C0880F991F4A95E2F79C68CC -:10182000A90164E0440F551F6A95E1F744275370FE -:10183000842B952B73E0220F331F7A95E1F72076E6 -:1018400033271DC08230910529F4922F8827816F9C -:10185000906A089583309105A9F4A9014370552732 -:1018600081E090E002C0880F991F4A95E2F79C68DA -:1018700043E0220F331F4A95E1F7207E3770822B19 -:10188000932B08950497F1F4A9014370552781E043 -:1018900090E002C0880F991F4A95E2F79A68E8CF56 -:1018A000C90190578115904120F4C9019F70906241 -:1018B0000895C90190588115904120F4C9019F7085 -:1018C000906A0895203E3105E0F4203C310558F53A -:1018D0002133310509F470C048F42932310509F487 -:1018E00064C02A32310509F46EC074C02933310551 -:1018F000F1F022383105D9F02533310509F44EC015 -:1019000069C0233E310589F138F4203E3105C1F02C -:10191000223E3105E1F05EC0263E310569F1273EE9 -:101920003105A9F157C0C9010E94A00B089580910B -:10193000EA0180FD02C081FF4DC080EE90E04BC007 -:101940008091EA0180FFF9CF89E390E044C0809163 -:10195000EA0182FF0EC08091EA0184FF03C080E0AB -:1019600090E039C083EE90E036C08091EA0182FFBA -:10197000F2CF82EE90E02FC08091EA0183FF0BC08E -:101980008091EA0184FDEBCF87EE90E024C0809146 -:10199000EA0183FFF5CF86EE90E01DC08091EA0159 -:1019A00085FF07C089E290E016C08091EA0185FFBB -:1019B000F9CF85E390E00FC08091EA0186FF07C070 -:1019C0008AE290E008C08091EA0186FFF9CF81E3C6 -:1019D00090E001C0C9010E94CE0A08950895809147 -:1019E0006D0108959FB7F89410925C019FBF90918C -:1019F000F001943009F058C09091E9009F70209157 -:101A0000EC0020FF02C020E801C020E0292B94E078 -:101A10009093E9009091EB0090FF43C09091EE000D -:101A200097FF3FC090915A01992321F09091E800CF -:101A300095FF37C010925A0196E03091E80035FDCD -:101A400015C03091F001343061F53091EB0035FD77 -:101A500028C0915021F481E080935A0122C0EFE91F -:101A6000FFE03197F1F700C00000E7CF8093F1006D -:101A70008091E80085FD0AC08091E80080FFFCCFDE -:101A80008091E8008E778093E80006C08FB7F894C5 -:101A900091E090935C018FBF2F702093E90080E06C -:101AA00008952F702093E9008FEF0895CF93DF936F -:101AB00000D01F92CDB7DEB72091F001243019F588 -:101AC00023E029839B838A832093E9008FEF909101 -:101AD000E800815095FD06C095ED9A95F1F700005C -:101AE0008111F5CF8091E80085FF0DC040E050E006 -:101AF00063E070E0CE0101960E9425108091E8001D -:101B00008E778093E8000F900F900F90DF91CF9128 -:101B10000895CF93DF9300D01F92CDB7DEB7209109 -:101B2000F001243021F522E029839B838A8383E01E -:101B30008093E9008FEF9091E800815095FD06C0F9 -:101B400095ED9A95F1F700008111F5CF8091E800AD -:101B500085FF0DC040E050E063E070E0CE010196EB -:101B60000E9425108091E8008E778093E8000F9006 -:101B70000F900F90DF91CF9108952091F0012430C4 -:101B8000F1F422E02093E9002FEF3091E80021509A -:101B900035FD06C035ED3A95F1F700002111F5CF7E -:101BA0002091E80025FF0BC040E050E065E070E0C8 -:101BB0000E9425108091E8008E778093E8000895B8 -:101BC000CF93DF93EC018091F001843009F047C09E -:101BD00080910C018823E1F080910D018823C1F0F0 -:101BE00085E08093E9008FEF9091E800815095FDAA -:101BF00006C095E19A95F1F700008111F5CF80912B -:101C0000E80085FF2CC040E050E060E170E017C0C4 -:101C100081E08093E9008FEF9091E800815095FD7D -:101C200006C095ED9A95F1F700008111F5CF8091EE -:101C3000E80085FF14C040E050E068E070E0CE01AD -:101C40000E9425108091E8008E778093E80080E163 -:101C5000FE01ADE5B1E001900D928A95E1F7DF91CB -:101C6000CF91089583E993E00E9455078091EF0199 -:101C7000811109C00E94B7110E9414128091E200E4 -:101C800084608093E20008958FE893E00E945507F6 -:101C90001092EF0108958BE893E00C94550787E8C4 -:101CA00093E00E9455070C94C92B83E893E00E94AF -:101CB00055070E94A3210E94CF2B0E94B0140C94C0 -:101CC000EE0C80915B018F5F80935B0162E30E9469 -:101CD0003D2D911135C010925B0180915C018823EC -:101CE00079F18091F001843049F58091E9008F709D -:101CF0009091EC0090FF02C090E801C090E0982B1A -:101D000084E08093E9008091EB0080FF14C0809113 -:101D1000EE0087FF10C08091E80085FF03C010929D -:101D2000F100F9CF8091E80080FF05C08091E800C4 -:101D30008E778093E8009F709093E90010925C0189 -:101D4000089542E061EC81E00E94311142E061ECD3 -:101D500082E00E94311142E061EC83E00E94311187 -:101D600042E261EC84E00E94311142E161EC85E0E5 -:101D70000C9431118091F201833009F455C030F494 -:101D8000813071F0823009F48EC008958A3009F4F0 -:101D90007AC08B3009F460C0893009F09CC020C043 -:101DA0008091F101813A09F096C08091E800877F27 -:101DB0008093E8008091F5019091F601892B21F044 -:101DC00060E080E090E003C060E18DE591E070E0CC -:101DD0000E946E108091E8008B778093E800089550 -:101DE0008091F101813209F076C08091F5019091E6 -:101DF000F601009719F0049709F06DC08091E80092 -:101E0000877F8093E8008091E80082FD05C0809183 -:101E1000F0018111F8CF5FC08091F10080936D01D6 -:101E20008091E8008B7753C08091F101813A09F0ED -:101E300052C08091F5019091F601892B09F04BC0B9 -:101E40008091E800877F8093E8008091E80080FF20 -:101E5000FCCF80910C0136C08091F1018132D9F51F -:101E60008091F5019091F601892BA9F58091E80008 -:101E7000877F8093E8000E9466118091F301809330 -:101E80000C010C94751A8091F101813221F5809139 -:101E9000E800877F8093E8000E9466118091F4013A -:101EA00080936E0108958091F101813AA1F48091AF -:101EB000E800877F8093E8008091E80080FFFCCFF6 -:101EC00080916E018093F1008091E8008E7780937D -:101ED000E8000C946611089584B7877F84BF88E179 -:101EE0000FB6F89480936000109260000FBE90E0EF -:101EF00080E80FB6F89480936100909361000FBE64 -:101F00000E9439150E94B7110E9414128091E200BC -:101F100084608093E20082EF9CE00E94E22078944B -:101F20000E948E140E943B1582E091E00E94AB1447 -:101F30000E94B72B82E793E00E9455078091F00141 -:101F4000853089F48EE693E00E9455070E94662151 -:101F50008091EE01882391F30E948E21882371F3F2 -:101F60000E940F10EBCF0E946915E8CF292F33276D -:101F700023303105A9F06CF42130310509F442C059 -:101F80002230310509F043C08DE890E02BEC33E0BE -:101F900042C021323105C9F02232310519F137C072 -:101FA00099278130910541F08230910541F0892BCC -:101FB00071F5E7ECF3E005C0EFEAF3E002C0E7E912 -:101FC000F3E0849190E09F0126C0653000F5E62F94 -:101FD000F0E0EE0FFF1FEB5DFE4F2081318189E0C5 -:101FE00090E019C0653098F4E62FF0E0DF01AA0F09 -:101FF000BB1FA55EBE4F2D913C91EA5EFE4F8081D6 -:1020000090E009C082E190E028E534E004C080E07F -:1020100090E020E030E0FA0131832083089580E1F0 -:1020200089BD82E189BD09B400FEFDCF8091D80051 -:102030008F7D8093D8008091E00082608093E000E3 -:102040008091E00081FDFCCF0895CF92DF92EF9266 -:10205000FF920F931F93CF93DF937C018B01EA01D3 -:102060000E948711811131C0209731F088819981B8 -:10207000081B190BE80EF91EC12CD12C01151105F6 -:1020800019F18091E80085FD14C08091E8008E77F9 -:102090008093E800209741F0888199818C0D9D1DE7 -:1020A0009983888385E011C00E948711882331F3CA -:1020B0000CC0F70181917F018093F100015011095B -:1020C000FFEFCF1ADF0ADACF80E0DF91CF911F91C7 -:1020D0000F91FF90EF90DF90CF9008952091F7013E -:1020E0003091F8012617370748F06115710539F46A -:1020F0002091E8002E772093E80001C0B901FC018F -:1021000020E061157105B9F18091F001882309F48F -:1021100040C0853009F43FC08091E80083FD3DC098 -:102120008091E80082FF06C08091E80082FF26C00F -:1021300080E008958091E80080FFE3CF2091F300D4 -:102140008091F20090E0922B6115710551F088307A -:10215000910538F421912093F100615071090196A5 -:10216000F3CF21E0089709F020E08091E8008E7716 -:102170008093E800C6CF2111C7CFD6CF8091F00160 -:10218000882339F0853039F08091E80083FFCCCF87 -:1021900004C082E0089583E0089581E008952091CD -:1021A000F7013091F8012617370748F061157105DE -:1021B00039F42091E8002E772093E80001C0B9019E -:1021C000FC0120E061157105C1F18091F0018823C7 -:1021D00009F441C0853009F440C08091E80083FDD6 -:1021E0003EC08091E80082FF06C08091E80082FF37 -:1021F00027C080E008958091E80080FFE3CF209120 -:10220000F3008091F20090E0922B6115710559F076 -:102210008830910540F424912093F100319661506B -:1022200071090196F2CF21E0089709F020E0809132 -:10223000E8008E778093E800C5CF2111C6CFD5CFB7 -:102240008091F001882339F0853039F08091E800E1 -:1022500083FFCBCF04C082E0089583E0089581E03E -:102260000895982F973058F59093E900981739F012 -:102270007091EC002091ED005091F00003C0242FEC -:10228000762F50E021FF19C03091EB003E7F309354 -:10229000EB003091ED003D7F3093ED003091EB008D -:1022A00031603093EB007093EC002093ED0050937D -:1022B000F0002091EE0027FF07C09F5FD3CF8F7003 -:1022C0008093E90081E0089580E008958091F10114 -:1022D00087FD05C08091E80080FF0EC012C080918C -:1022E000E80082FD05C08091F0018111F8CF0895CA -:1022F0008091E8008B7708C08091F0018111EACFCE -:1023000008958091E8008E778093E8000895809189 -:10231000E4009091E50045E62091EC0020FF21C00B -:102320002091E80020FD21C02091F001222389F0B6 -:10233000253089F02091EB0025FD0FC02091E400AD -:102340003091E5002817390739F3415041F0C901B0 -:10235000E3CF82E0089583E0089581E0089584E06A -:1023600008952091E80022FFDFCF80E008950E94C9 -:1023700025120E942D12E0EEF0E0808181608083C2 -:10238000E8EDF0E080818F77808319BCA7EDB0E0A5 -:102390008C918E7F8C9380818F7E80831092EF0151 -:1023A00008950F931F93CF93DF930E9425120E94ED -:1023B0002D12C8EDD0E088818F778883888180686E -:1023C000888388818F7D888319BC1092F0011092D8 -:1023D000EC011092EE011092ED0100EE10E0F80118 -:1023E00080818B7F808388818160888342E060E088 -:1023F00080E00E943111E1EEF0E080818E7F8083E9 -:10240000E2EEF0E08081816080838081886080835B -:10241000F80180818E7F8083888180618883DF914D -:10242000CF911F910F910895E8EDF0E080818F7EAC -:102430008083E7EDF0E080818160808384E082BF6B -:1024400081E08093EF010C94D111E8EDF0E0808100 -:102450008E7F80831092E20008951092DA0010922D -:10246000E10008951F920F920FB60F9211242F933F -:102470003F934F935F936F937F938F939F93AF930C -:10248000BF93EF93FF938091E10082FF0BC0809197 -:10249000E20082FF07C08091E1008B7F8093E10022 -:1024A0000E94610E8091DA0080FF1FC08091D800E9 -:1024B00080FF1BC08091DA008E7F8093DA008091CC -:1024C000D90080FF0DC080E189BD82E189BD09B4DA -:1024D00000FEFDCF81E08093F0010E94320E05C026 -:1024E00019BC1092F0010E94440E8091E10080FF1F -:1024F00019C08091E20080FF15C08091E2008E7FBC -:102500008093E2008091E20080618093E2008091FC -:10251000D80080628093D80019BC85E08093F001D8 -:102520000E944F0E8091E10084FF30C08091E20054 -:1025300084FF2CC080E189BD82E189BD09B400FE21 -:10254000FDCF8091D8008F7D8093D8008091E100ED -:102550008F7E8093E1008091E2008F7E8093E20085 -:102560008091E20081608093E2008091EC018823F9 -:1025700011F084E007C08091E30087FF02C083E090 -:1025800001C081E08093F0010E94550E8091E1002E -:1025900083FF29C08091E20083FF25C08091E10084 -:1025A000877F8093E10082E08093F0011092EC013C -:1025B0008091E1008E7F8093E1008091E2008E7F28 -:1025C0008093E2008091E20080618093E20042E02B -:1025D00060E080E00E9431118091F000886080937B -:1025E000F0000E944B0EFF91EF91BF91AF919F9130 -:1025F0008F917F916F915F914F913F912F910F90AC -:102600000FBE0F901F9018951F920F920FB60F924A -:1026100011242F933F934F935F936F937F938F93E7 -:102620009F93AF93BF93CF93EF93FF93C091E90034 -:10263000CF708091EC001092E9008091F000877FCC -:102640008093F00078940E9440131092E9008091EA -:10265000F00088608093F000C093E900FF91EF9153 -:10266000CF91BF91AF919F918F917F916F915F912A -:102670004F913F912F910F900FBE0F901F90189583 -:102680001F93CF93DF93CDB7DEB7AA970FB6F89419 -:10269000DEBF0FBECDBFE1EFF1E08091F10081938D -:1026A00021E0E93FF207C9F70E94BA0E8091E800E5 -:1026B00083FF1CC12091F1013091F201832F90E042 -:1026C0008A30910508F012C1FC01EA5AFF4F0C94C0 -:1026D0005D2D203881F0223809F008C18091F50184 -:1026E0008F708093E9008091EB0085FB882780F94B -:1026F0001092E90006C08091ED019091EE019111D8 -:1027000082609091E800977F9093E8008093F100B9 -:102710001092F100C5C0822F8D7F09F0E7C02223FF -:1027200019F0223061F0E2C08091F301813009F0AC -:10273000DDC0333009F080E08093EE0128C0809145 -:10274000F301811124C02091F5012F7009F4CEC04E -:102750002093E9008091EB0080FF19C08091EB008D -:10276000333011F4806211C080618093EB0081E00E -:1027700090E0022E01C0880F0A94EAF78093EA00E5 -:102780001092EA008091EB0088608093EB00109239 -:10279000E9008091E800877F86C02111A7C01091D1 -:1027A000F3011F778091E3008078812B8093E30011 -:1027B0008091E800877F8093E8000E9466118091F5 -:1027C000E80080FFFCCF8091E30080688093E30005 -:1027D000112311F083E001C082E08093F00186C0F4 -:1027E0002058223008F082C08091F3019091F401CA -:1027F0008C3D23E0920779F583E08A838AE289831E -:102800004FB7F894DE01139620E03EE051E2E32F4B -:10281000F0E050935700E49120FF03C0E295EF7081 -:102820003F5FEF708E2F90E0EA3010F0C79601C046 -:10283000C0968D939D932F5F243149F74FBF8091B0 -:10284000E800877F8093E8006AE270E0CE0101969D -:102850000E946E1014C0AE014F5F5F4F6091F50192 -:102860000E94B60F009709F441C02091E800277F2D -:102870002093E800BC0189819A810E94CF10809149 -:10288000E8008B778093E80031C0203879F580919B -:10289000E800877F8093E8008091EC018093F1004D -:1028A0008091E8008E778093E8000E9466111EC038 -:1028B00021111CC09091F3019230C0F48091E80086 -:1028C000877F8093E8009093EC010E9466118091CD -:1028D000EC01811104C08091E30087FF02C084E015 -:1028E00001C081E08093F0010E94A10E8091E80078 -:1028F00083FF0AC08091E800877F8093E800809181 -:10290000EB0080628093EB00AA960FB6F894DEBFCE -:102910000FBECDBFDF91CF911F910895CF938091CE -:10292000F0018823B1F08091E9008F709091EC0064 -:1029300090FF02C090E801C090E0C92FC82B109210 -:10294000E9008091E80083FD0E944013CF70C0939E -:10295000E900CF91089590937401809373010895D5 -:10296000E0917301F0917401309721F00190F081B2 -:10297000E02D099480E00895FF920F931F93CF9369 -:10298000DF938C01E0917301F0917401309799F11C -:102990000280F381E02D09958091D70182FF2BC041 -:1029A00080FF04C08DE895E00E945507E80180E1B2 -:1029B000F82E07E815E08091D70180FF0BC08881D1 -:1029C0001F928F931F930F930E94EE070F900F900B -:1029D0000F900F90FA942196F110EDCF8091D701CE -:1029E00080FF09C085E895E0DF91CF911F910F919D -:1029F000FF900C945507DF91CF911F910F91FF909D -:102A00000895E0917301F0917401309721F00480F2 -:102A1000F581E02D099408952091710130917201A2 -:102A20008217930771F09093720180937101E09186 -:102A30007301F0917401309721F00680F781E02D49 -:102A40000994089520916F013091700182179307C6 -:102A500071F09093700180936F01E0917301F09198 -:102A60007401309721F00084F185E02D09940895D8 -:102A700008950C9438150E94A5210E9439090C94E0 -:102A80006B22CF93C82F8091D70182FF1EC080FF99 -:102A900004C086EA95E00E9455078091D70180FF27 -:102AA0000CC01F92CF9321EA35E03F932F930E94F1 -:102AB000EE070F900F900F900F908091D70180FF3D -:102AC00004C08FE995E00E9455078C2FCF910C949C -:102AD000EE0CCF92DF92EF92FF920F931F93CF9362 -:102AE000DF93CDB7DEB72B970FB6F894DEBF0FBEDE -:102AF000CDBF0E94560936E7E32E31E0F32E00E009 -:102B000010E0C02E802F0E94810AF701D1907F0132 -:102B1000D826B1F40F5F1F4F0E30110591F78FEFDC -:102B200089838A831B820E94AE218160782F9D83D6 -:102B30008C8349815A816B818D810E940C1641C022 -:102B40009091D70191FF04C08B870E94870A8B85E3 -:102B500020E030E04D2D50E0922FBA01022E02C04D -:102B6000759567950A94E2F760FF25C02E83CF82A2 -:102B7000EE24E394F12C02C0EE0CFF1C9A95E2F7D0 -:102B800090E08E219F2121E0892B09F420E0288705 -:102B90000E94AE218160782F9A8789874E815F815C -:102BA00068858A850E940C16F801EA58FE4F8081DC -:102BB0008E25808306C02F5F3F4F2630310561F69A -:102BC000A9CF0E94D925109175010E94B014181741 -:102BD000A1F00E94B014809375012B960FB6F89463 -:102BE000DEBF0FBECDBFDF91CF911F910F91FF9040 -:102BF000EF90DF90CF900C9441152B960FB6F89480 -:102C0000DEBF0FBECDBFDF91CF911F910F91FF901F -:102C1000EF90DF90CF900895CF93DF93CDB7DEB7DD -:102C20002B970FB6F894DEBF0FBECDBF4F835887EA -:102C300069877A878B87DE01119686E0FD01119204 -:102C40008A95E9F785E0FE01379601900D928A9505 -:102C5000E1F749815A816B817C818D819E810E943F -:102C6000411D2B960FB6F894DEBF0FBECDBFDF918E -:102C7000CF910895CF93C82F882309F4C1C082381B -:102C800059F40E94B01481FDBBC089E30E94E01F8B -:102C90000E94BC2089E30CC0833879F40E94B014F0 -:102CA00080FDAEC083E50E94E01F0E94BC2083E54A -:102CB0000E943120CF910C94BC20843859F40E949A -:102CC000B01482FD9DC087E40E94E01F0E94BC20DA -:102CD00087E4EECF8CEF8C0F813A48F48C2F0E9462 -:102CE000622A81118DC08C2F0E94E01FE3CF80E209 -:102CF0008C0F883048F4C77081E001C0880FCA95F6 -:102D0000EAF70E948320D6CF8BE58C0F833078F4CE -:102D1000C53A29F0C63A31F482E890E005C081E86E -:102D200090E002C083E890E0CF910C940C1588E508 -:102D30008C0F833108F064C0C83A39F1C93A41F1C7 -:102D4000CA3A49F1CB3A51F1CC3A59F1CD3A61F155 -:102D5000C03B69F1CE3A71F1CF3A79F1C13B81F1D3 -:102D6000C23B89F1C33B91F1C43B99F1C53BA1F151 -:102D7000C63BA9F1C73BB1F1C83BB9F1C93BC1F1B1 -:102D8000CA3BC9F58AE292E038C082EE90E035C0D5 -:102D900089EE90E032C08AEE90E02FC085EB90E0A3 -:102DA0002CC086EB90E029C087EB90E026C08CEC2D -:102DB00090E023C08DEC90E020C083E891E01DC03E -:102DC0008AE891E01AC082E991E017C084E991E0B5 -:102DD00014C081E292E011C083E292E00EC084E26E -:102DE00092E00BC085E292E008C086E292E005C066 -:102DF00087E292E002C080E090E0CF910C9422152F -:102E0000CF910895882309F44BC0823859F40E9469 -:102E1000B01481FF45C089E30E94E01F0E94BC20DE -:102E200089E30CC0833871F40E94B01480FF38C06D -:102E300083E50E94E01F0E94BC2083E50E943120B0 -:102E40000C94BC20843859F40E94B01482FF28C02E -:102E500087E40E94E01F0E94BC2087E4EFCF9CEF34 -:102E6000980F913A58F390E2980F983050F4877089 -:102E700091E001C0990F8A95EAF7892F0E94892075 -:102E8000DFCF9BE5980F933020F480E090E00C9426 -:102E90000C15885A833120F480E090E00C942215C0 -:102EA0000895882321F00E9483200C94BC2008956B -:102EB000882321F00E9489200C94BC200895CF9291 -:102EC000DF92EF92FF920F931F93CF93DF93CDB7D3 -:102ED000DEB728970FB6F894DEBF0FBECDBF8C01CA -:102EE00085E0F801DE01119601900D928A95E1F7D7 -:102EF000F80140813181F280258122952F708381F4 -:102F00009481892B31F03F3F31F481E04F3F19F438 -:102F100003C081E001C080E080FDC6C249833A83DE -:102F200089819A812F830E949E1F9E8388870E9499 -:102F30009D1F0E94701E4E81E42FE295EF70F0E01D -:102F4000E05AFF4F2F8168850C945D2D842F807F80 -:102F5000142F1F70882311F01295107FFF2059F055 -:102F6000112309F456C2812F68870E9493200E9482 -:102F7000BC2068854EC2862F0E940217112309F4D7 -:102F800093C2812F0E94992028960FB6F894DEBF35 -:102F90000FBECDBFDF91CF911F910F91FF90EF90AA -:102FA000DF90CF900C94BC20342F307F842F8F7013 -:102FB000303211F08295807F662319F0613019F16B -:102FC0002CC0FF20B1F0222309F494C1213009F074 -:102FD00091C128960FB6F894DEBF0FBECDBFDF912A -:102FE000CF911F910F91FF90EF90DF90CF900C94B5 -:102FF000A320222319F0213009F456C28E830E94A7 -:10300000A6208E818AC1FF2021F0263008F04CC214 -:1030100071C1253008F048C280C1FF2021F0222371 -:1030200009F468C1F6C1222309F477C106C2242F2E -:1030300026952695237030E02115310521F02130A9 -:103040003105C9F031C2FF2021F0862F942F9370F3 -:1030500002C080E090E028960FB6F894DEBF0FBE65 -:10306000CDBFDF91CF911F910F91FF90EF90DF9037 -:10307000CF900C940C15FF2021F0862F942F937085 -:1030800002C080E090E028960FB6F894DEBF0FBE35 -:10309000CDBFDF91CF911F910F91FF90EF90DF9007 -:1030A000CF900C942215862FFF2019F00E945F24E8 -:1030B00002C00E94C72428960FB6F894DEBF0FBE48 -:1030C000CDBFDF91CF911F910F91FF90EF90DF90D7 -:1030D000CF900C944C25842F837009F076C0F110AA -:1030E000E3C1262F229526952770220F220F862FC7 -:1030F0008F70C82ED12CE12CF12C022E04C0CC0CE8 -:10310000DD1CEE1CFF1C0A94D2F764FF10C06FE0B8 -:1031100070E080E090E004C0660F771F881F991F61 -:103120002A95D2F7609570958095909503C060E0E0 -:1031300070E0CB01242F269526952370422F50E076 -:1031400042305105D1F04330510559F16C297D29A8 -:103150008E299F294130510541F128960FB6F894E8 -:10316000DEBF0FBECDBFDF91CF911F910F91FF90BA -:10317000EF90DF90CF900C94951E6C297D298E29BD -:103180009F2928960FB6F894DEBF0FBECDBFDF9102 -:10319000CF911F910F91FF90EF90DF90CF900C9403 -:1031A000AF1E0E94951EC701B60128960FB6F8946F -:1031B000DEBF0FBECDBFDF91CF911F910F91FF906A -:1031C000EF90DF90CF900C947B1EFF2019F0842F9E -:1031D000817001C08695882309F466C1262F229547 -:1031E00026952770220F220F862F8F70C82ED12C84 -:1031F000E12CF12C022E04C0CC0CDD1CEE1CFF1CBB -:103200000A94D2F764FF10C06FE070E080E090E0B5 -:1032100004C0660F771F881F991F2A95D2F7609503 -:1032200070958095909503C060E070E0CB01242FED -:10323000269526952370422F50E042305105D1F05B -:103240004330510559F16C297D298E299F29413040 -:10325000510541F128960FB6F894DEBF0FBECDBFE1 -:10326000DF91CF911F910F91FF90EF90DF90CF9062 -:103270000C94691F6C297D298E299F2928960FB6E9 -:10328000F894DEBF0FBECDBFDF91CF911F910F919C -:10329000FF90EF90DF90CF900C94831F0E94691FE6 -:1032A000C701B60128960FB6F894DEBF0FBECDBF9A -:1032B000DF91CF911F910F91FF90EF90DF90CF9012 -:1032C0000C944F1F603FC9F118F4603E50F49CC04D -:1032D000623F09F461C008F44BC0633F09F470C059 -:1032E00093C0162F1F70842F8F71FF2099F00E94BA -:1032F000E81E812F28960FB6F894DEBF0FBECDBF13 -:10330000DF91CF911F910F91FF90EF90DF90CF90C1 -:103310000C9451170E94091F812F28960FB6F8941C -:10332000DEBF0FBECDBFDF91CF911F910F91FF90F8 -:10333000EF90DF90CF900C945817FF20A9F0253024 -:1033400008F0B2C0842F8F7128960FB6F894DEBFB4 -:103350000FBECDBFDF91CF911F910F91FF90EF90E6 -:10336000DF90CF900C942E1F263008F09DC0EACF3E -:10337000FF20A1F0842F8F7128960FB6F894DEBF3E -:103380000FBECDBFDF91CF911F910F91FF90EF90B6 -:10339000DF90CF900C94E81EFF2061F3842F8F7193 -:1033A00028960FB6F894DEBF0FBECDBFDF91CF9148 -:1033B0001F910F91FF90EF90DF90CF900C94091F19 -:1033C000FF2091F0842F8F7128960FB6F894DEBFFE -:1033D0000FBECDBFDF91CF911F910F91FF90EF9066 -:1033E000DF90CF900C94D31E28960FB6F894DEBFD2 -:1033F0000FBECDBFDF91CF911F910F91FF90EF9046 -:10340000DF90CF900C94C91EFF20A1F0222309F475 -:10341000B1CF862F28960FB6F894DEBF0FBECDBF72 -:10342000DF91CF911F910F91FF90EF90DF90CF90A0 -:103430000C943A16222309F4B1CF862F28960FB6A2 -:10344000F894DEBF0FBECDBFDF91CF911F910F91DA -:10345000FF90EF90DF90CF900C9402174F70C8014F -:103460000E94F70728960FB6F894DEBF0FBECDBFB7 -:10347000DF91CF911F910F91FF90EF90DF90CF9050 -:103480000C94EE1D4F70C80128960FB6F894DEBF5D -:103490000FBECDBFDF91CF911F910F91FF90EF90A5 -:1034A000DF90CF900C948D0B28960FB6F894DEBF6A -:1034B0000FBECDBFDF91CF911F910F91FF90EF9085 -:1034C000DF90CF9008950E94A0200E9475200E9456 -:1034D000BC200E947A260E944C2580E090E00E9449 -:1034E0000C1580E090E00C9422150E9490200C9422 -:1034F000631A0E949E1F292F22952F7030E02C30D6 -:1035000031054CF42A3031056CF422503109223057 -:10351000310590F407C02C30310551F02F303105C2 -:1035200039F00AC0803E10F0803F31F481E0089508 -:1035300093FB882780F9089580E00895CF93DF9367 -:1035400000D000D01F92CDB7DEB70F900F900F9034 -:103550000F900F90DF91CF910895CF93DF9300D01C -:1035600000D000D0CDB7DEB726960FB6F894DEBFF8 -:103570000FBECDBFDF91CF9108951F93CF93DF93FF -:10358000C091840116E080918501C81799F0D0E0C0 -:103590001C9FF0011D9FF00D1124EA57FE4F408142 -:1035A000518162817381848195810E94AD1A219637 -:1035B000C770E9CFDF91CF911F9108954091B60177 -:1035C0005091B7016091B8017091B9018091BA0131 -:1035D0009091BB010C94AD1ACF938091BB01829561 -:1035E0008F7009F05FC08091B801882309F45AC038 -:1035F00020918401A09185016091B6017091B7017D -:103600008091B9019091BA0131E06F3F09F030E04B -:10361000B32FC6E02A1709F445C0009721F07F3F79 -:1036200021F44B2F03C041E001C040E030E040FDF9 -:1036300035C0C29FF001C39FF00D1124EA57FE4F21 -:10364000418174132BC04081641328C04281411111 -:1036500025C0438154814817590710F4415051093E -:10366000481B590B483C5105C8F48091BB018F7031 -:1036700080618093BB0186E0829FF001839FF00D03 -:103680001124E557FE4F80818F708061808386EB27 -:1036900091E00E945F17CF910C94BD1A2F5F3F4FAE -:1036A0002770B8CFCF910895CF92DF92EF92FF921B -:1036B0000F931F93CF93DF93CDB7DEB762970FB60B -:1036C000F894DEBF0FBECDBF8C0185E0F801DE01AE -:1036D0001D9601900D928A95E1F7D8014C911196B3 -:1036E0005C91119712966C9112971396ED90FC9045 -:1036F00014977091B601E091B7012091B901309112 -:10370000BA012115310531F0EF3F31F481E07F3FFF -:1037100019F403C081E001C080E0B82FB170CB2E56 -:1037200080FD6CC1D090B801DD2009F4F5C0F091A6 -:10373000BB01E216F30638F0C701821B930B883CED -:10374000910548F09BC0209530952E0D3F1D283CDB -:10375000310508F093C08F2F807F09F052C0E51328 -:1037600014C0741312C0D62E61110FC0FF70F06127 -:10377000F093BB010E94DE1A86EB91E00E945F1776 -:103780008091BB01F80185836CC1EF2831F05F3F68 -:1037900031F481E04F3F19F403C081E001C080E0C3 -:1037A00080FD03C081E0862701C080E0F82FF17022 -:1037B000FF2E80FF1CC0809184012091850136E09E -:1037C000821709F428C190E0389FF001399FF00D6D -:1037D0001124EA57FE4F7181571306C070814713B9 -:1037E00003C07281671303C001968770E9CFD62E9C -:1037F000662309F436C18091BB0181608093BB01CF -:1038000053C0E51308C0741306C0611104C0D80189 -:103810001596FC93AEC04D875E878D859E856A8B1D -:103820000E94791A6A89882329F1D62E662311F11C -:103830002091BB01822F82958F7090E002970CF44B -:1038400060C08091B6019091B70198878F831986E7 -:10385000FB86EA862C87CE01079651C0E51731F129 -:103860004D875E878D859E856A8B0E94791A6A894D -:1038700081112EC0C8010E945F17A4C08F2F807FC6 -:1038800069F77E2DF98AE88A89890E949E1A86EB5B -:1038900091E00E945F17E6EBF1E086E0DF011D9208 -:1038A0008A95E9F70E94DE1AD12CDBC07413D8CFB9 -:1038B0006111D6CFD8011596FC93C8010E945F17FD -:1038C000E6EBF1E086E0DF011D928A95E9F7C9C0D9 -:1038D000D62E662379F22091BB01822F82958F70BC -:1038E00090E0029774F08091B6019091B7019A83AD -:1038F00089831B82FD82EC822E83CE0101960E9479 -:103900005F1786E0F801A6EBB1E001900D928A9571 -:10391000E1F70E94EC1A6FC0E216F30628F0C70127 -:10392000821B930B9C0104C0209530952E0D3F1DEA -:10393000283C310508F052C0D62E662309F49ACFF0 -:10394000E5132CC074132AC08091BB0180FD1DC0FB -:10395000982F92959F70C9F0D80115968C93159762 -:103960009F3039F09F5F9295907F8F70892B1596CD -:103970008C93C8010E945F1786E0F801A6EBB1E0C6 -:1039800001900D928A95E1F736C086E0F801A6EB2A -:10399000B1E001900D928A95E1F763C04D875E8793 -:1039A0008D859E850E94791A882379F086E0F8013A -:1039B000A6EBB1E001900D928A95E1F70E94EC1A16 -:1039C0000E94DE1ADD24D3944CC08091BB0181603B -:1039D0008093BB01C8010E945F1743C07E2DF98A06 -:1039E000E88A89890E949E1AE6EBF1E086E0DF0111 -:1039F0001D928A95E9F70E94DE1A33C0662309F406 -:103A000039CF4D875E878D859E850E94791A8823E0 -:103A100009F430CFCBCF4D875E878D859E850E9480 -:103A20009E1F292F22952F7030E0223031052CF473 -:103A30009F7041F0811106C00CC0243031052CF478 -:103A40009F7049F4805E883020F0C8010E945F17A3 -:103A5000CF2CDC2C06C0D80115969C91907F91F755 -:103A6000F8CF8D2D62960FB6F894DEBF0FBECDBF96 -:103A7000DF91CF911F910F91FF90EF90DF90CF904A -:103A800008951F93CF93DF93CDB7DEB72C970FB672 -:103A9000F894DEBF0FBECDBF4F83588769877A8702 -:103AA0008B879C87CE0107960E94541B8823C1F008 -:103AB0002F8138858A859B85892B31F03F3F11F016 -:103AC00080E003C02F3FE1F781E0811147C04F81C3 -:103AD000588569857A858B859C850E94AD1A3EC084 -:103AE00086E0FE013796DE01119601900D928A95CF -:103AF000E1F7FF81E8854A855B854115510531F085 -:103B0000EF3F31F481E0FF3F19F403C081E001C0D1 -:103B100080E080FD23C02091850130E0C90101963D -:103B2000877099276091840170E086179707F1F1FB -:103B3000F983EA835D834C8396E0929FD001939F43 -:103B4000B00D1124AA57BE4FFE01319601900D927F -:103B50009A95E1F7809385010E94BD1A16E0809145 -:103B6000840190918501891779F1189FC001112472 -:103B70008A579E4F0E94541B882331F1E0918401A3 -:103B80001E9FF0011124EA57FE4F4081518162814E -:103B90007381848195810E94AD1A8091840190E0A7 -:103BA00001968770992780938401D9CF0E94751A56 -:103BB0001092850110928401E6EBF1E086E0DF01CE -:103BC0001D928A95E9F7CACF2C960FB6F894DEBFFE -:103BD0000FBECDBFDF91CF911F910895EF92FF925D -:103BE0000F931F93CF93DF939C01009709F471C04B -:103BF000F12CEE24E394E9012196F90184918437B4 -:103C000040F4843008F056C0813081F0823021F1D8 -:103C100060C0853709F449C0C0F19CE7980F903720 -:103C200008F057C08F770E94021746C089010E5FC7 -:103C30001F4FFE01849190E2980F983050F48770E6 -:103C4000FE2D01C0FF0F8A95EAF78F2F0E94932067 -:103C500015C00E943A1614C089010E5F1F4FFE0165 -:103C6000849190E2980F983068F48770FE2D01C01F -:103C7000FF0F8A95EAF78F2F0E9499200E94BC209F -:103C8000E8011AC00E940217FBCF2E5F3F4FFE01D2 -:103C9000C491CC2341F08FE99FE00197F1F700C078 -:103CA0000000C150F6CFE90107C0FE01F490E90120 -:103CB000229602C00E943A168F2D882341F0EFE928 -:103CC000FFE03197F1F700C000008150F6CF9E0170 -:103CD00092CFDF91CF911F910F91FF90EF900895B8 -:103CE00008956093C0017093C1018093C2019093C5 -:103CF000C3010C94631A0F931F930091C00110919C -:103D0000C1012091C2013091C301062B172B282B32 -:103D1000392B0093C0011093C1012093C20130934D -:103D2000C3011F910F910C94631A0F931F9300917D -:103D3000C0011091C1012091C2013091C30106233D -:103D40001723282339230093C0011093C101209326 -:103D5000C2013093C3011F910F910C94631A0F930A -:103D60001F930091C0011091C1012091C2013091B7 -:103D7000C30106271727282739270093C00110936E -:103D8000C1012093C2013093C3011F910F910C9484 -:103D9000631A1092BC011092BD011092BE011092E4 -:103DA000BF010C94631A41E050E060E070E004C091 -:103DB000440F551F661F771F8A95D2F74093BC01A9 -:103DC0005093BD016093BE017093BF010C94631AC0 -:103DD00041E050E060E070E004C0440F551F661FF2 -:103DE000771F8A95D2F78091BC019091BD01A09177 -:103DF000BE01B091BF01842B952BA62BB72B8093CE -:103E0000BC019093BD01A093BE01B093BF010C947F -:103E1000631A41E050E060E070E004C0440F551FB9 -:103E2000661F771F8A95D2F74095509560957095DB -:103E30008091BC019091BD01A091BE01B091BF01E4 -:103E400084239523A623B7238093BC019093BD01BF -:103E5000A093BE01B093BF010C94631A41E050E0FF -:103E600060E070E004C0440F551F661F771F8A95FD -:103E7000D2F78091BC019091BD01A091BE01B0919B -:103E8000BF0184279527A627B7278093BC0190936D -:103E9000BD01A093BE01B093BF010C94631A0F93B0 -:103EA0001F930091BC011091BD012091BE01309182 -:103EB000BF01062B172B282B392B0093BC01109325 -:103EC000BD012093BE013093BF011F910F910C944F -:103ED000631A0F931F930091BC011091BD012091B3 -:103EE000BE013091BF0106231723282339230093F5 -:103EF000BC011093BD012093BE013093BF011F91FF -:103F00000F910C94631A0F931F930091BC011091B1 -:103F1000BD012091BE013091BF0106271727282738 -:103F200039270093BC011093BD012093BE0130934B -:103F3000BF011F910F910C94631A0895CF92DF92E5 -:103F4000EF92FF920F931F93CF93DF93EC01C090FA -:103F5000C001D090C101E090C201F090C3018091F6 -:103F6000BC019091BD01A091BE01B091BF01C82AD2 -:103F7000D92AEA2AFB2A0FE110E0B701A601002E98 -:103F800004C076956795579547950A94D2F740FFF8 -:103F900007C0BE01802F0E94B00B8130910539F41B -:103FA0000150110950F7BE0180E00E94B00BDF9173 -:103FB000CF911F910F91FF90EF90DF90CF900895D8 -:103FC00090910C01992361F190910D01992341F198 -:103FD000982F9695969596959F3088F4E0910E01CE -:103FE000F0910F01E90FF11D877021E030E001C071 -:103FF000220F8A95EAF78181822B8183089590911F -:10400000D70190FF2DC01F928F9387ED95E09F936E -:104010008F930E94EE070F900F900F900F900895CE -:1040200040910E0150910F0120E030E09FEFFA0126 -:10403000E20FF31F6281681799F09F3F19F4611135 -:1040400001C0922F2F5F3F4F2E30310581F79F3FE8 -:1040500039F0FA01E90FF11D97FDFA958283089571 -:10406000089590910C01992369F190910D01992384 -:1040700049F1982F9695969596959F3090F4E091FA -:104080000E01F0910F01E90FF11D877021E030E082 -:1040900001C0220F8A95EAF7209581812823218388 -:1040A00008959091D70190FF1FC01F928F9389EBC5 -:1040B00095E09F938F930E94EE070F900F900F90C3 -:1040C0000F90089540910E0150910F0120E030E0D3 -:1040D000FA01E20FF31F9281981301C012822F5F41 -:1040E0003F4F2E303105A1F7089581E090E0E09137 -:1040F0000E01F0910F01E80FF91F10820196803137 -:104100009105A9F708959091D601982B9093D60127 -:10411000089580959091D60198239093D6010895A3 -:104120001092D60108959091D501982B9093D501C6 -:10413000089580959091D50198239093D501089585 -:104140001092D50108958093C40108951092C4017E -:10415000089540910E0150910F0120E030E080E081 -:10416000FA01E20FF31F918191118F5F2F5F3F4F93 -:104170002F303105A9F70895E0910E01F0910F015C -:104180008091D6018083E0910E01F0910F01808132 -:104190009091D501892B80839091C401992361F07E -:1041A000E0910E01F0910F018081892B80830E94A4 -:1041B000A92081111092C40180910E0190910F01EC -:1041C0000C94BC1490933B0180933A010895CF92D4 -:1041D000DF92EF92FF920F931F936C01EE24FF2466 -:1041E000C114D104E104F10421F46B017C0180E0ED -:1041F00001C080E133272F2D1E2D0D2D0115110536 -:104200002105310519F0885F680179019701860160 -:10421000A4E03695279517950795AA95D1F701152E -:1042200011052105310519F08C5F680179019701AD -:104230008601F2E03695279517950795FA95D1F7FF -:10424000011511052105310519F08E5F680179010D -:10425000B701A6017695679557954795452B462B4F -:10426000472B09F08F5F1F910F91FF90EF90DF9028 -:10427000CF9008958295982F9C7C96959695837300 -:1042800044E0849F90011124922B892F8A7A86958D -:104290009575990F892B08951F93CF93DF931F92E4 -:1042A000CDB7DEB799830E943A21182F9981892FC3 -:1042B0000E943A21212F30E0322F2227A901482BDA -:1042C000CA010F90DF91CF911F9108958091F00165 -:1042D000843009F11092D80120E488E190E00FB613 -:1042E000F894A895809360000FBE2093600083B778 -:1042F000817F846083BF83B7816083BF7894889512 -:1043000083B78E7F83BF88E10FB6F89480936000F7 -:10431000109260000FBE089508950895CF930E94F3 -:104320008C210E9456090E948D21C0E08C2F0E9492 -:10433000810A811105C0CF5FCE30C1F780E001C096 -:1043400081E0CF9108950C94751A82E084BD93E0CA -:1043500095BD9AEF97BD80936E0008952FB7F8949E -:104360008091D9019091DA01A091DB01B091DC013B -:104370002FBF0895CF92DF92EF92FF920F931F937A -:104380002FB7F8944091D9015091DA016091DB0187 -:104390007091DC012FBF6A017B01EE24FF248C01A8 -:1043A00020E030E0C016D106E206F30610F44150DA -:1043B0005109481B590BCA011F910F91FF90EF90B3 -:1043C000DF90CF9008951F920F920FB60F92112495 -:1043D0008F939F93AF93BF938091D9019091DA010E -:1043E000A091DB01B091DC010196A11DB11D80936C -:1043F000D9019093DA01A093DB01B093DC01BF9166 -:10440000AF919F918F910F900FBE0F901F901895B5 -:104410000E94B711F8942FEF87EA91E6215080406F -:104420009040E1F700C0000087E090EBDC01809352 -:10443000F9019093FA01A093FB01B093FC012CE0E9 -:1044400088E190E00FB6F894A895809360000FBEC5 -:1044500020936000FFCFEF92FF920F931F93CF93B3 -:10446000DF93E82EF12C8F2D0E94810AC0E0D0E06E -:10447000082F10E098010C2E02C0359527950A945C -:10448000E2F720FD05C02196C630D10599F709C095 -:104490006C2F7F2D80E00E948E0BE812F4CF81E01C -:1044A00005C0F3948EE0F812DECF80E0DF91CF916B -:1044B0001F910F91FF90EF900895CF93C82F8CE23A -:1044C0000E942B22882321F08C2FCF910C942B2239 -:1044D00080E0CF910895CF930E94B823811102C04C -:1044E0000E949E238CEF95E00E945507C5E6C150BF -:1044F00049F00E9456098FE39CE90197F1F700C04B -:104500000000F5CF85EF95E00E94550789E20E94F3 -:104510005D22811111C18AE20E945D2281110E94F7 -:104520009E2385E00E945D2281110E9408220E9444 -:10453000C3238093D70187E00E945D22882399F1ED -:104540008BE10E945D22882351F09091D70191FB6D -:10455000882780F921E0822780FB91F922C08EE034 -:104560000E945D22882351F09091D70192FB882709 -:1045700080F921E0822780FB92F913C080E10E943C -:104580005D229091D701882341F093FB882780F921 -:1045900021E0822780FB93F904C0892F809580FB5E -:1045A00090F99093D7018091D7010E94C7230E9470 -:1045B000D5238093EA0180EE0E945D22882341F09A -:1045C0008091EA01982F909590FB80F98093EA0101 -:1045D00089E30E945D22882359F09091EA0191FBC2 -:1045E000882780F921E0822780FB91F99093EA01E6 -:1045F00082EE0E945D22882359F09091EA0192FB9D -:10460000882780F921E0822780FB92F99093EA01C4 -:1046100086EE0E945D22882359F09091EA0193FB77 -:10462000882780F921E0822780FB93F99093EA01A3 -:1046300083EE0E945D22882359F09091EA0194FB59 -:10464000882780F921E0822780FB94F99093EA0182 -:1046500085E30E945D22882359F09091EA0195FB41 -:10466000882780F921E0822780FB95F99093EA0161 -:1046700081E30E945D22882359F09091EA0196FB24 -:10468000882780F921E0822780FB96F99093EA0140 -:1046900081E10E945D22882359F09091EA0197FB05 -:1046A000882780F921E0822780FB97F99093EA011F -:1046B0008091EA010E94D9238091EA0187FB882733 -:1046C00080F980930D0187E20E945D22C82F8EE160 -:1046D0000E945D228111C2608FE10E945D228111E2 -:1046E000C46080E20E945D228111C86081E20E9464 -:1046F0005D228111C06182E20E945D228111C0624F -:1047000083E20E945D228111C06484E20E945D22E6 -:10471000882311F0C06802C0CC2329F08C2F0E949E -:10472000D0236C2F03C00E94CC23682F70E080E060 -:1047300090E0CF910C94711ECF9108956DEE7EEFB5 -:1047400080E090E00E94932D60E082E090E00E9483 -:10475000852D60E083E090E00E94852D60E084E09C -:1047600090E00E94852D60E085E090E00C94852D1E -:1047700080E090E00E947F2D21E08D3E9E4F09F069 -:1047800020E0822F089582E090E00C94772D682F2E -:1047900082E090E00C94852D83E090E00C94772DDE -:1047A000682F83E090E00C94852D84E090E00C94D9 -:1047B000772D682F84E090E00C94852D8091DF01A7 -:1047C00080FF0BC06091130185E0689FB001112448 -:1047D00075956795759567952AC081FF09C06091A9 -:1047E000130185E0689FB0011124759567951FC07E -:1047F00082FF07C06091130185E0689FB00111241A -:1048000016C04091E0014423C9F06091120146179F -:1048100088F72091130185E0289F90011124429F81 -:10482000C001439F900D112470E00E94492D603813 -:10483000710540F46115710539F002C065E070E062 -:10484000862F08958FE7089581E008958091DF0114 -:1048500080FF08C06091110170E0759567957595AE -:10486000679521C081FF06C06091110170E07595C8 -:10487000679519C082FF04C06091110170E010C0FB -:104880008091E0018823C1F0609110018617A0F7A4 -:1048900090911101989FC001112470E00E94492D50 -:1048A0006038710528F46115710521F0862F08958F -:1048B0008FE7089581E0089561E070E0F4CF803FD4 -:1048C00021F40E94DE23819504C0813F29F40E94D7 -:1048D000DE238093E3010895823F21F40E94DE23CA -:1048E000819504C0833F29F40E94DE238093E20176 -:1048F0000895893F19F40E94262405C08A3F31F4A7 -:104900000E94262481958093E40108958B3F21F431 -:104910000E942624819504C08C3F29F40E942624FD -:104920008093E5010895843F21F48091E101816045 -:1049300017C0853F21F48091E101826011C0863F5C -:1049400021F48091E10184600BC0873F21F48091C4 -:10495000E101886005C0883F31F48091E101806108 -:104960008093E10108958D3F21F48091DF01816002 -:104970000BC08E3F21F48091DF01826005C08F3F24 -:1049800029F48091DF0184608093DF010895803FE6 -:1049900039F48091E30187FF6CC01092E30169C094 -:1049A000813F29F48091E3011816BCF362C0909115 -:1049B000E201823F29F497FF5CC01092E20159C0E6 -:1049C000833F19F41916CCF354C0893F41F4809108 -:1049D000E40118160CF04DC01092E4014AC08A3F61 -:1049E00029F48091E40187FF44C0F6CF8B3F39F46E -:1049F0008091E50187FF3DC01092E5013AC08C3FF0 -:104A000029F48091E5011816BCF333C0843F21F4EA -:104A10008091E1018E7F17C0853F21F48091E101F3 -:104A20008D7F11C0863F21F48091E1018B7F0BC007 -:104A3000873F21F48091E101877F05C0883F31F4F1 -:104A40008091E1018F7E8093E10113C08D3F21F4BD -:104A50008091DF018E7F0BC08E3F21F48091DF01BA -:104A60008D7F05C08F3F29F48091DF018B7F80937C -:104A7000DF018091E20181110EC08091E30181117B -:104A80000AC08091E401811106C08091E501811185 -:104A900002C01092E00108958091D70183FF7EC08B -:104AA00088E396E00E9455078091E1011F928F9361 -:104AB00083E396E09F938F930E94EE0781E396E055 -:104AC0000E9455072091E201822F992787FD90953A -:104AD0009F932F938EE296E09F938F930E94EE0711 -:104AE0008CE296E00E9455072091E301822F9927DE -:104AF00087FD90959F932F9389E296E09F938F93E4 -:104B00000E94EE0787E296E00E9455072091E4019B -:104B1000822F992787FD90959F932F9384E296E0AB -:104B20009F938F930E94EE0782E296E00E945507C2 -:104B30002091E501822F992787FD90959F932F93D0 -:104B40008FE196E09F938F930E94EE078CE196E0B1 -:104B50000E9455078091E0011F928F9389E196E0B2 -:104B60009F938F930E94EE0787E196E00E9455077E -:104B70008091DF011F928F9384E196E09F938F9342 -:104B80000E94EE0781E196E00E9455078DB79EB71F -:104B90004C960FB6F8949EBF0FBE8DBF81EE91E08C -:104BA0000E9401150E94AE219093DE018093DD01E9 -:104BB00008951F93CF93DF938091DD019091DE01E3 -:104BC0000E94BA214091E001442321F02091140178 -:104BD00030E006C0209115015AE0259F9001112474 -:104BE0008217930708F482C08091E2011091E301DB -:104BF000D091E401C091E501811107C0111105C0F8 -:104C0000D11103C0CC2309F471C04F3F19F04F5F9D -:104C10004093E001181624F40E94DE238093E20101 -:104C20008091E20187FF05C00E94DE238195809379 -:104C3000E201111624F40E94DE238093E3018091A7 -:104C4000E30187FF05C00E94DE2381958093E30185 -:104C50006091E201662339F11091E301112319F10A -:104C6000772767FD7095872F972F0E944E2C23E39F -:104C700033E343E35FE30E94B22C0E941B2C60935A -:104C8000E201612F772767FD7095872F972F0E948C -:104C90004E2C23E333E343E35FE30E94B22C0E94F4 -:104CA0001B2C6093E3011D1624F40E94262480939C -:104CB000E4018091E40187FF05C00E9426248195CC -:104CC0008093E4011C1624F40E9426248093E501BD -:104CD0008091E50187FF05C00E942624819580937D -:104CE000E501DF91CF911F910C944C25DF91CF917D -:104CF0001F910895E1EEF1E085E0DF011D928A95B4 -:104D0000E9F71092E0011092DF0108958BE598E039 -:104D10000E9455071F9281E08F931F9285E08F9329 -:104D20008DE098E09F938F930E94EE070F900F9075 -:104D30000F900F900F900F9008958330E9F128F4B1 -:104D4000813061F0823009F10895853009F462C044 -:104D500008F449C0863009F474C008952091150103 -:104D6000862F90E0820F911D8F3F910520F4620FF6 -:104D70006093150103C08FEF809315018091150199 -:104D80001F928F9386E497E072C020911401862FC2 -:104D900090E0820F911D8F3F910520F4620F609388 -:104DA000140103C08FEF80931401809114011F92AE -:104DB0008F9384E397E05BC020911301862F90E0EE -:104DC000820F911D8F3F910520F4620F60931301B4 -:104DD00003C08FEF80931301809113011F928F9373 -:104DE00081E297E044C020911201862F90E0820F6B -:104DF000911D8F3F910520F4620F6093120103C053 -:104E00008FEF80931201809112011F928F938CE09B -:104E100097E02DC020911101862F90E0820F911D07 -:104E20008F3F910520F4620F6093110103C08FEF53 -:104E300080931101809111011F928F9383EF96E06F -:104E400016C020911001862F90E0820F911D8F3F98 -:104E5000910520F4620F6093100103C08FEF8093DF -:104E60001001809110011F928F9388ED96E09F931F -:104E70008F930E94EE070F900F900F900F90089560 -:104E8000833081F128F4813059F08230D1F00895D7 -:104E9000853009F449C0B8F1863009F456C0089548 -:104EA00080911501681720F4861B8093150102C0BC -:104EB00010921501809115011F928F9389EC96E055 -:104EC00054C080911401681720F4861B809314014C -:104ED00002C010921401809114011F928F9387EBEE -:104EE00096E043C080911301681720F4861B8093DD -:104EF000130102C010921301809113011F928F932E -:104F000084EA96E032C080911201681720F4861B73 -:104F10008093120102C010921201809112011F921F -:104F20008F938FE896E021C080911101681720F4DB -:104F3000861B8093110102C0109211018091110112 -:104F40001F928F9386E796E010C08091100168173A -:104F500020F4861B8093100102C0109210018091F2 -:104F600010011F928F938BE596E09F938F930E9481 -:104F7000EE070F900F900F900F900895CF93C82FCA -:104F80001F928F9320E639E03F932F930E94EE0704 -:104F900061E070E080E090E004C0660F771F881F3A -:104FA000991FCA95D2F70E94711E0F900F900F9013 -:104FB0000F90CF910C94751ACF938D3109F465C081 -:104FC000B0F58E3009F4CBC100F5873009F49BC1F0 -:104FD000A8F4863009F06AC28091D701817F8E7F64 -:104FE0008093D70185E699E00E94550787EA9DE006 -:104FF0000E94550781E08093E70180C1883009F461 -:105000004FC08B3009F47CC151C2863109F4EDC127 -:1050100038F4803109F4B6C1813109F42DC246C299 -:10502000893109F4CBC18B3109F486C13FC2853384 -:1050300009F434C248F4873209F430C208F430C2AB -:10504000893209F42BC232C2833438F48A3308F02F -:1050500029C2883309F454C129C2833409F41EC219 -:10506000883409F023C20E94751A86E99DE00E94E7 -:1050700055079FEF23ED80E3915020408040E1F7FA -:1050800000C000000E94082239C186EB9DE00E940A -:1050900055070E94D52B0E94B0140E94EE0C2EC121 -:1050A0008BEA9DE00E94550786E79BE00E9455072A -:1050B0000E94CC231F928F9383E79BE09F938F9353 -:1050C0000E94EE0781E79BE00E9455070E94C323E0 -:1050D000C82F8EE59BE00E9455071F92CF9329E5CC -:1050E0003BE03F932F930E94EE0787E59BE00E94F1 -:1050F00055078DE49BE00E9455078C2F81701F920D -:105100008F932AE43BE03F932F930E94EE0788E4BD -:105110009BE00E9455078EE39BE00E945507C1FB70 -:10512000882780F91F928F932BE33BE03F932F93C7 -:105130000E94EE0789E39BE00E9455078DE29BE009 -:105140000E945507C2FB882780F91F928F932AE29D -:105150003BE03F932F930E94EE0788E29BE00E9482 -:1051600055078FE19BE00E945507C3FBCC27C0F990 -:105170001F92CF938CE19BE09F938F930E94EE0749 -:105180008AE19BE00E9455070E94D523C82F86E044 -:105190009BE00E9455071F92CF9321E03BE03F9395 -:1051A0002F930E94EE078FEF9AE00E94550786EE3C -:1051B0009AE00E9455078C2F81701F928F9323EEE7 -:1051C0003AE03F932F930E94EE078DB79EB78096EB -:1051D0000FB6F8949EBF0FBE8DBF81EE9AE00E947D -:1051E00055078AEC9AE00E945507C1FB882780F991 -:1051F0001F928F9327EC3AE03F932F930E94EE0784 -:1052000085EC9AE00E94550783EB9AE00E945507CF -:10521000C2FB882780F91F928F9320EB3AE03F93DF -:105220002F930E94EE078EEA9AE00E9455078CE9C0 -:105230009AE00E945507C3FB882780F91F928F933D -:1052400029E93AE03F932F930E94EE0787E99AE01D -:105250000E9455078DE89AE00E945507C4FB8827F5 -:1052600080F91F928F932AE83AE03F932F930E9490 -:10527000EE0788E89AE00E94550786E79AE00E94C8 -:105280005507C5FB882780F91F928F9323E73AE0E3 -:105290003F932F930E94EE0781E79AE00E94550703 -:1052A00085E59AE00E945507C6FB882780F91F9282 -:1052B0008F9322E53AE03F932F930E94EE0780E51B -:1052C0009AE00E94550788E49AE00E945507C7FBC0 -:1052D000CC27C0F91F92CF9385E49AE09F938F93D8 -:1052E0000E94EE0783E49AE00E9455078DB79EB7AF -:1052F0004C960FB6F8949EBF0FBE8DBFC1E0DBC0C9 -:105300008CE899E058C08091D701C82FC17080FF08 -:1053100009C089E89DE00E9455078091D701817FEF -:105320008E7F44C08DE79DE00E9455078091D70194 -:1053300081608093D701E2CF8091D70181FBCC2798 -:10534000C0F991E0C927C0FB81F98093D701CC2334 -:1053500019F080E79DE025C082E69DE02CC0809199 -:10536000D70182FBCC27C0F991E0C927C0FB82F9A5 -:105370008093D701CC2319F083E59DE012C083E42C -:105380009DE019C08091D70183FBCC27C0F991E043 -:10539000C927C0FB83F98093D701CC2351F087E361 -:1053A0009DE00E9455078091D70181608093D701CD -:1053B00082C08AE29DE00E945507A0CF8BE19DE06C -:1053C0000E9455078FEE9CE00E94550782EB9CE0FF -:1053D0000E94550785E89CE00E94550781E49CE007 -:1053E0000E94550786E19CE0E6CF88E09CE00E94A1 -:1053F00055070E94B0141F928F938EEE9BE09F93EF -:105400008F930E94EE0780910C011F928F9387ED7E -:105410009BE09F938F930E94EE0780916E011F92F5 -:105420008F9384EC9BE09F938F930E94EE07809173 -:105430000D011F928F9381EB9BE09F938F930E94AE -:10544000EE078091D9019091DA01A091DB01B09132 -:10545000DC01BF93AF939F938F938DE99BE09F9364 -:105460008F930E94EE078DB79EB746960FB6F894BD -:105470009EBF0FBE8DBF42CF0E94751AC0910D0115 -:1054800081E0C827C0930D01CC2329F083E99BE07C -:105490000E94550710C088E89BE08DCF80E003C0D4 -:1054A0008D5101C089530E94BE2728CF86E89BE01A -:1054B0000E945507C0E08C2FCF91089580E0089599 -:1054C00080E00895CF93C82F8091E701813081F06B -:1054D00020F0823009F44CC042C1A0910E01B0917D -:1054E0000F018C91813169F0823209F03AC109C013 -:1054F000A0910E01B0910F018C91813111F0823297 -:1055000049F48C2F0E945E2A81112FC08C2F0E949B -:10551000DC272CC08C2F0E94602A811126C0C43148 -:10552000E1F070F4CB3081F0C031D1F40E948626D6 -:1055300088E599E00E94550782E08093E70115C055 -:10554000C93259F0C83361F485E699E00E945507E5 -:105550008CE599E00E94550708C01092E70103C14D -:1055600086E599E00E945507FEC081E08170FDC08C -:10557000C43220F5CE3108F0C0C0CB3099F1C8F468 -:10558000C73009F0D2C08AE08093150194E190936E -:10559000140193E0909313018093120188E08093AB -:1055A000110188E2809310018CEF97E00E9455076B -:1055B000BFC0C33149F1C431C1F0B7C0CB3409F425 -:1055C000A9C028F4C93289F0C83361F0AEC0C13532 -:1055D00009F49EC0C23509F499C0CE3409F0A5C0C3 -:1055E0006AE09EC00E948626A3C08091E6018823BF -:1055F00019F01092E6019CC089E098E00E945507DE -:1056000081E08093E701B1C083EE97E00E945507E7 -:1056100081ED97E00E945507809115011F928F93AD -:105620008EEC97E09F938F930E94EE078CEC97E0AF -:105630000E9455078AEB97E00E945507809114015C -:105640001F928F9387EB97E09F938F930E94EE07B3 -:1056500085EB97E00E94550786EA97E00E94550780 -:10566000809113011F928F9383EA97E09F938F930A -:105670000E94EE0781EA97E00E94550780E997E0D3 -:105680000E945507809112011F928F938DE897E039 -:105690009F938F930E94EE078BE897E00E94550737 -:1056A00086E797E00E945507809111011F928F9322 -:1056B00083E797E09F938F930E94EE0781E797E03F -:1056C0000E9455078AE597E00E94550780911001D6 -:1056D0001F928F9387E597E09F938F930E94EE0729 -:1056E00085E597E00E9455078DB79EB748960FB69F -:1056F000F8949EBF0FBE8DBF1BC0CE51EC2FF0E0C3 -:10570000E15DFE4F80818093E60112C061E003C03D -:1057100061E006C06AE08091E6010E949D2608C013 -:105720008091E6010E94402703C08AEF97E013C0F2 -:105730008091E601882369F01F928F9384EF97E0B0 -:105740009F938F930E94EE070F900F900F900F90F2 -:1057500004C081EF97E00E94550781E006C01092D7 -:10576000E70180E002C080E001CFCF910895E1E839 -:10577000F0E08081886080838081816080838FB742 -:10578000F89493E09093890090ED909388008FBFF8 -:105790000895EFE6F0E08081826080830895EFE66F -:1057A000F0E080818D7F80830895EFE6F0E08081D6 -:1057B00092E08927808308951F920F920FB60F926F -:1057C00011242F933F934F935F936F937F938F9306 -:1057D0009F93AF93BF93EF93FF938091E8019091D4 -:1057E000E90101969093E9018093E801811103C0DA -:1057F00082E00E94EE0CE091E901E695E695F0E08A -:10580000EA53F24FE4918091E8018E1303C080E0E7 -:105810000E94EE0CFF91EF91BF91AF919F918F91FC -:105820007F916F915F914F913F912F910F900FBE9C -:105830000F901F90189504D06894B1118DC00895F1 -:1058400070D088F09F5790F0B92F9927B751A0F0EA -:10585000D1F0660F771F881F991F1AF0BA95C9F704 -:1058600012C0B13081F077D0B1E0089574C0672FD5 -:10587000782F8827B85F39F0B93FCCF386957795B4 -:105880006795B395D9F73EF490958095709561959D -:105890007F4F8F4F9F4F0895E89409C097FB3EF4C8 -:1058A00090958095709561957F4F8F4F9F4F99236D -:1058B000A9F0F92F96E9BB279395F69587957795EB -:1058C0006795B795F111F8CFFAF4BB0F11F460FFAB -:1058D0001BC06F5F7F4F8F4F9F4F16C0882311F003 -:1058E00096E911C0772321F09EE8872F762F05C017 -:1058F000662371F096E8862F70E060E02AF09A95B2 -:10590000660F771F881FDAF7880F9695879597F9A6 -:10591000089557FD9058440F551F59F05F3F71F09F -:105920004795880F97FB991F61F09F3F79F0879506 -:105930000895121613061406551FF2CF4695F1DF8F -:1059400008C0161617061806991FF1CF869571051F -:10595000610508940895E894BB2766277727CB0153 -:1059600097F908950BD078C069D028F06ED018F060 -:10597000952309F05AC05FC01124EECFCADFA0F30F -:10598000959FD1F3950F50E0551F629FF001729FD4 -:10599000BB27F00DB11D639FAA27F00DB11DAA1FF3 -:1059A000649F6627B00DA11D661F829F2227B00D40 -:1059B000A11D621F739FB00DA11D621F839FA00DCB -:1059C000611D221F749F3327A00D611D231F849F1B -:1059D000600D211D822F762F6A2F11249F57504072 -:1059E0008AF0E1F088234AF0EE0FFF1FBB1F661F0D -:1059F000771F881F91505040A9F79E3F510570F0C6 -:105A000014C0AACF5F3FECF3983EDCF38695779500 -:105A10006795B795F795E7959F5FC1F7FE2B880FC0 -:105A2000911D9695879597F9089597F99F6780E856 -:105A300070E060E008959FEF80EC089500240A94E0 -:105A40001616170618060906089500240A94121659 -:105A50001306140605060895092E0394000C11F48C -:105A6000882352F0BB0F40F4BF2B11F460FF04C039 -:105A70006F5F7F4F8F4F9F4F0895991B79E004C050 -:105A8000991F961708F0961B881F7A95C9F780957D -:105A9000089597FB072E16F4009407D077FD09D0E0 -:105AA0000E94632D07FC05D03EF4909581959F4F91 -:105AB0000895709561957F4F0895EE0FFF1F059033 -:105AC000F491E02D0994AA1BBB1B51E107C0AA1F4A -:105AD000BB1FA617B70710F0A61BB70B881F991F8F -:105AE0005A95A9F780959095BC01CD010895F99933 -:105AF000FECF92BD81BDF89A992780B50895A8E19F -:105B0000B0E042E050E00C949A2D262FF999FECF98 -:105B10001FBA92BD81BD20BD0FB6F894FA9AF99ACA -:105B20000FBE019608950E94852D272F0C94862D77 -:105B3000DC01CB01FC01F999FECF06C0F2BDE1BD4D -:105B4000F89A319600B40D9241505040B8F708953C -:045B5000F894FFCFF7 -:105B54002002EF0CE00DBD0D890D560D0101C501AC -:105B640028080A03140A3F4D3620394605F904C3B0 -:105B740004A3046A04DD03F6030F042804480401A3 -:0A5B840002030405060708090000EB -:00000001FF diff --git a/keyboard/ergodox_ez/keymaps/keymap_jack.c b/keyboard/ergodox_ez/keymaps/keymap_jack.c deleted file mode 100644 index 2677a3d8fa..0000000000 --- a/keyboard/ergodox_ez/keymaps/keymap_jack.c +++ /dev/null @@ -1,185 +0,0 @@ -#include "ergodox_ez.h" -#include "debug.h" -#include "action_layer.h" - -// TODO: Define layer names that make sense for the ErgoDox EZ. -#define BASE 0 // default layer -#define SYMB 1 // symbols -#define MDIA 2 // media keys - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -/* Keymap 0: Basic layer - * - * ,--------------------------------------------------. ,--------------------------------------------------. - * | = | 1 | 2 | 3 | 4 | 5 | LEFT | | RIGHT| 6 | 7 | 8 | 9 | 0 | - | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | Del | Q | W | E | R | T | L1 | | L1 | Y | U | I | O | P | \ | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | BkSp | A | S | D | F | G |------| |------| H | J | K | L |; / L2| ' | - * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------| - * | LShift |Z/Ctrl| X | C | V | B | | | | N | M | , | . |//Ctrl| RShift | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * |Grv/L1| '" |AltShf| Left | Right| | Up | Down | [ | ] | ~L1 | - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * | App | LGui | | Alt |Ctrl/Esc| - * ,------|------|------| |------+--------+------. - * | | | Home | | PgUp | | | - * | Space|Backsp|------| |------| Tab |Enter | - * | |ace | End | | PgDn | | | - * `--------------------' `----------------------' - */ -// If it accepts an argument (i.e, is a function), it doesn't need KC_. -// Otherwise, it needs KC_* -[BASE] = KEYMAP( // layer 0 : default - // left hand - KC_NO, KC_1, KC_2, KC_3, KC_4, KC_5, KC_NO, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_NO, - KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_NO, - KC_NO, KC_LCTL, KC_LALT,KC_LGUI, MO(2), - ALT_T(KC_APP), KC_LGUI, - KC_HOME, - KC_SPC,KC_SPC,KC_END, - // right hand - KC_NO, KC_6, KC_7, KC_8, KC_9, KC_0, KC_NO, - KC_NO, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, - KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, - KC_NO, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_ENT, - MO(1), KC_LEFT,KC_DOWN,KC_UP, KC_RGHT, - KC_NO, KC_NO, - KC_PGUP, - KC_PGDN, KC_SPC,KC_SPC - ), -/* Keymap 1: Symbol Layer - * - * ,--------------------------------------------------. ,--------------------------------------------------. - * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | | ! | @ | { | } | | | | | | Up | 7 | 8 | 9 | * | F12 | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | # | $ | ( | ) | ` |------| |------| Down | 4 | 5 | 6 | + | | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | \ | | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | | | | | | | | . | 0 | = | | - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * | | | | | | - * ,------|------|------| |------+------+------. - * | | | | | | | | - * | | |------| |------| | | - * | | | | | | | | - * `--------------------' `--------------------' - */ -// SYMBOLS -[SYMB] = KEYMAP( - // left hand - KC_TRNS,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS, - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_TRNS, - KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, - KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,KC_TRNS, - KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, - KC_TRNS,KC_TRNS, - KC_TRNS, - KC_TRNS,KC_TRNS,KC_TRNS, - // right hand - KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, - KC_TRNS, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, - KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, - KC_TRNS, KC_F12, KC_NO, KC_NO, KC_NO, RESET, KC_TRNS, - KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY, - KC_TRNS, KC_TRNS, - KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS -), -/* Keymap 2: Media and mouse keys - * - * ,--------------------------------------------------. ,--------------------------------------------------. - * | | | | | | | | | | | | | | | | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | | | | MsUp | | | | | | | | | | | | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | |MsLeft|MsDown|MsRght| |------| |------| | | | | | Play | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | | | | | | | | | | | Prev | Next | | | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | | | | Lclk | Rclk | |VolUp |VolDn | Mute | | | - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * | | | | | | - * ,------|------|------| |------+------+------. - * | | | | | | |Brwser| - * | | |------| |------| |Back | - * | | | | | | | | - * `--------------------' `--------------------' - */ -// MEDIA AND MOUSE -KEYMAP( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_TRNS, - KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, - KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, - KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, - // right hand - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, - KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, - KC_TRNS, KC_F12, KC_NO, KC_NO, KC_NO, RESET, KC_TRNS, - KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY, - KC_TRNS, KC_TRNS, - KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS -), -}; - -const uint16_t PROGMEM fn_actions[] = { - [1] = ACTION_LAYER_TAP_TOGGLE(SYMB) // FN1 - Momentary Layer 1 (Symbols) -}; - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - // MACRODOWN only works in this function - switch(id) { - case 0: - if (record->event.pressed) { - register_code(KC_RSFT); - } else { - unregister_code(KC_RSFT); - } - break; - } - return MACRO_NONE; -}; - -// Runs just one time when the keyboard initializes. -void * matrix_init_user(void) { - -}; - -// Runs constantly in the background, in a loop. -void * matrix_scan_user(void) { - - uint8_t layer = biton32(layer_state); - - ergodox_board_led_off(); - ergodox_right_led_1_off(); - ergodox_right_led_2_off(); - ergodox_right_led_3_off(); - switch (layer) { - // TODO: Make this relevant to the ErgoDox EZ. - case 1: - ergodox_right_led_1_on(); - break; - case 2: - ergodox_right_led_2_on(); - break; - default: - // none - break; - } - -}; diff --git a/keyboard/ergodox_ez/keymaps/keymap_osx_de.c b/keyboard/ergodox_ez/keymaps/keymap_osx_de.c deleted file mode 100644 index cc9076eec8..0000000000 --- a/keyboard/ergodox_ez/keymaps/keymap_osx_de.c +++ /dev/null @@ -1,277 +0,0 @@ -#include "ergodox_ez.h" -#include "debug.h" -#include "action_layer.h" -#include "keymap_extras/keymap_german_osx.h" - -#define BASE 0 // default layer -#define SYMB 1 // symbols -#define MDIA 2 // media keys -#define CRSR 3 // media keys -#define NUMB 4 // number keys - -#define M_CTRL_CMDV 1 -#define M_CTRL_CMDC 2 -#define M_MEH_SH_ACUT 3 - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -/* Keymap 0: Basic layer - * - * ,--------------------------------------------------. ,--------------------------------------------------. - * | ESC | 1 | 2 | 3 | 4 | 5 |CMD-V | |CMD-C | 6 | 7 | 8 | 9 | 0 | ß | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | TAB | Q | W | E | R | T | CMD | | CMD | Z | U | I | O | P | ü | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | L3 | A | S | D | F | G |------| |------| H | J | K | L | ö | ä/L2 | - * |--------+------+------+------+------+------| LALT | | RALT |------+------+------+------+------+--------| - * | LShift |Y/Ctrl| X | C | V | B | | | | N | M | , | . |-/Ctrl| RShift | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | | ! | ? | | | | | \ | [ | ] | | | # | F12 | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | # | $ | \ | / | . |------| |------| / | ( | ) | { | } | | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | | ^ | % | | | ~ | | | | & | < | > | " | ' | ? | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | | | | | | | | | . | ! | | - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * | | | | | | - * ,------|------|------| |------+------+------. - * | | | | | | | | - * | | |------| |------| | | - * | | | | | | | | - * `--------------------' `--------------------' - */ -// SYMBOLS -[SYMB] = KEYMAP( - // left hand - KC_TRNS,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS, - KC_TRNS,DE_LESS,DE_MORE,DE_EXLM,DE_QST, KC_TRNS,KC_TRNS, - KC_TRNS,DE_HASH,DE_DLR, DE_BSLS,DE_SLSH,KC_DOT, - KC_TRNS,KC_TRNS,DE_LESS,DE_PERC,DE_PIPE,DE_TILD,KC_TRNS, - KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, - KC_TRNS,KC_TRNS, - KC_TRNS, - KC_TRNS,KC_DEL,KC_TRNS, - // right hand - KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, - KC_TRNS, LALT(LSFT(KC_7)), LALT(KC_5), LALT(KC_6), LALT(KC_7), DE_HASH, KC_F12, - DE_SLSH, DE_LPRN, DE_RPRN, LALT(KC_8), LALT(KC_9), KC_TRNS, - KC_TRNS, DE_AMPR, KC_GRV, LSFT(KC_GRV), DE_DQOT, DE_QUOT, DE_QST, - KC_TRNS,KC_DOT, KC_EXLM, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, - KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS -), -/* Keymap 2: Media and mouse keys - * - * ,--------------------------------------------------. ,--------------------------------------------------. - * | | | | | | | | | | | | | | | Play | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | | | | MsUp | | | | | | | | | | | | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | |MsLeft|MsDown|MsRght| |------| |------| | | | | | | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | | | | | | | | | | | Prev | Next | | | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | | | | Lclk | Rclk | |VolUp |VolDn | Mute | | | - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * | | | | | | - * ,------|------|------| |------+------+------. - * | | | | | | |Brwser| - * | | |------| |------| |Back | - * | | | | | | | | - * `--------------------' `--------------------' - */ -// MEDIA AND MOUSE -KEYMAP( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS, - KC_TRNS, KC_WH_L, KC_WH_U, KC_WH_D, KC_WH_R, KC_BTN3, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2, - KC_TRNS, KC_TRNS, - KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, - // right hand - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_MUTE, KC_MPRV, KC_MNXT, KC_UP, KC_TRNS, - KC_VOLU, KC_VOLD, KC_LEFT, KC_DOWN, KC_RIGHT, - KC_TRNS, KC_TRNS, - KC_TRNS, - KC_TRNS, KC_TRNS, KC_WBAK -), -// Cursor layer -KEYMAP( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, - KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, - // right hand - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, - KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, - KC_TRNS, KC_TRNS, - KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS -), -//number pad -KEYMAP( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, - KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, - // right hand - KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, - KC_TRNS, KC_UP, KC_7, KC_8, KC_9, LSFT(KC_RBRC), KC_F12, - KC_DOWN, KC_4, KC_5, KC_6, KC_RBRC, KC_TRNS, - KC_TRNS, LSFT(KC_6), KC_1, KC_2, KC_3, LSFT(KC_7), KC_TRNS, - KC_0,KC_DOT, KC_0, KC_EQL, KC_TRNS, - KC_TRNS, KC_TRNS, - KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS -), -}; - -const uint16_t PROGMEM fn_actions[] = { - [1] = ACTION_LAYER_TAP_TOGGLE(SYMB), // FN1 - Momentary Layer 1 (Symbols) - [2] = ACTION_LAYER_TAP_TOGGLE(CRSR) // FN2 - Momentary Layer 2 (Cursors) -}; - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - static uint16_t start; - // MACRODOWN only works in this function - switch(id) { - case 0: - if (record->event.pressed) { - register_code(KC_RSFT); - } else { - unregister_code(KC_RSFT); - } - break; - case 1: - if (record->event.pressed) { - start = timer_read(); - return MACRO(D(LCTRL), END); - } else { - if (timer_elapsed(start) > 150) { - return MACRO(U(LCTRL), END); - } else { - return MACRO(U(LCTRL), D(LGUI), T(V), U(LGUI), END); - } - } - break; - case 2: - if (record->event.pressed) { - start = timer_read(); - return MACRO(D(LCTRL),END); - } else { - if (timer_elapsed(start) > 150){ - return MACRO(U(LCTRL),END); - } else { - return MACRO(U(LCTRL),D(LGUI),T(C),U(LGUI),END); - } - } - break; - case 3: - if (record->event.pressed) { - start = timer_read(); - return MACRO(D(LCTRL),D(LSFT),D(LALT),END); - } else { - if (timer_elapsed(start) > 150){ - return MACRO(U(LCTRL),U(LSFT),U(LALT),END); - } else { - return MACRO(U(LCTRL),U(LALT),T(EQL),U(LSFT),END); //cannot use DE_ACUT here, as macro needs KC_ prefix - } - } - break; - } - return MACRO_NONE; -}; - -// Runs just one time when the keyboard initializes. -void * matrix_init_user(void) { - -}; - -// Runs constantly in the background, in a loop. -void * matrix_scan_user(void) { - - uint8_t layer = biton32(layer_state); - - ergodox_board_led_off(); - ergodox_right_led_1_off(); - ergodox_right_led_2_off(); - ergodox_right_led_3_off(); - switch (layer) { - // TODO: Make this relevant to the ErgoDox EZ. - case 1: - ergodox_right_led_1_on(); - break; - case 2: - ergodox_right_led_2_on(); - break; - case 3: - ergodox_right_led_3_on(); - break; - case 4: - ergodox_right_led_1_on(); - ergodox_right_led_3_on(); - //ergodox_board_led_on(); - break; - default: - // none - break; - } - -}; diff --git a/keyboard/ergodox_ez/keymaps/keymap_osx_de.hex b/keyboard/ergodox_ez/keymaps/keymap_osx_de.hex deleted file mode 100644 index eb82384d54..0000000000 --- a/keyboard/ergodox_ez/keymaps/keymap_osx_de.hex +++ /dev/null @@ -1,1509 +0,0 @@ -:100000000C94CA070C940E080C940E080C940E085D -:100010000C940E080C940E080C940E080C940E0808 -:100020000C940E080C940E080C9488130C945A141B -:100030000C940E080C940E080C940E080C940E08E8 -:100040000C940E080C94322D0C940E080C940E088F -:100050000C940E080C942A230C940E080C940E0891 -:100060000C940E080C940E080C940E080C940E08B8 -:100070000C940E080C940E080C940E080C940E08A8 -:100080000C940E080C940E080C940E080C940E0898 -:100090000C940E080C940E080C940E080C940E0888 -:1000A0000C940E080C940E080C940E08C714E91456 -:1000B000D715E914D7152E155115D715A615B9154D -:1000C000001900192F192F197319B119CB1BCB1B4C -:1000D000CA19CB1BCB1ACB1A9F1BCB1BCB1BB61B36 -:1000E00002E002E2012E022E02E10002E002E10241 -:1000F000E20001E001E101E20002E001E3010602A9 -:100100000602E30002E00001E00002E001E3011961 -:10011000021902E30002E00001E0000000F0A1F09B -:10012000A329002B000354E100358100001E0014B8 -:100130000004001D7135004D001F001A0016001B41 -:1001400000E1044C00200008000700060050002ACF -:100150000021001500090019004F004A0022001775 -:10016000000A000500000002540130E3000000E234 -:1001700000000003300230E7000000E60000002E1F -:100180007F23001C000B0011000000045424001801 -:10019000000D00100052004B0025000C000E003630 -:1001A0000051002C00260012000F003700E1082843 -:1001B00000270013003300387130004E002D002F4F -:1001C000003482E5003181000001000100010001DE -:1001D00000010000003A003500310001000100017B -:1001E000003B0035022102350001004C003C001E9E -:1001F0000224062202010001003D002D02240224F7 -:1002000004010001003E000100370011040000015C -:1002100000010001000000010000000100010001D8 -:100220000000000100000001003F0024062402231A -:1002300002000001004000220425023500010001F7 -:100240000041002304260235023700010042002449 -:100250000425041F021E0201004300310026043160 -:1002600002010001004400450001002D02010000D0 -:100270000001000100010001000100000001000177 -:10028000000100FB000100010001000100F200F983 -:1002900000010001000100F000F100FA00F400018B -:1002A0000001000100F300FC00F500010001000165 -:1002B000000100F600000001000100010000000143 -:1002C0000000000100010001000000010000000129 -:1002D0000001000100010001000000010001000117 -:1002E000000100A800A9000100010001000100AC0C -:1002F00000AA00B600010001000100AB005000019F -:1003000000010001000100520051000100AE000197 -:1003100000010001004F0000000100010001000188 -:1003200000010000000100010001000100010001C6 -:1003300000010001000100010001000100010001B5 -:1003400000010001000100010001000100010001A5 -:100350000001000100010001000100010000000196 -:100360000001000100000001000000010001000187 -:100370000000000100000001000100010001000177 -:100380000000000100010001000100010001000166 -:100390000001000100010001000100010001000155 -:1003A00000010001005000010001000100010052A5 -:1003B000005100010001000100010001004F000098 -:1003C0000001000100010001000100000001000126 -:1003D00000010001000100010001000100500001C6 -:1003E0000001000100010052005100010001000164 -:1003F00000010001004F00010001000100010001A7 -:1004000000010001000000010001000100000001E6 -:1004100000000001000100010000000100000001D7 -:10042000003F005200510023020000010040002460 -:100430000021001E00270001004100250022001FAE -:1004400000370001004200260023002000270001A1 -:100450000043003002300024022E00010044004519 -:100460000001000100010000000A00253031366261 -:10047000003A200025303258000A722F63203031B4 -:1004800032333435363738394142434445460A0021 -:100490000A002530325800626F756E6365213A207C -:1004A000006C6566742073696465206174746163AF -:1004B0006865640A006C6566742073696465206E03 -:1004C0006F7420726573706F6E64696E670A007472 -:1004D0007279696E6720746F207265736574206D20 -:1004E000637032333031380A000A44454255473A86 -:1004F00020656E61626C65642E0A005B735D004B63 -:100500006579626F6172642073746172742E0A007F -:100510005B575D005B535D005B525D005B445D00BB -:100520005B435D0016034500720067006F004400E6 -:100530006F007800200045005A00000016034500B7 -:10054000720067006F0044006F00780020004500D3 -:100550005A0000000403090409028D00050100A0EF -:10056000FA09040000010301010009211101000141 -:10057000223F000705810308000A09040100010366 -:10058000010200092111010001224D00070582032B -:1005900008000A09040200010300000009211101FA -:1005A00000012236000705830308000A090403003E -:1005B00002030000000921110100012220000705AB -:1005C000840320000107050403200001090404003E -:1005D0000103000000092111010001223900070573 -:1005E00085031000011201100100000008EDFE0754 -:1005F0001301000102000105010906A10105071907 -:10060000E029E71500250195087501810205081903 -:100610000129059505750191029501750391010563 -:10062000071900297715002501957875018102C009 -:100630000631FF0974A1010975150025FF95207584 -:100640000881020976150025FF952075089102C0E2 -:1006500005010980A101850216010026B7001A01D3 -:10066000002AB700751095018100C0050C0901A191 -:10067000018503160100269C021A01002A9C0275BE -:100680001095018100C005010902A1010901A10025 -:100690000509190129051500250195057501810236 -:1006A0009501750381010501093009311581257F07 -:1006B00095027508810609381581257F9501750811 -:1006C0008106050C0A38021581257F950175088180 -:1006D00006C0C005010906A101050719E029E715B3 -:1006E00000250195087501810295017508810105B4 -:1006F0000819012905950575019102950175039168 -:10070000010507190029FF150025FF9506750881C9 -:1007100000C00A002530325820006B6579626F6195 -:1007200072645F7265706F72743A20000A0025303F -:100730003258006B6579626F6172645F7365745FD4 -:100740006C65643A200064656C5F6B65795F626913 -:10075000743A2063616E27742064656C3A202530FA -:1007600032580A006164645F6B65795F6269743A4C -:100770002063616E2774206164643A20253032580A -:100780000A00646F6E652E0A00626F6F676D6167A5 -:100790006963207363616E3A202E2E2E2000290A91 -:1007A000002575002F002575005D280025640020B8 -:1007B00000256400200025640020002564007C00E2 -:1007C00025303258006D6F7573656B6579205B62FB -:1007D000746E7C782079207620685D287265702F91 -:1007E00061636C293A205B006D6B5F776865656CAF -:1007F0005F74696D655F746F5F6D6178203D202562 -:10080000640A006D6B5F776865656C5F6D61785F2A -:100810007370656564203D2025640A006D6B5F740C -:10082000696D655F746F5F6D6178203D2025640A96 -:10083000006D6B5F6D61785F7370656564203D204E -:1008400025640A006D6B5F696E74657276616C2059 -:100850003D2025640A006D6B5F64656C6179203D05 -:100860002025640A006D6B5F776865656C5F74694D -:100870006D655F746F5F6D6178203D2025640A00AF -:100880006D6B5F776865656C5F6D61785F737065D0 -:100890006564203D2025640A006D6B5F74696D6599 -:1008A0005F746F5F6D6178203D2025640A006D6B79 -:1008B0005F6D61785F7370656564203D2025640A13 -:1008C000006D6B5F696E74657276616C203D2025EA -:1008D000640A006D6B5F64656C6179203D2025645E -:1008E0000A000A00257500363A20776865656C5F56 -:1008F00074696D655F746F5F6D61783A20000A00FE -:10090000257500353A20776865656C5F6D61785FA5 -:1009100073706565643A20000A00257500343A203A -:1009200074696D655F746F5F6D61783A20000A00CD -:10093000257500333A206D61785F73706565643AA0 -:1009400020000A00257500323A20696E74657276BF -:10095000616C286D73293A20000A00257500313A30 -:100960002064656C6179282A31306D73293A200042 -:100970000A092D2056616C756573202D0A004D3EC5 -:10098000004D25643E20003F007365742064656659 -:1009900061756C740A00433E2000776865726520BB -:1009A00064656C74613A20637572736F723D25647F -:1009B0002C20776865656C3D25640A536565206861 -:1009C0007474703A2F2F656E2E77696B6970656449 -:1009D00069612E6F72672F77696B692F4D6F757321 -:1009E000655F6B6579730A000A092D204D6F757379 -:1009F000656B6579202D0A4553432F713A0971754E -:100A000069740A313A0964656C6179282A31306D5C -:100A100073290A323A09696E74657276616C286DC1 -:100A200073290A333A096D61785F73706565640AEA -:100A3000343A0974696D655F746F5F6D61780A356A -:100A40003A09776865656C5F6D61785F737065659D -:100A5000640A363A09776865656C5F74696D655F2D -:100A6000746F5F6D61780A0A703A097072696E740A -:100A70002076616C7565730A643A09736574206445 -:100A8000656661756C74730A75703A092B310A6476 -:100A90006F776E3A092D310A706775703A092B31FC -:100AA000300A7067646F776E3A092D31300A0A7325 -:100AB00070656564203D2064656C7461202A206D3A -:100AC00061785F7370656564202A2028726570659F -:100AD0006174202F2074696D655F746F5F6D61783C -:100AE000290A003F004D3E2000433E20004C256473 -:100AF0000A000A092D20436F6E736F6C65202D0A62 -:100B00004553432F713A09717569740A6D3A096D3D -:100B10006F7573656B65790A000A092D204D616751 -:100B20006963202D0A643A0964656275670A783A38 -:100B3000096465627567206D61747269780A6B3A41 -:100B4000096465627567206B6579626F6172640A1A -:100B50006D3A096465627567206D6F7573650A7615 -:100B60003A0976657273696F6E0A733A0973746134 -:100B70007475730A633A09636F6E736F6C65206DE9 -:100B80006F64650A302D343A096C61796572302DD5 -:100B900034284631302D4634290A506175733A099C -:100BA000626F6F746C6F616465720A653A0965659E -:100BB00070726F6D0A6E3A094E4B524F0A7A3A09BB -:100BC000736C656570204C454420746573740A002D -:100BD0000A002575002E6E6B726F3A20000A002500 -:100BE00075002E737761705F6261636B736C617304 -:100BF000685F6261636B73706163653A20000A002D -:100C00002575002E737761705F67726176655F6529 -:100C100073633A20000A002575002E6E6F5F6775BA -:100C2000693A20000A002575002E737761705F72A3 -:100C3000616C745F726775693A20000A002575005F -:100C40002E737761705F6C616C745F6C6775693A65 -:100C500020000A002575002E636170736C6F636B52 -:100C60005F746F5F636F6E74726F6C3A20000A007E -:100C70002575002E737761705F636F6E74726F6C91 -:100C80005F636170736C6F636B3A20000A002530FC -:100C90003258006B65796D61705F636F6E6669676E -:100CA0002E7261773A20000A002575002E6D6F754F -:100CB00073653A20000A002575002E6B6579626F16 -:100CC0006172643A20000A002575002E6D6174720D -:100CD00069783A20000A002575002E656E61626C05 -:100CE000653A20000A002530325800646562756755 -:100CF0005F636F6E6669672E7261773A20000A0043 -:100D000025750064656661756C745F6C61796572E8 -:100D10003A20003F004E4B524F3A206F66660A0061 -:100D20004E4B524F3A206F6E0A0074696D65725FC8 -:100D3000636F756E743A202530346C580A006B6509 -:100D400079626F6172645F6E6B726F3A2025580A28 -:100D5000006B6579626F6172645F69646C653A20EB -:100D600025580A006B6579626F6172645F70726FFB -:100D7000746F636F6C3A2025580A00686F73745F54 -:100D80006B6579626F6172645F6C65647328293A80 -:100D90002025580A000A092D2053746174757320A8 -:100DA0002D0A004743433A20342E392E3320415632 -:100DB000522D4C4942433A20312E382E3120415693 -:100DC000525F415243483A20617672350A004F50D3 -:100DD00054494F4E533A204C55464120424F4F54B0 -:100DE0004D41474943204D4F5553454B45592045AB -:100DF000585452414B455920434F4E534F4C452078 -:100E0000434F4D4D414E44204E4B524F20353132D1 -:100E10000A004255494C443A206130383532363563 -:100E20002D6469727479202830393A34343A313774 -:100E3000204A616E2031332032303136290A005683 -:100E400049443A20307846454544284572676F4406 -:100E50006F7820455A29205049443A203078313360 -:100E60003037284572676F446F7820455A292056DD -:100E700045523A203078303030310A0044455343EF -:100E80003A20742E6D2E6B2E206B6579626F617225 -:100E900064206669726D7761726520666F722045A5 -:100EA00072676F646F780A000A092D2056657273A5 -:100EB000696F6E202D0A000A6D6F7573653A206F99 -:100EC00066660A000A6D6F7573653A206F6E0A00D8 -:100ED0000A6B6579626F6172643A206F66660A0018 -:100EE0000A6B6579626F6172643A206F6E0A000A5C -:100EF0006D61747269783A206F66660A000A6D61E6 -:100F0000747269783A206F6E0A000A6465627567C8 -:100F10003A206F6E0A000A64656275673A206F6650 -:100F2000660A000A0A626F6F746C6F616465722EE4 -:100F30002E2E2000433E20006565636F6E66696754 -:100F40003A0A00536C656570204C45442074657303 -:100F5000740A000000000000000000000000010210 -:100F600004060A0F17202C3A4A5D71879DB3C7DA31 -:100F7000E9F5FCFFFCF5E9DAC7B39D87715D4A3AF4 -:100F80002C20170F0A0604020100000000000000D8 -:100F90000000000011241FBECFEFDAE0DEBFCDBF9E -:100FA00004B603FE24C08091FB019091FC01A09146 -:100FB000FD01B091FE018730904BA740B04BB9F4D2 -:100FC0001092FB011092FC011092FD011092FE01A3 -:100FD00014BE84B7877F84BF88E10FB6F8948093EE -:100FE0006000109260000FBEE0E0FFE3099511E0A1 -:100FF000A0E0B1E0E0E0FEE502C005900D92AA336A -:10100000B107D9F711E0AAE3B1E001C01D92AB3FEF -:10101000B107E1F70E94C0100C94FE2E0C94000062 -:10102000FF93EF93E0913A01F0913B01309709F083 -:101030000995EF91FF910895FC018591803011F0A1 -:10104000EFDFFBCF0895FF27E0E230E247FF0CC05F -:10105000419597FF09C0EDE2609570958095909558 -:10106000611D711D811D911D27FF02C0219530E377 -:1010700050E2AA27660F771F881F991FAA1FA4177F -:1010800010F0A41B63955A95A9F7AA3008F0A95F40 -:10109000A05DAF93F395611571058105910541F749 -:1010A000ED3211F4EF93F395F21718F43F93F395A3 -:1010B000FBCF8F91B5DFFA95E1F70895E991F991AA -:1010C0008591803021F0853219F0AADFF9CF08959B -:1010D00020E0E89455915532C1F3503311F46894EF -:1010E00055915A3348F4505390F3220F022E220F99 -:1010F000220F200D250FF4CF0EF42195899199919F -:10110000533619F3533729F1533559F1BC01882768 -:101110009927E8945C3621F48991999168945591C6 -:10112000543639F446EF7EF077FF0DC08FEF9FEF16 -:101130000AC055374AE039F0583540E121F05236BF -:1011400042E009F00895FF93EF937DDFEF91FF9167 -:10115000B7CFFF93EF93FC0181918030B9F360DF4B -:10116000FBCFFF93EF9368DFF1CFDF93CF93CDB742 -:10117000DEB72596A3DFCF91DF910895FC016130A2 -:1011800089F028F0623031F16330E1F153C082819F -:10119000882321F085EE0E949D174CC085EE0E94A9 -:1011A000651848C08281882349F00E94F4229093F8 -:1011B0003D0180933C0188E191E0089580913C01DC -:1011C00090913D010E94002387399105B4F58AE092 -:1011D00091E008958281882349F00E94F42290933F -:1011E0003D0180933C0187E091E0089580913C01AE -:1011F00090913D010E940023873991050CF589EFFC -:1012000090E008958281882349F00E94F42290930F -:101210003D0180933C0182EF90E0089580913C0174 -:1012200090913D010E9400238739910564F480EE7E -:1012300090E0089580E090E0089585E191E00895C0 -:1012400084E091E008958BEE90E008950895609118 -:10125000BE017091BF018091C0019091C1010E94B7 -:101260002D2256985E9825982D9826982E98279886 -:101270002F98823061F018F4813031F00895833076 -:1012800049F0843051F00895259A2D9A0895269AB0 -:101290002E9A0895279A2F9A0895259A2D9A279A7B -:1012A0002F9A089587E299E0892B11F00E9427096F -:1012B00080E090E0089556985E9825982D9826989D -:1012C0002E9827982F988FEF90E090938900809325 -:1012D000880090938B0080938A0090938D00809378 -:1012E0008C00259A2D9A2FEF80E792E021508040C4 -:1012F0009040E1F700C00000269A2E9A2FEF80E779 -:1013000092E0215080409040E1F700C00000279A11 -:101310002F9A2FEF80E792E0215080409040E1F734 -:1013200000C0000025982D982FEF80E792E0215013 -:1013300080409040E1F700C0000026982E982FEFE3 -:1013400080E792E0215080409040E1F700C000002B -:1013500027982F9856985E9825982D9826982E981D -:1013600027982F98089589EA8093800089E08093D8 -:10137000810024982C983F988AB18F748AB96E980E -:10138000479A8BB1806B8BB9769A0E945B0986E293 -:1013900099E0892B11F00E94260980E090E00895E1 -:1013A00080E28093000180913E0181110EC00E9475 -:1013B0001F0A81E080933E012FEF83ED90E32150DF -:1013C00080409040E1F700C0000080E40E94250AC0 -:1013D0008093000181112EC00E944F0A809300016A -:1013E000811128C00E944F0A80930001811122C000 -:1013F0008FE30E944F0A8093000181111BC00E945D -:10140000470A80E40E94250A80930001811112C0DE -:101410008CE00E944F0A8093000181110BC00E9452 -:101420004F0A80930001811105C08FE30E944F0A8B -:10143000809300010E94470A809100010895109254 -:10144000B9008AE08093B800089594EA9093BC00B4 -:101450009091BC0097FFFCCF9091B900987F983095 -:1014600021F0903111F081E008958093BB0084E871 -:101470008093BC008091BC0087FFFCCF8091B900B5 -:10148000887F883111F0803471F780E0089584E915 -:101490008093BC008091BC0084FDFCCF08958093B4 -:1014A000BB0084E88093BC008091BC0087FFFCCF28 -:1014B0009091B900987F81E0983209F480E0089516 -:1014C00084E88093BC008091BC0087FFFCCF8091B2 -:1014D000BB00089580910001811115C080E40E9435 -:1014E000250A8093000181110CC082E10E944F0AFD -:1014F00080930001811105C08FEF0E944F0A8093F5 -:1015000000010E94470A84B1807F84B985B1807F41 -:1015100085B98AB1837F8AB98BB1837F8BB93E98B5 -:10152000469808950E94D009809300010E946A0A9B -:1015300080B38C7080BB81B3836F81BBA0E4B1E0CA -:10154000EEE4F1E08EE08E0F11921D928E13FCCF2F -:1015500083EB99E0892B11F00C94B30908959F92C5 -:10156000AF92BF92CF92DF92EF92FF920F931F93B1 -:10157000CF93DF93809100018823E1F080913F01B8 -:101580008F5F80933F01811115C08FEC94E00E9422 -:101590001C080E94D00980930001882329F085EB64 -:1015A00094E00E941C0806C081EA94E00E941C0896 -:1015B0000E945B0900E411E0C0E0D0E0BB24B394DA -:1015C00082E0A82ECC24C394D12C22E9E22E24E080 -:1015D000F22EC730D10500F580910001811164C061 -:1015E00080E40E94250A80930001811112C082E1EB -:1015F0000E944F0A8093000181110BC0C6010C2E7E -:1016000001C0880F0A94EAF780950E944F0A8093E0 -:1016100000010E94470A48C0CA30A1F028F4C8302F -:1016200059F0C93061F005C0CC3089F070F0CD3090 -:1016300089F0209A289810C0219A29980DC0229AE2 -:101640002A980AC0239A2B9807C0529A01C0539A2D -:101650005B9802C03E9A469890EA9A95F1F79FB13E -:10166000799902C082E001C080E091709B25982B9F -:101670007C9902C084E001C080E0892B7D9902C082 -:1016800038E001C030E0832B7E9902C020E101C028 -:1016900020E0822B9FB19095991F9927991F9295D1 -:1016A000990F907E892B10C080910001811174C028 -:1016B00080E40E94250A80930001882309F459C020 -:1016C000912C0E94470A892DF8019081981739F1D1 -:1016D000808380910101882301F18091D90180FFED -:1016E00004C087E994E00E941C088091D90180FF22 -:1016F0000CC0809101011F928F93FF92EF920E9484 -:10170000B5080F900F900F900F908091D90180FF36 -:1017100004C080E994E00E941C08A09201010E948C -:101720006A0A21960F5F1F4FCE30D10509F051CFC5 -:10173000809101018823B1F08150809301018823B9 -:1017400039F08FE99FE00197F1F700C000000AC06F -:10175000AEE4B1E0E0E4F1E0CF01825F91919D93CE -:101760008E13FCCF82E599E0892BC1F00E945209CB -:1017700015C083E10E944F0A809300018111A0CF20 -:1017800081E40E94250A80930001811199CF0E9473 -:10179000600A982E909495CF80E096CF81E0DF91FB -:1017A000CF911F910F91FF90EF90DF90CF90BF905E -:1017B000AF909F900895E82FF0E0E25BFE4F8081AC -:1017C0000895CF92DF92EF92FF920F931F93CF93E2 -:1017D000DF9389E794E00E941C088EE4E82E81E004 -:1017E000F82EC0E0D0E094E7C92E94E0D92E0BE6A5 -:1017F00014E0DF93CF93DF92CF920E94B50881E788 -:1018000094E00E941C08F70181917F0190E00E9402 -:1018100093229F938F931F930F930E94B50889E69D -:1018200094E00E941C0821968DB79EB708960FB6CB -:10183000F8949EBF0FBE8DBFCE30D105D1F6DF919B -:10184000CF911F910F91FF90EF90DF90CF9008956F -:101850008B3B910578F4883A910540F5853A9105DE -:10186000D0F48430910508F0B1C08130910509F4BD -:10187000ADC06BC0803E910508F467C0883E9105FD -:1018800008F4A4C09C01205F31092031310508F023 -:101890005CC090650895853A910509F459C0863A6F -:1018A000910509F058C082E890E40895883A9105BE -:1018B00009F454C0893A910509F453C08A3A910554 -:1018C00009F452C08B3A910509F451C08C3A910544 -:1018D00009F450C08D3A910509F44FC0803B910541 -:1018E00009F44EC08E3A910509F44DC08F3A910526 -:1018F00009F44CC0813B910509F44BC0823B910532 -:1019000009F44AC0833B910509F449C0843B910521 -:1019100009F448C0853B910509F447C0863B910511 -:1019200009F446C0873B910509F445C0883B910501 -:1019300009F444C0893B910509F443C08A3B9105F1 -:1019400009F442C080E094E4089580E090E00895B6 -:1019500081E890E4089583E890E4089582EE94E4A9 -:10196000089589EE94E408958AEE94E4089585EB51 -:1019700094E4089586EB94E4089587EB94E4089545 -:101980008CEC94E408958DEC94E4089583E895E458 -:1019900008958AE895E4089582E995E4089584E934 -:1019A00095E4089581E296E4089583E296E408952B -:1019B00084E296E4089585E296E4089586E296E44A -:1019C000089587E296E408958AE296E408950895DA -:1019D00096E0799FF001112494E5899FE00DF11DB7 -:1019E0001124E60FF11DEE0FFF1FEF5DFE4F8591F5 -:1019F00094910895880F991FFC01E556F040859158 -:101A000094910895880F991FFC01E55EFE4F859122 -:101A10009491089526E0729FF001112444E5849F7B -:101A2000E00DF11D1124E60FF11DEE0FFF1FEF5D1C -:101A3000FE4F859194919C013A9521154FE1340711 -:101A400008F41EC13F512115304120F49F700E94BF -:101A5000020D08959C0130532115304118F4992747 -:101A6000906C0895811520E5920769F40E94ED1BA2 -:101A70004FEF84E39CE0415080409040E1F700C08C -:101A800000000C944F23813020E5920751F489EE39 -:101A900094E00E941C088091D90181608093D90153 -:101AA00008959C0130552115304108F051C0292F6F -:101AB00033272F70332721303105D9F4AC0143701F -:101AC000552702C0220F331F4A95E2F73C68AC014C -:101AD00064E0440F551F6A95E1F744275370242BA7 -:101AE000352B73E0880F991F7A95E1F78076992757 -:101AF0001DC02230310529F4982F8827816F906A04 -:101B0000089523303105A9F4AC014370552721E035 -:101B100030E002C0220F331F4A95E2F73C6843E0F1 -:101B2000880F991F4A95E1F7807E9770822B932B3F -:101B3000089524303105E1F4AC014370552721E0CC -:101B400030E002C0220F331F4A95E2F73A68E7CF30 -:101B50009C0130572115304118F49F709062089510 -:101B60009C0130582115304118F49F70906A0895F7 -:101B7000803E9105E0F4803C910558F58133910554 -:101B800009F46FC048F48932910509F463C08A32C0 -:101B9000910509F46DC072C089339105E9F082386E -:101BA0009105D1F08533910509F44DC067C0833E9E -:101BB000910581F138F4803E9105B9F0823E91059E -:101BC000D9F05CC0863E910561F1873E9105A1F197 -:101BD00055C00E94FA0C08952091EC0120FD02C02E -:101BE00021FF4CC080EE90E049C08091EC0180FF65 -:101BF000F9CF89E390E042C08091EC0182FF0EC0F2 -:101C00008091EC0184FF03C080E090E037C083EE58 -:101C100090E034C08091EC0182FFF2CF82EE90E040 -:101C20002DC08091EC0183FF0BC08091EC0184FDFD -:101C3000EBCF87EE90E022C08091EC0183FFF5CFDF -:101C400086EE90E01BC08091EC0185FF07C089E221 -:101C500090E014C08091EC0185FFF9CF85E390E01E -:101C60000DC08091EC0186FF07C08AE290E006C0BB -:101C70008091EC0186FFF9CF81E390E00E94280C6F -:101C80000895089580916F0108959FB7F894109278 -:101C90005E019FBF9091F201943009F057C090917E -:101CA000E9009F703091EC00232F217030FD20E877 -:101CB000922B24E02093E9002091EB0020FF43C009 -:101CC0002091EE0027FF3FC020915C01222321F0EC -:101CD0002091E80025FF37C010925C0126E030918A -:101CE000E80035FD15C03091F201343061F53091D6 -:101CF000EB0035FD28C0215021F481E080935C0188 -:101D000022C0EFE9FFE03197F1F700C00000E7CF14 -:101D10008093F1008091E80085FD0AC08091E80081 -:101D200080FFFCCF8091E8008E778093E80006C0AA -:101D30008FB7F89421E020935E018FBF9F7090933E -:101D4000E90080E008959F709093E9008FEF089577 -:101D5000CF93DF9300D01F92CDB7DEB79C01809167 -:101D6000F201843019F593E099833B832A839093A1 -:101D7000E9008FEF9091E800815095FD06C095ED48 -:101D80009A95F1F700008111F5CF8091E80085FF69 -:101D90000DC040E050E063E070E0CE0101960E948B -:101DA00078118091E8008E778093E8000F900F9073 -:101DB0000F90DF91CF910895CF93DF9300D01F92C2 -:101DC000CDB7DEB72091F201243021F522E029833E -:101DD0009B838A8383E08093E9008FEF9091E800F2 -:101DE000815095FD06C095ED9A95F1F7000081119F -:101DF000F5CF8091E80085FF0DC040E050E063E042 -:101E000070E0CE0101960E9478118091E8008E77F3 -:101E10008093E8000F900F900F90DF91CF9108957D -:101E20002091F2012430F1F422E02093E9002FEF19 -:101E30003091E800215035FD06C035ED3A95F1F7B7 -:101E400000002111F5CF2091E80025FF0BC040E0F4 -:101E500050E065E070E00E9478118091E8008E7794 -:101E60008093E8000895CF93DF932091F20124300E -:101E700009F048C0EC0180910C018823E1F08091C9 -:101E80000D018823C1F085E08093E9008FEF9091E8 -:101E9000E800815095FD06C095E19A95F1F70000A4 -:101EA0008111F5CF8091E80085FF2CC040E050E023 -:101EB00060E170E017C081E08093E9008FEF9091BE -:101EC000E800815095FD06C095ED9A95F1F7000068 -:101ED0008111F5CF8091E80085FF14C040E050E00B -:101EE00068E070E0CE010E9478118091E8008E7762 -:101EF0008093E80080E1FE01AFE5B1E001900D9232 -:101F00008A95E1F7DF91CF91089580E295E00E94F4 -:101F10001C088091F101811109C00E940D130E94DB -:101F20006A138091E20084608093E20008958CE15E -:101F300095E00E941C081092F101089588E195E057 -:101F40000C941C0884E195E00E941C080C941F2D41 -:101F500080E195E00E941C080E94E9220E94252D44 -:101F60000E940F160C94410E20915D012F5F822F6D -:101F700062E30E94932E992319F020935D01089546 -:101F800010925D0180915E01882371F18091F201D0 -:101F9000843041F58091E9008F702091EC00922F00 -:101FA000917020FD90E8892B94E09093E900909146 -:101FB000EB0090FF14C09091EE0097FF10C090913D -:101FC000E80095FF03C01092F100F9CF9091E8006E -:101FD00090FF05C09091E8009E779093E8008F7085 -:101FE0008093E90010925E01089542E061EC81E087 -:101FF0000E94871242E061EC82E00E94871242E078 -:1020000061EC83E00E94871242E261EC84E00E946E -:10201000871242E161EC85E00C9487128091F40113 -:10202000833009F455C030F4813071F0823009F406 -:102030008EC008958A3009F47AC08B3009F460C0EC -:10204000893009F09CC020C08091F301813A09F0E9 -:1020500096C08091E800877F8093E8008091F70127 -:102060009091F801892B21F460E18FE591E003C0A4 -:1020700060E080E090E070E00E94C3118091E80091 -:102080008B778093E80008958091F301813209F005 -:1020900076C08091F7019091F801009719F00497AC -:1020A00009F06DC08091E800877F8093E8008091FF -:1020B000E80082FD05C08091F2018111F8CF5FC078 -:1020C0008091F10080936F018091E8008B7753C07D -:1020D0008091F301813A09F052C08091F70190910B -:1020E000F801892B09F04BC08091E800877F80932D -:1020F000E8008091E80080FFFCCF80910C0136C0A1 -:102100008091F3018132D9F58091F7019091F80126 -:10211000892BA9F58091E800877F8093E8000E94D1 -:10212000BC128091F50180930C010C94ED1B809101 -:10213000F301813221F58091E800877F8093E800E8 -:102140000E94BC128091F6018093700108958091E5 -:10215000F301813AA1F48091E800877F8093E80041 -:102160008091E80080FFFCCF809170018093F100A6 -:102170008091E8008E778093E8000C94BC1208955B -:1021800084B7877F84BF88E10FB6F894809360009E -:10219000109260000FBE90E080E80FB6F894809334 -:1021A0006100909361000FBE0E949C160E940D1367 -:1021B0000E946A138091E20084608093E20085E4CB -:1021C0009EE00E94282278940E94EF150E949E169D -:1021D00082E091E00E940A160E940D2D8FEF94E09C -:1021E0000E941C088091F201853089F48BEF94E005 -:1021F0000E941C080E94AD228091F001882391F377 -:102200000E94D522882371F30E946211EBCF0E94B5 -:10221000CC16E8CF292F332723303105C9F064F4D9 -:102220002130310581F02230310509F043C08DE8BD -:1022300090E028E535E042C021323105F1F022324C -:10224000310541F137C082E190E025EE35E036C03E -:1022500099278130910541F08230910541F0892B19 -:1022600049F5E4E5F5E005C0ECE3F5E002C0E4E2A1 -:10227000F5E0849190E09F0121C06530D8F4E62F0D -:10228000F0E0EE0FFF1FEB5DFE4F2081318189E012 -:1022900090E014C0653070F470E0FB01EE0FFF1F9A -:1022A000E55EFE4F20813181FB01EA5EFE4F8081B9 -:1022B00090E004C080E090E020E030E0FA0131835B -:1022C0002083089580E189BD82E189BD09B400FEC3 -:1022D000FDCF8091D8008F7D8093D8008091E00061 -:1022E00082608093E0008091E00081FDFCCF089542 -:1022F000CF92DF92EF92FF920F931F93CF93DF93D2 -:10230000EC018B016A010E94DB12811133C0C11400 -:10231000D10439F0F60180819181081B190BC80F97 -:10232000D91FE12CF12C0115110519F18091E8005C -:1023300085FD16C08091E8008E778093E800C11477 -:10234000D10449F0F60180819181E80EF91EF182F5 -:10235000E08285E00FC00E94DB12882321F30AC0CF -:1023600089918093F10001501109FFEFEF1AFF0AE4 -:10237000DACF80E0DF91CF911F910F91FF90EF9026 -:10238000DF90CF9008952091F9013091FA0126173E -:10239000370748F06115710539F42091E8002E7770 -:1023A0002093E80001C0B90140E061157105A9F171 -:1023B0002091F201222309F443C0253009F442C0E0 -:1023C0002091E80023FD40C02091E80022FD32C0AA -:1023D0002091E80020FFE9CF4091F3002091F20026 -:1023E00030E0342BFC01CF016115710559F0283024 -:1023F000310540F481918093F100615071092F5FA4 -:102400003F4FF1CF41E02830310509F040E0209105 -:10241000E8002E772093E800C8CF4111C9CF0AC049 -:102420008091F201882361F0853061F08091E800AD -:1024300083FD0AC08091E80082FFF2CF80E008951A -:1024400082E0089583E0089581E008952091F901E4 -:102450003091FA012617370748F06115710539F4F4 -:102460002091E8002E772093E80001C0B901FC011B -:1024700020E06115710591F18091F201882309F442 -:1024800040C0853009F43FC08091E80083FD3DC025 -:102490008091E80082FD2FC08091E80080FFE9CFA5 -:1024A0002091F3008091F20090E0922B611571056C -:1024B00059F08830910540F424912093F100319631 -:1024C000615071090196F2CF21E0089709F020E0F0 -:1024D0008091E8008E778093E800CBCF2111CCCF9C -:1024E0000AC08091F201882361F0853061F080910B -:1024F000E80083FD0AC08091E80082FFF2CF80E00F -:10250000089582E0089583E0089581E00895982F6A -:10251000973058F59093E900981739F07091EC00D6 -:102520002091ED005091F00003C0242F762F50E051 -:1025300021FF19C03091EB003E7F3093EB003091CA -:10254000ED003D7F3093ED003091EB003160309332 -:10255000EB007093EC002093ED005093F00020917D -:10256000EE0027FF07C09F5FD3CF8F708093E900F5 -:1025700081E0089580E008958091F30187FF11C004 -:102580008091E80082FD05C08091F2018111F8CFB1 -:1025900011C08091E8008B770BC08091F2018823F5 -:1025A00049F08091E80080FFF8CF8091E8008E77B5 -:1025B0008093E80008952091E4003091E50095E6CD -:1025C0004091EC00842F817040FF22C08091E80090 -:1025D00080FD1CC08091F201882391F0853091F03C -:1025E0008091EB0085FD10C04091E4005091E50022 -:1025F0004217530729F39A01915011F784E0089587 -:1026000082E0089583E0089581E0089580E00895D0 -:102610004091E80042FFDECF08950E947B130E94A4 -:102620008313E0EEF0E0808181608083E8EDF0E0EC -:1026300080818F77808319BCA7EDB0E08C918E7F6D -:102640008C9380818F7E80831092F10108950F9387 -:102650001F93CF93DF930E947B130E948313C8EDD7 -:10266000D0E088818F77888388818068888388819B -:102670008F7D888319BC1092F2011092EE011092A6 -:10268000F0011092EF0100EE10E0F80180818B7FE5 -:10269000808388818160888342E060E080E00E94DE -:1026A0008712E1EEF0E080818E7F8083E2EEF0E041 -:1026B000808181608083808188608083F80180814F -:1026C0008E7F8083888180618883DF91CF911F9185 -:1026D0000F910895E8EDF0E080818F7E8083E7ED33 -:1026E000F0E080818160808384E082BF81E080931C -:1026F000F1010C942713E8EDF0E080818E7F808358 -:102700001092E20008951092DA001092E10008950C -:102710001F920F920FB60F9211242F933F934F9356 -:102720005F936F937F938F939F93AF93BF93EF9339 -:10273000FF938091E10082FF0BC08091E20082FF55 -:1027400007C08091E1008B7F8093E1000E94B40F6D -:102750008091DA0080FF1FC08091D80080FF1BC0ED -:102760008091DA008E7F8093DA008091D90080FF1B -:102770000DC080E189BD82E189BD09B400FEFDCFB5 -:1027800081E08093F2010E94850F05C019BC109270 -:10279000F2010E94970F8091E10080FF19C08091A3 -:1027A000E20080FF15C08091E2008E7F8093E200FE -:1027B0008091E20080618093E2008091D800806285 -:1027C0008093D80019BC85E08093F2010E94A20F8B -:1027D0008091E10084FF30C08091E20084FF2CC032 -:1027E00080E189BD82E189BD09B400FEFDCF809101 -:1027F000D8008F7D8093D8008091E1008F7E8093F8 -:10280000E1008091E2008F7E8093E2008091E200FF -:1028100081608093E2008091EE01882311F084E0D2 -:1028200007C08091E30087FD02C081E001C083E022 -:102830008093F2010E94A80F8091E10083FF29C0DC -:102840008091E20083FF25C08091E100877F809323 -:10285000E10082E08093F2011092EE018091E100AC -:102860008E7F8093E1008091E2008E7F8093E20072 -:102870008091E20080618093E20042E060E080E0CD -:102880000E9487128091F00088608093F0000E947F -:102890009E0FFF91EF91BF91AF919F918F917F918B -:1028A0006F915F914F913F912F910F900FBE0F90BD -:1028B0001F9018951F920F920FB60F9211242F930D -:1028C0003F934F935F936F937F938F939F93AF93B8 -:1028D000BF93CF93DF93EF93FF93C091E900CF7045 -:1028E0008091EC00D82FD17080FDD0E81092E900E3 -:1028F0008091F000877F8093F00078940E949E146E -:102900001092E9008091F00088608093F000CD2B58 -:10291000CF70C093E900FF91EF91DF91CF91BF910C -:10292000AF919F918F917F916F915F914F913F9167 -:102930002F910F900FBE0F901F9018951F93CF935C -:10294000DF93CDB7DEB7AA970FB6F894DEBF0FBE00 -:10295000CDBFE3EFF1E088E08E0F9091F10091930D -:102960008E13FBCF0E940E108091E80083FF1FC1E1 -:102970008091F3019091F401492F50E04A305105C4 -:1029800008F015C1FA01EA5AFF4F0C94B32E8038B3 -:1029900081F0823809F00BC18091F7018F7080932C -:1029A000E9008091EB0085FB882780F91092E9000F -:1029B00006C08091EF019091F00191118260909199 -:1029C000E800977F9093E8008093F1001092F10067 -:1029D000C8C0282F2D7F09F0EAC0882319F0823063 -:1029E00061F0E5C08091F501813009F0E0C09330DD -:1029F00009F080E08093F0012BC08091F5018111F6 -:102A000027C08091F7018F7009F4D1C08093E9004D -:102A10002091EB0020FF1CC0933021F48091EB004B -:102A2000806214C09091EB0090619093EB0021E0E4 -:102A300030E0A90102C0440F551F8A95E2F7409388 -:102A4000EA001092EA008091EB0088608093EB002E -:102A50001092E9008091E800877F86C08111A7C0AD -:102A60001091F5011F778091E3008078812B80938E -:102A7000E3008091E800877F8093E8000E94BC1209 -:102A80008091E80080FFFCCF8091E3008068809314 -:102A9000E300111102C082E001C083E08093F201E3 -:102AA00086C08058823008F082C08091F5019091F4 -:102AB000F6018C3D53E0950779F583E08A838AE23D -:102AC00089834FB7F894DE01139620E03EE051E28F -:102AD000E32FF0E050935700E49120FF03C0E2950C -:102AE000EF703F5FEF708E2F90E0EA3010F0C796E6 -:102AF00001C0C0968D939D932F5F243149F74FBF3E -:102B00008091E800877F8093E8006AE270E0CE0160 -:102B100001960E94C31114C0AE014F5F5F4F6091D8 -:102B2000F7010E940A11BC01892B09F440C0909161 -:102B3000E800977F9093E80089819A810E9426128D -:102B40008091E8008B778093E80031C0803879F578 -:102B50008091E800877F8093E8008091EE01809368 -:102B6000F1008091E8008E778093E8000E94BC120B -:102B70001EC081111CC09091F5019230C0F480916B -:102B8000E800877F8093E8009093EE010E94BC12DA -:102B90008091EE01811106C08091E30087FD02C0A3 -:102BA00081E001C084E08093F2010E94F50F8091E2 -:102BB000E80083FF0AC08091E800877F8093E800E7 -:102BC0008091EB0080628093EB00AA960FB6F89498 -:102BD000DEBF0FBECDBFDF91CF911F910895CF9380 -:102BE0008091F2018823A1F0C091E900CF7090910B -:102BF000EC00892F817090FD80E8C82B1092E900CD -:102C00008091E80083FD0E949E14CF70C093E9007C -:102C1000CF91089590937601809375010895E09186 -:102C20007501F0917601309721F00190F081E02D4F -:102C3000099480E00895EF92FF920F931F93CF9332 -:102C4000DF93E0917501F09176013097B1F18C013D -:102C50000280F381E02D09958091D90182FF2DC07A -:102C600080FF04C08AE197E00E941C08E80110E19F -:102C700084E1E82E87E0F82E8091D90180FF0BC017 -:102C800088811F928F93FF92EF920E94B5080F9058 -:102C90000F900F900F90115021961111EDCF809150 -:102CA000D90180FF0AC082E197E0DF91CF911F91A7 -:102CB0000F91FF90EF900C941C08DF91CF911F9122 -:102CC0000F91FF90EF900895E0917501F0917601DA -:102CD000309721F00480F581E02D0994089520912A -:102CE0007301309174018217930771F0909374010E -:102CF00080937301E0917501F0917601309721F096 -:102D00000680F781E02D099408952091710130919A -:102D100072018217930771F0909372018093710191 -:102D2000E0917501F0917601309721F00084F185F2 -:102D3000E02D0994089508950C949B160E94EB22AF -:102D40000E94920A0C94B123CF93C82F8091D9018D -:102D500082FF1EC080FF04C083E397E00E941C082E -:102D60008091D90180FF0CC01F92CF938EE297E033 -:102D70009F938F930E94B5080F900F900F900F9024 -:102D80008091D90180FF04C08CE297E00E941C086A -:102D90008C2FCF910C94410ECF92DF92EF92FF9245 -:102DA0000F931F93CF93DF93CDB7DEB72B970FB65B -:102DB000F894DEBF0FBECDBF0E94AF0A88E7C82ED1 -:102DC00081E0D82E00E010E0E02E802F0E94DB0B87 -:102DD000F60141916F01F42EF826B1F40F5F1F4FF9 -:102DE0000E30110589F78FEF89838A831B820E9439 -:102DF000F4228160782F9D838C8349815A816B8175 -:102E00008D810E946F1740C09091D90191FF04C03D -:102E10008B870E94E10B8B8520E030E04F2D50E046 -:102E2000922FBA01022E02C0759567950A94E2F7B7 -:102E300060FF24C02E83EF8221E030E0690102C0F0 -:102E4000CC0CDD1C9A95E2F790E08C219D21892B1A -:102E500009F420E028870E94F4228160782F9A8765 -:102E600089874E815F8168858A850E946F17F80186 -:102E7000E858FE4F8081C826C08206C02F5F3F4FB2 -:102E80002630310569F6AACF0E94222710917701DA -:102E90000E940F161817A1F00E940F168093770159 -:102EA0002B960FB6F894DEBF0FBECDBFDF91CF914A -:102EB0001F910F91FF90EF90DF90CF900C94A4168C -:102EC0002B960FB6F894DEBF0FBECDBFDF91CF912A -:102ED0001F910F91FF90EF90DF90CF900895CF93C7 -:102EE000DF93CDB7DEB72B970FB6F894DEBF0FBEDA -:102EF000CDBF4F83588769877A878B87DE0111960C -:102F000086E0FD0111928A95E9F785E0FE0137968A -:102F100001900D928A95E1F749815A816B817C81FC -:102F20008D819E810E94871E2B960FB6F894DEBF7E -:102F30000FBECDBFDF91CF910895CF93882309F4C1 -:102F4000C2C0C82F823859F40E940F1681FDBBC041 -:102F500089E30E9423210E94022289E30CC0833866 -:102F600079F40E940F1680FDAEC083E50E942321F4 -:102F70000E94022283E50E947621CF910C940222C6 -:102F8000843859F40E940F1682FD9DC087E40E9488 -:102F900023210E94022287E4EECF8CEF8C0F813A2E -:102FA00048F48C2F0E94B52B81118DC08C2F0E946C -:102FB0002321E3CF80E28C0F883048F4C77081E092 -:102FC00001C0880FCA95EAF70E94CB21D6CF8BE5C6 -:102FD0008C0F833078F4C53A29F0C63A31F083E893 -:102FE00090E005C081E890E002C082E890E0CF91D7 -:102FF0000C946F1688E58C0F833108F064C0C83AD2 -:1030000039F1C93A41F1CA3A49F1CB3A51F1CC3AD6 -:1030100059F1CD3A61F1C03B69F1CE3A71F1CF3A45 -:1030200079F1C13B81F1C23B89F1C33B91F1C43BD2 -:1030300099F1C53BA1F1C63BA9F1C73BB1F1C83B32 -:10304000B9F1C93BC1F1CA3BC9F180E090E038C099 -:1030500082EE90E035C089EE90E032C08AEE90E0DA -:103060002FC085EB90E02CC086EB90E029C087EB69 -:1030700090E026C08CEC90E023C08DEC90E020C066 -:1030800083E891E01DC08AE891E01AC082E991E0EE -:1030900017C084E991E014C081E292E011C083E29C -:1030A00092E00EC084E292E00BC085E292E008C09C -:1030B00086E292E005C087E292E002C08AE292E0F6 -:1030C000CF910C948516CF910895882309F44BC0B5 -:1030D000823859F40E940F1681FF45C089E30E948F -:1030E00023210E94022289E30CC0833871F40E94DC -:1030F0000F1680FF38C083E50E9423210E94022220 -:1031000083E50E9476210C940222843859F40E94AF -:103110000F1682FF28C087E40E9423210E9402220A -:1031200087E4EFCF9CEF980F913A58F390E2980F15 -:10313000983050F4877091E001C0990F8A95EAF7B2 -:10314000892F0E94D121DFCF9BE5980F933020F487 -:1031500080E090E00C946F16885A833120F480E070 -:1031600090E00C9485160895882321F00E94CB21CD -:103170000C9402220895882321F00E94D1210C94FE -:1031800002220895BF92CF92DF92EF92FF920F93A7 -:103190001F93CF93DF9300D000D000D0CDB7DEB720 -:1031A00025E0FC01DE01119601900D922A95E1F7D0 -:1031B000FC01408131810281258122952F7063813C -:1031C0007481672B09F4E7C23F3F19F44F3F09F4BC -:1031D000E2C27C0149833A8389819A812E830E94CD -:1031E000E220182FB92E0E94E1200E94A81FEB2D8B -:1031F000E295EF70F0E0E05AFF4F2E810C94B32E71 -:103200008B2D807F9B2D9F70F92E882319F0F294CF -:1032100080EFF822002349F0FF2009F469C28F2DC6 -:103220000E94DB210E94022263C2812F0E94651846 -:10323000FF2009F4B0C28F2D0E94E12126960FB61F -:10324000F894DEBF0FBECDBFDF91CF911F910F91DC -:10325000FF90EF90DF90CF90BF900C9402223B2D17 -:10326000307F8B2D8F70303211F08295807F11234B -:1032700019F0113021F12DC00023B9F0222309F4F7 -:10328000A1C1213009F09EC126960FB6F894DEBF89 -:103290000FBECDBFDF91CF911F910F91FF90EF90A7 -:1032A000DF90CF90BF900C94EB21222319F02130B6 -:1032B00009F471C28E830E94EE218E8197C1002392 -:1032C00021F0263008F067C27DC1253008F063C2C6 -:1032D0008DC1002321F0222309F474C109C22223E5 -:1032E00009F484C11AC22B2D26952695237030E04F -:1032F0002115310521F021303105D1F04CC20023D8 -:1033000021F0812F9B2D937002C080E090E02696E3 -:103310000FB6F894DEBF0FBECDBFDF91CF911F91E6 -:103320000F91FF90EF90DF90CF90BF900C946F16AD -:10333000002321F0812F9B2D937002C080E090E04C -:1033400026960FB6F894DEBF0FBECDBFDF91CF91AA -:103350001F910F91FF90EF90DF90CF90BF900C9452 -:103360008516812F002319F00E94A82502C00E9413 -:10337000102626960FB6F894DEBF0FBECDBFDF91A4 -:10338000CF911F910F91FF90EF90DF90CF90BF9062 -:103390000C9495268B2D837009F07BC00111FBC125 -:1033A000812F829586958770880F880F912F9F7047 -:1033B000C92ED12CE12CF12C082E04C0CC0CDD1C24 -:1033C000EE1CFF1C0A94D2F714FF12C04FE050E02D -:1033D00060E070E004C0440F551F661F771F8A9598 -:1033E000D2F7CB01BA01609570958095909503C096 -:1033F00060E070E0CB012B2D269526952370422F9F -:1034000050E042305105D9F04330510569F16C2943 -:103410007D298E299F294130510551F126960FB6FD -:10342000F894DEBF0FBECDBFDF91CF911F910F91FA -:10343000FF90EF90DF90CF90BF900C94CF1F6C293E -:103440007D298E299F2926960FB6F894DEBF0FBEE0 -:10345000CDBFDF91CF911F910F91FF90EF90DF9043 -:10346000CF90BF900C94EB1F0E94CF1FC701B601F5 -:1034700026960FB6F894DEBF0FBECDBFDF91CF9179 -:103480001F910F91FF90EF90DF90CF90BF900C9421 -:10349000B31F002319F08B2D817001C086958823FE -:1034A00009F479C1812F829586958770880F880FDE -:1034B000912F9F70C92ED12CE12CF12C082E04C025 -:1034C000CC0CDD1CEE1CFF1C0A94D2F714FF12C0BA -:1034D0004FE050E060E070E004C0440F551F661FED -:1034E000771F8A95D2F7CB01BA01609570958095C8 -:1034F000909503C060E070E0CB012B2D26952695BA -:103500002370422F50E042305105D9F0433051052D -:1035100069F16C297D298E299F294130510551F18E -:1035200026960FB6F894DEBF0FBECDBFDF91CF91C8 -:103530001F910F91FF90EF90DF90CF90BF900C9470 -:10354000A9206C297D298E299F2926960FB6F894EB -:10355000DEBF0FBECDBFDF91CF911F910F91FF90C6 -:10356000EF90DF90CF90BF900C94C5200E94A920CF -:10357000C701B60126960FB6F894DEBF0FBECDBFC9 -:10358000DF91CF911F910F91FF90EF90DF90CF903F -:10359000BF900C948D20103FD1F118F4103E50F4E0 -:1035A000A2C0123F09F464C008F44DC0133F09F4EF -:1035B00074C099C01F708B2D8F710023A1F00E94E1 -:1035C0002620812F26960FB6F894DEBF0FBECDBF02 -:1035D000DF91CF911F910F91FF90EF90DF90CF90EF -:1035E000BF900C94B4180E944720812F26960FB6E6 -:1035F000F894DEBF0FBECDBFDF91CF911F910F9129 -:10360000FF90EF90DF90CF90BF900C94BB180023F9 -:10361000B1F0253008F0BFC08B2D8F7126960FB604 -:10362000F894DEBF0FBECDBFDF91CF911F910F91F8 -:10363000FF90EF90DF90CF90BF900C946C202630DD -:1036400008F0A9C0E9CF0023A9F08B2D8F71269631 -:103650000FB6F894DEBF0FBECDBFDF91CF911F91A3 -:103660000F91FF90EF90DF90CF90BF900C942620A9 -:10367000002359F38B2D8F7126960FB6F894DEBF79 -:103680000FBECDBFDF91CF911F910F91FF90EF90B3 -:10369000DF90CF90BF900C944720002399F08B2DA2 -:1036A0008F7126960FB6F894DEBF0FBECDBFDF91A7 -:1036B000CF911F910F91FF90EF90DF90CF90BF902F -:1036C0000C94112026960FB6F894DEBF0FBECDBF26 -:1036D000DF91CF911F910F91FF90EF90DF90CF90EE -:1036E000BF900C9407200023A9F0222309F4ADCF4A -:1036F000812F26960FB6F894DEBF0FBECDBFDF91A7 -:10370000CF911F910F91FF90EF90DF90CF90BF90DE -:103710000C949D17222309F4ADCF812F26960FB666 -:10372000F894DEBF0FBECDBFDF91CF911F910F91F7 -:10373000FF90EF90DF90CF90BF900C9465184B2DC9 -:103740004F70612FC7010E94BE0826960FB6F894ED -:10375000DEBF0FBECDBFDF91CF911F910F91FF90C4 -:10376000EF90DF90CF90BF900C942B1F4B2D4F709C -:10377000612FC70126960FB6F894DEBF0FBECDBFEE -:10378000DF91CF911F910F91FF90EF90DF90CF903D -:10379000BF900C94E70C26960FB6F894DEBF0FBED0 -:1037A000CDBFDF91CF911F910F91FF90EF90DF90F0 -:1037B000CF90BF9008950E94E8210E94BD210E94F1 -:1037C00002220E94C8270E94952680E090E00E9475 -:1037D0006F1680E090E00C9485160E94D8210C941E -:1037E000DB1B0E94E220292F22952F7030E02C3025 -:1037F00031054CF42A3031056CF422503109223065 -:10380000310588F407C02C30310549F02F303105DF -:1038100031F009C0803E48F0803F29F406C093FB98 -:10382000882780F9089580E0089581E00895CF9376 -:10383000DF9300D000D01F92CDB7DEB70F900F906E -:103840000F900F900F90DF91CF910895CF93DF935A -:1038500000D000D000D0CDB7DEB726960FB6F894D2 -:10386000DEBF0FBECDBFDF91CF9108951F93CF93E1 -:10387000DF93C091860116E080918701C81799F007 -:10388000D0E01C9FF0011D9FF00D1124E857FE4F62 -:103890004081518162817381848195810E94261CBF -:1038A0002196C770E9CFDF91CF911F910895409184 -:1038B000B8015091B9016091BA017091BB0180913A -:1038C000BC019091BD010C94261C8091BD01829594 -:1038D0008F7009F054C08091BA01882309F44FC059 -:1038E00080918601A09187016091B8017091B90122 -:1038F0004091BB015091BC01B6E08A1709F43FC06A -:1039000090E041155105C1F17F3F11F46F3FA1F1E6 -:10391000B89FF001B99FF00D1124E857FE4F2181A7 -:1039200072132AC02081621327C02281211124C072 -:10393000238134812417350710F421503109241BC9 -:10394000350B283C3105C0F42091BD012F7020615A -:103950002093BD0126E0289FF001299FF00D11243E -:10396000E357FE4F80818F708061808388EB91E008 -:103970000E94C2180C94361C01968770BECF089521 -:10398000CF92DF92EF92FF920F931F93CF93DF932B -:10399000CDB7DEB762970FB6F894DEBF0FBECDBFCE -:1039A0008C0185E0F801DE011D9601900D928A954B -:1039B000E1F7D8014C9111965C91119712966C9198 -:1039C00012971396CD90DC9014973091B8017091B6 -:1039D000B9018091BB019091BC01009709F46BC1C2 -:1039E0007F3F19F43F3F09F466C1E090BA01EE2031 -:1039F00009F4C0C02091BD01C816D90628F0F6010F -:103A0000E81BF90BCF0104C0809590958C0D9D1D8E -:103A1000FF24F394883C910578F0F12C207F09F085 -:103A2000C6C07C2DD98AC88A89890E94171C88EB58 -:103A300091E00E94C218B1C0822F807F09F046C079 -:103A4000751314C0341312C0611110C02F7020619F -:103A50002093BD010E94571C88EB91E00E94C21880 -:103A60008091BD01D80115968C932EC0CD2819F1F7 -:103A70005F3F11F44F3FF9F0F62E61111CC08091A9 -:103A800086012091870136E0821709F45AC090E040 -:103A9000389FF001399FF00D1124E857FE4F7181D6 -:103AA000571306C07081471303C07281711103C0A0 -:103AB00001968770E9CFF62E662309F418C180912C -:103AC000BD0181608093BD01F12C11C1751308C047 -:103AD000341306C0611104C08091BD01D801C3C078 -:103AE0004D875E878D859E856A8B0E94F11B6A8952 -:103AF0008823E1F16623D1F12091BD01822F8295C7 -:103B00008F7090E0029774F08091B8019091B901A4 -:103B100098878F831986DB86CA862C87CE01079605 -:103B20000E94C21886E0F801A8EBB1E001900D9266 -:103B30008A95E1F70E94651C0E94571CFF24F394AC -:103B4000D6C04D875E878D859E850E94E220292FF5 -:103B500022952F7030E0223031050CF0BCC09F70F0 -:103B600009F0B6C0805E883008F4C1C0C8010E9468 -:103B7000C218E4CFC816D90608F453C0F601E81BF2 -:103B8000F90BCF01883C910508F450C0F12C7C2D35 -:103B9000D98AC88A89890E94171CE8EBF1E086E07F -:103BA000DF011D928A95E9F70E94571CA0C075138A -:103BB00014C0341312C0611110C08091BD01F8010E -:103BC0008583C8010E94C21886E0E8EBF1E0DF01BE -:103BD0001D928A95E9F7FE2C8AC04D875E878D85F8 -:103BE0009E856A8B0E94F11B6A89882309F4BECFE7 -:103BF000662309F4BBCF2091BD01822F82958F707F -:103C000090E002970CF48ECF8091B8019091B901A9 -:103C10009A8389831B82DD82CC822E83CE0101961A -:103C20007FCF809590958C0D9D1DACCFF62E662391 -:103C300009F49CCF75132EC034132CC02091BD0104 -:103C400020FD1FC0822F82958F70D9F0D801159664 -:103C50002C9315978F3049F08F5F982F9295907F16 -:103C6000822F8F70892B15968C93C8010E94C218E1 -:103C700086E0F801A8EBB1E001900D928A95E1F79A -:103C800093CF86E0F801A8EBB1E001900D928A9500 -:103C9000E1F72DC04D875E878D859E850E94F11BC3 -:103CA000811140CF8091BD0181608093BD01C80129 -:103CB0000E94C2181CC0662309F458CF4D875E8746 -:103CC0008D859E850E94F11B882309F44FCF2ACF52 -:103CD000811148CF0CC0243031050CF047CF9F70C4 -:103CE00009F440CFF8019581907F09F03BCF8F2DEB -:103CF00062960FB6F894DEBF0FBECDBFDF91CF91B5 -:103D00001F910F91FF90EF90DF90CF9008951F9338 -:103D1000CF93DF93CDB7DEB72C970FB6F894DEBF05 -:103D20000FBECDBF4F83588769877A878B879C8763 -:103D3000CE0107960E94C01C882369F08F81988568 -:103D40002A853B85232BF1F19F3F09F063C08F3F0C -:103D500009F060C037C086E0FE013796DE0111969B -:103D600001900D928A95E1F76F817885EA85FB8550 -:103D7000309741F17F3F11F46F3F21F1209187018E -:103D800030E0C9010196877099274091860150E083 -:103D90008417950709F447C069837A83FD83EC8310 -:103DA00096E0929FD001939FB00D1124A857BE4F6B -:103DB000FE01319601900D929A95E1F7809387016B -:103DC0000E94361C16E08091860190918701891728 -:103DD000C1F1189FC001112488579E4F0E94C01C3A -:103DE000882379F1E09186011E9FF0011124E857A4 -:103DF000FE4F4081518162817381848195810E944F -:103E0000261C8091860190E0019687709927809307 -:103E10008601D9CF4F81588569857A858B859C85A8 -:103E20000E94261CCFCF0E94ED1B1092870110929A -:103E30008601E8EBF1E086E0DF011D928A95E9F763 -:103E4000C1CF2C960FB6F894DEBF0FBECDBFDF9169 -:103E5000CF911F910895EF92FF920F931F93CF93ED -:103E6000DF938C01892B09F46CC0F12CEE24E394D0 -:103E7000E8012196F8018491843740F4843008F0F9 -:103E800051C0813081F0823019F15BC0853709F46F -:103E900044C0A8F19CE7980F903708F052C08F7784 -:103EA0000E94651841C00E5F1F4FFE01C49180E261 -:103EB0008C0F883048F4C7708E2D01C0880FCA95CA -:103EC000EAF70E94DB2114C08C2F0E949D172DC0A1 -:103ED0000E5F1F4FFE01C49180E28C0F883058F4B2 -:103EE000C7708E2D01C0880FCA95EAF70E94E121A4 -:103EF0000E9402221AC08C2F0E94651816C00E5F05 -:103F00001F4FFE01C491CC2381F08FE99FE0019700 -:103F1000F1F700C00000C150F6CF0E5F1F4FFE0149 -:103F2000F49003C00E949D178E018F2D882309F401 -:103F30009FCFEFE9FFE03197F1F700C0000081501B -:103F4000F5CFDF91CF911F910F91FF90EF900895E2 -:103F500008956093C2017093C3018093C40190934C -:103F6000C5010C94DB1B0F931F930091C2011091AC -:103F7000C3012091C4013091C501DC01CB01802B2C -:103F8000912BA22BB32B8093C2019093C301A093DA -:103F9000C401B093C5011F910F910C94DB1B0F93CB -:103FA0001F930091C2011091C3012091C40130916F -:103FB000C501DC01CB0180239123A223B32380938D -:103FC000C2019093C301A093C401B093C5011F9196 -:103FD0000F910C94DB1B0F931F930091C201109162 -:103FE000C3012091C4013091C501DC01CB018027C0 -:103FF0009127A227B3278093C2019093C301A09376 -:10400000C401B093C5011F910F910C94DB1B10925A -:10401000BE011092BF011092C0011092C1010C9418 -:10402000DB1B41E050E060E070E004C0440F551F2E -:10403000661F771F8A95D2F74093BE015093BF0148 -:104040006093C0017093C1010C94DB1B41E050E010 -:1040500060E070E004C0440F551F661F771F8A950B -:10406000D2F78091BE019091BF01A091C001B091A3 -:10407000C101482B592B6A2B7B2B4093BE015093D7 -:10408000BF016093C0017093C1010C94DB1B41E040 -:1040900050E060E070E004C0440F551F661F771FBA -:1040A0008A95D2F740955095609570958091BE01A4 -:1040B0009091BF01A091C001B091C1014823592343 -:1040C0006A237B234093BE015093BF016093C001DC -:1040D0007093C1010C94DB1B41E050E060E070E0A4 -:1040E00004C0440F551F661F771F8A95D2F7809131 -:1040F000BE019091BF01A091C001B091C1014827BC -:1041000059276A277B274093BE015093BF016093D4 -:10411000C0017093C1010C94DB1B0F931F9300919E -:10412000BE011091BF012091C0013091C101DC019D -:10413000CB01802B912BA22BB32B8093BE019093AC -:10414000BF01A093C001B093C1011F910F910C94C6 -:10415000DB1B0F931F930091BE011091BF012091B3 -:10416000C0013091C101DC01CB0180239123A22346 -:10417000B3238093BE019093BF01A093C001B0937D -:10418000C1011F910F910C94DB1B0F931F930091A2 -:10419000BE011091BF012091C0013091C101DC012D -:1041A000CB0180279127A227B3278093BE0190934C -:1041B000BF01A093C001B093C1011F910F910C9456 -:1041C000DB1B0895CF92DF92EF92FF920F931F9324 -:1041D000CF93DF938C01C090C201D090C301E090D7 -:1041E000C401F090C5014091BE015091BF016091A2 -:1041F000C0017091C101C42AD52AE62AF72ACFE16D -:10420000D0E0D701C6010C2E04C0B695A7959795AE -:1042100087950A94D2F780FF07C0B8018C2F0E94BF -:104220000A0D8130910531F4219758F7B80180E0EB -:104230000E940A0DDF91CF911F910F91FF90EF9097 -:10424000DF90CF90089590910C01992321F09091E7 -:104250000D01911109C020910E0130910F01F9015A -:1042600032969FEF40E030C0982F969596959695A0 -:104270009F30A0F4E0910E01F0910F01E90FF11DC4 -:10428000877021E030E0A90102C0440F551F8A95D4 -:10429000E2F7CA019181892B818308959091D90118 -:1042A00090FF23C01F928F9384E697E09F938F9394 -:1042B0000E94B5080F900F900F900F9008959F3FA8 -:1042C00039F04F5F4E3041F051915813F8CF0DC087 -:1042D0005111F7CF942FF5CF9F3F39F0F901E90F36 -:1042E000F11D97FDFA9582830895089590910C0130 -:1042F000992321F090910D01911109C020910E0197 -:1043000030910F01F9013296205F3F4F30C0982F56 -:104310009695969596959F30A8F4E0910E01F091B0 -:104320000F01E90FF11D877021E030E0A90102C003 -:10433000440F551F8A95E2F7CA0180959181892320 -:10434000818308959091D90190FF16C01F928F9399 -:1043500086E497E09F938F930E94B5080F900F908B -:104360000F900F9008953196E217F30729F090818E -:104370009813F9CF1082F7CF089581E090E0E09193 -:104380000E01F0910F01E80FF91F108201968031A4 -:104390009105A9F708959091D801892B8093D801B0 -:1043A000089580959091D80189238093D80108952C -:1043B0001092D80108959091D701892B8093D7014D -:1043C000089580959091D70189238093D70108950E -:1043D0001092D70108958093C60108951092C601E6 -:1043E000089580910E0190910F01FC0131969C017E -:1043F000205F3F4F80E0919191118F5FE217F307AB -:10440000D1F70895E0910E01F0910F018091D8014C -:104410008083E0910E01F0910F0190818091D7018E -:10442000892B80838091C601882361F0E0910E0181 -:10443000F0910F019081892B80830E94F1218111DD -:104440001092C60180910E0190910F010C941B16E1 -:1044500090933B0180933A010895CF92DF92EF92BF -:10446000FF926C01EE24FF24C114D104E104F10495 -:1044700021F0C701B60120E101C020E0C72ED82EEF -:10448000E92EFF24C114D104E104F10419F0285FDE -:10449000C701B6016B017C0154E0F694E794D79410 -:1044A000C7945A95D1F7C114D104E104F10419F06D -:1044B0002C5FC701B6016B017C0142E0F694E794E2 -:1044C000D794C7944A95D1F7C114D104E104F104FB -:1044D00019F02E5FC701B601DC01CB01B695A79597 -:1044E00097958795892B8A2B8B2B09F02F5F822F2D -:1044F000FF90EF90DF90CF9008958295982F9C7C4D -:10450000392F36953695282F237344E0249FC00118 -:104510001124932F982B292F2A7A2695892F857578 -:10452000880F822B08951F93CF93DF931F92CDB7EF -:10453000DEB799830E947D22182F9981892F0E94CE -:104540007D22212F30E0322F2227A901482BCA01DA -:104550000F90DF91CF911F9108958091F2018430E7 -:1045600009F11092DA0120E488E190E00FB6F894A6 -:10457000A895809360000FBE2093600083B7817F71 -:10458000846083BF83B7816083BF7894889583B745 -:104590008E7F83BF88E10FB6F894809360001092FD -:1045A00060000FBE089508950895CF930E94D3220E -:1045B0000E94AF0A0E94D422C0E08C2F0E94DB0B25 -:1045C000811104C0CF5FCE30C1F701C081E0CF912F -:1045D00008950C94ED1B82E084BD93E095BD9AEFA5 -:1045E00097BD80936E0008952FB7F8948091DB01FA -:1045F0009091DC01A091DD01B091DE012FBF089503 -:10460000CF92DF92EF92FF920F931F932FB7F89400 -:104610004091DB015091DC016091DD017091DE0180 -:104620002FBF6A017B01EE24FF248C0120E030E0E3 -:10463000C016D106E206F30610F4415051099A0162 -:10464000281B390BC9011F910F91FF90EF90DF904C -:10465000CF9008951F920F920FB60F9211248F934F -:104660009F93AF93BF938091DB019091DC01A09168 -:10467000DD01B091DE010196A11DB11D8093DB012A -:104680009093DC01A093DD01B093DE01BF91AF9167 -:104690009F918F910F900FBE0F901F9018950E94C1 -:1046A0000D13F8942FEF87EA91E621508040904057 -:1046B000E1F700C0000087E090EBDC018093FB0194 -:1046C0009093FC01A093FD01B093FE019CE088E172 -:1046D0000FB6F894A895809360000FBE9093600089 -:1046E000FFCFEF92FF920F931F93CF93DF93D82FBB -:1046F000C0E08C2F0E94DB0B00E010E0E82EF12CD4 -:10470000C701002E02C0959587950A94E2F780FDB7 -:1047100006C00F5F1F4F0630110591F709C0602FCB -:104720007C2F80E00E94E80CD813F3CF81E004C016 -:10473000CF5FCE30F1F680E0DF91CF911F910F91E6 -:10474000FF90EF900895CF93C82F8CE20E947123C1 -:10475000882321F08C2FCF910C94712380E0CF918E -:104760000895CF930E940025811102C00E94E62483 -:1047700089E897E00E941C08C5E6C15049F00E94F4 -:10478000AF0A8FE39CE90197F1F700C00000F5CF75 -:1047900082E897E00E941C0889E20E94A32381110D -:1047A00013C18AE20E94A32381110E94E62485E0BE -:1047B0000E94A32381110E944F230E940B25809306 -:1047C000D90187E00E94A3238823A9F18BE10E94ED -:1047D000A323882351F08091D90181FB222720F95E -:1047E00091E0922790FB81F90EC08EE00E94A323F6 -:1047F000882361F08091D90182FB222720F991E082 -:10480000922790FB82F98093D90115C080E10E9424 -:10481000A3239091D901882341F093FB222720F90B -:1048200081E0822780FB93F904C0892F809580FB6B -:1048300090F99093D9018091D9010E940F250E948F -:104840001D258093EC0180EE0E94A323882341F074 -:104850008091EC01982F909590FB80F98093EC016A -:1048600089E30E94A323882359F08091EC0181FB06 -:10487000222720F991E0922790FB81F98093EC01A7 -:1048800082EE0E94A323882359F08091EC0182FBE1 -:10489000222720F991E0922790FB82F98093EC0186 -:1048A00086EE0E94A323882359F08091EC0183FBBC -:1048B000222720F991E0922790FB83F98093EC0165 -:1048C00083EE0E94A323882359F08091EC0184FB9E -:1048D000222720F991E0922790FB84F98093EC0144 -:1048E00085E30E94A323882359F08091EC0185FB86 -:1048F000222720F991E0922790FB85F98093EC0123 -:1049000081E30E94A323882359F08091EC0186FB68 -:10491000222720F991E0922790FB86F98093EC0101 -:1049200081E10E94A323882359F08091EC0187FB49 -:10493000222720F991E0922790FB87F98093EC01E0 -:104940008091EC010E9421258091EC0187FB882752 -:1049500080F980930D0187E20E94A323C82F8EE186 -:104960000E94A3238111C2608FE10E94A3238111C1 -:10497000C46080E20E94A3238111C86081E20E948A -:10498000A3238111C06182E20E94A3238111C0622E -:1049900083E20E94A3238111C06484E20E94A323C6 -:1049A000882311F0C06802C0CC2329F08C2F0E940C -:1049B00018256C2F03C00E941425682F70E080E03A -:1049C00090E0CF910C94A91FCF9108956DEE7EEFEA -:1049D00080E090E00E94E92E60E082E090E00E949A -:1049E000DB2E60E083E090E00E94DB2E60E084E05C -:1049F00090E00E94DB2E60E085E090E00C94DB2EDE -:104A000080E090E00E94D52E21E08D3E9E4F09F07F -:104A100020E0822F089582E090E00C94CD2E682F44 -:104A200082E090E00C94DB2E83E090E00C94CD2E9D -:104A3000682F83E090E00C94DB2E84E090E00C94EF -:104A4000CD2E682F84E090E00C94DB2E8091E10164 -:104A500080FF0BC06091130185E0689FB0011124B5 -:104A600075956795759567952BC081FF09C0609115 -:104A7000130185E0689FB00111247595679520C0EA -:104A800082FF07C06091130185E0689FB001112487 -:104A900017C09091E2019923D1F06091120196170D -:104AA00088F72091130185E0289F90011124929F9F -:104AB000A001939F500D112470E0CA010E949F2E07 -:104AC0006038710540F46115710539F002C065E088 -:104AD00070E0862F08958FE7089581E00895809112 -:104AE000E10180FF08C06091110170E07595679544 -:104AF0007595679521C081FF06C06091110170E036 -:104B00007595679519C082FF04C06091110170E02E -:104B100010C09091E2019923C1F0609110019617A5 -:104B2000A0F780911101899FC001112470E00E94BB -:104B30009F2E6038710528F46115710521F0862FCC -:104B400008958FE7089581E0089561E070E0F4CF63 -:104B5000803F21F40E942625819504C0813F29F4DD -:104B60000E9426258093E5010895823F21F40E944A -:104B70002625819504C0833F29F40E942625809331 -:104B8000E4010895893F19F40E946F2505C08A3F0A -:104B900031F40E946F2581958093E60108958B3F43 -:104BA00021F40E946F25819504C08C3F29F40E9456 -:104BB0006F258093E7010895843F21F48091E301FC -:104BC000816017C0853F21F48091E301826011C0AC -:104BD000863F21F48091E30184600BC0873F21F47C -:104BE0008091E301886005C0883F31F48091E30142 -:104BF00080618093E30108958D3F21F48091E1016C -:104C000081600BC08E3F21F48091E101826005C07C -:104C10008F3F29F48091E10184608093E101089540 -:104C2000803F39F48091E50187FF6CC01092E50167 -:104C300069C0813F29F48091E5011816BCF362C078 -:104C40009091E401823F29F497FF5CC01092E40147 -:104C500059C0833F19F41916CCF354C0893F41F46D -:104C60008091E60118160CF04DC01092E6014AC082 -:104C70008A3F29F48091E60187FF44C0F6CF8B3F3D -:104C800039F48091E70187FF3DC01092E7013AC0F7 -:104C90008C3F29F48091E7011816BCF333C0843FA0 -:104CA00021F48091E3018E7F17C0853F21F480912C -:104CB000E3018D7F11C0863F21F48091E3018B7F5A -:104CC0000BC0873F21F48091E301877F05C0883FB7 -:104CD00031F48091E3018F7E8093E30113C08D3F17 -:104CE00021F48091E1018E7F0BC08E3F21F48091F1 -:104CF000E1018D7F05C08F3F29F48091E1018B7F19 -:104D00008093E1018091E40181110EC08091E50161 -:104D100081110AC08091E601811106C08091E701EE -:104D2000811102C01092E20108958091D90183FFA0 -:104D30007EC085EC97E00E941C088091E3011F92E1 -:104D40008F9380EC97E09F938F930E94B5088EEB32 -:104D500097E00E941C088091E401282F332727FD4B -:104D600030953F938F938BEB97E09F938F930E94A7 -:104D7000B50889EB97E00E941C088091E501282F77 -:104D8000332727FD30953F938F9386EB97E09F93D2 -:104D90008F930E94B50884EB97E00E941C088091D5 -:104DA000E601282F332727FD30953F938F9381EB22 -:104DB00097E09F938F930E94B5088FEA97E00E9437 -:104DC0001C088091E701282F332727FD30953F935A -:104DD0008F938CEA97E09F938F930E94B50889EA9E -:104DE00097E00E941C088091E2011F928F9386EA4F -:104DF00097E09F938F930E94B50884EA97E00E9402 -:104E00001C088091E1011F928F9381EA97E09F93A4 -:104E10008F930E94B5088EE997E00E941C088DB719 -:104E20009EB74C960FB6F8949EBF0FBE8DBF83EE13 -:104E300091E00E9464160E94F4229093E001809316 -:104E4000DF0108951F93CF93DF938091DF0190914D -:104E5000E0010E940023AC019091E201992321F02E -:104E60002091140130E006C0209115018AE0289FAE -:104E7000900111244217530708F486C08091E40181 -:104E8000C091E501D091E6011091E701811107C0C1 -:104E9000C11176C0D11174C0111172C075C09F3F8D -:104EA00019F09F5F9093E201181624F40E942625C2 -:104EB0008093E4018091E40187FF05C00E942625CC -:104EC00081958093E4011C1624F40E94262580938A -:104ED000E5018091E50187FF05C00E9426258195A7 -:104EE0008093E5016091E401662339F1C091E50109 -:104EF000CC2319F1772767FD7095872F972F0E9494 -:104F0000A42D23E333E343E35FE30E94082E0E94D2 -:104F1000712D6093E4016C2F772767FD7095872FC3 -:104F2000972F0E94A42D23E333E343E35FE30E9422 -:104F3000082E0E94712D6093E5011D1624F40E9435 -:104F40006F258093E6018091E60187FF05C00E94EE -:104F50006F2581958093E601111624F40E946F2538 -:104F60008093E7018091E70187FF05C00E946F25CC -:104F700081958093E701DF91CF911F910C94952645 -:104F80009F3F09F08ECF96CFDF91CF911F9108956B -:104F9000E3EEF1E085E0DF011D928A95E9F71092DA -:104FA000E2011092E101089588EE99E00E941C0848 -:104FB0001F9281E08F931F9285E08F938AE999E099 -:104FC0009F938F930E94B5080F900F900F900F90B2 -:104FD0000F900F9008958330E9F128F4813061F04B -:104FE000823009F10895853009F462C008F449C09F -:104FF000863009F474C0089580911501262F30E0A1 -:10500000280F311D2F3F310524F4680F60931501DF -:1050100003C08FEF80931501809115011F928F932C -:1050200083ED98E072C080911401262F30E0280FA4 -:10503000311D2F3F310524F4680F6093140103C024 -:105040008FEF80931401809114011F928F9381EC54 -:1050500098E05BC080911301262F30E0280F311DAE -:105060002F3F310524F4680F6093130103C08FEFC5 -:1050700080931301809113011F928F938EEA98E021 -:1050800044C080911201262F30E0280F311D2F3FA0 -:10509000310524F4680F6093120103C08FEF8093F1 -:1050A0001201809112011F928F9389E998E02DC01F -:1050B00080911101262F30E0280F311D2F3F31053F -:1050C00024F4680F6093110103C08FEF80931101E6 -:1050D000809111011F928F9380E898E016C0809113 -:1050E0001001262F30E0280F311D2F3F310524F409 -:1050F000680F6093100103C08FEF809310018091BF -:1051000010011F928F9385E698E09F938F930E94E2 -:10511000B5080F900F900F900F900895833081F194 -:1051200028F4813059F08230D1F00895853009F4A7 -:1051300049C0B8F1863009F456C008958091150130 -:10514000681720F4861B8093150102C01092150188 -:10515000809115011F928F9386E598E054C080914D -:105160001401681720F4861B8093140102C010926A -:105170001401809114011F928F9384E498E043C03E -:1051800080911301681720F4861B8093130102C0DD -:1051900010921301809113011F928F9381E398E085 -:1051A00032C080911201681720F4861B809312018F -:1051B00002C010921201809112011F928F938CE114 -:1051C00098E021C080911101681720F4861B80931C -:1051D000110102C010921101809111011F928F9351 -:1051E00083E098E010C080911001681720F4861BBE -:1051F0008093100102C010921001809110011F9243 -:105200008F9388EE97E09F938F930E94B5080F903D -:105210000F900F900F900895CF93C82F1F928F93E8 -:105220008DEE9AE09F938F930E94B50881E090E005 -:10523000A0E0B0E0BC01CD0104C0660F771F881F5D -:10524000991FCA95D2F70E94A91F0F900F900F9037 -:105250000F90CF910C94ED1BCF938D3109F465C065 -:10526000B0F58E3009F4CCC100F5873009F49BC14C -:10527000A8F4863009F06DC28091D901817F8E7FBC -:105280008093D90182EF9AE00E941C0884E39FE09A -:105290000E941C0881E08093E90180C1883009F4F4 -:1052A0004FC08B3009F47CC154C2863109F4F0C17F -:1052B00038F4803109F4B8C1813109F430C249C2EF -:1052C000893109F4CEC18B3109F486C142C28533DC -:1052D00009F437C248F4873209F433C208F433C200 -:1052E000893209F42EC235C2833438F48A3308F087 -:1052F0002CC2883309F454C12CC2833409F421C26E -:10530000883409F026C20E94ED1B83E29FE00E94D0 -:105310001C089FEF23ED80E3915020408040E1F78F -:1053200000C000000E944F2339C183E49FE00E9427 -:105330001C080E942B2D0E940F160E94410E2EC1A8 -:1053400088E39FE00E941C0883E09DE00E941C0807 -:105350000E9414251F928F9380E09DE09F938F936E -:105360000E94B5088EEF9CE00E941C080E940B254D -:10537000C82F8BEE9CE00E941C081F92CF9386EEF4 -:105380009CE09F938F930E94B50884EE9CE00E945E -:105390001C088AED9CE00E941C088C2F81701F92D3 -:1053A0008F9387ED9CE09F938F930E94B50885EDC6 -:1053B0009CE00E941C088BEC9CE00E941C08C1FB36 -:1053C000882780F91F928F9388EC9CE09F938F939E -:1053D0000E94B50886EC9CE00E941C088AEB9CE0C9 -:1053E0000E941C08C2FB882780F91F928F9387EBCD -:1053F0009CE09F938F930E94B50885EB9CE00E94F0 -:105400001C088CEA9CE00E941C08C3FBCC27C0F956 -:105410001F92CF9389EA9CE09F938F930E94B508D7 -:1054200087EA9CE00E941C080E941D25C82F83E982 -:105430009CE00E941C081F92CF938EE89CE09F93F3 -:105440008F930E94B5088CE89CE00E941C0883E7BB -:105450009CE00E941C088C2F81701F928F9380E724 -:105460009CE09F938F930E94B5088DB79EB780965E -:105470000FB6F8949EBF0FBE8DBF8EE69CE00E94D3 -:105480001C0887E59CE00E941C08C1FB882780F966 -:105490001F928F9384E59CE09F938F930E94B508A1 -:1054A00082E59CE00E941C0880E49CE00E941C08AD -:1054B000C2FB882780F91F928F938DE39CE09F9316 -:1054C0008F930E94B5088BE39CE00E941C0889E240 -:1054D0009CE00E941C08C3FB882780F91F928F93D1 -:1054E00086E29CE09F938F930E94B50884E29CE043 -:1054F0000E941C088AE19CE00E941C08C4FB8827CB -:1055000080F91F928F9387E19CE09F938F930E9475 -:10551000B50885E19CE00E941C0883E09CE00E94A5 -:105520001C08C5FB882780F91F928F9380E09CE0C0 -:105530009F938F930E94B5088EEF9BE00E941C08FA -:1055400082EE9BE00E941C08C6FB882780F91F9210 -:105550008F938FED9BE09F938F930E94B5088DED05 -:105560009BE00E941C0885ED9BE00E941C08C7FB85 -:10557000CC27C0F91F92CF9382ED9BE09F938F932E -:105580000E94B50880ED9BE00E941C088DB79EB775 -:105590004C960FB6F8949EBF0FBE8DBFC1E0DEC023 -:1055A00089E19BE05BC08091D901C82FC17080FF69 -:1055B00009C086E19FE00E941C088091D901817F8B -:1055C0008E7F47C08AE09FE00E941C088091D9012D -:1055D00081608093D901E2CF9091D90191FBCC27D2 -:1055E000C0F981E0C827892FC0FB81F98093D901D8 -:1055F000CC2319F08DEF9EE027C08FEE9EE02EC0E9 -:105600009091D90192FBCC27C0F981E0C827892F5E -:10561000C0FB82F98093D901CC2319F080EE9EE083 -:1056200013C080ED9EE01AC09091D90193FBCC2766 -:10563000C0F981E0C827892FC0FB83F98093D90185 -:10564000CC2351F084EC9EE00E941C088091D9018B -:1056500081608093D90182C087EB9EE00E941C0884 -:105660009DCF88EA9EE00E941C088CE79EE00E9485 -:105670001C088FE39EE00E941C0882E19EE00E94CD -:105680001C088EEC9DE00E941C0883EA9DE0E6CF9A -:1056900085E99DE00E941C080E940F161F928F93BF -:1056A0008BE79DE09F938F930E94B50880910C013A -:1056B0001F928F9384E69DE09F938F930E94B5087D -:1056C000809170011F928F9381E59DE09F938F934E -:1056D0000E94B50880910D011F928F938EE39DE08B -:1056E0009F938F930E94B5088091DB019091DC011C -:1056F000A091DD01B091DE01BF93AF939F938F9393 -:105700008AE29DE09F938F930E94B5088DB79EB764 -:1057100046960FB6F8949EBF0FBE8DBF3FCF0E9436 -:10572000ED1BC0910D0181E0C827C0930D01CC2372 -:1057300029F080E29DE00E941C0810C085E19DE0F8 -:105740008DCF80E003C08D5101C089530E940C2988 -:1057500025CF83E19DE00E941C08C0E08C2FCF91F3 -:10576000089580E0089580E00895CF93C82F809138 -:10577000E901813081F020F0823009F44FC045C149 -:10578000E0910E01F0910F018081813169F0823248 -:1057900009F03DC109C0E0910E01F0910F01808137 -:1057A000813111F0823261F48C2F0E94B12B811172 -:1057B00004C08C2F0E942C292FC081E090E02CC0C7 -:1057C0008C2F0E94B32B811126C0C431E1F070F4FC -:1057D000CB3081F0C031D1F40E94D42785EE9AE01D -:1057E0000E941C0882E08093E90115C0C93259F07B -:1057F000C83361F482EF9AE00E941C0889EE9AE0B7 -:105800000E941C0808C01092E90103C183EE9AE0CF -:105810000E941C08FEC081E08170FDC0C43220F5EA -:10582000CE3108F0C0C0CB3099F1C8F4C73009F0D0 -:10583000D2C08AE08093150194E19093140193E023 -:10584000909313018093120188E08093110188E204 -:105850008093100189E899E00E941C08BFC0C33101 -:1058600049F1C431C1F0B7C0CB3409F4A9C028F460 -:10587000C93289F0C83361F0AEC0C13509F49EC0A9 -:10588000C23509F499C0CE3409F0A5C06AE09EC0C3 -:105890000E94D427A3C08091E801882319F01092B8 -:1058A000E8019CC086E999E00E941C0881E0809391 -:1058B000E901B1C080E799E00E941C088EE599E0FB -:1058C0000E941C08809115011F928F938BE599E02F -:1058D0009F938F930E94B50889E599E00E941C0868 -:1058E00087E499E00E941C08809114011F928F9315 -:1058F00084E499E09F938F930E94B50882E499E035 -:105900000E941C0883E399E00E941C088091130107 -:105910001F928F9380E399E09F938F930E94B50825 -:105920008EE299E00E941C088DE199E00E941C081B -:10593000809112011F928F938AE199E09F938F9338 -:105940000E94B50888E199E00E941C0883E099E074 -:105950000E941C08809111011F928F9380E099E0B2 -:105960009F938F930E94B5088EEF98E00E941C08C9 -:1059700087EE98E00E941C08809110011F928F937F -:1059800084EE98E09F938F930E94B50882EE98E092 -:105990000E941C088DB79EB748960FB6F8949EBF1C -:1059A0000FBE8DBF1BC0CE51EC2FF0E0E15DFE4F6E -:1059B00080818093E80112C061E003C061E006C00D -:1059C0006AE08091E8010E94EB2708C08091E8011D -:1059D0000E948E2803C087E899E013C08091E801F7 -:1059E000882369F01F928F9381E899E09F938F93AA -:1059F0000E94B5080F900F900F900F9004C08EE793 -:105A000099E00E941C0881E006C01092E90180E044 -:105A100002C080E001CFCF910895E1E8F0E08081FD -:105A2000886080838081816080838FB7F89493E061 -:105A30009093890090ED909388008FBF0895EFE6D2 -:105A4000F0E08081826080830895EFE6F0E080815D -:105A50008D7F80830895EFE6F0E0908182E08927D2 -:105A6000808308951F920F920FB60F9211242F93E7 -:105A70003F934F935F936F937F938F939F93AF93D6 -:105A8000BF93EF93FF938091EA019091EB01019610 -:105A90009093EB018093EA01811103C082E00E94A0 -:105AA000410EE091EB01E695E695F0E0ED5AF04FFE -:105AB000E4918091EA018E1303C080E00E94410EC0 -:105AC000FF91EF91BF91AF919F918F917F916F91D6 -:105AD0005F914F913F912F910F900FBE0F901F90AC -:105AE000189504D06894B1118DC0089570D088F0D5 -:105AF0009F5790F0B92F9927B751A0F0D1F0660FBA -:105B0000771F881F991F1AF0BA95C9F712C0B130D4 -:105B100081F077D0B1E0089574C0672F782F88277F -:105B2000B85F39F0B93FCCF3869577956795B39513 -:105B3000D9F73EF490958095709561957F4F8F4F82 -:105B40009F4F0895E89409C097FB3EF49095809587 -:105B5000709561957F4F8F4F9F4F9923A9F0F92F33 -:105B600096E9BB279395F695879577956795B795B1 -:105B7000F111F8CFFAF4BB0F11F460FF1BC06F5F97 -:105B80007F4F8F4F9F4F16C0882311F096E911C0A9 -:105B9000772321F09EE8872F762F05C0662371F0CA -:105BA00096E8862F70E060E02AF09A95660F771FDE -:105BB000881FDAF7880F9695879597F9089557FD0E -:105BC0009058440F551F59F05F3F71F04795880F6B -:105BD00097FB991F61F09F3F79F087950895121602 -:105BE00013061406551FF2CF4695F1DF08C01616AE -:105BF00017061806991FF1CF86957105610508945F -:105C00000895E894BB2766277727CB0197F9089575 -:105C10000BD078C069D028F06ED018F0952309F029 -:105C20005AC05FC01124EECFCADFA0F3959FD1F315 -:105C3000950F50E0551F629FF001729FBB27F00D3A -:105C4000B11D639FAA27F00DB11DAA1F649F66278F -:105C5000B00DA11D661F829F2227B00DA11D621FDE -:105C6000739FB00DA11D621F839FA00D611D221F98 -:105C7000749F3327A00D611D231F849F600D211D7C -:105C8000822F762F6A2F11249F5750408AF0E1F01F -:105C900088234AF0EE0FFF1FBB1F661F771F881F68 -:105CA00091505040A9F79E3F510570F014C0AACF03 -:105CB0005F3FECF3983EDCF3869577956795B79553 -:105CC000F795E7959F5FC1F7FE2B880F911D96957D -:105CD000879597F9089597F99F6780E870E060E0ED -:105CE00008959FEF80EC089500240A941616170675 -:105CF00018060906089500240A94121613061406BD -:105D000005060895092E0394000C11F4882352F01F -:105D1000BB0F40F4BF2B11F460FF04C06F5F7F4FD7 -:105D20008F4F9F4F0895991B79E004C0991F9617D4 -:105D300008F0961B881F7A95C9F78095089597FB00 -:105D4000072E16F4009407D077FD09D00E94B92ED3 -:105D500007FC05D03EF4909581959F4F089570956E -:105D600061957F4F0895EE0FFF1F0590F491E02D90 -:105D70000994AA1BBB1B51E107C0AA1FBB1FA61792 -:105D8000B70710F0A61BB70B881F991F5A95A9F7E4 -:105D900080959095BC01CD010895F999FECF92BDF3 -:105DA00081BDF89A992780B50895A8E1B0E042E056 -:105DB00050E00C94F02E262FF999FECF1FBA92BD19 -:105DC00081BD20BD0FB6F894FA9AF99A0FBE0196DC -:105DD00008950E94DB2E272F0C94DC2EDC01CB01D2 -:105DE000FC01F999FECF06C0F2BDE1BDF89A3196EB -:105DF00000B40D9241505040B8F70895F894FFCF89 -:105E00002002420E330F100FDC0EA80E0101C70155 -:105E100028080A03140A3F4D362039D30686065057 -:105E2000063006F7056A0583059C05B505D505010D -:0A5E3000020304050607080900003C -:00000001FF diff --git a/keyboard/ergodox_ez/keymaps/keymap_osx_de_highres.png b/keyboard/ergodox_ez/keymaps/keymap_osx_de_highres.png deleted file mode 100644 index 1d5226974f..0000000000 Binary files a/keyboard/ergodox_ez/keymaps/keymap_osx_de_highres.png and /dev/null differ diff --git a/keyboard/ergodox_ez/keymaps/keymap_osx_fr.hex b/keyboard/ergodox_ez/keymaps/keymap_osx_fr.hex deleted file mode 100644 index 8915d9caa5..0000000000 --- a/keyboard/ergodox_ez/keymaps/keymap_osx_fr.hex +++ /dev/null @@ -1,1471 +0,0 @@ -:100000000C9400070C9444070C9444070C94440788 -:100010000C9444070C9444070C9444070C94440734 -:100020000C9444070C9444070C9458120C942A1313 -:100030000C9444070C9444070C9444070C94440714 -:100040000C9444070C94022C0C9444070C94440721 -:100050000C9444070C94FA210C9444070C94440724 -:100060000C9444070C9444070C9444070C944407E4 -:100070000C9444070C9444070C9444070C944407D4 -:100080000C9444070C9444070C9444070C944407C4 -:100090000C9444070C9444070C9444070C944407B4 -:1000A0000C9444070C9444070C9444079713B91319 -:1000B000A714B913A714FE132114A71476148914D6 -:1000C000D017D017FF17FF17431881189B1A9B1AD8 -:1000D0009A189B1A9B199B196F1A9B1A9B1A861ABE -:1000E0000000F0A12E004C002A00E1003481000045 -:1000F0001E00140004001D7164004D001F001A0052 -:1001000016001B00E1042A0020000800070006007A -:1001100050002C0021001500090019004F004A0072 -:10012000220017000A000500000065745000015409 -:100130000000007F0000E3004F0001540000007742 -:100140000000E20023001C000B00110000002971D8 -:10015000240018000D00100052004B0025000C0078 -:100160000E00368251002800260012000F003700D2 -:100170002F002B00270013003300387130004E0091 -:100180002D003200E300E500C10000000100010085 -:1001900001000100010000003A0025003502340290 -:1001A000010001003B00350030002F00010001007C -:1001B0003C00220422002206010001003D002D0423 -:1001C0002D002D06010001003E000F063200110433 -:1001D000000001000100010000000100000001001A -:1001E0000100010000000100000001003F0052007A -:1001F00051001E00000001004000240221021E02E6 -:10020000010001004100250222021F02100001002E -:10021000420026022302200227020100430030028E -:100220003802370638000100440045000100010093 -:1002300001000000010001000100010001000000B8 -:1002400001000100010001000100010001000100A6 -:10025000F2000100010001000100F000F1000100C6 -:10026000F400010001000100F3000100F5000100AD -:100270000100010001000100000001000100010077 -:100280000000010000000100010001000000010069 -:100290000000010001000100010001000000010058 -:1002A0000100010001000100A9000100010001009E -:1002B0000100AC00AA00B600010001000100AB0083 -:1002C000A80001000100010001000100010001007F -:1002D00001000100AE000100010000000A0025300D -:1002E000313662003A200025303258000A722F63FE -:1002F0002030313233343536373839414243444582 -:10030000460A000A002530325800626F756E636538 -:10031000213A20006C6566742073696465206174FD -:100320007461636865640A006C656674207369644F -:1003300065206E6F7420726573706F6E64696E678E -:100340000A00747279696E6720746F207265736534 -:1003500074206D637032333031380A000A444542EC -:1003600055473A20656E61626C65642E0A005B73C6 -:100370005D004B6579626F617264207374617274A1 -:100380002E0A005B575D005B535D005B525D005BB6 -:10039000445D005B435D0016034500720067006F1B -:1003A0000044006F007800200045005A000000164D -:1003B000034500720067006F0044006F0078002062 -:1003C0000045005A0000000403090409028D0005DD -:1003D0000100A0FA09040000010301010009211134 -:1003E000010001223F000705810308000A090401FA -:1003F000000103010200092111010001224D000743 -:1004000005820308000A0904020001030000000934 -:1004100021110100012236000705830308000A09A3 -:100420000403000203000000092111010001222041 -:1004300000070584032000010705040320000109CB -:100440000404000103000000092111010001223908 -:1004500000070585031000011201100100000008CB -:10046000EDFE071301000102000105010906A101CB -:10047000050719E029E71500250195087501810296 -:100480000508190129059505750191029501750366 -:100490009101050719002977150025019578750147 -:1004A0008102C00631FF0974A1010975150025FFFD -:1004B0009520750881020976150025FF952075089D -:1004C0009102C005010980A101850216010026B72D -:1004D000001A01002AB700751095018100C0050CB3 -:1004E0000901A1018503160100269C021A01002AB8 -:1004F0009C02751095018100C005010902A1010946 -:1005000001A10005091901290515002501950575A9 -:100510000181029501750381010501093009311539 -:1005200081257F95027508810609381581257F95FB -:100530000175088106050C0A38021581257F950191 -:1005400075088106C0C005010906A101050719E06B -:1005500029E71500250195087501810295017508A7 -:10056000810105081901290595057501910295017B -:10057000750391010507190029FF150025FF950650 -:1005800075088100C00A002530325820006B65795B -:10059000626F6172645F7265706F72743A20000AF4 -:1005A0000025303258006B6579626F6172645F7349 -:1005B00065745F6C65643A200064656C5F6B657997 -:1005C0005F6269743A2063616E27742064656C3AD7 -:1005D00020253032580A006164645F6B65795F6280 -:1005E00069743A2063616E2774206164643A20253F -:1005F0003032580A00646F6E652E0A00626F6F67B2 -:100600006D61676963207363616E3A202E2E2E2020 -:1006100000290A002575002F002575005D2800259A -:10062000640020002564002000256400200025646B -:10063000007C0025303258006D6F7573656B6579ED -:10064000205B62746E7C782079207620685D287249 -:1006500065702F61636C293A205B006D6B5F776872 -:1006600065656C5F74696D655F746F5F6D6178203F -:100670003D2025640A006D6B5F776865656C5F6D72 -:1006800061785F7370656564203D2025640A006DA4 -:100690006B5F74696D655F746F5F6D6178203D207D -:1006A00025640A006D6B5F6D61785F7370656564CA -:1006B000203D2025640A006D6B5F696E746572765B -:1006C000616C203D2025640A006D6B5F64656C6180 -:1006D00079203D2025640A006D6B5F776865656C45 -:1006E0005F74696D655F746F5F6D6178203D202573 -:1006F000640A006D6B5F776865656C5F6D61785F3C -:100700007370656564203D2025640A006D6B5F741D -:10071000696D655F746F5F6D6178203D2025640AA7 -:10072000006D6B5F6D61785F7370656564203D205F -:1007300025640A006D6B5F696E74657276616C206A -:100740003D2025640A006D6B5F64656C6179203D16 -:100750002025640A000A00257500363A207768656E -:10076000656C5F74696D655F746F5F6D61783A2069 -:10077000000A00257500353A20776865656C5F6D65 -:1007800061785F73706565643A20000A0025750022 -:10079000343A2074696D655F746F5F6D61783A20DB -:1007A000000A00257500333A206D61785F7370652B -:1007B00065643A20000A00257500323A20696E749B -:1007C000657276616C286D73293A20000A002575E0 -:1007D00000313A2064656C6179282A31306D7329C3 -:1007E0003A20000A092D2056616C756573202D0A88 -:1007F000004D3E004D25643E20003F00736574208F -:1008000064656661756C740A00433E200077686514 -:1008100072652064656C74613A20637572736F72DF -:100820003D25642C20776865656C3D25640A536519 -:100830006520687474703A2F2F656E2E77696B6926 -:1008400070656469612E6F72672F77696B692F4DD0 -:100850006F7573655F6B6579730A000A092D204D0A -:100860006F7573656B6579202D0A4553432F713A77 -:1008700009717569740A313A0964656C6179282ACD -:1008800031306D73290A323A09696E746572766186 -:100890006C286D73290A333A096D61785F7370654E -:1008A00065640A343A0974696D655F746F5F6D61E0 -:1008B000780A353A09776865656C5F6D61785F73B2 -:1008C000706565640A363A09776865656C5F7469B6 -:1008D0006D655F746F5F6D61780A0A703A097072B6 -:1008E000696E742076616C7565730A643A09736584 -:1008F000742064656661756C74730A75703A092BAF -:10090000310A646F776E3A092D310A706775703A53 -:10091000092B31300A7067646F776E3A092D3130D8 -:100920000A0A7370656564203D2064656C746120FB -:100930002A206D61785F7370656564202A202872B3 -:100940006570656174202F2074696D655F746F5FD9 -:100950006D6178290A003F004D3E2000433E200093 -:100960004C25640A000A092D20436F6E736F6C6575 -:10097000202D0A4553432F713A09717569740A6D28 -:100980003A096D6F7573656B65790A000A092D2048 -:100990004D61676963202D0A643A09646562756771 -:1009A0000A783A096465627567206D6174726978C6 -:1009B0000A6B3A096465627567206B6579626F61DD -:1009C00072640A6D3A096465627567206D6F7573AC -:1009D000650A763A0976657273696F6E0A733A0929 -:1009E0007374617475730A633A09636F6E736F6C25 -:1009F00065206D6F64650A302D343A096C61796544 -:100A000072302D34284631302D4634290A50617514 -:100A1000733A09626F6F746C6F616465720A653A4C -:100A200009656570726F6D0A6E3A094E4B524F0A36 -:100A30007A3A09736C656570204C4544207465737F -:100A4000740A000A002575002E6E6B726F3A200042 -:100A50000A002575002E737761705F6261636B73A6 -:100A60006C6173685F6261636B73706163653A2088 -:100A7000000A002575002E737761705F67726176DA -:100A8000655F6573633A20000A002575002E6E6F5E -:100A90005F6775693A20000A002575002E7377613B -:100AA000705F72616C745F726775693A20000A004A -:100AB0002575002E737761705F6C616C745F6C6775 -:100AC00075693A20000A002575002E636170736C09 -:100AD0006F636B5F746F5F636F6E74726F6C3A20DD -:100AE000000A002575002E737761705F636F6E7466 -:100AF000726F6C5F636170736C6F636B3A20000A96 -:100B00000025303258006B65796D61705F636F6EE0 -:100B10006669672E7261773A20000A002575002EFB -:100B20006D6F7573653A20000A002575002E6B65A0 -:100B300079626F6172643A20000A002575002E6D9B -:100B400061747269783A20000A002575002E656E7E -:100B500061626C653A20000A0025303258006465F5 -:100B60006275675F636F6E6669672E7261773A20A0 -:100B7000000A0025750064656661756C745F6C61C0 -:100B80007965723A20003F004E4B524F3A206F6613 -:100B9000660A004E4B524F3A206F6E0A0074696D20 -:100BA00065725F636F756E743A202530346C580A35 -:100BB000006B6579626F6172645F6E6B726F3A2071 -:100BC00025580A006B6579626F6172645F69646CB5 -:100BD000653A2025580A006B6579626F6172645F1F -:100BE00070726F746F636F6C3A2025580A00686FDB -:100BF00073745F6B6579626F6172645F6C65647357 -:100C000028293A2025580A000A092D2053746174B6 -:100C10007573202D0A004743433A20342E392E3372 -:100C2000204156522D4C4942433A20312E382E3124 -:100C3000204156525F415243483A20617672350A4C -:100C4000004F5054494F4E533A204C554641204294 -:100C50004F4F544D41474943204D4F5553454B4508 -:100C6000592045585452414B455920434F4E534FFC -:100C70004C4520434F4D4D414E44204E4B524F204A -:100C80003531320A004255494C443A2030663263CD -:100C9000373733202831303A34373A3334204A61F9 -:100CA0006E2020352032303136290A005649443A28 -:100CB00020307846454544284572676F446F782058 -:100CC000455A29205049443A20307831333037286A -:100CD0004572676F446F7820455A29205645523A2D -:100CE000203078303030310A00444553433A207484 -:100CF0002E6D2E6B2E206B6579626F61726420669B -:100D000069726D7761726520666F72204572676FD8 -:100D1000646F780A000A092D2056657273696F6E38 -:100D2000202D0A000A6D6F7573653A206F66660A9A -:100D3000000A6D6F7573653A206F6E0A000A6B6565 -:100D400079626F6172643A206F66660A000A6B65A9 -:100D500079626F6172643A206F6E0A000A6D617485 -:100D60007269783A206F66660A000A6D617472696A -:100D7000783A206F6E0A000A64656275673A206FE0 -:100D80006E0A000A64656275673A206F66660A003B -:100D90000A0A626F6F746C6F616465722E2E2E206A -:100DA00000433E20006565636F6E6669673A0A001E -:100DB000536C656570204C454420746573740A005B -:100DC0000000000000000000000000010204060A0C -:100DD0000F17202C3A4A5D71879DB3C7DAE9F5FCFD -:100DE000FFFCF5E9DAC7B39D87715D4A3A2C2017FD -:100DF0000F0A0604020100000000000000000000CD -:100E000011241FBECFEFDAE0DEBFCDBF04B603FE74 -:100E100024C08091F9019091FA01A091FB01B09159 -:100E2000FC018730904BA740B04BB9F41092F90108 -:100E30001092FA011092FB011092FC0114BE84B7CB -:100E4000877F84BF88E10FB6F8948093600010928A -:100E500060000FBEE0E0FFE3099511E0A0E0B1E023 -:100E6000E0EAFBE502C005900D92AA33B107D9F77D -:100E700011E0AAE3B1E001C01D92A93FB107E1F77B -:100E80000E94900F0C94CE2D0C940000FF93EF93D2 -:100E9000E0913A01F0913B01309709F00995EF910B -:100EA000FF910895FC018591803011F0EFDFFBCFB9 -:100EB0000895FF27E0E230E247FF0CC0419597FF1D -:100EC00009C0EDE26095709580959095611D711D4A -:100ED000811D911D27FF02C0219530E350E2AA2712 -:100EE000660F771F881F991FAA1FA41710F0A41B55 -:100EF00063955A95A9F7AA3008F0A95FA05DAF9352 -:100F0000F395611571058105910541F7ED3211F4F5 -:100F1000EF93F395F21718F43F93F395FBCF8F916E -:100F2000B5DFFA95E1F70895E991F991859180305F -:100F300021F0853219F0AADFF9CF089520E0E89476 -:100F400055915532C1F3503311F4689455915A3389 -:100F500048F4505390F3220F022E220F220F200D3F -:100F6000250FF4CF0EF4219589919991533619F3F9 -:100F7000533729F1533559F1BC0188279927E89453 -:100F80005C3621F48991999168945591543639F4DD -:100F900046EF7EF077FF0DC08FEF9FEF0AC0553709 -:100FA0004AE039F0583540E121F0523642E009F08C -:100FB0000895FF93EF937DDFEF91FF91B7CFFF93FC -:100FC000EF93FC0181918030B9F360DFFBCFFF9399 -:100FD000EF9368DFF1CFDF93CF93CDB7DEB72596E0 -:100FE000A3DFCF91DF91089561110BC0FC018281D5 -:100FF000882321F085EE0E946D1603C085EE0E94C5 -:10100000351780E090E0089508956091BC017091DB -:10101000BD018091BE019091BF010E94FD205698B4 -:101020005E9825982D9826982E9827982F9881308D -:1010300019F0823021F00895259A2D9A0895269A64 -:101040002E9A089585E098E0892B11F00E940508FA -:1010500080E090E0089556985E9825982D982698FF -:101060002E9827982F988FEF90E090938900809387 -:10107000880090938B0080938A0090938D008093DA -:101080008C00259A2D9A2FEF80E792E02150804026 -:101090009040E1F700C00000269A2E9A2FEF80E7DB -:1010A00092E0215080409040E1F700C00000279A74 -:1010B0002F9A2FEF80E792E0215080409040E1F797 -:1010C00000C0000025982D982FEF80E792E0215076 -:1010D00080409040E1F700C0000026982E982FEF46 -:1010E00080E792E0215080409040E1F700C000008E -:1010F00027982F9856985E9825982D9826982E9880 -:1011000027982F98089589EA8093800089E080933A -:10111000810024982C983F988AB18F748AB96E9870 -:10112000479A8BB1806B8BB9769A0E942B0884E02A -:1011300098E0892B11F00E94040880E090E0089567 -:1011400080E28093000180913C0181110EC00E94D9 -:10115000EF0881E080933C012FEF83ED90E3215075 -:1011600080409040E1F700C0000080E40E94F50854 -:101170008093000181112EC00E941F0980930001FD -:10118000811128C00E941F0980930001811122C093 -:101190008FE30E941F098093000181111BC00E94F0 -:1011A000170980E40E94F50880930001811112C0A4 -:1011B0008CE00E941F098093000181110BC00E94E6 -:1011C0001F0980930001811105C08FE30E941F0950 -:1011D000809300010E9417098091000108951092E8 -:1011E000B9008AE08093B800089594EA9093BC0017 -:1011F0009091BC0097FFFCCF9091B900987F9830F8 -:1012000021F0903111F081E008958093BB0084E8D3 -:101210008093BC008091BC0087FFFCCF8091B90017 -:10122000887F883111F0803471F780E0089584E977 -:101230008093BC008091BC0084FDFCCF0895809316 -:10124000BB0084E88093BC008091BC0087FFFCCF8A -:101250009091B900987F81E0983209F480E0089578 -:1012600084E88093BC008091BC0087FFFCCF809114 -:10127000BB00089580910001811115C080E40E9497 -:10128000F5088093000181110CC082E10E941F09C2 -:1012900080930001811105C08FEF0E941F09809388 -:1012A00000010E94170984B1807F84B985B1807FD5 -:1012B00085B98AB1837F8AB98BB1837F8BB93E9818 -:1012C000469808950E94A008809300010E943A0960 -:1012D00080B38C7080BB81B3836F81BBAEE3B1E020 -:1012E000ECE4F1E08EE08E0F11921D928E13FCCF94 -:1012F00083E898E0892B11F00C94830808959F925D -:10130000AF92BF92CF92DF92EF92FF920F931F9313 -:10131000CF93DF93809100018823E1F080913D011C -:101320008F5F80933D01811115C082E493E00E949C -:1013300052070E94A00880930001882329F088E2C8 -:1013400093E00E94520706C084E193E00E94520796 -:101350000E942B080EE311E0C0E0D0E0BB24B39460 -:1013600082E0A82ECC24C394D12C25E0E22E23E0E9 -:10137000F22EC730D10500F580910001811164C0C3 -:1013800080E40E94F50880930001811112C082E17F -:101390000E941F098093000181110BC0C6010C2E11 -:1013A00001C0880F0A94EAF780950E941F09809374 -:1013B00000010E94170948C0CA30A1F028F4C830C3 -:1013C00059F0C93061F005C0CC3089F070F0CD30F3 -:1013D00089F0209A289810C0219A29980DC0229A45 -:1013E0002A980AC0239A2B9807C0529A01C0539A90 -:1013F0005B9802C03E9A469890EA9A95F1F79FB1A1 -:10140000799902C082E001C080E091709B25982B01 -:101410007C9902C084E001C080E0892B7D9902C0E4 -:1014200038E001C030E0832B7E9902C020E101C08A -:1014300020E0822B9FB19095991F9927991F929533 -:10144000990F907E892B10C080910001811174C08A -:1014500080E40E94F50880930001882309F459C0B4 -:10146000912C0E941709892DF8019081981739F164 -:10147000808380910101882301F18091D70180FF51 -:1014800004C08AE093E00E9452078091D70180FF58 -:101490000CC0809101011F928F93FF92EF920E94E6 -:1014A000EB070F900F900F900F908091D70180FF66 -:1014B00004C083E093E00E945207A09201010E94C1 -:1014C0003A0921960F5F1F4FCE30D10509F051CF59 -:1014D000809101018823B1F081508093010188231C -:1014E00039F08FE99FE00197F1F700C000000AC0D2 -:1014F000ACE4B1E0EEE3F1E0CF01825F91919D9326 -:101500008E13FCCF82E298E0892BC1F00E94220862 -:1015100015C083E10E941F09809300018111A0CFB3 -:1015200081E40E94F50880930001811199CF0E9407 -:101530003009982E909495CF80E096CF81E0DF918E -:10154000CF911F910F91FF90EF90DF90CF90BF90C0 -:10155000AF909F900895E82FF0E0E45BFE4F80810C -:101560000895CF92DF92EF92FF920F931F93CF9344 -:10157000DF938CEE92E00E9452078CE4E82E81E02B -:10158000F82EC0E0D0E097EEC92E92E0D92E0EEDF5 -:1015900012E0DF93CF93DF92CF920E94EB0784EEAD -:1015A00092E00E945207F70181917F0190E00E9432 -:1015B00063219F938F931F930F930E94EB078CEDF2 -:1015C00092E00E94520721968DB79EB708960FB6FB -:1015D000F8949EBF0FBE8DBFCE30D105D1F6DF91FE -:1015E000CF911F910F91FF90EF90DF90CF900895D2 -:1015F0008B3B910578F4883A910540F5853A910541 -:10160000D0F48430910508F0B1C08130910509F41F -:10161000ADC06BC0803E910508F467C0883E91055F -:1016200008F4A4C09C01205F31092031310508F085 -:101630005CC090650895853A910509F459C0863AD1 -:10164000910509F058C082E890E40895883A910520 -:1016500009F454C0893A910509F453C08A3A9105B6 -:1016600009F452C08B3A910509F451C08C3A9105A6 -:1016700009F450C08D3A910509F44FC0803B9105A3 -:1016800009F44EC08E3A910509F44DC08F3A910588 -:1016900009F44CC0813B910509F44BC0823B910594 -:1016A00009F44AC0833B910509F449C0843B910584 -:1016B00009F448C0853B910509F447C0863B910574 -:1016C00009F446C0873B910509F445C0883B910564 -:1016D00009F444C0893B910509F443C08A3B910554 -:1016E00009F442C080E094E4089580E090E0089519 -:1016F00081E890E4089583E890E4089582EE94E40C -:10170000089589EE94E408958AEE94E4089585EBB3 -:1017100094E4089586EB94E4089587EB94E40895A7 -:101720008CEC94E408958DEC94E4089583E895E4BA -:1017300008958AE895E4089582E995E4089584E996 -:1017400095E4089581E296E4089583E296E408958D -:1017500084E296E4089585E296E4089586E296E4AC -:10176000089587E296E408958AE296E4089508953C -:1017700096E0799FF001112494E5899FE00DF11D19 -:101780001124E60FF11DEE0FFF1FEC51FF4F859165 -:1017900094910895880F991FFC01E05AF0408591BB -:1017A00094910895880F991FFC01E052FF4F859195 -:1017B0009491089526E0729FF001112444E5849FDE -:1017C000E00DF11D1124E60FF11DEE0FFF1FEC518E -:1017D000FF4F859194919C013A9521154FE1340773 -:1017E00008F41EC13F512115304120F49F700E9422 -:1017F000D20B08959C0130532115304118F49927DC -:10180000906C0895811520E5920769F40E94BD1A35 -:101810004FEF84E39CE0415080409040E1F700C0EE -:1018200000000C941F22813020E5920751F48CE5D2 -:1018300093E00E9452078091D70181608093D70185 -:1018400008959C0130552115304108F051C0292FD1 -:1018500033272F70332721303105D9F4AC01437081 -:10186000552702C0220F331F4A95E2F73C68AC01AE -:1018700064E0440F551F6A95E1F744275370242B09 -:10188000352B73E0880F991F7A95E1F780769927B9 -:101890001DC02230310529F4982F8827816F906A66 -:1018A000089523303105A9F4AC014370552721E098 -:1018B00030E002C0220F331F4A95E2F73C6843E054 -:1018C000880F991F4A95E1F7807E9770822B932BA2 -:1018D000089524303105E1F4AC014370552721E02F -:1018E00030E002C0220F331F4A95E2F73A68E7CF93 -:1018F0009C0130572115304118F49F709062089573 -:101900009C0130582115304118F49F70906A089559 -:10191000803E9105E0F4803C910558F581339105B6 -:1019200009F46FC048F48932910509F463C08A3222 -:10193000910509F46DC072C089339105E9F08238D0 -:101940009105D1F08533910509F44DC067C0833E00 -:10195000910581F138F4803E9105B9F0823E910500 -:10196000D9F05CC0863E910561F1873E9105A1F1F9 -:1019700055C00E94CA0B08952091EA0120FD02C0C3 -:1019800021FF4CC080EE90E049C08091EA0180FFC9 -:10199000F9CF89E390E042C08091EA0182FF0EC056 -:1019A0008091EA0184FF03C080E090E037C083EEBD -:1019B00090E034C08091EA0182FFF2CF82EE90E0A5 -:1019C0002DC08091EA0183FF0BC08091EA0184FD64 -:1019D000EBCF87EE90E022C08091EA0183FFF5CF44 -:1019E00086EE90E01BC08091EA0185FF07C089E286 -:1019F00090E014C08091EA0185FFF9CF85E390E083 -:101A00000DC08091EA0186FF07C08AE290E006C01F -:101A10008091EA0186FFF9CF81E390E00E94F80A05 -:101A20000895089580916D0108959FB7F8941092DC -:101A30005C019FBF9091F001943009F057C09091E4 -:101A4000E9009F703091EC00232F217030FD20E8D9 -:101A5000922B24E02093E9002091EB0020FF43C06B -:101A60002091EE0027FF3FC020915A01222321F050 -:101A70002091E80025FF37C010925A0126E03091EE -:101A8000E80035FD15C03091F001343061F530913A -:101A9000EB0035FD28C0215021F481E080935A01EC -:101AA00022C0EFE9FFE03197F1F700C00000E7CF77 -:101AB0008093F1008091E80085FD0AC08091E800E4 -:101AC00080FFFCCF8091E8008E778093E80006C00D -:101AD0008FB7F89421E020935C018FBF9F709093A3 -:101AE000E90080E008959F709093E9008FEF0895DA -:101AF000CF93DF9300D01F92CDB7DEB79C018091CA -:101B0000F001843019F593E099833B832A83909305 -:101B1000E9008FEF9091E800815095FD06C095EDAA -:101B20009A95F1F700008111F5CF8091E80085FFCB -:101B30000DC040E050E063E070E0CE0101960E94ED -:101B400048108091E8008E778093E8000F900F9006 -:101B50000F90DF91CF910895CF93DF9300D01F9224 -:101B6000CDB7DEB72091F001243021F522E02983A2 -:101B70009B838A8383E08093E9008FEF9091E80054 -:101B8000815095FD06C095ED9A95F1F70000811101 -:101B9000F5CF8091E80085FF0DC040E050E063E0A4 -:101BA00070E0CE0101960E9448108091E8008E7787 -:101BB0008093E8000F900F900F90DF91CF910895E0 -:101BC0002091F0012430F1F422E02093E9002FEF7E -:101BD0003091E800215035FD06C035ED3A95F1F71A -:101BE00000002111F5CF2091E80025FF0BC040E057 -:101BF00050E065E070E00E9448108091E8008E7728 -:101C00008093E8000895CF93DF932091F001243072 -:101C100009F048C0EC0180910C018823E1F080912B -:101C20000D018823C1F085E08093E9008FEF90914A -:101C3000E800815095FD06C095E19A95F1F7000006 -:101C40008111F5CF8091E80085FF2CC040E050E085 -:101C500060E170E017C081E08093E9008FEF909120 -:101C6000E800815095FD06C095ED9A95F1F70000CA -:101C70008111F5CF8091E80085FF14C040E050E06D -:101C800068E070E0CE010E9448108091E8008E77F5 -:101C90008093E80080E1FE01ADE5B1E001900D9296 -:101CA0008A95E1F7DF91CF91089583E993E00E944F -:101CB00052078091EF01811109C00E94DD110E943D -:101CC0003A128091E20084608093E20008958FE8E8 -:101CD00093E00E9452071092EF0108958BE893E081 -:101CE0000C94520787E893E00E9452070C94EF2B64 -:101CF00083E893E00E9452070E94B9210E94F52BCD -:101D00000E94DF140C94110D20915B012F5F822F34 -:101D100062E30E94632D992319F020935B010895DB -:101D200010925B0180915C01882371F18091F00138 -:101D3000843041F58091E9008F702091EC00922F62 -:101D4000917020FD90E8892B94E09093E9009091A8 -:101D5000EB0090FF14C09091EE0097FF10C090919F -:101D6000E80095FF03C01092F100F9CF9091E800D0 -:101D700090FF05C09091E8009E779093E8008F70E7 -:101D80008093E90010925C01089542E061EC81E0EB -:101D90000E94571142E061EC82E00E94571142E03C -:101DA00061EC83E00E94571142E261EC84E00E9402 -:101DB000571142E161EC85E00C9457118091F201DA -:101DC000833009F455C030F4813071F0823009F469 -:101DD0008EC008958A3009F47AC08B3009F460C04F -:101DE000893009F09CC020C08091F101813A09F04E -:101DF00096C08091E800877F8093E8008091F5018C -:101E00009091F601892B21F460E18DE591E003C00A -:101E100060E080E090E070E00E9493108091E80024 -:101E20008B778093E80008958091F101813209F069 -:101E300076C08091F5019091F601009719F0049712 -:101E400009F06DC08091E800877F8093E800809161 -:101E5000E80082FD05C08091F0018111F8CF5FC0DC -:101E60008091F10080936D018091E8008B7753C0E1 -:101E70008091F101813A09F052C08091F501909171 -:101E8000F601892B09F04BC08091E800877F809391 -:101E9000E8008091E80080FFFCCF80910C0136C003 -:101EA0008091F1018132D9F58091F5019091F6018F -:101EB000892BA9F58091E800877F8093E8000E9434 -:101EC0008C118091F30180930C010C94BD1A8091C8 -:101ED000F101813221F58091E800877F8093E8004D -:101EE0000E948C118091F40180936E01089580917D -:101EF000F101813AA1F48091E800877F8093E800A6 -:101F00008091E80080FFFCCF80916E018093F1000A -:101F10008091E8008E778093E8000C948C110895EE -:101F200084B7877F84BF88E10FB6F8948093600000 -:101F3000109260000FBE90E080E80FB6F894809396 -:101F40006100909361000FBE0E946C150E94DD112C -:101F50000E943A128091E20084608093E20085E161 -:101F60009DE00E94F82078940E94BF140E946E1594 -:101F700082E091E00E94DA140E94DD2B82E793E078 -:101F80000E9452078091F001853089F48EE693E03B -:101F90000E9452070E947D218091EE01882391F3D7 -:101FA0000E94A521882371F30E943210EBCF0E947A -:101FB0009C15E8CF292F332723303105C9F064F46D -:101FC0002130310581F02230310509F043C08DE820 -:101FD00090E02BEC33E042C021323105F1F02232A7 -:101FE000310541F137C082E190E028E534E036C0A8 -:101FF00099278130910541F08230910541F0892B7C -:1020000049F5E7ECF3E005C0EFEAF3E002C0E7E9E9 -:10201000F3E0849190E09F0121C06530D8F4E62F71 -:10202000F0E0EE0FFF1FEB5DFE4F2081318189E074 -:1020300090E014C0653070F470E0FB01EE0FFF1FFC -:10204000E55EFE4F20813181FB01EA5EFE4F80811B -:1020500090E004C080E090E020E030E0FA013183BD -:102060002083089580E189BD82E189BD09B400FE25 -:10207000FDCF8091D8008F7D8093D8008091E000C3 -:1020800082608093E0008091E00081FDFCCF0895A4 -:10209000CF92DF92EF92FF920F931F93CF93DF9334 -:1020A000EC018B016A010E94AB11811133C0C11494 -:1020B000D10439F0F60180819181081B190BC80FFA -:1020C000D91FE12CF12C0115110519F18091E800BF -:1020D00085FD16C08091E8008E778093E800C114DA -:1020E000D10449F0F60180819181E80EF91EF18258 -:1020F000E08285E00FC00E94AB11882321F30AC063 -:1021000089918093F10001501109FFEFEF1AFF0A46 -:10211000DACF80E0DF91CF911F910F91FF90EF9088 -:10212000DF90CF9008952091F7013091F8012617A4 -:10213000370748F06115710539F42091E8002E77D2 -:102140002093E80001C0B90140E061157105A9F1D3 -:102150002091F001222309F443C0253009F442C044 -:102160002091E80023FD40C02091E80022FD32C00C -:102170002091E80020FFE9CF4091F3002091F20088 -:1021800030E0342BFC01CF016115710559F0283086 -:10219000310540F481918093F100615071092F5F06 -:1021A0003F4FF1CF41E02830310509F040E0209168 -:1021B000E8002E772093E800C8CF4111C9CF0AC0AC -:1021C0008091F001882361F0853061F08091E80012 -:1021D00083FD0AC08091E80082FFF2CF80E008957D -:1021E00082E0089583E0089581E008952091F70149 -:1021F0003091F8012617370748F06115710539F459 -:102200002091E8002E772093E80001C0B901FC017D -:1022100020E06115710591F18091F001882309F4A6 -:1022200040C0853009F43FC08091E80083FD3DC087 -:102230008091E80082FD2FC08091E80080FFE9CF07 -:102240002091F3008091F20090E0922B61157105CE -:1022500059F08830910540F424912093F100319693 -:10226000615071090196F2CF21E0089709F020E052 -:102270008091E8008E778093E800CBCF2111CCCFFE -:102280000AC08091F001882361F0853061F080916F -:10229000E80083FD0AC08091E80082FFF2CF80E071 -:1022A000089582E0089583E0089581E00895982FCD -:1022B000973058F59093E900981739F07091EC0039 -:1022C0002091ED005091F00003C0242F762F50E0B4 -:1022D00021FF19C03091EB003E7F3093EB0030912D -:1022E000ED003D7F3093ED003091EB003160309395 -:1022F000EB007093EC002093ED005093F0002091E0 -:10230000EE0027FF07C09F5FD3CF8F708093E90057 -:1023100081E0089580E008958091F10187FF11C068 -:102320008091E80082FD05C08091F0018111F8CF15 -:1023300011C08091E8008B770BC08091F001882359 -:1023400049F08091E80080FFF8CF8091E8008E7717 -:102350008093E80008952091E4003091E50095E62F -:102360004091EC00842F817040FF22C08091E800F2 -:1023700080FD1CC08091F001882391F0853091F0A0 -:102380008091EB0085FD10C04091E4005091E50084 -:102390004217530729F39A01915011F784E00895E9 -:1023A00082E0089583E0089581E0089580E0089533 -:1023B0004091E80042FFDECF08950E944B120E9438 -:1023C0005312E0EEF0E0808181608083E8EDF0E080 -:1023D00080818F77808319BCA7EDB0E08C918E7FD0 -:1023E0008C9380818F7E80831092EF0108950F93EC -:1023F0001F93CF93DF930E944B120E945312C8ED9C -:10240000D0E088818F7788838881806888838881FD -:102410008F7D888319BC1092F0011092EC0110920C -:10242000EE011092ED0100EE10E0F80180818B7F4B -:10243000808388818160888342E060E080E00E9440 -:102440005711E1EEF0E080818E7F8083E2EEF0E0D4 -:10245000808181608083808188608083F8018081B1 -:102460008E7F8083888180618883DF91CF911F91E7 -:102470000F910895E8EDF0E080818F7E8083E7ED95 -:10248000F0E080818160808384E082BF81E080937E -:10249000EF010C94F711E8EDF0E080818E7F8083EE -:1024A0001092E20008951092DA001092E10008956F -:1024B0001F920F920FB60F9211242F933F934F93B9 -:1024C0005F936F937F938F939F93AF93BF93EF939C -:1024D000FF938091E10082FF0BC08091E20082FFB8 -:1024E00007C08091E1008B7F8093E1000E94840E01 -:1024F0008091DA0080FF1FC08091D80080FF1BC050 -:102500008091DA008E7F8093DA008091D90080FF7D -:102510000DC080E189BD82E189BD09B400FEFDCF17 -:1025200081E08093F0010E94550E05C019BC109205 -:10253000F0010E94670E8091E10080FF19C0809138 -:10254000E20080FF15C08091E2008E7F8093E20060 -:102550008091E20080618093E2008091D8008062E7 -:102560008093D80019BC85E08093F0010E94720E20 -:102570008091E10084FF30C08091E20084FF2CC094 -:1025800080E189BD82E189BD09B400FEFDCF809163 -:10259000D8008F7D8093D8008091E1008F7E80935A -:1025A000E1008091E2008F7E8093E2008091E20062 -:1025B00081608093E2008091EC01882311F084E037 -:1025C00007C08091E30087FD02C081E001C083E085 -:1025D0008093F0010E94780E8091E10083FF29C072 -:1025E0008091E20083FF25C08091E100877F809386 -:1025F000E10082E08093F0011092EC018091E10013 -:102600008E7F8093E1008091E2008E7F8093E200D4 -:102610008091E20080618093E20042E060E080E02F -:102620000E9457118091F00088608093F0000E9412 -:102630006E0EFF91EF91BF91AF919F918F917F911E -:102640006F915F914F913F912F910F900FBE0F901F -:102650001F9018951F920F920FB60F9211242F936F -:102660003F934F935F936F937F938F939F93AF931A -:10267000BF93CF93DF93EF93FF93C091E900CF70A7 -:102680008091EC00D82FD17080FDD0E81092E90045 -:102690008091F000877F8093F00078940E946E1301 -:1026A0001092E9008091F00088608093F000CD2BBB -:1026B000CF70C093E900FF91EF91DF91CF91BF916F -:1026C000AF919F918F917F916F915F914F913F91CA -:1026D0002F910F900FBE0F901F9018951F93CF93BF -:1026E000DF93CDB7DEB7AA970FB6F894DEBF0FBE63 -:1026F000CDBFE1EFF1E088E08E0F9091F100919372 -:102700008E13FBCF0E94DE0E8091E80083FF1FC175 -:102710008091F1019091F201492F50E04A3051052A -:1027200008F015C1FA01EA5AFF4F0C94832D803846 -:1027300081F0823809F00BC18091F5018F70809390 -:10274000E9008091EB0085FB882780F91092E90071 -:1027500006C08091ED019091EE01911182609091FF -:10276000E800977F9093E8008093F1001092F100C9 -:10277000C8C0282F2D7F09F0EAC0882319F08230C5 -:1027800061F0E5C08091F301813009F0E0C0933041 -:1027900009F080E08093EE012BC08091F30181115C -:1027A00027C08091F5018F7009F4D1C08093E900B2 -:1027B0002091EB0020FF1CC0933021F48091EB00AE -:1027C000806214C09091EB0090619093EB0021E047 -:1027D00030E0A90102C0440F551F8A95E2F74093EB -:1027E000EA001092EA008091EB0088608093EB0091 -:1027F0001092E9008091E800877F86C08111A7C010 -:102800001091F3011F778091E3008078812B8093F2 -:10281000E3008091E800877F8093E8000E948C119C -:102820008091E80080FFFCCF8091E3008068809376 -:10283000E300111102C082E001C083E08093F00147 -:1028400086C08058823008F082C08091F301909158 -:10285000F4018C3D53E0950779F583E08A838AE2A1 -:1028600089834FB7F894DE01139620E03EE051E2F1 -:10287000E32FF0E050935700E49120FF03C0E2956E -:10288000EF703F5FEF708E2F90E0EA3010F0C79648 -:1028900001C0C0968D939D932F5F243149F74FBFA0 -:1028A0008091E800877F8093E8006AE270E0CE01C3 -:1028B00001960E94931014C0AE014F5F5F4F60916C -:1028C000F5010E94DA0FBC01892B09F440C09091F8 -:1028D000E800977F9093E80089819A810E94F61022 -:1028E0008091E8008B778093E80031C0803879F5DB -:1028F0008091E800877F8093E8008091EC018093CD -:10290000F1008091E8008E778093E8000E948C119E -:102910001EC081111CC09091F3019230C0F48091CF -:10292000E800877F8093E8009093EC010E948C116F -:102930008091EC01811106C08091E30087FD02C007 -:1029400081E001C084E08093F0010E94C50E809177 -:10295000E80083FF0AC08091E800877F8093E80049 -:102960008091EB0080628093EB00AA960FB6F894FA -:10297000DEBF0FBECDBFDF91CF911F910895CF93E2 -:102980008091F0018823A1F0C091E900CF7090916F -:10299000EC00892F817090FD80E8C82B1092E9002F -:1029A0008091E80083FD0E946E13CF70C093E90010 -:1029B000CF91089590937401809373010895E091ED -:1029C0007301F0917401309721F00190F081E02DB6 -:1029D000099480E00895EF92FF920F931F93CF9395 -:1029E000DF93E0917301F09174013097B1F18C01A4 -:1029F0000280F381E02D09958091D70182FF2DC0DF -:102A000080FF04C08DE895E00E945207E80110E1C4 -:102A100087E8E82E85E0F82E8091D70180FF0BC073 -:102A200088811F928F93FF92EF920E94EB070F9085 -:102A30000F900F900F90115021961111EDCF8091B2 -:102A4000D70180FF0AC085E895E0DF91CF911F9103 -:102A50000F91FF90EF900C945207DF91CF911F914F -:102A60000F91FF90EF900895E0917301F091740140 -:102A7000309721F00480F581E02D0994089520918C -:102A80007101309172018217930771F09093720176 -:102A900080937101E0917301F0917401309721F0FE -:102AA0000680F781E02D0994089520916F013091FF -:102AB00070018217930771F09093700180936F01FA -:102AC000E0917301F0917401309721F00084F18559 -:102AD000E02D0994089508950C946B150E94BB2174 -:102AE0000E9462090C948122CF93C82F8091D70154 -:102AF00082FF1EC080FF04C086EA95E00E94520754 -:102B00008091D70180FF0CC01F92CF9381EA95E09E -:102B10009F938F930E94EB070F900F900F900F9051 -:102B20008091D70180FF04C08FE995E00E94520791 -:102B30008C2FCF910C94110DCF92DF92EF92FF92D8 -:102B40000F931F93CF93DF93CDB7DEB72B970FB6BD -:102B5000F894DEBF0FBECDBF0E947F0986E7C82E66 -:102B600081E0D82E00E010E0E02E802F0E94AB0A1A -:102B7000F60141916F01F42EF826B1F40F5F1F4F5B -:102B80000E30110589F78FEF89838A831B820E949B -:102B9000C4218160782F9D838C8349815A816B8108 -:102BA0008D810E943F1640C09091D70191FF04C0D3 -:102BB0008B870E94B10A8B8520E030E04F2D50E0DA -:102BC000922FBA01022E02C0759567950A94E2F71A -:102BD00060FF24C02E83EF8221E030E0690102C053 -:102BE000CC0CDD1C9A95E2F790E08C219D21892B7D -:102BF00009F420E028870E94C4218160782F9A87F9 -:102C000089874E815F8168858A850E943F16F80119 -:102C1000EA58FE4F8081C826C08206C02F5F3F4F12 -:102C20002630310569F6AACF0E94F2251091750170 -:102C30000E94DF141817A1F00E94DF148093750121 -:102C40002B960FB6F894DEBF0FBECDBFDF91CF91AC -:102C50001F910F91FF90EF90DF90CF900C9474151F -:102C60002B960FB6F894DEBF0FBECDBFDF91CF918C -:102C70001F910F91FF90EF90DF90CF900895CF9329 -:102C8000DF93CDB7DEB72B970FB6F894DEBF0FBE3C -:102C9000CDBF4F83588769877A878B87DE0111966E -:102CA00086E0FD0111928A95E9F785E0FE013796ED -:102CB00001900D928A95E1F749815A816B817C815F -:102CC0008D819E810E94571D2B960FB6F894DEBF12 -:102CD0000FBECDBFDF91CF910895CF93882309F424 -:102CE000C2C0C82F823859F40E94DF1481FDBBC0D6 -:102CF00089E30E94F31F0E94D22089E30CC083382D -:102D000079F40E94DF1480FDAEC083E50E94F31FBA -:102D10000E94D22083E50E944620CF910C94D220BD -:102D2000843859F40E94DF1482FD9DC087E40E941C -:102D3000F31F0E94D22087E4EECF8CEF8C0F813AF4 -:102D400048F48C2F0E94852A81118DC08C2F0E94FF -:102D5000F31FE3CF80E28C0F883048F4C77081E026 -:102D600001C0880FCA95EAF70E949B20D6CF8BE559 -:102D70008C0F833078F4C53A29F0C63A31F083E8F5 -:102D800090E005C081E890E002C082E890E0CF9139 -:102D90000C943F1588E58C0F833108F064C0C83A65 -:102DA00039F1C93A41F1CA3A49F1CB3A51F1CC3A39 -:102DB00059F1CD3A61F1C03B69F1CE3A71F1CF3AA8 -:102DC00079F1C13B81F1C23B89F1C33B91F1C43B35 -:102DD00099F1C53BA1F1C63BA9F1C73BB1F1C83B95 -:102DE000B9F1C93BC1F1CA3BC9F180E090E038C0FC -:102DF00082EE90E035C089EE90E032C08AEE90E03D -:102E00002FC085EB90E02CC086EB90E029C087EBCB -:102E100090E026C08CEC90E023C08DEC90E020C0C8 -:102E200083E891E01DC08AE891E01AC082E991E050 -:102E300017C084E991E014C081E292E011C083E2FE -:102E400092E00EC084E292E00BC085E292E008C0FE -:102E500086E292E005C087E292E002C08AE292E058 -:102E6000CF910C945515CF910895882309F44BC048 -:102E7000823859F40E94DF1481FF45C089E30E9423 -:102E8000F31F0E94D22089E30CC0833871F40E94A2 -:102E9000DF1480FF38C083E50E94F31F0E94D22018 -:102EA00083E50E9446200C94D220843859F40E9475 -:102EB000DF1482FF28C087E40E94F31F0E94D22003 -:102EC00087E4EFCF9CEF980F913A58F390E2980F78 -:102ED000983050F4877091E001C0990F8A95EAF715 -:102EE000892F0E94A120DFCF9BE5980F933020F41B -:102EF00080E090E00C943F15885A833120F480E004 -:102F000090E00C9455150895882321F00E949B2091 -:102F10000C94D2200895882321F00E94A1200C94C3 -:102F2000D2200895BF92CF92DF92EF92FF920F933B -:102F30001F93CF93DF9300D000D000D0CDB7DEB782 -:102F400025E0FC01DE01119601900D922A95E1F732 -:102F5000FC01408131810281258122952F7063819E -:102F60007481672B09F4E7C23F3F19F44F3F09F41E -:102F7000E2C27C0149833A8389819A812E830E942F -:102F8000B21F182FB92E0E94B11F0E94781EEB2D80 -:102F9000E295EF70F0E0E05AFF4F2E810C94832D04 -:102FA0008B2D807F9B2D9F70F92E882319F0F29432 -:102FB00080EFF822002349F0FF2009F469C28F2D29 -:102FC0000E94AB200E94D22063C2812F0E9435173D -:102FD000FF2009F4B0C28F2D0E94B12026960FB6B3 -:102FE000F894DEBF0FBECDBFDF91CF911F910F913F -:102FF000FF90EF90DF90CF90BF900C94D2203B2DAC -:10300000307F8B2D8F70303211F08295807F1123AD -:1030100019F0113021F12DC00023B9F0222309F459 -:10302000A1C1213009F09EC126960FB6F894DEBFEB -:103030000FBECDBFDF91CF911F910F91FF90EF9009 -:10304000DF90CF90BF900C94BB20222319F0213049 -:1030500009F471C28E830E94BE208E8197C1002325 -:1030600021F0263008F067C27DC1253008F063C228 -:103070008DC1002321F0222309F474C109C2222347 -:1030800009F484C11AC22B2D26952695237030E0B1 -:103090002115310521F021303105D1F04CC200233A -:1030A00021F0812F9B2D937002C080E090E0269646 -:1030B0000FB6F894DEBF0FBECDBFDF91CF911F9149 -:1030C0000F91FF90EF90DF90CF90BF900C943F1541 -:1030D000002321F0812F9B2D937002C080E090E0AF -:1030E00026960FB6F894DEBF0FBECDBFDF91CF910D -:1030F0001F910F91FF90EF90DF90CF90BF900C94B5 -:103100005515812F002319F00E94782402C00E94D7 -:10311000E02426960FB6F894DEBF0FBECDBFDF9138 -:10312000CF911F910F91FF90EF90DF90CF90BF90C4 -:103130000C9465258B2D837009F07BC00111FBC1B8 -:10314000812F829586958770880F880F912F9F70A9 -:10315000C92ED12CE12CF12C082E04C0CC0CDD1C86 -:10316000EE1CFF1C0A94D2F714FF12C04FE050E08F -:1031700060E070E004C0440F551F661F771F8A95FA -:10318000D2F7CB01BA01609570958095909503C0F8 -:1031900060E070E0CB012B2D269526952370422F01 -:1031A00050E042305105D9F04330510569F16C29A6 -:1031B0007D298E299F294130510551F126960FB660 -:1031C000F894DEBF0FBECDBFDF91CF911F910F915D -:1031D000FF90EF90DF90CF90BF900C949F1E6C29D2 -:1031E0007D298E299F2926960FB6F894DEBF0FBE43 -:1031F000CDBFDF91CF911F910F91FF90EF90DF90A6 -:10320000CF90BF900C94BB1E0E949F1EC701B601B9 -:1032100026960FB6F894DEBF0FBECDBFDF91CF91DB -:103220001F910F91FF90EF90DF90CF90BF900C9483 -:10323000831E002319F08B2D817001C08695882391 -:1032400009F479C1812F829586958770880F880F40 -:10325000912F9F70C92ED12CE12CF12C082E04C087 -:10326000CC0CDD1CEE1CFF1C0A94D2F714FF12C01C -:103270004FE050E060E070E004C0440F551F661F4F -:10328000771F8A95D2F7CB01BA016095709580952A -:10329000909503C060E070E0CB012B2D269526951C -:1032A0002370422F50E042305105D9F04330510590 -:1032B00069F16C297D298E299F294130510551F1F1 -:1032C00026960FB6F894DEBF0FBECDBFDF91CF912B -:1032D0001F910F91FF90EF90DF90CF90BF900C94D3 -:1032E000791F6C297D298E299F2926960FB6F8947F -:1032F000DEBF0FBECDBFDF91CF911F910F91FF9029 -:10330000EF90DF90CF90BF900C94951F0E94791F93 -:10331000C701B60126960FB6F894DEBF0FBECDBF2B -:10332000DF91CF911F910F91FF90EF90DF90CF90A1 -:10333000BF900C945D1F103FD1F118F4103E50F473 -:10334000A2C0123F09F464C008F44DC0133F09F451 -:1033500074C099C01F708B2D8F710023A1F00E9443 -:10336000F61E812F26960FB6F894DEBF0FBECDBF96 -:10337000DF91CF911F910F91FF90EF90DF90CF9051 -:10338000BF900C9484170E94171F812F26960FB6AA -:10339000F894DEBF0FBECDBFDF91CF911F910F918B -:1033A000FF90EF90DF90CF90BF900C948B1700238D -:1033B000B1F0253008F0BFC08B2D8F7126960FB667 -:1033C000F894DEBF0FBECDBFDF91CF911F910F915B -:1033D000FF90EF90DF90CF90BF900C943C1F263071 -:1033E00008F0A9C0E9CF0023A9F08B2D8F71269694 -:1033F0000FB6F894DEBF0FBECDBFDF91CF911F9106 -:103400000F91FF90EF90DF90CF90BF900C94F61E3D -:10341000002359F38B2D8F7126960FB6F894DEBFDB -:103420000FBECDBFDF91CF911F910F91FF90EF9015 -:10343000DF90CF90BF900C94171F002399F08B2D35 -:103440008F7126960FB6F894DEBF0FBECDBFDF9109 -:10345000CF911F910F91FF90EF90DF90CF90BF9091 -:103460000C94E11E26960FB6F894DEBF0FBECDBFBA -:10347000DF91CF911F910F91FF90EF90DF90CF9050 -:10348000BF900C94D71E0023A9F0222309F4ADCFDE -:10349000812F26960FB6F894DEBF0FBECDBFDF9109 -:1034A000CF911F910F91FF90EF90DF90CF90BF9041 -:1034B0000C946D16222309F4ADCF812F26960FB6FA -:1034C000F894DEBF0FBECDBFDF91CF911F910F915A -:1034D000FF90EF90DF90CF90BF900C9435174B2D5D -:1034E0004F70612FC7010E94F40726960FB6F8941B -:1034F000DEBF0FBECDBFDF91CF911F910F91FF9027 -:10350000EF90DF90CF90BF900C94FB1D4B2D4F7030 -:10351000612FC70126960FB6F894DEBF0FBECDBF50 -:10352000DF91CF911F910F91FF90EF90DF90CF909F -:10353000BF900C94B70B26960FB6F894DEBF0FBE63 -:10354000CDBFDF91CF911F910F91FF90EF90DF9052 -:10355000CF90BF9008950E94B8200E948D200E94B5 -:10356000D2200E9498260E94652580E090E00E946B -:103570003F1580E090E00C9455150E94A8200C9413 -:10358000AB1A0E94B21F292F22952F7030E02C30E9 -:1035900031054CF42A3031056CF4225031092230C7 -:1035A000310588F407C02C30310549F02F30310542 -:1035B00031F009C0803E48F0803F29F406C093FBFB -:1035C000882780F9089580E0089581E00895CF93D9 -:1035D000DF9300D000D01F92CDB7DEB70F900F90D1 -:1035E0000F900F900F90DF91CF910895CF93DF93BD -:1035F00000D000D000D0CDB7DEB726960FB6F89435 -:10360000DEBF0FBECDBFDF91CF9108951F93CF9343 -:10361000DF93C091840116E080918501C81799F06D -:10362000D0E01C9FF0011D9FF00D1124EA57FE4FC2 -:103630004081518162817381848195810E94F61A53 -:103640002196C770E9CFDF91CF911F9108954091E6 -:10365000B6015091B7016091B8017091B9018091A4 -:10366000BA019091BB010C94F61A8091BB0182952E -:103670008F7009F054C08091B801882309F44FC0BD -:1036800080918401A09185016091B6017091B7018C -:103690004091B9015091BA01B6E08A1709F43FC0D0 -:1036A00090E041155105C1F17F3F11F46F3FA1F149 -:1036B000B89FF001B99FF00D1124EA57FE4F218108 -:1036C00072132AC02081621327C02281211124C0D5 -:1036D000238134812417350710F421503109241B2C -:1036E000350B283C3105C0F42091BB012F702061BF -:1036F0002093BB0126E0289FF001299FF00D1124A3 -:10370000E557FE4F80818F708061808386EB91E06A -:103710000E9492170C94061B01968770BECF0895E5 -:10372000CF92DF92EF92FF920F931F93CF93DF938D -:10373000CDB7DEB762970FB6F894DEBF0FBECDBF30 -:103740008C0185E0F801DE011D9601900D928A95AD -:10375000E1F7D8014C9111965C91119712966C91FA -:1037600012971396CD90DC9014973091B60170911A -:10377000B7018091B9019091BA01009709F46BC12A -:103780007F3F19F43F3F09F466C1E090B801EE2095 -:1037900009F4C0C02091BB01C816D90628F0F60173 -:1037A000E81BF90BCF0104C0809590958C0D9D1DF1 -:1037B000FF24F394883C910578F0F12C207F09F0E8 -:1037C000C6C07C2DD98AC88A89890E94E71A86EBEF -:1037D00091E00E949217B1C0822F807F09F046C00D -:1037E000751314C0341312C0611110C02F70206102 -:1037F0002093BB010E94271B86EB91E00E94921749 -:103800008091BB01D80115968C932EC0CD2819F15B -:103810005F3F11F44F3FF9F0F62E61111CC080910B -:1038200084012091850136E0821709F45AC090E0A6 -:10383000389FF001399FF00D1124EA57FE4F718136 -:10384000571306C07081471303C07281711103C002 -:1038500001968770E9CFF62E662309F418C180918E -:10386000BB0181608093BB01F12C11C1751308C0AD -:10387000341306C0611104C08091BB01D801C3C0DC -:103880004D875E878D859E856A8B0E94C11A6A89E5 -:103890008823E1F16623D1F12091BB01822F82952B -:1038A0008F7090E0029774F08091B6019091B7010B -:1038B00098878F831986DB86CA862C87CE01079668 -:1038C0000E94921786E0F801A6EBB1E001900D92FC -:1038D0008A95E1F70E94351B0E94271BFF24F39471 -:1038E000D6C04D875E878D859E850E94B21F292F89 -:1038F00022952F7030E0223031050CF0BCC09F7053 -:1039000009F0B6C0805E883008F4C1C0C8010E94CA -:103910009217E4CFC816D90608F453C0F601E81B85 -:10392000F90BCF01883C910508F450C0F12C7C2D97 -:10393000D98AC88A89890E94E71AE6EBF1E086E015 -:10394000DF011D928A95E9F70E94271BA0C075131D -:1039500014C0341312C0611110C08091BB01F80172 -:103960008583C8010E94921786E0E6EBF1E0DF0153 -:103970001D928A95E9F7FE2C8AC04D875E878D855A -:103980009E856A8B0E94C11A6A89882309F4BECF7A -:10399000662309F4BBCF2091BB01822F82958F70E3 -:1039A00090E002970CF48ECF8091B6019091B70110 -:1039B0009A8389831B82DD82CC822E83CE0101967D -:1039C0007FCF809590958C0D9D1DACCFF62E6623F4 -:1039D00009F49CCF75132EC034132CC02091BB0169 -:1039E00020FD1FC0822F82958F70D9F0D8011596C7 -:1039F0002C9315978F3049F08F5F982F9295907F79 -:103A0000822F8F70892B15968C93C8010E94921774 -:103A100086E0F801A6EBB1E001900D928A95E1F7FE -:103A200093CF86E0F801A6EBB1E001900D928A9564 -:103A3000E1F72DC04D875E878D859E850E94C11A56 -:103A4000811140CF8091BB0181608093BB01C8018F -:103A50000E9492171CC0662309F458CF4D875E87D9 -:103A60008D859E850E94C11A882309F44FCF2ACFE5 -:103A7000811148CF0CC0243031050CF047CF9F7026 -:103A800009F440CFF8019581907F09F03BCF8F2D4D -:103A900062960FB6F894DEBF0FBECDBFDF91CF9117 -:103AA0001F910F91FF90EF90DF90CF9008951F939B -:103AB000CF93DF93CDB7DEB72C970FB6F894DEBF68 -:103AC0000FBECDBF4F83588769877A878B879C87C6 -:103AD000CE0107960E94901B882369F08F819885FC -:103AE0002A853B85232BF1F19F3F09F063C08F3F6F -:103AF00009F060C037C086E0FE013796DE011196FE -:103B000001900D928A95E1F76F817885EA85FB85B2 -:103B1000309741F17F3F11F46F3F21F120918501F2 -:103B200030E0C9010196877099274091840150E0E7 -:103B30008417950709F447C069837A83FD83EC8372 -:103B400096E0929FD001939FB00D1124AA57BE4FCB -:103B5000FE01319601900D929A95E1F780938501CF -:103B60000E94061B16E080918401909185018917BF -:103B7000C1F1189FC00111248A579E4F0E94901BCB -:103B8000882379F1E09184011E9FF0011124EA5706 -:103B9000FE4F4081518162817381848195810E94B1 -:103BA000F61A8091840190E001968770992780939E -:103BB0008401D9CF4F81588569857A858B859C850D -:103BC0000E94F61ACFCF0E94BD1A10928501109262 -:103BD0008401E6EBF1E086E0DF011D928A95E9F7CA -:103BE000C1CF2C960FB6F894DEBF0FBECDBFDF91CC -:103BF000CF911F910895EF92FF920F931F93CF9350 -:103C0000DF938C01892B09F46CC0F12CEE24E39432 -:103C1000E8012196F8018491843740F4843008F05B -:103C200051C0813081F0823019F15BC0853709F4D1 -:103C300044C0A8F19CE7980F903708F052C08F77E6 -:103C40000E94351741C00E5F1F4FFE01C49180E2F4 -:103C50008C0F883048F4C7708E2D01C0880FCA952C -:103C6000EAF70E94AB2014C08C2F0E946D162DC065 -:103C70000E5F1F4FFE01C49180E28C0F883058F414 -:103C8000C7708E2D01C0880FCA95EAF70E94B12037 -:103C90000E94D2201AC08C2F0E94351716C00E5FCA -:103CA0001F4FFE01C491CC2381F08FE99FE0019763 -:103CB000F1F700C00000C150F6CF0E5F1F4FFE01AC -:103CC000F49003C00E946D168E018F2D882309F495 -:103CD0009FCFEFE9FFE03197F1F700C0000081507E -:103CE000F5CFDF91CF911F910F91FF90EF90089545 -:103CF00008956093C0017093C1018093C2019093B5 -:103D0000C3010C94AB1A0F931F930091C001109143 -:103D1000C1012091C2013091C301DC01CB01802B94 -:103D2000912BA22BB32B8093C0019093C101A09340 -:103D3000C201B093C3011F910F910C94AB1A0F9362 -:103D40001F930091C0011091C1012091C2013091D7 -:103D5000C301DC01CB0180239123A223B3238093F1 -:103D6000C0019093C101A093C201B093C3011F9100 -:103D70000F910C94AB1A0F931F930091C0011091F7 -:103D8000C1012091C2013091C301DC01CB01802728 -:103D90009127A227B3278093C0019093C101A093DC -:103DA000C201B093C3011F910F910C94AB1A1092F2 -:103DB000BC011092BD011092BE011092BF010C9483 -:103DC000AB1A41E050E060E070E004C0440F551FC2 -:103DD000661F771F8A95D2F74093BC015093BD01AF -:103DE0006093BE017093BF010C94AB1A41E050E0A8 -:103DF00060E070E004C0440F551F661F771F8A956E -:103E0000D2F78091BC019091BD01A091BE01B0910B -:103E1000BF01482B592B6A2B7B2B4093BC0150933D -:103E2000BD016093BE017093BF010C94AB1A41E0D9 -:103E300050E060E070E004C0440F551F661F771F1C -:103E40008A95D2F740955095609570958091BC0108 -:103E50009091BD01A091BE01B091BF0148235923AB -:103E60006A237B234093BC015093BD016093BE0144 -:103E70007093BF010C94AB1A41E050E060E070E039 -:103E800004C0440F551F661F771F8A95D2F7809193 -:103E9000BC019091BD01A091BE01B091BF01482726 -:103EA00059276A277B274093BC015093BD0160933B -:103EB000BE017093BF010C94AB1A0F931F93009136 -:103EC000BC011091BD012091BE013091BF01DC0108 -:103ED000CB01802B912BA22BB32B8093BC01909311 -:103EE000BD01A093BE01B093BF011F910F910C942F -:103EF000AB1A0F931F930091BC011091BD0120914B -:103F0000BE013091BF01DC01CB0180239123A223AC -:103F1000B3238093BC019093BD01A093BE01B093E5 -:103F2000BF011F910F910C94AB1A0F931F93009137 -:103F3000BC011091BD012091BE013091BF01DC0197 -:103F4000CB0180279127A227B3278093BC019093B0 -:103F5000BD01A093BE01B093BF011F910F910C94BE -:103F6000AB1A0895CF92DF92EF92FF920F931F93B7 -:103F7000CF93DF938C01C090C001D090C101E0903D -:103F8000C201F090C3014091BC015091BD0160910C -:103F9000BE017091BF01C42AD52AE62AF72ACFE1D3 -:103FA000D0E0D701C6010C2E04C0B695A795979511 -:103FB00087950A94D2F780FF07C0B8018C2F0E9422 -:103FC000DA0B8130910531F4219758F7B80180E080 -:103FD0000E94DA0BDF91CF911F910F91FF90EF902C -:103FE000DF90CF90089590910C01992321F090914A -:103FF0000D01911109C020910E0130910F01F901BD -:1040000032969FEF40E030C0982F96959695969502 -:104010009F30A0F4E0910E01F0910F01E90FF11D26 -:10402000877021E030E0A90102C0440F551F8A9536 -:10403000E2F7CA019181892B818308959091D7017C -:1040400090FF23C01F928F9387ED95E09F938F93EE -:104050000E94EB070F900F900F900F9008959F3FD5 -:1040600039F04F5F4E3041F051915813F8CF0DC0E9 -:104070005111F7CF942FF5CF9F3F39F0F901E90F98 -:10408000F11D97FDFA9582830895089590910C0192 -:10409000992321F090910D01911109C020910E01F9 -:1040A00030910F01F9013296205F3F4F30C0982FB9 -:1040B0009695969596959F30A8F4E0910E01F09113 -:1040C0000F01E90FF11D877021E030E0A90102C066 -:1040D000440F551F8A95E2F7CA0180959181892383 -:1040E000818308959091D70190FF16C01F928F93FE -:1040F00089EB95E09F938F930E94EB070F900F90B1 -:104100000F900F9008953196E217F30729F09081F0 -:104110009813F9CF1082F7CF089581E090E0E091F5 -:104120000E01F0910F01E80FF91F10820196803106 -:104130009105A9F708959091D601892B8093D60116 -:10414000089580959091D60189238093D601089592 -:104150001092D60108959091D501892B8093D501B5 -:10416000089580959091D50189238093D501089574 -:104170001092D50108958093C40108951092C4014E -:10418000089580910E0190910F01FC0131969C01E0 -:10419000205F3F4F80E0919191118F5FE217F3070D -:1041A000D1F70895E0910E01F0910F018091D601B1 -:1041B0008083E0910E01F0910F0190818091D501F3 -:1041C000892B80838091C401882361F0E0910E01E6 -:1041D000F0910F019081892B80830E94C120811171 -:1041E0001092C40180910E0190910F010C94EB1478 -:1041F00090933B0180933A010895CF92DF92EF9222 -:10420000FF926C01EE24FF24C114D104E104F104F7 -:1042100021F0C701B60120E101C020E0C72ED82E51 -:10422000E92EFF24C114D104E104F10419F0285F40 -:10423000C701B6016B017C0154E0F694E794D79472 -:10424000C7945A95D1F7C114D104E104F10419F0CF -:104250002C5FC701B6016B017C0142E0F694E79444 -:10426000D794C7944A95D1F7C114D104E104F1045D -:1042700019F02E5FC701B601DC01CB01B695A795F9 -:1042800097958795892B8A2B8B2B09F02F5F822F8F -:10429000FF90EF90DF90CF9008958295982F9C7CAF -:1042A000392F36953695282F237344E0249FC0017B -:1042B0001124932F982B292F2A7A2695892F8575DB -:1042C000880F822B08951F93CF93DF931F92CDB752 -:1042D000DEB799830E944D21182F9981892F0E9462 -:1042E0004D21212F30E0322F2227A901482BCA016E -:1042F0000F90DF91CF911F9108958091F00184304C -:1043000009F11092D80120E488E190E00FB6F8940A -:10431000A895809360000FBE2093600083B7817FD3 -:10432000846083BF83B7816083BF7894889583B7A7 -:104330008E7F83BF88E10FB6F8948093600010925F -:1043400060000FBE089508950895CF930E94A321A1 -:104350000E947F090E94A421C0E08C2F0E94AB0A1A -:10436000811104C0CF5FCE30C1F701C081E0CF9191 -:1043700008950C94BD1A82E084BD93E095BD9AEF38 -:1043800097BD80936E0008952FB7F8948091D9015E -:104390009091DA01A091DB01B091DC012FBF08956B -:1043A000CF92DF92EF92FF920F931F932FB7F89463 -:1043B0004091D9015091DA016091DB017091DC01EB -:1043C0002FBF6A017B01EE24FF248C0120E030E046 -:1043D000C016D106E206F30610F4415051099A01C5 -:1043E000281B390BC9011F910F91FF90EF90DF90AF -:1043F000CF9008951F920F920FB60F9211248F93B2 -:104400009F93AF93BF938091D9019091DA01A091CE -:10441000DB01B091DC010196A11DB11D8093D90192 -:104420009093DA01A093DB01B093DC01BF91AF91CF -:104430009F918F910F900FBE0F901F9018950E9423 -:10444000DD11F8942FEF87EA91E6215080409040EB -:10445000E1F700C0000087E090EBDC018093F901F8 -:104460009093FA01A093FB01B093FC019CE088E1DA -:104470000FB6F894A895809360000FBE90936000EB -:10448000FFCFEF92FF920F931F93CF93DF93D82F1D -:10449000C0E08C2F0E94AB0A00E010E0E82EF12C67 -:1044A000C701002E02C0959587950A94E2F780FD1A -:1044B00006C00F5F1F4F0630110591F709C0602F2E -:1044C0007C2F80E00E94B80BD813F3CF81E004C0AA -:1044D000CF5FCE30F1F680E0DF91CF911F910F9149 -:1044E000FF90EF900895CF93C82F8CE20E94412255 -:1044F000882321F08C2FCF910C94412280E0CF9122 -:104500000895CF930E94D023811102C00E94B62348 -:104510008CEF95E00E945207C5E6C15049F00E9419 -:104520007F098FE39CE90197F1F700C00000F5CF08 -:1045300085EF95E00E94520789E20E947322811163 -:1045400013C18AE20E94732281110E94B62385E082 -:104550000E94732281110E941F220E94DB238093FC -:10456000D70187E00E9473228823A9F18BE10E9482 -:104570007322882351F08091D70181FB222720F9F3 -:1045800091E0922790FB81F90EC08EE00E94732289 -:10459000882361F08091D70182FB222720F991E0E6 -:1045A000922790FB82F98093D70115C080E10E9489 -:1045B00073229091D701882341F093FB222720F9A1 -:1045C00081E0822780FB93F904C0892F809580FBCE -:1045D00090F99093D7018091D7010E94DF230E9428 -:1045E000ED238093EA0180EE0E947322882341F03C -:1045F0008091EA01982F909590FB80F98093EA01D1 -:1046000089E30E947322882359F08091EA0181FB9B -:10461000222720F991E0922790FB81F98093EA010B -:1046200082EE0E947322882359F08091EA0182FB76 -:10463000222720F991E0922790FB82F98093EA01EA -:1046400086EE0E947322882359F08091EA0183FB51 -:10465000222720F991E0922790FB83F98093EA01C9 -:1046600083EE0E947322882359F08091EA0184FB33 -:10467000222720F991E0922790FB84F98093EA01A8 -:1046800085E30E947322882359F08091EA0185FB1B -:10469000222720F991E0922790FB85F98093EA0187 -:1046A00081E30E947322882359F08091EA0186FBFE -:1046B000222720F991E0922790FB86F98093EA0166 -:1046C00081E10E947322882359F08091EA0187FBDF -:1046D000222720F991E0922790FB87F98093EA0145 -:1046E0008091EA010E94F1238091EA0187FB8827EB -:1046F00080F980930D0187E20E947322C82F8EE11A -:104700000E9473228111C2608FE10E947322811185 -:10471000C46080E20E9473228111C86081E20E941D -:1047200073228111C06182E20E9473228111C062F2 -:1047300083E20E9473228111C06484E20E9473228A -:10474000882311F0C06802C0CC2329F08C2F0E946E -:10475000E8236C2F03C00E94E423682F70E080E000 -:1047600090E0CF910C94791ECF9108956DEE7EEF7D -:1047700080E090E00E94B92D60E082E090E00E942D -:10478000AB2D60E083E090E00E94AB2D60E084E020 -:1047900090E00E94AB2D60E085E090E00C94AB2DA2 -:1047A00080E090E00E94A52D21E08D3E9E4F09F013 -:1047B00020E0822F089582E090E00C949D2D682FD8 -:1047C00082E090E00C94AB2D83E090E00C949D2D62 -:1047D000682F83E090E00C94AB2D84E090E00C9483 -:1047E0009D2D682F84E090E00C94AB2D8091DF012B -:1047F00080FF0BC06091130185E0689FB001112418 -:1048000075956795759567952BC081FF09C0609177 -:10481000130185E0689FB00111247595679520C04C -:1048200082FF07C06091130185E0689FB0011124E9 -:1048300017C09091E0019923D1F060911201961771 -:1048400088F72091130185E0289F90011124929F01 -:10485000A001939F500D112470E0CA010E946F2D9A -:104860006038710540F46115710539F002C065E0EA -:1048700070E0862F08958FE7089581E00895809174 -:10488000DF0180FF08C06091110170E075956795A8 -:104890007595679521C081FF06C06091110170E098 -:1048A0007595679519C082FF04C06091110170E091 -:1048B00010C09091E0019923C1F06091100196170A -:1048C000A0F780911101899FC001112470E00E941E -:1048D0006F2D6038710528F46115710521F0862F60 -:1048E00008958FE7089581E0089561E070E0F4CFC6 -:1048F000803F21F40E94F623819504C0813F29F472 -:104900000E94F6238093E3010895823F21F40E94E0 -:10491000F623819504C0833F29F40E94F6238093F7 -:10492000E2010895893F19F40E943F2405C08A3F9F -:1049300031F40E943F2481958093E40108958B3FD8 -:1049400021F40E943F24819504C08C3F29F40E94E9 -:104950003F248093E5010895843F21F48091E10193 -:10496000816017C0853F21F48091E101826011C010 -:10497000863F21F48091E10184600BC0873F21F4E0 -:104980008091E101886005C0883F31F48091E101A8 -:1049900080618093E10108958D3F21F48091DF01D2 -:1049A00081600BC08E3F21F48091DF01826005C0E1 -:1049B0008F3F29F48091DF0184608093DF010895A7 -:1049C000803F39F48091E30187FF6CC01092E301CE -:1049D00069C0813F29F48091E3011816BCF362C0DD -:1049E0009091E201823F29F497FF5CC01092E201AE -:1049F00059C0833F19F41916CCF354C0893F41F4D0 -:104A00008091E40118160CF04DC01092E4014AC0E8 -:104A10008A3F29F48091E40187FF44C0F6CF8B3FA1 -:104A200039F48091E50187FF3DC01092E5013AC05D -:104A30008C3F29F48091E5011816BCF333C0843F04 -:104A400021F48091E1018E7F17C0853F21F4809190 -:104A5000E1018D7F11C0863F21F48091E1018B7FC0 -:104A60000BC0873F21F48091E101877F05C0883F1B -:104A700031F48091E1018F7E8093E10113C08D3F7D -:104A800021F48091DF018E7F0BC08E3F21F4809155 -:104A9000DF018D7F05C08F3F29F48091DF018B7F7F -:104AA0008093DF018091E20181110EC08091E301CA -:104AB00081110AC08091E401811106C08091E50155 -:104AC000811102C01092E00108958091D70183FF07 -:104AD0007EC088E396E00E9452078091E1011F9218 -:104AE0008F9383E396E09F938F930E94EB0781E37C -:104AF00096E00E9452078091E201282F332727FD7C -:104B000030953F938F938EE296E09F938F930E9410 -:104B1000EB078CE296E00E9452078091E301282F78 -:104B2000332727FD30953F938F9389E296E09F933B -:104B30008F930E94EB0787E296E00E9452078091D4 -:104B4000E401282F332727FD30953F938F9384E28C -:104B500096E09F938F930E94EB0782E296E00E947B -:104B600052078091E501282F332727FD30953F9389 -:104B70008F938FE196E09F938F930E94EB078CE1D8 -:104B800096E00E9452078091E0011F928F9389E185 -:104B900096E09F938F930E94EB0787E196E00E9437 -:104BA00052078091DF011F928F9384E196E09F93DB -:104BB0008F930E94EB0781E196E00E9452078DB728 -:104BC0009EB74C960FB6F8949EBF0FBE8DBF81EE78 -:104BD00091E00E9434150E94C4219093DE018093DD -:104BE000DD0108951F93CF93DF938091DD019091B4 -:104BF000DE010E94D021AC019091E001992321F0C7 -:104C00002091140130E006C0209115018AE0289F10 -:104C1000900111244217530708F486C08091E201E5 -:104C2000C091E301D091E4011091E501811107C029 -:104C3000C11176C0D11174C0111172C075C09F3FEF -:104C400019F09F5F9093E001181624F40E94F62358 -:104C50008093E2018091E20187FF05C00E94F62364 -:104C600081958093E2011C1624F40E94F623809320 -:104C7000E3018091E30187FF05C00E94F62381953F -:104C80008093E3016091E201662339F1C091E30171 -:104C9000CC2319F1772767FD7095872F972F0E94F6 -:104CA000742C23E333E343E35FE30E94D82C0E9498 -:104CB000412C6093E2016C2F772767FD7095872F59 -:104CC000972F0E94742C23E333E343E35FE30E94B6 -:104CD000D82C0E94412C6093E3011D1624F40E94FD -:104CE0003F248093E4018091E40187FF05C00E9486 -:104CF0003F2481958093E401111624F40E943F24FF -:104D00008093E5018091E50187FF05C00E943F2463 -:104D100081958093E501DF91CF911F910C946525DA -:104D20009F3F09F08ECF96CFDF91CF911F910895CD -:104D3000E1EEF1E085E0DF011D928A95E9F710923E -:104D4000E0011092DF0108958BE598E00E94520780 -:104D50001F9281E08F931F9285E08F938DE098E002 -:104D60009F938F930E94EB070F900F900F900F90DF -:104D70000F900F9008958330E9F128F4813061F0AD -:104D8000823009F10895853009F462C008F449C001 -:104D9000863009F474C0089580911501262F30E003 -:104DA000280F311D2F3F310524F4680F6093150142 -:104DB00003C08FEF80931501809115011F928F938F -:104DC00086E497E072C080911401262F30E0280F0E -:104DD000311D2F3F310524F4680F6093140103C087 -:104DE0008FEF80931401809114011F928F9384E3BD -:104DF00097E05BC080911301262F30E0280F311D12 -:104E00002F3F310524F4680F6093130103C08FEF27 -:104E100080931301809113011F928F9381E297E099 -:104E200044C080911201262F30E0280F311D2F3F02 -:104E3000310524F4680F6093120103C08FEF809353 -:104E40001201809112011F928F938CE097E02DC088 -:104E500080911101262F30E0280F311D2F3F3105A1 -:104E600024F4680F6093110103C08FEF8093110148 -:104E7000809111011F928F9383EF96E016C080916D -:104E80001001262F30E0280F311D2F3F310524F46B -:104E9000680F6093100103C08FEF80931001809121 -:104EA00010011F928F9388ED96E09F938F930E943D -:104EB000EB070F900F900F900F900895833081F1C2 -:104EC00028F4813059F08230D1F00895853009F40A -:104ED00049C0B8F1863009F456C008958091150193 -:104EE000681720F4861B8093150102C010921501EB -:104EF000809115011F928F9389EC96E054C08091A8 -:104F00001401681720F4861B8093140102C01092CC -:104F10001401809114011F928F9387EB96E043C098 -:104F200080911301681720F4861B8093130102C03F -:104F300010921301809113011F928F9384EA96E0DF -:104F400032C080911201681720F4861B80931201F1 -:104F500002C010921201809112011F928F938FE86C -:104F600096E021C080911101681720F4861B809380 -:104F7000110102C010921101809111011F928F93B3 -:104F800086E796E010C080911001681720F4861B18 -:104F90008093100102C010921001809110011F92A5 -:104FA0008F938BE596E09F938F930E94EB070F9072 -:104FB0000F900F900F900895CF93C82F1F928F934B -:104FC00080E699E09F938F930E94EB0781E090E049 -:104FD000A0E0B0E0BC01CD0104C0660F771F881FC0 -:104FE000991FCA95D2F70E94791E0F900F900F90CB -:104FF0000F90CF910C94BD1ACF938D3109F465C0F9 -:10500000B0F58E3009F4CCC100F5873009F49BC1AE -:10501000A8F4863009F06DC28091D701817F8E7F20 -:105020008093D70185E699E00E94520781EA9DE0CE -:105030000E94520781E08093E70180C1883009F423 -:105040004FC08B3009F47CC154C2863109F4F0C1E1 -:1050500038F4803109F4B8C1813109F430C249C251 -:10506000893109F4CEC18B3109F486C142C285333E -:1050700009F437C248F4873209F433C208F433C262 -:10508000893209F42EC235C2833438F48A3308F0E9 -:105090002CC2883309F454C12CC2833409F421C2D0 -:1050A000883409F026C20E94BD1A80E99DE00E9462 -:1050B00052079FEF23ED80E3915020408040E1F7BD -:1050C00000C000000E941F2239C180EB9DE00E94B9 -:1050D00052070E94FB2B0E94DF140E94110D2EC16B -:1050E00085EA9DE00E94520786E79BE00E945207F6 -:1050F0000E94E4231F928F9383E79BE09F938F93FB -:105100000E94EB0781E79BE00E9452070E94DB238D -:10511000C82F8EE59BE00E9452071F92CF9389E52E -:105120009BE09F938F930E94EB0787E59BE00E9493 -:1051300052078DE49BE00E9452078C2F81701F92D2 -:105140008F938AE49BE09F938F930E94EB0788E400 -:105150009BE00E9452078EE39BE00E945207C1FB36 -:10516000882780F91F928F938BE39BE09F938F9307 -:105170000E94EB0789E39BE00E9452078DE29BE0CF -:105180000E945207C2FB882780F91F928F938AE200 -:105190009BE09F938F930E94EB0788E29BE00E9425 -:1051A00052078FE19BE00E945207C3FBCC27C0F956 -:1051B0001F92CF938CE19BE09F938F930E94EB070C -:1051C0008AE19BE00E9452070E94ED23C82F86E0EF -:1051D0009BE00E9452071F92CF9381E09BE09F9338 -:1051E0008F930E94EB078FEF9AE00E94520786EEA2 -:1051F0009AE00E9452078C2F81701F928F9383EE4A -:105200009AE09F938F930E94EB078DB79EB780968D -:105210000FB6F8949EBF0FBE8DBF81EE9AE00E943C -:1052200052078AEC9AE00E945207C1FB882780F956 -:105230001F928F9387EC9AE09F938F930E94EB07C6 -:1052400085EC9AE00E94520783EB9AE00E94520795 -:10525000C2FB882780F91F928F9380EB9AE09F937F -:105260008F930E94EB078EEA9AE00E9452078CE926 -:105270009AE00E945207C3FB882780F91F928F9300 -:1052800089E99AE09F938F930E94EB0787E99AE060 -:105290000E9452078DE89AE00E945207C4FB8827BB -:1052A00080F91F928F938AE89AE09F938F930E94D0 -:1052B000EB0788E89AE00E94520786E79AE00E948E -:1052C0005207C5FB882780F91F928F9383E79AE0E6 -:1052D0009F938F930E94EB0781E79AE00E94520709 -:1052E00085E59AE00E945207C6FB882780F91F9245 -:1052F0008F9382E59AE09F938F930E94EB0780E55E -:105300009AE00E94520788E49AE00E945207C7FB85 -:10531000CC27C0F91F92CF9385E49AE09F938F9397 -:105320000E94EB0783E49AE00E9452078DB79EB774 -:105330004C960FB6F8949EBF0FBE8DBFC1E0DEC085 -:105340008CE899E05BC08091D701C82FC17080FFC5 -:1053500009C083E89DE00E9452078091D701817FB8 -:105360008E7F47C087E79DE00E9452078091D7015A -:1053700081608093D701E2CF9091D70191FBCC2738 -:10538000C0F981E0C827892FC0FB81F98093D7013C -:10539000CC2319F08AE69DE027C08CE59DE02EC065 -:1053A0009091D70192FBCC27C0F981E0C827892FC3 -:1053B000C0FB82F98093D701CC2319F08DE49DE0E6 -:1053C00013C08DE39DE01AC09091D70193FBCC27C9 -:1053D000C0F981E0C827892FC0FB83F98093D701EA -:1053E000CC2351F081E39DE00E9452078091D701C8 -:1053F00081608093D70182C084E29DE00E945207C1 -:105400009DCF85E19DE00E94520789EE9CE00E94BD -:1054100052078CEA9CE00E94520785E89CE00E94BB -:10542000520781E49CE00E94520786E19CE0E6CFAF -:1054300088E09CE00E9452070E94DF141F928F9325 -:105440008EEE9BE09F938F930E94EB0780910C015F -:105450001F928F9387ED9BE09F938F930E94EB07A2 -:1054600080916E011F928F9384EC9BE09F938F93AA -:105470000E94EB0780910D011F928F9381EB9BE0BF -:105480009F938F930E94EB078091D9019091DA014D -:10549000A091DB01B091DC01BF93AF939F938F93F9 -:1054A0008DE99BE09F938F930E94EB078DB79EB78A -:1054B00046960FB6F8949EBF0FBE8DBF3FCF0E9499 -:1054C000BD1AC0910D0181E0C827C0930D01CC2306 -:1054D00029F083E99BE00E94520710C088E89BE016 -:1054E0008DCF80E003C08D5101C089530E94DC271D -:1054F00025CF86E89BE00E945207C0E08C2FCF9119 -:10550000089580E0089580E00895CF93C82F80919A -:10551000E701813081F020F0823009F44FC045C1AD -:10552000E0910E01F0910F018081813169F08232AA -:1055300009F03DC109C0E0910E01F0910F01808199 -:10554000813111F0823261F48C2F0E94812A811105 -:1055500004C08C2F0E94FC272FC081E090E02CC05B -:105560008C2F0E94832A811126C0C431E1F070F48F -:10557000CB3081F0C031D1F40E94A42688E599E0B7 -:105580000E94520782E08093E70115C0C93259F0AA -:10559000C83361F485E699E00E9452078CE599E0F2 -:1055A0000E94520708C01092E70103C186E599E006 -:1055B0000E945207FEC081E08170FDC0C43220F518 -:1055C000CE3108F0C0C0CB3099F1C8F4C73009F033 -:1055D000D2C08AE08093150194E19093140193E086 -:1055E000909313018093120188E08093110188E267 -:1055F000809310018CEF97E00E945207BFC0C33127 -:1056000049F1C431C1F0B7C0CB3409F4A9C028F4C2 -:10561000C93289F0C83361F0AEC0C13509F49EC00B -:10562000C23509F499C0CE3409F0A5C06AE09EC025 -:105630000E94A426A3C08091E601882319F010924D -:10564000E6019CC089E098E00E94520781E08093C7 -:10565000E701B1C083EE97E00E94520781ED97E029 -:105660000E945207809115011F928F938EEC97E054 -:105670009F938F930E94EB078CEC97E00E94520758 -:105680008AEB97E00E945207809114011F928F933A -:1056900087EB97E09F938F930E94EB0785EB97E052 -:1056A0000E94520786EA97E00E94520780911301F8 -:1056B0001F928F9383EA97E09F938F930E94EB074B -:1056C00081EA97E00E94520780E997E00E94520722 -:1056D000809112011F928F938DE897E09F938F9393 -:1056E0000E94EB078BE897E00E94520786E797E05D -:1056F0000E945207809111011F928F9383E797E0D8 -:105700009F938F930E94EB0781E797E00E945207D7 -:105710008AE597E00E945207809110011F928F93B3 -:1057200087E597E09F938F930E94EB0785E597E0CD -:105730000E9452078DB79EB748960FB6F8949EBF49 -:105740000FBE8DBF1BC0CE51EC2FF0E0E15DFE4FD0 -:1057500080818093E60112C061E003C061E006C071 -:105760006AE08091E6010E94BB2608C08091E601B4 -:105770000E945E2703C08AEF97E013C08091E60184 -:10578000882369F01F928F9384EF97E09F938F9304 -:105790000E94EB070F900F900F900F9004C081EFC5 -:1057A00097E00E94520781E006C01092E70180E076 -:1057B00002C080E001CFCF910895E1E8F0E0808160 -:1057C000886080838081816080838FB7F89493E0C4 -:1057D0009093890090ED909388008FBF0895EFE635 -:1057E000F0E08081826080830895EFE6F0E08081C0 -:1057F0008D7F80830895EFE6F0E0908182E0892735 -:10580000808308951F920F920FB60F9211242F9349 -:105810003F934F935F936F937F938F939F93AF9338 -:10582000BF93EF93FF938091E8019091E901019676 -:105830009093E9018093E801811103C082E00E9406 -:10584000110DE091E901E695E695F0E0E054F24FA4 -:10585000E4918091E8018E1303C080E00E94110D55 -:10586000FF91EF91BF91AF919F918F917F916F9138 -:105870005F914F913F912F910F900FBE0F901F900E -:10588000189504D06894B1118DC0089570D088F037 -:105890009F5790F0B92F9927B751A0F0D1F0660F1C -:1058A000771F881F991F1AF0BA95C9F712C0B13037 -:1058B00081F077D0B1E0089574C0672F782F8827E2 -:1058C000B85F39F0B93FCCF3869577956795B39576 -:1058D000D9F73EF490958095709561957F4F8F4FE5 -:1058E0009F4F0895E89409C097FB3EF490958095EA -:1058F000709561957F4F8F4F9F4F9923A9F0F92F96 -:1059000096E9BB279395F695879577956795B79513 -:10591000F111F8CFFAF4BB0F11F460FF1BC06F5FF9 -:105920007F4F8F4F9F4F16C0882311F096E911C00B -:10593000772321F09EE8872F762F05C0662371F02C -:1059400096E8862F70E060E02AF09A95660F771F40 -:10595000881FDAF7880F9695879597F9089557FD70 -:105960009058440F551F59F05F3F71F04795880FCD -:1059700097FB991F61F09F3F79F087950895121664 -:1059800013061406551FF2CF4695F1DF08C0161610 -:1059900017061806991FF1CF8695710561050894C1 -:1059A0000895E894BB2766277727CB0197F90895D8 -:1059B0000BD078C069D028F06ED018F0952309F08C -:1059C0005AC05FC01124EECFCADFA0F3959FD1F378 -:1059D000950F50E0551F629FF001729FBB27F00D9D -:1059E000B11D639FAA27F00DB11DAA1F649F6627F2 -:1059F000B00DA11D661F829F2227B00DA11D621F41 -:105A0000739FB00DA11D621F839FA00D611D221FFA -:105A1000749F3327A00D611D231F849F600D211DDE -:105A2000822F762F6A2F11249F5750408AF0E1F081 -:105A300088234AF0EE0FFF1FBB1F661F771F881FCA -:105A400091505040A9F79E3F510570F014C0AACF65 -:105A50005F3FECF3983EDCF3869577956795B795B5 -:105A6000F795E7959F5FC1F7FE2B880F911D9695DF -:105A7000879597F9089597F99F6780E870E060E04F -:105A800008959FEF80EC089500240A9416161706D7 -:105A900018060906089500240A941216130614061F -:105AA00005060895092E0394000C11F4882352F082 -:105AB000BB0F40F4BF2B11F460FF04C06F5F7F4F3A -:105AC0008F4F9F4F0895991B79E004C0991F961737 -:105AD00008F0961B881F7A95C9F78095089597FB63 -:105AE000072E16F4009407D077FD09D00E94892D67 -:105AF00007FC05D03EF4909581959F4F08957095D1 -:105B000061957F4F0895EE0FFF1F0590F491E02DF2 -:105B10000994AA1BBB1B51E107C0AA1FBB1FA617F4 -:105B2000B70710F0A61BB70B881F991F5A95A9F746 -:105B300080959095BC01CD010895F999FECF92BD55 -:105B400081BDF89A992780B50895A8E1B0E042E0B8 -:105B500050E00C94C02D262FF999FECF1FBA92BDAC -:105B600081BD20BD0FB6F894FA9AF99A0FBE01963E -:105B700008950E94AB2D272F0C94AC2DDC01CB0196 -:105B8000FC01F999FECF06C0F2BDE1BDF89A31964D -:105B900000B40D9241505040B8F70895F894FFCFEB -:105BA0002002120D030EE00DAC0D780D0101C501B0 -:105BB00028080A03140A3F4D3620394605F904C364 -:105BC00004A3046A04DD03F6030F04280448040157 -:0A5BD000020304050607080900009F -:00000001FF diff --git a/keyboard/ergodox_ez/keymaps/keymap_kines-ish.c b/keyboard/ergodox_ez/keymaps/kines-ish/keymap.c similarity index 99% rename from keyboard/ergodox_ez/keymaps/keymap_kines-ish.c rename to keyboard/ergodox_ez/keymaps/kines-ish/keymap.c index 20cb53241f..5063c99f28 100644 --- a/keyboard/ergodox_ez/keymaps/keymap_kines-ish.c +++ b/keyboard/ergodox_ez/keymaps/kines-ish/keymap.c @@ -155,12 +155,12 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) }; // Runs just one time when the keyboard initializes. -void * matrix_init_user(void) { +void matrix_init_user(void) { }; // Runs constantly in the background, in a loop. -void * matrix_scan_user(void) { +void matrix_scan_user(void) { uint8_t layer = biton32(layer_state); diff --git a/keyboard/ergodox_ez/keymaps/kines-ish/kines-ish.hex b/keyboard/ergodox_ez/keymaps/kines-ish/kines-ish.hex new file mode 100644 index 0000000000..c04a78512a --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/kines-ish/kines-ish.hex @@ -0,0 +1,1121 @@ +:100000000C9465020C94AC020C94AC020C94AC02FF +:100010000C94AC020C94AC020C94AC020C94AC02A8 +:100020000C94AC020C94AC020C94C30B0C94950C85 +:100030000C94AC020C94AC020C94AC020C94AC0288 +:100040000C94AC020C9409210C94AC020C94AC02FC +:100050000C94AC020C949B1A0C94AC020C94AC0261 +:100060000C94AC020C94AC020C94AC020C94AC0258 +:100070000C94AC020C94AC020C94AC020C94AC0248 +:100080000C94AC020C94AC020C94AC020C94AC0238 +:100090000C94AC020C94AC020C94AC020C94AC0228 +:1000A0000C94AC020C94AC020C94AC02020D240D26 +:1000B000170E240D170E690D8C0D170EE10DF40DA2 +:1000C000DE10DE100D110D1150118A1197139713C8 +:1000D000A3119713981298126B1397139713821307 +:1000E0000000F0A12E002B003900E10029000000E3 +:1000F0001E00140004001D0035004D001F001A00F2 +:1001000016001B0049004C002000080007000600F4 +:1001100050002A0021001500090019004F004A0074 +:10012000220017000A0005000000E0005000015402 +:100130000000007F0000E2004F0001540000007743 +:100140000000E30023001C000B0011000000E4008D +:10015000240018000D00100052004B0025000C0078 +:100160000E00360051002C00260012000F00370050 +:100170002F002800270013003300380030004E0005 +:100180002D0031003400E500C200000046004700A9 +:1001900048000100010000003A001E022002220275 +:1001A000010001003B001F022102230201000100A7 +:1001B0003C002F0226022F00010001003D0030020A +:1001C00027023000010001003E00310235003502F7 +:1001D000000001000100010000000100000001001A +:1001E0000100010000000100000001003F0052007A +:1001F00051002402000001004000240021001E00E4 +:10020000010001004100250022001F00370001000D +:1002100042002600230020002700010043002502A1 +:100220002E0231002E0001004400450001000100B3 +:1002300001000000010001000100010001000000B8 +:1002400001000100010001000100010001000100A6 +:10025000F2000100010001000100F000F1000100C6 +:10026000F400010001000100F3000100F5000100AD +:100270000100010001000100000001000100010077 +:100280000000010000000100010001000000010069 +:100290000000010001000100010001000000010058 +:1002A0000100010001000100A9000100010001009E +:1002B0000100AC00AA00B600010001000100AB0083 +:1002C000A80001000100010001000100010001007F +:1002D00001000100AE00010001000000160345000E +:1002E000720067006F0044006F0078002000450036 +:1002F0005A00000016034500720067006F004400BA +:100300006F007800200045005A0000000403090433 +:1003100009026D00040100A0FA09040000010301B4 +:100320000100092111010001223F00070581030896 +:10033000000A090401000103010200092111010062 +:1003400001224D000705820308000A09040200018A +:100350000300000009211101000122360007058376 +:100360000308000A09040300010300000009211129 +:100370000100012239000705840310000112011059 +:100380000100000008EDFE07130100010200010555 +:10039000010906A101050719E029E71500250195C6 +:1003A0000875018102050819012905950575019156 +:1003B000029501750391010507190029771500259C +:1003C00001957875018102C005010980A1018502AE +:1003D00016010026B7001A01002AB7007510950112 +:1003E0008100C0050C0901A1018503160100269CAE +:1003F000021A01002A9C02751095018100C00501B6 +:100400000902A1010901A100050919012905150029 +:10041000250195057501810295017503810105018D +:10042000093009311581257F950275088106093843 +:100430001581257F950175088106050C0A3802157E +:1004400081257F950175088106C0C005010906A1B7 +:1004500001050719E029E7150025019508750181B7 +:100460000295017508810105081901290595057591 +:100470000191029501750391010507190029FF15E6 +:100480000025FF950675088100C0000000000000EF +:100490000000000000010204060A0F17202C3A4A4F +:1004A0005D71879DB3C7DAE9F5FCFFFCF5E9DAC7B2 +:1004B000B39D87715D4A3A2C20170F0A060402018A +:1004C0000000000000000000000011241FBECFEF5C +:1004D000DAE0DEBFCDBF04B603FE27C08091ED0198 +:1004E0009091EE01A091EF01B091F0018730904B17 +:1004F000A740B04BD1F41092ED011092EE01109292 +:10050000EF011092F00114BE84B7877F84BF0FB64D +:10051000F894A895809160008861809360001092A3 +:1005200060000FBEE0E0FFE3099511E0A0E0B1E05C +:10053000E4EBF5E402C005900D92A433B107D9F7BE +:1005400021E0A4E3B1E001C01D92AD3EB207E1F7A6 +:100550000E940A090C94D8220C94000061110BC06F +:10056000FC018281882321F085EE0E94780F03C070 +:1005700085EE0E94401080E090E00895089560911B +:10058000B1017091B2018091B3019091B4010E94C8 +:10059000C81956985E9825982D9826982E982798D1 +:1005A0002F98813019F0823021F00895259A2D9AE4 +:1005B0000895269A2E9A08950C94BF0256985E9834 +:1005C00025982D9826982E9827982F988FEF90E0B1 +:1005D000909389008093880090938B0080938A0089 +:1005E00090938D0080938C00259A2D9A2FEF80E7B1 +:1005F00092E0215080409040E1F700C00000269A30 +:100600002E9A2FEF80E792E0215080409040E1F752 +:1006100000C00000279A2F9A2FEF80E792E0215028 +:1006200080409040E1F700C0000025982D982FEF02 +:1006300080E792E0215080409040E1F700C0000048 +:1006400026982E982FEF80E792E02150804090402E +:10065000E1F700C0000027982F9856985E982598DB +:100660002D9826982E9827982F98089589EA809398 +:10067000800089E08093810024982C983F988AB16B +:100680008F748AB96E98479A8BB1806B8BB9769AC2 +:100690000E94DE020C94BE0280E2809300018091F1 +:1006A000340181110EC00E949B0381E080933401CC +:1006B0002FEF83ED90E3215080409040E1F700C0A0 +:1006C000000080E40E94A1038093000181112EC0EC +:1006D0000E94CB0380930001811128C00E94CB03AC +:1006E00080930001811122C08FE30E94CB0380938D +:1006F000000181111BC00E94C30380E40E94A1037A +:1007000080930001811112C08CE00E94CB03809382 +:10071000000181110BC00E94CB0380930001811165 +:1007200005C08FE30E94CB03809300010E94C303A6 +:100730008091000108951092B9008AE08093B8007A +:10074000089594EA9093BC009091BC0097FFFCCF71 +:100750009091B900987F983021F0903111F081E0AC +:1007600008958093BB0084E88093BC008091BC0016 +:1007700087FFFCCF8091B900887F883111F08034E9 +:1007800071F780E0089584E98093BC008091BC00FB +:1007900084FDFCCF08958093BB0084E88093BC0067 +:1007A0008091BC0087FFFCCF9091B900987F81E0D9 +:1007B000983209F480E0089584E88093BC00809129 +:1007C000BC0087FFFCCF8091BB00089580910001A1 +:1007D000811115C080E40E94A10380930001811162 +:1007E0000CC082E10E94CB0380930001811105C0FF +:1007F0008FEF0E94CB03809300010E94C30384B15A +:10080000807F84B985B1807F85B98AB1837F8AB9B9 +:100810008BB1837F8BB93E98469808950E944C0314 +:10082000809300010E94E60380B38C7080BB81B38B +:10083000836F81BBE4E4F1E0A6E3B1E011921D9285 +:1008400081E0E235F807D1F70C9436039F92AF921E +:10085000BF92CF92DF92EF92FF920F931F93CF93AD +:10086000DF9380910001882379F0809135018F5FBB +:1008700080933501811108C00E944C0380930001D0 +:10088000811102C00E94DE0286E3E82E81E0F82E8C +:100890008701C0E0D0E0BB24B39492E0A92ECC2421 +:1008A000C394D12CC730D10500F58091000181118E +:1008B00064C080E40E94A10380930001811112C0F2 +:1008C00082E10E94CB038093000181110BC0C6011D +:1008D0000C2E01C0880F0A94EAF780950E94CB0382 +:1008E000809300010E94C30348C0CA30A1F028F4DD +:1008F000C83059F0C93061F005C0CC3089F070F0D3 +:10090000CD3089F0209A289810C0219A29980DC0DE +:10091000229A2A980AC0239A2B9807C0529A01C09B +:10092000539A5B9802C03E9A4698E0EAEA95F1F73E +:100930008FB181708B25799902C032E001C030E01F +:10094000832B7C9902C034E001C030E0832B7D9979 +:1009500002C028E001C020E0822B7E9902C090E115 +:1009600001C090E0892B9FB19095991F9927991FFD +:100970009295990F907E892B0FC080910001811173 +:100980004AC080E40E94A10380930001882381F182 +:10099000912C0E94C303892DD8019C91981719F0BE +:1009A0008C93A09201010E94E60321960F5F1F4FD6 +:1009B000CE30D10509F076CF80910101882369F10D +:1009C000815080930101882339F0EFE9FFE03197EE +:1009D000F1F700C0000021C0E4E4F1E0D7018D91FF +:1009E0007D018193B4E4EB16B1E0FB06B9F715C0C5 +:1009F00083E10E94CB03809300018111C9CF81E480 +:100A00000E94A103809300018111C2CF0E94DC03E8 +:100A1000982E9094BECF80E0BFCF0E94DC0281E090 +:100A2000DF91CF911F910F91FF90EF90DF90CF90CA +:100A3000BF90AF909F900895E82FF0E0EC5BFE4FE1 +:100A40008081089508958B3B910580F4883A910543 +:100A500048F5853A9105D8F48430910508F0B2C084 +:100A6000019709F06EC081E090E00895803E910505 +:100A700008F467C0883E910508F4A4C09C01205F7B +:100A800031092031310508F05CC090650895853A40 +:100A9000910509F459C0863A910509F058C082E8D9 +:100AA00090E40895883A910509F454C0893A910573 +:100AB00009F453C08A3A910509F452C08B3A910562 +:100AC00009F451C08C3A910509F450C08D3A910552 +:100AD00009F44FC0803B910509F44EC08E3A910550 +:100AE00009F44DC08F3A910509F44CC0813B910542 +:100AF00009F44BC0823B910509F44AC0833B910540 +:100B000009F449C0843B910509F448C0853B91052F +:100B100009F447C0863B910509F446C0873B91051F +:100B200009F445C0883B910509F444C0893B91050F +:100B300009F443C08A3B910509F442C080E094E483 +:100B4000089580E090E0089581E890E4089583E8B6 +:100B500090E4089582EE94E4089589EE94E4089573 +:100B60008AEE94E4089585EB94E4089586EB94E48A +:100B7000089587EB94E408958CEC94E408958DEC4B +:100B800094E4089583E895E408958AE895E4089547 +:100B900082E995E4089584E995E4089581E296E474 +:100BA000089583E296E4089584E296E4089585E248 +:100BB00096E4089586E296E4089587E296E408951F +:100BC0008AE296E40895089524E5829FC0011124E5 +:100BD000FC0126E0729FE00DF11D1124E60FF11DCE +:100BE000EE0FFF1FEC51FF4F859194910895880FF0 +:100BF000991FFC01E05AF040859194910895880F67 +:100C0000991FFC01E052FF4F85919491089524E5CE +:100C1000829FC0011124FC0146E0749FE00DF11D8C +:100C20001124E60FF11DEE0FFF1FEC51FF4F8591D0 +:100C300094919C013A9521154FE1340708F425C1A0 +:100C40003F512115304120F49F700E94FF05089507 +:100C50009C0130532115304118F49927906C089568 +:100C6000811520E5920769F40E94B9134FEF84E3E0 +:100C70009CE0415080409040E1F700C000000C949F +:100C8000C01A813020E5920731F48091CC01816057 +:100C90008093CC0108959C0130552115304108F016 +:100CA0005CC0292F33272F70332721303105E9F419 +:100CB000AC0164E0440F551F6A95E1F74427537077 +:100CC000BC016370772702C0220F331F6A95E2F7D9 +:100CD0003C68242B352B73E0880F991F7A95E1F738 +:100CE00080769927822B932B08952230310529F4A1 +:100CF000982F8827816F906A089523303105A1F4D9 +:100D0000AC0133E0440F551F3A95E1F7407E577030 +:100D10008370992721E030E002C0220F331F8A95AB +:100D2000E2F7C9019C6816C02430310531F5AC01E9 +:100D300023E0440F551F2A95E1F7407E57708370DA +:100D4000992721E030E002C0220F331F8A95E2F795 +:100D5000C9019A68842B952B08959C013057211561 +:100D6000304118F49F70906208959C01305821150D +:100D7000304118F49F70906A0895803E9105E0F428 +:100D8000803C910558F58133910509F46FC048F412 +:100D90008932910509F463C08A32910509F46DC066 +:100DA00072C089339105E9F082389105D1F085331D +:100DB000910509F44DC067C0833E910581F138F477 +:100DC000803E9105B9F0823E9105D9F05CC0863E27 +:100DD000910561F1873E9105A1F155C00E94F7058B +:100DE00008952091DE0120FD02C021FF4CC080EE5D +:100DF00090E049C08091DE0180FFF9CF89E390E067 +:100E000042C08091DE0182FF0EC08091DE0184FF2E +:100E100003C080E090E037C083EE90E034C0809162 +:100E2000DE0182FFF2CF82EE90E02DC08091DE01E4 +:100E300083FF0BC08091DE0184FDEBCF87EE90E055 +:100E400022C08091DE0183FFF5CF86EE90E01BC0CB +:100E50008091DE0185FF07C089E290E014C0809197 +:100E6000DE0185FFF9CF85E390E00DC08091DE01C2 +:100E700086FF07C08AE290E006C08091DE0186FF0F +:100E8000F9CF81E390E00E942305089508958091B1 +:100E900062010895CF93DF9300D01F92CDB7DEB7E4 +:100EA0009C018091E401843019F593E099833B83A0 +:100EB0002A839093E9008FEF9091E800815095FD8F +:100EC00006C095ED9A95F1F700008111F5CF80915C +:100ED000E80085FF0DC040E050E063E070E0CE0127 +:100EE00001960E94B7098091E8008E778093E80010 +:100EF0000F900F900F90DF91CF910895CF93DF93D4 +:100F000000D01F92CDB7DEB72091E401243021F547 +:100F100022E029839B838A8383E08093E9008FEF1B +:100F20009091E800815095FD06C095ED9A95F1F7F6 +:100F300000008111F5CF8091E80085FF0DC040E0F1 +:100F400050E063E070E0CE0101960E94B709809105 +:100F5000E8008E778093E8000F900F900F90DF915C +:100F6000CF9108959C018091E4018430F9F482E0EE +:100F70008093E9009FEF8091E800915085FD06C0C5 +:100F800085ED8A95F1F700009111F5CF8091E80089 +:100F900085FF0CC040E050E065E070E0C9010E94B0 +:100FA000B7098091E8008E778093E8000895CF9389 +:100FB000DF93EC018091E401843009F046C0909108 +:100FC0000C019923D9F090910D019923B9F08093E8 +:100FD000E9008FEF9091E800815095FD06C095E102 +:100FE0009A95F1F700008111F5CF8091E80085FF17 +:100FF0002CC040E050E060E170E017C081E08093D9 +:10100000E9008FEF9091E800815095FD06C095EDC5 +:101010009A95F1F700008111F5CF8091E80085FFE6 +:1010200014C040E050E068E070E0CE010E94B709D3 +:101030008091E8008E778093E80080E1FE01A2E5D0 +:10104000B1E001900D928A95E1F7DF91CF9108957B +:101050008091E301811109C00E94480B0E94A50BF9 +:101060008091E20084608093E20008951092E30191 +:10107000089508950C94F6200E94561A0E94FC20B0 +:101080000E94500E0C94460742E061EC81E00E9401 +:10109000C10A42E061EC82E00E94C10A42E061ECD8 +:1010A00083E00E94C10A42E161EC84E00C94C10A31 +:1010B0008091E601833009F455C030F4813071F03D +:1010C000823009F48EC008958A3009F47AC08B30DA +:1010D00009F460C0893009F09CC020C08091E5010E +:1010E000813A09F096C08091E800877F8093E800FC +:1010F0008091E9019091EA01892B21F460E182E578 +:1011000091E003C060E080E090E070E00E94020A9D +:101110008091E8008B778093E80008958091E50145 +:10112000813209F076C08091E9019091EA0100973F +:1011300019F0039709F06DC08091E800877F8093D4 +:10114000E8008091E80082FD05C08091E4018111F2 +:10115000F8CF5FC08091F100809362018091E80038 +:101160008B7753C08091E501813A09F052C080919C +:10117000E9019091EA01892B09F04BC08091E800C8 +:10118000877F8093E8008091E80080FFFCCF80910A +:101190000C0136C08091E5018132D9F58091E901D9 +:1011A0009091EA01892BA9F58091E800877F8093CF +:1011B000E8000E94F60A8091E70180930C010C94EC +:1011C000B9138091E501813221F58091E800877F94 +:1011D0008093E8000E94F60A8091E8018093630101 +:1011E00008958091E501813AA1F48091E800877F1C +:1011F0008093E8008091E80080FFFCCF809163013C +:101200008093F1008091E8008E778093E8000C9441 +:10121000F60A089584B7877F84BF0FB6F894A8951F +:1012200080916000886180936000109260000FBE22 +:1012300090E080E80FB6F89480936100909361008D +:101240000FBE0E949F0E0E94480B0E94A50B80912A +:10125000E20084608093E20078940E94300E0E9445 +:10126000A10E82E091E00E944B0E0E94E42080914A +:10127000E401853069F40E94181A8091E201882304 +:10128000B1F30E94421A882391F30E94A109EFCF83 +:101290000E94A70EECCF292F332723303105C9F048 +:1012A00060F42130310581F02230310509F041C070 +:1012B0008DE690E020E133E040C021323105E1F0DD +:1012C0002232310531F135C082E190E02DE733E083 +:1012D00034C099278130910549F028F0029749F5EB +:1012E000ECEDF2E005C0ECE0F3E002C0E4EFF2E088 +:1012F000849190E09F0121C06430D8F4E62FF0E0A3 +:10130000EE0FFF1FEE5DFE4F2081318189E090E0FE +:1013100014C0643070F470E0FB01EE0FFF1FE65E56 +:10132000FE4F20813181FB01EA5EFE4F808190E01B +:1013300004C080E090E020E030E0FA0131832083B7 +:10134000089580E189BD82E189BD09B400FEFDCF29 +:101350008091D8008F7D8093D8008091E0008260DA +:101360008093E0008091E00081FDFCCF0895CF9252 +:10137000DF92EF92FF920F931F93CF93DF93EC01D5 +:101380008B016A010E94150B811133C0C114D10475 +:1013900039F0F60180819181081B190BC80FD91F04 +:1013A000E12CF12C0115110519F18091E80085FD62 +:1013B00016C08091E8008E778093E800C114D104B4 +:1013C00049F0F60180819181E80EF91EF182E082F8 +:1013D00085E00FC00E94150B882321F30AC0899174 +:1013E0008093F10001501109FFEFEF1AFF0ADACFE5 +:1013F00080E0DF91CF911F910F91FF90EF90DF90F0 +:10140000CF9008952091EB013091EC01261737071A +:1014100048F06115710539F42091E8002E7720938A +:10142000E80001C0B901FC0120E06115710579F106 +:101430008091E4018823F1F18530F1F18091E80099 +:1014400083FD3CC08091E80082FD2EC08091E800C1 +:1014500080FFEBCF2091F3008091F20090E0922B7F +:101460006115710551F08830910538F42191209370 +:10147000F100615071090196F3CF21E0089709F05E +:1014800020E08091E8008E778093E800CECF211194 +:10149000CFCF0AC08091E401882361F0853061F0EC +:1014A0008091E80083FD0AC08091E80082FFF2CFBE +:1014B00080E0089582E0089583E0089581E0089532 +:1014C0002091EB013091EC012617370748F06115A8 +:1014D000710539F42091E8002E772093E80001C0CF +:1014E000B901FC0120E06115710591F18091E401E1 +:1014F000882309F440C0853009F43FC08091E8009A +:1015000083FD3DC08091E80082FD2FC08091E800FE +:1015100080FFE9CF2091F3008091F20090E0922BC0 +:101520006115710559F08830910540F4249120939C +:10153000F1003196615071090196F2CF21E00897D0 +:1015400009F020E08091E8008E778093E800CBCF0F +:101550002111CCCF0AC08091E401882361F085304D +:1015600061F08091E80083FD0AC08091E80082FF6D +:10157000F2CF80E0089582E0089583E0089581E04D +:101580000895982F973068F59093E900981739F0EF +:101590007091EC002091ED005091F00003C0242FD9 +:1015A000762F50E021FD02C09F5FECCF3091EB0021 +:1015B0003E7F3093EB003091ED003D7F3093ED00A6 +:1015C0003091EB0031603093EB007093EC0020938E +:1015D000ED005093F0002091EE0027FDE5CF80E074 +:1015E00008958F708093E90081E008958091E5016E +:1015F00087FF11C08091E80082FD05C08091E40161 +:101600008111F8CF11C08091E8008B770BC08091D9 +:10161000E401882349F08091E80080FFF8CF8091B1 +:10162000E8008E778093E80008952091E4003091DF +:10163000E50095E64091EC00842F817040FF23C0C7 +:101640008091E80080FD1DC08091E401882399F01D +:10165000853099F08091EB0085FD11C04091E40048 +:101660005091E5002417350729F3915011F09A01A4 +:10167000E1CF84E0089582E0089583E0089581E059 +:10168000089580E008954091E80042FFDDCF08957D +:101690000E94B60B0E94BE0BE0EEF0E080818160FC +:1016A0008083E8EDF0E080818F77808319BCA7ED1F +:1016B000B0E08C918E7F8C9380818F7E808310929E +:1016C000E30108950F931F93CF93DF930E94B60B0E +:1016D0000E94BE0BC8EDD0E088818F778883888117 +:1016E0008068888388818F7D888319BC1092E4018B +:1016F0001092E0011092E2011092E10100EE10E080 +:10170000F80180818B7F808388818160888342E0BB +:1017100060E080E00E94C10AE1EEF0E080818E7F0F +:101720008083E2EEF0E08081816080838081886048 +:101730008083F80180818E7F8083888180618883A7 +:10174000DF91CF911F910F910895E8EDF0E0808136 +:101750008F7E8083E7EDF0E080818160808384E08C +:1017600082BF81E08093E3010C94620BE8EDF0E02E +:1017700080818E7F80831092E20008951092DA00BB +:101780001092E10008951F920F920FB60F9211244C +:101790002F933F934F935F936F937F938F939F9379 +:1017A000AF93BF93EF93FF938091E10082FF0BC053 +:1017B0008091E20082FF07C08091E1008B7F8093DF +:1017C000E1000E942F0E8091DA0080FF1FC08091FF +:1017D000D80080FF1BC08091DA008E7F8093DA00F2 +:1017E0008091D90080FF0DC080E189BD82E189BD73 +:1017F00009B400FEFDCF81E08093E4010E94280837 +:1018000005C019BC1092E4010E9436088091E100E5 +:1018100080FF19C08091E20080FF15C08091E20036 +:101820008E7F8093E2008091E20080618093E200ED +:101830008091D80080628093D80019BC85E08093A5 +:10184000E4010E943A088091E10084FF30C0809159 +:10185000E20084FF2CC080E189BD82E189BD09B42A +:1018600000FEFDCF8091D8008F7D8093D8008091BD +:10187000E1008F7E8093E1008091E2008F7E809373 +:10188000E2008091E20081608093E2008091E001BB +:10189000882311F084E007C08091E30087FD02C037 +:1018A00081E001C083E08093E4010E943C088091C4 +:1018B000E10083FF29C08091E20083FF25C0809171 +:1018C000E100877F8093E10082E08093E401109241 +:1018D000E0018091E1008E7F8093E1008091E20041 +:1018E0008E7F8093E2008091E20080618093E2002D +:1018F00042E060E080E00E94C10A8091F0008860D0 +:101900008093F0000E943908FF91EF91BF91AF9151 +:101910009F918F917F916F915F914F913F912F9107 +:101920000F900FBE0F901F9018951F920F920FB639 +:101930000F9211242F933F934F935F936F937F9355 +:101940008F939F93AF93BF93CF93DF93EF93FF93C7 +:10195000C091E900CF708091EC00D82FD17080FD4C +:10196000D0E81092E9008091F000877F8093F0002A +:1019700078940E94D90C1092E9008091F000886060 +:101980008093F000CD2BCF70C093E900FF91EF91D1 +:10199000DF91CF91BF91AF919F918F917F916F9187 +:1019A0005F914F913F912F910F900FBE0F901F901D +:1019B00018951F93CF93DF93CDB7DEB7AA970FB6D5 +:1019C000F894DEBF0FBECDBFE5EEF1E08091F100EF +:1019D000819321E0ED3EF207C9F70E9458088091FB +:1019E000E80083FF24C18091E5019091E601492F31 +:1019F00050E04A30510508F01AC1FA01EA5AFF4F87 +:101A00000C948D22803881F0823809F010C18091C9 +:101A1000E9018F708093E9008091EB0085FB8827B6 +:101A200080F91092E90006C08091E1019091E201F5 +:101A3000911182609091E800977F9093E8008093E5 +:101A4000F1001092F100C8C0282F2D7F09F0EFC0DF +:101A5000882319F0823061F0EAC08091E70181307B +:101A600009F0E5C0933009F080E08093E2012BC0DB +:101A70008091E701811127C08091E9018F7009F4FD +:101A8000D6C08093E9002091EB0020FF1CC093306A +:101A900021F48091EB00806214C09091EB00906182 +:101AA0009093EB0021E030E0A90102C0440F551FE4 +:101AB0008A95E2F74093EA001092EA008091EB00E9 +:101AC00088608093EB001092E9008091E800877FA6 +:101AD00086C08111ACC01091E7011F778091E300AF +:101AE0008078812B8093E3008091E800877F80934A +:101AF000E8000E94F60A8091E80080FFFCCF809108 +:101B0000E30080688093E300111102C082E001C00D +:101B100083E08093E4018BC08058823008F087C056 +:101B20008091E7019091E8018C3D53E0950779F5AC +:101B300083E08A838AE289834FB7F894DE011396A3 +:101B400020E03EE051E2E32FF0E050935700E491B3 +:101B500020FF03C0E295EF703F5FEF708E2F90E0A3 +:101B6000EA3010F0C79601C0C0968D939D932F5F09 +:101B7000243149F74FBF8091E800877F8093E800C8 +:101B80006AE270E0CE0101960E94020A14C0AE0122 +:101B90004F5F5F4F6091E9010E944B09BC01892BA7 +:101BA00009F445C09091E800977F9093E8008981FF +:101BB0009A810E94600A8091E8008B778093E80008 +:101BC00036C08038A1F58091E800877F8093E800D7 +:101BD0008091E0018093F1008091E8008E778093FE +:101BE000E8000E94F60A23C0811121C08091E7011C +:101BF0009091E80199270297D4F48091E800877FBB +:101C00008093E8008091E7018093E0010E94F60A4A +:101C10008091E001811106C08091E30087FD02C040 +:101C200081E001C084E08093E4010E944408809137 +:101C3000E80083FF0AC08091E800877F8093E80076 +:101C40008091EB0080628093EB00AA960FB6F89427 +:101C5000DEBF0FBECDBFDF91CF911F9108950895D4 +:101C6000CF938091E4018823A1F0C091E900CF7067 +:101C70009091EC00892F817090FD80E8C82B109224 +:101C8000E9008091E80083FD0E94D90CCF70C093D9 +:101C9000E900CF91089590936901809368010895B8 +:101CA000E0916801F0916901309721F00190F08195 +:101CB000E02D099480E00895E0916801F0916901B8 +:101CC000309721F00280F381E02D09940895E0918E +:101CD0006801F0916901309721F00480F581E02DD1 +:101CE00009940895209166013091670128173907FA +:101CF00071F09093670180936601E0916801F09123 +:101D00006901309721F00680F781E02D099408954C +:101D100020916401309165012817390771F0909383 +:101D2000650180936401E0916801F0916901309749 +:101D300021F00084F185E02D0994089508950C9414 +:101D40009E0E0E945C1A0E940E040C94221BCF92DD +:101D5000DF92EF92FF920F931F93CF93DF93CDB754 +:101D6000DEB72B970FB6F894DEBF0FBECDBF0E9433 +:101D700026048BE6C82E81E0D82E00E010E0E02E8D +:101D8000802F0E941C05F60141916F01F82EF42668 +:101D9000B1F40F5F1F4F0E30110589F78FEF898364 +:101DA0008A831B820E94651A8160782F9D838C83B1 +:101DB00049815A816B818D810E944A0F40C0909168 +:101DC000CC0191FF04C08B870E9422058B8520E007 +:101DD00030E04F2D50E0922FBA01022E02C07595CF +:101DE00067950A94E2F760FF24C02E83EF8221E01A +:101DF00030E0690102C0CC0CDD1C9A95E2F790E05E +:101E00008C219D21892B09F420E028870E94651AE6 +:101E10008160782F9A8789874E815F8168858A855E +:101E20000E944A0FF801E559FE4F8081C826C08202 +:101E300006C02F5F3F4F2630310569F6AACF0E94BA +:101E4000091E0E94500E90916A018917A1F00E940C +:101E5000500E80936A012B960FB6F894DEBF0FBE2A +:101E6000CDBFDF91CF911F910F91FF90EF90DF9049 +:101E7000CF900C9446072B960FB6F894DEBF0FBE9A +:101E8000CDBFDF91CF911F910F91FF90EF90DF9029 +:101E9000CF900895CF93DF93CDB7DEB72B970FB6D2 +:101EA000F894DEBF0FBECDBF4F83588769877A870E +:101EB0008B87DE01119686E0FD0111928A95E9F784 +:101EC00085E0FE01379601900D928A95E1F74981F0 +:101ED0005A816B817C818D819E810E944D162B964B +:101EE0000FB6F894DEBF0FBECDBFDF91CF9108953E +:101EF000CF93C82F882309F4C1C0823859F40E94B7 +:101F0000500E81FDBBC089E30E94EA180E94A2190D +:101F100089E30CC0833879F40E94500E80FDAEC076 +:101F200083E50E94EA180E94A21983E50E942919FC +:101F3000CF910C94A219843859F40E94500E82FD5E +:101F40009DC087E40E94EA180E94A21987E4EECFA0 +:101F50008CEF8C0F813A48F48C2F0E94492081111C +:101F60008DC08C2F0E94EA18E3CF80E28C0F88305E +:101F700048F4C77081E001C0880FCA95EAF70E9453 +:101F80006B19D6CF8BE58C0F833078F4C53A29F0E6 +:101F9000C63A31F083E890E005C081E890E002C0E5 +:101FA00082E890E0CF910C94720E88E58C0F83311B +:101FB00008F064C0C83A39F1C93A41F1CA3A49F166 +:101FC000CB3A51F1CC3A59F1CD3A61F1C03B69F1CC +:101FD000CE3A71F1CF3A79F1C13B81F1C23B89F13F +:101FE000C33B91F1C43B99F1C53BA1F1C63BA9F1BB +:101FF000C73BB1F1C83BB9F1C93BC1F1CA3BC9F11B +:1020000080E090E038C082EE90E035C089EE90E04C +:1020100032C08AEE90E02FC085EB90E02CC086EBBA +:1020200090E029C087EB90E026C08CEC90E023C0C4 +:102030008DEC90E020C083E891E01DC08AE891E03B +:102040001AC082E991E017C084E991E014C081E2EE +:1020500092E011C083E292E00EC084E292E00BC0F5 +:1020600085E292E008C086E292E005C087E292E055 +:1020700002C08AE292E0CF910C94880ECF9108952D +:10208000882309F44BC0823859F40E94500E81FF16 +:1020900045C089E30E94EA180E94A21989E30CC096 +:1020A000833871F40E94500E80FF38C083E50E948F +:1020B000EA180E94A21983E50E9429190C94A2191A +:1020C000843859F40E94500E82FF28C087E40E9491 +:1020D000EA180E94A21987E4EFCF9CEF980F913A7B +:1020E00058F390E2980F983050F4877091E001C057 +:1020F000990F8A95EAF7892F0E947119DFCF9BE526 +:10210000980F933020F480E090E00C94720E885A7F +:10211000833120F480E090E00C94880E08958823A9 +:1021200021F00E946B190C94A2190895882321F0C4 +:102130000E9471190C94A2190895BF92CF92DF9258 +:10214000EF92FF920F931F93CF93DF9300D000D0B5 +:1021500000D0CDB7DEB77C0185E0F701DE01119636 +:1021600001900D928A95E1F7F70183819481892B83 +:1021700009F4DDC2908181818F3F19F49F3F09F4FA +:10218000D6C2F7010281258122952F7099838A8317 +:1021900089819A812E830E94A918182FB92E0E9436 +:1021A000A8180E946F17EB2DE295EF704E2F50E0AC +:1021B000FA01E05AFF4F2E810C948D228B2D807FE7 +:1021C0009B2D9F70F92E882319F0F29480EFF8224E +:1021D000002349F0FF2009F457C28F2D0E947B197C +:1021E0000E94A21951C2812F0E944010FF2009F4C1 +:1021F0009EC28F2D0E94811926960FB6F894DEBFDD +:102200000FBECDBFDF91CF911F910F91FF90EF9047 +:10221000DF90CF90BF900C94A2193B2D307F8B2D77 +:102220008F70303211F08295807F112319F01130B8 +:1022300021F12CC00023B9F0222309F490C12130F0 +:1022400009F08DC126960FB6F894DEBF0FBECDBF44 +:10225000DF91CF911F910F91FF90EF90DF90CF9082 +:10226000BF900C948B19222319F0213009F45FC21E +:102270008E830E948E198E8186C1002321F0223028 +:1022800008F055C26CC1211152C27DC1002321F05A +:10229000222309F464C1F8C1222309F474C109C2DC +:1022A0008B2D86958695837019F08130D1F03FC2D1 +:1022B000002321F0812F9B2D937002C080E090E0DD +:1022C00026960FB6F894DEBF0FBECDBFDF91CF913B +:1022D0001F910F91FF90EF90DF90CF90BF900C94E3 +:1022E000720E002321F0812F9B2D937002C080E09D +:1022F00090E026960FB6F894DEBF0FBECDBFDF91FB +:10230000CF911F910F91FF90EF90DF90CF90BF90F2 +:102310000C94880E812F002319F00E94111D02C019 +:102320000E94791D26960FB6F894DEBF0FBECDBF72 +:10233000DF91CF911F910F91FF90EF90DF90CF90A1 +:10234000BF900C94FE1D8B2D837009F075C0011198 +:10235000EEC1812F829586958770880F880F912F07 +:102360009F70C92ED12CE12CF12C082E04C0CC0C6E +:10237000DD1CEE1CFF1C0A94D2F714FF12C00FE004 +:1023800010E020E030E004C0000F111F221F331FB7 +:102390008A95D2F7C901B80160957095809590959E +:1023A00003C060E070E0CB014B2D4695469543702D +:1023B0004230C1F060F56C297D298E299F2941307A +:1023C00051F126960FB6F894DEBF0FBECDBFDF9158 +:1023D000CF911F910F91FF90EF90DF90CF90BF9022 +:1023E0000C9496176C297D298E299F2926960FB665 +:1023F000F894DEBF0FBECDBFDF91CF911F910F913B +:10240000FF90EF90DF90CF90BF900C94B2170E9496 +:102410009617C701B60126960FB6F894DEBF0FBE19 +:10242000CDBFDF91CF911F910F91FF90EF90DF9083 +:10243000CF90BF900C947A17002319F08B2D8170E8 +:1024400001C08695882309F472C1812F82958695F3 +:102450008770880F880F912F9F70C92ED12CE12C87 +:10246000F12C082E04C0CC0CDD1CEE1CFF1C0A94C1 +:10247000D2F714FF12C00FE010E020E030E004C0FB +:10248000000F111F221F331F8A95D2F7C901B8010F +:10249000609570958095909503C060E070E0CB01E9 +:1024A0004B2D4695469543704230C1F060F56C293E +:1024B0007D298E299F29413051F126960FB6F89437 +:1024C000DEBF0FBECDBFDF91CF911F910F91FF9067 +:1024D000EF90DF90CF90BF900C9470186C297D29FD +:1024E0008E299F2926960FB6F894DEBF0FBECDBF6A +:1024F000DF91CF911F910F91FF90EF90DF90CF90E0 +:10250000BF900C948C180E947018C701B6012696D3 +:102510000FB6F894DEBF0FBECDBFDF91CF911F91F4 +:102520000F91FF90EF90DF90CF90BF900C945418D4 +:10253000103FD1F118F4103E50F4A1C0123F09F43D +:1025400063C008F44CC0133F09F473C098C01F70F7 +:102550008B2D8F710023A1F00E94ED17812F2696FD +:102560000FB6F894DEBF0FBECDBFDF91CF911F91A4 +:102570000F91FF90EF90DF90CF90BF900C948F1051 +:102580000E940E18812F26960FB6F894DEBF0FBE5C +:10259000CDBFDF91CF911F910F91FF90EF90DF9012 +:1025A000CF90BF900C9496100023A9F02111BFC0CA +:1025B0008B2D8F7126960FB6F894DEBF0FBECDBF60 +:1025C000DF91CF911F910F91FF90EF90DF90CF900F +:1025D000BF900C943318223008F0A9C0E9CF002333 +:1025E000A9F08B2D8F7126960FB6F894DEBF0FBE23 +:1025F000CDBFDF91CF911F910F91FF90EF90DF90B2 +:10260000CF90BF900C94ED17002359F38B2D8F7151 +:1026100026960FB6F894DEBF0FBECDBFDF91CF91E7 +:102620001F910F91FF90EF90DF90CF90BF900C948F +:102630000E18002399F08B2D8F7126960FB6F89403 +:10264000DEBF0FBECDBFDF91CF911F910F91FF90E5 +:10265000EF90DF90CF90BF900C94D81726960FB6CE +:10266000F894DEBF0FBECDBFDF91CF911F910F91C8 +:10267000FF90EF90DF90CF90BF900C94CE17002387 +:10268000A9F0222309F4ADCF812F26960FB6F89436 +:10269000DEBF0FBECDBFDF91CF911F910F91FF9095 +:1026A000EF90DF90CF90BF900C94780F222309F425 +:1026B000ADCF812F26960FB6F894DEBF0FBECDBFEB +:1026C000DF91CF911F910F91FF90EF90DF90CF900E +:1026D000BF900C9440104B2D4F70612FC7010E948A +:1026E000AE0226960FB6F894DEBF0FBECDBFDF91C7 +:1026F000CF911F910F91FF90EF90DF90CF90BF90FF +:102700000C94F2164B2D4F70612FC70126960FB611 +:10271000F894DEBF0FBECDBFDF91CF911F910F9117 +:10272000FF90EF90DF90CF90BF900C94E30526963A +:102730000FB6F894DEBF0FBECDBFDF91CF911F91D2 +:102740000F91FF90EF90DF90CF90BF9008950E947F +:1027500088190E945D190E94A2190E94AE1E0E9453 +:10276000FE1D80E090E00E94720E80E090E00C94EC +:10277000880E0E9478190C94A7130E94A918292F7B +:1027800022952F702C3030F42A3048F42250223019 +:1027900078F405C02C3041F02F3031F009C0803E74 +:1027A00048F0803F29F406C093FB882780F90895FC +:1027B00080E0089581E00895CF93DF9300D000D0AA +:1027C0001F92CDB7DEB70F900F900F900F900F9024 +:1027D000DF91CF910895CF93DF9300D000D000D048 +:1027E000CDB7DEB726960FB6F894DEBF0FBECDBFCD +:1027F000DF91CF9108951F93CF93DF93C09179011B +:1028000016E080917A01C81799F0D0E01C9FF00182 +:102810001D9FF00D1124E558FE4F408151816281CA +:102820007381848195810E94EB132196C770E9CF53 +:10283000DF91CF911F9108954091AB015091AC0170 +:102840006091AD017091AE018091AF019091B001A6 +:102850000C94EB138091B00182958F7009F054C0F5 +:102860008091AD01882309F44FC080917901A09136 +:102870007A014091AE015091AF016091AB0170912E +:10288000AC01B6E08A1709F43FC090E0411551054C +:10289000C1F17F3F11F46F3FA1F1B89FF001B99FE3 +:1028A000F00D1124E558FE4F218127132AC0208105 +:1028B000261327C02281211124C0238134812417AB +:1028C000350710F421503109241B350B283C310504 +:1028D000C0F42091B0012F7020612093B00126E058 +:1028E000289FF001299FF00D1124E058FE4F8081B0 +:1028F0008F70806180838BEA91E00E949D100C9420 +:10290000FB1301968770BECF0895CF92DF92EF92AE +:10291000FF920F931F93CF93DF93CDB7DEB76297EC +:102920000FB6F894DEBF0FBECDBF8C0185E0F80175 +:10293000DE011D9601900D928A95E1F7D8014C9128 +:1029400011965C91119712966C918091AE019091C5 +:10295000AF01009709F475C13091AB017091AC01E2 +:102960007F3F19F43F3F09F46CC1F801C380D48064 +:10297000E090AD01EE2009F4BEC02091B001C81670 +:10298000D90628F0D601A81BB90BCD0104C080954B +:1029900090958C0D9D1DFF24F394883C910578F053 +:1029A000F12C207F09F0C4C07C2DD98AC88A89897E +:1029B0000E94DC138BEA91E00E949D10AFC0822F31 +:1029C000807F09F045C0571313C0431311C0611134 +:1029D0000FC02F7020612093B0010E941C148BEA5D +:1029E00091E00E949D108091B001F80185832EC076 +:1029F000CD2819F15F3F11F44F3FF9F0F62E611128 +:102A00001CC08091790120917A0136E0821709F487 +:102A10005BC090E0389FF001399FF00D1124E5581C +:102A2000FE4F7181571306C07081471303C0728136 +:102A3000711103C001968770E9CFF62E662309F461 +:102A40001CC18091B00181608093B001F12C15C14F +:102A5000571309C0431307C0611105C08091B0012D +:102A6000F8018583C8C04D875E878D859E856A8BFA +:102A70000E94BD136A898823D1F16623C1F1209198 +:102A8000B001822F82958F7090E0029774F0809150 +:102A9000AB019091AC0198878F831986DB86CA863B +:102AA0002C87CE0107960E949D1086E0F801ABEAC4 +:102AB000B1E001900D928A95E1F70E942A140E94DC +:102AC0001C14FF24F394D9C04D875E878D859E85A5 +:102AD0000E94A918292F22952F70223008F0C1C01A +:102AE0009F7009F0BBC0805E883008F4C6C0C80182 +:102AF0000E949D10E6CFC816D90608F453C0F6010F +:102B0000E81BF90BCF01883C910508F450C0F12C6B +:102B10007C2DD98AC88A89890E94DC13EBEAF1E00E +:102B200086E0DF011D928A95E9F70E941C14A5C07A +:102B3000571314C0431312C0611110C08091B0012B +:102B4000F8018583C8010E949D1086E0EBEAF1E060 +:102B5000DF011D928A95E9F7FE2C8FC04D875E87B5 +:102B60008D859E856A8B0E94BD136A89882309F42E +:102B7000BECF662309F4BBCF2091B001822F82958E +:102B80008F7090E002970CF490CF8091AB01909100 +:102B9000AC019A8389831B82DD82CC822E83CE0195 +:102BA000019681CF809590958C0D9D1DACCFF62E12 +:102BB000662309F49CCF571333C0431331C02091CF +:102BC000B00120FD24C0822F82958F70482F50E0E5 +:102BD00041155105E1F0D80115962C9315974F300A +:102BE000510549F08F5F982F9295907F822F8F70BB +:102BF000892B15968C93C8010E949D1086E0F801E0 +:102C0000ABEAB1E001900D928A95E1F78ECF86E0B4 +:102C1000F801ABEAB1E001900D928A95E1F72DC081 +:102C20004D875E878D859E850E94BD1381113DCFA6 +:102C30008091B00181608093B001C8010E949D1015 +:102C40001CC0662309F453CF4D875E878D859E8512 +:102C50000E94BD13882309F44ACF27CF811143CFA7 +:102C60000CC0243008F043CF9F7009F43CCFD8014A +:102C700015969C91907F09F036CF8F2D62960FB6F6 +:102C8000F894DEBF0FBECDBFDF91CF911F910F91A2 +:102C9000FF90EF90DF90CF9008951F93CF93DF9335 +:102CA000CDB7DEB72C970FB6F894DEBF0FBECDBF01 +:102CB0004F83588769877A878B879C87CE010796D1 +:102CC0000E948514882371F08A859B85892B09F4DD +:102CD00041C088858F3F09F065C08F818F3F09F023 +:102CE00061C038C086E0FE013796DE011196019082 +:102CF0000D928A95E1F76A857B856115710551F121 +:102D0000FF81E885EF3F11F4FF3F21F120917A0127 +:102D100030E0C9010196877099274091790150E010 +:102D20008417950709F447C0F983EA837D836C8390 +:102D300096E0929FD001939FB00D1124A558BE4FED +:102D4000FE01319601900D929A95E1F780937A01F8 +:102D50000E94FB1316E08091790190917A01891706 +:102D6000B9F1189FC001112485589E4F0E94851407 +:102D7000882371F1E09179011E9FF0011124E5583B +:102D8000FE4F4081518162817381848195810E94CF +:102D9000EB138091790190E00196877099278093D9 +:102DA0007901D9CF4F81588569857A858B859C8536 +:102DB0000E94EB13CFCF0E94B91310927A011092A8 +:102DC0007901EBEAF1E086E0DF011D928A95E9F7EF +:102DD0002C960FB6F894DEBF0FBECDBFDF91CF911A +:102DE0001F910895EF92FF920F931F93CF93DF935C +:102DF0008C01892B09F46CC0F12CEE24E394E801DA +:102E00002196F8018491843740F4843008F051C051 +:102E1000813081F0823019F15BC0853709F444C0FC +:102E2000A8F19CE7980F903708F052C08F770E9466 +:102E3000401041C00E5F1F4FFE01849190E2980F39 +:102E4000983050F48770FE2D01C0FF0F8A95EAF785 +:102E50008F2F0E947B1914C00E94780F2DC00E5F27 +:102E60001F4FFE01849190E2980F983060F48770B4 +:102E7000FE2D01C0FF0F8A95EAF78F2F0E9481195E +:102E80000E94A21919C00E94401016C00E5F1F4F69 +:102E9000FE01C491CC2381F08FE99FE00197F1F707 +:102EA00000C00000C150F6CF0E5F1F4FFE01F4902E +:102EB00003C00E94780F8E018F2D882309F49FCFC5 +:102EC000EFE9FFE03197F1F700C000008150F5CF46 +:102ED000DF91CF911F910F91FF90EF90089508958A +:102EE0006093B5017093B6018093B7019093B801D8 +:102EF0000C94A7130F931F930091B5011091B60185 +:102F00002091B7013091B801DC01CB01802B912BCE +:102F1000A22BB32B8093B5019093B601A093B70178 +:102F2000B093B8011F910F910C94A7130F931F93A7 +:102F30000091B5011091B6012091B7013091B8010F +:102F4000DC01CB0180239123A223B3238093B5011D +:102F50009093B601A093B701B093B8011F910F9160 +:102F60000C94A7130F931F930091B5011091B60114 +:102F70002091B7013091B801DC01CB018027912766 +:102F8000A227B3278093B5019093B601A093B70110 +:102F9000B093B8011F910F910C94A7131092B10137 +:102FA0001092B2011092B3011092B4010C94A713C5 +:102FB00041E050E060E070E004C0440F551F661F20 +:102FC000771F8A95D2F74093B1015093B201609375 +:102FD000B3017093B4010C94A71341E050E060E09A +:102FE00070E004C0440F551F661F771F8A95D2F703 +:102FF0008091B1019091B201A091B301B091B4015F +:10300000482B592B6A2B7B2B4093B1015093B20173 +:103010006093B3017093B4010C94A71341E050E0A6 +:1030200060E070E004C0440F551F661F771F8A954B +:10303000D2F740955095609570958091B10190912F +:10304000B201A091B301B091B401482359236A237E +:103050007B234093B1015093B2016093B30170930D +:10306000B4010C94A71341E050E060E070E004C0AC +:10307000440F551F661F771F8A95D2F78091B101C3 +:103080009091B201A091B301B091B40148275927A2 +:103090006A277B274093B1015093B2016093B3013B +:1030A0007093B4010C94A7130F931F930091B10177 +:1030B0001091B2012091B3013091B401DC01CB0138 +:1030C000802B912BA22BB32B8093B1019093B20153 +:1030D000A093B301B093B4011F910F910C94A71367 +:1030E0000F931F930091B1011091B2012091B30190 +:1030F0003091B401DC01CB0180239123A223B323BF +:103100008093B1019093B201A093B301B093B40145 +:103110001F910F910C94A7130F931F930091B1016E +:103120001091B2012091B3013091B401DC01CB01C7 +:1031300080279127A227B3278093B1019093B201F2 +:10314000A093B301B093B4011F910F910C94A713F6 +:103150000895CF92DF92EF92FF920F931F93CF9338 +:10316000DF938C01C090B101D090B201E090B30127 +:10317000F090B4018091B5019091B601A091B70192 +:10318000B091B801C82AD92AEA2AFB2ACFE1D0E0B7 +:10319000D701C6010C2E04C0B695A79597958795C3 +:1031A0000A94D2F780FF07C0B8018C2F0E9407064F +:1031B0008130910531F4219758F7B80180E00E94E1 +:1031C0000706DF91CF911F910F91FF90EF90DF9055 +:1031D000CF90089590910C019923F1F090910D01F9 +:1031E0009923D1F0982F9695969596959F3080F5D6 +:1031F000E0910E01F0910F01E90FF11D877021E0C0 +:1032000030E0A90102C0440F551F8A95E2F7CA01B8 +:103210009181892B8183089520910E0130910F01B6 +:10322000F90132969FEF40E05191851789F09F3F59 +:1032300019F4511101C0942F4F5F4E30A9F79F3FF1 +:1032400039F0F901E90FF11D97FDFA958283089590 +:10325000089590910C019923F9F090910D01992313 +:10326000D9F0982F9695969596959F3028F5E091F0 +:103270000E01F0910F01E90FF11D877021E030E0A0 +:10328000A90102C0440F551F8A95E2F7CA01809533 +:10329000918189238183089520910E0130910F013E +:1032A000F9013296205F3F4F9081891301C010824F +:1032B0003196E217F307C1F7089581E090E0E091BD +:1032C0000E01F0910F01E80FF91F10820196803175 +:1032D0009105A9F708959091CB01892B8093CB019B +:1032E000089580959091CB0189238093CB01089517 +:1032F0001092CB0108959091CA01892B8093CA0145 +:10330000089580959091CA0189238093CA010895F8 +:103310001092CA0108958093B90108951092B901DD +:10332000089580910E0190910F01FC0131969C014E +:10333000205F3F4F80E0919191118F5FE217F3077B +:10334000D1F70895E0910E01F0910F018091CB012A +:103350008083E0910E01F0910F0190818091CA016C +:10336000892B80838091B901882361F0E0910E015F +:10337000F0910F019081892B80830E949119811116 +:103380001092B90180910E0190910F010C945C0E86 +:10339000CF92DF92EF92FF926C01EE24FF24C114D2 +:1033A000D104E104F10421F0C701B60120E101C01C +:1033B00020E0C72ED82EE92EFF24C114D104E10449 +:1033C000F10419F0285FC701B6016B017C0154E0DC +:1033D000F694E794D794C7945A95D1F7C114D104C1 +:1033E000E104F10419F02C5FC701B6016B017C0107 +:1033F00042E0F694E794D794C7944A95D1F7C11464 +:10340000D104E104F10419F02E5FC701B601DC011B +:10341000CB01B695A79597958795892B8A2B8B2BF2 +:1034200009F02F5F822FFF90EF90DF90CF900895EB +:103430008091E401843011F120E488E190E00FB63E +:10344000F894A895809360000FBE2093600083B726 +:10345000817F846083BF83B7816083BF78948895C0 +:1034600083B78E7F83BF0FB6F894A89580916000D4 +:10347000886180936000109260000FBE08950895E7 +:103480000C943F1ACF930E94401A0E9426040E9477 +:103490003F1AC0E08C2F0E941C05811104C0CF5F31 +:1034A000CE30C1F701C081E0CF9108950E94B913D9 +:1034B0000E94500E0C94460782E084BD93E095BDB7 +:1034C0009AEF97BD80936E0008952FB7F89480917E +:1034D000CD019091CE01A091CF01B091D0012FBF2D +:1034E0000895CF92DF92EF92FF920F931F932FB721 +:1034F000F8944091CD015091CE016091CF0170912F +:10350000D0012FBF6A017B01EE24FF248C0120E053 +:1035100030E0C016D106E206F30610F4415051091E +:103520009A01281B390BC9011F910F91FF90EF9051 +:10353000DF90CF9008951F920F920FB60F92112433 +:103540008F939F93AF93BF938091CD019091CE01C4 +:10355000A091CF01B091D0010196A11DB11D809322 +:10356000CD019093CE01A093CF01B093D001BF9134 +:10357000AF919F918F910F900FBE0F901F90189554 +:103580000E94480BF8942FEF87EA91E62150804083 +:103590009040E1F700C0000087E090EBDC018093F1 +:1035A000ED019093EE01A093EF01B093F0019CE048 +:1035B00088E10FB6F894A895809360000FBE9093B1 +:1035C0006000FFCFEF92FF920F931F93CF93DF9393 +:1035D000D82FC0E08C2F0E941C0500E010E0E82EE0 +:1035E000F12CC701002E02C0959587950A94E2F749 +:1035F00080FD06C00F5F1F4F0630110591F709C00F +:10360000602F7C2F80E00E94E4058D13F3CF81E0D2 +:1036100004C0CF5FCE30F1F680E0DF91CF911F91F3 +:103620000F91FF90EF900895CF93C82F8CE20E94E6 +:10363000E21A882321F08C2FCF910C94E21A80E0BB +:10364000CF910895CF930E94691C811102C00E94FE +:103650004F1CC5E6C15049F00E9426048FE39CE947 +:103660000197F1F700C00000F5CF89E20E94141B1A +:10367000811113C18AE20E94141B81110E944F1C08 +:1036800085E00E94141B81110E94C01A0E94741CC4 +:103690008093CC0187E00E94141B8823A9F18BE161 +:1036A0000E94141B882351F08091CC0181FB2227BA +:1036B00020F991E0922790FB81F90EC08EE00E94E4 +:1036C000141B882361F08091CC0182FB222720F912 +:1036D00091E0922790FB82F98093CC0115C080E1A4 +:1036E0000E94141B9091CC01882341F093FB222768 +:1036F00020F981E0822780FB93F904C0892F80950F +:1037000080FB90F99093CC018091CC010E94781CB1 +:103710000E94861C8093DE0180EE0E94141B882389 +:1037200041F08091DE01982F909590FB80F9809375 +:10373000DE0189E30E94141B882359F08091DE0189 +:1037400081FB222720F991E0922790FB81F9809359 +:10375000DE0182EE0E94141B882359F08091DE0165 +:1037600082FB222720F991E0922790FB82F9809337 +:10377000DE0186EE0E94141B882359F08091DE0141 +:1037800083FB222720F991E0922790FB83F9809315 +:10379000DE0183EE0E94141B882359F08091DE0124 +:1037A00084FB222720F991E0922790FB84F98093F3 +:1037B000DE0185E30E94141B882359F08091DE010D +:1037C00085FB222720F991E0922790FB85F98093D1 +:1037D000DE0181E30E94141B882359F08091DE01F1 +:1037E00086FB222720F991E0922790FB86F98093AF +:1037F000DE0181E10E94141B882359F08091DE01D3 +:1038000087FB222720F991E0922790FB87F980938C +:10381000DE018091DE010E948A1C8091DE0187FB1F +:10382000882780F980930D0187E20E94141BC82F1E +:103830008EE10E94141B8111C2608FE10E94141B53 +:103840008111C46080E20E94141B8111C86081E272 +:103850000E94141B8111C06182E20E94141B81111D +:10386000C06283E20E94141B8111C06484E20E9442 +:10387000141B882311F0C06802C0CC2329F08C2FC0 +:103880000E94811C6C2F03C00E947D1C682F70E079 +:1038900080E090E0CF910C947017CF9108956DEE79 +:1038A0007EEF80E090E00E94C32260E082E090E042 +:1038B0000E94B52260E083E090E00E94B52260E0C3 +:1038C00084E090E00E94B52260E085E090E00C94F6 +:1038D000B52280E090E00E94AF2221E08D3E9E4F15 +:1038E00009F020E0822F089582E090E00C94A72256 +:1038F000682F82E090E00C94B52283E090E00C9475 +:10390000A722682F83E090E00C94B52284E090E039 +:103910000C94A722682F84E090E00C94B52280914B +:10392000D30180FF0BC06091130185E0689FB00157 +:10393000112475956795759567952BC081FF09C012 +:103940006091130185E0689FB0011124759567951A +:1039500020C082FF07C06091130185E0689FB0011D +:10396000112417C09091D4019923D1F060911201D4 +:10397000961788F72091130185E0289F9001112464 +:10398000929FA001939F500D112470E0CA010E94E4 +:1039900079226038710540F46115710519F406C08B +:1039A00065E070E0862F08958FE7089581E008951F +:1039B0008091D30180FF08C06091110170E075957E +:1039C00067957595679521C081FF06C060911101CB +:1039D00070E07595679519C082FF04C06091110170 +:1039E00070E010C09091D401992399F0609110017A +:1039F0009617A0F780911101899FC001112470E0F2 +:103A00000E9479226038710540F46115710519F43E +:103A100006C061E070E0862F08958FE7089581E089 +:103A20000895803F21F40E948F1C819504C0813F3E +:103A300029F40E948F1C8093D7010895823F21F4BE +:103A40000E948F1C819504C0833F29F40E948F1C23 +:103A50008093D6010895893F19F40E94D81C05C0AF +:103A60008A3F31F40E94D81C81958093D801089533 +:103A70008B3F21F40E94D81C819504C08C3F29F40F +:103A80000E94D81C8093D9010895843F21F480912D +:103A9000D501816017C0853F21F48091D5018260F6 +:103AA00011C0863F21F48091D50184600BC0873F0F +:103AB00021F48091D501886005C0883F31F4809160 +:103AC000D50180618093D50108958D3F21F48091C7 +:103AD000D30181600BC08E3F21F48091D3018260BD +:103AE00005C08F3F29F48091D30184608093D30176 +:103AF0000895803F39F48091D70187FF6CC0109200 +:103B0000D70169C0813F29F48091D7011816BCF311 +:103B100062C09091D601823F29F497FF5CC0109259 +:103B2000D60159C0833F19F41916CCF354C0893F0C +:103B300041F48091D80118160CF04DC01092D801B4 +:103B40004AC08A3F29F48091D80187FF44C0F6CF4C +:103B50008B3F39F48091D90187FF3DC01092D90184 +:103B60003AC08C3F29F48091D9011816BCF333C0B8 +:103B7000843F21F48091D5018E7F17C0853F21F4C9 +:103B80008091D5018D7F11C0863F21F48091D501B0 +:103B90008B7F0BC0873F21F48091D501877F05C0C3 +:103BA000883F31F48091D5018F7E8093D50113C079 +:103BB0008D3F21F48091D3018E7F0BC08E3F21F485 +:103BC0008091D3018D7F05C08F3F29F48091D3016F +:103BD0008B7F8093D3018091D60181110EC080919B +:103BE000D70181110AC08091D801811106C080914E +:103BF000D901811102C01092D401089585ED91E0A0 +:103C00000E94670E0E94651A9093D2018093D101A1 +:103C100008951F93CF93DF938091D1019091D201AA +:103C20000E94711AAC019091D401992321F0209146 +:103C3000140130E006C0209115018AE0289F900110 +:103C400011244217530708F485C08091D601C09112 +:103C5000D701D091D8011091D901811107C0C111AC +:103C600075C0D11173C0111171C074C09F3F19F09C +:103C70009F5F9093D401181624F40E948F1C8093A8 +:103C8000D6018091D60187FF05C00E948F1C8195C7 +:103C90008093D6011C1624F40E948F1C8093D701B8 +:103CA0008091D70187FF05C00E948F1C819580936A +:103CB000D7016091D601662331F1C091D701CC23A1 +:103CC00011F1062E000C770B880B990B0E948021B6 +:103CD00023E333E343E35FE30E94E4210E944821AE +:103CE0006093D6016C2FCC0F770B880B990B0E9439 +:103CF000802123E333E343E35FE30E94E4210E9456 +:103D000048216093D7011D1624F40E94D81C80938B +:103D1000D8018091D80187FF05C00E94D81C8195E9 +:103D20008093D801111624F40E94D81C8093D901E5 +:103D30008091D90187FF05C00E94D81C819580938E +:103D4000D901DF91CF911F910C94FE1D9F3F09F087 +:103D50008FCFA0CFDF91CF911F910895E5EDF1E0D6 +:103D600085E0DF011D928A95E9F71092D401109247 +:103D7000D3010895833081F128F4813059F08230E5 +:103D8000D1F00895853009F449C0B8F1863009F4BE +:103D900056C0089580911501262F30E0280F311D5F +:103DA0002F3F310524F4680F6093150108958FEFBC +:103DB00080931501089580911401262F30E0280F7B +:103DC000311D2F3F310524F4680F609314010895CD +:103DD0008FEF80931401089580911301262F30E016 +:103DE000280F311D2F3F310524F4680F6093130114 +:103DF00008958FEF80931301089580911201262F6B +:103E000030E0280F311D2F3F310524F4680F6093F7 +:103E1000120108958FEF809312010895809111018E +:103E2000262F30E0280F311D2F3F310524F4680F75 +:103E30006093110108958FEF80931101089580918F +:103E40001001262F30E0280F311D2F3F310524F4BB +:103E5000680F6093100108958FEF8093100108950B +:103E6000833011F128F4813049F0823091F00895C7 +:103E7000853081F120F18630C1F1089580911501DE +:103E8000681720F4861B8093150108951092150180 +:103E9000089580911401681720F4861B8093140103 +:103EA000089510921401089580911301681720F469 +:103EB000861B809313010895109213010895809139 +:103EC0001201681720F4861B809312010895109246 +:103ED0001201089580911101681720F4861B8093C8 +:103EE0001101089510921101089580911001681731 +:103EF00020F4861B809310010895109210010895FC +:103F00000F931F938D3109F46BC008F03FC08E30C2 +:103F100009F47DC0C0F4873009F46EC068F48630BF +:103F200009F0AFC08091CC01817F8E7F8093CC015E +:103F300081E08093DB01A6C0883009F458C08B3043 +:103F400009F49BC09EC0863109F497C078F4803193 +:103F500009F470C0813109F094C00E94B9139091A6 +:103F60000D0181E0892780930D0187C0893109F413 +:103F700084C08B3109F085C08091CC0181FB222760 +:103F800020F991E0922790FB81F94AC0853309F42A +:103F90005BC048F4873209F457C008F45AC089322C +:103FA00009F452C06EC0833438F48A3308F067C015 +:103FB000883309F462C065C0833409F445C088348D +:103FC00009F05FC00E94B9130FEF13ED20E3015019 +:103FD00010402040E1F700C000000E94C01A4DC010 +:103FE0000E9402210E94500E0E94460746C00E9475 +:103FF000741C0E94861C41C09091CC01892F817055 +:1040000090FF12C0917F9E7F9093CC013BC0809126 +:10401000CC0182FB222720F991E0922790FB82F9C4 +:104020008093CC01992349F18091CC0181608093E8 +:10403000CC0123C08091CC0183FB222720F991E0A1 +:10404000922790FB83F9ECCF61E070E080E090E094 +:1040500010C08D5141E050E060E070E08A019B01AA +:1040600004C0000F111F221F331F8A95D2F7C90108 +:10407000B8010E9470170E94B91381E003C08953F0 +:10408000E9CF80E01F910F91089580E008950C948E +:104090004520CF93C82F8091DB01813079F018F053 +:1040A0008230E9F187C0E0910E01F0910F0180812B +:1040B000813169F0823209F07FC009C0E0910E01C0 +:1040C000F0910F018081813111F0823261F48C2FE7 +:1040D0000E944720811104C08C2F0E94801F1DC0A8 +:1040E00081E090E01AC08C2F0E944520811114C0FD +:1040F000C43179F048F4CB3079F0C03109F060C0B8 +:1041000082E08093DB0108C0C93219F0C83321F086 +:1041100057C01092DB0154C081E0817053C0C93296 +:1041200089F118F5C43171F1A8F4C73009F046C01F +:104130008AE08093150194E19093140193E09093A9 +:1041400013018093120188E08093110188E280932B +:10415000100134C0CE51C63088F5EC2FF0E0E65D9A +:10416000FE4F80818093DA0129C0CE34E9F020F43B +:10417000CB3421F56AE013C0C13579F0C235F1F4D2 +:1041800061E00DC08091DA01882319F01092DA0104 +:1041900015C081E08093DB0115C061E006C080910D +:1041A000DA010E94BA1E0AC06AE08091DA010E9418 +:1041B000301F04C01092DB0180E004C081E002C027 +:1041C00080E0ABCFCF910895E1E8F0E08081886096 +:1041D00080838081816080838FB7F89493E090938F +:1041E000890090ED909388008FBF0895EFE6F0E08E +:1041F0008081826080830895EFE6F0E080818D7F8A +:1042000080830895EFE6F0E0908182E08927808343 +:1042100008951F920F920FB60F9211242F933F9380 +:104220004F935F936F937F938F939F93AF93BF93BE +:10423000EF93FF938091DC019091DD0101969093C3 +:10424000DD018093DC01811103C082E00E944607FA +:10425000E091DD01E695E695F0E0E657FB4FE4914D +:104260008091DC018E1303C080E00E944607FF911D +:10427000EF91BF91AF919F918F917F916F915F91DE +:104280004F913F912F910F900FBE0F901F90189557 +:104290000E944F216894B1110C94DE2108950E9470 +:1042A000C32188F09F5798F0B92F9927B751B0F0E4 +:1042B000E1F0660F771F881F991F1AF0BA95C9F7AA +:1042C00014C0B13091F00E94DD21B1E008950C944A +:1042D000DD21672F782F8827B85F39F0B93FCCF3FD +:1042E000869577956795B395D9F73EF49095809527 +:1042F000709561957F4F8F4F9F4F0895E89409C047 +:1043000097FB3EF490958095709561957F4F8F4F08 +:104310009F4F9923A9F0F92F96E9BB279395F6951E +:10432000879577956795B795F111F8CFFAF4BB0F9C +:1043300011F460FF1BC06F5F7F4F8F4F9F4F16C000 +:10434000882311F096E911C0772321F09EE8872F8A +:10435000762F05C0662371F096E8862F70E060E046 +:104360002AF09A95660F771F881FDAF7880F9695BF +:10437000879597F9089557FD9058440F551F59F0A8 +:104380005F3F71F04795880F97FB991F61F09F3F42 +:1043900079F087950895121613061406551FF2CF6B +:1043A0004695F1DF08C0161617061806991FF1CFBB +:1043B00086957105610508940895E894BB276627E2 +:1043C0007727CB0197F908950E94F7210C94682272 +:1043D0000E945A2238F00E94612220F0952311F0A9 +:1043E0000C9451220C94572211240C94DE210E942B +:1043F000BB2170F3959FC1F3950F50E0551F629F4D +:10440000F001729FBB27F00DB11D639FAA27F00D2D +:10441000B11DAA1F649F6627B00DA11D661F829F54 +:104420002227B00DA11D621F739FB00DA11D621F39 +:10443000839FA00D611D221F749F3327A00D611D56 +:10444000231F849F600D211D822F762F6A2F112438 +:104450009F5750409AF0F1F088234AF0EE0FFF1F6B +:10446000BB1F661F771F881F91505040A9F79E3FC2 +:10447000510580F00C9451220C94DE215F3FE4F34F +:10448000983ED4F3869577956795B795F795E79518 +:104490009F5FC1F7FE2B880F911D9695879597F921 +:1044A000089597F99F6780E870E060E008959FEFB6 +:1044B00080EC089500240A941616170618060906BB +:1044C000089500240A94121613061406050608958A +:1044D000092E0394000C11F4882352F0BB0F40F412 +:1044E000BF2B11F460FF04C06F5F7F4F8F4F9F4F52 +:1044F000089597FB072E16F4009407D077FD09D096 +:104500000E94932207FC05D03EF4909581959F4F21 +:104510000895709561957F4F0895EE0FFF1F0590E8 +:10452000F491E02D0994AA1BBB1B51E107C0AA1FFF +:10453000BB1FA617B70710F0A61BB70B881F991F44 +:104540005A95A9F780959095BC01CD010895F999E8 +:10455000FECF92BD81BDF89A992780B50895A8E154 +:10456000B0E042E050E00C94CA22262FF999FECF29 +:104570001FBA92BD81BD20BD0FB6F894FA9AF99A80 +:104580000FBE019608950E94B522272F0C94B622E3 +:10459000DC01CB01FC01F999FECF06C0F2BDE1BD03 +:1045A000F89A319600B40D9241505040B8F70895F2 +:0445B000F894FFCFAD +:1045B40020024707D707B2077E074A070101BA015D +:1045C40028080A03140A3F4D36394B04FE03C80376 +:1045D4008F0322033B0354036D0301020304050606 +:0445E40007080900BB +:00000001FF diff --git a/keyboard/ergodox_ez/keymaps/keymap_kines-ish_README.md b/keyboard/ergodox_ez/keymaps/kines-ish/readme.md similarity index 100% rename from keyboard/ergodox_ez/keymaps/keymap_kines-ish_README.md rename to keyboard/ergodox_ez/keymaps/kines-ish/readme.md diff --git a/keyboard/ergodox_ez/keymaps/mpiechotka/keymap.c b/keyboard/ergodox_ez/keymaps/mpiechotka/keymap.c new file mode 100644 index 0000000000..0c4f85a3da --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/mpiechotka/keymap.c @@ -0,0 +1,276 @@ +#include "ergodox_ez.h" +#include "debug.h" +#include "action_layer.h" +#include "keymap_extras/keymap_colemak.h" + +enum { + BASE = 0, + BASE_CM, + SYMB, + MACR +}; + +enum { + LWIN = 1, + PC1, + PC2, + PC3, + PC4, + DL_BASE, + DL_BASE_CM, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Keymap 0a: Basic layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | = | 1 | 2 | 3 | 4 | 5 | LEFT | | RIGHT| 6 | 7 | 8 | 9 | 0 | - | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | Del | Q | W | F | P | G | L1 | | L1 | J | L | U | Y | ; | \ | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | Esc | A | R | S | T | D |------| |------| H | N | E | I | O | ' | + * |--------+------+------+------+------+------| = | | - |------+------+------+------+------+--------| + * | LShift |Z/Ctrl| X | C | V | B | | | | K | M | , | . |//Ctrl| RShift | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * |Grv/L1| '" |AltShf| Left | Right| | Up | Down | [ | ] | ~L1 | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | LAlt | LGui | | LAlt | RAlt | + * ,------|------|------| |------+--------+------. + * | |Backsp| Home | | PgUp | | | + * | Space|ace/ |------| |------| Tab/ |Enter/| + * | /Shft|Ctrl | 1) | | 2) | Ctrl |Shift | + * `--------------------' `----------------------' + * + * 1) End/L1 + * 2) PgDown/L2 + */ +[BASE] = KEYMAP( // layer 0 : default + // left hand + KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LEFT, + KC_DELT, KC_Q, KC_W, KC_F, KC_P, KC_G, TG(SYMB), + KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_EQL, + LT(SYMB,KC_GRV),KC_QUOT, LALT(KC_LSFT), KC_LEFT, KC_RGHT, + KC_LALT, F(LWIN), + KC_HOME, + SFT_T(KC_SPC),CTL_T(KC_BSPC),LT(SYMB, KC_END), + // right hand + KC_RGHT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + TG(SYMB), KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSLS, + KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, + KC_MINS, KC_K, KC_M, KC_COMM,KC_DOT, CTL_T(KC_SLSH), KC_RSFT, + KC_UP, KC_DOWN,KC_LBRC,KC_RBRC, LT(SYMB,KC_NO), + KC_LALT, KC_RALT, + KC_PGUP, + LT(MACR,KC_PGDN),CTL_T(KC_TAB), SFT_T(KC_ENT) + ), +/* Keymap 0b: Basic layer (Colemak keycodes or QWERTY) + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | = | 1 | 2 | 3 | 4 | 5 | LEFT | | RIGHT| 6 | 7 | 8 | 9 | 0 | - | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | Del | Q | W | F | P | G | L1 | | L1 | J | L | U | Y | ; | \ | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | Esc | A | R | S | T | D |------| |------| H | N | E | I | O | ' | + * |--------+------+------+------+------+------| = | | - |------+------+------+------+------+--------| + * | LShift |Z/Ctrl| X | C | V | B | | | | K | M | , | . |//Ctrl| RShift | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * |Grv/L1| '" |AltShf| Left | Right| | Up | Down | [ | ] | ~L1 | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | LAlt | LGui | | LAlt | RAlt | + * ,------|------|------| |------+--------+------. + * | |Backsp| Home | | PgUp | | | + * | Space|ace/ |------| |------| Tab/ |Enter/| + * | /Shft|Ctrl | 1) | | 2) | Ctrl |Shift | + * `--------------------' `----------------------' + * + * 1) End/L1 + * 2) PgDown/L2 + */ +[BASE_CM] = KEYMAP( // layer 0 : default + // left hand + KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LEFT, + KC_DELT, CM_Q, CM_W, CM_F, CM_P, CM_G, TG(SYMB), + KC_ESC, CM_A, CM_R, CM_S, CM_T, CM_D, + KC_LSFT, CM_Z, CM_X, CM_C, CM_V, CM_B, KC_EQL, + LT(SYMB,KC_GRV),KC_QUOT, LALT(KC_LSFT), KC_LEFT, KC_RGHT, + KC_LALT, F(LWIN), + KC_HOME, + SFT_T(KC_SPC),CTL_T(KC_BSPC),LT(SYMB, KC_END), + // right hand + KC_RGHT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + TG(SYMB), CM_J, CM_L, CM_U, CM_Y, KC_P, /*CM_SCLN*/ KC_BSLS, + CM_H, CM_N, CM_E, CM_I, CM_O, KC_QUOT, + KC_MINS, CM_K, CM_M, CM_COMM,CM_DOT, CTL_T(CM_SLSH), KC_RSFT, + KC_UP, KC_DOWN,KC_LBRC,KC_RBRC, LT(SYMB,KC_NO), + KC_LALT, KC_RALT, + KC_PGUP, + LT(MACR,KC_PGDN),CTL_T(KC_TAB), SFT_T(KC_ENT) + ), +/* Keymap 1: Symbol Layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | ! | @ | { | } | | | | | | Up | 7 | 8 | 9 | * | F12 | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | # | $ | ( | ) | ` |------| |------| Down | 4 | 5 | 6 | + | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | \ | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | | . | 0 | = | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// SYMBOLS +[SYMB] = KEYMAP( + // left hand + KC_TRNS,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS, + KC_TRNS,KC_EXLM,KC_AT, KC_LCBR,KC_RCBR,KC_PIPE,KC_TRNS, + KC_TRNS,KC_HASH,KC_DLR, KC_LPRN,KC_RPRN,KC_GRV, + KC_TRNS,KC_PERC,KC_CIRC,KC_LBRC,KC_RBRC,KC_TILD,KC_TRNS, + KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, + KC_TRNS,KC_TRNS, + KC_TRNS, + KC_TRNS,KC_TRNS,KC_TRNS, + // right hand + KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + KC_TRNS, KC_UP, KC_7, KC_8, KC_9, KC_ASTR, KC_F12, + KC_DOWN, KC_4, KC_5, KC_6, KC_PLUS, KC_TRNS, + KC_TRNS, KC_AMPR, KC_1, KC_2, KC_3, KC_BSLS, KC_TRNS, + KC_TRNS,KC_DOT, KC_0, KC_EQL, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS +), +/* Keymap 2: Macros + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | DLa | DLb | | | | | | | | | | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | PC1 | PC2 | PC3 | PC4 | |------| |------| | | | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | | | | | | | | | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// MACROS +[MACR] = KEYMAP( + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, F(DL_BASE),F(DL_BASE_CM),KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, F(PC1), F(PC2), F(PC3), F(PC4), KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_TRNS,KC_TRNS, + KC_TRNS, + KC_TRNS,KC_TRNS,KC_TRNS, + // right hand + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS +), +}; + +const uint16_t PROGMEM fn_actions[] = { + [LWIN] = ACTION_MACRO(LWIN), + [PC1] = ACTION_MACRO(PC1), + [PC2] = ACTION_MACRO(PC2), + [PC3] = ACTION_MACRO(PC3), + [PC4] = ACTION_MACRO(PC4), + [DL_BASE] = ACTION_DEFAULT_LAYER_SET(BASE), + [DL_BASE_CM] = ACTION_DEFAULT_LAYER_SET(BASE_CM) +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + switch(id) { + case 0: + if (record->event.pressed) { + register_code(KC_RSFT); + } else { + unregister_code(KC_RSFT); + } + break; + case LWIN: + if (record->event.pressed) { + register_code(KC_RSFT); + unregister_code(KC_RSFT); + register_code(KC_LGUI); + } else { + unregister_code(KC_LGUI); + } + break; + case PC1: + if (!record->event.pressed) { + return MACRO(T(SLCK), W(50), T(SLCK), W(50), T(1), W(50), T(ENT), END); + } + break; + case PC2: + if (!record->event.pressed) { + return MACRO(T(SLCK), W(50), T(SLCK), W(50), T(2), W(50), T(ENT), END); + } + break; + case PC3: + if (!record->event.pressed) { + return MACRO(T(SLCK), W(50), T(SLCK), W(50), T(3), W(50), T(ENT), END); + } + break; + case PC4: + if (!record->event.pressed) { + return MACRO(T(SLCK), W(50), T(SLCK), W(50), T(4), W(50), T(ENT), END); + } + break; + } + return MACRO_NONE; +} + +// Runs just one time when the keyboard initializes. +void matrix_init_user(void) { + +}; + +// Runs constantly in the background, in a loop. +void matrix_scan_user(void) { + + uint8_t layer = biton32(layer_state); + + ergodox_board_led_off(); + ergodox_right_led_1_off(); + ergodox_right_led_2_off(); + ergodox_right_led_3_off(); + switch (layer) { + // TODO: Make this relevant to the ErgoDox EZ. + case SYMB: + ergodox_right_led_1_on(); + break; + case MACR: + ergodox_right_led_2_on(); + break; + default: + // none + break; + } +}; diff --git a/keyboard/ergodox_ez/keymaps/mpiechotka/mpiechotka.hex b/keyboard/ergodox_ez/keymaps/mpiechotka/mpiechotka.hex new file mode 100644 index 0000000000..287cfcd6eb --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/mpiechotka/mpiechotka.hex @@ -0,0 +1,1144 @@ +:100000000C94ED020C9434030C9434030C943403DC +:100010000C9434030C9434030C9434030C94340384 +:100020000C9434030C9434030C947D0C0C944F0DFD +:100030000C9434030C9434030C9434030C94340364 +:100040000C9434030C94C3210C9434030C943403A7 +:100050000C9434030C94551B0C9434030C9434030B +:100060000C9434030C9434030C9434030C94340334 +:100070000C9434030C9434030C9434030C94340324 +:100080000C9434030C9434030C9434030C94340314 +:100090000C9434030C9434030C9434030C94340304 +:1000A0000C9434030C9434030C943403BC0DDE0D17 +:1000B000D10EDE0DD10E230E460ED10E9B0EAE0ECE +:1000C00098119811C711C7110A12441251145114F2 +:1000D0005D125114521352132514511451143C142F +:1000E000014702477432014702477432012102215D +:1000F0007432012802280001470247743201470286 +:10010000477432012002207432012802280001477E +:1001100002477432014702477432011F021F7432D2 +:100120000128022800014702477432014702477440 +:1001300032011E021E74320128022800000001C094 +:1001400002C003C004C005C0018C028C2E004C000C +:100150002900E100358200001E00140004001D008B +:1001600034004D821F001A0015001B00E1042A71A3 +:10017000200009001600060050002C722100130018 +:10018000170019004F004A0022000A00070005006E +:100190000000E2005000025400002E000000012088 +:1001A0004F00025400002D000000E20023000D006B +:1001B0000B000E000000E60024000F0011001000EC +:1001C00052004B002500180008003600510028722C +:1001D00026001C000C0037002F002B712700330075 +:1001E0001200387130004E832D0031003400E500DC +:1001F000008200002E004C002900E1003582000042 +:100200001E00140004001D0034004D821F001A005F +:1002100016001B00E1042A712000080007000600F8 +:1002200050002C7221001500090019004F004A00EF +:10023000220017000A0005000000E20050000254EE +:1002400000002E00000001204F00025400002D008D +:100250000000E20023001C000B0011000000E6007B +:10026000240018000D00100052004B0025000C0067 +:100270000E00360051002872260012000F003700D1 +:100280002F002B71270013003300387130004E838C +:100290002D0031003400E500008200000100010063 +:1002A00001000100010000003A001E0220022202AB +:1002B000010001003B001F02210223020100010096 +:1002C0003C002F0226022F00010001003D003002F9 +:1002D00027023000010001003E00310235003502E6 +:1002E0000000010001000100000001000000010009 +:1002F0000100010000000100000001003F00520069 +:1003000051002402000001004000240021001E00D2 +:10031000010001004100250022001F0037000100FC +:100320004200260023002000270001004300250290 +:100330002E0231002E0001004400450001000100A2 +:1003400001000000000000000000000000000000AC +:10035000000006200220000000000100000007202D +:100360000320000000000100000000000420000045 +:100370000000010000000000052000000000010056 +:10038000000000000000000000000100000000006C +:10039000000000000000010000000000000000005C +:1003A000000001000000000000000000000001004B +:1003B000000000000000000000000100000000003C +:1003C000000000000000010000000000000000002C +:1003D000000001000000000000000000000001001B +:1003E00000000000000000000000000016034500AF +:1003F000720067006F0044006F0078002000450025 +:100400005A00000016034500720067006F004400A8 +:100410006F007800200045005A0000000403090422 +:1004200009026D00040100A0FA09040000010301A3 +:100430000100092111010001223F00070581030885 +:10044000000A090401000103010200092111010051 +:1004500001224D000705820308000A090402000179 +:100460000300000009211101000122360007058365 +:100470000308000A09040300010300000009211118 +:100480000100012239000705840310000112011048 +:100490000100000008EDFE07130100010200010544 +:1004A000010906A101050719E029E71500250195B5 +:1004B0000875018102050819012905950575019145 +:1004C000029501750391010507190029771500258B +:1004D00001957875018102C005010980A10185029D +:1004E00016010026B7001A01002AB7007510950101 +:1004F0008100C0050C0901A1018503160100269C9D +:10050000021A01002A9C02751095018100C00501A4 +:100510000902A1010901A100050919012905150018 +:10052000250195057501810295017503810105017C +:10053000093009311581257F950275088106093832 +:100540001581257F950175088106050C0A3802156D +:1005500081257F950175088106C0C005010906A1A6 +:1005600001050719E029E7150025019508750181A6 +:100570000295017508810105081901290595057580 +:100580000191029501750391010507190029FF15D5 +:100590000025FF950675088100C0000000000000DE +:1005A0000000000000010204060A0F17202C3A4A3E +:1005B0005D71879DB3C7DAE9F5FCFFFCF5E9DAC7A1 +:1005C000B39D87715D4A3A2C20170F0A0604020179 +:1005D0000000000000000000000011241FBECFEF4B +:1005E000DAE0DEBFCDBF04B603FE27C08091ED0187 +:1005F0009091EE01A091EF01B091F0018730904B06 +:10060000A740B04BD1F41092ED011092EE01109280 +:10061000EF011092F00114BE84B7877F84BF0FB63C +:10062000F894A89580916000886180936000109292 +:1006300060000FBEE0E0FFE3099511E0A0E0B1E04B +:10064000E8E2F7E402C005900D92A433B107D9F7B0 +:1006500021E0A4E3B1E001C01D92AD3EB207E1F795 +:100660000E94C4090C9492230C940000FC01623097 +:1006700021F128F4662349F0613071F036C064300E +:1006800041F108F1653059F130C08281882311F0C1 +:1006900085EE0CC085EE0EC08281882351F085EE78 +:1006A0000E94321085EE0E94FA1083EE0E943210F2 +:1006B0001CC083EE0E94FA1018C08281811115C0FF +:1006C00085E291E00895828181110FC08EE091E072 +:1006D00008958281811109C087EF90E00895828199 +:1006E000811103C080EE90E0089580E090E00895CD +:1006F00008956091B1017091B2018091B301909120 +:10070000B4010E94821A56985E9825982D982698D2 +:100710002E9827982F98823019F0833021F0089571 +:10072000259A2D9A0895269A2E9A08950C94790365 +:1007300056985E9825982D9826982E9827982F9849 +:100740008FEF90E0909389008093880090938B00C6 +:1007500080938A0090938D0080938C00259A2D9A27 +:100760002FEF80E792E0215080409040E1F700C0F9 +:100770000000269A2E9A2FEF80E792E021508040C9 +:100780009040E1F700C00000279A2F9A2FEF80E7F2 +:1007900092E0215080409040E1F700C00000259891 +:1007A0002D982FEF80E792E0215080409040E1F7B4 +:1007B00000C0000026982E982FEF80E792E021508D +:1007C00080409040E1F700C0000027982F9856988D +:1007D0005E9825982D9826982E9827982F980895FA +:1007E00089EA8093800089E08093810024982C9886 +:1007F0003F988AB18F748AB96E98479A8BB1806B93 +:100800008BB9769A0E9498030C94780380E28093C7 +:1008100000018091340181110EC00E94550481E0D5 +:10082000809334012FEF83ED90E32150804090407E +:10083000E1F700C0000080E40E945B0480930001A7 +:1008400081112EC00E94850480930001811128C06F +:100850000E94850480930001811122C08FE30E94D1 +:1008600085048093000181111BC00E947D0480E4F7 +:100870000E945B0480930001811112C08CE00E94F1 +:1008800085048093000181110BC00E948504809330 +:100890000001811105C08FE30E948504809300014F +:1008A0000E947D048091000108951092B9008AE0B1 +:1008B0008093B800089594EA9093BC009091BC0096 +:1008C00097FFFCCF9091B900987F983021F090313C +:1008D00011F081E008958093BB0084E88093BC0010 +:1008E0008091BC0087FFFCCF8091B900887F883160 +:1008F00011F0803471F780E0089584E98093BC00A2 +:100900008091BC0084FDFCCF08958093BB0084E8F7 +:100910008093BC008091BC0087FFFCCF9091B90010 +:10092000987F81E0983209F480E0089584E880930C +:10093000BC008091BC0087FFFCCF8091BB00089574 +:1009400080910001811115C080E40E945B048093B6 +:10095000000181110CC082E10E9485048093000196 +:10096000811105C08FEF0E948504809300010E94D1 +:100970007D0484B1807F84B985B1807F85B98AB1D7 +:10098000837F8AB98BB1837F8BB93E98469808954F +:100990000E940604809300010E94A00480B38C7022 +:1009A00080BB81B3836F81BBE4E4F1E0A6E3B1E0F7 +:1009B00011921D9281E0E235F807D1F70C94F00313 +:1009C0009F92AF92BF92CF92DF92EF92FF920F93DE +:1009D0001F93CF93DF9380910001882379F080915A +:1009E00035018F5F80933501811108C00E94060494 +:1009F00080930001811102C00E94980386E3E82ED3 +:100A000081E0F82E8701C0E0D0E0BB24B39492E0EF +:100A1000A92ECC24C394D12CC730D10500F58091E8 +:100A20000001811164C080E40E945B048093000196 +:100A3000811112C082E10E9485048093000181111E +:100A40000BC0C6010C2E01C0880F0A94EAF78095EE +:100A50000E948504809300010E947D0448C0CA3032 +:100A6000A1F028F4C83059F0C93061F005C0CC308D +:100A700089F070F0CD3089F0209A289810C0219A22 +:100A800029980DC0229A2A980AC0239A2B9807C049 +:100A9000529A01C0539A5B9802C03E9A4698E0EA87 +:100AA000EA95F1F78FB181708B25799902C032E018 +:100AB00001C030E0832B7C9902C034E001C030E0FB +:100AC000832B7D9902C028E001C020E0822B7E9913 +:100AD00002C090E101C090E0892B9FB19095991FD1 +:100AE0009927991F9295990F907E892B0FC080911D +:100AF000000181114AC080E40E945B0480930001E0 +:100B0000882381F1912C0E947D04892DD8019C912C +:100B1000981719F08C93A09201010E94A0042196CD +:100B20000F5F1F4FCE30D10509F076CF80910101C4 +:100B3000882369F1815080930101882339F0EFE91E +:100B4000FFE03197F1F700C0000021C0E4E4F1E0DC +:100B5000D7018D917D018193B4E4EB16B1E0FB06E2 +:100B6000B9F715C083E10E948504809300018111CB +:100B7000C9CF81E40E945B04809300018111C2CF40 +:100B80000E949604982E9094BECF80E0BFCF0E9422 +:100B9000960381E0DF91CF911F910F91FF90EF902D +:100BA000DF90CF90BF90AF909F900895E82FF0E036 +:100BB000EC5BFE4F8081089508958B3B910580F496 +:100BC000883A910548F5853A9105D8F48430910525 +:100BD00008F0B2C0019709F06EC081E090E008957E +:100BE000803E910508F467C0883E910508F4A4C0D2 +:100BF0009C01205F31092031310508F05CC090650F +:100C00000895853A910509F459C0863A910509F08D +:100C100058C082E890E40895883A910509F454C0D8 +:100C2000893A910509F453C08A3A910509F452C0F2 +:100C30008B3A910509F451C08C3A910509F450C0E2 +:100C40008D3A910509F44FC0803B910509F44EC0DF +:100C50008E3A910509F44DC08F3A910509F44CC0C4 +:100C6000813B910509F44BC0823B910509F44AC0D0 +:100C7000833B910509F449C0843B910509F448C0C0 +:100C8000853B910509F447C0863B910509F446C0B0 +:100C9000873B910509F445C0883B910509F444C0A0 +:100CA000893B910509F443C08A3B910509F442C090 +:100CB00080E094E4089580E090E0089581E890E475 +:100CC000089583E890E4089582EE94E4089589EE0F +:100CD00094E408958AEE94E4089585EB94E40895ED +:100CE00086EB94E4089587EB94E408958CEC94E407 +:100CF00008958DEC94E4089583E895E408958AE8D6 +:100D000095E4089582E995E4089584E995E40895C9 +:100D100081E296E4089583E296E4089584E296E4FD +:100D2000089585E296E4089586E296E4089587E2C0 +:100D300096E408958AE296E40895089524E5829F52 +:100D4000C0011124FC0126E0729FE00DF11D112469 +:100D5000E60FF11DEE0FFF1FE45BFE4F85919491AE +:100D60000895880F991FFC01E454F04085919491F7 +:100D70000895880F991FFC01E45CFE4F85919491C2 +:100D8000089524E5829FC0011124FC0146E0749F70 +:100D9000E00DF11D1124E60FF11DEE0FFF1FE45BC6 +:100DA000FE4F859194919C013A9521154FE13407AE +:100DB00008F425C13F512115304120F49F700E9455 +:100DC000B90608959C0130532115304118F4992734 +:100DD000906C0895811520E5920769F40E947314C0 +:100DE0004FEF84E39CE0415080409040E1F700C029 +:100DF00000000C947A1B813020E5920731F4809139 +:100E0000CC0181608093CC0108959C01305521155F +:100E1000304108F05CC0292F33272F703327213051 +:100E20003105E9F4AC0164E0440F551F6A95E1F720 +:100E300044275370BC016370772702C0220F331F11 +:100E40006A95E2F73C68242B352B73E0880F991FD5 +:100E50007A95E1F780769927822B932B089522309B +:100E6000310529F4982F8827816F906A08952330DF +:100E70003105A1F4AC0133E0440F551F3A95E1F779 +:100E8000407E57708370992721E030E002C0220F26 +:100E9000331F8A95E2F7C9019C6816C024303105DA +:100EA00031F5AC0123E0440F551F2A95E1F7407E50 +:100EB00057708370992721E030E002C0220F331F62 +:100EC0008A95E2F7C9019A68842B952B08959C01B5 +:100ED00030572115304118F49F70906208959C019D +:100EE00030582115304118F49F70906A0895803E63 +:100EF0009105E0F4803C910558F58133910509F4A2 +:100F00006FC048F48932910509F463C08A329105B3 +:100F100009F46DC072C089339105E9F082389105FA +:100F2000D1F08533910509F44DC067C0833E91052A +:100F300081F138F4803E9105B9F0823E9105D9F0F7 +:100F40005CC0863E910561F1873E9105A1F155C0D7 +:100F50000E94B10608952091DE0120FD02C021FF0C +:100F60004CC080EE90E049C08091DE0180FFF9CF57 +:100F700089E390E042C08091DE0182FF0EC0809143 +:100F8000DE0184FF03C080E090E037C083EE90E094 +:100F900034C08091DE0182FFF2CF82EE90E02DC05E +:100FA0008091DE0183FF0BC08091DE0184FDEBCFD9 +:100FB00087EE90E022C08091DE0183FFF5CF86EEC0 +:100FC00090E01BC08091DE0185FF07C089E290E0C0 +:100FD00014C08091DE0185FFF9CF85E390E00DC05C +:100FE0008091DE0186FF07C08AE290E006C0809112 +:100FF000DE0186FFF9CF81E390E00E94DD050895D0 +:101000000895809162010895CF93DF9300D01F92DD +:10101000CDB7DEB79C018091E401843019F593E0EF +:1010200099833B832A839093E9008FEF9091E800A6 +:10103000815095FD06C095ED9A95F1F7000081115C +:10104000F5CF8091E80085FF0DC040E050E063E0FF +:1010500070E0CE0101960E94710A8091E8008E77BF +:101060008093E8000F900F900F90DF91CF9108953B +:10107000CF93DF9300D01F92CDB7DEB72091E4016C +:10108000243021F522E029839B838A8383E08093A7 +:10109000E9008FEF9091E800815095FD06C095ED35 +:1010A0009A95F1F700008111F5CF8091E80085FF56 +:1010B0000DC040E050E063E070E0CE0101960E9478 +:1010C000710A8091E8008E778093E8000F900F906E +:1010D0000F90DF91CF9108959C018091E4018430BD +:1010E000F9F482E08093E9009FEF8091E80091504D +:1010F00085FD06C085ED8A95F1F700009111F5CFC9 +:101100008091E80085FF0CC040E050E065E070E0B1 +:10111000C9010E94710A8091E8008E778093E800EF +:101120000895CF93DF93EC018091E401843009F0BE +:1011300046C090910C019923D9F090910D0199230B +:10114000B9F08093E9008FEF9091E800815095FD10 +:1011500006C095E19A95F1F700008111F5CF8091D5 +:10116000E80085FF2CC040E050E060E170E017C06F +:1011700081E08093E9008FEF9091E800815095FD28 +:1011800006C095ED9A95F1F700008111F5CF809199 +:10119000E80085FF14C040E050E068E070E0CE0158 +:1011A0000E94710A8091E8008E778093E80080E1C8 +:1011B000FE01A2E5B1E001900D928A95E1F7DF9181 +:1011C000CF9108958091E301811109C00E94020C22 +:1011D0000E945F0C8091E20084608093E200089599 +:1011E0001092E301089508950C94B0210E94101B01 +:1011F0000E94B6210E940A0F0C94000842E061ECA4 +:1012000081E00E947B0B42E061EC82E00E947B0B5C +:1012100042E061EC83E00E947B0B42E161EC84E000 +:101220000C947B0B8091E601833009F455C030F4B7 +:10123000813071F0823009F48EC008958A3009F44B +:101240007AC08B3009F460C0893009F09CC020C09E +:101250008091E501813A09F096C08091E800877F8E +:101260008093E8008091E9019091EA01892B21F4B3 +:1012700060E182E591E003C060E080E090E070E032 +:101280000E94BC0A8091E8008B778093E800089563 +:101290008091E501813209F076C08091E901909159 +:1012A000EA01009719F0039709F06DC08091E800FA +:1012B000877F8093E8008091E80082FD05C08091DF +:1012C000E4018111F8CF5FC08091F1008093620149 +:1012D0008091E8008B7753C08091E501813A09F055 +:1012E00052C08091E9019091EA01892B09F04BC02D +:1012F0008091E800877F8093E8008091E80080FF7C +:10130000FCCF80910C0136C08091E5018132D9F586 +:101310008091E9019091EA01892BA9F58091E8007B +:10132000877F8093E8000E94B00B8091E701809353 +:101330000C010C9473148091E501813221F58091A8 +:10134000E800877F8093E8000E94B00B8091E8015D +:101350008093630108958091E501813AA1F4809121 +:10136000E800877F8093E8008091E80080FFFCCF51 +:10137000809163018093F1008091E8008E778093E3 +:10138000E8000C94B00B089584B7877F84BF0FB634 +:10139000F894A89580916000886180936000109215 +:1013A00060000FBE90E080E80FB6F8948093610073 +:1013B000909361000FBE0E94590F0E94020C0E9480 +:1013C0005F0C8091E20084608093E20078940E9438 +:1013D000EA0E0E945B0F82E091E00E94050F0E94DE +:1013E0009E218091E401853069F40E94D21A809197 +:1013F000E2018823B1F30E94FC1A882391F30E9432 +:101400005B0AEFCF0E94610FECCF292F33272330E7 +:101410003105C9F060F42130310581F02230310509 +:1014200009F041C08DE690E020E234E040C0213276 +:101430003105E1F02232310531F135C082E190E031 +:101440002DE834E034C099278130910549F028F027 +:10145000029749F5ECEEF3E005C0ECE1F4E002C0E0 +:10146000E4E0F4E0849190E09F0121C06430D8F47E +:10147000E62FF0E0EE0FFF1FEE5DFE4F2081318181 +:1014800089E090E014C0643070F470E0FB01EE0F6E +:10149000FF1FE65EFE4F20813181FB01EA5EFE4FB9 +:1014A000808190E004C080E090E020E030E0FA012C +:1014B00031832083089580E189BD82E189BD09B42B +:1014C00000FEFDCF8091D8008F7D8093D800809161 +:1014D000E00082608093E0008091E00081FDFCCF1D +:1014E0000895CF92DF92EF92FF920F931F93CF93C5 +:1014F000DF93EC018B016A010E94CF0B811133C095 +:10150000C114D10439F0F60180819181081B190BB7 +:10151000C80FD91FE12CF12C0115110519F180918B +:10152000E80085FD16C08091E8008E778093E80082 +:10153000C114D10449F0F60180819181E80EF91EB1 +:10154000F182E08285E00FC00E94CF0B882321F357 +:101550000AC089918093F10001501109FFEFEF1A41 +:10156000FF0ADACF80E0DF91CF911F910F91FF90BA +:10157000EF90DF90CF9008952091EB013091EC0136 +:101580002617370748F06115710539F42091E800F6 +:101590002E772093E80001C0B901FC0120E061151D +:1015A000710579F18091E4018823F1F18530F1F141 +:1015B0008091E80083FD3CC08091E80082FD2EC050 +:1015C0008091E80080FFEBCF2091F3008091F20042 +:1015D00090E0922B6115710551F08830910538F437 +:1015E00021912093F100615071090196F3CF21E020 +:1015F000089709F020E08091E8008E778093E8005A +:10160000CECF2111CFCF0AC08091E401882361F0B1 +:10161000853061F08091E80083FD0AC08091E80088 +:1016200082FFF2CF80E0089582E0089583E008957C +:1016300081E008952091EB013091EC0126173707E6 +:1016400048F06115710539F42091E8002E77209358 +:10165000E80001C0B901FC0120E06115710591F1BC +:101660008091E401882309F440C0853009F43FC02B +:101670008091E80083FD3DC08091E80082FD2FC08D +:101680008091E80080FFE9CF2091F3008091F20083 +:1016900090E0922B6115710559F08830910540F466 +:1016A00024912093F1003196615071090196F2CF97 +:1016B00021E0089709F020E08091E8008E77809380 +:1016C000E800CBCF2111CCCF0AC08091E401882360 +:1016D00061F0853061F08091E80083FD0AC080915F +:1016E000E80082FFF2CF80E0089582E0089583E071 +:1016F000089581E00895982F973068F59093E90058 +:10170000981739F07091EC002091ED005091F000A5 +:1017100003C0242F762F50E021FD02C09F5FECCF45 +:101720003091EB003E7F3093EB003091ED003D7F38 +:101730003093ED003091EB0031603093EB0070930B +:10174000EC002093ED005093F0002091EE0027FD77 +:10175000E5CF80E008958F708093E90081E00895DF +:101760008091E50187FF11C08091E80082FD05C0EE +:101770008091E4018111F8CF11C08091E8008B774E +:101780000BC08091E401882349F08091E80080FF3C +:10179000F8CF8091E8008E778093E800089520913B +:1017A000E4003091E50095E64091EC00842F8170D3 +:1017B00040FF23C08091E80080FD1DC08091E401BE +:1017C000882399F0853099F08091EB0085FD11C058 +:1017D0004091E4005091E5002417350729F391501A +:1017E00011F09A01E1CF84E0089582E0089583E04A +:1017F000089581E0089580E008954091E80042FF57 +:10180000DDCF08950E94700C0E94780CE0EEF0E0AD +:10181000808181608083E8EDF0E080818F77808334 +:1018200019BCA7EDB0E08C918E7F8C9380818F7E68 +:1018300080831092E30108950F931F93CF93DF935A +:101840000E94700C0E94780CC8EDD0E088818F77E0 +:10185000888388818068888388818F7D888319BC8C +:101860001092E4011092E0011092E2011092E10165 +:1018700000EE10E0F80180818B7F80838881816099 +:10188000888342E060E080E00E947B0BE1EEF0E0C4 +:1018900080818E7F8083E2EEF0E0808181608083B2 +:1018A000808188608083F80180818E7F8083888139 +:1018B00080618883DF91CF911F910F910895E8EDAA +:1018C000F0E080818F7E8083E7EDF0E080818160B1 +:1018D000808384E082BF81E08093E3010C941C0C40 +:1018E000E8EDF0E080818E7F80831092E200089521 +:1018F0001092DA001092E10008951F920F920FB635 +:101900000F9211242F933F934F935F936F937F9385 +:101910008F939F93AF93BF93EF93FF938091E100D9 +:1019200082FF0BC08091E20082FF07C08091E1003E +:101930008B7F8093E1000E94E90E8091DA0080FFA6 +:101940001FC08091D80080FF1BC08091DA008E7F7D +:101950008093DA008091D90080FF0DC080E189BDBD +:1019600082E189BD09B400FEFDCF81E08093E401EE +:101970000E94E20805C019BC1092E4010E94F00820 +:101980008091E10080FF19C08091E20080FF15C0C6 +:101990008091E2008E7F8093E2008091E20080617E +:1019A0008093E2008091D80080628093D80019BCB7 +:1019B00085E08093E4010E94F4088091E10084FFB7 +:1019C00030C08091E20084FF2CC080E189BD82E1BB +:1019D00089BD09B400FEFDCF8091D8008F7D809332 +:1019E000D8008091E1008F7E8093E1008091E20039 +:1019F0008F7E8093E2008091E20081608093E2001C +:101A00008091E001882311F084E007C08091E30019 +:101A100087FD02C081E001C083E08093E4010E9461 +:101A2000F6088091E10083FF29C08091E20083FFE6 +:101A300025C08091E100877F8093E10082E0809360 +:101A4000E4011092E0018091E1008E7F8093E1003B +:101A50008091E2008E7F8093E2008091E2008061BD +:101A60008093E20042E060E080E00E947B0B809186 +:101A7000F00088608093F0000E94F308FF91EF91DE +:101A8000BF91AF919F918F917F916F915F914F9196 +:101A90003F912F910F900FBE0F901F9018951F929E +:101AA0000F920FB60F9211242F933F934F935F9392 +:101AB0006F937F938F939F93AF93BF93CF93DF9356 +:101AC000EF93FF93C091E900CF708091EC00D82F85 +:101AD000D17080FDD0E81092E9008091F000877FFE +:101AE0008093F00078940E94930D1092E900809109 +:101AF000F00088608093F000CD2BCF70C093E90098 +:101B0000FF91EF91DF91CF91BF91AF919F918F9115 +:101B10007F916F915F914F913F912F910F900FBEE9 +:101B20000F901F9018951F93CF93DF93CDB7DEB71B +:101B3000AA970FB6F894DEBF0FBECDBFE5EEF1E079 +:101B40008091F100819321E0ED3EF207C9F70E94F8 +:101B500012098091E80083FF24C18091E5019091F2 +:101B6000E601492F50E04A30510508F01AC1FA0148 +:101B7000EA5AFF4F0C944723803881F0823809F0ED +:101B800010C18091E9018F708093E9008091EB0092 +:101B900085FB882780F91092E90006C08091E10159 +:101BA0009091E201911182609091E800977F90936B +:101BB000E8008093F1001092F100C8C0282F2D7F1B +:101BC00009F0EFC0882319F0823061F0EAC08091FB +:101BD000E701813009F0E5C0933009F080E080939F +:101BE000E2012BC08091E701811127C08091E901BA +:101BF0008F7009F4D6C08093E9002091EB0020FF9C +:101C00001CC0933021F48091EB00806214C090914D +:101C1000EB0090619093EB0021E030E0A90102C05D +:101C2000440F551F8A95E2F74093EA001092EA00AC +:101C30008091EB0088608093EB001092E900809126 +:101C4000E800877F86C08111ACC01091E7011F7743 +:101C50008091E3008078812B8093E3008091E800FD +:101C6000877F8093E8000E94B00B8091E80080FF9E +:101C7000FCCF8091E30080688093E300111102C0E3 +:101C800082E001C083E08093E4018BC08058823001 +:101C900008F087C08091E7019091E8018C3D53E006 +:101CA000950779F583E08A838AE289834FB7F894B0 +:101CB000DE01139620E03EE051E2E32FF0E0509386 +:101CC0005700E49120FF03C0E295EF703F5FEF7093 +:101CD0008E2F90E0EA3010F0C79601C0C0968D9329 +:101CE0009D932F5F243149F74FBF8091E800877F94 +:101CF0008093E8006AE270E0CE0101960E94BC0A7F +:101D000014C0AE014F5F5F4F6091E9010E94050A68 +:101D1000BC01892B09F445C09091E800977F90930E +:101D2000E80089819A810E941A0B8091E8008B77E4 +:101D30008093E80036C08038A1F58091E800877F65 +:101D40008093E8008091E0018093F1008091E800A9 +:101D50008E778093E8000E94B00B23C0811121C0D0 +:101D60008091E7019091E80199270297D4F480913E +:101D7000E800877F8093E8008091E7018093E0018D +:101D80000E94B00B8091E001811106C08091E300B8 +:101D900087FD02C081E001C084E08093E4010E94DD +:101DA000FE088091E80083FF0AC08091E800877FE9 +:101DB0008093E8008091EB0080628093EB00AA960C +:101DC0000FB6F894DEBF0FBECDBFDF91CF911F914C +:101DD00008950895CF938091E4018823A1F0C091E4 +:101DE000E900CF709091EC00892F817090FD80E820 +:101DF000C82B1092E9008091E80083FD0E94930DAA +:101E0000CF70C093E900CF910895909369018093BA +:101E100068010895E0916801F0916901309721F01F +:101E20000190F081E02D099480E00895E09168012F +:101E3000F0916901309721F00280F381E02D09943F +:101E40000895E0916801F0916901309721F00480D4 +:101E5000F581E02D09940895209166013091670184 +:101E60002817390771F09093670180936601E0911C +:101E70006801F0916901309721F00680F781E02D2B +:101E8000099408952091640130916501281739075C +:101E900071F09093650180936401E0916801F09185 +:101EA0006901309721F00084F185E02D09940895AF +:101EB00008950C94580F0E94161B0E94C8040C949D +:101EC000DC1BCF92DF92EF92FF920F931F93CF9381 +:101ED000DF93CDB7DEB72B970FB6F894DEBF0FBEFA +:101EE000CDBF0E94E0048BE6C82E81E0D82E00E032 +:101EF00010E0E02E802F0E94D605F60141916F017F +:101F0000F82EF426B1F40F5F1F4F0E30110589F73C +:101F10008FEF89838A831B820E941F1B8160782F29 +:101F20009D838C8349815A816B818D810E9404102D +:101F300040C09091CC0191FF04C08B870E94DC05CA +:101F40008B8520E030E04F2D50E0922FBA01022E19 +:101F500002C0759567950A94E2F760FF24C02E834E +:101F6000EF8221E030E0690102C0CC0CDD1C9A95C3 +:101F7000E2F790E08C219D21892B09F420E028874D +:101F80000E941F1B8160782F9A8789874E815F810D +:101F900068858A850E940410F801E559FE4F80810A +:101FA000C826C08206C02F5F3F4F2630310569F634 +:101FB000AACF0E94C31E0E940A0F90916A0189173E +:101FC000A1F00E940A0F80936A012B960FB6F89435 +:101FD000DEBF0FBECDBFDF91CF911F910F91FF905C +:101FE000EF90DF90CF900C9400082B960FB6F894EA +:101FF000DEBF0FBECDBFDF91CF911F910F91FF903C +:10200000EF90DF90CF900895CF93DF93CDB7DEB7F9 +:102010002B970FB6F894DEBF0FBECDBF4F83588706 +:1020200069877A878B87DE01119686E0FD01119220 +:102030008A95E9F785E0FE01379601900D928A9521 +:10204000E1F749815A816B817C818D819E810E945B +:1020500007172B960FB6F894DEBF0FBECDBFDF91EA +:10206000CF910895CF93C82F882309F4C1C0823837 +:1020700059F40E940A0F81FDBBC089E30E94A41994 +:102080000E945C1A89E30CC0833879F40E940A0F1D +:1020900080FDAEC083E50E94A4190E945C1A83E50E +:1020A0000E94E319CF910C945C1A843859F40E9471 +:1020B0000A0F82FD9DC087E40E94A4190E945C1A49 +:1020C00087E4EECF8CEF8C0F813A48F48C2F0E947E +:1020D000032181118DC08C2F0E94A419E3CF80E2CF +:1020E0008C0F883048F4C77081E001C0880FCA9512 +:1020F000EAF70E94251AD6CF8BE58C0F833078F44F +:10210000C53A29F0C63A31F083E890E005C081E88D +:1021100090E002C082E890E0CF910C942C0F88E50B +:102120008C0F833108F064C0C83A39F1C93A41F1E3 +:10213000CA3A49F1CB3A51F1CC3A59F1CD3A61F171 +:10214000C03B69F1CE3A71F1CF3A79F1C13B81F1EF +:10215000C23B89F1C33B91F1C43B99F1C53BA1F16D +:10216000C63BA9F1C73BB1F1C83BB9F1C93BC1F1CD +:10217000CA3BC9F180E090E038C082EE90E035C003 +:1021800089EE90E032C08AEE90E02FC085EB90E0BF +:102190002CC086EB90E029C087EB90E026C08CEC49 +:1021A00090E023C08DEC90E020C083E891E01DC05A +:1021B0008AE891E01AC082E991E017C084E991E0D1 +:1021C00014C081E292E011C083E292E00EC084E28A +:1021D00092E00BC085E292E008C086E292E005C082 +:1021E00087E292E002C08AE292E0CF910C94420F23 +:1021F000CF910895882309F44BC0823859F40E9486 +:102200000A0F81FF45C089E30E94A4190E945C1A4D +:1022100089E30CC0833871F40E940A0F80FF38C034 +:1022200083E50E94A4190E945C1A83E50E94E319C9 +:102230000C945C1A843859F40E940A0F82FF28C05B +:1022400087E40E94A4190E945C1A87E4EFCF9CEFF8 +:10225000980F913A58F390E2980F983050F48770A5 +:1022600091E001C0990F8A95EAF7892F0E942B1AF5 +:10227000DFCF9BE5980F933020F480E090E00C9442 +:102280002C0F885A833120F480E090E00C94420FA8 +:102290000895882321F00E94251A0C945C1A089551 +:1022A000882321F00E942B1A0C945C1A0895BF9287 +:1022B000CF92DF92EF92FF920F931F93CF93DF9312 +:1022C00000D000D000D0CDB7DEB77C0185E0F701AB +:1022D000DE01119601900D928A95E1F7F701838155 +:1022E0009481892B09F4DDC2908181818F3F19F49B +:1022F0009F3F09F4D6C2F7010281258122952F70F4 +:1023000099838A8389819A812E830E946319182F69 +:10231000B92E0E9462190E942918EB2DE295EF70E8 +:102320004E2F50E0FA01E05AFF4F2E810C944723C4 +:102330008B2D807F9B2D9F70F92E882319F0F294AE +:1023400080EFF822002349F0FF2009F457C28F2DB7 +:102350000E94351A0E945C1A51C2812F0E94FA1005 +:10236000FF2009F49EC28F2D0E943B1A26960FB6BD +:10237000F894DEBF0FBECDBFDF91CF911F910F91BB +:10238000FF90EF90DF90CF90BF900C945C1A3B2DA4 +:10239000307F8B2D8F70303211F08295807F11232A +:1023A00019F0113021F12CC00023B9F0222309F4D7 +:1023B00090C1213009F08DC126960FB6F894DEBF8A +:1023C0000FBECDBFDF91CF911F910F91FF90EF9086 +:1023D000DF90CF90BF900C94451A222319F0213042 +:1023E00009F45FC28E830E94481A8E8186C1002341 +:1023F00021F0223008F055C26CC1211152C27DC1BA +:10240000002321F0222309F464C1F8C1222309F436 +:1024100074C109C28B2D86958695837019F0813021 +:10242000D1F03FC2002321F0812F9B2D937002C079 +:1024300080E090E026960FB6F894DEBF0FBECDBFC9 +:10244000DF91CF911F910F91FF90EF90DF90CF9090 +:10245000BF900C942C0F002321F0812F9B2D9370A3 +:1024600002C080E090E026960FB6F894DEBF0FBE63 +:10247000CDBFDF91CF911F910F91FF90EF90DF9033 +:10248000CF90BF900C94420F812F002319F00E942F +:10249000CB1D02C00E94331E26960FB6F894DEBFF5 +:1024A0000FBECDBFDF91CF911F910F91FF90EF90A5 +:1024B000DF90CF90BF900C94B81E8B2D837009F0E5 +:1024C00075C00111EEC1812F829586958770880FA6 +:1024D000880F912F9F70C92ED12CE12CF12C082E42 +:1024E00004C0CC0CDD1CEE1CFF1C0A94D2F714FFB8 +:1024F00012C00FE010E020E030E004C0000F111F18 +:10250000221F331F8A95D2F7C901B80160957095D3 +:102510008095909503C060E070E0CB014B2D46950F +:10252000469543704230C1F060F56C297D298E29B3 +:102530009F29413051F126960FB6F894DEBF0FBEA9 +:10254000CDBFDF91CF911F910F91FF90EF90DF9062 +:10255000CF90BF900C9450186C297D298E299F290B +:1025600026960FB6F894DEBF0FBECDBFDF91CF9198 +:102570001F910F91FF90EF90DF90CF90BF900C9440 +:102580006C180E945018C701B60126960FB6F89431 +:10259000DEBF0FBECDBFDF91CF911F910F91FF9096 +:1025A000EF90DF90CF90BF900C943418002319F077 +:1025B0008B2D817001C08695882309F472C1812F0B +:1025C000829586958770880F880F912F9F70C92EEE +:1025D000D12CE12CF12C082E04C0CC0CDD1CEE1CFF +:1025E000FF1C0A94D2F714FF12C00FE010E020E0A5 +:1025F00030E004C0000F111F221F331F8A95D2F74D +:10260000C901B801609570958095909503C060E010 +:1026100070E0CB014B2D4695469543704230C1F09A +:1026200060F56C297D298E299F29413051F126962C +:102630000FB6F894DEBF0FBECDBFDF91CF911F91D3 +:102640000F91FF90EF90DF90CF90BF900C942A19DC +:102650006C297D298E299F2926960FB6F894DEBF16 +:102660000FBECDBFDF91CF911F910F91FF90EF90E3 +:10267000DF90CF90BF900C9446190E942A19C70191 +:10268000B60126960FB6F894DEBF0FBECDBFDF9120 +:10269000CF911F910F91FF90EF90DF90CF90BF905F +:1026A0000C940E19103FD1F118F4103E50F4A1C053 +:1026B000123F09F463C008F44CC0133F09F473C01F +:1026C00098C01F708B2D8F710023A1F00E94A71856 +:1026D000812F26960FB6F894DEBF0FBECDBFDF91D7 +:1026E000CF911F910F91FF90EF90DF90CF90BF900F +:1026F0000C9449110E94C818812F26960FB6F894A1 +:10270000DEBF0FBECDBFDF91CF911F910F91FF9024 +:10271000EF90DF90CF90BF900C9450110023A9F060 +:102720002111BFC08B2D8F7126960FB6F894DEBF96 +:102730000FBECDBFDF91CF911F910F91FF90EF9012 +:10274000DF90CF90BF900C94ED18223008F0A9C014 +:10275000E9CF0023A9F08B2D8F7126960FB6F89440 +:10276000DEBF0FBECDBFDF91CF911F910F91FF90C4 +:10277000EF90DF90CF90BF900C94A718002359F3EF +:102780008B2D8F7126960FB6F894DEBF0FBECDBF8E +:10279000DF91CF911F910F91FF90EF90DF90CF903D +:1027A000BF900C94C818002399F08B2D8F7126963A +:1027B0000FB6F894DEBF0FBECDBFDF91CF911F9152 +:1027C0000F91FF90EF90DF90CF90BF900C949218F4 +:1027D00026960FB6F894DEBF0FBECDBFDF91CF9126 +:1027E0001F910F91FF90EF90DF90CF90BF900C94CE +:1027F00088180023A9F0222309F4ADCF812F269653 +:102800000FB6F894DEBF0FBECDBFDF91CF911F9101 +:102810000F91FF90EF90DF90CF90BF900C9432100B +:10282000222309F4ADCF812F26960FB6F894DEBF90 +:102830000FBECDBFDF91CF911F910F91FF90EF9011 +:10284000DF90CF90BF900C94FA104B2D4F70612FFA +:10285000C7010E94360326960FB6F894DEBF0FBE5E +:10286000CDBFDF91CF911F910F91FF90EF90DF903F +:10287000CF90BF900C94AC174B2D4F70612FC701B8 +:1028800026960FB6F894DEBF0FBECDBFDF91CF9175 +:102890001F910F91FF90EF90DF90CF90BF900C941D +:1028A0009D0626960FB6F894DEBF0FBECDBFDF9112 +:1028B000CF911F910F91FF90EF90DF90CF90BF903D +:1028C00008950E94421A0E94171A0E945C1A0E94E0 +:1028D000681F0E94B81E80E090E00E942C0F80E0EC +:1028E00090E00C94420F0E94321A0C9461140E94E2 +:1028F0006319292F22952F702C3030F42A3048F498 +:102900002250223078F405C02C3041F02F3031F0C5 +:1029100009C0803E48F0803F29F406C093FB882719 +:1029200080F9089580E0089581E00895CF93DF93C2 +:1029300000D000D01F92CDB7DEB70F900F900F9050 +:102940000F900F90DF91CF910895CF93DF9300D038 +:1029500000D000D0CDB7DEB726960FB6F894DEBF14 +:102960000FBECDBFDF91CF9108951F93CF93DF931B +:10297000C091790116E080917A01C81799F0D0E0F2 +:102980001C9FF0011D9FF00D1124E558FE4F408162 +:10299000518162817381848195810E94A514219661 +:1029A000C770E9CFDF91CF911F9108954091AB019E +:1029B0005091AC016091AD017091AE018091AF0179 +:1029C0009091B0010C94A5148091B00182958F7004 +:1029D00009F054C08091AD01882309F44FC0809163 +:1029E0007901A0917A014091AE015091AF016091BF +:1029F000AB017091AC01B6E08A1709F43FC090E0DA +:102A000041155105C1F17F3F11F46F3FA1F1B89F0E +:102A1000F001B99FF00D1124E558FE4F21812713D5 +:102A20002AC02081261327C02281211124C023819E +:102A300034812417350710F421503109241B350B3C +:102A4000283C3105C0F42091B0012F702061209303 +:102A5000B00126E0289FF001299FF00D1124E058D5 +:102A6000FE4F80818F70806180838BEA91E00E94AD +:102A700057110C94B51401968770BECF0895CF926C +:102A8000DF92EF92FF920F931F93CF93DF93CDB717 +:102A9000DEB762970FB6F894DEBF0FBECDBF8C01D4 +:102AA00085E0F801DE011D9601900D928A95E1F70F +:102AB000D8014C9111965C91119712966C9180916E +:102AC000AE019091AF01009709F475C13091AB014F +:102AD0007091AC017F3F19F43F3F09F46CC1F801DC +:102AE000C380D480E090AD01EE2009F4BEC02091F7 +:102AF000B001C816D90628F0D601A81BB90BCD0124 +:102B000004C0809590958C0D9D1DFF24F394883C06 +:102B1000910578F0F12C207F09F0C4C07C2DD98A72 +:102B2000C88A89890E9496148BEA91E00E94571105 +:102B3000AFC0822F807F09F045C0571313C04313E5 +:102B400011C061110FC02F7020612093B0010E944D +:102B5000D6148BEA91E00E9457118091B001F801E0 +:102B600085832EC0CD2819F15F3F11F44F3FF9F056 +:102B7000F62E61111CC08091790120917A0136E016 +:102B8000821709F45BC090E0389FF001399FF00D87 +:102B90001124E558FE4F7181571306C07081471309 +:102BA00003C07281711103C001968770E9CFF62EC0 +:102BB000662309F41CC18091B00181608093B0014B +:102BC000F12C15C1571309C0431307C0611105C08B +:102BD0008091B001F8018583C8C04D875E878D85DF +:102BE0009E856A8B0E9477146A898823D1F16623B7 +:102BF000C1F12091B001822F82958F7090E00297F1 +:102C000074F08091AB019091AC0198878F83198605 +:102C1000DB86CA862C87CE0107960E94571186E074 +:102C2000F801ABEAB1E001900D928A95E1F70E94BC +:102C3000E4140E94D614FF24F394D9C04D875E8714 +:102C40008D859E850E946319292F22952F70223031 +:102C500008F0C1C09F7009F0BBC0805E883008F4E6 +:102C6000C6C0C8010E945711E6CFC816D90608F49D +:102C700053C0F601E81BF90BCF01883C910508F41D +:102C800050C0F12C7C2DD98AC88A89890E9496145B +:102C9000EBEAF1E086E0DF011D928A95E9F70E94F8 +:102CA000D614A5C0571314C0431312C0611110C02D +:102CB0008091B001F8018583C8010E94571186E018 +:102CC000EBEAF1E0DF011D928A95E9F7FE2C8FC057 +:102CD0004D875E878D859E856A8B0E9477146A89F1 +:102CE000882309F4BECF662309F4BBCF2091B0013D +:102CF000822F82958F7090E002970CF490CF809194 +:102D0000AB019091AC019A8389831B82DD82CC82D6 +:102D10002E83CE01019681CF809590958C0D9D1DBF +:102D2000ACCFF62E662309F49CCF571333C0431360 +:102D300031C02091B00120FD24C0822F82958F7078 +:102D4000482F50E041155105E1F0D80115962C931C +:102D500015974F30510549F08F5F982F9295907FCE +:102D6000822F8F70892B15968C93C8010E94571162 +:102D700086E0F801ABEAB1E001900D928A95E1F7A7 +:102D80008ECF86E0F801ABEAB1E001900D928A9512 +:102D9000E1F72DC04D875E878D859E850E94771453 +:102DA00081113DCF8091B00181608093B001C80155 +:102DB0000E9457111CC0662309F453CF4D875E87CC +:102DC0008D859E850E947714882309F44ACF27CFEA +:102DD000811143CF0CC0243008F043CF9F7009F419 +:102DE0003CCFD80115969C91907F09F036CF8F2D5E +:102DF00062960FB6F894DEBF0FBECDBFDF91CF91C4 +:102E00001F910F91FF90EF90DF90CF9008951F9347 +:102E1000CF93DF93CDB7DEB72C970FB6F894DEBF14 +:102E20000FBECDBF4F83588769877A878B879C8772 +:102E3000CE0107960E943F15882371F08A859B85F5 +:102E4000892B09F441C088858F3F09F065C08F81C7 +:102E50008F3F09F061C038C086E0FE013796DE0181 +:102E6000119601900D928A95E1F76A857B8561152F +:102E7000710551F1FF81E885EF3F11F4FF3F21F12A +:102E800020917A0130E0C90101968770992740911D +:102E9000790150E08417950709F447C0F983EA8364 +:102EA0007D836C8396E0929FD001939FB00D112497 +:102EB000A558BE4FFE01319601900D929A95E1F70B +:102EC00080937A010E94B51416E080917901909167 +:102ED0007A018917B9F1189FC001112485589E4FB6 +:102EE0000E943F15882371F1E09179011E9FF00146 +:102EF0001124E558FE4F40815181628173818481A4 +:102F000095810E94A5148091790190E001968770C7 +:102F1000992780937901D9CF4F81588569857A8522 +:102F20008B859C850E94A514CFCF0E9473141092AC +:102F30007A0110927901EBEAF1E086E0DF011D925F +:102F40008A95E9F72C960FB6F894DEBF0FBECDBF79 +:102F5000DF91CF911F910895EF92FF920F931F93EE +:102F6000CF93DF938C01892B09F46CC0F12CEE24F4 +:102F7000E394E8012196F8018491843740F4843089 +:102F800008F051C0813081F0823019F15BC0853783 +:102F900009F444C0A8F19CE7980F903708F052C09C +:102FA0008F770E94FA1041C00E5F1F4FFE0184917F +:102FB00090E2980F983050F48770FE2D01C0FF0FFB +:102FC0008A95EAF78F2F0E94351A14C00E9432109A +:102FD0002DC00E5F1F4FFE01849190E2980F983034 +:102FE00060F48770FE2D01C0FF0F8A95EAF78F2FDE +:102FF0000E943B1A0E945C1A19C00E94FA1016C067 +:103000000E5F1F4FFE01C491CC2381F08FE99FE03A +:103010000197F1F700C00000C150F6CF0E5F1F4FBF +:10302000FE01F49003C00E9432108E018F2D882380 +:1030300009F49FCFEFE9FFE03197F1F700C00000FE +:103040008150F5CFDF91CF911F910F91FF90EF90BD +:10305000089508956093B5017093B6018093B70108 +:103060009093B8010C9461140F931F930091B501D4 +:103070001091B6012091B7013091B801DC01CB016C +:10308000802B912BA22BB32B8093B5019093B6018B +:10309000A093B701B093B8011F910F910C946114E4 +:1030A0000F931F930091B5011091B6012091B701C4 +:1030B0003091B801DC01CB0180239123A223B323FB +:1030C0008093B5019093B601A093B701B093B80176 +:1030D0001F910F910C9461140F931F930091B501F0 +:1030E0001091B6012091B7013091B801DC01CB01FC +:1030F00080279127A227B3278093B5019093B6012B +:10310000A093B701B093B8011F910F910C94611473 +:103110001092B1011092B2011092B3011092B40159 +:103120000C94611441E050E060E070E004C0440F92 +:10313000551F661F771F8A95D2F74093B1015093B0 +:10314000B2016093B3017093B4010C94611441E037 +:1031500050E060E070E004C0440F551F661F771F09 +:103160008A95D2F78091B1019091B201A091B301FB +:10317000B091B401482B592B6A2B7B2B4093B101A2 +:103180005093B2016093B3017093B4010C94611435 +:1031900041E050E060E070E004C0440F551F661F3E +:1031A000771F8A95D2F740955095609570958091DC +:1031B000B1019091B201A091B301B091B401482343 +:1031C00059236A237B234093B1015093B20160934A +:1031D000B3017093B4010C94611441E050E060E0DD +:1031E00070E004C0440F551F661F771F8A95D2F701 +:1031F0008091B1019091B201A091B301B091B4015D +:10320000482759276A277B274093B1015093B20181 +:103210006093B3017093B4010C9461140F931F93E6 +:103220000091B1011091B2012091B3013091B4012C +:10323000DC01CB01802B912BA22BB32B8093B1010E +:103240009093B201A093B301B093B4011F910F9179 +:103250000C9461140F931F930091B1011091B2016E +:103260002091B3013091B401DC01CB018023912383 +:10327000A223B3238093B1019093B201A093B30131 +:10328000B093B4011F910F910C9461140F931F938D +:103290000091B1011091B2012091B3013091B401BC +:1032A000DC01CB0180279127A227B3278093B101AE +:1032B0009093B201A093B301B093B4011F910F9109 +:1032C0000C9461140895CF92DF92EF92FF920F93C6 +:1032D0001F93CF93DF938C01C090B101D090B201C6 +:1032E000E090B301F090B4018091B5019091B601E6 +:1032F000A091B701B091B801C82AD92AEA2AFB2ABD +:10330000CFE1D0E0D701C6010C2E04C0B695A79539 +:10331000979587950A94D2F780FF07C0B8018C2F44 +:103320000E94C1068130910531F4219758F7B80108 +:1033300080E00E94C106DF91CF911F910F91FF9015 +:10334000EF90DF90CF90089590910C019923F1F0C8 +:1033500090910D019923D1F0982F96959695969579 +:103360009F3080F5E0910E01F0910F01E90FF11D02 +:10337000877021E030E0A90102C0440F551F8A95F3 +:10338000E2F7CA019181892B8183089520910E0172 +:1033900030910F01F90132969FEF40E0519185176E +:1033A00089F09F3F19F4511101C0942F4F5F4E30A7 +:1033B000A9F79F3F39F0F901E90FF11D97FDFA9543 +:1033C00082830895089590910C019923F9F09091CA +:1033D0000D019923D9F0982F9695969596959F3043 +:1033E00028F5E0910E01F0910F01E90FF11D8770B2 +:1033F00021E030E0A90102C0440F551F8A95E2F791 +:10340000CA018095918189238183089520910E01BD +:1034100030910F01F9013296205F3F4F908189135F +:1034200001C010823196E217F307C1F7089581E0D9 +:1034300090E0E0910E01F0910F01E80FF91F10826A +:10344000019680319105A9F708959091CB01892BC0 +:103450008093CB01089580959091CB01892380932F +:10346000CB0108951092CB0108959091CA01892B48 +:103470008093CA01089580959091CA018923809311 +:10348000CA0108951092CA0108958093B901089560 +:103490001092B901089580910E0190910F01FC01E5 +:1034A00031969C01205F3F4F80E0919191118F5F99 +:1034B000E217F307D1F70895E0910E01F0910F01A3 +:1034C0008091CB018083E0910E01F0910F019081FA +:1034D0008091CA01892B80838091B901882361F092 +:1034E000E0910E01F0910F019081892B80830E9461 +:1034F0004B1A81111092B90180910E0190910F0128 +:103500000C94160FCF92DF92EF92FF926C01EE2493 +:10351000FF24C114D104E104F10421F0C701B60174 +:1035200020E101C020E0C72ED82EE92EFF24C114CF +:10353000D104E104F10419F0285FC701B6016B0161 +:103540007C0154E0F694E794D794C7945A95D1F748 +:10355000C114D104E104F10419F02C5FC701B601D4 +:103560006B017C0142E0F694E794D794C7944A95A6 +:10357000D1F7C114D104E104F10419F02E5FC701A1 +:10358000B601DC01CB01B695A79597958795892B58 +:103590008A2B8B2B09F02F5F822FFF90EF90DF900B +:1035A000CF9008958091E401843011F120E488E106 +:1035B00090E00FB6F894A895809360000FBE20931A +:1035C000600083B7817F846083BF83B7816083BFDE +:1035D0007894889583B78E7F83BF0FB6F894A895AB +:1035E00080916000886180936000109260000FBE3F +:1035F000089508950C94F91ACF930E94FA1A0E9424 +:10360000E0040E94F91AC0E08C2F0E94D6058111B7 +:1036100004C0CF5FCE30C1F701C081E0CF910895E3 +:103620000E9473140E940A0F0C94000882E084BD6B +:1036300093E095BD9AEF97BD80936E0008952FB7E4 +:10364000F8948091CD019091CE01A091CF01B091DD +:10365000D0012FBF0895CF92DF92EF92FF920F9388 +:103660001F932FB7F8944091CD015091CE016091F6 +:10367000CF017091D0012FBF6A017B01EE24FF249E +:103680008C0120E030E0C016D106E206F30610F40B +:10369000415051099A01281B390BC9011F910F9103 +:1036A000FF90EF90DF90CF9008951F920F920FB68A +:1036B0000F9211248F939F93AF93BF938091CD016D +:1036C0009091CE01A091CF01B091D0010196A11DA2 +:1036D000B11D8093CD019093CE01A093CF01B09303 +:1036E000D001BF91AF919F918F910F900FBE0F901E +:1036F0001F9018950E94020CF8942FEF87EA91E62C +:10370000215080409040E1F700C0000087E090EB3E +:10371000DC018093ED019093EE01A093EF01B09353 +:10372000F0019CE088E10FB6F894A89580936000C2 +:103730000FBE90936000FFCFEF92FF920F931F9305 +:10374000CF93DF93D82FC0E08C2F0E94D60500E0E6 +:1037500010E0E82EF12CC701002E02C09595879548 +:103760000A94E2F780FD06C00F5F1F4F0630110577 +:1037700091F709C0602F7C2F80E00E949E068D1378 +:10378000F3CF81E004C0CF5FCE30F1F680E0DF916F +:10379000CF911F910F91FF90EF900895CF93C82F75 +:1037A0008CE20E949C1B882321F08C2FCF910C94DB +:1037B0009C1B80E0CF910895CF930E94231D81111F +:1037C00002C00E94091DC5E6C15049F00E94E004F4 +:1037D0008FE39CE90197F1F700C00000F5CF89E283 +:1037E0000E94CE1B811113C18AE20E94CE1B81115F +:1037F0000E94091D85E00E94CE1B81110E947A1B48 +:103800000E942E1D8093CC0187E00E94CE1B88234E +:10381000A9F18BE10E94CE1B882351F08091CC014D +:1038200081FB222720F991E0922790FB81F90EC0BD +:103830008EE00E94CE1B882361F08091CC0182FB38 +:10384000222720F991E0922790FB82F98093CC0106 +:1038500015C080E10E94CE1B9091CC01882341F0DD +:1038600093FB222720F981E0822780FB93F904C093 +:10387000892F809580FB90F99093CC018091CC01A9 +:103880000E94321D0E94401D8093DE0180EE0E9446 +:10389000CE1B882341F08091DE01982F909590FBFC +:1038A00080F98093DE0189E30E94CE1B882359F0C2 +:1038B0008091DE0181FB222720F991E0922790FB85 +:1038C00081F98093DE0182EE0E94CE1B882359F09D +:1038D0008091DE0182FB222720F991E0922790FB64 +:1038E00082F98093DE0186EE0E94CE1B882359F078 +:1038F0008091DE0183FB222720F991E0922790FB43 +:1039000083F98093DE0183EE0E94CE1B882359F059 +:103910008091DE0184FB222720F991E0922790FB21 +:1039200084F98093DE0185E30E94CE1B882359F041 +:103930008091DE0185FB222720F991E0922790FB00 +:1039400085F98093DE0181E30E94CE1B882359F024 +:103950008091DE0186FB222720F991E0922790FBDF +:1039600086F98093DE0181E10E94CE1B882359F005 +:103970008091DE0187FB222720F991E0922790FBBE +:1039800087F98093DE018091DE010E94441D8091C1 +:10399000DE0187FB882780F980930D0187E20E9472 +:1039A000CE1BC82F8EE10E94CE1B8111C2608FE119 +:1039B0000E94CE1B8111C46080E20E94CE1B811147 +:1039C000C86081E20E94CE1B8111C06182E20E9428 +:1039D000CE1B8111C06283E20E94CE1B8111C064A4 +:1039E00084E20E94CE1B882311F0C06802C0CC2361 +:1039F00029F08C2F0E943B1D6C2F03C00E94371DA5 +:103A0000682F70E080E090E0CF910C942A18CF915D +:103A100008956DEE7EEF80E090E00E947D2360E0EF +:103A200082E090E00E946F2360E083E090E00E94DB +:103A30006F2360E084E090E00E946F2360E085E007 +:103A400090E00C946F2380E090E00E94692321E0D5 +:103A50008D3E9E4F09F020E0822F089582E090E095 +:103A60000C946123682F82E090E00C946F2383E034 +:103A700090E00C946123682F83E090E00C946F2316 +:103A800084E090E00C946123682F84E090E00C9433 +:103A90006F238091D30180FF0BC06091130185E0FB +:103AA000689FB001112475956795759567952BC032 +:103AB00081FF09C06091130185E0689FB001112466 +:103AC0007595679520C082FF07C06091130185E05E +:103AD000689FB001112417C09091D4019923D1F0AF +:103AE00060911201961788F72091130185E0289FB5 +:103AF00090011124929FA001939F500D112470E01A +:103B0000CA010E9433236038710540F461157105C4 +:103B100019F406C065E070E0862F08958FE70895D8 +:103B200081E008958091D30180FF08C06091110168 +:103B300070E0759567957595679521C081FF06C002 +:103B40006091110170E07595679519C082FF04C0FE +:103B50006091110170E010C09091D401992399F007 +:103B6000609110019617A0F780911101899FC00103 +:103B7000112470E00E9433236038710540F4611510 +:103B8000710519F406C061E070E0862F08958FE793 +:103B9000089581E00895803F21F40E94491D819598 +:103BA00004C0813F29F40E94491D8093D7010895E4 +:103BB000823F21F40E94491D819504C0833F29F46E +:103BC0000E94491D8093D6010895893F19F40E94EF +:103BD000921D05C08A3F31F40E94921D8195809309 +:103BE000D80108958B3F21F40E94921D819504C055 +:103BF0008C3F29F40E94921D8093D9010895843F3F +:103C000021F48091D501816017C0853F21F4809116 +:103C1000D501826011C0863F21F48091D501846076 +:103C20000BC0873F21F48091D501886005C0883F93 +:103C300031F48091D50180618093D50108958D3F45 +:103C400021F48091D30181600BC08E3F21F48091DB +:103C5000D301826005C08F3F29F48091D301846035 +:103C60008093D3010895803F39F48091D70187FF75 +:103C70006CC01092D70169C0813F29F48091D701AF +:103C80001816BCF362C09091D601823F29F497FFC9 +:103C90005CC01092D60159C0833F19F41916CCF3B9 +:103CA00054C0893F41F48091D80118160CF04DC0E2 +:103CB0001092D8014AC08A3F29F48091D80187FF29 +:103CC00044C0F6CF8B3F39F48091D90187FF3DC0C6 +:103CD0001092D9013AC08C3F29F48091D90118166D +:103CE000BCF333C0843F21F48091D5018E7F17C08F +:103CF000853F21F48091D5018D7F11C0863F21F44D +:103D00008091D5018B7F0BC0873F21F48091D50135 +:103D1000877F05C0883F31F48091D5018F7E8093E5 +:103D2000D50113C08D3F21F48091D3018E7F0BC04C +:103D30008E3F21F48091D3018D7F05C08F3F29F400 +:103D40008091D3018B7F8093D3018091D601811123 +:103D50000EC08091D70181110AC08091D8018111D4 +:103D600006C08091D901811102C01092D40108953A +:103D700085ED91E00E94210F0E941F1B9093D201BC +:103D80008093D10108951F93CF93DF938091D10148 +:103D90009091D2010E942B1BAC019091D4019923E8 +:103DA00021F02091140130E006C0209115018AE035 +:103DB000289F900111244217530708F485C0809171 +:103DC000D601C091D701D091D8011091D9018111AC +:103DD00007C0C11175C0D11173C0111171C074C079 +:103DE0009F3F19F09F5F9093D401181624F40E940E +:103DF000491D8093D6018091D60187FF05C00E949E +:103E0000491D81958093D6011C1624F40E94491DFA +:103E10008093D7018091D70187FF05C00E94491D7B +:103E200081958093D7016091D601662331F1C091CD +:103E3000D701CC2311F1062E000C770B880B990BC0 +:103E40000E943A2223E333E343E35FE30E949E228E +:103E50000E9402226093D6016C2FCC0F770B880B47 +:103E6000990B0E943A2223E333E343E35FE30E948A +:103E70009E220E9402226093D7011D1624F40E9404 +:103E8000921D8093D8018091D80187FF05C00E94C0 +:103E9000921D81958093D801111624F40E94921DE1 +:103EA0008093D9018091D90187FF05C00E94921D9E +:103EB00081958093D901DF91CF911F910C94B81E09 +:103EC0009F3F09F08FCFA0CFDF91CF911F91089531 +:103ED000E5EDF1E085E0DF011D928A95E9F71092AA +:103EE000D4011092D3010895833081F128F48130F8 +:103EF00059F08230D1F00895853009F449C0B8F105 +:103F0000863009F456C0089580911501262F30E0BF +:103F1000280F311D2F3F310524F4680F60931501E0 +:103F200008958FEF80931501089580911401262F35 +:103F300030E0280F311D2F3F310524F4680F6093C6 +:103F4000140108958FEF8093140108958091130157 +:103F5000262F30E0280F311D2F3F310524F4680F44 +:103F60006093130108958FEF80931301089580915A +:103F70001201262F30E0280F311D2F3F310524F488 +:103F8000680F6093120108958FEF809312010895D6 +:103F900080911101262F30E0280F311D2F3F310570 +:103FA00024F4680F6093110108958FEF809311013D +:103FB000089580911001262F30E0280F311D2F3FEA +:103FC000310524F4680F6093100108958FEF8093FA +:103FD00010010895833011F128F4813049F08230C6 +:103FE00091F00895853081F120F18630C1F1089576 +:103FF00080911501681720F4861B809315010895A0 +:1040000010921501089580911401681720F4861B01 +:104010008093140108951092140108958091130162 +:10402000681720F4861B80931301089510921301E2 +:10403000089580911201681720F4861B8093120165 +:10404000089510921201089580911101681720F4CB +:10405000861B80931101089510921101089580919B +:104060001001681720F4861B8093100108951092A8 +:10407000100108950F931F938D3109F46BC008F060 +:104080003FC08E3009F47DC0C0F4873009F46EC0A3 +:1040900068F4863009F0AFC08091CC01817F8E7FBB +:1040A0008093CC0181E08093DB01A6C0883009F4C5 +:1040B00058C08B3009F49BC09EC0863109F497C06C +:1040C00078F4803109F470C0813109F094C00E9405 +:1040D000731490910D0181E0892780930D0187C0B1 +:1040E000893109F484C08B3109F085C08091CC01FD +:1040F00081FB222720F991E0922790FB81F94AC0A9 +:10410000853309F45BC048F4873209F457C008F4DA +:104110005AC0893209F452C06EC0833438F48A33ED +:1041200008F067C0883309F462C065C0833409F4BD +:1041300045C0883409F05FC00E9473140FEF13ED7F +:1041400020E3015010402040E1F700C000000E9431 +:104150007A1B4DC00E94BC210E940A0F0E940008D9 +:1041600046C00E942E1D0E94401D41C09091CC016E +:10417000892F817090FF12C0917F9E7F9093CC0118 +:104180003BC08091CC0182FB222720F991E092274D +:1041900090FB82F98093CC01992349F18091CC0165 +:1041A00081608093CC0123C08091CC0183FB2227C6 +:1041B00020F991E0922790FB83F9ECCF61E070E069 +:1041C00080E090E010C08D5141E050E060E070E090 +:1041D0008A019B0104C0000F111F221F331F8A9503 +:1041E000D2F7C901B8010E942A180E94731481E015 +:1041F00003C08953E9CF80E01F910F91089580E0BB +:1042000008950C94FF20CF93C82F8091DB0181305B +:1042100079F018F08230E9F187C0E0910E01F09159 +:104220000F018081813169F0823209F07FC009C0BD +:10423000E0910E01F0910F018081813111F0823205 +:1042400061F48C2F0E940121811104C08C2F0E94E7 +:104250003A201DC081E090E01AC08C2F0E94FF2000 +:10426000811114C0C43179F048F4CB3079F0C031F9 +:1042700009F060C082E08093DB0108C0C93219F008 +:10428000C83321F057C01092DB0154C081E0817027 +:1042900053C0C93289F118F5C43171F1A8F4C7309F +:1042A00009F046C08AE08093150194E190931401CF +:1042B00093E0909313018093120188E080931101A1 +:1042C00088E28093100134C0CE51C63088F5EC2FBF +:1042D000F0E0E65DFE4F80818093DA0129C0CE34A4 +:1042E000E9F020F4CB3421F56AE013C0C13579F050 +:1042F000C235F1F461E00DC08091DA01882319F034 +:104300001092DA0115C081E08093DB0115C061E0F5 +:1043100006C08091DA010E94741F0AC06AE0809191 +:10432000DA010E94EA1F04C01092DB0180E004C0A1 +:1043300081E002C080E0ABCFCF910895E1E8F0E0EA +:104340008081886080838081816080838FB7F894CA +:1043500093E09093890090ED909388008FBF08952B +:10436000EFE6F0E08081826080830895EFE6F0E080 +:1043700080818D7F80830895EFE6F0E0908182E078 +:104380008927808308951F920F920FB60F921124F0 +:104390002F933F934F935F936F937F938F939F934D +:1043A000AF93BF93EF93FF938091DC019091DD0178 +:1043B00001969093DD018093DC01811103C082E0BE +:1043C0000E940008E091DD01E695E695F0E0E656F2 +:1043D000FA4FE4918091DC018E1303C080E00E94CB +:1043E0000008FF91EF91BF91AF919F918F917F91C5 +:1043F0006F915F914F913F912F910F900FBE0F9052 +:104400001F9018950E9409226894B1110C9498226B +:1044100008950E947D2288F09F5798F0B92F992720 +:10442000B751B0F0E1F0660F771F881F991F1AF09F +:10443000BA95C9F714C0B13091F00E949722B1E04B +:1044400008950C949722672F782F8827B85F39F04A +:10445000B93FCCF3869577956795B395D9F73EF438 +:1044600090958095709561957F4F8F4F9F4F0895E0 +:10447000E89409C097FB3EF49095809570956195FE +:104480007F4F8F4F9F4F9923A9F0F92F96E9BB27B4 +:104490009395F695879577956795B795F111F8CF30 +:1044A000FAF4BB0F11F460FF1BC06F5F7F4F8F4F9B +:1044B0009F4F16C0882311F096E911C0772321F091 +:1044C0009EE8872F762F05C0662371F096E8862F29 +:1044D00070E060E02AF09A95660F771F881FDAF780 +:1044E000880F9695879597F9089557FD9058440F32 +:1044F000551F59F05F3F71F04795880F97FB991F43 +:1045000061F09F3F79F087950895121613061406FF +:10451000551FF2CF4695F1DF08C01616170618068C +:10452000991FF1CF86957105610508940895E89467 +:10453000BB2766277727CB0197F908950E94B12200 +:104540000C9422230E94142338F00E941B2320F095 +:10455000952311F00C940B230C94112311240C942B +:1045600098220E94752270F3959FC1F3950F50E039 +:10457000551F629FF001729FBB27F00DB11D639F15 +:10458000AA27F00DB11DAA1F649F6627B00DA11DBB +:10459000661F829F2227B00DA11D621F739FB00D61 +:1045A000A11D621F839FA00D611D221F749F3327D1 +:1045B000A00D611D231F849F600D211D822F762F6A +:1045C0006A2F11249F5750409AF0F1F088234AF047 +:1045D000EE0FFF1FBB1F661F771F881F91505040B3 +:1045E000A9F79E3F510580F00C940B230C94982260 +:1045F0005F3FE4F3983ED4F3869577956795B7953A +:10460000F795E7959F5FC1F7FE2B880F911D969553 +:10461000879597F9089597F99F6780E870E060E0C3 +:1046200008959FEF80EC089500240A94161617064B +:1046300018060906089500240A9412161306140693 +:1046400005060895092E0394000C11F4882352F0F6 +:10465000BB0F40F4BF2B11F460FF04C06F5F7F4FAE +:104660008F4F9F4F089597FB072E16F4009407D0A5 +:1046700077FD09D00E944D2307FC05D03EF49095AC +:1046800081959F4F0895709561957F4F0895EE0F26 +:10469000FF1F0590F491E02D0994AA1BBB1B51E16B +:1046A00007C0AA1FBB1FA617B70710F0A61BB70BA2 +:1046B000881F991F5A95A9F780959095BC01CD0147 +:1046C0000895F999FECF92BD81BDF89A992780B5DA +:1046D0000895A8E1B0E042E050E00C948423262F36 +:1046E000F999FECF1FBA92BD81BD20BD0FB6F894D7 +:1046F000FA9AF99A0FBE019608950E946F23272F08 +:104700000C947023DC01CB01FC01F999FECF06C0AB +:10471000F2BDE1BDF89A319600B40D92415050407F +:08472000B8F70895F894FFCFEB +:104728002002010891086C08380804080101BA0140 +:1047380028080A03140A3F4D36395B050E05D804CC +:104748009F0432044B0464047D040102030405063B +:044758000708090045 +:00000001FF diff --git a/keyboard/ergodox_ez/keymaps/mpiechotka/readme.md b/keyboard/ergodox_ez/keymaps/mpiechotka/readme.md new file mode 100644 index 0000000000..785400d1d2 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/mpiechotka/readme.md @@ -0,0 +1,6 @@ +# ErgoDox EZ mpiechotka Configuration + +Modification of ErgoDox EZ Colemak layout with additional QWERTY/software Colemak layer and change of the special keys. + + + diff --git a/keyboard/ergodox_ez/keymaps/msc/img/code_layer.png b/keyboard/ergodox_ez/keymaps/msc/img/code_layer.png new file mode 100644 index 0000000000..7b5efaae79 Binary files /dev/null and b/keyboard/ergodox_ez/keymaps/msc/img/code_layer.png differ diff --git a/keyboard/ergodox_ez/keymaps/msc/img/main_layer.png b/keyboard/ergodox_ez/keymaps/msc/img/main_layer.png new file mode 100644 index 0000000000..65f92dda1b Binary files /dev/null and b/keyboard/ergodox_ez/keymaps/msc/img/main_layer.png differ diff --git a/keyboard/ergodox_ez/keymaps/msc/img/media_layer.png b/keyboard/ergodox_ez/keymaps/msc/img/media_layer.png new file mode 100644 index 0000000000..a69799b073 Binary files /dev/null and b/keyboard/ergodox_ez/keymaps/msc/img/media_layer.png differ diff --git a/keyboard/ergodox_ez/keymaps/msc/keymap.c b/keyboard/ergodox_ez/keymaps/msc/keymap.c new file mode 100644 index 0000000000..e567e513f9 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/msc/keymap.c @@ -0,0 +1,184 @@ +#include "ergodox_ez.h" +#include "debug.h" +#include "action_layer.h" + +#define BASE 0 // default layer +#define SYMB 1 // symbols +#define MDIA 2 // media keys + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Keymap 0: Basic layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | = | 1 | 2 | 3 | 4 | 5 | LEFT | | RIGHT| 6 | 7 | 8 | 9 | 0 | - | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | Del | Q | W | E | R | T | L1 | | L1 | Y | U | I | O | P | \ | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | BkSp | A | S | D | F | G |------| |------| H | J | K | L | ; |' / Cmd | + * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------| + * | LShift |Z/Ctrl| X | C | V | B | | | | N | M | , | . |//Ctrl| RShift | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | Cmd | Alt |AltShf| Left | Right| | Left | Down | Up |Right | L2 | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | App | LGui | | Alt |Ctrl/Esc| + * ,------|------|------| |------+--------+------. + * | | | Home | | PgUp | | | + * | Space|Backsp|------| |------| Tab |Enter | + * | |ace | End | | PgDn | | | + * `--------------------' `----------------------' + */ +// If it accepts an argument (i.e, is a function), it doesn't need KC_. +// Otherwise, it needs KC_* +[BASE] = KEYMAP( // layer 0 : default + // left hand + KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LEFT, + KC_DELT, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(SYMB), + KC_BSPC, KC_A, KC_S, KC_D, KC_F, KC_G, + KC_LSFT, CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, ALL_T(KC_NO), + KC_LGUI,KC_LALT, LALT(KC_LSFT), KC_LEFT,KC_RGHT, + ALT_T(KC_APP), KC_LGUI, + KC_HOME, + KC_SPC,KC_BSPC,KC_END, + // right hand + KC_RGHT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + TG(SYMB), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, + KC_H, KC_J, KC_K, KC_L, KC_SCLN,GUI_T(KC_QUOT), + MEH_T(KC_NO),KC_N, KC_M, KC_COMM,KC_DOT, CTL_T(KC_SLSH), KC_RSFT, + KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, TG(MDIA), + KC_LALT, CTL_T(KC_ESC), + KC_PGUP, + KC_PGDN,KC_TAB, KC_ENT + ), +/* Keymap 1: Symbol Layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | ! | @ | { | } | | | | | | Up | 7 | 8 | 9 | * | F12 | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | # | $ | ( | ) | ` |------| |------| Down | 4 | 5 | 6 | + | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | \ | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | | . | 0 | = | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// SYMBOLS +[SYMB] = KEYMAP( + // left hand + KC_TRNS,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS, + KC_TRNS,KC_EXLM,KC_AT, KC_LCBR,KC_RCBR,KC_PIPE,KC_TRNS, + KC_TRNS,KC_HASH,KC_DLR, KC_LPRN,KC_RPRN,KC_GRV, + KC_TRNS,KC_PERC,KC_CIRC,KC_LBRC,KC_RBRC,KC_TILD,KC_TRNS, + KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, + KC_TRNS,KC_TRNS, + KC_TRNS, + KC_TRNS,KC_TRNS,KC_TRNS, + // right hand + KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + KC_TRNS, KC_UP, KC_7, KC_8, KC_9, KC_ASTR, KC_F12, + KC_DOWN, KC_4, KC_5, KC_6, KC_PLUS, KC_TRNS, + KC_TRNS, KC_AMPR, KC_1, KC_2, KC_3, KC_BSLS, KC_TRNS, + KC_TRNS,KC_DOT, KC_0, KC_EQL, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS +), +/* Keymap 2: Media and mouse keys + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | | MsUp | | | | | | | | | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | |MsLeft|MsDown|MsRght| |------| |------| | | | | | Play | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | | | | | | Mute | | | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | Prev |VolDn |VolUp | Next | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | |Brwser| + * | Lclk | Rclk |------| |------| |Back | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// MEDIA AND MOUSE +[MDIA] = KEYMAP( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_BTN1, KC_BTN2, KC_TRNS, + // right hand + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, + KC_TRNS, KC_TRNS, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_MPRV, KC_VOLD, KC_VOLU, KC_MNXT, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_WBAK +), +}; + +const uint16_t PROGMEM fn_actions[] = { + [1] = ACTION_LAYER_TAP_TOGGLE(SYMB) // FN1 - Momentary Layer 1 (Symbols) +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch(id) { + case 0: + if (record->event.pressed) { + register_code(KC_RSFT); + } else { + unregister_code(KC_RSFT); + } + break; + } + return MACRO_NONE; +}; + +// Runs just one time when the keyboard initializes. +void matrix_init_user(void) { + +}; + +// Runs constantly in the background, in a loop. +void matrix_scan_user(void) { + + uint8_t layer = biton32(layer_state); + + ergodox_board_led_off(); + ergodox_right_led_1_off(); + ergodox_right_led_2_off(); + ergodox_right_led_3_off(); + switch (layer) { + // TODO: Make this relevant to the ErgoDox EZ. + case 1: + ergodox_right_led_1_on(); + break; + case 2: + ergodox_right_led_2_on(); + break; + default: + // none + break; + } + +}; diff --git a/keyboard/ergodox_ez/keymaps/msc/msc.hex b/keyboard/ergodox_ez/keymaps/msc/msc.hex new file mode 100644 index 0000000000..a466a37af7 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/msc/msc.hex @@ -0,0 +1,1118 @@ +:100000000C9465020C94A9020C94A9020C94A90208 +:100010000C94A9020C94A9020C94A9020C94A902B4 +:100020000C94A9020C94A9020C94AD0B0C947F0CB7 +:100030000C94A9020C94A9020C94A9020C94A90294 +:100040000C94A9020C9404210C94A9020C94A9020A +:100050000C94A9020C94951A0C94A9020C94A90270 +:100060000C94A9020C94A9020C94A9020C94A90264 +:100070000C94A9020C94A9020C94A9020C94A90254 +:100080000C94A9020C94A9020C94A9020C94A90244 +:100090000C94A9020C94A9020C94A9020C94A90234 +:1000A0000C94A9020C94A9020C94A902EC0C0E0D5C +:1000B000FC0D0E0DFC0D530D760DFC0DCB0DDE0D64 +:1000C000C010C010EF10EF10321170118913891396 +:1000D000891189138A128A125D1389138913741383 +:1000E0000000F0A12E004C002A00E100E300000017 +:1000F0001E00140004001D71E2004D001F001A00D4 +:1001000016001B00E1042A0020000800070006007A +:1001100050002C0021001500090019004F004A0072 +:10012000220017000A000500000065745000015409 +:100130000000007F0000E3004F0001540000007742 +:100140000000E20023001C000B00110000002971D8 +:10015000240018000D00100050004B0025000C007A +:100160000E00360051002800260012000F00370054 +:1001700052002B0027001300330038714F004E004F +:100180002D0031003478E500025400000100010028 +:1001900001000100010000003A001E0220022202BC +:1001A000010001003B001F022102230201000100A7 +:1001B0003C002F0226022F00010001003D0030020A +:1001C00027023000010001003E00310235003502F7 +:1001D000000001000100010000000100000001001A +:1001E0000100010000000100000001003F0052007A +:1001F00051002402000001004000240021001E00E4 +:10020000010001004100250022001F00370001000D +:1002100042002600230020002700010043002502A1 +:100220002E0231002E0001004400450001000100B3 +:1002300001000000010001000100010001000000B8 +:1002400001000100010001000100010001000100A6 +:10025000F20001000100F5000100F000F1000100D2 +:100260000100F40001000100F300010001000100A1 +:100270000100010001000100000001000100010077 +:100280000000010000000100010001000000010069 +:100290000000010001000100010001000000010058 +:1002A000010001000100A800AC00010001000100F4 +:1002B00001000100AA00B6000100010001000100D8 +:1002C000A90001000100010001000100AB000100D4 +:1002D00001000100AE00010001000000160345000E +:1002E000720067006F0044006F0078002000450036 +:1002F0005A00000016034500720067006F004400BA +:100300006F007800200045005A0000000403090433 +:1003100009026D00040100A0FA09040000010301B4 +:100320000100092111010001223F00070581030896 +:10033000000A090401000103010200092111010062 +:1003400001224D000705820308000A09040200018A +:100350000300000009211101000122360007058376 +:100360000308000A09040300010300000009211129 +:100370000100012239000705840310000112011059 +:100380000100000008EDFE07130100010200010555 +:10039000010906A101050719E029E71500250195C6 +:1003A0000875018102050819012905950575019156 +:1003B000029501750391010507190029771500259C +:1003C00001957875018102C005010980A1018502AE +:1003D00016010026B7001A01002AB7007510950112 +:1003E0008100C0050C0901A1018503160100269CAE +:1003F000021A01002A9C02751095018100C00501B6 +:100400000902A1010901A100050919012905150029 +:10041000250195057501810295017503810105018D +:10042000093009311581257F950275088106093843 +:100430001581257F950175088106050C0A3802157E +:1004400081257F950175088106C0C005010906A1B7 +:1004500001050719E029E7150025019508750181B7 +:100460000295017508810105081901290595057591 +:100470000191029501750391010507190029FF15E6 +:100480000025FF950675088100C0000000000000EF +:100490000000000000010204060A0F17202C3A4A4F +:1004A0005D71879DB3C7DAE9F5FCFFFCF5E9DAC7B2 +:1004B000B39D87715D4A3A2C20170F0A060402018A +:1004C0000000000000000000000011241FBECFEF5C +:1004D000DAE0DEBFCDBF04B603FE24C08091EE019A +:1004E0009091EF01A091F001B091F1018730904B14 +:1004F000A740B04BB9F41092EE011092EF011092A8 +:10050000F0011092F10114BE84B7877F84BF88E1A7 +:100510000FB6F89480936000109260000FBEE0E088 +:10052000FFE3099511E0A0E0B1E0ECE8F5E402C0DA +:1005300005900D92A433B107D9F711E0A4E3B1E01F +:1005400001C01D92AE3EB107E1F70E94F1080C9484 +:10055000C4220C94000061110BC0FC01828188232D +:1005600021F085EE0E945D0F03C085EE0E942510EC +:1005700080E090E0089508956091B1017091B2011A +:100580008091B3019091B4010E94C41956985E986D +:1005900025982D9826982E9827982F98813019F015 +:1005A000823021F00895259A2D9A0895269A2E9A40 +:1005B00008950C94BC0256985E9825982D9826981C +:1005C0002E9827982F988FEF90E090938900809332 +:1005D000880090938B0080938A0090938D00809385 +:1005E0008C00259A2D9A2FEF80E792E021508040D1 +:1005F0009040E1F700C00000269A2E9A2FEF80E786 +:1006000092E0215080409040E1F700C00000279A1E +:100610002F9A2FEF80E792E0215080409040E1F741 +:1006200000C0000025982D982FEF80E792E0215020 +:1006300080409040E1F700C0000026982E982FEFF0 +:1006400080E792E0215080409040E1F700C0000038 +:1006500027982F9856985E9825982D9826982E982A +:1006600027982F98089589EA8093800089E08093E5 +:10067000810024982C983F988AB18F748AB96E981B +:10068000479A8BB1806B8BB9769A0E94DB020C94EF +:10069000BB0280E2809300018091340181110EC081 +:1006A0000E94980381E0809334012FEF83ED90E363 +:1006B000215080409040E1F700C0000080E40E949B +:1006C0009E038093000181112EC00E94C803809375 +:1006D0000001811128C00E94C8038093000181118C +:1006E00022C08FE30E94C8038093000181111BC0C8 +:1006F0000E94C00380E40E949E0380930001811148 +:1007000012C08CE00E94C8038093000181110BC0CD +:100710000E94C80380930001811105C08FE30E94ED +:10072000C803809300010E94C003809100010895D6 +:100730001092B9008AE08093B800089594EA9093EB +:10074000BC009091BC0097FFFCCF9091B900987FBE +:10075000983021F0903111F081E008958093BB0032 +:1007600084E88093BC008091BC0087FFFCCF80911F +:10077000B900887F883111F0803471F780E00895E6 +:1007800084E98093BC008091BC0084FDFCCF089577 +:100790008093BB0084E88093BC008091BC0087FFFD +:1007A000FCCF9091B900987F81E0983209F480E005 +:1007B000089584E88093BC008091BC0087FFFCCF43 +:1007C0008091BB00089580910001811115C080E4E3 +:1007D0000E949E038093000181110CC082E10E945F +:1007E000C80380930001811105C08FEF0E94C803E8 +:1007F000809300010E94C00384B1807F84B985B1D9 +:10080000807F85B98AB1837F8AB98BB1837F8BB9A9 +:100810003E98469808950E944903809300010E94E3 +:10082000E30380B38C7080BB81B3836F81BBA6E38D +:10083000B1E0E4E4F1E08EE08E0F11921D928E1390 +:10084000FCCF0C943303BF92CF92DF92EF92FF92D2 +:100850000F931F93CF93DF9380910001882379F04A +:10086000809135018F5F80933501811108C00E940E +:10087000490380930001811102C00E94DB0206E35C +:1008800011E0C0E0D0E0DD24D39482E0C82EEE2455 +:10089000E394F12CC730D10500F58091000181115E +:1008A00064C080E40E949E0380930001811112C005 +:1008B00082E10E94C8038093000181110BC0C7012F +:1008C0000C2E01C0880F0A94EAF780950E94C80395 +:1008D000809300010E94C00348C0CA30A1F028F4F0 +:1008E000C83059F0C93061F005C0CC3089F070F0E3 +:1008F000CD3089F0209A289810C0219A29980DC0EF +:10090000229A2A980AC0239A2B9807C0529A01C0AB +:10091000539A5B9802C03E9A469890EA9A95F1F7EE +:100920009FB1799902C082E001C080E091709D255D +:10093000982B7C9902C084E001C080E0892B7D99CE +:1009400002C038E001C030E0832B7E9902C020E174 +:1009500001C020E0822B9FB19095991F9927991F84 +:100960009295990F907E892B0FC080910001811183 +:1009700049C080E40E949E0380930001882379F19E +:10098000B12C0E94C0038B2DF8019081981719F0AB +:100990008083C09201010E94E30321960F5F1F4FE5 +:1009A000CE30D10509F076CF80910101882361F125 +:1009B000815080930101882339F08FE99FE00197EE +:1009C000F1F700C0000020C0A4E4B1E0E6E3F1E0EC +:1009D000CF01825F91919D938E13FCCF15C083E16F +:1009E0000E94C803809300018111CACF81E40E9454 +:1009F0009E03809300018111C3CF0E94D903B82EBA +:100A0000B094BFCF80E0C0CF0E94D90281E0DF91D7 +:100A1000CF911F910F91FF90EF90DF90CF90BF90FB +:100A20000895E82FF0E0EC5BFE4F80810895089573 +:100A30008B3B910578F4883A910540F5853A91050C +:100A4000D0F48430910508F0B1C08130910509F4EB +:100A5000ADC06BC0803E910508F467C0883E91052B +:100A600008F4A4C09C01205F31092031310508F051 +:100A70005CC090650895853A910509F459C0863A9D +:100A8000910509F058C082E890E40895883A9105EC +:100A900009F454C0893A910509F453C08A3A910582 +:100AA00009F452C08B3A910509F451C08C3A910572 +:100AB00009F450C08D3A910509F44FC0803B91056F +:100AC00009F44EC08E3A910509F44DC08F3A910554 +:100AD00009F44CC0813B910509F44BC0823B910560 +:100AE00009F44AC0833B910509F449C0843B910550 +:100AF00009F448C0853B910509F447C0863B910540 +:100B000009F446C0873B910509F445C0883B91052F +:100B100009F444C0893B910509F443C08A3B91051F +:100B200009F442C080E094E4089580E090E00895E4 +:100B300081E890E4089583E890E4089582EE94E4D7 +:100B4000089589EE94E408958AEE94E4089585EB7F +:100B500094E4089586EB94E4089587EB94E4089573 +:100B60008CEC94E408958DEC94E4089583E895E486 +:100B700008958AE895E4089582E995E4089584E962 +:100B800095E4089581E296E4089583E296E4089559 +:100B900084E296E4089585E296E4089586E296E478 +:100BA000089587E296E408958AE296E40895089508 +:100BB00096E0799FF001112494E5899FE00DF11DE5 +:100BC0001124E60FF11DEE0FFF1FEC51FF4F859131 +:100BD00094910895880F991FFC01E05AF040859187 +:100BE00094910895880F991FFC01E052FF4F859161 +:100BF0009491089526E0729FF001112444E5849FAA +:100C0000E00DF11D1124E60FF11DEE0FFF1FEC5159 +:100C1000FF4F859194919C013A9521154FE134073E +:100C200008F41AC13F512115304120F49F700E94F1 +:100C3000F20508959C0130532115304118F499278D +:100C4000906C0895811520E5920769F40E94AB131A +:100C50004FEF84E39CE0415080409040E1F700C0BA +:100C600000000C94BA1A813020E5920731F480918B +:100C7000CC0181608093CC0108959C0130552115F1 +:100C8000304108F051C0292F33272F7033272130EE +:100C90003105D9F4AC014370552702C0220F331F30 +:100CA0004A95E2F73C68AC0164E0440F551F6A9531 +:100CB000E1F744275370242B352B73E0880F991FDD +:100CC0007A95E1F7807699271DC02230310529F405 +:100CD000982F8827816F906A089523303105A9F4F1 +:100CE000AC014370552721E030E002C0220F331FD2 +:100CF0004A95E2F73C6843E0880F991F4A95E1F76F +:100D0000807E9770822B932B089524303105E1F477 +:100D1000AC014370552721E030E002C0220F331FA1 +:100D20004A95E2F73A68E7CF9C01305721153041E8 +:100D300018F49F70906208959C013058211530413D +:100D400018F49F70906A0895803E9105E0F4803C0D +:100D5000910558F58133910509F46FC048F4893243 +:100D6000910509F463C08A32910509F46DC072C01F +:100D700089339105E9F082389105D1F085339105E9 +:100D800009F44DC067C0833E910581F138F4803E7F +:100D90009105B9F0823E9105D9F05CC0863E91057F +:100DA00061F1873E9105A1F155C00E94EA050895C1 +:100DB0002091DF0120FD02C021FF4CC080EE90E0B9 +:100DC00049C08091DF0180FFF9CF89E390E042C004 +:100DD0008091DF0182FF0EC08091DF0184FF03C09C +:100DE00080E090E037C083EE90E034C08091DF0176 +:100DF00082FFF2CF82EE90E02DC08091DF0183FF71 +:100E00000BC08091DF0184FDEBCF87EE90E022C024 +:100E10008091DF0183FFF5CF86EE90E01BC08091CB +:100E2000DF0185FF07C089E290E014C08091DF01F7 +:100E300085FFF9CF85E390E00DC08091DF0186FF4B +:100E400007C08AE290E006C08091DF0186FFF9CFFB +:100E500081E390E00E941805089508950C942D07F1 +:100E6000809162010895CF93DF9300D01F92CDB798 +:100E7000DEB79C018091E501843019F593E09983F8 +:100E80003B832A839093E9008FEF9091E800815093 +:100E900095FD06C095ED9A95F1F700008111F5CF0B +:100EA0008091E80085FF0DC040E050E063E070E015 +:100EB000CE0101960E949D098091E8008E77809373 +:100EC000E8000F900F900F90DF91CF910895CF938E +:100ED000DF9300D01F92CDB7DEB72091E50124301B +:100EE00021F522E029839B838A8383E08093E900B4 +:100EF0008FEF9091E800815095FD06C095ED9A9591 +:100F0000F1F700008111F5CF8091E80085FF0DC059 +:100F100040E050E063E070E0CE0101960E949D0940 +:100F20008091E8008E778093E8000F900F900F90EB +:100F3000DF91CF9108952091E5012430F1F422E072 +:100F40002093E9002FEF3091E800215035FD06C0D5 +:100F500035ED3A95F1F700002111F5CF2091E80029 +:100F600025FF0BC040E050E065E070E00E949D0965 +:100F70008091E8008E778093E8000895CF93DF9307 +:100F8000EC019091E501943009F046C080910C018C +:100F90008823D9F080910D018823B9F09093E9005E +:100FA0008FEF9091E800815095FD06C095E19A95EC +:100FB000F1F700008111F5CF8091E80085FF2CC08A +:100FC00040E050E060E170E017C081E08093E9000C +:100FD0008FEF9091E800815095FD06C095ED9A95B0 +:100FE000F1F700008111F5CF8091E80085FF14C072 +:100FF00040E050E068E070E0CE010E949D098091E1 +:10100000E8008E778093E80080E1FE01A2E5B1E080 +:1010100001900D928A95E1F7DF91CF91089580912B +:10102000E401811109C00E94320B0E948F0B809154 +:10103000E20084608093E20008951092E401089534 +:1010400008950C94F1200E94501A0E94F7200E94EB +:10105000350E0C942E0742E061EC81E00E94AC0A50 +:1010600042E061EC82E00E94AC0A42E061EC83E085 +:101070000E94AC0A42E161EC84E00C94AC0A8091DD +:10108000E701833009F455C030F4813071F08230CB +:1010900009F48EC008958A3009F47AC08B3009F4BF +:1010A00060C0893009F09CC020C08091E601813A7F +:1010B00009F096C08091E800877F8093E8008091D6 +:1010C000EA019091EB01892B21F460E182E591E046 +:1010D00003C060E080E090E070E00E94E809809149 +:1010E000E8008B778093E80008958091E6018132D3 +:1010F00009F076C08091EA019091EB01009719F018 +:10110000039709F06DC08091E800877F8093E80025 +:101110008091E80082FD05C08091E5018111F8CF42 +:101120005FC08091F100809362018091E8008B772D +:1011300053C08091E601813A09F052C08091EA01E2 +:101140009091EB01892B09F04BC08091E800877FDB +:101150008093E8008091E80080FFFCCF80910C0133 +:1011600036C08091E6018132D9F58091EA019091F3 +:10117000EB01892BA9F58091E800877F8093E80037 +:101180000E94E10A8091E80180930C010C94AB135A +:101190008091E601813221F58091E800877F80937C +:1011A000E8000E94E10A8091E901809363010895BB +:1011B0008091E601813AA1F48091E800877F8093D5 +:1011C000E8008091E80080FFFCCF8091630180936C +:1011D000F1008091E8008E778093E8000C94E10A9A +:1011E000089584B7877F84BF88E10FB6F894809311 +:1011F0006000109260000FBE90E080E80FB6F89497 +:1012000080936100909361000FBE0E94840E0E9443 +:10121000320B0E948F0B8091E20084608093E20089 +:1012200078940E94150E0E94860E82E091E00E9442 +:10123000300E0E94DF208091E501853069F40E9424 +:10124000141A8091E3018823B1F30E943C1A882389 +:1012500091F30E948709EFCF0E948C0EECCF292FCB +:10126000332723303105C9F064F42130310581F092 +:101270002230310509F043C08DE690E020E133E0F3 +:1012800042C021323105F1F02232310541F137C03F +:1012900082E190E02DE733E036C099278130910557 +:1012A00041F08230910541F0892B49F5ECE0F3E003 +:1012B00005C0E4EFF2E002C0ECEDF2E0849190E0D2 +:1012C0009F0121C06430D8F4E62FF0E0EE0FFF1F3D +:1012D000EE5DFE4F2081318189E090E014C06430E2 +:1012E00070F470E0FB01EE0FFF1FE65EFE4F208101 +:1012F0003181FB01EA5EFE4F808190E004C080E016 +:1013000090E020E030E0FA0131832083089580E10D +:1013100089BD82E189BD09B400FEFDCF8091D8006E +:101320008F7D8093D8008091E00082608093E00000 +:101330008091E00081FDFCCF0895CF92DF92EF9283 +:10134000FF920F931F93CF93DF93EC018B016A0100 +:101350000E94000B811133C0C114D10439F0F60191 +:1013600080819181081B190BC80FD91FE12CF12C2A +:101370000115110519F18091E80085FD16C08091D5 +:10138000E8008E778093E800C114D10449F0F6019B +:1013900080819181E80EF91EF182E08285E00FC024 +:1013A0000E94000B882321F30AC089918093F100E9 +:1013B00001501109FFEFEF1AFF0ADACF80E0DF9149 +:1013C000CF911F910F91FF90EF90DF90CF900895F4 +:1013D0002091EC013091ED012617370748F0611597 +:1013E000710539F42091E8002E772093E80001C0C0 +:1013F000B90140E061157105A9F12091E5012223B1 +:1014000009F443C0253009F442C02091E80023FDCF +:1014100040C02091E80022FD32C02091E80020FF6A +:10142000E9CF4091F3002091F20030E0342BFC0131 +:10143000CF016115710559F02830310540F48191D3 +:101440008093F100615071092F5F3F4FF1CF41E070 +:101450002830310509F040E02091E8002E772093F4 +:10146000E800C8CF4111C9CF0AC08091E5018823A7 +:1014700061F0853061F08091E80083FD0AC08091C1 +:10148000E80082FFF2CF80E0089582E0089583E0D3 +:10149000089581E008952091EC013091ED01261727 +:1014A000370748F06115710539F42091E8002E776F +:1014B0002093E80001C0B901FC0120E0611571052D +:1014C00091F18091E501882309F440C0853009F449 +:1014D0003FC08091E80083FD3DC08091E80082FD1F +:1014E0002FC08091E80080FFE9CF2091F300809128 +:1014F000F20090E0922B6115710559F0883091054A +:1015000040F424912093F1003196615071090196C5 +:10151000F2CF21E0089709F020E08091E8008E7773 +:101520008093E800CBCF2111CCCF0AC08091E50198 +:10153000882361F0853061F08091E80083FD0AC066 +:101540008091E80082FFF2CF80E0089582E0089564 +:1015500083E0089581E00895982F973058F590938F +:10156000E900981739F07091EC002091ED0050914E +:10157000F00003C0242F762F50E021FF19C03091D6 +:10158000EB003E7F3093EB003091ED003D7F3093D8 +:10159000ED003091EB0031603093EB007093EC0084 +:1015A0002093ED005093F0002091EE0027FF07C03C +:1015B0009F5FD3CF8F708093E90081E0089580E032 +:1015C00008958091E60187FF11C08091E80082FDB7 +:1015D00005C08091E5018111F8CF11C08091E8002C +:1015E0008B770BC08091E501882349F08091E8005A +:1015F00080FFF8CF8091E8008E778093E80008950F +:101600002091E4003091E50095E64091EC00842FB4 +:10161000817040FF22C08091E80080FD1CC0809155 +:10162000E501882391F0853091F08091EB0085FDF4 +:1016300010C04091E4005091E5004217530729F390 +:101640009A01915011F784E0089582E0089583E0B3 +:10165000089581E0089580E008954091E80042FFF8 +:10166000DECF08950E94A00B0E94A80BE0EEF0E0F0 +:10167000808181608083E8EDF0E080818F778083D6 +:1016800019BCA7EDB0E08C918E7F8C9380818F7E0A +:1016900080831092E40108950F931F93CF93DF93FB +:1016A0000E94A00B0E94A80BC8EDD0E088818F7724 +:1016B000888388818068888388818F7D888319BC2E +:1016C0001092E5011092E1011092E3011092E20103 +:1016D00000EE10E0F80180818B7F8083888181603B +:1016E000888342E060E080E00E94AC0AE1EEF0E036 +:1016F00080818E7F8083E2EEF0E080818160808354 +:10170000808188608083F80180818E7F80838881DA +:1017100080618883DF91CF911F910F910895E8ED4B +:10172000F0E080818F7E8083E7EDF0E08081816052 +:10173000808384E082BF81E08093E4010C944C0BB1 +:10174000E8EDF0E080818E7F80831092E2000895C2 +:101750001092DA001092E10008951F920F920FB6D6 +:101760000F9211242F933F934F935F936F937F9327 +:101770008F939F93AF93BF93EF93FF938091E1007B +:1017800082FF0BC08091E20082FF07C08091E100E0 +:101790008B7F8093E1000E94140E8091DA0080FF1D +:1017A0001FC08091D80080FF1BC08091DA008E7F1F +:1017B0008093DA008091D90080FF0DC080E189BD5F +:1017C00082E189BD09B400FEFDCF81E08093E5018F +:1017D0000E940F0805C019BC1092E5010E941D0867 +:1017E0008091E10080FF19C08091E20080FF15C068 +:1017F0008091E2008E7F8093E2008091E200806120 +:101800008093E2008091D80080628093D80019BC58 +:1018100085E08093E5010E9421088091E10084FF2A +:1018200030C08091E20084FF2CC080E189BD82E15C +:1018300089BD09B400FEFDCF8091D8008F7D8093D3 +:10184000D8008091E1008F7E8093E1008091E200DA +:101850008F7E8093E2008091E20081608093E200BD +:101860008091E101882311F084E007C08091E300BA +:1018700087FD02C081E001C083E08093E5010E9402 +:1018800023088091E10083FF29C08091E20083FF5B +:1018900025C08091E100877F8093E10082E0809302 +:1018A000E5011092E1018091E1008E7F8093E100DB +:1018B0008091E2008E7F8093E2008091E20080615F +:1018C0008093E20042E060E080E00E94AC0A8091F8 +:1018D000F00088608093F0000E942008FF91EF9153 +:1018E000BF91AF919F918F917F916F915F914F9138 +:1018F0003F912F910F900FBE0F901F9018951F9240 +:101900000F920FB60F9211242F933F934F935F9333 +:101910006F937F938F939F93AF93BF93CF93DF93F7 +:10192000EF93FF93C091E900CF708091EC00D82F26 +:10193000D17080FDD0E81092E9008091F000877F9F +:101940008093F00078940E94C30C1092E90080917B +:10195000F00088608093F000CD2BCF70C093E90039 +:10196000FF91EF91DF91CF91BF91AF919F918F91B7 +:101970007F916F915F914F913F912F910F900FBE8B +:101980000F901F9018951F93CF93DF93CDB7DEB7BD +:10199000AA970FB6F894DEBF0FBECDBFE6EEF1E01A +:1019A00088E08E0F9091F10091938E13FBCF0E94EF +:1019B0003F088091E80083FF1FC18091E60190916C +:1019C000E701492F50E04A30510508F015C1FA01EE +:1019D000EA5AFF4F0C947922803881F0823809F05E +:1019E0000BC18091EA018F708093E9008091EB0038 +:1019F00085FB882780F91092E90006C08091E201FA +:101A00009091E301911182609091E800977F90930B +:101A1000E8008093F1001092F100C8C0282F2D7FBC +:101A200009F0EAC0882319F0823061F0E5C08091A6 +:101A3000E801813009F0E0C0933009F080E0809344 +:101A4000E3012BC08091E801811127C08091EA0158 +:101A50008F7009F4D1C08093E9002091EB0020FF42 +:101A60001CC0933021F48091EB00806214C09091EF +:101A7000EB0090619093EB0021E030E0A90102C0FF +:101A8000440F551F8A95E2F74093EA001092EA004E +:101A90008091EB0088608093EB001092E9008091C8 +:101AA000E800877F86C08111A7C01091E8011F77E9 +:101AB0008091E3008078812B8093E3008091E8009F +:101AC000877F8093E8000E94E10A8091E80080FF10 +:101AD000FCCF8091E30080688093E300111102C085 +:101AE00082E001C083E08093E50186C080588230A7 +:101AF00008F082C08091E8019091E9018C3D53E0AB +:101B0000950779F583E08A838AE289834FB7F89451 +:101B1000DE01139620E03EE051E2E32FF0E0509327 +:101B20005700E49120FF03C0E295EF703F5FEF7034 +:101B30008E2F90E0EA3010F0C79601C0C0968D93CA +:101B40009D932F5F243149F74FBF8091E800877F35 +:101B50008093E8006AE270E0CE0101960E94E809F5 +:101B600014C0AE014F5F5F4F6091EA010E942F09E0 +:101B7000BC01892B09F440C09091E800977F9093B5 +:101B8000E80089819A810E944B0A8091E8008B7756 +:101B90008093E80031C0803879F58091E800877F34 +:101BA0008093E8008091E1018093F1008091E8004A +:101BB0008E778093E8000E94E10A1EC081111CC04C +:101BC0009091E8019230C0F48091E800877F809383 +:101BD000E8009093E1010E94E10A8091E101811106 +:101BE00006C08091E30087FD02C081E001C084E06F +:101BF0008093E5010E942B088091E80083FF0AC0D2 +:101C00008091E800877F8093E8008091EB008062FC +:101C10008093EB00AA960FB6F894DEBF0FBECDBF3F +:101C2000DF91CF911F9108950895CF938091E501A1 +:101C30008823A1F0C091E900CF709091EC00892F2A +:101C4000817090FD80E8C82B1092E9008091E80037 +:101C500083FD0E94C30CCF70C093E900CF9108951B +:101C600090936901809368010895E0916801F09173 +:101C70006901309721F00190F081E02D099480E016 +:101C80000895E0916801F0916901309721F0028098 +:101C9000F381E02D09940895E0916801F0916901C4 +:101CA000309721F00480F581E02D0994089520916A +:101CB0006601309167018217930771F09093670175 +:101CC00080936601E0916801F0916901309721F0FD +:101CD0000680F781E02D09940895209164013091E8 +:101CE00065018217930771F09093650180936401F9 +:101CF000E0916801F0916901309721F00084F1854D +:101D0000E02D0994089508950C94830E0E94561AAC +:101D10000E940B040C941C1BCF92DF92EF92FF9257 +:101D20000F931F93CF93DF93CDB7DEB72B970FB6EB +:101D3000F894DEBF0FBECDBF0E9423048BE6C82EF1 +:101D400081E0D82E00E010E0E02E802F0E941105E7 +:101D5000F60141916F01F42EF826B1F40F5F1F4F89 +:101D60000E30110589F78FEF89838A831B820E94C9 +:101D70005F1A8160782F9D838C8349815A816B81A2 +:101D80008D810E942F0F40C09091CC0191FF04C023 +:101D90008B870E9417058B8520E030E04F2D50E0A7 +:101DA000922FBA01022E02C0759567950A94E2F748 +:101DB00060FF24C02E83EF8221E030E0690102C081 +:101DC000CC0CDD1C9A95E2F790E08C219D21892BAB +:101DD00009F420E028870E945F1A8160782F9A8793 +:101DE00089874E815F8168858A850E942F0FF8015F +:101DF000E559FE4F8081C826C08206C02F5F3F4F45 +:101E00002630310569F6AACF0E94031E10916A019F +:101E10000E94350E1817A1F00E94350E80936A01BA +:101E20002B960FB6F894DEBF0FBECDBFDF91CF91DA +:101E30001F910F91FF90EF90DF90CF900C942E07A1 +:101E40002B960FB6F894DEBF0FBECDBFDF91CF91BA +:101E50001F910F91FF90EF90DF90CF900895CF9357 +:101E6000DF93CDB7DEB72B970FB6F894DEBF0FBE6A +:101E7000CDBF4F83588769877A878B87DE0111969C +:101E800086E0FD0111928A95E9F785E0FE0137961B +:101E900001900D928A95E1F749815A816B817C818D +:101EA0008D819E810E9445162B960FB6F894DEBF59 +:101EB0000FBECDBFDF91CF910895CF93882309F452 +:101EC000C2C0C82F823859F40E94350E81FDBBC0B4 +:101ED00089E30E94E1180E949E1989E30CC08338AF +:101EE00079F40E94350E80FDAEC083E50E94E118B2 +:101EF0000E949E1983E50E942319CF910C949E198C +:101F0000843859F40E94350E82FD9DC087E40E94FA +:101F1000E1180E949E1987E4EECF8CEF8C0F813A76 +:101F200048F48C2F0E94442081118DC08C2F0E9478 +:101F3000E118E3CF80E28C0F883048F4C77081E06D +:101F400001C0880FCA95EAF70E946719D6CF8BE5C2 +:101F50008C0F833078F4C53A29F0C63A31F083E823 +:101F600090E005C081E890E002C082E890E0CF9167 +:101F70000C94570E88E58C0F833108F064C0C83A82 +:101F800039F1C93A41F1CA3A49F1CB3A51F1CC3A67 +:101F900059F1CD3A61F1C03B69F1CE3A71F1CF3AD6 +:101FA00079F1C13B81F1C23B89F1C33B91F1C43B63 +:101FB00099F1C53BA1F1C63BA9F1C73BB1F1C83BC3 +:101FC000B9F1C93BC1F1CA3BC9F180E090E038C02A +:101FD00082EE90E035C089EE90E032C08AEE90E06B +:101FE0002FC085EB90E02CC086EB90E029C087EBFA +:101FF00090E026C08CEC90E023C08DEC90E020C0F7 +:1020000083E891E01DC08AE891E01AC082E991E07E +:1020100017C084E991E014C081E292E011C083E22C +:1020200092E00EC084E292E00BC085E292E008C02C +:1020300086E292E005C087E292E002C08AE292E086 +:10204000CF910C946D0ECF910895882309F44BC065 +:10205000823859F40E94350E81FF45C089E30E9401 +:10206000E1180E949E1989E30CC0833871F40E9424 +:10207000350E80FF38C083E50E94E1180E949E194A +:1020800083E50E9423190C949E19843859F40E9408 +:10209000350E82FF28C087E40E94E1180E949E1935 +:1020A00087E4EFCF9CEF980F913A58F390E2980FA6 +:1020B000983050F4877091E001C0990F8A95EAF743 +:1020C000892F0E946D19DFCF9BE5980F933020F484 +:1020D00080E090E00C94570E885A833120F480E021 +:1020E00090E00C946D0E0895882321F00E946719EA +:1020F0000C949E190895882321F00E946D190C9468 +:102100009E190895BF92CF92DF92EF92FF920F93A4 +:102110001F93CF93DF9300D000D000D0CDB7DEB7B0 +:1021200025E0FC01DE01119601900D922A95E1F760 +:10213000FC01408131810281258122952F706381CC +:102140007481672B09F4E5C23F3F19F44F3F09F44E +:10215000E0C27C0149833A8389819A812E830E945F +:10216000A018182FB92E0E949F180E946617EB2DF9 +:10217000E295EF70F0E0E05AFF4F2E810C94792247 +:102180008B2D807F9B2D9F70F92E882319F0F29460 +:1021900080EFF822002349F0FF2009F467C28F2D59 +:1021A0000E9477190E949E1961C2812F0E942510FA +:1021B000FF2009F4AEC28F2D0E947D1926960FB61E +:1021C000F894DEBF0FBECDBFDF91CF911F910F916D +:1021D000FF90EF90DF90CF90BF900C949E193B2D15 +:1021E000307F8B2D8F70303211F08295807F1123DC +:1021F00019F0113021F12CC00023B9F0222309F489 +:10220000A0C1213009F09DC126960FB6F894DEBF1B +:102210000FBECDBFDF91CF911F910F91FF90EF9037 +:10222000DF90CF90BF900C948719222319F02130B2 +:1022300009F46FC28E830E948A198E8196C1002391 +:1022400021F0223008F065C27CC1211162C28DC12B +:10225000002321F0222309F474C108C2222309F4C7 +:1022600084C119C22B2D26952695237030E02115A7 +:10227000310521F021303105D1F04BC2002321F08E +:10228000812F9B2D937002C080E090E026960FB6C0 +:10229000F894DEBF0FBECDBFDF91CF911F910F919C +:1022A000FF90EF90DF90CF90BF900C94570E0023DB +:1022B00021F0812F9B2D937002C080E090E0269644 +:1022C0000FB6F894DEBF0FBECDBFDF91CF911F9147 +:1022D0000F91FF90EF90DF90CF90BF900C946D0E18 +:1022E000812F002319F00E940B1D02C00E94731D54 +:1022F00026960FB6F894DEBF0FBECDBFDF91CF910B +:102300001F910F91FF90EF90DF90CF90BF900C94B2 +:10231000F81D8B2D837009F07BC00111FAC1812F4C +:10232000829586958770880F880F912F9F70C92E90 +:10233000D12CE12CF12C082E04C0CC0CDD1CEE1CA1 +:10234000FF1C0A94D2F714FF12C04FE050E060E087 +:1023500070E004C0440F551F661F771F8A95D2F79F +:10236000CB01BA01609570958095909503C060E0AF +:1023700070E0CB012B2D269526952370422F50E03F +:1023800042305105D9F04330510569F16C297D295E +:102390008E299F294130510551F126960FB6F894A8 +:1023A000DEBF0FBECDBFDF91CF911F910F91FF9088 +:1023B000EF90DF90CF90BF900C948D176C297D2902 +:1023C0008E299F2926960FB6F894DEBF0FBECDBF8B +:1023D000DF91CF911F910F91FF90EF90DF90CF9001 +:1023E000BF900C94A9170E948D17C701B6012696BD +:1023F0000FB6F894DEBF0FBECDBFDF91CF911F9116 +:102400000F91FF90EF90DF90CF90BF900C947117D9 +:10241000002319F08B2D817001C08695882309F463 +:1024200078C1812F829586958770880F880F912FAC +:102430009F70C92ED12CE12CF12C082E04C0CC0C9D +:10244000DD1CEE1CFF1C0A94D2F714FF12C04FE0F3 +:1024500050E060E070E004C0440F551F661F771F16 +:102460008A95D2F7CB01BA016095709580959095C9 +:1024700003C060E070E0CB012B2D269526952370DC +:10248000422F50E042305105D9F04330510569F1F7 +:102490006C297D298E299F294130510551F12696BD +:1024A0000FB6F894DEBF0FBECDBFDF91CF911F9165 +:1024B0000F91FF90EF90DF90CF90BF900C94671832 +:1024C0006C297D298E299F2926960FB6F894DEBFA8 +:1024D0000FBECDBFDF91CF911F910F91FF90EF9075 +:1024E000DF90CF90BF900C9483180E946718C701AB +:1024F000B60126960FB6F894DEBF0FBECDBFDF91B2 +:10250000CF911F910F91FF90EF90DF90CF90BF90F0 +:102510000C944B18103FD1F118F4103E50F4A1C0A8 +:10252000123F09F463C008F44CC0133F09F473C0B0 +:1025300098C01F708B2D8F710023A1F00E94E417AB +:10254000812F26960FB6F894DEBF0FBECDBFDF9168 +:10255000CF911F910F91FF90EF90DF90CF90BF90A0 +:102560000C9474100E940518812F26960FB6F894CB +:10257000DEBF0FBECDBFDF91CF911F910F91FF90B6 +:10258000EF90DF90CF90BF900C947B100023A9F0C8 +:102590002111BFC08B2D8F7126960FB6F894DEBF28 +:1025A0000FBECDBFDF91CF911F910F91FF90EF90A4 +:1025B000DF90CF90BF900C942A18223008F0A9C069 +:1025C000E9CF0023A9F08B2D8F7126960FB6F894D2 +:1025D000DEBF0FBECDBFDF91CF911F910F91FF9056 +:1025E000EF90DF90CF90BF900C94E417002359F345 +:1025F0008B2D8F7126960FB6F894DEBF0FBECDBF20 +:10260000DF91CF911F910F91FF90EF90DF90CF90CE +:10261000BF900C940518002399F08B2D8F7126968E +:102620000FB6F894DEBF0FBECDBFDF91CF911F91E3 +:102630000F91FF90EF90DF90CF90BF900C94CF1749 +:1026400026960FB6F894DEBF0FBECDBFDF91CF91B7 +:102650001F910F91FF90EF90DF90CF90BF900C945F +:10266000C5170023A9F0222309F4ADCF812F2696A8 +:102670000FB6F894DEBF0FBECDBFDF91CF911F9193 +:102680000F91FF90EF90DF90CF90BF900C945D0F73 +:10269000222309F4ADCF812F26960FB6F894DEBF22 +:1026A0000FBECDBFDF91CF911F910F91FF90EF90A3 +:1026B000DF90CF90BF900C9425104B2D4F70612F61 +:1026C000C7010E94AB0226960FB6F894DEBF0FBE7C +:1026D000CDBFDF91CF911F910F91FF90EF90DF90D1 +:1026E000CF90BF900C94E9164B2D4F70612FC7010E +:1026F00026960FB6F894DEBF0FBECDBFDF91CF9107 +:102700001F910F91FF90EF90DF90CF90BF900C94AE +:10271000D70526960FB6F894DEBF0FBECDBFDF916A +:10272000CF911F910F91FF90EF90DF90CF90BF90CE +:1027300008950E9484190E9459190E949E190E94AE +:10274000A91E0E94F81D80E090E00E94570E80E0D4 +:1027500090E00C946D0E0E9474190C9499130E94D1 +:10276000A018292F22952F7030E02C3031054CF421 +:102770002A3031056CF4225031092230310588F4B9 +:1027800007C02C30310549F02F30310531F009C038 +:10279000803E48F0803F29F406C093FB882780F9EB +:1027A000089580E0089581E00895CF93DF9300D0ED +:1027B00000D01F92CDB7DEB70F900F900F900F9003 +:1027C0000F90DF91CF910895CF93DF9300D000D089 +:1027D00000D0CDB7DEB726960FB6F894DEBF0FBE99 +:1027E000CDBFDF91CF9108951F93CF93DF93C09119 +:1027F000790116E080917A01C81799F0D0E01C9F0A +:10280000F0011D9FF00D1124E558FE4F40815181CC +:1028100062817381848195810E94E4132196C7703F +:10282000E9CFDF91CF911F9108954091AB01509175 +:10283000AC016091AD017091AE018091AF019091BA +:10284000B0010C94E4138091B00182958F7009F06F +:1028500054C08091AD01882309F44FC08091790163 +:10286000A0917A016091AB017091AC014091AE01F1 +:102870005091AF01B6E08A1709F43FC090E04115CE +:102880005105C1F17F3F11F46F3FA1F1B89FF001F5 +:10289000B99FF00D1124E558FE4F218172132AC013 +:1028A0002081621327C02281211124C02381348119 +:1028B0002417350710F421503109241B350B283C0F +:1028C0003105C0F42091B0012F7020612093B00138 +:1028D00026E0289FF001299FF00D1124E058FE4FBB +:1028E00080818F70806180838BEA91E00E948210EA +:1028F0000C94F41301968770BECF0895CF92DF92A7 +:10290000EF92FF920F931F93CF93DF93CDB7DEB774 +:1029100062970FB6F894DEBF0FBECDBF8C0185E085 +:10292000F801DE011D9601900D928A95E1F7D8011C +:102930004C9111965C91119712966C911297139687 +:10294000CD90DC9014973091AB017091AC018091E7 +:10295000AE019091AF01009709F46BC17F3F19F46C +:102960003F3F09F466C1E090AD01EE2009F4C0C01C +:102970002091B001C816D90628F0F601E81BF90B22 +:10298000CF0104C0809590958C0D9D1DFF24F3947C +:10299000883C910578F0F12C207F09F0C6C07C2D91 +:1029A000D98AC88A89890E94D5138BEA91E00E944E +:1029B0008210B1C0822F807F09F046C0751314C009 +:1029C000341312C0611110C02F7020612093B00128 +:1029D0000E9415148BEA91E00E9482108091B00150 +:1029E000D80115968C932EC0CD2819F15F3F11F4B4 +:1029F0004F3FF9F0F62E61111CC0809179012091B2 +:102A00007A0136E0821709F45AC090E0389FF0014D +:102A1000399FF00D1124E558FE4F7181571306C000 +:102A20007081471303C07281711103C001968770D2 +:102A3000E9CFF62E662309F418C18091B0018160B8 +:102A40008093B001F12C11C1751308C0341306C076 +:102A5000611104C08091B001D801C3C04D875E8769 +:102A60008D859E856A8B0E94AF136A898823E1F168 +:102A70006623D1F12091B001822F82958F7090E072 +:102A8000029774F08091AB019091AC0198878F838D +:102A90001986DB86CA862C87CE0107960E94821093 +:102AA00086E0F801ABEAB1E001900D928A95E1F77A +:102AB0000E9423140E941514FF24F394D6C04D875E +:102AC0005E878D859E850E94A018292F22952F70E4 +:102AD00030E0223031050CF0BCC09F7009F0B6C068 +:102AE000805E883008F4C1C0C8010E948210E4CF23 +:102AF000C816D90608F453C0F601E81BF90BCF013C +:102B0000883C910508F450C0F12C7C2DD98AC88AE4 +:102B100089890E94D513EBEAF1E086E0DF011D927E +:102B20008A95E9F70E941514A0C0751314C03413D8 +:102B300012C0611110C08091B001F8018583C801F5 +:102B40000E94821086E0EBEAF1E0DF011D928A9597 +:102B5000E9F7FE2C8AC04D875E878D859E856A8B3E +:102B60000E94AF136A89882309F4BECF662309F453 +:102B7000BBCF2091B001822F82958F7090E0029799 +:102B80000CF48ECF8091AB019091AC019A83898334 +:102B90001B82DD82CC822E83CE0101967FCF809571 +:102BA00090958C0D9D1DACCFF62E662309F49CCF1D +:102BB00075132EC034132CC02091B00120FD1FC00E +:102BC000822F82958F70D9F0D80115962C93159786 +:102BD0008F3049F08F5F982F9295907F822F8F7062 +:102BE000892B15968C93C8010E94821086E0F8010B +:102BF000ABEAB1E001900D928A95E1F793CF86E0C0 +:102C0000F801ABEAB1E001900D928A95E1F72DC091 +:102C10004D875E878D859E850E94AF13811140CFC1 +:102C20008091B00181608093B001C8010E94821040 +:102C30001CC0662309F458CF4D875E878D859E851D +:102C40000E94AF13882309F44FCF2ACF811148CFB8 +:102C50000CC0243031050CF047CF9F7009F440CFF1 +:102C6000F8019581907F09F03BCF8F2D62960FB6CA +:102C7000F894DEBF0FBECDBFDF91CF911F910F91B2 +:102C8000FF90EF90DF90CF9008951F93CF93DF9345 +:102C9000CDB7DEB72C970FB6F894DEBF0FBECDBF11 +:102CA0004F83588769877A878B879C87CE010796E1 +:102CB0000E947E14882369F08F8198852A853B8540 +:102CC000232BF1F19F3F09F063C08F3F09F060C0F3 +:102CD00037C086E0FE013796DE01119601900D9215 +:102CE0008A95E1F76F817885EA85FB85309741F118 +:102CF0007F3F11F46F3F21F120917A0130E0C9014B +:102D00000196877099274091790150E084179507C3 +:102D100009F447C069837A83FD83EC8396E0929F30 +:102D2000D001939FB00D1124A558BE4FFE013196DE +:102D300001900D929A95E1F780937A010E94F41325 +:102D400016E08091790190917A018917C1F1189F5D +:102D5000C001112485589E4F0E947E14882379F16A +:102D6000E09179011E9FF0011124E558FE4F40814A +:102D7000518162817381848195810E94E4138091E5 +:102D8000790190E001968770992780937901D9CFD6 +:102D90004F81588569857A858B859C850E94E413CF +:102DA000CFCF0E94AB1310927A0110927901EBEA17 +:102DB000F1E086E0DF011D928A95E9F7C1CF2C96FC +:102DC0000FB6F894DEBF0FBECDBFDF91CF911F913C +:102DD0000895EF92FF920F931F93CF93DF938C018F +:102DE000892B09F46CC0F12CEE24E394E8012196C0 +:102DF000F8018491843740F4843008F051C0813068 +:102E000081F0823019F15BC0853709F444C0A8F124 +:102E10009CE7980F903708F052C08F770E942510DA +:102E200041C00E5F1F4FFE01C49180E28C0F8830BD +:102E300048F4C7708E2D01C0880FCA95EAF70E942A +:102E4000771914C08C2F0E945D0F2DC00E5F1F4F8D +:102E5000FE01C49180E28C0F883058F4C7708E2D2B +:102E600001C0880FCA95EAF70E947D190E949E1939 +:102E70001AC08C2F0E94251016C00E5F1F4FFE0136 +:102E8000C491CC2381F08FE99FE00197F1F700C056 +:102E90000000C150F6CF0E5F1F4FFE01F49003C03B +:102EA0000E945D0F8E018F2D882309F49FCFEFE9DB +:102EB000FFE03197F1F700C000008150F5CFDF91BE +:102EC000CF911F910F91FF90EF9008950895609317 +:102ED000B5017093B6018093B7019093B8010C943B +:102EE00099130F931F930091B5011091B601209192 +:102EF000B7013091B801DC01CB01802B912BA22BC3 +:102F0000B32B8093B5019093B601A093B701B09312 +:102F1000B8011F910F910C9499130F931F93009177 +:102F2000B5011091B6012091B7013091B801DC01D3 +:102F3000CB0180239123A223B3238093B5019093E7 +:102F4000B601A093B701B093B8011F910F910C94F3 +:102F500099130F931F930091B5011091B601209121 +:102F6000B7013091B801DC01CB0180279127A2275E +:102F7000B3278093B5019093B601A093B701B093A6 +:102F8000B8011F910F910C9499131092B1011092F6 +:102F9000B2011092B3011092B4010C94991341E064 +:102FA00050E060E070E004C0440F551F661F771FBB +:102FB0008A95D2F74093B1015093B2016093B30167 +:102FC0007093B4010C94991341E050E060E070E01C +:102FD00004C0440F551F661F771F8A95D2F7809152 +:102FE000B1019091B201A091B301B091B401482B0D +:102FF000592B6A2B7B2B4093B1015093B201609304 +:10300000B3017093B4010C94991341E050E060E077 +:1030100070E004C0440F551F661F771F8A95D2F7D2 +:1030200040955095609570958091B1019091B20155 +:10303000A091B301B091B401482359236A237B23A3 +:103040004093B1015093B2016093B3017093B40106 +:103050000C94991341E050E060E070E004C0440F2C +:10306000551F661F771F8A95D2F78091B101909105 +:10307000B201A091B301B091B401482759276A2742 +:103080007B274093B1015093B2016093B3017093D9 +:10309000B4010C9499130F931F930091B1011091F7 +:1030A000B2012091B3013091B401DC01CB01802B3E +:1030B000912BA22BB32B8093B1019093B201A093DB +:1030C000B301B093B4011F910F910C9499130F9316 +:1030D0001F930091B1011091B2012091B301309181 +:1030E000B401DC01CB0180239123A223B32380937D +:1030F000B1019093B201A093B301B093B4011F91B9 +:103100000F910C9499130F931F930091B10110919B +:10311000B2012091B3013091B401DC01CB018027D1 +:103120009127A227B3278093B1019093B201A09376 +:10313000B301B093B4011F910F910C9499130895AA +:10314000CF92DF92EF92FF920F931F93CF93DF9373 +:103150008C01C090B501D090B601E090B701F0901D +:10316000B8014091B1015091B2016091B3017091E9 +:10317000B401C42AD52AE62AF72ACFE1D0E0D70144 +:10318000C6010C2E04C0B695A795979587950A940D +:10319000D2F780FF07C0B8018C2F0E94FA0581305A +:1031A000910531F4219758F7B80180E00E94FA05A3 +:1031B000DF91CF911F910F91FF90EF90DF90CF9013 +:1031C000089590910C01992321F090910D01911196 +:1031D00009C020910E0130910F01F90132969FEF45 +:1031E00040E01FC0982F9695969596959F3050F584 +:1031F000E0910E01F0910F01E90FF11D877021E0C0 +:1032000030E0A90102C0440F551F8A95E2F7CA01B8 +:103210009181892B818308959F3F39F04F5F4E3014 +:1032200041F051915813F8CF0DC05111F7CF942FA1 +:10323000F5CF9F3F39F0F901E90FF11D97FDFA95A0 +:1032400082830895089590910C01992321F0909123 +:103250000D01911109C020910E0130910F01F9016A +:103260003296205F3F4F1FC0982F96959695969562 +:103270009F30F0F4E0910E01F0910F01E90FF11D84 +:10328000877021E030E0A90102C0440F551F8A95E4 +:10329000E2F7CA018095918189238183089531964F +:1032A000E217F30729F090819813F9CF1082F7CF36 +:1032B000089581E090E0E0910E01F0910F01E80F98 +:1032C000F91F1082019680319105A9F70895909118 +:1032D000CB01892B8093CB01089580959091CB01F0 +:1032E00089238093CB0108951092CB01089590918A +:1032F000CA01892B8093CA01089580959091CA01D3 +:1033000089238093CA0108951092CA010895809379 +:10331000B90108951092B901089580910E0190911C +:103320000F01FC0131969C01205F3F4F80E091919D +:1033300091118F5FE217F307D1F70895E0910E0125 +:10334000F0910F018091CB018083E0910E01F0910B +:103350000F0190818091CA01892B80838091B901EE +:10336000882361F0E0910E01F0910F019081892B8B +:1033700080830E948D1981111092B90180910E01F4 +:1033800090910F010C94410ECF92DF92EF92FF9239 +:103390006C01EE24FF24C114D104E104F10421F0F6 +:1033A000C701B60120E101C020E0C72ED82EE92ECA +:1033B000FF24C114D104E104F10419F0285FC7010E +:1033C000B6016B017C0154E0F694E794D794C7945E +:1033D0005A95D1F7C114D104E104F10419F02C5F1E +:1033E000C701B6016B017C0142E0F694E794D794E3 +:1033F000C7944A95D1F7C114D104E104F10419F03E +:103400002E5FC701B601DC01CB01B695A795979554 +:103410008795892B8A2B8B2B09F02F5F822FFF90AA +:10342000EF90DF90CF9008958091E501843009F10D +:103430001092CD0120E488E190E00FB6F894A895B1 +:10344000809360000FBE2093600083B7817F84600B +:1034500083BF83B7816083BF7894889583B78E7F5D +:1034600083BF88E10FB6F8948093600010926000EB +:103470000FBE089508950895CF930E943A1A0E94AE +:1034800023040E943B1AC0E08C2F0E941105811179 +:1034900004C0CF5FCE30C1F701C081E0CF91089565 +:1034A0000E94AB130E94350E0C942E0782E084BD5F +:1034B00093E095BD9AEF97BD80936E0008952FB766 +:1034C000F8948091CE019091CF01A091D001B0915C +:1034D000D1012FBF0895CF92DF92EF92FF920F9309 +:1034E0001F932FB7F8944091CE015091CF01609176 +:1034F000D0017091D1012FBF6A017B01EE24FF241E +:103500008C0120E030E0C016D106E206F30610F48C +:10351000415051099A01281B390BC9011F910F9184 +:10352000FF90EF90DF90CF9008951F920F920FB60B +:103530000F9211248F939F93AF93BF938091CE01ED +:103540009091CF01A091D001B091D1010196A11D20 +:10355000B11D8093CE019093CF01A093D001B09381 +:10356000D101BF91AF919F918F910F900FBE0F909E +:103570001F9018950E94320BF8942FEF87EA91E67E +:10358000215080409040E1F700C0000087E090EBC0 +:10359000DC018093EE019093EF01A093F001B093D2 +:1035A000F1019CE088E10FB6F894A8958093600043 +:1035B0000FBE90936000FFCFEF92FF920F931F9387 +:1035C000CF93DF93D82FC0E08C2F0E94110500E02D +:1035D00010E0E82EF12CC701002E02C095958795CA +:1035E0000A94E2F780FD06C00F5F1F4F06301105F9 +:1035F00091F709C0602F7C2F80E00E94D805D81376 +:10360000F3CF81E004C0CF5FCE30F1F680E0DF91F0 +:10361000CF911F910F91FF90EF900895CF93C82FF6 +:103620008CE20E94DC1A882321F08C2FCF910C941D +:10363000DC1A80E0CF910895CF930E94631C811122 +:1036400002C00E94491CC5E6C15049F00E942304F3 +:103650008FE39CE90197F1F700C00000F5CF89E204 +:103660000E940E1B811113C18AE20E940E1B811160 +:103670000E94491C85E00E940E1B81110E94BA1A0B +:103680000E946E1C8093CC0187E00E940E1B882351 +:10369000A9F18BE10E940E1B882351F08091CC018F +:1036A00081FB222720F991E0922790FB81F90EC03F +:1036B0008EE00E940E1B882361F08091CC0182FB7A +:1036C000222720F991E0922790FB82F98093CC0188 +:1036D00015C080E10E940E1B9091CC01882341F01F +:1036E00093FB222720F981E0822780FB93F904C015 +:1036F000892F809580FB90F99093CC018091CC012B +:103700000E94721C0E94801C8093DF0180EE0E9448 +:103710000E1B882341F08091DF01982F909590FB3C +:1037200080F98093DF0189E30E940E1B882359F002 +:103730008091DF0181FB222720F991E0922790FB05 +:1037400081F98093DF0182EE0E940E1B882359F0DD +:103750008091DF0182FB222720F991E0922790FBE4 +:1037600082F98093DF0186EE0E940E1B882359F0B8 +:103770008091DF0183FB222720F991E0922790FBC3 +:1037800083F98093DF0183EE0E940E1B882359F09A +:103790008091DF0184FB222720F991E0922790FBA2 +:1037A00084F98093DF0185E30E940E1B882359F082 +:1037B0008091DF0185FB222720F991E0922790FB81 +:1037C00085F98093DF0181E30E940E1B882359F065 +:1037D0008091DF0186FB222720F991E0922790FB60 +:1037E00086F98093DF0181E10E940E1B882359F046 +:1037F0008091DF0187FB222720F991E0922790FB3F +:1038000087F98093DF018091DF010E94841C809101 +:10381000DF0187FB882780F980930D0187E20E94F2 +:103820000E1BC82F8EE10E940E1B8111C2608FE11A +:103830000E940E1B8111C46080E20E940E1B811148 +:10384000C86081E20E940E1B8111C06182E20E9469 +:103850000E1B8111C06283E20E940E1B8111C064A5 +:1038600084E20E940E1B882311F0C06802C0CC23A2 +:1038700029F08C2F0E947B1C6C2F03C00E94771CA8 +:10388000682F70E080E090E0CF910C946717CF91A3 +:1038900008956DEE7EEF80E090E00E94AF2260E040 +:1038A00082E090E00E94A12260E083E090E00E942C +:1038B000A12260E084E090E00E94A12260E085E027 +:1038C00090E00C94A12280E090E00E949B2221E0F5 +:1038D0008D3E9E4F09F020E0822F089582E090E017 +:1038E0000C949322682F82E090E00C94A12283E054 +:1038F00090E00C949322682F83E090E00C94A12236 +:1039000084E090E00C949322682F84E090E00C9483 +:10391000A1228091D40180FF0BC06091130185E04A +:10392000689FB001112475956795759567952BC0B3 +:1039300081FF09C06091130185E0689FB0011124E7 +:103940007595679520C082FF07C06091130185E0DF +:10395000689FB001112417C09091D5019923D1F02F +:1039600060911201961788F72091130185E0289F36 +:1039700090011124929FA001939F500D112470E09B +:10398000CA010E9465226038710540F46115710515 +:1039900039F002C065E070E0862F08958FE7089542 +:1039A00081E008958091D40180FF08C060911101E9 +:1039B00070E0759567957595679521C081FF06C084 +:1039C0006091110170E07595679519C082FF04C080 +:1039D0006091110170E010C09091D5019923C1F060 +:1039E000609110019617A0F780911101899FC00185 +:1039F000112470E00E9465226038710528F4611579 +:103A0000710521F0862F08958FE7089581E00895CC +:103A100061E070E0F4CF803F21F40E94891C819521 +:103A200004C0813F29F40E94891C8093D801089525 +:103A3000823F21F40E94891C819504C0833F29F4B0 +:103A40000E94891C8093D7010895893F19F40E9430 +:103A5000D21C05C08A3F31F40E94D21C819580930C +:103A6000D90108958B3F21F40E94D21C819504C096 +:103A70008C3F29F40E94D21C8093DA010895843F80 +:103A800021F48091D601816017C0853F21F4809197 +:103A9000D601826011C0863F21F48091D6018460F6 +:103AA0000BC0873F21F48091D601886005C0883F14 +:103AB00031F48091D60180618093D60108958D3FC5 +:103AC00021F48091D40181600BC08E3F21F480915C +:103AD000D401826005C08F3F29F48091D4018460B5 +:103AE0008093D4010895803F39F48091D80187FFF5 +:103AF0006CC01092D80169C0813F29F48091D8012F +:103B00001816BCF362C09091D701823F29F497FF49 +:103B10005CC01092D70159C0833F19F41916CCF339 +:103B200054C0893F41F48091D90118160CF04DC062 +:103B30001092D9014AC08A3F29F48091D90187FFA8 +:103B400044C0F6CF8B3F39F48091DA0187FF3DC046 +:103B50001092DA013AC08C3F29F48091DA011816EC +:103B6000BCF333C0843F21F48091D6018E7F17C00F +:103B7000853F21F48091D6018D7F11C0863F21F4CD +:103B80008091D6018B7F0BC0873F21F48091D601B5 +:103B9000877F05C0883F31F48091D6018F7E809366 +:103BA000D60113C08D3F21F48091D4018E7F0BC0CC +:103BB0008E3F21F48091D4018D7F05C08F3F29F481 +:103BC0008091D4018B7F8093D4018091D7018111A2 +:103BD0000EC08091D80181110AC08091D901811154 +:103BE00006C08091DA01811102C01092D5010895BA +:103BF00086ED91E00E944C0E0E945F1A9093D301D3 +:103C00008093D20108951F93CF93DF938091D201C7 +:103C10009091D3010E946B1AAC019091D501992328 +:103C200021F02091140130E006C0209115018AE0B6 +:103C3000289F900111244217530708F486C08091F1 +:103C4000D701C091D801D091D9011091DA01811129 +:103C500007C0C11176C0D11174C0111172C075C0F6 +:103C60009F3F19F09F5F9093D501181624F40E948E +:103C7000891C8093D7018091D70187FF05C00E94DE +:103C8000891C81958093D7011C1624F40E94891CFD +:103C90008093D8018091D80187FF05C00E94891CBC +:103CA00081958093D8016091D701662339F1C09145 +:103CB000D801CC2319F1772767FD7095872F972FAF +:103CC0000E94762123E333E343E35FE30E94DA219A +:103CD0000E9443216093D7016C2F772767FD709571 +:103CE000872F972F0E94762123E333E343E35FE39B +:103CF0000E94DA210E9443216093D8011D1624F40A +:103D00000E94D21C8093D9018091D90187FF05C000 +:103D10000E94D21C81958093D901111624F40E942F +:103D2000D21C8093DA018091DA0187FF05C00E94DE +:103D3000D21C81958093DA01DF91CF911F910C9471 +:103D4000F81D9F3F09F08ECF96CFDF91CF911F9145 +:103D50000895E6EDF1E085E0DF011D928A95E9F72F +:103D60001092D5011092D4010895833081F128F486 +:103D7000813059F08230D1F00895853009F449C07E +:103D8000B8F1863009F456C0089580911501262FA8 +:103D900030E0280F311D2F3F310524F4680F609368 +:103DA000150108958FEF80931501089580911401F6 +:103DB000262F30E0280F311D2F3F310524F4680FE6 +:103DC0006093140108958FEF8093140108958091FA +:103DD0001301262F30E0280F311D2F3F310524F429 +:103DE000680F6093130108958FEF80931301089576 +:103DF00080911201262F30E0280F311D2F3F310511 +:103E000024F4680F6093120108958FEF80931201DC +:103E1000089580911101262F30E0280F311D2F3F8A +:103E2000310524F4680F6093110108958FEF80939A +:103E30001101089580911001262F30E0280F311DC7 +:103E40002F3F310524F4680F6093100108958FEF20 +:103E5000809310010895833011F128F4813049F0E6 +:103E6000823091F00895853081F120F18630C1F1E2 +:103E7000089580911501681720F4861B8093150121 +:103E8000089510921501089580911401681720F487 +:103E9000861B809314010895109214010895809157 +:103EA0001301681720F4861B809313010895109264 +:103EB0001301089580911201681720F4861B8093E6 +:103EC000120108951092120108958091110168174E +:103ED00020F4861B8093110108951092110108951A +:103EE00080911001681720F4861B809310010895BB +:103EF0001092100108950F931F938D3109F46BC038 +:103F000008F03FC08E3009F47DC0C0F4873009F45A +:103F10006EC068F4863009F0AFC08091CC01817F1B +:103F20008E7F8093CC0181E08093DC01A6C0883035 +:103F300009F458C08B3009F49BC09EC0863109F447 +:103F400097C078F4803109F470C0813109F094C0D1 +:103F50000E94AB1390910D0181E0892780930D01A0 +:103F600087C0893109F484C08B3109F085C0809104 +:103F7000CC0181FB222720F991E0922790FB81F967 +:103F80004AC0853309F45BC048F4873209F457C04E +:103F900008F45AC0893209F452C06EC0833438F430 +:103FA0008A3308F067C0883309F462C065C083347F +:103FB00009F445C0883409F05FC00E94AB130FEFCD +:103FC00013ED20E3015010402040E1F700C0000055 +:103FD0000E94BA1A4DC00E94FD200E94350E0E9418 +:103FE0002E0746C00E946E1C0E94801C41C090910A +:103FF000CC01892F817090FF12C0917F9E7F90939A +:10400000CC013BC08091CC0182FB222720F991E0BA +:10401000922790FB82F98093CC01992349F18091FA +:10402000CC0181608093CC0123C08091CC0183FBC3 +:10403000222720F991E0922790FB83F9ECCF61E0F1 +:1040400070E080E090E010C08D5141E050E060E011 +:1040500070E08A019B0104C0000F111F221F331F53 +:104060008A95D2F7C901B8010E9467170E94AB1365 +:1040700081E003C08953E9CF80E01F910F9108953B +:1040800080E0089580E00895CF93C82F8091DC01EF +:10409000813079F018F08230E9F187C0E0910E01AB +:1040A000F0910F018081813169F0823209F07FC087 +:1040B00009C0E0910E01F0910F018081813111F072 +:1040C000823261F48C2F0E944020811104C08C2F19 +:1040D0000E947B1F1DC081E090E01AC08C2F0E94BF +:1040E0004220811114C0C43179F048F4CB3079F00A +:1040F000C03109F060C082E08093DC0108C0C932A1 +:1041000019F0C83321F057C01092DC0154C081E08F +:10411000817053C0C93289F118F5C43171F1A8F426 +:10412000C73009F046C08AE08093150194E190936E +:10413000140193E0909313018093120188E080931F +:10414000110188E28093100134C0CE51C63088F549 +:10415000EC2FF0E0E65DFE4F80818093DB0129C00B +:10416000CE34E9F020F4CB3421F56AE013C0C13538 +:1041700079F0C235F1F461E00DC08091DB01882354 +:1041800019F01092DB0115C081E08093DC0115C0AD +:1041900061E006C08091DB010E94B51E0AC06AE0A2 +:1041A0008091DB010E942B1F04C01092DC0180E093 +:1041B00004C081E002C080E0ABCFCF910895E1E878 +:1041C000F0E08081886080838081816080838FB708 +:1041D000F89493E09093890090ED909388008FBFBE +:1041E0000895EFE6F0E08081826080830895EFE635 +:1041F000F0E080818D7F80830895EFE6F0E090818C +:1042000082E08927808308951F920F920FB60F9244 +:1042100011242F933F934F935F936F937F938F93CB +:104220009F93AF93BF93EF93FF938091DD019091A4 +:10423000DE0101969093DE018093DD01811103C0C0 +:1042400082E00E942E07E091DE01E695E695F0E01F +:10425000E657FB4FE4918091DD018E1303C080E0AF +:104260000E942E07FF91EF91BF91AF919F918F9187 +:104270007F916F915F914F913F912F910F900FBE62 +:104280000F901F90189504D06894B1118DC00895B7 +:1042900070D088F09F5790F0B92F9927B751A0F0B0 +:1042A000D1F0660F771F881F991F1AF0BA95C9F7CA +:1042B00012C0B13081F077D0B1E0089574C0672F9B +:1042C000782F8827B85F39F0B93FCCF3869577957A +:1042D0006795B395D9F73EF4909580957095619563 +:1042E0007F4F8F4F9F4F0895E89409C097FB3EF48E +:1042F00090958095709561957F4F8F4F9F4F992333 +:10430000A9F0F92F96E9BB279395F69587957795B0 +:104310006795B795F111F8CFFAF4BB0F11F460FF70 +:104320001BC06F5F7F4F8F4F9F4F16C0882311F0C8 +:1043300096E911C0772321F09EE8872F762F05C0DC +:10434000662371F096E8862F70E060E02AF09A9577 +:10435000660F771F881FDAF7880F9695879597F96C +:10436000089557FD9058440F551F59F05F3F71F065 +:104370004795880F97FB991F61F09F3F79F08795CC +:104380000895121613061406551FF2CF4695F1DF55 +:1043900008C0161617061806991FF1CF86957105E5 +:1043A000610508940895E894BB2766277727CB0119 +:1043B00097F908950BD078C069D028F06ED018F026 +:1043C000952309F05AC05FC01124EECFCADFA0F3D5 +:1043D000959FD1F3950F50E0551F629FF001729F9A +:1043E000BB27F00DB11D639FAA27F00DB11DAA1FB9 +:1043F000649F6627B00DA11D661F829F2227B00D06 +:10440000A11D621F739FB00DA11D621F839FA00D90 +:10441000611D221F749F3327A00D611D231F849FE0 +:10442000600D211D822F762F6A2F11249F57504037 +:104430008AF0E1F088234AF0EE0FFF1FBB1F661FD2 +:10444000771F881F91505040A9F79E3F510570F08B +:1044500014C0AACF5F3FECF3983EDCF386957795C6 +:104460006795B795F795E7959F5FC1F7FE2B880F86 +:10447000911D9695879597F9089597F99F6780E81C +:1044800070E060E008959FEF80EC089500240A94A6 +:104490001616170618060906089500240A9412161F +:1044A0001306140605060895092E0394000C11F452 +:1044B000882352F0BB0F40F4BF2B11F460FF04C0FF +:1044C0006F5F7F4F8F4F9F4F089597FB072E16F416 +:1044D000009407D077FD09D00E947F2207FC05D009 +:1044E0003EF4909581959F4F0895709561957F4F0B +:1044F0000895EE0FFF1F0590F491E02D0994AA1B7B +:10450000BB1B51E107C0AA1FBB1FA617B70710F0BE +:10451000A61BB70B881F991F5A95A9F780959095F0 +:10452000BC01CD010895F999FECF92BD81BDF89AE5 +:10453000992780B50895A8E1B0E042E050E00C94DE +:10454000B622262FF999FECF1FBA92BD81BD20BD9C +:104550000FB6F894FA9AF99A0FBE019608950E9440 +:10456000A122272F0C94A222DC01CB01FC01F99996 +:10457000FECF06C0F2BDE1BDF89A319600B40D92AF +:0C45800041505040B8F70895F894FFCF68 +:10458C0020023007BE079B07670733070101BA01FA +:10459C0028080A03140A3F4D36394B04FE03C8039E +:1045AC008F0322033B0354036D030102030405062E +:0445BC0007080900E3 +:00000001FF diff --git a/keyboard/ergodox_ez/keymaps/msc/readme.md b/keyboard/ergodox_ez/keymaps/msc/readme.md new file mode 100644 index 0000000000..0d14fcbd29 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/msc/readme.md @@ -0,0 +1,32 @@ +# MSC Configuration + +### Based mostly on the ErgoDox EZ default layout with optimizations for coding on osx. + +#### Expecting the user to rely on Coder Layer this keymap removes some of the duplicate symbol keys in the lower portions of the board and replaces them with arrow keys and modifiers. The Media Layer is also updated to match the change in the arrow keys and the left and right click buttons are moved under the thumb position. The Media layer is now reached with toggle button in the lower right. + +### Main Layer + +![Main Layer](img/main_layer.png) + +### Code Layer + +![Code Layer](img/code_layer.png) + +### Media Layer + +![Media Layer](img/media_layer.png) + +## Changelog + +Version 1.0 + +- Changed the temp code layer key in the bottom right to toggle media layer +- Changed the temp media key to only be ";" +- Changed right hand bottom row to match vim home row nav directions +- Changed media keys to match arrow key changes +- Changed media left and right click to spacebar and backspace locations +- Changed bottom left to Cmd +- Changed single quote on left bottom row to alt + +#### Coming Soon: +- A new layer for Blender editing with a focus on left hand shortcut and a righthand num pad to control the view in Blender. diff --git a/keyboard/ergodox_ez/keymaps/naps62/README.md b/keyboard/ergodox_ez/keymaps/naps62/README.md new file mode 100644 index 0000000000..14728e4cc4 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/naps62/README.md @@ -0,0 +1,29 @@ +# ErgoDox EZ naps62 Configuration + +## Motivation + +I wanted a layout that suited my Linux & Vim usage. I also didn't like the lack of efficient access to some of the more common special characters used in programming. + +## Key features / changes + +### Base Layer (L1) + +* **No `MT(mod, kc)` keys (modifier when pressed, key when tapped).** Those keys work with a global timeout. When a key press is shorter than the timeout, it's considered a tap, otherwise it's a hold. I couldn't find any particular timeout that would work for me. I need to use mods extremely fast, but also want the confort of using them more slowly in other occasions. So I gave up on this feature altogether. +* **Direct access to `{}[]`.** When programming, these are used extremely often. I was still getting used to the coder layer, and I prefer the arrows on the home row, so I used the bottom-right keys for this. +* **Layer keys everywhere.** I either use my little finger or my index finger to go to L1, whichever is more confortable in any given situation. L2 is not used while coding/writing, so I don't need an extremely-optimized access to it. +* **Lang key.** This is nothing more than `Super-Space` combo, which in my systems (both Linux & Windows) is the shortcut to change the keyboard language. I'm Portuguese, so I often cycle between US layout for coding, and PT layout for writing. +* **Special chars on the right-most column.** I only use Ctrl & Shift keys on the left side, so I used the right keys to include some of the more useful special characters as well. + +### Coder Layer (L2) + +* The `=` and `-` signs where nowhere to be found. `-` was already on the base layer, but it's still useful to have a fully-featured NumPad on the coder layer. + +### Media Layer (L3) + +* **Better media keys**. Why was Play/Pause so far away? And where was Mute? I put all my media keys close to each other, including the missing ones +* **Arrow keys on home row.** I use vim, so I'm always on my home row. I use this sometimes to get around, but not as often as to need them on the base row. I'm fine with them here +* I don't use mouse keys. They're still set up, and I made some changes as an experiment, but I mostly forgot they exist by now. + +## Author + +[Miguel Palhas](https://github.com/naps62) diff --git a/keyboard/ergodox_ez/keymaps/naps62/ergodox_ez.hex b/keyboard/ergodox_ez/keymaps/naps62/ergodox_ez.hex new file mode 100644 index 0000000000..e5f213ba82 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/naps62/ergodox_ez.hex @@ -0,0 +1,1474 @@ +:100000000C9402070C9449070C9449070C94490777 +:100010000C9449070C9449070C9449070C94490720 +:100020000C9449070C9449070C9472120C944413D5 +:100030000C9449070C9449070C9449070C94490700 +:100040000C9449070C94082C0C9449070C9449070C +:100050000C9449070C9401220C9449070C9449070D +:100060000C9449070C9449070C9449070C944907D0 +:100070000C9449070C9449070C9449070C944907C0 +:100080000C9449070C9449070C9449070C944907B0 +:100090000C9449070C9449070C9449070C944907A0 +:1000A0000C9449070C9449070C944907B113D313D6 +:1000B000C614D313C61418143B14C6149014A314F6 +:1000C000F117F1172018201863189D18AA1AAA1AF8 +:1000D000B618AA1AAB19AB197E1AAA1AAA1A951A37 +:1000E0000000F0A12D002B002971E100C1000000EB +:1000F0001E00140004001D003500E2001F001A005D +:1001000016001B003400E000200008000700060075 +:1001100050002C0021001500090019004F82E30057 +:10012000220017000A00050000004A812C08015433 +:100130000000007F00004D8249000254000000775B +:1001400000004B8223001C000B00110000004E81B8 +:10015000240018000D0010002F024C0025000C0098 +:100160000E00360030022C00260012000F0037006F +:100170002F002800270013003300380030002A0029 +:100180002D00310034712D72C1000000010001000A +:1001900001000100010000003A001E0220022202BC +:1001A000010001003B001F022102230201000100A7 +:1001B0003C002F0226022F00010001003D0030020A +:1001C00027023000010001003E00310235003502F7 +:1001D000000001000100010000000100000001001A +:1001E0000100010000000100000001003F0052007A +:1001F00051002402000001004000240021001E00E4 +:100200002E0001004100250022001F0037000100E0 +:1002100042002600230020002700010043002502A1 +:100220002E0231002D0001004400450001000100B4 +:100230000100000000500100010001000100000069 +:1002400001000100040801000100010001001A087A +:10025000160801000100F500010008080708010068 +:100260000100F4000100F400F100010001000100B0 +:1002700001001708F3000100000001000100010067 +:100280000000010000000100010001000000010069 +:100290000000010001000100F20001000000010067 +:1002A0000100F400F100AA00AE0001000100F50019 +:1002B000F000A900AC00B70001000100F300A800A5 +:1002C000AB00B600010001000100010001000100C7 +:1002D0000100010001000100010000000A002530BA +:1002E000313662003A200025303258000A722F63FE +:1002F0002030313233343536373839414243444582 +:10030000460A000A002530325800626F756E636538 +:10031000213A20006C6566742073696465206174FD +:100320007461636865640A006C656674207369644F +:1003300065206E6F7420726573706F6E64696E678E +:100340000A00747279696E6720746F207265736534 +:1003500074206D637032333031380A000A444542EC +:1003600055473A20656E61626C65642E0A005B73C6 +:100370005D004B6579626F617264207374617274A1 +:100380002E0A005B575D005B535D005B525D005BB6 +:10039000445D005B435D0016034500720067006F1B +:1003A0000044006F007800200045005A000000164D +:1003B000034500720067006F0044006F0078002062 +:1003C0000045005A0000000403090409028D0005DD +:1003D0000100A0FA09040000010301010009211134 +:1003E000010001223F000705810308000A090401FA +:1003F000000103010200092111010001224D000743 +:1004000005820308000A0904020001030000000934 +:1004100021110100012236000705830308000A09A3 +:100420000403000203000000092111010001222041 +:1004300000070584032000010705040320000109CB +:100440000404000103000000092111010001223908 +:1004500000070585031000011201100100000008CB +:10046000EDFE071301000102000105010906A101CB +:10047000050719E029E71500250195087501810296 +:100480000508190129059505750191029501750366 +:100490009101050719002977150025019578750147 +:1004A0008102C00631FF0974A1010975150025FFFD +:1004B0009520750881020976150025FF952075089D +:1004C0009102C005010980A101850216010026B72D +:1004D000001A01002AB700751095018100C0050CB3 +:1004E0000901A1018503160100269C021A01002AB8 +:1004F0009C02751095018100C005010902A1010946 +:1005000001A10005091901290515002501950575A9 +:100510000181029501750381010501093009311539 +:1005200081257F95027508810609381581257F95FB +:100530000175088106050C0A38021581257F950191 +:1005400075088106C0C005010906A101050719E06B +:1005500029E71500250195087501810295017508A7 +:10056000810105081901290595057501910295017B +:10057000750391010507190029FF150025FF950650 +:1005800075088100C00A002530325820006B65795B +:10059000626F6172645F7265706F72743A20000AF4 +:1005A0000025303258006B6579626F6172645F7349 +:1005B00065745F6C65643A200064656C5F6B657997 +:1005C0005F6269743A2063616E27742064656C3AD7 +:1005D00020253032580A006164645F6B65795F6280 +:1005E00069743A2063616E2774206164643A20253F +:1005F0003032580A00646F6E652E0A00626F6F67B2 +:100600006D61676963207363616E3A202E2E2E2020 +:1006100000290A002575002F002575005D2800259A +:10062000640020002564002000256400200025646B +:10063000007C0025303258006D6F7573656B6579ED +:10064000205B62746E7C782079207620685D287249 +:1006500065702F61636C293A205B006D6B5F776872 +:1006600065656C5F74696D655F746F5F6D6178203F +:100670003D2025640A006D6B5F776865656C5F6D72 +:1006800061785F7370656564203D2025640A006DA4 +:100690006B5F74696D655F746F5F6D6178203D207D +:1006A00025640A006D6B5F6D61785F7370656564CA +:1006B000203D2025640A006D6B5F696E746572765B +:1006C000616C203D2025640A006D6B5F64656C6180 +:1006D00079203D2025640A006D6B5F776865656C45 +:1006E0005F74696D655F746F5F6D6178203D202573 +:1006F000640A006D6B5F776865656C5F6D61785F3C +:100700007370656564203D2025640A006D6B5F741D +:10071000696D655F746F5F6D6178203D2025640AA7 +:10072000006D6B5F6D61785F7370656564203D205F +:1007300025640A006D6B5F696E74657276616C206A +:100740003D2025640A006D6B5F64656C6179203D16 +:100750002025640A000A00257500363A207768656E +:10076000656C5F74696D655F746F5F6D61783A2069 +:10077000000A00257500353A20776865656C5F6D65 +:1007800061785F73706565643A20000A0025750022 +:10079000343A2074696D655F746F5F6D61783A20DB +:1007A000000A00257500333A206D61785F7370652B +:1007B00065643A20000A00257500323A20696E749B +:1007C000657276616C286D73293A20000A002575E0 +:1007D00000313A2064656C6179282A31306D7329C3 +:1007E0003A20000A092D2056616C756573202D0A88 +:1007F000004D3E004D25643E20003F00736574208F +:1008000064656661756C740A00433E200077686514 +:1008100072652064656C74613A20637572736F72DF +:100820003D25642C20776865656C3D25640A536519 +:100830006520687474703A2F2F656E2E77696B6926 +:1008400070656469612E6F72672F77696B692F4DD0 +:100850006F7573655F6B6579730A000A092D204D0A +:100860006F7573656B6579202D0A4553432F713A77 +:1008700009717569740A313A0964656C6179282ACD +:1008800031306D73290A323A09696E746572766186 +:100890006C286D73290A333A096D61785F7370654E +:1008A00065640A343A0974696D655F746F5F6D61E0 +:1008B000780A353A09776865656C5F6D61785F73B2 +:1008C000706565640A363A09776865656C5F7469B6 +:1008D0006D655F746F5F6D61780A0A703A097072B6 +:1008E000696E742076616C7565730A643A09736584 +:1008F000742064656661756C74730A75703A092BAF +:10090000310A646F776E3A092D310A706775703A53 +:10091000092B31300A7067646F776E3A092D3130D8 +:100920000A0A7370656564203D2064656C746120FB +:100930002A206D61785F7370656564202A202872B3 +:100940006570656174202F2074696D655F746F5FD9 +:100950006D6178290A003F004D3E2000433E200093 +:100960004C25640A000A092D20436F6E736F6C6575 +:10097000202D0A4553432F713A09717569740A6D28 +:100980003A096D6F7573656B65790A000A092D2048 +:100990004D61676963202D0A643A09646562756771 +:1009A0000A783A096465627567206D6174726978C6 +:1009B0000A6B3A096465627567206B6579626F61DD +:1009C00072640A6D3A096465627567206D6F7573AC +:1009D000650A763A0976657273696F6E0A733A0929 +:1009E0007374617475730A633A09636F6E736F6C25 +:1009F00065206D6F64650A302D343A096C61796544 +:100A000072302D34284631302D4634290A50617514 +:100A1000733A09626F6F746C6F616465720A653A4C +:100A200009656570726F6D0A6E3A094E4B524F0A36 +:100A30007A3A09736C656570204C4544207465737F +:100A4000740A000A002575002E6E6B726F3A200042 +:100A50000A002575002E737761705F6261636B73A6 +:100A60006C6173685F6261636B73706163653A2088 +:100A7000000A002575002E737761705F67726176DA +:100A8000655F6573633A20000A002575002E6E6F5E +:100A90005F6775693A20000A002575002E7377613B +:100AA000705F72616C745F726775693A20000A004A +:100AB0002575002E737761705F6C616C745F6C6775 +:100AC00075693A20000A002575002E636170736C09 +:100AD0006F636B5F746F5F636F6E74726F6C3A20DD +:100AE000000A002575002E737761705F636F6E7466 +:100AF000726F6C5F636170736C6F636B3A20000A96 +:100B00000025303258006B65796D61705F636F6EE0 +:100B10006669672E7261773A20000A002575002EFB +:100B20006D6F7573653A20000A002575002E6B65A0 +:100B300079626F6172643A20000A002575002E6D9B +:100B400061747269783A20000A002575002E656E7E +:100B500061626C653A20000A0025303258006465F5 +:100B60006275675F636F6E6669672E7261773A20A0 +:100B7000000A0025750064656661756C745F6C61C0 +:100B80007965723A20003F004E4B524F3A206F6613 +:100B9000660A004E4B524F3A206F6E0A0074696D20 +:100BA00065725F636F756E743A202530346C580A35 +:100BB000006B6579626F6172645F6E6B726F3A2071 +:100BC00025580A006B6579626F6172645F69646CB5 +:100BD000653A2025580A006B6579626F6172645F1F +:100BE00070726F746F636F6C3A2025580A00686FDB +:100BF00073745F6B6579626F6172645F6C65647357 +:100C000028293A2025580A000A092D2053746174B6 +:100C10007573202D0A004743433A20352E332E307A +:100C2000204156522D4C4942433A20312E382E3124 +:100C300073766E204156525F415243483A206176A6 +:100C400072350A004F5054494F4E533A204C554686 +:100C50004120424F4F544D41474943204D4F55533A +:100C6000454B45592045585452414B455920434F17 +:100C70004E534F4C4520434F4D4D414E44204E4B1B +:100C8000524F203531320A004255494C443A203601 +:100C9000386366663764202832323A33323A303568 +:100CA000204A616E2033302032303136290A005616 +:100CB00049443A20307846454544284572676F4498 +:100CC0006F7820455A29205049443A2030783133F2 +:100CD0003037284572676F446F7820455A2920566F +:100CE00045523A203078303030310A004445534381 +:100CF0003A20742E6D2E6B2E206B6579626F6172B7 +:100D000064206669726D7761726520666F72204536 +:100D100072676F646F780A000A092D205665727336 +:100D2000696F6E202D0A000A6D6F7573653A206F2A +:100D300066660A000A6D6F7573653A206F6E0A0069 +:100D40000A6B6579626F6172643A206F66660A00A9 +:100D50000A6B6579626F6172643A206F6E0A000AED +:100D60006D61747269783A206F66660A000A6D6177 +:100D7000747269783A206F6E0A000A64656275675A +:100D80003A206F6E0A000A64656275673A206F66E2 +:100D9000660A000A0A626F6F746C6F616465722E76 +:100DA0002E2E2000433E20006565636F6E666967E6 +:100DB0003A0A00536C656570204C45442074657395 +:100DC000740A0000000000000000000000000102A2 +:100DD00004060A0F17202C3A4A5D71879DB3C7DAC3 +:100DE000E9F5FCFFFCF5E9DAC7B39D87715D4A3A86 +:100DF0002C20170F0A06040201000000000000006A +:100E00000000000011241FBECFEFDAE0DEBFCDBF2F +:100E100004B603FE27C08091F8019091F901A091DA +:100E2000FA01B091FB018730904BA740B04BD1F451 +:100E30001092F8011092F9011092FA011092FB0140 +:100E400014BE84B7877F84BF0FB6F894A8958091AD +:100E50006000886180936000109260000FBEE0E047 +:100E6000FFE3099511E0A0E0B1E0EAECFBE502C088 +:100E700005900D92AA33B107D9F721E0AAE3B1E0BA +:100E800001C01D92A83FB207E1F70E94AD0F0C947C +:100E9000E32D0C940000FF93EF93E0913A01F09161 +:100EA0003B01309709F00995EF91FF910895FC01FE +:100EB0008591803011F0EFDFFBCF0895FF27E0E24E +:100EC00030E247FF0CC0419597FF09C0EDE2609505 +:100ED000709580959095611D711D811D911D27FF55 +:100EE00002C0219530E350E2AA27660F771F881FC2 +:100EF000991FAA1FA41710F0A41B63955A95A9F770 +:100F0000AA3008F0A95FA05DAF93F3956115710554 +:100F10008105910541F7ED3211F4EF93F395F21746 +:100F200018F43F93F395FBCF8F91B5DFFA95E1F776 +:100F30000895E991F9918591803021F0853219F079 +:100F4000AADFF9CF089520E0E89455915532C1F316 +:100F5000503311F4689455915A3348F4505390F338 +:100F6000220F022E220F220F200D250FF4CF0EF498 +:100F7000219589919991533619F3533729F15335B6 +:100F800059F1BC0188279927E8945C3621F48991AE +:100F9000999168945591543639F446EF7EF077FF75 +:100FA0000DC08FEF9FEF0AC055374AE039F0583532 +:100FB00040E121F0523642E009F00895FF93EF93AB +:100FC0007DDFEF91FF91B7CFFF93EF93FC0181910C +:100FD0008030B9F360DFFBCFFF93EF9368DFF1CF91 +:100FE000DF93CF93CDB7DEB72596A3DFCF91DF9107 +:100FF000089561110BC0FC018281882321F085EEE8 +:101000000E948B1603C085EE0E94531780E090E08B +:10101000089508956091BC017091BD018091BE0159 +:101020009091BF010E94022156985E9825982D98B4 +:1010300026982E9827982F98813019F0823021F029 +:101040000895259A2D9A0895269A2E9A08958AE051 +:1010500098E0892B11F00E940A0880E090E0089542 +:1010600056985E9825982D9826982E9827982F9810 +:101070008FEF90E0909389008093880090938B008D +:1010800080938A0090938D0080938C00259A2D9AEE +:101090002FEF80E792E0215080409040E1F700C0C0 +:1010A0000000269A2E9A2FEF80E792E02150804090 +:1010B0009040E1F700C00000279A2F9A2FEF80E7B9 +:1010C00092E0215080409040E1F700C00000259858 +:1010D0002D982FEF80E792E0215080409040E1F77B +:1010E00000C0000026982E982FEF80E792E0215054 +:1010F00080409040E1F700C0000027982F98569854 +:101100005E9825982D9826982E9827982F980895C0 +:1011100089EA8093800089E08093810024982C984C +:101120003F988AB18F748AB96E98479A8BB1806B59 +:101130008BB9769A0E94300889E098E0892B11F0EB +:101140000E94090880E090E0089580E28093000109 +:1011500080913C0181110EC00E94F40881E08093CF +:101160003C012FEF83ED90E3215080409040E1F768 +:1011700000C0000080E40E94FA0880930001811101 +:101180002EC00E94240980930001811128C00E9472 +:10119000240980930001811122C08FE30E94240959 +:1011A0008093000181111BC00E941C0980E40E94F1 +:1011B000FA0880930001811112C08CE00E9424097A +:1011C0008093000181110BC00E94240980930001CB +:1011D000811105C08FE30E942409809300010E94C1 +:1011E0001C098091000108951092B9008AE0809353 +:1011F000B800089594EA9093BC009091BC0097FFCA +:10120000FCCF9091B900987F983021F0903111F087 +:1012100081E008958093BB0084E88093BC008091B6 +:10122000BC0087FFFCCF8091B900887F883111F026 +:10123000803471F780E0089584E98093BC00809148 +:10124000BC0084FDFCCF08958093BB0084E88093AC +:10125000BC008091BC0087FFFCCF9091B900987FC3 +:1012600081E0983209F480E0089584E88093BC001E +:101270008091BC0087FFFCCF8091BB0008958091D6 +:101280000001811115C080E40E94FA0880930001DA +:1012900081110CC082E10E94240980930001811118 +:1012A00005C08FEF0E942409809300010E941C0951 +:1012B00084B1807F84B985B1807F85B98AB1837F0D +:1012C0008AB98BB1837F8BB93E98469808950E9466 +:1012D000A508809300010E943F0980B38C7080BBF9 +:1012E00081B3836F81BBECE4F1E0AEE3B1E0119236 +:1012F0001D9281E0EA35F807D1F788E898E0892B5C +:1013000011F00C94880808957F928F929F92AF926B +:10131000BF92CF92DF92EF92FF920F931F93CF93E2 +:10132000DF93809100018823E1F080913D018F5F80 +:1013300080933D01811115C082E493E00E9457071C +:101340000E94A50880930001882329F088E293E099 +:101350000E94570706C084E193E00E9457070E944D +:1013600030088EE3E82E81E0F82E8701C0E0D0E05F +:101370009924939492E0892EAA24A394B12C35E069 +:10138000C32E33E0D32EC730D10500F58091000184 +:10139000811164C080E40E94FA08809300018111E9 +:1013A00012C082E10E9424098093000181110BC0C8 +:1013B000C5010C2E01C0880F0A94EAF780950E949F +:1013C0002409809300010E941C0948C0CA30A1F082 +:1013D00028F4C83059F0C93061F005C0CC3089F02C +:1013E00070F0CD3089F0209A289810C0219A299861 +:1013F0000DC0229A2A980AC0239A2B9807C0529AA5 +:1014000001C0539A5B9802C03E9A4698E0EAEA957A +:10141000F1F78FB181708925799902C032E001C05E +:1014200030E0832B7C9902C034E001C030E0832B94 +:101430007D9902C028E001C020E0822B7E9902C085 +:1014400090E101C090E0892B9FB19095991F992759 +:10145000991F9295990F907E892B10C08091000161 +:10146000811175C080E40E94FA08809300018823EE +:1014700009F45AC0712C0E941C09872DD8019C9137 +:10148000981739F18C9380910101882301F18091A3 +:10149000D70180FF04C08AE093E00E945707809143 +:1014A000D70180FF0CC0809101011F928F93DF92C2 +:1014B000CF920E94F0070F900F900F900F908091A5 +:1014C000D70180FF04C083E093E00E945707809219 +:1014D00001010E943F0921960F5F1F4FCE30D105B9 +:1014E00009F051CF809101018823B9F08150809398 +:1014F0000101882339F0EFE9FFE03197F1F700C0EF +:1015000000000BC0ECE4F1E0D7018D917D018193E7 +:10151000BCE4EB16B1E0FB06B9F787E298E0892B53 +:10152000C1F00E94270815C083E10E94240980931E +:10153000000181119FCF81E40E94FA08809300018D +:10154000811198CF0E943509782E709494CF80E055 +:1015500095CF81E0DF91CF911F910F91FF90EF9098 +:10156000DF90CF90BF90AF909F908F907F90089525 +:10157000E82FF0E0E45BFE4F80810895CF92DF9288 +:10158000EF92FF920F931F93CF93DF938CEE92E035 +:101590000E9457078CE4E82E81E0F82EC0E0D0E0EE +:1015A00097EEC92E92E0D92E0EED12E0DF93CF9385 +:1015B000DF92CF920E94F00784EE92E00E945707DC +:1015C000F70181917F0190E00E9464219F938F93A6 +:1015D0001F930F930E94F0078CED92E00E94570733 +:1015E00021968DB79EB708960FB6F8949EBF0FBE92 +:1015F0008DBFCE30D105D1F6DF91CF911F910F91E4 +:10160000FF90EF90DF90CF9008958B3B910580F491 +:10161000883A910548F5853A9105D8F484309105CA +:1016200008F0B2C0019709F06EC081E090E0089523 +:10163000803E910508F467C0883E910508F4A4C077 +:101640009C01205F31092031310508F05CC09065B4 +:101650000895853A910509F459C0863A910509F033 +:1016600058C082E890E40895883A910509F454C07E +:10167000893A910509F453C08A3A910509F452C098 +:101680008B3A910509F451C08C3A910509F450C088 +:101690008D3A910509F44FC0803B910509F44EC085 +:1016A0008E3A910509F44DC08F3A910509F44CC06A +:1016B000813B910509F44BC0823B910509F44AC076 +:1016C000833B910509F449C0843B910509F448C066 +:1016D000853B910509F447C0863B910509F446C056 +:1016E000873B910509F445C0883B910509F444C046 +:1016F000893B910509F443C08A3B910509F442C036 +:1017000080E094E4089580E090E0089581E890E41A +:10171000089583E890E4089582EE94E4089589EEB4 +:1017200094E408958AEE94E4089585EB94E4089592 +:1017300086EB94E4089587EB94E408958CEC94E4AC +:1017400008958DEC94E4089583E895E408958AE87B +:1017500095E4089582E995E4089584E995E408956F +:1017600081E296E4089583E296E4089584E296E4A3 +:10177000089585E296E4089586E296E4089587E266 +:1017800096E408958AE296E40895089524E5829FF8 +:10179000C0011124FC0126E0729FE00DF11D11240F +:1017A000E60FF11DEE0FFF1FEC51FF4F8591949155 +:1017B0000895880F991FFC01E05AF040859194919B +:1017C0000895880F991FFC01E052FF4F8591949175 +:1017D000089524E5829FC0011124FC0146E0749F16 +:1017E000E00DF11D1124E60FF11DEE0FFF1FEC516E +:1017F000FF4F859194919C013A9521154FE1340753 +:1018000008F429C13F512115304120F49F700E94F6 +:10181000E10B08959C0130532115304118F49927AC +:10182000906C0895811520E5920769F40E94CC1A06 +:101830004FEF84E39CE0415080409040E1F700C0CE +:1018400000000C942622813020E5920751F48CE5AB +:1018500093E00E9457078091D70181608093D70160 +:1018600008959C0130552115304108F05CC0292FA6 +:1018700033272F70332721303105E9F4AC0164E0C0 +:10188000440F551F6A95E1F744275370BC016370FC +:10189000772702C0220F331F6A95E2F73C68242B9A +:1018A000352B73E0880F991F7A95E1F78076992799 +:1018B000822B932B08952230310529F4982F882705 +:1018C000816F906A089523303105A1F4AC0133E0B3 +:1018D000440F551F3A95E1F7407E57708370992762 +:1018E00021E030E002C0220F331F8A95E2F7C901E0 +:1018F0009C6816C02430310531F5AC0123E0440F5B +:10190000551F2A95E1F7407E57708370992721E093 +:1019100030E002C0220F331F8A95E2F7C9019A68AE +:10192000842B952B08959C0130572115304118F4D4 +:101930009F70906208959C0130582115304118F431 +:101940009F70906A0895803E9105E0F4803C910577 +:1019500058F58133910509F46FC048F48932910537 +:1019600009F463C08A32910509F46DC072C08933ED +:101970009105E9F082389105D1F08533910509F49C +:101980004DC067C0833E910581F138F4803E9105DA +:10199000B9F0823E9105D9F05CC0863E910561F1B7 +:1019A000873E9105A1F155C00E94D90B0895209161 +:1019B000E90120FD02C021FF4CC080EE90E049C04B +:1019C0008091E90180FFF9CF89E390E042C08091E6 +:1019D000E90182FF0EC08091E90184FF03C080E02D +:1019E00090E037C083EE90E034C08091E90182FF3F +:1019F000F2CF82EE90E02DC08091E90183FF0BC011 +:101A00008091E90184FDEBCF87EE90E022C08091C8 +:101A1000E90183FFF5CF86EE90E01BC08091E901DC +:101A200085FF07C089E290E014C08091E90185FF3D +:101A3000F9CF85E390E00DC08091E90186FF07C0F2 +:101A40008AE290E006C08091E90186FFF9CF81E348 +:101A500090E00E94050B0895089580916D0108950E +:101A60009FB7F89410925C019FBF9091EF01943062 +:101A700009F057C09091E9009F703091EC00232F3E +:101A8000217030FD20E8922B24E02093E900209182 +:101A9000EB0020FF43C02091EE0027FF3FC02091C4 +:101AA0005A01222321F02091E80025FF37C010922F +:101AB0005A0126E03091E80035FD15C03091EF0164 +:101AC000343061F53091EB0035FD28C0215021F410 +:101AD00081E080935A0122C0EFE9FFE03197F1F7EE +:101AE00000C00000E7CF8093F1008091E80085FD01 +:101AF0000AC08091E80080FFFCCF8091E8008E77DB +:101B00008093E80006C08FB7F89421E020935C0131 +:101B10008FBF9F709093E90080E008959F7090932D +:101B2000E9008FEF0895CF93DF9300D01F92CDB7D8 +:101B3000DEB79C018091EF01843019F593E0998321 +:101B40003B832A839093E9008FEF9091E8008150C6 +:101B500095FD06C095ED9A95F1F700008111F5CF3E +:101B60008091E80085FF0DC040E050E063E070E048 +:101B7000CE0101960E9466108091E8008E778093D6 +:101B8000E8000F900F900F90DF91CF910895CF93C1 +:101B9000DF9300D01F92CDB7DEB72091EF01243044 +:101BA00021F522E029839B838A8383E08093E900E7 +:101BB0008FEF9091E800815095FD06C095ED9A95C4 +:101BC000F1F700008111F5CF8091E80085FF0DC08D +:101BD00040E050E063E070E0CE0101960E946610A4 +:101BE0008091E8008E778093E8000F900F900F901F +:101BF000DF91CF9108959C018091EF018430F9F439 +:101C000082E08093E9009FEF8091E800915085FD8C +:101C100006C085ED8A95F1F700009111F5CF80910E +:101C2000E80085FF0CC040E050E065E070E0C901CD +:101C30000E9466108091E8008E778093E8000895F6 +:101C4000CF93DF93EC018091EF01843009F047C01E +:101C500080910C018823E1F080910D018823C1F06F +:101C600085E08093E9008FEF9091E800815095FD29 +:101C700006C095E19A95F1F700008111F5CF8091AA +:101C8000E80085FF2CC040E050E060E170E017C044 +:101C900081E08093E9008FEF9091E800815095FDFD +:101CA00006C095ED9A95F1F700008111F5CF80916E +:101CB000E80085FF14C040E050E068E070E0CE012D +:101CC0000E9466108091E8008E778093E80080E1A2 +:101CD000FE01ADE5B1E001900D928A95E1F7DF914B +:101CE000CF91089583E993E00E9457078091EE0118 +:101CF000811109C00E94F7110E9454128091E200E4 +:101D000084608093E20008958FE893E00E94570773 +:101D10001092EE0108958BE893E00C94570787E842 +:101D200093E00E9457070C94F52B83E893E00E9400 +:101D300057070E94BC210E94FB2B0E94FE140C94AA +:101D40002C0D20915B012F5F822F62E30E94782D82 +:101D5000992319F020935B01089510925B01809103 +:101D60005C01882371F18091EF01843041F580910D +:101D7000E9008F702091EC00922F917020FD90E887 +:101D8000892B94E09093E9009091EB0090FF14C0B0 +:101D90009091EE0097FF10C09091E80095FF03C06E +:101DA0001092F100F9CF9091E80090FF05C090915A +:101DB000E8009E779093E8008F708093E90010927E +:101DC0005C01089542E061EC81E00E94701142E004 +:101DD00061EC82E00E94701142E061EC83E00E94BD +:101DE000701142E261EC84E00E94701142E161EC0A +:101DF00085E00C9470118091F101833009F455C095 +:101E000030F4813071F0823009F48EC008958A3048 +:101E100009F47AC08B3009F460C0893009F09CC0A5 +:101E200020C08091F001813A09F096C08091E800CD +:101E3000877F8093E8008091F4019091F501892BD0 +:101E400021F460E18DE591E003C060E080E090E086 +:101E500070E00E94B1108091E8008B778093E800D9 +:101E600008958091F001813209F076C08091F401EB +:101E70009091F501009719F0049709F06DC08091D9 +:101E8000E800877F8093E8008091E80082FD05C02C +:101E90008091EF018111F8CF5FC08091F1008093B4 +:101EA0006D018091E8008B7753C08091F001813AF9 +:101EB00009F052C08091F4019091F501892B09F04D +:101EC0004BC08091E800877F8093E8008091E80014 +:101ED00080FFFCCF80910C0136C08091F0018132EF +:101EE000D9F58091F4019091F501892BA9F58091A4 +:101EF000E800877F8093E8000E94A5118091F2019D +:101F000080930C010C94CC1A8091F001813221F560 +:101F10008091E800877F8093E8000E94A51180915E +:101F2000F30180936E0108958091F001813AA1F44C +:101F30008091E800877F8093E8008091E80080FF2F +:101F4000FCCF80916E018093F1008091E8008E7744 +:101F50008093E8000C94A511089584B7877F84BF0F +:101F60000FB6F894A8958091600088618093600016 +:101F7000109260000FBE90E080E80FB6F894809356 +:101F80006100909361000FBE0E948A150E94F711B4 +:101F90000E9454128091E20084608093E20080E30A +:101FA0009DE00E94FD2078940E94DE140E948C1512 +:101FB00082E091E00E94F9140E94E32B82E793E013 +:101FC0000E9457078091EF01853089F48EE693E0F7 +:101FD0000E9457070E947E218091ED01882391F392 +:101FE0000E94A821882371F30E945010EBCF0E9419 +:101FF000BA15E8CF292F332723303105C9F060F413 +:102000002130310581F02230310509F041C08DE8E1 +:1020100090E02BEC33E040C021323105E1F0223278 +:10202000310531F135C082E190E028E534E034C07B +:1020300099278130910549F028F0029749F5E7E9A1 +:10204000F3E005C0E7ECF3E002C0EFEAF3E08491CF +:1020500090E09F0121C06530D8F4E62FF0E0EE0F4C +:10206000FF1FEB5DFE4F2081318189E090E014C0BD +:10207000653070F470E0FB01EE0FFF1FE55EFE4F70 +:1020800020813181FB01EA5EFE4F808190E004C037 +:1020900080E090E020E030E0FA0131832083089571 +:1020A00080E189BD82E189BD09B400FEFDCF809148 +:1020B000D8008F7D8093D8008091E000826080936B +:1020C000E0008091E00081FDFCCF0895CF92DF9287 +:1020D000EF92FF920F931F93CF93DF93EC018B014D +:1020E0006A010E94C411811133C0C114D10439F0B6 +:1020F000F60180819181081B190BC80FD91FE12CB3 +:10210000F12C0115110519F18091E80085FD16C02B +:102110008091E8008E778093E800C114D10449F0E3 +:10212000F60180819181E80EF91EF182E08285E05E +:102130000FC00E94C411882321F30AC089918093A3 +:10214000F10001501109FFEFEF1AFF0ADACF80E02A +:10215000DF91CF911F910F91FF90EF90DF90CF9083 +:1021600008952091F6013091F7012617370748F0BE +:102170006115710539F42091E8002E772093E8006D +:1021800001C0B901FC0120E06115710579F1809170 +:10219000EF018823F1F18530F1F18091E80083FDB2 +:1021A0003CC08091E80082FD2EC08091E80080FF55 +:1021B000EBCF2091F3008091F20090E0922B61151B +:1021C000710551F08830910538F421912093F10088 +:1021D000615071090196F3CF21E0089709F020E0E2 +:1021E0008091E8008E778093E800CECF2111CFCF89 +:1021F0000AC08091EF01882361F0853061F0809101 +:10220000E80083FD0AC08091E80082FFF2CF80E001 +:10221000089582E0089583E0089581E00895209173 +:10222000F6013091F7012617370748F0611571055F +:1022300039F42091E8002E772093E80001C0B9011D +:10224000FC0120E06115710591F18091EF01882377 +:1022500009F440C0853009F43FC08091E80083FD57 +:102260003DC08091E80082FD2FC08091E80080FF92 +:10227000E9CF2091F3008091F20090E0922B61155C +:10228000710559F08830910540F424912093F100B4 +:102290003196615071090196F2CF21E0089709F05B +:1022A00020E08091E8008E778093E800CBCF211169 +:1022B000CCCF0AC08091EF01882361F0853061F0B6 +:1022C0008091E80083FD0AC08091E80082FFF2CF90 +:1022D00080E0089582E0089583E0089581E0089504 +:1022E000982F973068F59093E900981739F070911E +:1022F000EC002091ED005091F00003C0242F762FC8 +:1023000050E021FD02C09F5FECCF3091EB003E7F9B +:102310003093EB003091ED003D7F3093ED00309134 +:10232000EB0031603093EB007093EC002093ED00F4 +:102330005093F0002091EE0027FDE5CF80E0089556 +:102340008F708093E90081E008958091F00187FF0C +:1023500011C08091E80082FD05C08091EF018111DC +:10236000F8CF11C08091E8008B770BC08091EF010E +:10237000882349F08091E80080FFF8CF8091E80041 +:102380008E778093E80008952091E4003091E50075 +:1023900095E64091EC00842F817040FF23C080912E +:1023A000E80080FD1DC08091EF01882399F0853001 +:1023B00099F08091EB0085FD11C04091E4005091AF +:1023C000E5002417350729F3915011F09A01E1CF68 +:1023D00084E0089582E0089583E0089581E00895FF +:1023E00080E008954091E80042FFDDCF08950E940B +:1023F00065120E946D12E0EEF0E0808181608083C2 +:10240000E8EDF0E080818F77808319BCA7EDB0E024 +:102410008C918E7F8C9380818F7E80831092EE01D1 +:1024200008950F931F93CF93DF930E9465120E942C +:102430006D12C8EDD0E088818F77888388818068AD +:10244000888388818F7D888319BC1092EF01109258 +:10245000EB011092ED011092EC0100EE10E0F8019A +:1024600080818B7F808388818160888342E060E007 +:1024700080E00E947011E1EEF0E080818E7F808329 +:10248000E2EEF0E0808181608083808188608083DB +:10249000F80180818E7F8083888180618883DF91CD +:1024A000CF911F910F910895E8EDF0E080818F7E2C +:1024B0008083E7EDF0E080818160808384E082BFEB +:1024C00081E08093EE010C941112E8EDF0E0808140 +:1024D0008E7F80831092E20008951092DA001092AD +:1024E000E10008951F920F920FB60F9211242F93BF +:1024F0003F934F935F936F937F938F939F93AF938C +:10250000BF93EF93FF938091E10082FF0BC0809116 +:10251000E20082FF07C08091E1008B7F8093E100A1 +:102520000E94A10E8091DA0080FF1FC08091D80028 +:1025300080FF1BC08091DA008E7F8093DA0080914B +:10254000D90080FF0DC080E189BD82E189BD09B459 +:1025500000FEFDCF81E08093EF010E94720E05C066 +:1025600019BC1092EF010E94840E8091E10080FF5F +:1025700019C08091E20080FF15C08091E2008E7F3B +:102580008093E2008091E20080618093E20080917C +:10259000D80080628093D80019BC85E08093EF0159 +:1025A0000E948F0E8091E10084FF30C08091E20094 +:1025B00084FF2CC080E189BD82E189BD09B400FEA1 +:1025C000FDCF8091D8008F7D8093D8008091E1006D +:1025D0008F7E8093E1008091E2008F7E8093E20005 +:1025E0008091E20081608093E2008091EB0188237A +:1025F00011F084E007C08091E30087FD02C081E014 +:1026000001C083E08093EF010E94950E8091E1006C +:1026100083FF29C08091E20083FF25C08091E10003 +:10262000877F8093E10082E08093EF011092EB01BD +:102630008091E1008E7F8093E1008091E2008E7FA7 +:102640008093E2008091E20080618093E20042E0AA +:1026500060E080E00E9470118091F00088608093BB +:10266000F0000E948B0EFF91EF91BF91AF919F916F +:102670008F917F916F915F914F913F912F910F902B +:102680000FBE0F901F9018951F920F920FB60F92CA +:1026900011242F933F934F935F936F937F938F9367 +:1026A0009F93AF93BF93CF93DF93EF93FF93C0912B +:1026B000E900CF708091EC00D82FD17080FDD0E878 +:1026C0001092E9008091F000877F8093F000789469 +:1026D0000E9488131092E9008091F0008860809336 +:1026E000F000CD2BCF70C093E900FF91EF91DF9107 +:1026F000CF91BF91AF919F918F917F916F915F919A +:102700004F913F912F910F900FBE0F901F901895F2 +:102710001F93CF93DF93CDB7DEB7AA970FB6F89488 +:10272000DEBF0FBECDBFE0EFF1E08091F1008193FD +:1027300021E0E83FF207C9F70E94FB0E8091E80014 +:1027400083FF24C18091F0019091F101492F50E065 +:102750004A30510508F01AC1FA01EA5AFF4F0C94A9 +:10276000982D803881F0823809F010C18091F401F1 +:102770008F708093E9008091EB0085FB882780F9BA +:102780001092E90006C08091EC019091ED01911149 +:1027900082609091E800977F9093E8008093F10029 +:1027A0001092F100C8C0282F2D7F09F0EFC08823B8 +:1027B00019F0823061F0EAC08091F201813009F0B5 +:1027C000E5C0933009F080E08093ED012BC080914B +:1027D000F201811127C08091F4018F7009F4D6C0F5 +:1027E0008093E9002091EB0020FF1CC0933021F47E +:1027F0008091EB00806214C09091EB009061909307 +:10280000EB0021E030E0A90102C0440F551F8A957A +:10281000E2F74093EA001092EA008091EB008860B2 +:102820008093EB001092E9008091E800877F86C0DA +:102830008111ACC01091F2011F778091E300807884 +:10284000812B8093E3008091E800877F8093E800EC +:102850000E94A5118091E80080FFFCCF8091E300E9 +:1028600080688093E300111102C082E001C083E020 +:102870008093EF018BC08058823008F087C0809130 +:10288000F2019091F3018C3D53E0950779F583E0D7 +:102890008A838AE289834FB7F894DE01139620E099 +:1028A0003EE051E2E32FF0E050935700E49120FF27 +:1028B00003C0E295EF703F5FEF708E2F90E0EA303B +:1028C00010F0C79601C0C0968D939D932F5F243161 +:1028D00049F74FBF8091E800877F8093E8006AE264 +:1028E00070E0CE0101960E94B11014C0AE014F5F9E +:1028F0005F4F6091F4010E94FA0FBC01892B09F42B +:1029000045C09091E800977F9093E80089819A8173 +:102910000E940F118091E8008B778093E80036C009 +:102920008038A1F58091E800877F8093E80080914E +:10293000EB018093F1008091E8008E778093E800AE +:102940000E94A51123C0811121C08091F2019091B4 +:10295000F30199270297D4F48091E800877F809350 +:10296000E8008091F2018093EB010E94A511809113 +:10297000EB01811106C08091E30087FD02C081E078 +:1029800001C084E08093EF010E94E20E8091E80094 +:1029900083FF0AC08091E800877F8093E8008091E0 +:1029A000EB0080628093EB00AA960FB6F894DEBF2E +:1029B0000FBECDBFDF91CF911F910895CF9380912E +:1029C000EF018823A1F0C091E900CF709091EC0055 +:1029D000892F817090FD80E8C82B1092E9008091CA +:1029E000E80083FD0E948813CF70C093E900CF9167 +:1029F000089590937401809373010895E091730199 +:102A0000F0917401309721F00190F081E02D09944C +:102A100080E00895EF92FF921F93CF93DF93F82EFB +:102A2000192FE0917301F09174013097A9F10280A0 +:102A3000F381E02D09958091D70182FF2DC080FFA1 +:102A400004C08DE895E00E945707CF2DD12F10E1EB +:102A500087E8E82E85E0F82E8091D70180FF0BC033 +:102A600088811F928F93FF92EF920E94F0070F9040 +:102A70000F900F900F90115021961111EDCF809172 +:102A8000D70180FF09C085E895E0DF91CF911F91C4 +:102A9000FF90EF900C945707DF91CF911F91FF901B +:102AA000EF900895E0917301F0917401309721F057 +:102AB0000480F581E02D09940895209171013091F1 +:102AC00072012817390771F0909372018093710198 +:102AD000E0917301F0917401309721F00680F78145 +:102AE000E02D0994089520916F013091700128170D +:102AF000390771F09093700180936F01E091730139 +:102B0000F0917401309721F00084F185E02D099453 +:102B1000089508950C9489150E94C2210E946709A6 +:102B20000C948822CF93C82F8091D70182FF1EC0BA +:102B300080FF04C086EA95E00E9457078091D70184 +:102B400080FF0CC01F92CF9381EA95E09F938F93F3 +:102B50000E94F0070F900F900F900F908091D70177 +:102B600080FF04C08FE995E00E9457078C2FCF911A +:102B70000C942C0DCF92DF92EF92FF920F931F9344 +:102B8000CF93DF93CDB7DEB72B970FB6F894DEBFA8 +:102B90000FBECDBF0E94840986E7C82E81E0D82EE3 +:102BA00000E010E0E02E802F0E94B80AF60141916B +:102BB0006F01F82EF426B1F40F5F1F4F0E30110590 +:102BC00089F78FEF89838A831B820E94CB218160E2 +:102BD000782F9D838C8349815A816B818D810E94DE +:102BE0005D1640C09091D70191FF04C08B870E9471 +:102BF000BE0A8B8520E030E04F2D50E0922FBA01C5 +:102C0000022E02C0759567950A94E2F760FF24C012 +:102C10002E83EF8221E030E0690102C0CC0CDD1C84 +:102C20009A95E2F790E08C219D21892B09F420E010 +:102C300028870E94CB218160782F9A8789874E81CF +:102C40005F8168858A850E945D16F801EA58FE4F0B +:102C50008081C826C08206C02F5F3F4F26303105D5 +:102C600069F6AACF0E94F9250E94FE149091750181 +:102C70008917A1F00E94FE14809375012B960FB660 +:102C8000F894DEBF0FBECDBFDF91CF911F910F91A2 +:102C9000FF90EF90DF90CF900C9492152B960FB68B +:102CA000F894DEBF0FBECDBFDF91CF911F910F9182 +:102CB000FF90EF90DF90CF900895CF93DF93CDB743 +:102CC000DEB72B970FB6F894DEBF0FBECDBF4F8394 +:102CD000588769877A878B87DE01119686E0FD0128 +:102CE00011928A95E9F785E0FE01379601900D92E1 +:102CF0008A95E1F749815A816B817C818D819E8122 +:102D00000E94601D2B960FB6F894DEBF0FBECDBF9C +:102D1000DF91CF910895CF93C82F882309F4C1C0C4 +:102D2000823859F40E94FE1481FDBBC089E30E94E1 +:102D3000FD1F0E94D72089E30CC0833879F40E94DC +:102D4000FE1480FDAEC083E50E94FD1F0E94D720C7 +:102D500083E50E944D20CF910C94D720843859F4FC +:102D60000E94FE1482FD9DC087E40E94FD1F0E9408 +:102D7000D72087E4EECF8CEF8C0F813A48F48C2F6C +:102D80000E948B2A81118DC08C2F0E94FD1FE3CFE2 +:102D900080E28C0F883048F4C77081E001C0880F52 +:102DA000CA95EAF70E94A020D6CF8BE58C0F83301E +:102DB00078F4C53A29F0C63A31F083E890E005C0CE +:102DC00081E890E002C082E890E0CF910C945D151C +:102DD00088E58C0F833108F064C0C83A39F1C93AEC +:102DE00041F1CA3A49F1CB3A51F1CC3A59F1CD3AD5 +:102DF00061F1C03B69F1CE3A71F1CF3A79F1C13B53 +:102E000081F1C23B89F1C33B91F1C43B99F1C53BD0 +:102E1000A1F1C63BA9F1C73BB1F1C83BB9F1C93B30 +:102E2000C1F1CA3BC9F180E090E038C082EE90E089 +:102E300035C089EE90E032C08AEE90E02FC085EB7D +:102E400090E02CC086EB90E029C087EB90E026C094 +:102E50008CEC90E023C08DEC90E020C083E891E002 +:102E60001DC08AE891E01AC082E991E017C084E9A8 +:102E700091E014C081E292E011C083E292E00EC0C2 +:102E800084E292E00BC085E292E008C086E292E024 +:102E900005C087E292E002C08AE292E0CF910C94F2 +:102EA0007315CF910895882309F44BC0823859F4E3 +:102EB0000E94FE1481FF45C089E30E94FD1F0E940D +:102EC000D72089E30CC0833871F40E94FE1480FF80 +:102ED00038C083E50E94FD1F0E94D72083E50E9431 +:102EE0004D200C94D720843859F40E94FE1482FFA0 +:102EF00028C087E40E94FD1F0E94D72087E4EFCFFF +:102F00009CEF980F913A58F390E2980F983050F454 +:102F1000877091E001C0990F8A95EAF7892F0E9486 +:102F2000A620DFCF9BE5980F933020F480E090E05F +:102F30000C945D15885A833120F480E090E00C9465 +:102F400073150895882321F00E94A0200C94D720A7 +:102F50000895882321F00E94A6200C94D72008957C +:102F6000BF92CF92DF92EF92FF920F931F93CF9376 +:102F7000DF9300D000D000D0CDB7DEB77C0185E074 +:102F8000F701DE01119601900D928A95E1F7F701A4 +:102F900083819481892B09F4DDC2908181818F3FE7 +:102FA00019F49F3F09F4D6C2F701028125812295C9 +:102FB0002F7099838A8389819A812E830E94BC1FF6 +:102FC000182FB92E0E94BB1F0E94821EEB2DE29586 +:102FD000EF704E2F50E0FA01E05AFF4F2E810C9413 +:102FE000982D8B2D807F9B2D9F70F92E882319F0B3 +:102FF000F29480EFF822002349F0FF2009F457C231 +:103000008F2D0E94B0200E94D72051C2812F0E9494 +:103010005317FF2009F49EC28F2D0E94B6202696DA +:103020000FB6F894DEBF0FBECDBFDF91CF911F91D9 +:103030000F91FF90EF90DF90CF90BF900C94D7202E +:103040003B2D307F8B2D8F70303211F08295807F39 +:10305000112319F0113021F12CC00023B9F02223E3 +:1030600009F490C1213009F08DC126960FB6F8946D +:10307000DEBF0FBECDBFDF91CF911F910F91FF90AB +:10308000EF90DF90CF90BF900C94C020222319F0D6 +:10309000213009F45FC28E830E94C3208E8186C1D5 +:1030A000002321F0223008F055C26CC1211152C218 +:1030B0007DC1002321F0222309F464C1F8C1222339 +:1030C00009F474C109C28B2D86958695837019F019 +:1030D0008130D1F03FC2002321F0812F9B2D9370CE +:1030E00002C080E090E026960FB6F894DEBF0FBED7 +:1030F000CDBFDF91CF911F910F91FF90EF90DF90A7 +:10310000CF90BF900C945D15002321F0812F9B2D53 +:10311000937002C080E090E026960FB6F894DEBF70 +:103120000FBECDBFDF91CF911F910F91FF90EF9018 +:10313000DF90CF90BF900C947315812F002319F06E +:103140000E947F2402C00E94E72426960FB6F894BE +:10315000DEBF0FBECDBFDF91CF911F910F91FF90CA +:10316000EF90DF90CF90BF900C946C258B2D8370E7 +:1031700009F075C00111EEC1812F82958695877087 +:10318000880F880F912F9F70C92ED12CE12CF12C24 +:10319000082E04C0CC0CDD1CEE1CFF1C0A94D2F7D8 +:1031A00014FF12C00FE010E020E030E004C0000F78 +:1031B000111F221F331F8A95D2F7C901B8016095EC +:1031C00070958095909503C060E070E0CB014B2D29 +:1031D0004695469543704230C1F060F56C297D29D3 +:1031E0008E299F29413051F126960FB6F894DEBF03 +:1031F0000FBECDBFDF91CF911F910F91FF90EF9048 +:10320000DF90CF90BF900C94A91E6C297D298E2948 +:103210009F2926960FB6F894DEBF0FBECDBFDF9173 +:10322000CF911F910F91FF90EF90DF90CF90BF90C3 +:103230000C94C51E0E94A91EC701B60126960FB6A2 +:10324000F894DEBF0FBECDBFDF91CF911F910F91DC +:10325000FF90EF90DF90CF90BF900C948D1E0023D5 +:1032600019F08B2D817001C08695882309F472C1F5 +:10327000812F829586958770880F880F912F9F7078 +:10328000C92ED12CE12CF12C082E04C0CC0CDD1C55 +:10329000EE1CFF1C0A94D2F714FF12C00FE010E0DE +:1032A00020E030E004C0000F111F221F331F8A9559 +:1032B000D2F7C901B801609570958095909503C0CB +:1032C00060E070E0CB014B2D46954695437042304F +:1032D000C1F060F56C297D298E299F29413051F17B +:1032E00026960FB6F894DEBF0FBECDBFDF91CF910B +:1032F0001F910F91FF90EF90DF90CF90BF900C94B3 +:10330000831F6C297D298E299F2926960FB6F89454 +:10331000DEBF0FBECDBFDF91CF911F910F91FF9008 +:10332000EF90DF90CF90BF900C949F1F0E94831F5F +:10333000C701B60126960FB6F894DEBF0FBECDBF0B +:10334000DF91CF911F910F91FF90EF90DF90CF9081 +:10335000BF900C94671F103FD1F118F4103E50F449 +:10336000A1C0123F09F463C008F44CC0133F09F434 +:1033700073C098C01F708B2D8F710023A1F00E9425 +:10338000001F812F26960FB6F894DEBF0FBECDBF6B +:10339000DF91CF911F910F91FF90EF90DF90CF9031 +:1033A000BF900C94A2170E94211F812F26960FB662 +:1033B000F894DEBF0FBECDBFDF91CF911F910F916B +:1033C000FF90EF90DF90CF90BF900C94A91700234F +:1033D000A9F02111BFC08B2D8F7126960FB6F894DE +:1033E000DEBF0FBECDBFDF91CF911F910F91FF9038 +:1033F000EF90DF90CF90BF900C94461F223008F0E2 +:10340000A9C0E9CF0023A9F08B2D8F7126960FB6A6 +:10341000F894DEBF0FBECDBFDF91CF911F910F910A +:10342000FF90EF90DF90CF90BF900C94001F00238F +:1034300059F38B2D8F7126960FB6F894DEBF0FBE11 +:10344000CDBFDF91CF911F910F91FF90EF90DF9053 +:10345000CF90BF900C94211F002399F08B2D8F717A +:1034600026960FB6F894DEBF0FBECDBFDF91CF9189 +:103470001F910F91FF90EF90DF90CF90BF900C9431 +:10348000EB1E26960FB6F894DEBF0FBECDBFDF91C0 +:10349000CF911F910F91FF90EF90DF90CF90BF9051 +:1034A0000C94E11E0023A9F0222309F4ADCF812F53 +:1034B00026960FB6F894DEBF0FBECDBFDF91CF9139 +:1034C0001F910F91FF90EF90DF90CF90BF900C94E1 +:1034D0008B16222309F4ADCF812F26960FB6F894D0 +:1034E000DEBF0FBECDBFDF91CF911F910F91FF9037 +:1034F000EF90DF90CF90BF900C9453174B2D4F70EF +:10350000612FC7010E94F90726960FB6F894DEBF17 +:103510000FBECDBFDF91CF911F910F91FF90EF9024 +:10352000DF90CF90BF900C94051E4B2D4F70612FF4 +:10353000C70126960FB6F894DEBF0FBECDBFDF9150 +:10354000CF911F910F91FF90EF90DF90CF90BF90A0 +:103550000C94C50B26960FB6F894DEBF0FBECDBFF8 +:10356000DF91CF911F910F91FF90EF90DF90CF905F +:10357000BF9008950E94BD200E9492200E94D720F3 +:103580000E949E260E946C2580E090E00E945D15BE +:1035900080E090E00C9473150E94AD200C94BA1A50 +:1035A0000E94BC1F292F22952F702C3030F42A3016 +:1035B00048F42250223078F405C02C3041F02F30EE +:1035C00031F009C0803E48F0803F29F406C093FBEB +:1035D000882780F9089580E0089581E00895CF93C9 +:1035E000DF9300D000D01F92CDB7DEB70F900F90C1 +:1035F0000F900F900F90DF91CF910895CF93DF93AD +:1036000000D000D000D0CDB7DEB726960FB6F89424 +:10361000DEBF0FBECDBFDF91CF9108951F93CF9333 +:10362000DF93C091840116E080918501C81799F05D +:10363000D0E01C9FF0011D9FF00D1124EA57FE4FB2 +:103640004081518162817381848195810E94FE1A3B +:103650002196C770E9CFDF91CF911F9108954091D6 +:10366000B6015091B7016091B8017091B901809194 +:10367000BA019091BB010C94FE1A8091BB01829516 +:103680008F7009F054C08091B801882309F44FC0AD +:1036900080918401A09185014091B9015091BA01B6 +:1036A0006091B6017091B701B6E08A1709F43FC086 +:1036B00090E041155105C1F17F3F11F46F3FA1F139 +:1036C000B89FF001B99FF00D1124EA57FE4F2181F8 +:1036D00027132AC02081261327C02281211124C04C +:1036E000238134812417350710F421503109241B1C +:1036F000350B283C3105C0F42091BB012F702061AF +:103700002093BB0126E0289FF001299FF00D112492 +:10371000E557FE4F80818F708061808386EB91E05A +:103720000E94B0170C940E1B01968770BECF0895AF +:10373000CF92DF92EF92FF920F931F93CF93DF937D +:10374000CDB7DEB762970FB6F894DEBF0FBECDBF20 +:103750008C0185E0F801DE011D9601900D928A959D +:10376000E1F7D8014C9111965C91119712966C91EA +:103770008091B9019091BA01009709F475C1309117 +:10378000B6017091B7017F3F19F43F3F09F46CC156 +:10379000F801C380D480E090B801EE2009F4BEC0E7 +:1037A0002091BB01C816D90628F0D601A81BB90B79 +:1037B000CD0104C0809590958C0D9D1DFF24F39440 +:1037C000883C910578F0F12C207F09F0C4C07C2D55 +:1037D000D98AC88A89890E94EF1A86EB91E00E94F3 +:1037E000B017AFC0822F807F09F045C0571313C0B8 +:1037F000431311C061110FC02F7020612093BB01D2 +:103800000E942F1B86EB91E00E94B0178091BB01B4 +:10381000F80185832EC0CD2819F15F3F11F44F3F89 +:10382000F9F0F62E61111CC0809184012091850170 +:1038300036E0821709F45BC090E0389FF001399FB1 +:10384000F00D1124EA57FE4F7181571306C07081A5 +:10385000471303C07281711103C001968770E9CFCD +:10386000F62E662309F41CC18091BB018160809310 +:10387000BB01F12C15C1571309C0431307C06111D7 +:1038800005C08091BB01F8018583C8C04D875E8764 +:103890008D859E856A8B0E94D01A6A898823D1F112 +:1038A0006623C1F12091BB01822F82958F7090E039 +:1038B000029774F08091B6019091B70198878F8339 +:1038C0001986DB86CA862C87CE0107960E94B01720 +:1038D00086E0F801A6EBB1E001900D928A95E1F740 +:1038E0000E943D1B0E942F1BFF24F394D9C04D87DB +:1038F0005E878D859E850E94BC1F292F22952F7083 +:10390000223008F0C1C09F7009F0BBC0805E8830D3 +:1039100008F4C6C0C8010E94B017E6CFC816D90681 +:1039200008F453C0F601E81BF90BCF01883C910560 +:1039300008F450C0F12C7C2DD98AC88A89890E944C +:10394000EF1AE6EBF1E086E0DF011D928A95E9F7D8 +:103950000E942F1BA5C0571314C0431312C061113E +:1039600010C08091BB01F8018583C8010E94B01787 +:1039700086E0E6EBF1E0DF011D928A95E9F7FE2C87 +:103980008FC04D875E878D859E856A8B0E94D01A79 +:103990006A89882309F4BECF662309F4BBCF20913E +:1039A000BB01822F82958F7090E002970CF490CF2C +:1039B0008091B6019091B7019A8389831B82DD8241 +:1039C000CC822E83CE01019681CF809590958C0D6F +:1039D0009D1DACCFF62E662309F49CCF571333C040 +:1039E000431331C02091BB0120FD24C0822F82955A +:1039F0008F70482F50E041155105E1F0D801159620 +:103A00002C9315974F30510549F08F5F982F929561 +:103A1000907F822F8F70892B15968C93C8010E94FE +:103A2000B01786E0F801A6EBB1E001900D928A95FF +:103A3000E1F78ECF86E0F801A6EBB1E001900D92A0 +:103A40008A95E1F72DC04D875E878D859E850E9402 +:103A5000D01A81113DCF8091BB0181608093BB0161 +:103A6000C8010E94B0171CC0662309F453CF4D87CC +:103A70005E878D859E850E94D01A882309F44ACFDF +:103A800027CF811143CF0CC0243008F043CF9F7063 +:103A900009F43CCFD80115969C91907F09F036CF60 +:103AA0008F2D62960FB6F894DEBF0FBECDBFDF91AB +:103AB000CF911F910F91FF90EF90DF90CF900895DD +:103AC0001F93CF93DF93CDB7DEB72C970FB6F89443 +:103AD000DEBF0FBECDBF4F83588769877A878B873C +:103AE0009C87CE0107960E94981B882371F08A85D7 +:103AF0009B85892B09F441C088858F3F09F065C0FB +:103B00008F818F3F09F061C038C086E0FE01379693 +:103B1000DE01119601900D928A95E1F76A857B8509 +:103B20006115710551F1FF81E885EF3F11F4FF3F09 +:103B300021F12091850130E0C90101968770992714 +:103B40004091840150E08417950709F447C0F98338 +:103B5000EA837D836C8396E0929FD001939FB00DA2 +:103B60001124AA57BE4FFE01319601900D929A95ED +:103B7000E1F7809385010E940E1B16E0809184017D +:103B8000909185018917B9F1189FC00111248A57B6 +:103B90009E4F0E94981B882371F1E09184011E9F23 +:103BA000F0011124EA57FE4F4081518162817381F7 +:103BB000848195810E94FE1A8091840190E0019693 +:103BC0008770992780938401D9CF4F815885698563 +:103BD0007A858B859C850E94FE1ACFCF0E94CC1AD5 +:103BE0001092850110928401E6EBF1E086E0DF019E +:103BF0001D928A95E9F72C960FB6F894DEBF0FBE9A +:103C0000CDBFDF91CF911F910895EF92FF920F9357 +:103C10001F93CF93DF938C01892B09F46CC0F12C97 +:103C2000EE24E394E8012196F8018491843740F46E +:103C3000843008F051C0813081F0823019F15BC0CE +:103C4000853709F444C0A8F19CE7980F903708F035 +:103C500052C08F770E94531741C00E5F1F4FFE0165 +:103C6000849190E2980F983050F48770FE2D01C037 +:103C7000FF0F8A95EAF78F2F0E94B02014C00E9490 +:103C80008B162DC00E5F1F4FFE01849190E2980F9E +:103C9000983060F48770FE2D01C0FF0F8A95EAF717 +:103CA0008F2F0E94B6200E94D72019C00E94531760 +:103CB00016C00E5F1F4FFE01C491CC2381F08FE927 +:103CC0009FE00197F1F700C00000C150F6CF0E5FF2 +:103CD0001F4FFE01F49003C00E948B168E018F2DA2 +:103CE000882309F49FCFEFE9FFE03197F1F700C097 +:103CF00000008150F5CFDF91CF911F910F91FF9080 +:103D0000EF90089508956093C0017093C10180936E +:103D1000C2019093C3010C94BA1A0F931F930091A0 +:103D2000C0011091C1012091C2013091C301DC0199 +:103D3000CB01802B912BA22BB32B8093C0019093AE +:103D4000C101A093C201B093C3011F910F910C94C4 +:103D5000BA1A0F931F930091C0011091C1012091D5 +:103D6000C2013091C301DC01CB0180239123A22346 +:103D7000B3238093C0019093C101A093C201B0937B +:103D8000C3011F910F910C94BA1A0F931F930091C6 +:103D9000C0011091C1012091C2013091C301DC0129 +:103DA000CB0180279127A227B3278093C00190934E +:103DB000C101A093C201B093C3011F910F910C9454 +:103DC000BA1A1092BC011092BD011092BE0110925D +:103DD000BF010C94BA1A41E050E060E070E004C00A +:103DE000440F551F661F771F8A95D2F74093BC0179 +:103DF0005093BD016093BE017093BF010C94BA1A39 +:103E000041E050E060E070E004C0440F551F661FC1 +:103E1000771F8A95D2F78091BC019091BD01A09146 +:103E2000BE01B091BF01482B592B6A2B7B2B4093CD +:103E3000BC015093BD016093BE017093BF010C940F +:103E4000BA1A41E050E060E070E004C0440F551F32 +:103E5000661F771F8A95D2F74095509560957095AB +:103E60008091BC019091BD01A091BE01B091BF01B4 +:103E7000482359236A237B234093BC015093BD01FF +:103E80006093BE017093BF010C94BA1A41E050E0F8 +:103E900060E070E004C0440F551F661F771F8A95CD +:103EA000D2F78091BC019091BD01A091BE01B0916B +:103EB000BF01482759276A277B274093BC015093AD +:103EC000BD016093BE017093BF010C94BA1A0F93A9 +:103ED0001F930091BC011091BD012091BE01309152 +:103EE000BF01DC01CB01802B912BA22BB32B809344 +:103EF000BC019093BD01A093BE01B093BF011F917F +:103F00000F910C94BA1A0F931F930091BC0110915A +:103F1000BD012091BE013091BF01DC01CB018023A6 +:103F20009123A223B3238093BC019093BD01A0935E +:103F3000BE01B093BF011F910F910C94BA1A0F9359 +:103F40001F930091BC011091BD012091BE013091E1 +:103F5000BF01DC01CB0180279127A227B3278093E3 +:103F6000BC019093BD01A093BE01B093BF011F910E +:103F70000F910C94BA1A0895CF92DF92EF92FF92AC +:103F80000F931F93CF93DF938C01C090BC01D0900F +:103F9000BD01E090BE01F090BF018091C001909101 +:103FA000C101A091C201B091C301C82AD92AEA2A4D +:103FB000FB2ACFE1D0E0D701C6010C2E04C0B69594 +:103FC000A795979587950A94D2F780FF07C0B80107 +:103FD0008C2F0E94E90B8130910531F4219758F71D +:103FE000B80180E00E94E90BDF91CF911F910F9102 +:103FF000FF90EF90DF90CF90089590910C0199235E +:1040000079F190910D01992359F1982F96959695F4 +:1040100096959F30A0F4E0910E01F0910F01E90F09 +:10402000F11D877021E030E0A90102C0440F551F47 +:104030008A95E2F7CA019181892B81830895909135 +:10404000D70190FF29C01F928F9387ED95E09F9332 +:104050008F930E94F0070F900F900F900F9008958C +:1040600020910E0130910F01F90132969FEF40E04F +:104070005191851789F09F3F19F4511101C0942F78 +:104080004F5F4E30A9F79F3F39F0F901E90FF11D5D +:1040900097FDFA9582830895089590910C019923D4 +:1040A00081F190910D01992361F1982F9695969544 +:1040B00096959F30A8F4E0910E01F0910F01E90F61 +:1040C000F11D877021E030E0A90102C0440F551FA7 +:1040D0008A95E2F7CA0180959181892381830895A9 +:1040E0009091D70190FF1DC01F928F9389EB95E0AF +:1040F0009F938F930E94F0070F900F900F900F9057 +:10410000089520910E0130910F01F9013296205F40 +:104110003F4F9081891301C010823196E217F30757 +:10412000C1F7089581E090E0E0910E01F0910F0158 +:10413000E80FF91F1082019680319105A9F70895C3 +:104140009091D601892B8093D60108958095909106 +:10415000D60189238093D60108951092D60108953F +:104160009091D501892B8093D501089580959091E8 +:10417000D50189238093D50108951092D501089522 +:104180008093C40108951092C401089580910E0196 +:1041900090910F01FC0131969C01205F3F4F80E020 +:1041A000919191118F5FE217F307D1F70895E09194 +:1041B0000E01F0910F018091D6018083E0910E01F4 +:1041C000F0910F0190818091D501892B808380919E +:1041D000C401882361F0E0910E01F0910F019081FC +:1041E000892B80830E94C62081111092C401809186 +:1041F0000E0190910F010C940A1590933B0180934E +:104200003A010895CF92DF92EF92FF926C01EE2473 +:10421000FF24C114D104E104F10421F0C701B60167 +:1042200020E101C020E0C72ED82EE92EFF24C114C2 +:10423000D104E104F10419F0285FC701B6016B0154 +:104240007C0154E0F694E794D794C7945A95D1F73B +:10425000C114D104E104F10419F02C5FC701B601C7 +:104260006B017C0142E0F694E794D794C7944A9599 +:10427000D1F7C114D104E104F10419F02E5FC70194 +:10428000B601DC01CB01B695A79597958795892B4B +:104290008A2B8B2B09F02F5F822FFF90EF90DF90FE +:1042A000CF9008958295982F937344E0949F900146 +:1042B00011248C7C86958695282B822F8575880FF6 +:1042C0002A7A2695822B08951F93CF93DF931F920E +:1042D000CDB7DEB799830E945221182F9981892F7B +:1042E0000E945221212F30E0322F2227A901482B92 +:1042F000CA010F90DF91CF911F9108958091EF0136 +:10430000843011F120E488E190E00FB6F894A8958C +:10431000809360000FBE2093600083B7817F84602C +:1043200083BF83B7816083BF7894889583B78E7F7E +:1043300083BF0FB6F894A895809160008861809340 +:104340006000109260000FBE089508950C94A5219E +:10435000CF930E94A6210E9484090E94A521C0E05B +:104360008C2F0E94B80A811104C0CF5FCE30C1F7F4 +:1043700001C081E0CF9108950E94CC1A0E94FE14E2 +:104380000C942C0D82E084BD93E095BD9AEF97BD0F +:1043900080936E0008952FB7F8948091D801909182 +:1043A000D901A091DA01B091DB012FBF0895CF921E +:1043B000DF92EF92FF920F931F932FB7F8944091E3 +:1043C000D8015091D9016091DA017091DB012FBFC2 +:1043D0006A017B01EE24FF248C0120E030E0C0164E +:1043E000D106E206F30610F4415051099A01281B48 +:1043F000390BC9011F910F91FF90EF90DF90CF9083 +:1044000008951F920F920FB60F9211248F939F93CE +:10441000AF93BF938091D8019091D901A091DA0117 +:10442000B091DB010196A11DB11D8093D80190933D +:10443000D901A093DA01B093DB01BF91AF919F91B5 +:104440008F910F900FBE0F901F9018950E94F7113B +:10445000F8942FEF87EA91E6215080409040E1F7F1 +:1044600000C0000087E090EBDC018093F80190939E +:10447000F901A093FA01B093FB019CE088E10FB62B +:10448000F894A895809360000FBE90936000FFCFD2 +:10449000EF92FF920F931F93CF93DF93D82FC0E03B +:1044A0008C2F0E94B80A00E010E0E82EF12CC70122 +:1044B000002E02C0959587950A94E2F780FD06C00C +:1044C0000F5F1F4F0630110591F709C0602F7C2F39 +:1044D00080E00E94C60B8D13F3CF81E004C0CF5F54 +:1044E000CE30F1F680E0DF91CF911F910F91FF90D8 +:1044F000EF900895CF93C82F8CE20E944822882322 +:1045000021F08C2FCF910C94482280E0CF91089518 +:10451000CF930E94D723811102C00E94BD238CEF4C +:1045200095E00E945707C5E6C15049F00E948409F2 +:104530008FE39CE90197F1F700C00000F5CF85EF0C +:1045400095E00E94570789E20E947A22811113C1E7 +:104550008AE20E947A2281110E94BD2385E00E9496 +:104560007A2281110E9426220E94E2238093D701A1 +:1045700087E00E947A228823A9F18BE10E947A22A7 +:10458000882351F08091D70181FB222720F991E007 +:10459000922790FB81F90EC08EE00E947A22882338 +:1045A00061F08091D70182FB222720F991E09227C8 +:1045B00090FB82F98093D70115C080E10E947A2296 +:1045C0009091D701882341F093FB222720F981E0C5 +:1045D000822780FB93F904C0892F809580FB90F996 +:1045E0009093D7018091D7010E94E6230E94F42383 +:1045F0008093E90180EE0E947A22882341F0809125 +:10460000E901982F909590FB80F98093E90189E367 +:104610000E947A22882359F08091E90181FB2227A8 +:1046200020F991E0922790FB81F98093E90182EED5 +:104630000E947A22882359F08091E90182FB222787 +:1046400020F991E0922790FB82F98093E90186EEB0 +:104650000E947A22882359F08091E90183FB222766 +:1046600020F991E0922790FB83F98093E90183EE92 +:104670000E947A22882359F08091E90184FB222745 +:1046800020F991E0922790FB84F98093E90185E37A +:104690000E947A22882359F08091E90185FB222724 +:1046A00020F991E0922790FB85F98093E90181E35D +:1046B0000E947A22882359F08091E90186FB222703 +:1046C00020F991E0922790FB86F98093E90181E13E +:1046D0000E947A22882359F08091E90187FB2227E2 +:1046E00020F991E0922790FB87F98093E90180916E +:1046F000E9010E94F8238091E90187FB882780F96E +:1047000080930D0187E20E947A22C82F8EE10E94D9 +:104710007A228111C2608FE10E947A228111C460E5 +:1047200080E20E947A228111C86081E20E947A228E +:104730008111C06182E20E947A228111C06283E20B +:104740000E947A228111C06484E20E947A22882326 +:1047500011F0C06802C0CC2329F08C2F0E94EF23F7 +:104760006C2F03C00E94EB23682F70E080E090E084 +:10477000CF910C94831ECF9108956DEE7EEF80E073 +:1047800090E00E94CE2D60E082E090E00E94C02D7B +:1047900060E083E090E00E94C02D60E084E090E063 +:1047A0000E94C02D60E085E090E00C94C02D80E078 +:1047B00090E00E94BA2D21E08D3E9E4F09F020E04E +:1047C000822F089582E090E00C94B22D682F82E051 +:1047D00090E00C94C02D83E090E00C94B22D682FF3 +:1047E00083E090E00C94C02D84E090E00C94B22D16 +:1047F000682F84E090E00C94C02D8091DE0180FF52 +:104800000BC06091130185E0689FB001112475957C +:104810006795759567952BC081FF09C0609113015D +:1048200085E0689FB00111247595679520C082FFCF +:1048300007C06091130185E0689FB001112417C083 +:104840009091DF019923D1F060911201961788F7BA +:104850002091130185E0289F90011124929FA001CF +:10486000939F500D112470E0CA010E94842D60387E +:10487000710540F46115710519F406C065E070E03A +:10488000862F08958FE7089581E008958091DE01D5 +:1048900080FF08C06091110170E07595679575956E +:1048A000679521C081FF06C06091110170E0759588 +:1048B000679519C082FF04C06091110170E010C0BB +:1048C0009091DF01992399F0609110019617A0F75C +:1048D00080911101899FC001112470E00E94842DF4 +:1048E0006038710540F46115710519F406C061E086 +:1048F00070E0862F08958FE7089581E00895803F46 +:1049000021F40E94FD23819504C0813F29F40E9477 +:10491000FD238093E2010895823F21F40E94FD234C +:10492000819504C0833F29F40E94FD238093E10117 +:104930000895893F19F40E94462405C08A3F31F446 +:104940000E94462481958093E30108958B3F21F4D2 +:104950000E944624819504C08C3F29F40E9446247D +:104960008093E4010895843F21F48091E001816007 +:1049700017C0853F21F48091E001826011C0863F1D +:1049800021F48091E00184600BC0873F21F4809185 +:10499000E001886005C0883F31F48091E0018061CA +:1049A0008093E00108958D3F21F48091DE018160C4 +:1049B0000BC08E3F21F48091DE01826005C08F3FE5 +:1049C00029F48091DE0184608093DE010895803FA8 +:1049D00039F48091E20187FF6CC01092E20169C056 +:1049E000813F29F48091E2011816BCF362C09091D6 +:1049F000E101823F29F497FF5CC01092E10159C0A8 +:104A0000833F19F41916CCF354C0893F41F48091C7 +:104A1000E30118160CF04DC01092E3014AC08A3F22 +:104A200029F48091E30187FF44C0F6CF8B3F39F42E +:104A30008091E40187FF3DC01092E4013AC08C3FB1 +:104A400029F48091E4011816BCF333C0843F21F4AB +:104A50008091E0018E7F17C0853F21F48091E001B5 +:104A60008D7F11C0863F21F48091E0018B7F0BC0C8 +:104A7000873F21F48091E001877F05C0883F31F4B2 +:104A80008091E0018F7E8093E00113C08D3F21F47F +:104A90008091DE018E7F0BC08E3F21F48091DE017C +:104AA0008D7F05C08F3F29F48091DE018B7F80933D +:104AB000DE018091E10181110EC08091E20181113E +:104AC0000AC08091E301811106C08091E401811147 +:104AD00002C01092DF0108958091D70183FF7EC04C +:104AE00088E396E00E9457078091E0011F928F9320 +:104AF00083E396E09F938F930E94F00781E396E013 +:104B00000E9457078091E101282F082E000C330BDB +:104B10003F938F938EE296E09F938F930E94F007CE +:104B20008CE296E00E9457078091E201282F082E20 +:104B3000000C330B3F938F9389E296E09F938F9302 +:104B40000E94F00787E296E00E9457078091E301F8 +:104B5000282F082E000C330B3F938F9384E296E0AE +:104B60009F938F930E94F00782E296E00E9457077E +:104B70008091E401282F082E000C330B3F938F9374 +:104B80008FE196E09F938F930E94F0078CE196E06F +:104B90000E9457078091DF011F928F9389E196E071 +:104BA0009F938F930E94F00787E196E00E9457073A +:104BB0008091DE011F928F9384E196E09F938F9303 +:104BC0000E94F00781E196E00E9457078DB79EB7DB +:104BD0004C960FB6F8949EBF0FBE8DBF80EE91E04D +:104BE0000E9452150E94CB219093DD018093DC013D +:104BF00008951F93CF93DF938091DC019091DD01A5 +:104C00000E94D721AC019091DF01992321F02091DE +:104C1000140130E006C0209115018AE0289F900120 +:104C200011244217530708F485C08091E101C09117 +:104C3000E201D091E3011091E401811107C0C1119B +:104C400075C0D11173C0111171C074C09F3F19F0AC +:104C50009F5F9093DF01181624F40E94FD23809338 +:104C6000E1018091E10187FF05C00E94FD2381954C +:104C70008093E1011C1624F40E94FD238093E2013D +:104C80008091E20187FF05C00E94FD2381958093FA +:104C9000E2016091E101662331F1C091E201CC2390 +:104CA00011F1062E000C770B880B990B0E947F2CBC +:104CB00023E333E343E35FE30E94E32C0E94472CAA +:104CC0006093E1016C2FCC0F770B880B990B0E943E +:104CD0007F2C23E333E343E35FE30E94E32C0E9452 +:104CE000472C6093E2011D1624F40E944624809311 +:104CF000E3018091E30187FF05C00E94462481956E +:104D00008093E301111624F40E9446248093E40169 +:104D10008091E40187FF05C00E944624819580931D +:104D2000E401DF91CF911F910C946C259F3F09F016 +:104D30008FCFA0CFDF91CF911F910895E0EEF1E0EA +:104D400085E0DF011D928A95E9F71092DF0110924C +:104D5000DE0108958BE598E00E9457071F9281E0DD +:104D60008F931F9285E08F938DE098E09F938F93B0 +:104D70000E94F0070F900F900F900F900F900F90E0 +:104D800008958330E9F128F4813061F0823009F12F +:104D90000895853009F462C008F449C0863009F4EA +:104DA00074C0089580911501262F30E0280F311D21 +:104DB0002F3F310524F4680F6093150103C08FEF76 +:104DC00080931501809115011F928F9386E497E0DF +:104DD00072C080911401262F30E0280F311D2F3F23 +:104DE000310524F4680F6093140103C08FEF8093A2 +:104DF0001401809114011F928F9384E397E05BC0AC +:104E000080911301262F30E0280F311D2F3F3105EF +:104E100024F4680F6093130103C08FEF8093130194 +:104E2000809113011F928F9381E297E044C080919B +:104E30001201262F30E0280F311D2F3F310524F4B9 +:104E4000680F6093120103C08FEF8093120180916D +:104E500012011F928F938CE097E02DC08091110179 +:104E6000262F30E0280F311D2F3F310524F4680F25 +:104E70006093110103C08FEF8093110180911101A4 +:104E80001F928F9383EF96E016C080911001262F1A +:104E900030E0280F311D2F3F310524F4680F609357 +:104EA000100103C08FEF80931001809110011F92B9 +:104EB0008F9388ED96E09F938F930E94F0070F9059 +:104EC0000F900F900F900895833081F128F4813076 +:104ED00059F08230D1F00895853009F449C0B8F115 +:104EE000863009F456C0089580911501681720F4A2 +:104EF000861B8093150102C0109215018091150147 +:104F00001F928F9389EC96E054C08091140168172A +:104F100020F4861B8093140102C01092140180912A +:104F200014011F928F9387EB96E043C08091130189 +:104F3000681720F4861B8093130102C0109213019E +:104F4000809113011F928F9384EA96E032C0809182 +:104F50001201681720F4861B8093120102C0109280 +:104F60001201809112011F928F938FE896E021C069 +:104F700080911101681720F4861B8093110102C0F3 +:104F800010921101809111011F928F9386E796E094 +:104F900010C080911001681720F4861B80931001C7 +:104FA00002C010921001809110011F928F938BE527 +:104FB00096E09F938F930E94F0070F900F900F90B1 +:104FC0000F900895CF93C82F1F928F9380E699E09A +:104FD0009F938F930E94F00781E090E0A0E0B0E003 +:104FE000BC01CD0104C0660F771F881F991FCA95A9 +:104FF000D2F70E94831E0F900F900F900F90CF91C9 +:105000000C94CC1ACF938D3109F465C0B0F58E3075 +:1050100009F4CCC100F5873009F49BC1A8F48630AF +:1050200009F06DC28091D701817F8E7F8093D70177 +:1050300085E699E00E94570784EA9DE00E945707A1 +:1050400081E08093E60180C1883009F44FC08B3045 +:1050500009F47CC154C2863109F4F0C138F48031BE +:1050600009F4B8C1813109F430C249C2893109F467 +:10507000CEC18B3109F486C142C2853309F437C2EF +:1050800048F4873209F433C208F433C2893209F490 +:105090002EC235C2833438F48A3308F02CC28833E8 +:1050A00009F454C12CC2833409F421C2883409F0B4 +:1050B00026C20E94CC1A83E99DE00E9457079FEF09 +:1050C00023ED80E3915020408040E1F700C00000D4 +:1050D0000E94262239C183EB9DE00E9457070E945F +:1050E000012C0E94FE140E942C0D2EC188EA9DE026 +:1050F0000E94570786E79BE00E9457070E94EB2318 +:105100001F928F9383E79BE09F938F930E94F007FA +:1051100081E79BE00E9457070E94E223C82F8EE59B +:105120009BE00E9457071F92CF9389E59BE09F93D6 +:105130008F930E94F00787E59BE00E9457078DE45C +:105140009BE00E9457078C2F81701F928F938AE4F7 +:105150009BE09F938F930E94F00788E49BE00E945E +:1051600057078EE39BE00E945707C1FB882780F911 +:105170001F928F938BE39BE09F938F930E94F00786 +:1051800089E39BE00E9457078DE29BE00E9457074E +:10519000C2FB882780F91F928F938AE29BE09F933E +:1051A0008F930E94F00788E29BE00E9457078FE1EF +:1051B0009BE00E945707C3FBCC27C0F91F92CF93F7 +:1051C0008CE19BE09F938F930E94F0078AE19BE024 +:1051D0000E9457070E94F423C82F86E09BE00E949C +:1051E00057071F92CF9381E09BE09F938F930E947C +:1051F000F0078FEF9AE00E94570786EE9AE00E9430 +:1052000057078C2F81701F928F9383EE9AE09F93A4 +:105210008F930E94F0078DB79EB780960FB6F894D3 +:105220009EBF0FBE8DBF81EE9AE00E9457078AECA9 +:105230009AE00E945707C1FB882780F91F928F933D +:1052400087EC9AE09F938F930E94F00785EC9AE099 +:105250000E94570783EB9AE00E945707C2FB8827FA +:1052600080F91F928F9380EB9AE09F938F930E9417 +:10527000F0078EEA9AE00E9457078CE99AE00E94B4 +:105280005707C3FB882780F91F928F9389E99AE01B +:105290009F938F930E94F00787E99AE00E94570737 +:1052A0008DE89AE00E945707C4FB882780F91F9277 +:1052B0008F938AE89AE09F938F930E94F00788E883 +:1052C0009AE00E94570786E79AE00E945707C5FBBD +:1052D000882780F91F928F9383E79AE09F938F939B +:1052E0000E94F00781E79AE00E94570785E59AE05F +:1052F0000E945707C6FB882780F91F928F9382E58B +:105300009AE09F938F930E94F00780E59AE00E94B5 +:10531000570788E49AE00E945707C7FBCC27C0F9DB +:105320001F92CF9385E49AE09F938F930E94F0079A +:1053300083E49AE00E9457078DB79EB74C960FB64C +:10534000F8949EBF0FBE8DBFC1E0DEC08CE899E02F +:105350005BC08091D701C82FC17080FF09C086E86B +:105360009DE00E9457078091D701817F8E7F47C0C3 +:105370008AE79DE00E9457078091D7018160809362 +:10538000D701E2CF9091D70191FBCC27C0F981E002 +:10539000C827892FC0FB81F98093D701CC2319F04E +:1053A0008DE69DE027C08FE59DE02EC09091D7014E +:1053B00092FBCC27C0F981E0C827892FC0FB82F976 +:1053C0008093D701CC2319F080E59DE013C080E4E1 +:1053D0009DE01AC09091D70193FBCC27C0F981E0E2 +:1053E000C827892FC0FB83F98093D701CC2351F0C4 +:1053F00084E39DE00E9457078091D70181608093EC +:10540000D70182C087E29DE00E9457079DCF88E1C7 +:105410009DE00E9457078CEE9CE00E9457078FEAA0 +:105420009CE00E94570788E89CE00E94570784E4AC +:105430009CE00E94570786E19CE0E6CF88E09CE074 +:105440000E9457070E94FE141F928F938EEE9BE0DE +:105450009F938F930E94F00780910C011F928F936E +:1054600087ED9BE09F938F930E94F00780916E01E0 +:105470001F928F9384EC9BE09F938F930E94F00781 +:1054800080910D011F928F9381EB9BE09F938F93EF +:105490000E94F0078091D8019091D901A091DA0182 +:1054A000B091DB01BF93AF939F938F938DE99BE006 +:1054B0009F938F930E94F0078DB79EB746960FB6C5 +:1054C000F8949EBF0FBE8DBF3FCF0E94CC1AC091F3 +:1054D0000D0181E0C827C0930D01CC2329F083E999 +:1054E0009BE00E94570710C088E89BE08DCF80E0CA +:1054F00003C08D5101C089530E94E22725CF86E861 +:105500009BE00E945707C0E08C2FCF91089580E068 +:1055100008950C94872ACF93C82F8091E60181309B +:1055200081F020F0823009F44FC045C1E0910E01B6 +:10553000F0910F018081813169F0823209F03DC123 +:1055400009C0E0910E01F0910F018081813111F0CD +:10555000823261F48C2F0E94892A811104C08C2F21 +:105560000E9402282FC081E090E02CC08C2F0E9466 +:10557000872A811126C0C431E1F070F4CB3081F06C +:10558000C031D1F40E94AA2688E599E00E9457070D +:1055900082E08093E60115C0C93259F0C83361F446 +:1055A00085E699E00E9457078CE599E00E9457072D +:1055B00008C01092E60103C186E599E00E945707F2 +:1055C000FEC081E08170FDC0C43220F5CE3108F00C +:1055D000C0C0CB3099F1C8F4C73009F0D2C08AE01E +:1055E0008093150194E19093140193E0909313013B +:1055F0008093120188E08093110188E2809310016A +:105600008CEF97E00E945707BFC0C33149F1C43106 +:10561000C1F0B7C0CB3409F4A9C028F4C93289F06D +:10562000C83361F0AEC0C13509F49EC0C23509F47B +:1056300099C0CE3409F0A5C06AE09EC00E94AA2697 +:10564000A3C08091E501882319F01092E5019CC068 +:1056500089E098E00E94570781E08093E601B1C09D +:1056600083EE97E00E94570781ED97E00E9457076D +:10567000809115011F928F938EEC97E09F938F93EB +:105680000E94F0078CEC97E00E9457078AEB97E0A6 +:105690000E945707809114011F928F9387EB97E028 +:1056A0009F938F930E94F00785EB97E00E94570726 +:1056B00086EA97E00E945707809113011F928F930B +:1056C00083EA97E09F938F930E94F00781EA97E027 +:1056D0000E94570780E997E00E94570780911201C6 +:1056E0001F928F938DE897E09F938F930E94F0070E +:1056F0008BE897E00E94570786E797E00E945707DC +:10570000809111011F928F9383E797E09F938F936E +:105710000E94F00781E797E00E9457078AE597E02B +:105720000E945707809110011F928F9387E597E0A1 +:105730009F938F930E94F00785E597E00E9457079B +:105740008DB79EB748960FB6F8949EBF0FBE8DBF1B +:105750001BC0CE51EC2FF0E0E15DFE4F80818093C5 +:10576000E50112C061E003C061E006C06AE080911B +:10577000E5010E94C12608C08091E5010E946427CE +:1057800003C08AEF97E013C08091E501882369F098 +:105790001F928F9384EF97E09F938F930E94F0075F +:1057A0000F900F900F900F9004C081EF97E00E9430 +:1057B000570781E006C01092E60180E002C080E059 +:1057C00001CFCF910895E1E8F0E080818860808387 +:1057D0008081816080838FB7F89493E090938900F3 +:1057E00090ED909388008FBF0895EFE6F0E0808100 +:1057F000826080830895EFE6F0E080818D7F808372 +:105800000895EFE6F0E0908182E089278083089593 +:105810001F920F920FB60F9211242F933F934F9325 +:105820005F936F937F938F939F93AF93BF93EF9308 +:10583000FF938091E7019091E80101969093E80130 +:105840008093E701811103C082E00E942C0DE0915A +:10585000E801E695E695F0E0ED53F24FE491809192 +:10586000E7018E1303C080E00E942C0DFF91EF91A1 +:10587000BF91AF919F918F917F916F915F914F9168 +:105880003F912F910F900FBE0F901F9018950E947F +:105890004E2C6894B1110C94DD2C08950E94C22CFA +:1058A00088F09F5798F0B92F9927B751B0F0E1F0E1 +:1058B000660F771F881F991F1AF0BA95C9F714C091 +:1058C000B13091F00E94DC2CB1E008950C94DC2CF6 +:1058D000672F782F8827B85F39F0B93FCCF38695CA +:1058E00077956795B395D9F73EF490958095709527 +:1058F00061957F4F8F4F9F4F0895E89409C097FBA4 +:105900003EF490958095709561957F4F8F4F9F4F96 +:105910009923A9F0F92F96E9BB279395F6958795DA +:1059200077956795B795F111F8CFFAF4BB0F11F49D +:1059300060FF1BC06F5F7F4F8F4F9F4F16C0882344 +:1059400011F096E911C0772321F09EE8872F762F7A +:1059500005C0662371F096E8862F70E060E02AF0BB +:105960009A95660F771F881FDAF7880F96958795A7 +:1059700097F9089557FD9058440F551F59F05F3F10 +:1059800071F04795880F97FB991F61F09F3F79F061 +:1059900087950895121613061406551FF2CF4695E3 +:1059A000F1DF08C0161617061806991FF1CF869565 +:1059B0007105610508940895E894BB276627772749 +:1059C000CB0197F908950E94F62C0C94672D0E9444 +:1059D000592D38F00E94602D20F0952311F00C9481 +:1059E000502D0C94562D11240C94DD2C0E94BA2CB1 +:1059F00070F3959FC1F3950F50E0551F629FF00122 +:105A0000729FBB27F00DB11D639FAA27F00DB11D3A +:105A1000AA1F649F6627B00DA11D661F829F2227C3 +:105A2000B00DA11D621F739FB00DA11D621F839F4A +:105A3000A00D611D221F749F3327A00D611D231F20 +:105A4000849F600D211D822F762F6A2F11249F576E +:105A500050409AF0F1F088234AF0EE0FFF1FBB1F71 +:105A6000661F771F881F91505040A9F79E3F510530 +:105A700080F00C94502D0C94DD2C5F3FE4F3983EA5 +:105A8000D4F3869577956795B795F795E7959F5FDA +:105A9000C1F7FE2B880F911D9695879597F908956C +:105AA00097F99F6780E870E060E008959FEF80ECD1 +:105AB000089500240A941616170618060906089574 +:105AC00000240A9412161306140605060895092EDA +:105AD0000394000C11F4882352F0BB0F40F4BF2B49 +:105AE00011F460FF04C06F5F7F4F8F4F9F4F089589 +:105AF000991B79E004C0991F961708F0961B881F20 +:105B00007A95C9F78095089597FB072E16F40094AF +:105B100007D077FD09D00E949E2D07FC05D03EF4EA +:105B2000909581959F4F0895709561957F4F089549 +:105B3000EE0FFF1F0590F491E02D0994AA1BBB1BEB +:105B400051E107C0AA1FBB1FA617B70710F0A61B7D +:105B5000B70B881F991F5A95A9F780959095BC019E +:105B6000CD010895F999FECF92BD81BDF89A99278C +:105B700080B50895A8E1B0E042E050E00C94D52D46 +:105B8000262FF999FECF1FBA92BD81BD20BD0FB659 +:105B9000F894FA9AF99A0FBE019608950E94C02DC2 +:105BA000272F0C94C12DDC01CB01FC01F999FECF0C +:105BB00006C0F2BDE1BDF89A319600B40D92415095 +:0A5BC0005040B8F70895F894FFCFA5 +:105BCA0020022D0D200EFB0DC70D930D0101C501FD +:105BDA0028080A03140A3F4D3620394605F904C33A +:105BEA0004A3046A04DD03F6030F0428044804012D +:0A5BFA000203040506070809000075 +:00000001FF diff --git a/keyboard/ergodox_ez/keymaps/naps62/keymap.c b/keyboard/ergodox_ez/keymaps/naps62/keymap.c new file mode 100644 index 0000000000..b954a311e6 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/naps62/keymap.c @@ -0,0 +1,187 @@ +#include "ergodox_ez.h" +#include "debug.h" +#include "action_layer.h" + +#define BASE 0 // default layer +#define SYMB 1 // symbols +#define MDIA 2 // media keys + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Keymap 0: Basic layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | Esc | 1 ! | 2 @ | 3 # | 4 $ | 5 % | Lang | | Esc | 6 ^ | 7 & | 8 * | 9 ( | 0 ) | Bckspc | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | Tab | Q | W | E | R | T | L2 | | L2 | Y | U | I | O | P | \ | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | Ctrl | A | S | D | F | G |------| |------| H | J | K | L | ; : | ' " | + * |--------+------+------+------+------+------| L1 | | L1 |------+------+------+------+------+--------| + * | LShift | Z | X | C | V | B | | | | N | M | , < | . > | / ? | - _ | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | L1 | ` ~ | ' " | \ | | L2 | | { | } | [ { | ] } | L1 | + * `----------------------------------' `----------------------------------' + * ,--------------. ,---------------. + * | Home | End | | PgUp |Insert | + * ,------|-------|------| |-------+-------+------. + * | | | LGui | | Del | | | + * | Space| Alt |------| |-------| Enter |Space | + * | | | LGui | | Bcsp | | | + * `---------------------' `----------------------' + */ +// If it accepts an argument (i.e, is a function), it doesn't need KC_. +// Otherwise, it needs KC_* +[BASE] = KEYMAP( // layer 0 : default + // left hand + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, LGUI(KC_SPC), + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, MO(2), + KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, MO(1), + MO(1), KC_GRV, KC_QUOT, KC_BSLS, MO(2), + + KC_HOME, KC_END, + KC_LGUI, + KC_SPC, KC_LALT, KC_LGUI, + + // right hand + KC_ESC, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + MO(2), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, + KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + MO(1), KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_MINS, + KC_LCBR, KC_RCBR, KC_LBRC, KC_RBRC, MO(1), + + KC_PGUP, KC_INS, + KC_DEL, + KC_BSPC, KC_ENT, KC_SPC +), +/* Keymap 1: Symbol Layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | ! | @ | { | } | | | | | | Up | 7 | 8 | 9 | * | F12 | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | # | $ | ( | ) | ` |------| |------| Down | 4 | 5 | 6 | + | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | \ | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | = | . | 0 | - | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// SYMBOLS +[SYMB] = KEYMAP( + // left hand + KC_TRNS,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS, + KC_TRNS,KC_EXLM,KC_AT, KC_LCBR,KC_RCBR,KC_PIPE,KC_TRNS, + KC_TRNS,KC_HASH,KC_DLR, KC_LPRN,KC_RPRN,KC_GRV, + KC_TRNS,KC_PERC,KC_CIRC,KC_LBRC,KC_RBRC,KC_TILD,KC_TRNS, + KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, + KC_TRNS,KC_TRNS, + KC_TRNS, + KC_TRNS,KC_TRNS,KC_TRNS, + // right hand + KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + KC_TRNS, KC_UP, KC_7, KC_8, KC_9, KC_ASTR, KC_F12, + KC_DOWN, KC_4, KC_5, KC_6, KC_PLUS, KC_TRNS, + KC_TRNS, KC_AMPR, KC_1, KC_2, KC_3, KC_BSLS, KC_TRNS, + KC_EQL,KC_DOT, KC_0, KC_MINS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS +), +/* Keymap 2: Media and mouse keys + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | |GuiUp | Expl | | Term | | | | | | | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | |GuiLft|GuiDwn|GuiRgt| | |------| |------| Left | Down | Up |Right | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | |Browsr| | | | |VolDwn|VolUp | Mute | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | Lclk | Rclk | | Play | Prev | Next | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | |Brwser|Brwser| + * | Lclk | Rclk |------| |------|Fwd |Back | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// MEDIA AND MOUSE +KEYMAP( + RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, LGUI(KC_W), LGUI(KC_E), KC_BTN1, LGUI(KC_T), KC_TRNS, + KC_TRNS, LGUI(KC_A), LGUI(KC_S), LGUI(KC_D), KC_MS_D, KC_MS_R, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_BTN1, KC_BTN2, KC_TRNS, + // right hand + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, KC_TRNS, + KC_MPLY, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_WBAK, KC_WFWD +), +}; + +const uint16_t PROGMEM fn_actions[] = { + [1] = ACTION_LAYER_TAP_TOGGLE(SYMB) // FN1 - Momentary Layer 1 (Symbols) +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch(id) { + case 0: + if (record->event.pressed) { + register_code(KC_RSFT); + } else { + unregister_code(KC_RSFT); + } + break; + } + return MACRO_NONE; +}; + +// Runs just one time when the keyboard initializes. +void * matrix_init_user(void) { + +}; + +// Runs constantly in the background, in a loop. +void * matrix_scan_user(void) { + + uint8_t layer = biton32(layer_state); + + ergodox_board_led_off(); + ergodox_right_led_1_off(); + ergodox_right_led_2_off(); + ergodox_right_led_3_off(); + switch (layer) { + // TODO: Make this relevant to the ErgoDox EZ. + case 1: + ergodox_right_led_1_on(); + break; + case 2: + ergodox_right_led_2_on(); + break; + default: + // none + break; + } + +}; diff --git a/keyboard/ergodox_ez/keymaps/ordinary/keymap.c b/keyboard/ergodox_ez/keymaps/ordinary/keymap.c new file mode 100644 index 0000000000..3a999f2665 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/ordinary/keymap.c @@ -0,0 +1,470 @@ +#include "ergodox_ez.h" +#include "led.h" +#include "debug.h" +#include "action_layer.h" + +#define BASE 0 // default layer +#define LOCK 1 // layer lock keys +#define SYMB_MO 2 // symbols momentary layer +#define SYMB_TG 3 // symbols lock layer +#define SYMB_XX 4 // symbols exit layer +#define MDIA_MO 5 // media momentary layer +#define MDIA_TG 6 // media lock layer +#define MDIA_XX 7 // media exit layer +#define UNLOCK 8 // clear to base layer + +/* + * Ordinary Ergodox EZ keyboard layout, v3 + * modifications from default by Nicholas Keene ergodoxez@nicholaskeene.com + * Details: http://nicholas.rinard.us/2016/03/ergodox-ez-layout.html + */ + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* Keymap 0: Basic layer + * + * ,-----------------------------------------------------. ,-----------------------------------------------------. + * | LOCK Grv | 1 | 2 | 3 | 4 | 5 | ESC | | - | 6 | 7 | 8 | 9 | 0 | = LOCK | + * |-----------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------| + * | Media Tab | Q | W | E | R | T | [ | | ] | Y | U | I | O | P | \ Media | + * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| + * | Symbol | A | S | D | F | G |------| |------| H | J | K | L | ; | ' Symbol | + * |-----------+------+------+------+------+------|Shift | | Tab |------+------+------+------+------+-----------| + * | LShift | Z | X | C | V | B | -Tab | | | N | M | , | . | / | RShift | + * `-----------+------+------+------+------+-------------' `-------------+------+------+------+------+-----------' + * |LCtrl | Meh |Hyper | LAlt | LGui | | RGui | RAlt | Hyper| Meh |RCtrl | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | Home | End | | Left | Right| + * ,------|------|------| |------+------+------. + * | | | PgUp | | Up | | | + * |Backsp| Del |------| |------| Enter| Space| + * | | | PgDn | | Down | | | + * `--------------------' `--------------------' + */ +[BASE] = KEYMAP( +// left hand + LT(LOCK, KC_GRV),KC_1 ,KC_2 ,KC_3 ,KC_4 ,KC_5 ,KC_ESC +,LT(MDIA_MO, KC_TAB),KC_Q ,KC_W ,KC_E ,KC_R ,KC_T ,KC_LBRC +,MO(SYMB_MO) ,KC_A ,KC_S ,KC_D ,KC_F ,KC_G +,KC_LSFT ,KC_Z ,KC_X ,KC_C ,KC_V ,KC_B ,LSFT(KC_TAB) +,KC_LCTL ,MEH_T(KC_NO),ALL_T(KC_NO),KC_LALT,KC_LGUI + + ,KC_HOME,KC_END + ,KC_PGUP + ,KC_BSPC,KC_DEL ,KC_PGDN + + // right hand + ,KC_MINS ,KC_6 ,KC_7 ,KC_8 ,KC_9 ,KC_0 ,LT(LOCK, KC_EQL) + ,KC_RBRC ,KC_Y ,KC_U ,KC_I ,KC_O ,KC_P ,LT(MDIA_MO, KC_BSLS) + ,KC_H ,KC_J ,KC_K ,KC_L ,KC_SCLN ,LT(SYMB_MO, KC_QUOT) + ,KC_TAB ,KC_N ,KC_M ,KC_COMM,KC_DOT ,KC_SLSH ,KC_RSFT + ,KC_RGUI,KC_RALT,ALL_T(KC_NO),MEH_T(KC_NO),KC_RCTL + + ,KC_LEFT ,KC_RGHT + ,KC_UP + ,KC_DOWN ,KC_ENT ,KC_SPC + ), + +/* Keymap 1: Layer Lock Keys + * + * ,-----------------------------------------------------. ,-----------------------------------------------------. + * | | Esc | | | | | | | | | | | | | | + * |-----------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------| + * | Media LOCK| | | | | | | | | | | | | | Media LOCK| + * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| + * |Symbol LOCK| | | | | |------| |------| | | | | |Symbol LOCK| + * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| + * | Caps LOCK| | | | | | | | | | | | | | Caps LOCK| + * `-----------+------+------+------+------+-------------' `-------------+------+------+------+------+-----------' + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +[LOCK] = KEYMAP( +// left hand + KC_TRNS ,KC_ESC ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS +,KC_FN3 ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS +,KC_FN2 ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS +,KC_CAPS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS +,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS + + ,KC_TRNS ,KC_TRNS + ,KC_TRNS + ,KC_TRNS,KC_TRNS ,KC_TRNS + + // right hand + ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS + ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_FN3 + ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_FN2 + ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_CAPS + ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS + + ,KC_TRNS ,KC_TRNS + ,KC_TRNS + ,KC_TRNS ,KC_TRNS ,KC_TRNS + ), + +/* Keymap 2: Symbol Momentary Layer + * + * ,-----------------------------------------------------. ,-----------------------------------------------------. + * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | | + * |-----------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------| + * | Media | ! | @ | { | } | & | < | | > | | | 7 | 8 | 9 | / | Media | + * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| + * | Symbol | # | $ | ( | ) | ` |------| |------| / | 4 | 5 | 6 | * | Symbol | + * |-----------+------+------+------+------+------| Tab | | Shift|------+------+------+------+------+-----------| + * | Shift | % | ^ | [ | ] | ~ | | | -Tab| \ | 1 | 2 | 3 | - | Shift | + * `-----------+------+------+------+------+-------------' `------------+------+------+------+------+------------' + * | | | | | | | 0 | . | = | + | Entr | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | Left | Right| | Home | End | + * ,------|------|------| |------+------+------. + * | | | Up | | PgUp | | | + * |Space |Enter |------| |------|BackSp| Del | + * | | | Down | | PgDn | | | + * `--------------------' `--------------------' + */ +[SYMB_MO] = KEYMAP( +// left hand + KC_FN2 ,KC_F1 ,KC_F2 ,KC_F3 ,KC_F4 ,KC_F5 ,KC_TRNS +,MO(MDIA_MO) ,KC_EXLM ,KC_AT ,KC_LCBR ,KC_RCBR ,KC_AMPR ,LSFT(KC_COMM) +,MO(SYMB_MO) ,KC_HASH ,KC_DLR ,KC_LPRN ,KC_RPRN ,KC_GRV +,KC_LSFT ,KC_PERC ,KC_CIRC ,KC_LBRC ,KC_RBRC ,KC_TILD ,KC_TAB +,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS + ,KC_LEFT ,KC_RGHT + ,KC_UP + ,KC_SPC ,KC_ENT ,KC_DOWN + // right hand + ,KC_TRNS ,KC_F6 ,KC_F7 ,KC_F8 ,KC_F9 ,KC_F10 ,KC_FN2 + ,LSFT(KC_DOT),KC_PIPE ,KC_7 ,KC_8 ,KC_9 ,KC_SLSH ,MO(MDIA_MO) + ,KC_SLSH ,KC_4 ,KC_5 ,KC_6 ,KC_ASTR ,MO(SYMB_MO) + ,LSFT(KC_TAB),KC_BSLS ,KC_1 ,KC_2 ,KC_3 ,KC_MINS ,KC_RSFT + ,KC_0 ,KC_DOT ,KC_EQL,KC_PLUS ,KC_ENT + ,KC_HOME ,KC_END + ,KC_PGUP + ,KC_PGDN ,KC_BSPC ,KC_DEL +), + +/* Keymap 3: Symbol Lock Layer + * + * ,-----------------------------------------------------. ,-----------------------------------------------------. + * | Lock | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | Lock | + * |-----------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------| + * | Media | ! | @ | { | } | & | < | | > | | | 7 | 8 | 9 | / | Media | + * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| + * | | # | $ | ( | ) | ` |------| |------| / | 4 | 5 | 6 | * | | + * |-----------+------+------+------+------+------| Tab | | Shift|------+------+------+------+------+-----------| + * | Shift | % | ^ | [ | ] | ~ | | | -Tab| \ | 1 | 2 | 3 | - | Shift | + * `-----------+------+------+------+------+-------------' `------------+------+------+------+------+------------' + * | | | | | | | 0 | . | = | + | Entr | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | Left | Right| | Home | End | + * ,------|------|------| |------+------+------. + * | | | Up | | PgUp | | | + * |Space |Enter |------| |------|BackSp| Del | + * | | | Down | | PgDn | | | + * `--------------------' `--------------------' + */ +[SYMB_TG] = KEYMAP( // layer 3 : return key for symbol lock layer +// left hand + MO(SYMB_XX) ,KC_F1 ,KC_F2 ,KC_F3 ,KC_F4 ,KC_F5 ,KC_TRNS +,MO(MDIA_MO) ,KC_EXLM ,KC_AT ,KC_LCBR ,KC_RCBR ,KC_AMPR ,LSFT(KC_COMM) +,MO(UNLOCK) ,KC_HASH ,KC_DLR ,KC_LPRN ,KC_RPRN ,KC_GRV +,KC_LSFT ,KC_PERC ,KC_CIRC ,KC_LBRC ,KC_RBRC ,KC_TILD ,KC_TAB +,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS + ,KC_LEFT ,KC_RGHT + ,KC_UP + ,KC_SPC ,KC_ENT ,KC_DOWN + // right hand + ,KC_TRNS ,KC_F6 ,KC_F7 ,KC_F8 ,KC_F9 ,KC_F10 ,MO(SYMB_XX) + ,LSFT(KC_DOT),KC_PIPE ,KC_7 ,KC_8 ,KC_9 ,KC_SLSH ,MO(MDIA_MO) + ,KC_SLSH ,KC_4 ,KC_5 ,KC_6 ,KC_ASTR ,MO(UNLOCK) + ,LSFT(KC_TAB),KC_BSLS ,KC_1 ,KC_2 ,KC_3 ,KC_MINS ,KC_RSFT + ,KC_0 ,KC_DOT ,KC_EQL,KC_PLUS ,KC_ENT + ,KC_HOME ,KC_END + ,KC_PGUP + ,KC_PGDN ,KC_BSPC ,KC_DEL + ), + +/* Keymap 4: Symbol Unlock Layer + * + * ,-----------------------------------------------------. ,-----------------------------------------------------. + * | | Esc | | | | | | | | | | | | | | + * |-----------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------| + * | Unlock | | | | | | | | | | | | | | Unlock | + * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| + * | | | | | | |------| |------| | | | | | | + * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| + * | Caps LOCK | | | | | | | | | | | | | | Caps LOCK | + * `-----------+------+------+------+------+-------------' `-------------+------+------+------+------+-----------' + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +[SYMB_XX] = KEYMAP( +// left hand + KC_TRNS ,KC_ESC ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS +,TG(MDIA_TG) ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS +,KC_FN1 ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS +,KC_CAPS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS +,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS + ,KC_TRNS ,KC_TRNS + ,KC_TRNS + ,KC_TRNS,KC_TRNS ,KC_TRNS + // right hand + ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS + ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,TG(MDIA_TG) + ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_FN1 + ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_CAPS + ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS + ,KC_TRNS ,KC_TRNS + ,KC_TRNS + ,KC_TRNS ,KC_TRNS ,KC_TRNS + ), + +/* Keymap 5: Media Momentary Layer + * + * ,-----------------------------------------------------. ,-----------------------------------------------------. + * | | F11 | F12 | F13 | F14 | F15 | | | | F16 | F17 | F18 | F19 | F20 | | + * |-----------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------| + * | |ShutDn| | MsUp | | |ScrlUp| |ScrlUp|PrtScr| Home | Up | PgUp | Mail | | + * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| + * | | Sleep|MsLeft|MsDown|MsRght| |------| |------|NumLok| Left | Down | Right|MyComp| | + * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| + * | | | |MsDown| | |ScrlDn| |ScrlDn| | End | Down | PgDn | | | + * `-----------+------+------+------+------+-------------' `-------------+------+------+------+------+-----------' + * | Mute |Vol Dn|Vol Up| Lclk | Rclk | |Insert|Delete| | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | Stop |Refrsh| | Prev | Next | + * ,------|------|------| |------+------+------. + * |Brwser|Brwser|Search| |VolUp | | | + * |Back | Fwd |------| |------| Stop | Play-| + * | | | Home | |VolDn | | Pause| + * `--------------------' `--------------------' + */ +[MDIA_MO] = KEYMAP( +// left hand + KC_FN3 ,KC_F11 ,KC_F12 ,KC_F13 ,KC_F14 ,KC_F15 ,KC_TRNS +,MO(MDIA_MO) ,KC_POWER,KC_TRNS ,KC_MS_U ,KC_TRNS ,KC_TRNS ,KC_WH_U +,MO(SYMB_MO) ,KC_SLEP ,KC_MS_L ,KC_MS_D ,KC_MS_R ,KC_TRNS +,KC_LSFT ,KC_TRNS ,KC_TRNS ,KC_MS_D ,KC_TRNS ,KC_TRNS ,KC_WH_D +,KC_MUTE ,KC_VOLD ,KC_VOLU ,KC_BTN1 ,KC_BTN2 + ,KC_WSTP ,KC_WREF + ,KC_WSCH + ,KC_WBAK ,KC_TRNS ,KC_WHOM + // right hand + ,KC_TRNS ,KC_F16 ,KC_F17 ,KC_F18 ,KC_F19 ,KC_F20 ,KC_FN3 + ,KC_WH_U ,KC_PSCR ,KC_HOME,KC_UP ,KC_PGUP ,KC_MAIL ,MO(MDIA_MO) + ,KC_NLCK ,KC_LEFT,KC_DOWN ,KC_RIGHT,KC_MYCM ,MO(SYMB_MO) + ,KC_WH_D ,KC_TRNS ,KC_END ,KC_DOWN ,KC_PGDN ,KC_TRNS ,KC_RSFT + ,KC_INS ,KC_DEL ,KC_TRNS ,KC_TRNS ,KC_TRNS + ,KC_MPRV ,KC_MNXT + ,KC_VOLU + ,KC_VOLD ,KC_MSTP ,KC_MPLY +), + +/* Keymap 6: Media Lock Layer + * + * ,-----------------------------------------------------. ,-----------------------------------------------------. + * | | F11 | F12 | F13 | F14 | F15 | | | | F16 | F17 | F18 | F19 | F20 | | + * |-----------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------| + * | |ShutDn| | MsUp | | |ScrlUp| |ScrlUp|PrtScr| Home | Up | PgUp | Mail | | + * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| + * | | Sleep|MsLeft|MsDown|MsRght| |------| |------|NumLok| Left | Down | Right|MyComp| | + * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| + * | | | |MsDown| | |ScrlDn| |ScrlDn| | End | Down | PgDn | | | + * `-----------+------+------+------+------+-------------' `-------------+------+------+------+------+-----------' + * | Mute |Vol Dn|Vol Up| Lclk | Rclk | |Insert|Delete| | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | Stop |Refrsh| | Prev | Next | + * ,------|------|------| |------+------+------. + * |Brwser|Brwser|Search| |VolUp | | | + * |Back | Fwd |------| |------| Stop | Play-| + * | | | Home | |VolDn | | Pause| + * `--------------------' `--------------------' + */ +[MDIA_TG] = KEYMAP( +// left hand + MO(MDIA_XX) ,KC_F11 ,KC_F12 ,KC_F13 ,KC_F14 ,KC_F15 ,KC_TRNS +,MO(UNLOCK) ,KC_POWER,KC_TRNS ,KC_MS_U ,KC_TRNS ,KC_TRNS ,KC_WH_U +,KC_NO ,KC_SLEP ,KC_MS_L ,KC_MS_D ,KC_MS_R ,KC_TRNS +,KC_LSFT ,KC_TRNS ,KC_TRNS ,KC_MS_D ,KC_TRNS ,KC_TRNS ,KC_WH_D +,KC_MUTE ,KC_VOLD ,KC_VOLU ,KC_BTN1 ,KC_BTN2 + ,KC_WSTP ,KC_WREF + ,KC_WSCH + ,KC_WBAK ,KC_TRNS ,KC_WHOM + // right hand + ,KC_TRNS ,KC_F16 ,KC_F17 ,KC_F18 ,KC_F19 ,KC_F20 ,MO(MDIA_XX) + ,KC_WH_U ,KC_PSCR ,KC_HOME,KC_UP ,KC_PGUP ,KC_MAIL ,MO(UNLOCK) + ,KC_NLCK ,KC_LEFT,KC_DOWN ,KC_RIGHT,KC_MYCM ,KC_NO + ,KC_WH_D ,KC_TRNS ,KC_END ,KC_DOWN ,KC_PGDN ,KC_TRNS ,KC_RSFT + ,KC_INS ,KC_DEL ,KC_TRNS ,KC_TRNS ,KC_TRNS + ,KC_MPRV ,KC_MNXT + ,KC_VOLU + ,KC_VOLD ,KC_MSTP ,KC_MPLY + ), + +/* Keymap 7: Media Unlock Layer + * + * ,-----------------------------------------------------. ,-----------------------------------------------------. + * | | Esc | | | | | | | | | | | | | | + * |-----------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------| + * | Unlock | | | | | | | | | | | | | | Unlock | + * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| + * | | | | | | |------| |------| | | | | | | + * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| + * | Caps LOCK | | | | | | | | | | | | | | Caps LOCK | + * `-----------+------+------+------+------+-------------' `-------------+------+------+------+------+-----------' + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +[MDIA_XX] = KEYMAP( +// left hand + KC_TRNS ,KC_ESC ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS +,KC_FN1 ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS +,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS +,KC_CAPS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS +,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS + + ,KC_TRNS ,KC_TRNS + ,KC_TRNS + ,KC_TRNS,KC_TRNS ,KC_TRNS + + // right hand + ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS + ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_FN1 + ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS + ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_CAPS + ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS + + ,KC_TRNS ,KC_TRNS + ,KC_TRNS + ,KC_TRNS ,KC_TRNS ,KC_TRNS + ), + +/* Keymap 8: Unlock Layer + * + * ,-----------------------------------------------------. ,-----------------------------------------------------. + * | Unlock | | | | | | | | | | | | | | Unlock | + * |-----------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------| + * | | | | | | | | | | | | | | | | + * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| + * | | | | | | |------| |------| | | | | | | + * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| + * | | | | | | | | | | | | | | | | + * `-----------+------+------+------+------+-------------' `-------------+------+------+------+------+-----------' + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +[UNLOCK] = KEYMAP( +// left hand + KC_FN1 ,KC_ESC ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS +,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS +,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS +,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS +,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS + + ,KC_TRNS ,KC_TRNS + ,KC_TRNS + ,KC_TRNS,KC_TRNS ,KC_TRNS + + // right hand + ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_FN1 + ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS + ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS + ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS + ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS + + ,KC_TRNS ,KC_TRNS + ,KC_TRNS + ,KC_TRNS ,KC_TRNS ,KC_TRNS + ) +}; + +const uint16_t PROGMEM fn_actions[] = { + [1] = ACTION_LAYER_CLEAR(ON_PRESS) // FN1 - clear to base layer + ,[2] = ACTION_LAYER_INVERT(SYMB_TG, ON_PRESS) // FN2 - toggle to Symbols on press + ,[3] = ACTION_LAYER_INVERT(MDIA_TG, ON_PRESS) // FN3 - toggle to Media on press +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch(id) { + case 0: + if (record->event.pressed) { + register_code(KC_RSFT); + } else { + unregister_code(KC_RSFT); + } + break; + } + return MACRO_NONE; +}; + +// Runs just one time when the keyboard initializes. +void matrix_init_user(void) { + +}; + +// Runs constantly in the background, in a loop. +void matrix_scan_user(void) { + uint8_t layer = biton32(layer_state); + + // do not change lights for locking and unlocking + if(layer == UNLOCK || layer == LOCK || layer == SYMB_XX || layer == MDIA_XX) { + return; + } + + ergodox_board_led_off(); + ergodox_right_led_1_off(); + ergodox_right_led_2_off(); + ergodox_right_led_3_off(); + + // caps lock turns on red light + if(host_keyboard_leds() & (1<\n\n\nTab"], +[{y:-0.75,x:3.5,c:"#cccccc"},"C",{x:10.5},"<\n,"], +[{y:-0.875,x:2.5},"X",{x:1},"V",{x:8.5},"M",{x:1},">\n."], +[{y:-0.875,x:5.5},"B",{x:6.5},"N"], +[{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"], +[{y:-0.375,x:3.5,c:"#77aaff"},"Option\n\n\nLAlt",{x:10.5},"Option\n\n\nRAlt"], +[{y:-0.875,x:2.5},"Hyper",{x:1},"Cmd\n\n\nSuper",{x:8.5},"Cmd\n\n\nSuper",{x:1},"Hyper"], +[{y:-0.75,x:0.5},"Ctrl\n\n\nLCtrl","Meh",{x:14.5},"Meh","Ctrl\n\n\nRCtrl"], +[{r:30,rx:6.5,ry:4.25,y:-1,x:1,c:"#54d6de"},"Home","End"], +[{h:2},"< Del\n\n\nBackspace",{h:2},"Del >\n\n\nDelete","Page\n\n\n\n\n\nUp"], +[{x:2},"Page\n\n\n\n\n\nDown"], +[{r:-30,rx:13,y:-1,x:-3},"Left","Right"], +[{x:-3},"Up",{h:2},"Enter",{h:2},"Space"], +[{x:-3},"Down"] + diff --git a/keyboard/ergodox_ez/keymaps/ordinary/ordinary-media.png b/keyboard/ergodox_ez/keymaps/ordinary/ordinary-media.png new file mode 100644 index 0000000000..9c0e8bba39 Binary files /dev/null and b/keyboard/ergodox_ez/keymaps/ordinary/ordinary-media.png differ diff --git a/keyboard/ergodox_ez/keymaps/ordinary/ordinary-media.txt b/keyboard/ergodox_ez/keymaps/ordinary/ordinary-media.txt new file mode 100644 index 0000000000..c7bd272eca --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/ordinary/ordinary-media.txt @@ -0,0 +1,27 @@ +[{x:3.5,c:"#99de2a"},"F13",{x:10.5},"F18"], +[{y:-0.875,x:2.5},"F12",{x:1},"F14",{x:8.5},"F17",{x:1},"F19"], +[{y:-0.875,x:5.5},"F15",{c:"#ff4444"},"Esc",{x:4.5,c:"#cccccc",a:7},"",{c:"#99de2a",a:4},"F16"], +[{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"], +[{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"], +[{y:-0.875,x:2.5,c:"#cccccc",a:7},"",{x:1,c:"#ffb063",a:4},"Scroll\n\n\n\n\n\nUp",{x:8.5},"Home",{x:1},"Page\n\n\n\n\n\nUp"], +[{y:-0.875,x:5.5,c:"#cccccc",a:7},"",{c:"#ffb063",a:4,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"], +[{y:-0.875,c:"#000000",t:"#ff0000",w:1.5},"Media\n\n\n\n\n\nShift",{c:"#e6e067",t:"#000000"},"Shut\n\n\n\n\n\nDown",{x:14.5},"Mail",{c:"#000000",t:"#ff0000",w:1.5},"\n\nMedia\n\n\n\n\nShift"], +[{y:-0.375,x:3.5,c:"#ff8500",t:"#000000"},"Mouse\n\n\n\n\n\nDown",{x:10.5},"Cursor\n\n\n\n\n\nDown"], +[{y:-0.875,x:2.5},"Mouse\n\n\n\n\n\nLeft",{x:1},"Mouse\n\n\n\n\n\nRight",{x:8.5},"Cursor\n\n\n\n\n\nLeft",{x:1},"Cursor\n\n\n\n\n\nRight"], +[{y:-0.875,x:5.5,c:"#cccccc",a:7},"",{x:6.5,c:"#e6e067",a:4},"Num\n\n\n\n\n\nLock"], +[{y:-0.875,c:"#cccccc",a:7,w:1.5},"",{c:"#e6e067",a:4},"Sleep",{x:14.5},"My\n\n\n\n\n\nComp",{c:"#cccccc",a:7,w:1.5},""], +[{y:-0.625,x:6.5,c:"#ffb063",a:4,h:1.5},"Scroll\n\n\n\n\n\nDown",{x:4.5,h:1.5},"Scroll\n\n\n\n\n\nDown"], +[{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"], +[{y:-0.875,x:2.5,c:"#cccccc",a:7},"",{x:1,c:"#ffb063",a:4},"Scroll\n\n\n\n\n\nDown",{x:8.5},"End",{x:1},"Page\n\n\n\n\n\nDown"], +[{y:-0.875,x:5.5,c:"#cccccc",a:7},"",{x:6.5},""], +[{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"], +[{y:-0.375,x:3.5,c:"#ff8500"},"Left\n\n\n\n\n\nClick",{x:10.5,c:"#ffb063"},"Delete"], +[{y:-0.875,x:2.5,c:"#e6e067"},"Vol\n\n\n\n\n\nUp",{x:1,c:"#ff8500"},"Right\n\n\n\n\n\nClick",{x:8.5,c:"#ffb063"},"Insert",{x:1,c:"#cccccc",a:7},""], +[{y:-0.75,x:0.5,c:"#e6e067",a:4},"Mute","Vol\n\n\n\n\n\nDown",{x:14.5,c:"#cccccc",a:7},"",""], +[{r:30,rx:6.5,ry:4.25,y:-1,x:1,c:"#cfc82b",a:4},"Stop\n\n\nBrowser","Reload\n\n\nBrowser"], +[{h:2},"< Web\n\n\nBrowser",{h:2},"Web >\n\n\nBrowser","Search\n\n\nBrowser"], +[{x:2},"Home\n\n\nBrowser"], +[{r:-30,rx:13,y:-1,x:-3},"Prev\n\n\nAudio\n\n\nTrack","Next\n\n\nAudio\n\n\nTrack"], +[{x:-3,c:"#e6e067"},"Vol\n\n\n\n\n\nUp",{c:"#cfc82b",h:2},"Stop\n\n\nAudio",{h:2},"Play\n\n\nAudio\n\n\nPause"], +[{x:-3,c:"#e6e067"},"Vol\n\n\n\n\n\nDown"] + diff --git a/keyboard/ergodox_ez/keymaps/ordinary/ordinary-symbol.png b/keyboard/ergodox_ez/keymaps/ordinary/ordinary-symbol.png new file mode 100644 index 0000000000..2538fbeb30 Binary files /dev/null and b/keyboard/ergodox_ez/keymaps/ordinary/ordinary-symbol.png differ diff --git a/keyboard/ergodox_ez/keymaps/ordinary/ordinary-symbol.txt b/keyboard/ergodox_ez/keymaps/ordinary/ordinary-symbol.txt new file mode 100644 index 0000000000..098a08d2f1 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/ordinary/ordinary-symbol.txt @@ -0,0 +1,27 @@ +[{x:3.5,c:"#99de2a"},"F3",{x:10.5},"F8"], +[{y:-0.875,x:2.5},"F2",{x:1},"F4",{x:8.5},"F7",{x:1},"F9"], +[{y:-0.875,x:5.5},"F5",{c:"#ff4444"},"Esc",{x:4.5,c:"#cccccc",a:7},"",{c:"#99de2a",a:4},"F6"], +[{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"], +[{y:-0.375,x:3.5,c:"#c4e0bf"},"{",{x:10.5,c:"#89b087"},"8"], +[{y:-0.875,x:2.5,c:"#c4e0bf"},"@",{x:1},"}",{x:8.5,c:"#89b087"},"7",{x:1},"9"], +[{y:-0.875,x:5.5,c:"#c4e0bf"},"&",{h:1.5},"<",{x:4.5,h:1.5},">","|"], +[{y:-0.875,c:"#2277ff",w:1.5},"Media\n\n\n\n\n\nShift",{c:"#c4e0bf"},"!",{x:14.5,c:"#89b087"},"/",{c:"#2277ff",w:1.5},"\n\nMedia\n\n\n\n\nShift"], +[{y:-0.375,x:3.5,c:"#c4e0bf"},"(",{x:10.5,c:"#89b087"},"5"], +[{y:-0.875,x:2.5,c:"#c4e0bf"},"$",{x:1},")",{x:8.5,c:"#89b087"},"4",{x:1},"6"], +[{y:-0.875,x:5.5,c:"#c4e0bf"},"`",{x:6.5},"/"], +[{y:-0.875,c:"#000000",t:"#ff0000",w:1.5},"Symbols\n\n\n\n\n\nShift",{c:"#c4e0bf",t:"#000000"},"#",{x:14.5,c:"#89b087"},"*",{c:"#000000",t:"#ff0000",w:1.5},"\n\nSymbols\n\n\n\n\nShift"], +[{y:-0.625,x:6.5,c:"#54d6de",t:"#000000",fa:[0,0,0,1],h:1.5},"Tab >\n\n\nTab",{x:4.5,h:1.5},"< Tab\n\n\nShift Tab"], +[{y:-0.75,x:3.5,c:"#c4e0bf"},"[",{x:10.5,c:"#89b087"},"2"], +[{y:-0.875,x:2.5,c:"#c4e0bf"},"^",{x:1},"]",{x:8.5,c:"#89b087"},"1",{x:1},"3"], +[{y:-0.875,x:5.5,c:"#c4e0bf"},"~",{x:6.5},"\\"], +[{y:-0.875,c:"#2277ff",f2:1,w:1.5},"Capitals\nShift\n\n\n\n\nShift",{c:"#c4e0bf"},"%",{x:14.5,c:"#89b087"},"-",{c:"#2277ff",fa:[0,1,0,1],w:1.5},"\n\nCapitals\nShift\n\n\n\nShift"], +[{y:-0.375,x:3.5,c:"#cccccc",a:7},"",{x:10.5,c:"#89b087",a:4},"."], +[{y:-0.875,x:2.5,c:"#cccccc",a:7},"",{x:1},"",{x:8.5,c:"#89b087",a:4},"0",{x:1},"="], +[{y:-0.75,x:0.5,c:"#cccccc",a:7},"","",{x:14.5,c:"#89b087",a:4},"+","Enter"], +[{r:30,rx:6.5,ry:4.25,y:-1,x:1,c:"#54d6de"},"Left","Right"], +[{h:2},"Space",{h:2},"Enter","Up"], +[{x:2},"Down"], +[{r:-30,rx:13,y:-1,x:-3},"Home","End"], +[{x:-3},"Page\n\n\n\n\n\nUp",{h:2},"< Del\n\n\nBackspace",{h:2},"Del >\n\n\nDelete"], +[{x:-3},"Page\n\n\n\n\n\nDown"] + diff --git a/keyboard/ergodox_ez/keymaps/ordinary/ordinary.hex b/keyboard/ergodox_ez/keymaps/ordinary/ordinary.hex new file mode 100644 index 0000000000..b726e5e92a --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/ordinary/ordinary.hex @@ -0,0 +1,1189 @@ +:100000000C945F040C94A3040C94A3040C94A30418 +:100010000C94A3040C94A3040C94A3040C94A304C4 +:100020000C94A3040C94A3040C94BC0D0C948E0E9D +:100030000C94A3040C94A3040C94A3040C94A304A4 +:100040000C94A3040C9439230C94A3040C94A304DF +:100050000C94A3040C94DB1C0C94A3040C94A30434 +:100060000C94A3040C94A3040C94A3040C94A30474 +:100070000C94A3040C94A3040C94A3040C94A30464 +:100080000C94A3040C94A3040C94A3040C94A30454 +:100090000C94A3040C94A3040C94A3040C94A30444 +:1000A0000C94A3040C94A3040C94A304F30E150F56 +:1000B0000010150F0010570F7A0F0010CF0FE20F2E +:1000C000D612D61204130413461382138215821516 +:1000D0009A138215911491145C158215821570156E +:1000E000000000810889248935812B850252E100B6 +:1000F000E00000001E00140004001D0000774E0008 +:100100001F001A0016001B00007F4C002000080092 +:1001100007000600E2002A0021001500090019006E +:10012000E3004B00220017000A00050000004A000F +:1001300029002F0000002B0200004D002D00300090 +:1001400000002B000000500023001C000B001100D9 +:1001500000004F00240018000D001000E7005200BE +:1001600025000C000E003600E6002C0026001200D0 +:100170000F003700007F28002700130033003800ED +:10018000007751002E8131853482E500E4000000C3 +:100190000100C300C2003900010000002900010075 +:1001A0000100010001000100010001000100010047 +:1001B0000100010001000100010001000100010037 +:1001C0000100010001000100010001000100010027 +:1001D0000100010000000100010001000000010019 +:1001E000000001000100010000000100000001000A +:1001F00001000100010001000000010001000100F8 +:1002000001000100010001000100010001000100E6 +:1002100001000100010001000100010001000100D6 +:100220000100010001000100010001000100C30004 +:10023000C200390001000000C20005520252E10074 +:10024000010000003A001E022002220201005100BB +:100250003B001F0221022302010028003C002F0264 +:1002600026022F0001002C003D0030022702300042 +:10027000010052003E00240235003502000050000B +:100280000100360200002B0000004F000100370281 +:1002900000002B0200004A003F003102380031000C +:1002A00000004D004000240021001E0027004B00EC +:1002B0004100250022001F0037004C0042002600AC +:1002C000230020002E002A004300380025022D00C4 +:1002D0002E024E00C20005520252E5002800000026 +:1002E000045205520852E100010000003A001E02CB +:1002F00020022202010051003B001F0221022302C2 +:10030000010028003C002F0226022F0001002C00D3 +:100310003D00300227023000010052003E0024025E +:1003200035003502000050000100360200002B00AD +:1003300000004F000100370200002B0200004A00BD +:100340003F0031023800310000004D004000240021 +:1003500021001E0027004B004100250022001F0045 +:1003600037004C0042002600230020002E002A0007 +:100370004300380025022D002E024E000452055283 +:100380000852E5002800000001000654C1003900B1 +:10039000010000002900010001000100010001002E +:1003A0000100010001000100010001000100010045 +:1003B0000100010001000100010001000100010035 +:1003C0000100010001000100010001000000010026 +:1003D0000100010000000100000001000100010017 +:1003E0000000010000000100010001000100010007 +:1003F00000000100010001000100010001000100F6 +:1004000001000100010001000100010001000100E4 +:1004100001000100010001000100010001000100D4 +:100420000100010001000654C10039000100000074 +:10043000C30005520252E100A8000000440066001B +:10044000A6000100AA00B50045000100F20001006D +:10045000A90001006800F000F100F100F400B6000E +:1004600069000100F3000100F500B4006A0001001A +:10047000010001000000B8000100F9000000FA00CE +:100480000000B9000100F9000000FA000000AC0013 +:100490006B004600530001000000AB006C004A00F6 +:1004A00050004D004900A9006D005200510051005C +:1004B0004C00AE006E004B004F004E000100AD003E +:1004C0006F00B100B30001000100AA00C300055293 +:1004D0000252E50001000000075208520000E1004E +:1004E000A800000044006600A6000100AA00B500B4 +:1004F00045000100F2000100A90001006800F000C1 +:10050000F100F100F400B60069000100F300010001 +:10051000F500B4006A000100010001000000B8000D +:100520000100F9000000FA000000B9000100F90024 +:100530000000FA000000AC006B0046005300010010 +:100540000000AB006C004A0050004D004900A900BB +:100550006D005200510051004C00AE006E004B0087 +:100560004F004E000100AD006F00B100B30001006C +:100570000100AA00075208520000E5000100000037 +:100580000100C10001003900010000002900010044 +:100590000100010001000100010001000100010053 +:1005A0000100010001000100010001000100010043 +:1005B0000100010001000100010001000100010033 +:1005C0000100010000000100010001000000010025 +:1005D0000000010001000100000001000000010016 +:1005E0000100010001000100000001000100010004 +:1005F00001000100010001000100010001000100F3 +:1006000001000100010001000100010001000100E2 +:100610000100010001000100010001000100C10012 +:100620000100390001000000C100010001000100CB +:10063000010000002900010001000100010001008B +:1006400001000100010001000100010001000100A2 +:100650000100010001000100010001000100010092 +:100660000100010001000100010001000000010083 +:100670000100010000000100000001000100010074 +:100680000000010000000100010001000100010064 +:100690000000010001000100010001000100010053 +:1006A0000100010001000100010001000100010042 +:1006B0000100010001000100010001000100010032 +:1006C00001000100C1000100010001000100000063 +:1006D00016034500720067006F0044006F00780049 +:1006E000200045005A000000160345007200670014 +:1006F0006F0044006F007800200045005A000000A1 +:100700000403090409026D00040100A0FA090400B1 +:10071000000103010100092111010001223F00072E +:1007200005810308000A0904010001030102000910 +:100730002111010001224D000705820308000A096A +:10074000040200010300000009211101000122360A +:10075000000705830308000A0904030001030000E1 +:10076000000921110100012239000705840310004E +:10077000011201100100000008EDFE071301000145 +:1007800002000105010906A101050719E029E71585 +:1007900000250195087501810205081901290595B3 +:1007A000057501910295017503910105071900294D +:1007B0007715002501957875018102C00501098032 +:1007C000A101850216010026B7001A01002AB70010 +:1007D000751095018100C0050C0901A10185031662 +:1007E0000100269C021A01002A9C027510950181C5 +:1007F00000C005010902A1010901A10005091901B3 +:1008000029051500250195057501810295017503DE +:1008100081010501093009311581257F950275088F +:10082000810609381581257F950175088106050C1B +:100830000A38021581257F950175088106C0C0051B +:10084000010906A101050719E029E7150025019511 +:1008500008750181029501750881010508190129B2 +:10086000059505750191029501750391010507191B +:100870000029FF150025FF950675088100C00000BE +:10088000000000000000000000010204060A0F172B +:10089000202C3A4A5D71879DB3C7DAE9F5FCFFFC6D +:1008A000F5E9DAC7B39D87715D4A3A2C20170F0A24 +:1008B00006040201000000000000000000001124F6 +:1008C0001FBECFEFDAE0DEBFCDBF04B603FE24C00B +:1008D0008091EF019091F001A091F101B091F201AE +:1008E0008730904BA740B04BB9F41092EF011092B3 +:1008F000F0011092F1011092F20114BE84B7877FCB +:1009000084BF88E10FB6F894809360001092600075 +:100910000FBEE0E0FFE3099511E0A0E0B1E0E6EFF3 +:10092000F9E402C005900D92A433B107D9F721E094 +:10093000A4E3B1E001C01D92AF3EB207E1F70E940F +:10094000020B0C94F9240C94000061110BC0FC0103 +:100950008281882321F085EE0E94631103C085EE19 +:100960000E942B1280E090E008950895CF9360914B +:10097000B1017091B2018091B3019091B4010E94D4 +:10098000071CC82F8130F9F08430E9F089EF8C0F13 +:100990008230C8F056985E9825982D9826982E9803 +:1009A00027982F980E943B1081FF02C0259A2D9A0C +:1009B0008EEF8C0F823010F4269A2E9AC550C230DA +:1009C00010F4279A2F9ACF9108950C94B604569854 +:1009D0005E9825982D9826982E9827982F988FEF17 +:1009E00090E0909389008093880090938B0080938F +:1009F0008A0090938D0080938C00259A2D9A2FEF7A +:100A000080E792E0215080409040E1F700C0000074 +:100A1000269A2E9A2FEF80E792E021508040904056 +:100A2000E1F700C00000279A2F9A2FEF80E792E0AD +:100A3000215080409040E1F700C0000025982D989B +:100A40002FEF80E792E0215080409040E1F700C016 +:100A5000000026982E982FEF80E792E021508040EA +:100A60009040E1F700C0000027982F9856985E98B4 +:100A700025982D9826982E9827982F98089589EADA +:100A80008093800089E08093810024982C983F987F +:100A90008AB18F748AB96E98479A8BB1806B8BB983 +:100AA000769A0E94E7040C94B50480E280930001DA +:100AB0008091340181110EC00E94A40581E08093D1 +:100AC00034012FEF83ED90E3215080409040E1F717 +:100AD00000C0000080E40E94AA05809300018111FB +:100AE0002EC00E94D40580930001811128C00E946D +:100AF000D40580930001811122C08FE30E94D405A8 +:100B00008093000181111BC00E94CC0580E40E94EB +:100B1000AA0580930001811112C08CE00E94D405C7 +:100B20008093000181110BC00E94D40580930001C5 +:100B3000811105C08FE30E94D405809300010E94BB +:100B4000CC058091000108951092B9008AE080934D +:100B5000B800089594EA9093BC009091BC0097FF70 +:100B6000FCCF9091B900987F983021F0903111F02E +:100B700081E008958093BB0084E88093BC0080915D +:100B8000BC0087FFFCCF8091B900887F883111F0CD +:100B9000803471F780E0089584E98093BC008091EF +:100BA000BC0084FDFCCF08958093BB0084E8809353 +:100BB000BC008091BC0087FFFCCF9091B900987F6A +:100BC00081E0983209F480E0089584E88093BC00C5 +:100BD0008091BC0087FFFCCF8091BB00089580917D +:100BE0000001811115C080E40E94AA0580930001D4 +:100BF00081110CC082E10E94D40580930001811113 +:100C000005C08FEF0E94D405809300010E94CC059F +:100C100084B1807F84B985B1807F85B98AB1837FB3 +:100C20008AB98BB1837F8BB93E98469808950E940C +:100C30005505809300010E94EF0580B38C7080BB46 +:100C400081B3836F81BBE4E4F1E0A6E3B1E01192EC +:100C50001D9281E0E235F807D1F70C943F05BF9271 +:100C6000CF92DF92EF92FF920F931F93CF93DF9378 +:100C700080910001882379F0809135018F5F809306 +:100C80003501811108C00E94550580930001811132 +:100C900002C00E94E70406E311E0C0E0D0E0DD24DA +:100CA000D39482E0C82EEE24E394F12CC73000F5F3 +:100CB00080910001811162C080E40E94AA058093A6 +:100CC0000001811112C082E10E94D40580930001CD +:100CD00081110BC0C7010C2E01C0880F0A94EAF7DE +:100CE00080950E94D405809300010E94CC0546C0E7 +:100CF000CA30A1F028F4C83059F0C93061F005C0FD +:100D0000CC3089F070F0CD3089F0209A289810C04E +:100D1000219A29980DC0229A2A980AC0239A2B98C2 +:100D200007C0529A01C0539A5B9802C03E9A4698F7 +:100D3000E0EAEA95F1F78FB179995AC092E08170B3 +:100D40008D25892B7C9B02C090E001C094E0892B0B +:100D50007D9B02C090E001C098E0892B7E9B02C081 +:100D600090E001C090E1892B9FB19095991F992740 +:100D7000991F9295990F907E892B0FC08091000149 +:100D800081114BC080E40E94AA0580930001882352 +:100D900089F1B12C0E94CC058B2DF8019081981718 +:100DA00019F08083C09201010E94EF0521960F5F28 +:100DB0001F4FCE30D10509F079CF809101018823F2 +:100DC00071F1815080930101882339F08FE99FE010 +:100DD0000197F1F700C0000022C0A4E4B1E0E6E30F +:100DE000F1E081918D9391E0E434F907D1F717C0D8 +:100DF00090E0A5CF83E10E94D4058093000181118A +:100E0000C8CF81E40E94AA05809300018111C1CF5F +:100E10000E94E505B82EB094BDCF80E0BECF0E9401 +:100E2000E50481E0DF91CF911F910F91FF90EF904A +:100E3000DF90CF90BF900895E82FF0E0EC5BFE4F7D +:100E40008081089508958B3B910578F4883A910547 +:100E500040F5853A9105D0F48430910508F0B1C091 +:100E60008130910509F4ADC06BC0803E910508F456 +:100E700067C0883E910508F4A4C09C01205F310939 +:100E80002031310508F05CC090650895853A9105E0 +:100E900009F459C0863A910509F458C083E890E4F2 +:100EA0000895883A910509F454C0893A910509F4E6 +:100EB00053C08A3A910509F452C08B3A910509F45E +:100EC00051C08C3A910509F450C08D3A910509F44E +:100ED0004FC0803B910509F44EC08E3A910509F44C +:100EE0004DC08F3A910509F44CC0813B910509F43E +:100EF0004BC0823B910509F44AC0833B910509F43C +:100F000049C0843B910509F448C0853B910509F42B +:100F100047C0863B910509F446C0873B910509F41B +:100F200045C0883B910509F444C0893B910509F40B +:100F300043C08A3B910509F042C08AE296E40895D5 +:100F400080E090E0089581E890E4089582E890E4DC +:100F5000089582EE94E4089589EE94E408958AEE6B +:100F600094E4089585EB94E4089586EB94E4089561 +:100F700087EB94E408958CEC94E408958DEC94E46C +:100F8000089583E895E408958AE895E4089582E950 +:100F900095E4089584E995E4089581E296E408953E +:100FA00083E296E4089584E296E4089585E296E467 +:100FB000089586E296E4089587E296E4089580E035 +:100FC00094E40895089596E0799FF001112494E542 +:100FD000899FE00DF11D1124E60FF11DEE0FFF1F9B +:100FE000E851FF4F859194910895880F991F805A79 +:100FF0009040FC01859194910895880F991F80522B +:101000009F4FFC0185919491089526E0729FF00115 +:10101000112444E5849FE00DF11D1124E60FF11D1C +:10102000EE0FFF1FE851FF4F25913491C9019A95AA +:1010300081159F4110F4C9010895C901905281158D +:10104000904128F4C9019F700E94FD070895C901CD +:1010500090538115904120F4C9019927906C08950F +:10106000211580E5380769F40E94A5159FEF24E358 +:101070004CE0915020404040E1F700C000000C944B +:10108000001D213080E5380731F48091CD01816069 +:101090008093CD010895C90190558115904108F0C4 +:1010A00050C0832F99278F70992781309105D9F4EB +:1010B000A9014370552702C0880F991F4A95E2F78E +:1010C0009C68A90164E0440F551F6A95E1F7442725 +:1010D0005370842B952B73E0220F331F7A95E1F721 +:1010E000207633271DC08230910529F4922F88275E +:1010F000816F906A089583309105A9F4A901437026 +:10110000552781E090E002C0880F991F4A95E2F7C9 +:101110009C6843E0220F331F4A95E1F7207E377029 +:10112000822B932B08950497F1F4A901437055275E +:1011300081E090E002C0880F991F4A95E2F79A6813 +:10114000E8CFC90190578115904120F4C9019F70E3 +:1011500090620895C90190588115904120F4C90109 +:101160009F70906A0895203E3105E0F4203C3105DF +:1011700058F52133310509F470C048F4293231059E +:1011800009F464C02A32310509F46EC074C02933F1 +:101190003105F1F022383105D9F02533310509F454 +:1011A0004EC069C0233E310589F138F4203E310537 +:1011B000C1F0223E3105E1F05EC0263E310569F105 +:1011C000273E3105A9F157C0C9010E94F5070895CE +:1011D0008091E00180FD02C081FF4DC080EE90E073 +:1011E0004BC08091E00180FFF9CF89E390E044C0DB +:1011F0008091E00182FF0EC08091E00184FF03C076 +:1012000080E090E039C083EE90E036C08091E0014C +:1012100082FFF2CF82EE90E02FC08091E00183FF49 +:101220000BC08091E00184FDEBCF87EE90E024C0FD +:101230008091E00183FFF5CF86EE90E01DC08091A4 +:10124000E00185FF07C089E290E016C08091E001CF +:1012500085FFF9CF85E390E00FC08091E00186FF24 +:1012600007C08AE290E008C08091E00186FFF9CFD4 +:1012700081E390E001C0C9010E9423070895089509 +:101280000C943F09809162010895CF93DF9300D0C1 +:101290001F92CDB7DEB72091E601243019F523E087 +:1012A00029839B838A832093E9008FEF9091E80044 +:1012B000815095FD06C095ED9A95F1F700008111DA +:1012C000F5CF8091E80085FF0DC040E050E063E07D +:1012D00070E0CE0101960E94AF0B8091E8008E77FE +:1012E0008093E8000F900F900F90DF91CF910895B9 +:1012F000CF93DF9300D01F92CDB7DEB72091E601E8 +:10130000243021F522E029839B838A8383E0809324 +:10131000E9008FEF9091E800815095FD06C095EDB2 +:101320009A95F1F700008111F5CF8091E80085FFD3 +:101330000DC040E050E063E070E0CE0101960E94F5 +:10134000AF0B8091E8008E778093E8000F900F90AC +:101350000F90DF91CF9108952091E6012430F1F4B0 +:1013600022E02093E9002FEF3091E800215035FD75 +:1013700006C035ED3A95F1F700002111F5CF209127 +:10138000E80025FF0BC040E050E065E070E00E94FF +:10139000AF0B8091E8008E778093E8000895CF939B +:1013A000DF93EC018091E601843009F046C0909112 +:1013B0000C019923D9F090910D019923B9F08093F4 +:1013C000E9008FEF9091E800815095FD06C095E10E +:1013D0009A95F1F700008111F5CF8091E80085FF23 +:1013E0002CC040E050E060E170E017C081E08093E5 +:1013F000E9008FEF9091E800815095FD06C095EDD2 +:101400009A95F1F700008111F5CF8091E80085FFF2 +:1014100014C040E050E068E070E0CE010E94AF0BE5 +:101420008091E8008E778093E80080E1FE01A2E5DC +:10143000B1E001900D928A95E1F7DF91CF91089587 +:101440008091E501811109C00E94410D0E949E0D0D +:101450008091E20084608093E20008951092E5019B +:10146000089508950C9426230E94971C0E942C2313 +:101470000E943B100C94400942E061EC81E00E9424 +:10148000BB0C42E061EC82E00E94BB0C42E061ECEC +:1014900083E00E94BB0C42E161EC84E00C94BB0C45 +:1014A0008091E801833009F455C030F4813071F047 +:1014B000823009F48EC008958A3009F47AC08B30E6 +:1014C00009F460C0893009F09CC020C08091E70118 +:1014D000813A09F096C08091E800877F8093E80008 +:1014E0008091EB019091EC01892B21F060E080E08C +:1014F00090E003C060E182E591E070E00E94F80BAB +:101500008091E8008B778093E80008958091E7014F +:10151000813209F076C08091EB019091EC01009747 +:1015200019F0039709F06DC08091E800877F8093E0 +:10153000E8008091E80082FD05C08091E6018111FC +:10154000F8CF5FC08091F100809362018091E80044 +:101550008B7753C08091E701813A09F052C08091A6 +:10156000EB019091EC01892B09F04BC08091E800D0 +:10157000877F8093E8008091E80080FFFCCF809116 +:101580000C0136C08091E7018132D9F58091EB01E1 +:101590009091EC01892BA9F58091E800877F8093D9 +:1015A000E8000E94F00C8091E90180930C010C94FA +:1015B000A5158091E701813221F58091E800877FB0 +:1015C0008093E8000E94F00C8091EA01809363010F +:1015D00008958091E701813AA1F48091E800877F26 +:1015E0008093E8008091E80080FFFCCF8091630148 +:1015F0008093F1008091E8008E778093E8000C944E +:10160000F00C089584B7877F84BF88E10FB6F89403 +:1016100080936000109260000FBE90E080E80FB6EB +:10162000F89480936100909361000FBE0E948A102D +:101630000E94410D0E949E0D8091E2008460809383 +:10164000E20078940E9419100E948C1082E091E0D0 +:101650000E9436100E9414238091E601853069F4BF +:101660000E945A1C8091E4018823B1F30E94821CDD +:10167000882391F30E94990BEFCF0E949210ECCF38 +:10168000292F332723303105A9F06CF4213031059F +:1016900009F442C02230310509F043C08DE690E0E4 +:1016A00024E037E042C021323105C9F02232310551 +:1016B00019F137C099278130910541F082309105A9 +:1016C00041F0892B71F5E0E0F7E005C0E8EEF6E0C7 +:1016D00002C0E0EDF6E0849190E09F0126C0643006 +:1016E00000F5E62FF0E0EE0FFF1FEE5DFE4F2081CC +:1016F000318189E090E019C0643098F4E62FF0E081 +:10170000DF01AA0FBB1FA65EBE4F2D913C91EA5E82 +:10171000FE4F808190E009C082E190E021E737E050 +:1017200004C080E090E020E030E0FA0131832083C3 +:10173000089580E189BD82E189BD09B400FEFDCF35 +:101740008091D8008F7D8093D8008091E0008260E6 +:101750008093E0008091E00081FDFCCF0895CF925E +:10176000DF92EF92FF920F931F93CF93DF937C0151 +:101770008B01EA010E94110D811131C0209731F0D7 +:1017800088819981081B190BE80EF91EC12CD12CF8 +:101790000115110519F18091E80085FD14C08091B3 +:1017A000E8008E778093E800209741F08881998146 +:1017B0008C0D9D1D9983888385E011C00E94110DB9 +:1017C000882331F30CC0F70181917F018093F100F0 +:1017D00001501109FFEFCF1ADF0ADACF80E0DF9165 +:1017E000CF911F910F91FF90EF90DF90CF900895D0 +:1017F0002091ED013091EE012617370748F0611571 +:10180000710539F42091E8002E772093E80001C09B +:10181000B901FC0120E061157105B9F18091E60183 +:10182000882309F440C0853009F43FC08091E80066 +:1018300083FD3DC08091E80082FF06C08091E800F2 +:1018400082FF26C080E008958091E80080FFE3CF0A +:101850002091F3008091F20090E0922B61157105C8 +:1018600051F08830910538F421912093F1006150B6 +:1018700071090196F3CF21E0089709F020E08091EB +:10188000E8008E778093E800C6CF2111C7CFD6CF6E +:101890008091E601882339F0853039F08091E800A5 +:1018A00083FFCCCF04C082E0089583E0089581E0F7 +:1018B00008952091ED013091EE012617370748F089 +:1018C0006115710539F42091E8002E772093E80026 +:1018D00001C0B901FC0120E061157105C1F18091E1 +:1018E000E601882309F441C0853009F440C08091A5 +:1018F000E80083FD3EC08091E80082FF06C0809131 +:10190000E80082FF27C080E008958091E80080FF12 +:10191000E3CF2091F3008091F20090E0922B6115CB +:10192000710559F08830910540F424912093F1001D +:101930003196615071090196F2CF21E0089709F0C4 +:1019400020E08091E8008E778093E800C5CF2111D8 +:10195000C6CFD5CF8091E601882339F0853039F0A4 +:101960008091E80083FFCBCF04C082E0089583E03C +:10197000089581E00895982F973058F59093E900E5 +:10198000981739F07091EC002091ED005091F00023 +:1019900003C0242F762F50E021FF19C03091EB00B7 +:1019A0003E7F3093EB003091ED003D7F3093ED00B2 +:1019B0003091EB0031603093EB007093EC0020939A +:1019C000ED005093F0002091EE0027FF07C09F5FCD +:1019D000D3CF8F708093E90081E0089580E008956F +:1019E0008091E70187FD05C08091E80080FF0EC06F +:1019F00012C08091E80082FD05C08091E60181114E +:101A0000F8CF08958091E8008B7708C08091E601B7 +:101A10008111EACF08958091E8008E778093E800E5 +:101A200008958091E4009091E50045E62091EC0056 +:101A300020FF21C02091E80020FD21C02091E60177 +:101A4000222389F0253089F02091EB0025FD0FC07D +:101A50002091E4003091E5002817390739F341500F +:101A600041F0C901E3CF82E0089583E0089581E069 +:101A7000089584E008952091E80022FFDFCF80E000 +:101A800008950E94AF0D0E94B70DE0EEF0E0808156 +:101A900081608083E8EDF0E080818F77808319BCDE +:101AA000A7EDB0E08C918E7F8C9380818F7E8083B8 +:101AB0001092E50108950F931F93CF93DF930E9437 +:101AC000AF0D0E94B70DC8EDD0E088818F77888375 +:101AD00088818068888388818F7D888319BC109273 +:101AE000E6011092E2011092E4011092E30100EE8F +:101AF00010E0F80180818B7F8083888181608883FA +:101B000042E060E080E00E94BB0CE1EEF0E080810A +:101B10008E7F8083E2EEF0E080818160808380812F +:101B200088608083F80180818E7F808388818061D6 +:101B30008883DF91CF911F910F910895E8EDF0E038 +:101B400080818F7E8083E7EDF0E0808181608083FB +:101B500084E082BF81E08093E5010C945B0DE8EDA9 +:101B6000F0E080818E7F80831092E20008951092D1 +:101B7000DA001092E10008951F920F920FB60F92B3 +:101B800011242F933F934F935F936F937F938F9382 +:101B90009F93AF93BF93EF93FF938091E10082FFF8 +:101BA0000BC08091E20082FF07C08091E1008B7F33 +:101BB0008093E1000E9418108091DA0080FF1FC01E +:101BC0008091D80080FF1BC08091DA008E7F8093C7 +:101BD000DA008091D90080FF0DC080E189BD82E1EB +:101BE00089BD09B400FEFDCF81E08093E6010E942B +:101BF000200A05C019BC1092E6010E942E0A8091AD +:101C0000E10080FF19C08091E20080FF15C0809143 +:101C1000E2008E7F8093E2008091E20080618093F9 +:101C2000E2008091D80080628093D80019BC85E0E2 +:101C30008093E6010E94320A8091E10084FF30C067 +:101C40008091E20084FF2CC080E189BD82E189BDE2 +:101C500009B400FEFDCF8091D8008F7D8093D8001D +:101C60008091E1008F7E8093E1008091E2008F7E81 +:101C70008093E2008091E20081608093E200809195 +:101C8000E201882311F084E007C08091E30087FF20 +:101C900002C083E001C081E08093E6010E94340A23 +:101CA0008091E10083FF29C08091E20083FF25C07D +:101CB0008091E100877F8093E10082E08093E601DC +:101CC0001092E2018091E1008E7F8093E10080918B +:101CD000E2008E7F8093E2008091E2008061809339 +:101CE000E20042E060E080E00E94BB0C8091F000E6 +:101CF00088608093F0000E94310AFF91EF91BF91BC +:101D0000AF919F918F917F916F915F914F913F9193 +:101D10002F910F900FBE0F901F9018951F920F924A +:101D20000FB60F9211242F933F934F935F936F93AE +:101D30007F938F939F93AF93BF93CF93EF93FF9333 +:101D4000C091E900CF708091EC001092E900809181 +:101D5000F000877F8093F00078940E94CA0E109262 +:101D6000E9008091F00088608093F000C093E90062 +:101D7000FF91EF91CF91BF91AF919F918F917F9103 +:101D80006F915F914F913F912F910F900FBE0F90E8 +:101D90001F9018951F93CF93DF93CDB7DEB7AA9707 +:101DA0000FB6F894DEBF0FBECDBFE7EEF1E0809135 +:101DB000F100819321E0EF3EF207C9F70E94500A3B +:101DC0008091E80083FF1CC12091E7013091E80178 +:101DD000832F90E08A30910508F012C1FC01EA5A85 +:101DE000FF4F0C94AE24203881F0223809F008C14E +:101DF0008091EB018F708093E9008091EB0085FB6F +:101E0000882780F91092E90006C08091E301909143 +:101E1000E401911182609091E800977F9093E8002F +:101E20008093F1001092F100C5C0822F8D7F09F0E0 +:101E3000E7C0222319F0223061F0E2C08091E9016D +:101E4000813009F0DDC0333009F080E08093E40197 +:101E500028C08091E901811124C02091EB012F70ED +:101E600009F4CEC02093E9008091EB0080FF19C0F7 +:101E70008091EB00333011F4806211C08061809357 +:101E8000EB0081E090E0022E01C0880F0A94EAF78F +:101E90008093EA001092EA008091EB0088608093C2 +:101EA000EB001092E9008091E800877F86C0211145 +:101EB000A7C01091E9011F778091E3008078812B02 +:101EC0008093E3008091E800877F8093E8000E9480 +:101ED000F00C8091E80080FFFCCF8091E3008068E7 +:101EE0008093E300112311F083E001C082E080932E +:101EF000E60186C02058223008F082C08091E901B6 +:101F00009091EA018C3D23E0920779F583E08A8382 +:101F10008AE289834FB7F894DE01139620E03EE011 +:101F200051E2E32FF0E050935700E49120FF03C00B +:101F3000E295EF703F5FEF708E2F90E0EA3010F087 +:101F4000C79601C0C0968D939D932F5F243149F7AA +:101F50004FBF8091E800877F8093E8006AE270E0DD +:101F6000CE0101960E94F80B14C0AE014F5F5F4F87 +:101F70006091EB010E94400B009709F441C0209151 +:101F8000E800277F2093E800BC0189819A810E94A4 +:101F9000590C8091E8008B778093E80031C020389D +:101FA00079F58091E800877F8093E8008091E201D5 +:101FB0008093F1008091E8008E778093E8000E9482 +:101FC000F00C1EC021111CC09091E9019230C0F4A8 +:101FD0008091E800877F8093E8009093E2010E945F +:101FE000F00C8091E201811104C08091E30087FF31 +:101FF00002C084E001C081E08093E6010E943C0AB7 +:102000008091E80083FF0AC08091E800877F809379 +:10201000E8008091EB0080628093EB00AA960FB6F7 +:10202000F894DEBF0FBECDBFDF91CF911F91089511 +:102030000895CF938091E6018823B1F08091E90063 +:102040008F709091EC0090FF02C090E801C090E08A +:10205000C92FC82B1092E9008091E80083FD0E94EF +:10206000CA0ECF70C093E900CF9108959093690193 +:10207000809368010895E0916801F09169013097BB +:1020800021F00190F081E02D099480E00895E09125 +:102090006801F0916901309721F00280F381E02D11 +:1020A00009940895E0916801F0916901309721F059 +:1020B0000480F581E02D0994089520916601309106 +:1020C00067018217930771F090936701809366010F +:1020D000E0916801F0916901309721F00680F78165 +:1020E000E02D0994089520916401309165018217D3 +:1020F000930771F09093650180936401E09168010A +:10210000F0916901309721F00084F185E02D099468 +:10211000089508950C9489100E949D1C0E94170632 +:102120000C94631DCF92DF92EF92FF920F931F9357 +:10213000CF93DF93CDB7DEB72B970FB6F894DEBF02 +:102140000FBECDBF0E942F063BE6E32E31E0F32EFB +:1021500000E010E0C02E802F0E941C07F701D190F4 +:102160007F01D826B1F40F5F1F4F0E30110591F794 +:102170008FEF89838A831B820E94A61C8160782F3F +:102180009D838C8349815A816B818D810E94351199 +:1021900041C09091CD0191FF04C08B870E9422071E +:1021A0008B8520E030E04D2D50E0922FBA01022EB9 +:1021B00002C0759567950A94E2F760FF25C02E83EB +:1021C000CF82EE24E394F12C02C0EE0CFF1C9A9512 +:1021D000E2F790E08E219F2121E0892B09F420E095 +:1021E00028870E94A61C8160782F9A8789874E8154 +:1021F0005F8168858A850E943511F801E559FE4F97 +:1022000080818E25808306C02F5F3F4F26303105A9 +:1022100061F6A9CF0E94472010916A010E943B10ED +:102220001817A1F00E943B1080936A012B960FB6FD +:10223000F894DEBF0FBECDBFDF91CF911F910F91FC +:10224000FF90EF90DF90CF900C9440092B960FB643 +:10225000F894DEBF0FBECDBFDF91CF911F910F91DC +:10226000FF90EF90DF90CF900895CF93DF93CDB79D +:10227000DEB72B970FB6F894DEBF0FBECDBF4F83EE +:10228000588769877A878B87DE01119686E0FD0182 +:1022900011928A95E9F785E0FE01379601900D923B +:1022A0008A95E1F749815A816B817C818D819E817C +:1022B0000E9471182B960FB6F894DEBF0FBECDBFEB +:1022C000DF91CF910895CF93C82F882309F4C1C01F +:1022D000823859F40E943B1081FDBBC089E30E9403 +:1022E0000E1B0E94D81B89E30CC0833879F40E942E +:1022F0003B1080FDAEC083E50E940E1B0E94D81BE0 +:1023000083E50E944E1BCF910C94D81B843859F45E +:102310000E943B1082FD9DC087E40E940E1B0E941C +:10232000D81B87E4EECF8CEF8C0F813A48F48C2FCA +:102330000E947C2281118DC08C2F0E940E1BE3CF46 +:1023400080E28C0F883048F4C77081E001C0880FAC +:10235000CA95EAF70E948F1BD6CF8BE58C0F83308E +:1023600078F4C53A29F0C63A31F482E890E005C025 +:1023700081E890E002C083E890E0CF910C945D107A +:1023800088E58C0F833108F064C0C83A39F1C93A46 +:1023900041F1CA3A49F1CB3A51F1CC3A59F1CD3A2F +:1023A00061F1C03B69F1CE3A71F1CF3A79F1C13BAD +:1023B00081F1C23B89F1C33B91F1C43B99F1C53B2B +:1023C000A1F1C63BA9F1C73BB1F1C83BB9F1C93B8B +:1023D000C1F1CA3BC9F58AE292E038C082EE90E0D2 +:1023E00035C089EE90E032C08AEE90E02FC085EBD8 +:1023F00090E02CC086EB90E029C087EB90E026C0EF +:102400008CEC90E023C08DEC90E020C083E891E05C +:102410001DC08AE891E01AC082E991E017C084E902 +:1024200091E014C081E292E011C083E292E00EC01C +:1024300084E292E00BC085E292E008C086E292E07E +:1024400005C087E292E002C080E090E0CF910C945A +:102450007310CF910895882309F44BC0823859F442 +:102460000E943B1081FF45C089E30E940E1B0E9421 +:10247000D81B89E30CC0833871F40E943B1080FFA5 +:1024800038C083E50E940E1B0E94D81B83E50E9482 +:102490004E1B0C94D81B843859F40E943B1082FFC9 +:1024A00028C087E40E940E1B0E94D81B87E4EFCF50 +:1024B0009CEF980F913A58F390E2980F983050F4AF +:1024C000877091E001C0990F8A95EAF7892F0E94E1 +:1024D000951BDFCF9BE5980F933020F480E090E0D0 +:1024E0000C945D10885A833120F480E090E00C94C5 +:1024F00073100895882321F00E948F1B0C94D81B21 +:102500000895882321F00E94951B0C94D81B0895F0 +:10251000CF92DF92EF92FF920F931F93CF93DF93AF +:10252000CDB7DEB728970FB6F894DEBF0FBECDBF8C +:102530008C0185E0F801DE01119601900D928A95DB +:10254000E1F7F80140813181F280258122952F70D9 +:1025500083819481892B31F03F3F31F481E04F3FFB +:1025600019F403C081E001C080E080FDCBC2498343 +:102570003A8389819A812F830E94CC1A9E8388870F +:102580000E94CB1A0E949E192F814E816885FF20E0 +:1025900029F00E94AC1B68854E812F81E42FE295C3 +:1025A000EF70F0E0E05AFF4F0C94AE24842F807F50 +:1025B000142F1F70882311F01295107FFF2059F0FF +:1025C000112309F454C2812F68870E949F1B0E9427 +:1025D000D81B68854CC2862F0E942B12112309F448 +:1025E00091C2812F0E94A51B28960FB6F894DEBFDA +:1025F0000FBECDBFDF91CF911F910F91FF90EF9054 +:10260000DF90CF900C94D81B342F307F842F8F70A5 +:10261000303211F08295807F662319F0613019F114 +:102620002BC0FF20B1F0222309F493C1213009F01F +:1026300090C128960FB6F894DEBF0FBECDBFDF91D4 +:10264000CF911F910F91FF90EF90DF90CF900C945E +:10265000BF1B222319F0213009F454C28E830E943B +:10266000C21B8E8189C1FF2021F0223008F04AC2AE +:1026700070C1211147C280C1FF2021F0222309F43B +:1026800068C1F5C1222309F477C105C2242F26951C +:102690002695237030E02115310521F021303105D8 +:1026A000C9F030C2FF2021F0862F942F937002C012 +:1026B00080E090E028960FB6F894DEBF0FBECDBF45 +:1026C000DF91CF911F910F91FF90EF90DF90CF900E +:1026D0000C945D10FF2021F0862F942F937002C080 +:1026E00080E090E028960FB6F894DEBF0FBECDBF15 +:1026F000DF91CF911F910F91FF90EF90DF90CF90DE +:102700000C947310862FFF2019F00E944F1F02C0F7 +:102710000E94B71F28960FB6F894DEBF0FBECDBF3C +:10272000DF91CF911F910F91FF90EF90DF90CF90AD +:102730000C943C20842F837009F076C0F110E2C124 +:10274000262F229526952770220F220F862F8F7015 +:10275000C82ED12CE12CF12C022E04C0CC0CDD1C97 +:10276000EE1CFF1C0A94D2F764FF10C06FE070E00B +:1027700080E090E004C0660F771F881F991F2A959C +:10278000D2F7609570958095909503C060E070E0F9 +:10279000CB01242F269526952370422F50E04230FE +:1027A0005105D1F04330510559F16C297D298E290D +:1027B0009F294130510541F128960FB6F894DEBFAC +:1027C0000FBECDBFDF91CF911F910F91FF90EF9082 +:1027D000DF90CF900C94C3196C297D298E299F29F5 +:1027E00028960FB6F894DEBF0FBECDBFDF91CF9114 +:1027F0001F910F91FF90EF90DF90CF900C94DD1917 +:102800000E94C319C701B60128960FB6F894DEBF1F +:102810000FBECDBFDF91CF911F910F91FF90EF9031 +:10282000DF90CF900C94A919FF2019F0842F8170AC +:1028300001C08695882309F465C1262F2295269527 +:102840002770220F220F862F8F70C82ED12CE12CDB +:10285000F12C022E04C0CC0CDD1CEE1CFF1C0A94D3 +:10286000D2F764FF10C06FE070E080E090E004C039 +:10287000660F771F881F991F2A95D2F7609570956C +:102880008095909503C060E070E0CB01242F2695E1 +:1028900026952370422F50E042305105D1F043304D +:1028A000510559F16C297D298E299F294130510507 +:1028B00041F128960FB6F894DEBF0FBECDBFDF9171 +:1028C000CF911F910F91FF90EF90DF90CF900C94DC +:1028D000971A6C297D298E299F2928960FB6F8947E +:1028E000DEBF0FBECDBFDF91CF911F910F91FF9043 +:1028F000EF90DF90CF900C94B11A0E94971AC70105 +:10290000B60128960FB6F894DEBF0FBECDBFDF919B +:10291000CF911F910F91FF90EF90DF90CF900C948B +:102920007D1A603FC9F118F4603E50F49BC0623FCD +:1029300009F460C008F44AC0633F09F46FC092C054 +:10294000162F1F70842F8F71FF2099F00E94161A86 +:10295000812F28960FB6F894DEBF0FBECDBFDF9152 +:10296000CF911F910F91FF90EF90DF90CF900C943B +:102970007A120E94371A812F28960FB6F894DEBF7C +:102980000FBECDBFDF91CF911F910F91FF90EF90C0 +:10299000DF90CF900C948112FF20A1F02111B2C0E2 +:1029A000842F8F7128960FB6F894DEBF0FBECDBF6F +:1029B000DF91CF911F910F91FF90EF90DF90CF901B +:1029C0000C945C1A223008F09DC0EACFFF20A1F0E1 +:1029D000842F8F7128960FB6F894DEBF0FBECDBF3F +:1029E000DF91CF911F910F91FF90EF90DF90CF90EB +:1029F0000C94161AFF2061F3842F8F7128960FB65E +:102A0000F894DEBF0FBECDBFDF91CF911F910F9124 +:102A1000FF90EF90DF90CF900C94371AFF2091F049 +:102A2000842F8F7128960FB6F894DEBF0FBECDBFEE +:102A3000DF91CF911F910F91FF90EF90DF90CF909A +:102A40000C94011A28960FB6F894DEBF0FBECDBFC6 +:102A5000DF91CF911F910F91FF90EF90DF90CF907A +:102A60000C94F719FF20A1F0222309F4B1CF862F8F +:102A700028960FB6F894DEBF0FBECDBFDF91CF9181 +:102A80001F910F91FF90EF90DF90CF900C94631106 +:102A9000222309F4B1CF862F28960FB6F894DEBF13 +:102AA0000FBECDBFDF91CF911F910F91FF90EF909F +:102AB000DF90CF900C942B124F70C8010E94A50498 +:102AC00028960FB6F894DEBF0FBECDBFDF91CF9131 +:102AD0001F910F91FF90EF90DF90CF900C941E19F3 +:102AE0004F70C80128960FB6F894DEBF0FBECDBF59 +:102AF000DF91CF911F910F91FF90EF90DF90CF90DA +:102B00000C94E20728960FB6F894DEBF0FBECDBF37 +:102B1000DF91CF911F910F91FF90EF90DF90CF90B9 +:102B200008950E94AC1B0E94BC1B0E94811B0E9446 +:102B3000D81B0E94E8200E943C2080E090E00E9488 +:102B40005D1080E090E00C9473100E949C1B0C942C +:102B500091150E94CC1A292F22952F7030E02C302D +:102B600031054CF42A3031056CF422503109223001 +:102B7000310590F407C02C30310551F02F3031056C +:102B800039F00AC0803E10F0803F31F481E00895B2 +:102B900093FB882780F9089580E00895CF93DF9311 +:102BA00000D000D01F92CDB7DEB70F900F900F90DE +:102BB0000F900F90DF91CF910895CF93DF9300D0C6 +:102BC00000D000D0CDB7DEB726960FB6F894DEBFA2 +:102BD0000FBECDBFDF91CF9108951F93CF93DF93A9 +:102BE000C091790116E080917A01C81799F0D0E080 +:102BF0001C9FF0011D9FF00D1124E558FE4F4081F0 +:102C0000518162817381848195810E94DD152196B5 +:102C1000C770E9CFDF91CF911F9108954091AB012B +:102C20005091AC016091AD017091AE018091AF0106 +:102C30009091B0010C94DD15CF938091B0018295F5 +:102C40008F7009F05FC08091AD01882309F45AC0EC +:102C500020917901A0917A016091AB017091AC0152 +:102C60008091AE019091AF0131E06F3F09F030E00B +:102C7000B32FC6E02A1709F445C0009721F07F3F23 +:102C800021F44B2F03C041E001C040E030E040FDA3 +:102C900035C0C29FF001C39FF00D1124E558FE4FCF +:102CA000418174132BC04081641328C042814111BB +:102CB00025C0438154814817590710F441505109E8 +:102CC000481B590B483C5105C8F48091B0018F70E6 +:102CD00080618093B00186E0829FF001839FF00DB8 +:102CE0001124E058FE4F80818F70806180838BEAD1 +:102CF00091E00E948812CF910C94ED152F5F3F4F09 +:102D00002770B8CFCF910895CF92DF92EF92FF92C4 +:102D10000F931F93CF93DF93CDB7DEB762970FB6B4 +:102D2000F894DEBF0FBECDBF8C0185E0F801DE0157 +:102D30001D9601900D928A95E1F7D8014C9111965C +:102D40005C91119712966C9112971396ED90FC90EE +:102D500014977091AB01E091AC012091AE013091DC +:102D6000AF012115310531F0EF3F31F481E07F3FB4 +:102D700019F403C081E001C080E0B82FB170CB2E00 +:102D800080FD6CC1D090AD01DD2009F4F5C0F0915B +:102D9000B001E216F30638F0C701821B930B883CA2 +:102DA000910548F09BC0209530952E0D3F1D283C85 +:102DB000310508F093C08F2F807F09F052C0E513D2 +:102DC00014C0741312C0D62E61110FC0FF70F061D1 +:102DD000F093B0010E940E168BEA91E00E948812D7 +:102DE0008091B001F80185836CC1EF2831F05F3F1D +:102DF00031F481E04F3F19F403C081E001C080E06D +:102E000080FD03C081E0862701C080E0F82FF170CB +:102E1000FF2E80FF1CC08091790120917A0136E05D +:102E2000821709F428C190E0389FF001399FF00D16 +:102E30001124E558FE4F7181571306C07081471366 +:102E400003C07281671303C001968770E9CFD62E45 +:102E5000662309F436C18091B00181608093B0018E +:102E600053C0E51308C0741306C0611104C0D80133 +:102E70001596FC93AEC04D875E878D859E856A8BC7 +:102E80000E94A9156A89882329F1D62E662311F19B +:102E90002091B001822F82958F7090E002970CF400 +:102EA00060C08091AB019091AC0198878F831986A7 +:102EB000FB86EA862C87CE01079651C0E51731F1D3 +:102EC0004D875E878D859E856A8B0E94A9156A89CC +:102ED00081112EC0C8010E948812A4C08F2F807F4C +:102EE00069F77E2DF98AE88A89890E94CE158BEAD6 +:102EF00091E00E948812EBEAF1E086E0DF011D928A +:102F00008A95E9F70E940E16D12CDBC07413D8CF36 +:102F10006111D6CFD8011596FC93C8010E94881282 +:102F2000EBEAF1E086E0DF011D928A95E9F7C9C07E +:102F3000D62E662379F22091B001822F82958F7070 +:102F400090E0029774F08091AB019091AC019A836C +:102F500089831B82FD82EC822E83CE0101960E9422 +:102F6000881286E0F801ABEAB1E001900D928A95F3 +:102F7000E1F70E941C166FC0E216F30628F0C701A5 +:102F8000821B930B9C0104C0209530952E0D3F1D94 +:102F9000283C310508F052C0D62E662309F49ACF9A +:102FA000E5132CC074132AC08091B00180FD1DC0B0 +:102FB000982F92959F70C9F0D80115968C9315970C +:102FC0009F3039F09F5F9295907F8F70892B159677 +:102FD0008C93C8010E94881286E0F801ABEAB1E048 +:102FE00001900D928A95E1F736C086E0F801ABEAD0 +:102FF000B1E001900D928A95E1F763C04D875E873D +:103000008D859E850E94A915882379F086E0F801B8 +:10301000ABEAB1E001900D928A95E1F70E941C168F +:103020000E940E16DD24D3944CC08091B0018160C3 +:103030008093B001C8010E94881243C07E2DF98A96 +:10304000E88A89890E94CE15EBEAF1E086E0DF018B +:103050001D928A95E9F70E940E1633C0662309F483 +:1030600039CF4D875E878D859E850E94A91588235F +:1030700009F430CFCBCF4D875E878D859E850E942A +:10308000CC1A292F22952F7030E0223031052CF4F4 +:103090009F7041F0811106C00CC0243031052CF422 +:1030A0009F7049F4805E883020F0C8010E94881229 +:1030B000CF2CDC2C06C0D80115969C91907F91F7FF +:1030C000F8CF8D2D62960FB6F894DEBF0FBECDBF40 +:1030D000DF91CF911F910F91FF90EF90DF90CF90F4 +:1030E00008951F93CF93DF93CDB7DEB72C970FB61C +:1030F000F894DEBF0FBECDBF4F83588769877A87AC +:103100008B879C87CE0107960E9484168823C1F086 +:103110002F8138858A859B85892B31F03F3F11F0BF +:1031200080E003C02F3FE1F781E0811147C04F816C +:10313000588569857A858B859C850E94DD153EC002 +:1031400086E0FE013796DE01119601900D928A9578 +:10315000E1F7FF81E8854A855B854115510531F02E +:10316000EF3F31F481E0FF3F19F403C081E001C07B +:1031700080E080FD23C020917A0130E0C9010196F2 +:10318000877099276091790170E086179707F1F1B0 +:10319000F983EA835D834C8396E0929FD001939FED +:1031A000B00D1124A558BE4FFE01319601900D922D +:1031B0009A95E1F780937A010E94ED1516E08091CF +:1031C000790190917A01891779F1189FC001112432 +:1031D00085589E4F0E948416882331F1E091790131 +:1031E0001E9FF0011124E558FE4F408151816281FC +:1031F0007381848195810E94DD158091790190E031 +:1032000001968770992780937901D9CF0E94A515DF +:1032100010927A0110927901EBEAF1E086E0DF0189 +:103220001D928A95E9F7CACF2C960FB6F894DEBFA7 +:103230000FBECDBFDF91CF911F910895EF92FF9206 +:103240000F931F93CF93DF93FC01009709F46FC096 +:10325000F12CEE24E394EF0121968491843740F41D +:10326000843008F055C0813081F0823021F15FC098 +:10327000853709F447C0C0F19CE7980F903708F0F4 +:1032800056C08F770E942B1245C08F010E5F1F4FD3 +:10329000FE01849190E2980F983050F48770FE2DD3 +:1032A00001C0FF0F8A95EAF78F2F0E94AF1B15C050 +:1032B0000E94631114C08F010E5F1F4FFE018491A5 +:1032C00090E2980F983068F48770FE2D01C0FF0FD0 +:1032D0008A95EAF78F2F0E94B51B0E94D81BE80140 +:1032E00019C00E942B12FBCFCF010296FE01C491A0 +:1032F000CC2361F0EFE9FFE03197F1F700C0000067 +:10330000C150F6CFCF010296FE01F490EC0102C04D +:103310000E9463118F2D882341F0EFE9FFE0319780 +:10332000F1F700C000008150F6CFFE0194CFDF918D +:10333000CF911F910F91FF90EF90089508956093A2 +:10334000B5017093B6018093B7019093B8010C94C6 +:1033500091150F931F930091B5011091B601209123 +:10336000B7013091B801062B172B282B392B00936E +:10337000B5011093B6012093B7013093B8011F91A6 +:103380000F910C9491150F931F930091B50110911B +:10339000B6012091B7013091B801062317232823E5 +:1033A00039230093B5011093B6012093B7013093F0 +:1033B000B8011F910F910C9491150F931F930091D9 +:1033C000B5011091B6012091B7013091B8010627DF +:1033D0001727282739270093B5011093B6012093AA +:1033E000B7013093B8011F910F910C949115109271 +:1033F000B1011092B2011092B3011092B4010C9479 +:10340000911541E050E060E070E004C0440F551FAA +:10341000661F771F8A95D2F74093B1015093B2018E +:103420006093B3017093B4010C94911541E050E0A6 +:1034300060E070E004C0440F551F661F771F8A9537 +:10344000D2F78091B1019091B201A091B301B091F6 +:10345000B401842B952BA62BB72B8093B1019093AD +:10346000B201A093B301B093B4010C94911541E063 +:1034700050E060E070E004C0440F551F661F771FE6 +:103480008A95D2F740955095609570958091B101DD +:103490009091B201A091B301B091B401842395231E +:1034A000A623B7238093B1019093B201A093B301F7 +:1034B000B093B4010C94911541E050E060E070E0ED +:1034C00004C0440F551F661F771F8A95D2F780915D +:1034D000B1019091B201A091B301B091B4018427E0 +:1034E0009527A627B7278093B1019093B201A093A7 +:1034F000B301B093B4010C9491150F931F930091F5 +:10350000B1011091B2012091B3013091B401062BA9 +:10351000172B282B392B0093B1011093B201209364 +:10352000B3013093B4011F910F910C9491150F9337 +:103530001F930091B1011091B2012091B30130911C +:10354000B40106231723282339230093B1011093D4 +:10355000B2012093B3013093B4011F910F910C94E9 +:1035600091150F931F930091B1011091B201209119 +:10357000B3013091B4010627172728273927009374 +:10358000B1011093B2012093B3013093B4011F91A4 +:103590000F910C9491150895CF92DF92EF92FF92C4 +:1035A0000F931F93CF93DF93EC01C090B501D090A0 +:1035B000B601E090B701F090B8018091B10190910F +:1035C000B201A091B301B091B401C82AD92AEA2A64 +:1035D000FB2A0FE110E0B701A601002E04C076958A +:1035E0006795579547950A94D2F740FF07C0BE01EB +:1035F000802F0E9405088130910539F4015011098E +:1036000050F7BE0180E00E940508DF91CF911F9125 +:103610000F91FF90EF90DF90CF90089590910C0163 +:103620009923D9F090910D019923B9F0982F96958F +:10363000969596959F3088F5E0910E01F0910F01D7 +:10364000E90FF11D877021E030E001C0220F8A955B +:10365000EAF78181822B8183089540910E01509178 +:103660000F0120E030E09FEFFA01E20FF31F6281CB +:10367000681799F09F3F19F4611101C0922F2F5FD5 +:103680003F4F2E30310581F79F3F39F0FA01E90FA6 +:10369000F11D97FDFA9582830895089590910C018C +:1036A0009923E1F090910D019923C1F0982F9695FF +:1036B000969596959F3020F5E0910E01F0910F01BF +:1036C000E90FF11D877021E030E001C0220F8A95DB +:1036D000EAF72095818128232183089540910E01E6 +:1036E00050910F0120E030E0FA01E20FF31F9281C8 +:1036F000981301C012822F5F3F4F2E303105A1F782 +:10370000089581E090E0E0910E01F0910F01E80F43 +:10371000F91F1082019680319105A9F708959091C3 +:10372000CC01982B9093CC01089580959091CC0179 +:1037300098239093CC0108951092CC010895909114 +:10374000CB01982B9093CB01089580959091CB015C +:1037500098239093CB0108951092CB0108959091F6 +:10376000CA01982B9093CA01089580959091CA013F +:1037700098239093CA0108951092CA0108958093E6 +:10378000B90108951092B901089540910E01509128 +:103790000F0120E030E080E0FA01E20FF31F918199 +:1037A00091118F5F2F5F3F4F2F303105A9F708959B +:1037B000E0910E01F0910F018091CC018083E091A6 +:1037C0000E01F0910F0180819091CB01892B8083B4 +:1037D000E0910E01F0910F0180819091CA01892B37 +:1037E00080839091B901992361F0E0910E01F091ED +:1037F0000F018081892B80830E94C51B811110924B +:10380000B90180910E0190910F010C944710CF9255 +:10381000DF92EF92FF920F931F936C01EE24FF242F +:10382000C114D104E104F10421F46B017C0180E0B6 +:1038300001C080E133272F2D1E2D0D2D01151105FF +:103840002105310519F0885F68017901970186012A +:10385000A4E03695279517950795AA95D1F70115F8 +:1038600011052105310519F08C5F68017901970177 +:103870008601F2E03695279517950795FA95D1F7C9 +:10388000011511052105310519F08E5F68017901D7 +:10389000B701A6017695679557954795452B462B19 +:1038A000472B09F08F5F1F910F91FF90EF90DF90F2 +:1038B000CF9008958091E601843009F11092CE01F5 +:1038C00020E488E190E00FB6F894A895809360001A +:1038D0000FBE2093600083B7817F846083BF83B76E +:1038E000816083BF7894889583B78E7F83BF88E19A +:1038F0000FB6F89480936000109260000FBE089598 +:1039000008950895CF930E94801C0E942F060E9464 +:10391000811CC0E08C2F0E941C07811105C0CF5F65 +:10392000CE30C1F780E001C081E0CF9108950E94C0 +:10393000A5150E943B100C94400982E084BD93E0E1 +:1039400095BD9AEF97BD80936E0008952FB7F894B8 +:103950008091CF019091D001A091D101B091D2017D +:103960002FBF0895CF92DF92EF92FF920F931F9394 +:103970002FB7F8944091CF015091D0016091D101BF +:103980007091D2012FBF6A017B01EE24FF248C01CC +:1039900020E030E0C016D106E206F30610F44150F4 +:1039A0005109481B590BCA011F910F91FF90EF90CD +:1039B000DF90CF9008951F920F920FB60F921124AF +:1039C0008F939F93AF93BF938091CF019091D0013C +:1039D000A091D101B091D2010196A11DB11D80939A +:1039E000CF019093D001A093D101B093D201BF91A8 +:1039F000AF919F918F910F900FBE0F901F901895D0 +:103A00000E94410DF8942FEF87EA91E62150804003 +:103A10009040E1F700C0000087E090EBDC0180936C +:103A2000EF019093F001A093F101B093F2012CE02B +:103A300088E190E00FB6F894A895809360000FBEDF +:103A400020936000FFCFEF92FF920F931F93CF93CD +:103A5000DF93E82EF12C8F2D0E941C07C0E0D0E0F0 +:103A6000082F10E098010C2E02C0359527950A9476 +:103A7000E2F720FD05C02196C630D10599F709C0AF +:103A80006C2F7F2D80E00E94E307E812F4CF81E0E5 +:103A900005C0F3948EE0F812DECF80E0DF91CF9185 +:103AA0001F910F91FF90EF900895CF93C82F8CE254 +:103AB0000E94231D882321F08C2FCF910C94231D6D +:103AC00080E0CF910895CF930E94A81E811102C07B +:103AD0000E948E1EC5E6C15049F00E942F068FE35A +:103AE0009CE90197F1F700C00000F5CF89E20E9440 +:103AF000551D811111C18AE20E94551D81110E943C +:103B00008E1E85E00E94551D81110E94001D0E949D +:103B1000B31E8093CD0187E00E94551D882399F143 +:103B20008BE10E94551D882351F09091CD0191FBAE +:103B3000882780F921E0822780FB91F922C08EE05E +:103B40000E94551D882351F09091CD0192FB88274A +:103B500080F921E0822780FB92F913C080E10E9466 +:103B6000551D9091CD01882341F093FB882780F962 +:103B700021E0822780FB93F904C0892F809580FB88 +:103B800090F99093CD018091CD010E94B71E0E94C3 +:103B9000C51E8093E00180EE0E94551D882341F0F0 +:103BA0008091E001982F909590FB80F98093E0013F +:103BB00089E30E94551D882359F09091E00191FB03 +:103BC000882780F921E0822780FB91F99093E0011A +:103BD00082EE0E94551D882359F09091E00192FBDE +:103BE000882780F921E0822780FB92F99093E001F9 +:103BF00086EE0E94551D882359F09091E00193FBB9 +:103C0000882780F921E0822780FB93F99093E001D7 +:103C100083EE0E94551D882359F09091E00194FB9A +:103C2000882780F921E0822780FB94F99093E001B6 +:103C300085E30E94551D882359F09091E00195FB82 +:103C4000882780F921E0822780FB95F99093E00195 +:103C500081E30E94551D882359F09091E00196FB65 +:103C6000882780F921E0822780FB96F99093E00174 +:103C700081E10E94551D882359F09091E00197FB46 +:103C8000882780F921E0822780FB97F99093E00153 +:103C90008091E0010E94C91E8091E00187FB882786 +:103CA00080F980930D0187E20E94551DC82F8EE197 +:103CB0000E94551D8111C2608FE10E94551D811126 +:103CC000C46080E20E94551D8111C86081E20E949B +:103CD000551D8111C06182E20E94551D8111C06293 +:103CE00083E20E94551D8111C06484E20E94551D2B +:103CF000882311F0C06802C0CC2329F08C2F0E94C9 +:103D0000C01E6C2F03C00E94BC1E682F70E080E0B4 +:103D100090E0CF910C949F19CF9108956DEE7EEFB6 +:103D200080E090E00E94E42460E082E090E00E9465 +:103D3000D62460E083E090E00E94D62460E084E036 +:103D400090E00E94D62460E085E090E00C94D624B8 +:103D500080E090E00E94D02421E08D3E9E4F09F04B +:103D600020E0822F089582E090E00C94C824682F10 +:103D700082E090E00C94D62483E090E00C94C82478 +:103D8000682F83E090E00C94D62484E090E00C94BB +:103D9000C824682F84E090E00C94D6248091D5014B +:103DA00080FF0BC06091130185E0689FB001112472 +:103DB00075956795759567952AC081FF09C06091D3 +:103DC000130185E0689FB0011124759567951FC0A8 +:103DD00082FF07C06091130185E0689FB001112444 +:103DE00016C04091D6014423C9F0609112014617D4 +:103DF00088F72091130185E0289F90011124429FAC +:103E0000C001439F900D112470E00E949A246038F5 +:103E1000710540F46115710539F002C065E070E08C +:103E2000862F08958FE7089581E008958091D50148 +:103E300080FF08C06091110170E0759567957595D8 +:103E4000679521C081FF06C06091110170E07595F2 +:103E5000679519C082FF04C06091110170E010C025 +:103E60008091D6018823C1F0609110018617A0F7D8 +:103E700090911101989FC001112470E00E949A2432 +:103E80006038710528F46115710521F0862F0895B9 +:103E90008FE7089581E0089561E070E0F4CF803FFE +:103EA00021F40E94CE1E819504C0813F29F40E9416 +:103EB000CE1E8093D9010895823F21F40E94CE1E28 +:103EC000819504C0833F29F40E94CE1E8093D801BF +:103ED0000895893F19F40E94161F05C08A3F31F4E6 +:103EE0000E94161F81958093DA0108958B3F21F47B +:103EF0000E94161F819504C08C3F29F40E94161F52 +:103F00008093DB010895843F21F48091D701816083 +:103F100017C0853F21F48091D701826011C0863F90 +:103F200021F48091D70184600BC0873F21F48091F8 +:103F3000D701886005C0883F31F48091D701806146 +:103F40008093D70108958D3F21F48091D501816040 +:103F50000BC08E3F21F48091D501826005C08F3F58 +:103F600029F48091D50184608093D5010895803F24 +:103F700039F48091D90187FF6CC01092D90169C0D2 +:103F8000813F29F48091D9011816BCF362C0909149 +:103F9000D801823F29F497FF5CC01092D80159C024 +:103FA000833F19F41916CCF354C0893F41F4809132 +:103FB000DA0118160CF04DC01092DA014AC08A3F9F +:103FC00029F48091DA0187FF44C0F6CF8B3F39F4A2 +:103FD0008091DB0187FF3DC01092DB013AC08C3F2E +:103FE00029F48091DB011816BCF333C0843F21F41F +:103FF0008091D7018E7F17C0853F21F48091D70132 +:104000008D7F11C0863F21F48091D7018B7F0BC03B +:10401000873F21F48091D701877F05C0883F31F425 +:104020008091D7018F7E8093D70113C08D3F21F4FB +:104030008091D5018E7F0BC08E3F21F48091D501F8 +:104040008D7F05C08F3F29F48091D5018B7F8093B0 +:10405000D5018091D80181110EC08091D9018111C3 +:104060000AC08091DA01811106C08091DB018111C3 +:1040700002C01092D601089587ED91E00E9452107F +:104080000E94A61C9093D4018093D30108951F939E +:10409000CF93DF938091D3019091D4010E94B21C01 +:1040A0004091D601442321F02091140130E006C054 +:1040B000209115015AE0259F900111248217930742 +:1040C00008F482C08091D8011091D901D091DA0111 +:1040D000C091DB01811107C0111105C0D11103C0CE +:1040E000CC2309F471C04F3F19F04F5F4093D601C4 +:1040F000181624F40E94CE1E8093D8018091D80116 +:1041000087FF05C00E94CE1E81958093D8011116AD +:1041100024F40E94CE1E8093D9018091D90187FF9B +:1041200005C00E94CE1E81958093D9016091D8016F +:10413000662339F11091D901112319F1772767FD11 +:104140007095872F972F0E94AB2323E333E343E33C +:104150005FE30E940F240E9478236093D801612FAF +:10416000772767FD7095872F972F0E94AB2323E356 +:1041700033E343E35FE30E940F240E9478236093BC +:10418000D9011D1624F40E94161F8093DA01809134 +:10419000DA0187FF05C00E94161F81958093DA011E +:1041A0001C1624F40E94161F8093DB018091DB0112 +:1041B00087FF05C00E94161F81958093DB01DF9168 +:1041C000CF911F910C943C20DF91CF911F910895C6 +:1041D000E7EDF1E085E0DF011D928A95E9F71092A5 +:1041E000D6011092D5010895833081F128F48130F1 +:1041F00059F08230D1F00895853009F449C0B8F102 +:10420000863009F456C0089520911501862F90E05C +:10421000820F911D8F3F910520F4620F609315016D +:1042200008958FEF80931501089520911401862F32 +:1042300090E0820F911D8F3F910520F4620F6093F3 +:10424000140108958FEF80931401089520911301B4 +:10425000862F90E0820F911D8F3F910520F4620F11 +:104260006093130108958FEF8093130108952091B7 +:104270001201862F90E0820F911D8F3F910520F44F +:10428000620F6093120108958FEF809312010895D9 +:1042900020911101862F90E0820F911D8F3F910593 +:1042A00020F4620F6093110108958FEF8093110144 +:1042B000089520911001862F90E0820F911D8F3F6D +:1042C000910520F4620F6093100108958FEF8093A1 +:1042D00010010895833011F128F4813049F08230C3 +:1042E00091F00895853081F120F18630C1F1089573 +:1042F00080911501681720F4861B8093150108959D +:1043000010921501089580911401681720F4861BFE +:10431000809314010895109214010895809113015F +:10432000681720F4861B80931301089510921301DF +:10433000089580911201681720F4861B8093120162 +:10434000089510921201089580911101681720F4C8 +:10435000861B809311010895109211010895809198 +:104360001001681720F4861B8093100108951092A5 +:10437000100108958D3109F442C020F58E3009F402 +:1043800079C070F4873009F45EC020F4863009F4F7 +:1043900042C033C08830D1F18B3009F4A7C02DC0A2 +:1043A000863109F4A3C038F4803109F46DC081313D +:1043B00009F47BC022C0893109F498C08B3109F41B +:1043C0004FC01BC0853309F479C048F4873209F423 +:1043D00075C008F478C0893209F470C00EC0833407 +:1043E00038F48A3308F071C0883309F47FC005C0FF +:1043F000833409F463C08834C1F080E008950E94DA +:1044000032230E943B100E94400970C00E94B31EDC +:104410000E94C51E6BC08091CD01817F8E7F8093ED +:10442000CD0181E08093DD0108950E94A5152FEF55 +:1044300083ED90E3215080409040E1F700C0000000 +:104440000E94001D53C09091CD01892F817090FF73 +:1044500003C0917F9E7F26C091609093CD0146C09E +:104460009091CD0191FB882780F921E0822780FB84 +:1044700091F913C09091CD0192FB882780F921E03A +:10448000822780FB92F909C09091CD0193FB882788 +:1044900080F921E0822780FB93F99093CD01882356 +:1044A00029F191609093CD0108950E94A515809106 +:1044B0000D0191E0892780930D0118C061E070E043 +:1044C00080E090E00FC023EE01C027EC280F61E0F0 +:1044D00070E080E090E004C0660F771F881F991F8E +:1044E0002A95D2F70E949F190E94A51581E0089590 +:1044F00080E0089580E00895CF93C82F8091DD017A +:10450000813079F018F08230D1F184C0A0910E0191 +:10451000B0910F018C91813169F0823209F07CC039 +:1045200009C0A0910E01B0910F018C91813111F061 +:10453000823249F48C2F0E94782281111DC08C2F69 +:104540000E94BA211AC08C2F0E947A22811114C0B5 +:10455000C43179F048F4CB3079F0C03109F060C053 +:1045600082E08093DD0108C0C93219F0C83321F020 +:1045700057C01092DD0154C081E0817053C0C93230 +:1045800089F118F5C43171F1A8F4C73009F046C0BB +:104590008AE08093150194E19093140193E0909345 +:1045A00013018093120188E08093110188E28093C7 +:1045B000100134C0CE51C63088F5EC2FF0E0E65D36 +:1045C000FE4F80818093DC0129C0CE34E9F020F4D5 +:1045D000CB3421F56AE013C0C13579F0C235F1F46E +:1045E00061E00DC08091DC01882319F01092DC019C +:1045F00015C081E08093DD0115C061E006C08091A7 +:10460000DC010E94F4200AC06AE08091DC010E9473 +:104610006A2104C01092DD0180E004C081E002C084 +:1046200080E0ABCFCF910895E1E8F0E08081886031 +:1046300080838081816080838FB7F89493E090932A +:10464000890090ED909388008FBF0895EFE6F0E029 +:104650008081826080830895EFE6F0E080818D7F25 +:1046600080830895EFE6F0E0808192E089278083DF +:1046700008951F920F920FB60F9211242F933F931C +:104680004F935F936F937F938F939F93AF93BF935A +:10469000EF93FF938091DE019091DF01019690935B +:1046A000DF018093DE01811103C082E00E94400996 +:1046B000E091DF01E695E695F0E0E258F74FE491EE +:1046C0008091DE018E1303C080E00E944009FF91BB +:1046D000EF91BF91AF919F918F917F916F915F917A +:1046E0004F913F912F910F900FBE0F901F901895F3 +:1046F00004D06894B1118DC0089570D088F09F5790 +:1047000090F0B92F9927B751A0F0D1F0660F771F1D +:10471000881F991F1AF0BA95C9F712C0B13081F0FD +:1047200077D0B1E0089574C0672F782F8827B85FDD +:1047300039F0B93FCCF3869577956795B395D9F75E +:104740003EF490958095709561957F4F8F4F9F4F68 +:104750000895E89409C097FB3EF490958095709574 +:1047600061957F4F8F4F9F4F9923A9F0F92F96E9BD +:10477000BB279395F695879577956795B795F11132 +:10478000F8CFFAF4BB0F11F460FF1BC06F5F7F4FCF +:104790008F4F9F4F16C0882311F096E911C07723E1 +:1047A00021F09EE8872F762F05C0662371F096E8EA +:1047B000862F70E060E02AF09A95660F771F881FB9 +:1047C000DAF7880F9695879597F9089557FD9058D1 +:1047D000440F551F59F05F3F71F04795880F97FBC5 +:1047E000991F61F09F3F79F087950895121613067F +:1047F0001406551FF2CF4695F1DF08C016161706AE +:104800001806991FF1CF86957105610508940895E2 +:10481000E894BB2766277727CB0197F908950BD03B +:1048200078C069D028F06ED018F0952309F05AC0EE +:104830005FC01124EECFCADFA0F3959FD1F3950F8F +:1048400050E0551F629FF001729FBB27F00DB11D14 +:10485000639FAA27F00DB11DAA1F649F6627B00DA4 +:10486000A11D661F829F2227B00DA11D621F739F8D +:10487000B00DA11D621F839FA00D611D221F749F9B +:104880003327A00D611D231F849F600D211D822FE2 +:10489000762F6A2F11249F5750408AF0E1F0882329 +:1048A0004AF0EE0FFF1FBB1F661F771F881F915036 +:1048B0005040A9F79E3F510570F014C0AACF5F3F4A +:1048C000ECF3983EDCF3869577956795B795F79569 +:1048D000E7959F5FC1F7FE2B880F911D96958795F1 +:1048E00097F9089597F99F6780E870E060E0089570 +:1048F0009FEF80EC089500240A94161617061806F8 +:104900000906089500240A941216130614060506D3 +:104910000895092E0394000C11F4882352F0BB0F64 +:1049200040F4BF2B11F460FF04C06F5F7F4F8F4FC7 +:104930009F4F089597FB072E16F4009407D077FD3C +:1049400009D00E94B42407FC05D03EF490958195CF +:104950009F4F0895709561957F4F0895EE0FFF1F4B +:104960000590F491E02D0994AA1BBB1B51E107C0EF +:10497000AA1FBB1FA617B70710F0A61BB70B881FEF +:10498000991F5A95A9F780959095BC01CD0108957E +:10499000F999FECF92BD81BDF89A992780B5089507 +:1049A000A8E1B0E042E050E00C94EB24262FF99906 +:1049B000FECF1FBA92BD81BD20BD0FB6F894FA9A02 +:1049C000F99A0FBE019608950E94D624272F0C94C1 +:1049D000D724DC01CB01FC01F999FECF06C0F2BD62 +:1049E000E1BDF89A319600B40D9241505040B8F7AD +:0649F0000895F894FFCFCA +:1049F60020024209CF09AC09780945090101BA012B +:104A060028080A03140A3F4D36393F08F207BC0747 +:104A1600830716072F0748076107010203040506E7 +:044A26000708090074 +:00000001FF diff --git a/keyboard/ergodox_ez/keymaps/ordinary/readme.md b/keyboard/ergodox_ez/keymaps/ordinary/readme.md new file mode 100644 index 0000000000..f100dd1c5c --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/ordinary/readme.md @@ -0,0 +1,75 @@ +# The Ordinary Layout, a familiar and powerful layout # + +The Ordinary Layout is intended to be unremarkably mundane and remarkably useful. This layout maintains most key positions from common QWERTY keyboards, and it features enhanced Symbol and Media layers compared to the default Ergodox EZ layout. + +The Ordinary Layout is supposed to look mostly like a normal keyboard, except in the ways that the Ergodox key arrangement is unique. The thumbs are responsible for space, enter, plus both forward and backward delete; with only a couple exceptions, all other keys are in the same place they are found on traditional keyboards. + +Nicholas Keene +ordinarylayout@nicholaskeene.com +no rights reserved, use for any purposes, credit me if you are a nice person + +## The Base Layout ## + +* The light blue keys are modifiers: traditional Control, Option, and Command keys, plus Hyper and Meh +* The dark blue keys are Shift keys: Capitals Shift (traditional shift), Symbol Shift, and Media Shift; plus a Shift Lock key +* Several dark blue keys double for entry of characters which would typically be in those locations +* The turquoise keys are text navigation and manipulation +* The red keys is Escape and it is always found in that location no matter what + +![Ordinary base layout](ordinary-base.png) + +This layout puts the modifier keys along the bottom of the keyboard where they are on most keyboards. They are in the regular order, with the addition of Hyper and Meh keys. On the outside edges are the Shift keys. The traditional shift key is called Capitals Shift and it is in the normal location. Above that are Symbols Shift and Media Shift. Each Shift key momentarily switches the layout to that layer, and if you use the Shift Lock button you can lock the layout to that layer. + +Touch typists will also find tilde, tab, equals/plus, slash/pipe, and quote/double-quote sharing space on those Shift keys where they would probably be on a common keyboard. Other than the turquoise keys the only buttons which move to new locations are the Brackets and Dash and Escape. Most touch typists dont touch-type brackets or dash anyway so only Escape really requires retraining of muscle memory, and see below for the Special Escape Sequence. + +The four big turquoise keys are arranged differently than in the default Ergodox EZ layout. The Ordinary Layout here copies the design of the old Fingerworks TouchStream keyboard, but also reflects the natural presumptions of the author -- me! I type the space character with my right hand, and to me it makes sense for the two delete keys to be next to one another. + +The Forward Tab and Backward Tab keys are in their locations mostly because I ended up with two extra buttons and needed something to do with them. My muscle memory from using the Truly Ergonomic Keyboard makes me look for the Tab key with my right index finger, so it is handy to have this redundant Tab, and the idea with the Backward Tab key is that it becomes easy to navigate text fields in forms, or to indent/unindent code. + +## The Symbols Layer ## + +* The light green keys are the eponymous symbols +* The bright green keys are F-Keys +* The dark green keys constitute a number pad +* The turquoise keys are the *reverse* of the turquoise keys on the base layer + +![Ordinary symbol layout](ordinary-symbol.png) + +The Ergodox EZ ships with the "Coder Layer" which I like to call the Symbols layer. There are some significant improvements in The Ordinary Layout over the default layout. + +The symbol keys are mostly the same as on the default layout, which did a good job in this regard, but with a few enhancements: + +* Angle brackets on this layer mean that curly, square, and angle brackets are all available on different layers of the same two buttons. Also, they mean that all kinds of brackets, including parentheses, are available on both the Base and Symbols layers. +* The slash, backslash, and pipe characters are grouped together as a memory aid. +* The & and | symbols are juxtaposed as a memory aid + +The number pad area here, in green, includes all four arithmetic operations in the same order found on most number pads and features an Enter key. The keycodes emitted here are normal numeric keycodes, not the number-pad specific keycodes emitted by most number pads, because this layout does not use a Num Lock key to switch the buttons between numeric keycodes and navigational keycodes. See the explanation in The Media Layout section about navigation using these same buttons. + +Finally, consider the turquoise text-nav keys. Here in the Symbols layer, these are *reversed* from the base layer, with most keys mirrored, but the Delete keys shifted to maintain the directional significance of their arrangement. This is powerful! Often I find myself using the mouse with my right hand, and the left hand needs to press Enter. Instead of reaching the left hand over to the right side of the keyboard, now I simply tap Symbols to reverse the yellow keys, and Enter is right where it should be. + +## The Media Layer ## + +* The dark orange keys on the left move the mouse cursor +* The dark orange keys on the right move the text cursor +* The light orange keys are for scrolling and paging +* The bright green keys are more F-keys +* The dark yellow keys signal Web and Audio applications +* The light yellow keys signal the operating system + +![Ordinary media layout](ordinary-media.png) + +This layer was inspired by the Media layer on the Ergodox EZ but takes it farther. The Fingerworks TouchStream keyboard had a very useful feature for controlling the text cursor easily and this layer does something similar. The left hand can move the mouse, the right hand moves the text cursor, in all four directions, in small or large increments. This greatly enhances navigation in text documents. + +Moreover, the orange keys on the right overlay the numberpad from the Symbols Layer, such that in the Media Layer the same keys can be used as if they were a number pad in navigational mode (Num Lock off). For instance, in traditional number pads the '3' key became 'Page Down', and so it is here. This means a user can do text navigation without moving either hand. + +## Switching Between Layers ## + +The three Shift keys correspond to three logical layers on top of the ever-present base layer, and are represented in the three LEDs on the keyboard: Capitals (red), Symbols (green), Media (blue). The color of a layer illuminates when the layer is active. Shift keys work in the expected way: press them and the keys shift to that layer; release them and the keys shift back to the base layer. The Ordinary Layout also features a Shift Lock key to keep a layer active indefinitely. Hold down the Shift Lock key then press any Shift key to lock to that layer. Or, hold down the Shift key and press the Shift Lock key; either way works. To revert to the base layer, use the Shift Lock key again in combination with the Shift key. + +This layout attempts to treat the Capitals Shift layer the same as the other two Shift layers, but internally they are different which causes some inconsistencies. For instance, it is possible to switch from any layer to any other layer, and to lock to any layer, *except* it is not possible to go from Media to Symbols. You must exit the Media layer before engaging the Symbols layer. Also, the Caps Lock feature must be triggered by first pressing the Shift Lock key then a Capitals Shift key; it doesn't work if you press the Shift key first (instead you get the secondary symbol associated with the Shift Lock button). + +## Special Escape Sequence ## + +In 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, was assigned to the tilde button which is traditionally found in that location. 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! + +That 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. diff --git a/keyboard/ergodox_ez/keymaps/osx_de/keymap.c b/keyboard/ergodox_ez/keymaps/osx_de/keymap.c new file mode 100644 index 0000000000..dffcb21da3 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/osx_de/keymap.c @@ -0,0 +1,453 @@ +#include "ergodox_ez.h" +#include "debug.h" +#include "action_layer.h" +#include "keymap_extras/keymap_german_osx.h" + +#define BASE 0 // default layer +#define SYMB 1 // symbols +#define MDIA 2 // media keys +#define SMLY 3 // media keys +#define NUMB 4 // number keys +#define EGOS 5 // Egoshooter layer + +#define M_CTRL_CMDV 1 +#define M_CTRL_CMDC 2 +#define M_MEH_SH_ACUT 3 +#define M_DE_OSX_PLUS_CTRLALT 12 +#define M_DE_OSX_CIRC_CTRLCMD 13 +#define M_TOGGLE_5 14 +#define M_CTL_SFT_HASH 15 +#define M_LGUI_SHFT 16 + +#define SM_SMILE 4 +#define SM_SMIRK 5 +#define SM_FROWN 6 +#define SM_CRY 7 +#define SM_KISS 8 +#define SM_HEART 9 +#define SM_LAUGH 10 +#define SM_SAD 11 + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Keymap 0: Basic layer + * + * ,-----------------------------------------------------. ,--------------------------------------------------. + * | ESC | 1 | 2 | 3 | 4 | 5 |CTL_SFT/#| |CTL_SFT/#| 6 | 7 | 8 | 9 | 0 | ß | + * |--------+------+------+------+------+----------------| |---------+------+------+------+------+------+--------| + * | TAB | Q | W | E | R | T | CMD | | CMD | Z | U | I | O | P | ü | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | LALT | A | S | D | F | G |---------| |---------| H | J | K | L | ö | ä/RALT| + * |--------+------+------+------+------+------| LALT | | RALT |------+------+------+------+------+--------| + * | LShift |Y/Ctrl| X | C | V | B | | | | N | M | , | . |-/Ctrl| RShift | + * `--------+------+------+------+------+----------------' `-------------+------+------+------+------+--------' + * | | ! | ? | | | | | \ | [ | ] | < | > | ! | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | # | $ | \ | / | . |------| |------| / | ( | ) | { | } | # | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | ^ | % | | | ~ | | | | | | ~ | ^ | UP | | $ | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | ' | LEFT| DOWN | RIGHT | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | F13 | F12 | + * ,------|------|------| |------+------+------. + * | | | | | F14 | | | + * | | |------| |------| | | + * | | | | | F15 | | | + * `--------------------' `--------------------' + */ +// SYMBOLS +[SYMB] = KEYMAP( + // left hand + KC_TRNS,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS, + KC_TRNS,DE_OSX_LESS,DE_OSX_MORE,DE_OSX_EXLM,DE_OSX_QST, KC_TRNS,KC_TRNS, + KC_TRNS,DE_OSX_HASH,DE_OSX_DLR, DE_OSX_BSLS,DE_OSX_SLSH,KC_DOT, + KC_TRNS,KC_TRNS,DE_OSX_LESS,DE_OSX_PERC,DE_OSX_PIPE,DE_OSX_TILD,KC_TRNS, + KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, + KC_TRNS,KC_TRNS, + KC_TRNS, + KC_TRNS,KC_DEL,KC_TRNS, + // right hand + M(M_TOGGLE_5), KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + KC_TRNS, LALT(LSFT(KC_7)), LALT(KC_5), LALT(KC_6), DE_OSX_LESS, DE_OSX_MORE, DE_OSX_EXLM, + DE_OSX_SLSH, DE_OSX_LPRN, DE_OSX_RPRN, LALT(KC_8), LALT(KC_9), DE_OSX_HASH, + KC_TRNS, DE_OSX_PIPE, DE_OSX_TILD, DE_OSX_CIRC, KC_UP, DE_OSX_MINS, LSFT(KC_4), + DE_OSX_QUOT, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, + KC_F13, KC_F12, + KC_F14, + KC_F15, KC_TRNS, KC_TRNS +), +/* Keymap 2: Media and mouse keys + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | | | | | | | | Mute | | | | | | EGOS | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | Lclk | MsUp | Rclk | WlUp | | | | | | | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | |MsLeft|MsDown|MsRght| WlDw |------| |------|VolUp | | | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | MClk | | | |VolDn | | Prev | Next | Up | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | | | Left | Down | Right | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | |Brwser| + * | | |------| |------| |Back | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// MEDIA AND MOUSE +[MDIA] = KEYMAP( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_BTN1, KC_MS_U, KC_BTN2, KC_WH_U, KC_TRNS, + KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_D, + KC_TRNS, KC_TRNS, KC_WH_L, KC_WH_D, KC_WH_R, KC_BTN3, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, + // right hand + KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_VOLU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_VOLD, KC_TRNS, KC_MPRV, KC_MNXT, KC_UP, KC_TRNS, + KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_WBAK +), +/* Keymap 3: Smiley layer + * making it easier to type smileys... tipp: on osx you can easily replace those smileys with the UTF-8 character using + * keyboard short commands... + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | | | | | | | | :-) | ;-) | :-D | | | | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | | | | | | | | :-{ | :-( | | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | |------| |------| <3 | :-* | | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | | | | | | | | | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | | | | | r| + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+--------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `----------------------' + */ +[SMLY] = KEYMAP( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, + // right hand + M(SM_SMILE), M(SM_SMIRK), M(SM_LAUGH), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, M(SM_FROWN), M(SM_SAD), M(SM_CRY), KC_TRNS, KC_TRNS, KC_TRNS, + M(SM_HEART), M(SM_KISS), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS +), +//number pad +[NUMB] = KEYMAP( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, + // right hand + KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + KC_TRNS, KC_UP, KC_7, KC_8, KC_9, LSFT(KC_RBRC), KC_F12, + KC_DOWN, KC_4, KC_5, KC_6, KC_RBRC, DE_OSX_MINS, + KC_TRNS, LSFT(KC_6), KC_1, KC_2, KC_3, LSFT(KC_7), KC_TRNS, + KC_0,KC_DOT, KC_COMM, DE_OSX_EQL, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS +), + +/* Keymap 3: Egoshooter layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | | | | | | | | L5 | | | | | | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | | | | | | | | | | | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | SHIFT | | | | | |------| |------| | | | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | | | | | | | | | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | CTRL | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | F1 | F2 | | | | + * ,------|------|------| |------+--------+------. + * | | | F3 | | | | | + * | SPACE| CTRL|------| |------| | | + * | | | F4 | | | | | + * `--------------------' `----------------------' + */ +[EGOS] = KEYMAP( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_LSFT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_LCTL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_F1, KC_F2, + KC_F3, + KC_SPC, KC_LCTL, KC_F4, + // right hand + M(M_TOGGLE_5), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS +), +}; + +const uint16_t PROGMEM fn_actions[] = { + [1] = ACTION_LAYER_TAP_TOGGLE(SYMB), // FN1 - Momentary Layer 1 (Symbols) + [2] = ACTION_LAYER_TAP_TOGGLE(SMLY) // FN2 - Momentary Layer 2 (Smiley) +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + static uint16_t start; + // MACRODOWN only works in this function + switch(id) { + case 0: + if (record->event.pressed) { + register_code(KC_RSFT); + } else { + unregister_code(KC_RSFT); + } + break; + case 1: + if (record->event.pressed) { + start = timer_read(); + return MACRO(D(LCTRL), END); + } else { + if (timer_elapsed(start) > 150) { + return MACRO(U(LCTRL), END); + } else { + return MACRO(U(LCTRL), D(LGUI), T(V), U(LGUI), END); + } + } + break; + case 2: + if (record->event.pressed) { + start = timer_read(); + return MACRO(D(LCTRL),END); + } else { + if (timer_elapsed(start) > 150){ + return MACRO(U(LCTRL),END); + } else { + return MACRO(U(LCTRL),D(LGUI),T(C),U(LGUI),END); + } + } + break; + case 3: + if (record->event.pressed) { + start = timer_read(); + return MACRO(D(LCTRL),D(LSFT),D(LALT),END); + } else { + if (timer_elapsed(start) > 150){ + return MACRO(U(LCTRL),U(LSFT),U(LALT),END); + } else { + return MACRO(U(LCTRL),U(LALT),T(EQL),U(LSFT),END); //cannot use DE_OSX_ACUT here, as macro needs KC_ prefix + } + } + break; + case M_LGUI_SHFT: + if (record->event.pressed){ + return MACRO(D(LGUI),D(LSFT),END); + }else{ + return MACRO(U(LGUI),U(LSFT),END); + } + break; + case M_CTL_SFT_HASH: + if (record->event.pressed) { + start=timer_read(); + return MACRO(D(LCTRL),D(LSFT),END); + } else { + if (timer_elapsed(start) > 150){ + return MACRO(U(LCTRL),U(LSFT),END); + } else { + return MACRO(U(LCTRL),U(LSFT),T(BSLS),END); + } + } + break; + case M_DE_OSX_CIRC_CTRLCMD: + if (record->event.pressed) { + start = timer_read(); + return MACRO(D(LCTRL),D(LGUI),END); + } else { + if (timer_elapsed(start) > 150){ + return MACRO(U(LCTRL),U(LGUI),END); + } else { + return MACRO(U(LCTRL),U(LGUI),T(NUBS),END); + } + } + break; + case M_DE_OSX_PLUS_CTRLALT: + if (record->event.pressed) { + start = timer_read(); + return MACRO(D(LCTRL),D(LALT),END); + } else { + if (timer_elapsed(start) > 150){ + return MACRO(U(LCTRL),U(LALT),END); + } else { + return MACRO(U(LCTRL),U(LALT),T(RBRC),END); + } + } + break; + case SM_SMILE: + if (record->event.pressed) { + return MACRO(D(LSFT),T(DOT),U(LSFT),T(SLSH),D(LSFT),T(9),U(LSFT),END); + } + break; + + case SM_SMIRK: + if (record->event.pressed) { + return MACRO(D(LSFT),T(COMM),U(LSFT),T(SLSH),D(LSFT),T(9),U(LSFT),END); + } + break; + case SM_CRY: + if (record->event.pressed) { + return MACRO(D(LSFT),T(COMM),U(LSFT),T(SLSH),D(LSFT),T(8),U(LSFT),END); + } + break; + + case SM_SAD: + if (record->event.pressed) { + return MACRO(D(LSFT),T(DOT),U(LSFT),T(SLSH),D(LSFT),T(8),U(LSFT),END); + } + break; + + case SM_HEART: + if (record->event.pressed) { + return MACRO(T(GRV),T(3),END); + } + break; + case SM_LAUGH: + if (record->event.pressed) { + return MACRO(D(LSFT),T(DOT),U(LSFT),T(SLSH),D(LSFT),T(D),U(LSFT),END); + } + break; + case SM_KISS: + if (record->event.pressed) { + return MACRO(D(LSFT),T(DOT),U(LSFT),T(SLSH),D(LSFT),T(RBRC),U(LSFT),END); + } + break; + case SM_FROWN: + if (record->event.pressed) { + return MACRO(D(LSFT),T(DOT),U(LSFT),T(SLSH),D(LALT),T(8),U(LALT),END); + } + break; + case M_TOGGLE_5: + if (record->event.pressed){ + layer_state ^= (1<<5); + layer_state &= (1<<5); + } + break; + } + return MACRO_NONE; +}; + +// Runs just one time when the keyboard initializes. +void matrix_init_user(void) { + +}; + +// Runs constantly in the background, in a loop. +void matrix_scan_user(void) { + + uint8_t layer = biton32(layer_state); + + ergodox_board_led_off(); + ergodox_right_led_1_off(); + ergodox_right_led_2_off(); + ergodox_right_led_3_off(); + switch (layer) { + // TODO: Make this relevant to the ErgoDox EZ. + case 1: + ergodox_right_led_1_on(); + break; + case 2: + ergodox_right_led_2_on(); + break; + case 3: + ergodox_right_led_3_on(); + break; + case 4: + ergodox_right_led_1_on(); + ergodox_right_led_3_on(); + //ergodox_board_led_on(); + break; + case 5: + ergodox_right_led_1_on(); + ergodox_right_led_2_on(); + ergodox_right_led_3_on(); + break; + default: + // none + break; + } + +}; diff --git a/keyboard/ergodox_ez/keymaps/osx_de/osx_de.hex b/keyboard/ergodox_ez/keymaps/osx_de/osx_de.hex new file mode 100644 index 0000000000..c7cb8d8630 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/osx_de/osx_de.hex @@ -0,0 +1,1197 @@ +:100000000C94F0030C9434040C9434040C943404D5 +:100010000C9434040C9434040C9434040C94340480 +:100020000C9434040C9434040C94210E0C94F30EB0 +:100030000C9434040C9434040C9434040C94340460 +:100040000C9434040C9478230C9434040C943404ED +:100050000C9434040C94091D0C9434040C94340452 +:100060000C9434040C9434040C9434040C94340430 +:100070000C9434040C9434040C9434040C94340420 +:100080000C9434040C9434040C9434040C94340410 +:100090000C9434040C9434040C9434040C94340400 +:1000A0000C9434040C9434040C94340444044E042E +:1000B00066047E04C604CC04ED04D204E804DE0425 +:1000C000E304D804AE049604F204600F820F7010AB +:1000D000820F7010C70FEA0F70103F1052103413C8 +:1000E000341363136313A613E413FD15FD15FD13F9 +:1000F000FD15FE14FE14D115FD15FD15E81501E1E1 +:100100000137023702E10138023801E201250225F8 +:1001100002E20001E10137023702E1013802380151 +:10012000E10130023002E10001E10137023702E172 +:100130000138023801E10107020702E1000135023E +:1001400035012002200001E10137023702E10138C8 +:10015000023801E10125022502E10001E101360238 +:100160003602E10138023801E10125022502E100F1 +:1001700001E10136023602E10138023801E10126CF +:10018000022602E10001E10137023702E1013802F3 +:100190003801E10126022602E10002E002E201301C +:1001A00002300002E002E20001E001E20002E002AF +:1001B000E3016402640002E002E30001E001E30005 +:1001C00002E002E2012E022E02E10002E002E10260 +:1001D000E20001E001E101E20002E001E3010602C8 +:1001E0000602E30002E00001E00002E001E3011981 +:1001F000021902E30002E00001E0000000F0A1F0BB +:10020000A329002B00E200E100358100001E00144C +:100210000004001D710D304D831F001A0016001BD5 +:10022000000C304C00200008000700060052002A95 +:1002300000210015000900190051004A0022001792 +:10024000000A00050000000330E101E3000000E2C5 +:1002500000000002543100E7000000E60000000446 +:100260005423001C000B00110000002E7F240018F6 +:10027000000D00100050004B0025000C000E003651 +:10028000004F002C00260012000F003700E1082864 +:10029000002700130033003871E1044E002D002FB9 +:1002A000003474E50030810000010001000100010C +:1002B00000010000003A003500310001000100019A +:1002C000003B0035022102350001004C003C001EBD +:1002D0000224062202010001003D002D0224022416 +:1002E00004010001003E000100370011040000017C +:1002F000000100010000000100000001000E3001BB +:100300000000000100000068003F002406240224D1 +:100310000400004500400022042502110431026956 +:100320000041002304260264005000010042003511 +:100330000025045200510001004300350226043814 +:10034000004F006A0044001E02310021020100003B +:100350000001000100010001000100000001000196 +:100360000001000100010001000100F400F200FBA7 +:1003700000010001000100F000F100FA000100019D +:10038000000100F500F300FC00010001000100F98C +:1003900000FA00F600000001000100010000000169 +:1003A0000000000100A800010000000100000001A1 +:1003B0000001000100A900AA0000000100010001E5 +:1003C000000100010001000100010001000100AC7A +:1003D000000100B600010001000100AB0050000167 +:1003E00000010001000100520051000100AE0001B7 +:1003F00000010001004F00000001000100010001A8 +:1004000000010000000100010001000100010001E5 +:1004100000010001000100010001000100010001D4 +:1004200000010001000100010001000100010001C4 +:1004300000010001000100010001000100000001B5 +:100440000001000100000001000000010004300173 +:1004500000000001000000010005300630093001F5 +:1004600000000001000A300B3008300100010001DB +:10047000000100073001000100010001000100013E +:100480000001000100010001000100010001000164 +:100490000001000100010001000100010001000055 +:1004A0000001000100010001000100000001000145 +:1004B00000010001000100010001000100500001E5 +:1004C0000001000100010052005100010001000183 +:1004D00000010001004F00010001000100010001C6 +:1004E0000001000100000001000100010000000106 +:1004F00000000001000100010000000100000001F7 +:10050000003F00520051002302000001004000247F +:100510000021001E00270001004100250022001FCD +:1005200000370001004200260023002000360001B1 +:10053000004300300230002402270201004400453D +:1005400000380001000100000001000100E100018D +:1005500000E0000000010001000100010001003D79 +:100560000001000100010001000100E000010001A4 +:10057000000100010001002C000100010001000148 +:100580000001003C00010001000100010000003AF0 +:1005900000010001000000010000003B000E3001DE +:1005A0000000000100000001000100010001000145 +:1005B0000000000100010001000100010001000134 +:1005C0000001000100010001000100010001000123 +:1005D0000001000100010001000100010001000113 +:1005E0000001000100010001000100010001000004 +:1005F0000016034500720067006F0044006F00782A +:1006000000200045005A00000016034500720067F4 +:10061000006F0044006F007800200045005A000081 +:10062000000403090409026D00040100A0FA090492 +:1006300000000103010100092111010001223F0016 +:100640000705810308000A090401000103010200F3 +:10065000092111010001224D000705820308000A4B +:100660000904020001030000000921110100012218 +:1006700036000705830308000A090403000103008C +:10068000000009211101000122390007058403102F +:1006900000011201100100000008EDFE0713010027 +:1006A0000102000105010906A101050719E029E77A +:1006B0001500250195087501810205081901290514 +:1006C00095057501910295017503910105071900C2 +:1006D000297715002501957875018102C00501096A +:1006E00080A101850216010026B7001A01002AB771 +:1006F00000751095018100C0050C0901A101850359 +:10070000160100269C021A01002A9C027510950110 +:100710008100C005010902A1010901A10005091913 +:1007200001290515002501950575018102950175C1 +:100730000381010501093009311581257F95027575 +:1007400008810609381581257F9501750881060500 +:100750000C0A38021581257F950175088106C0C0F5 +:1007600005010906A101050719E029E71500250182 +:100770009508750181029501750881010508190127 +:1007800029059505750191029501750391010507EC +:10079000190029FF150025FF950675088100C00086 +:1007A00000000000000000000000010204060A0F23 +:1007B00017202C3A4A5D71879DB3C7DAE9F5FCFF33 +:1007C000FCF5E9DAC7B39D87715D4A3A2C20170F13 +:1007D0000A06040201000000000000000000000002 +:1007E00011241FBECFEFDAE0DEBFCDBF04B603FE9B +:1007F00024C08091F0019091F101A091F201B0919B +:10080000F3018730904BA740B04BB9F41092F00140 +:100810001092F1011092F2011092F30114BE84B70C +:10082000877F84BF88E10FB6F894809360001092B0 +:1008300060000FBEE0E0FFE3099511E0A0E0B1E049 +:10084000E4E7FAE402C005900D92A433B107D9F7AA +:1008500011E0A4E3B1E001C01D92A03FB107E1F7B0 +:100860000E94650B0C9438250C940000462F50E034 +:100870004F30510508F0DEC0DC01FA01EA5AFF4FA3 +:1008800012968C910C94ED24882321F085EE0E9421 +:10089000D111D0C085EE0E949912CCC0882349F0B6 +:1008A0000E94D31C909335018093340188EF91E02E +:1008B000089580913401909135010E94DF1C8739A1 +:1008C00091050CF0A8C08AEE91E00895882349F0C4 +:1008D0000E94D31C909335018093340187EE91E000 +:1008E000089580913401909135010E94DF1C873971 +:1008F00091050CF093C089ED91E00895882349F0AB +:100900000E94D31C909335018093340182ED91E0D5 +:10091000089580913401909135010E94DF1C873940 +:1009200091050CF07EC080EC91E00895882349F099 +:100930000E94D31C90933501809334018BEB91E09E +:10094000089580913401909135010E94DF1C873910 +:1009500091050CF069C08DEA91E00895882349F073 +:100960000E94D31C909335018093340188EA91E072 +:10097000089580913401909135010E94DF1C8739E0 +:1009800091050CF054C08AE991E00895882309F498 +:1009900051C085E891E00895882309F44BC080E7B1 +:1009A00091E00895882309F445C08BE591E008950E +:1009B000882309F43FC086E491E008958823D1F1AB +:1009C0008DE391E008958823A9F188E291E00895EC +:1009D000882381F183E191E00895882359F18EEF16 +:1009E00090E00895882331F18091B3019091B40192 +:1009F000A091B501B091B60120E2822780729927BB +:100A0000AA27BB278093B3019093B401A093B501AB +:100A1000B093B6010FC085EF91E0089584EE91E0A8 +:100A200008958BEC91E0089586EB91E0089583EAB8 +:100A300091E0089580E090E0089508956091B301F9 +:100A40007091B4018091B5019091B6010E94381C5B +:100A500056985E9825982D9826982E9827982F9826 +:100A60008330C1F028F4813041F0823049F008959C +:100A7000843049F0853051F00895259A2D9A0895D3 +:100A8000269A2E9A0895259A2D9A04C0259A2D9A71 +:100A9000269A2E9A279A2F9A08950C941E055698F6 +:100AA0005E9825982D9826982E9827982F988FEF46 +:100AB00090E0909389008093880090938B008093BE +:100AC0008A0090938D0080938C00259A2D9A2FEFA9 +:100AD00080E792E0215080409040E1F700C00000A4 +:100AE000269A2E9A2FEF80E792E021508040904086 +:100AF000E1F700C00000279A2F9A2FEF80E792E0DD +:100B0000215080409040E1F700C0000025982D98CA +:100B10002FEF80E792E0215080409040E1F700C045 +:100B2000000026982E982FEF80E792E02150804019 +:100B30009040E1F700C0000027982F9856985E98E3 +:100B400025982D9826982E9827982F98089589EA09 +:100B50008093800089E08093810024982C983F98AE +:100B60008AB18F748AB96E98479A8BB1806B8BB9B2 +:100B7000769A0E944F050C941D0580E28093000137 +:100B80008091360181110EC00E940C0681E0809395 +:100B900036012FEF83ED90E3215080409040E1F744 +:100BA00000C0000080E40E941206809300018111C1 +:100BB0002EC00E943C0680930001811128C00E9433 +:100BC0003C0680930001811122C08FE30E943C0605 +:100BD0008093000181111BC00E94340680E40E94B2 +:100BE000120680930001811112C08CE00E943C0625 +:100BF0008093000181110BC00E943C06809300018C +:100C0000811105C08FE30E943C06809300010E9481 +:100C100034068091000108951092B9008AE0809313 +:100C2000B800089594EA9093BC009091BC0097FF9F +:100C3000FCCF9091B900987F983021F0903111F05D +:100C400081E008958093BB0084E88093BC0080918C +:100C5000BC0087FFFCCF8091B900887F883111F0FC +:100C6000803471F780E0089584E98093BC0080911E +:100C7000BC0084FDFCCF08958093BB0084E8809382 +:100C8000BC008091BC0087FFFCCF9091B900987F99 +:100C900081E0983209F480E0089584E88093BC00F4 +:100CA0008091BC0087FFFCCF8091BB0008958091AC +:100CB0000001811115C080E40E941206809300019A +:100CC00081110CC082E10E943C06809300018111D9 +:100CD00005C08FEF0E943C06809300010E943406FD +:100CE00084B1807F84B985B1807F85B98AB1837FE3 +:100CF0008AB98BB1837F8BB93E98469808950E943C +:100D0000BD05809300010E94570680B38C7080BBA4 +:100D100081B3836F81BBA8E3B1E0E6E4F1E08EE04C +:100D20008E0F11921D928E13FCCF0C94A705BF92CB +:100D3000CF92DF92EF92FF920F931F93CF93DF93A7 +:100D400080910001882379F0809137018F5F809333 +:100D50003701811108C00E94BD05809300018111F7 +:100D600002C00E944F0508E311E0C0E0D0E0DD249E +:100D7000D39482E0C82EEE24E394F12CC730D10541 +:100D800000F580910001811164C080E40E94120688 +:100D900080930001811112C082E10E943C06809381 +:100DA000000181110BC0C7010C2E01C0880F0A94ED +:100DB000EAF780950E943C06809300010E94340669 +:100DC00048C0CA30A1F028F4C83059F0C93061F0E9 +:100DD00005C0CC3089F070F0CD3089F0209A289889 +:100DE00010C0219A29980DC0229A2A980AC0239AE5 +:100DF0002B9807C0529A01C0539A5B9802C03E9A42 +:100E0000469890EA9A95F1F79FB1799902C082E0ED +:100E100001C080E091709D25982B7C9902C084E0F0 +:100E200001C080E0892B7D9902C038E001C030E02C +:100E3000832B7E9902C020E101C020E0822B9FB16C +:100E40009095991F9927991F9295990F907E892BBC +:100E50000FC080910001811149C080E40E941206F8 +:100E600080930001882379F1B12C0E9434068B2DE8 +:100E7000F8019081981719F08083C09201010E94B7 +:100E8000570621960F5F1F4FCE30D10509F076CF60 +:100E900080910101882361F18150809301018823B1 +:100EA00039F08FE99FE00197F1F700C0000020C002 +:100EB000A6E4B1E0E8E3F1E0CF01825F91919D9378 +:100EC0008E13FCCF15C083E10E943C068093000185 +:100ED0008111CACF81E40E94120680930001811122 +:100EE000C3CF0E944D06B82EB094BFCF80E0C0CFD4 +:100EF0000E944D0581E0DF91CF911F910F91FF90EE +:100F0000EF90DF90CF90BF900895E82FF0E0EA5B7C +:100F1000FE4F8081089508958B3B910578F4883ABF +:100F2000910540F5853A9105D0F48430910508F09B +:100F3000B1C08130910509F4ADC06BC0803E910510 +:100F400008F467C0883E910508F4A4C09C01205FA6 +:100F500031092031310508F05CC090650895853A6B +:100F6000910509F459C0863A910509F058C082E804 +:100F700090E40895883A910509F454C0893A91059E +:100F800009F453C08A3A910509F452C08B3A91058D +:100F900009F451C08C3A910509F450C08D3A91057D +:100FA00009F44FC0803B910509F44EC08E3A91057B +:100FB00009F44DC08F3A910509F44CC0813B91056D +:100FC00009F44BC0823B910509F44AC0833B91056B +:100FD00009F449C0843B910509F448C0853B91055B +:100FE00009F447C0863B910509F446C0873B91054B +:100FF00009F445C0883B910509F444C0893B91053B +:1010000009F443C08A3B910509F442C080E094E4AE +:10101000089580E090E0089581E890E4089583E8E1 +:1010200090E4089582EE94E4089589EE94E408959E +:101030008AEE94E4089585EB94E4089586EB94E4B5 +:10104000089587EB94E408958CEC94E408958DEC76 +:1010500094E4089583E895E408958AE895E4089572 +:1010600082E995E4089584E995E4089581E296E49F +:10107000089583E296E4089584E296E4089585E273 +:1010800096E4089586E296E4089587E296E408954A +:101090008AE296E40895089596E0799FF00111247C +:1010A00094E5899FE00DF11D1124E60FF11DEE0F6F +:1010B000FF1FEF5FFD4F859194910895880F991F51 +:1010C000FC01E558FF4F859194910895880F991F71 +:1010D000FC01E550FE4F85919491089526E0729FA2 +:1010E000F001112444E5849FE00DF11D1124E60F69 +:1010F000F11DEE0FFF1FEF5FFD4F859194919C0155 +:101100003A9521154FE1340708F41AC13F512115D2 +:10111000304120F49F700E94660808959C0130536E +:101120002115304118F49927906C0895811520E518 +:10113000920769F40E941F164FEF84E39CE0415030 +:1011400080409040E1F700C000000C942E1D8130DB +:1011500020E5920731F48091CE0181608093CE0129 +:1011600008959C0130552115304108F051C0292FB8 +:1011700033272F70332721303105D9F4AC01437068 +:10118000552702C0220F331F4A95E2F73C68AC0195 +:1011900064E0440F551F6A95E1F744275370242BF0 +:1011A000352B73E0880F991F7A95E1F780769927A0 +:1011B0001DC02230310529F4982F8827816F906A4D +:1011C000089523303105A9F4AC014370552721E07F +:1011D00030E002C0220F331F4A95E2F73C6843E03B +:1011E000880F991F4A95E1F7807E9770822B932B89 +:1011F000089524303105E1F4AC014370552721E016 +:1012000030E002C0220F331F4A95E2F73A68E7CF79 +:101210009C0130572115304118F49F709062089559 +:101220009C0130582115304118F49F70906A089540 +:10123000803E9105E0F4803C910558F5813391059D +:1012400009F46FC048F48932910509F463C08A3209 +:10125000910509F46DC072C089339105E9F08238B7 +:101260009105D1F08533910509F44DC067C0833EE7 +:10127000910581F138F4803E9105B9F0823E9105E7 +:10128000D9F05CC0863E910561F1873E9105A1F1E0 +:1012900055C00E945E0808952091E10120FD02C022 +:1012A00021FF4CC080EE90E049C08091E10180FFB9 +:1012B000F9CF89E390E042C08091E10182FF0EC046 +:1012C0008091E10184FF03C080E090E037C083EEAD +:1012D00090E034C08091E10182FFF2CF82EE90E095 +:1012E0002DC08091E10183FF0BC08091E10184FD5D +:1012F000EBCF87EE90E022C08091E10183FFF5CF34 +:1013000086EE90E01BC08091E10185FF07C089E275 +:1013100090E014C08091E10185FFF9CF85E390E072 +:101320000DC08091E10186FF07C08AE290E006C00F +:101330008091E10186FFF9CF81E390E00E948C0764 +:10134000089508950C94A109809164010895CF93A4 +:10135000DF9300D01F92CDB7DEB79C018091E701EB +:10136000843019F593E099833B832A839093E900B5 +:101370008FEF9091E800815095FD06C095ED9A950C +:10138000F1F700008111F5CF8091E80085FF0DC0D5 +:1013900040E050E063E070E0CE0101960E94110C45 +:1013A0008091E8008E778093E8000F900F900F9067 +:1013B000DF91CF910895CF93DF9300D01F92CDB7E7 +:1013C000DEB72091E701243021F522E029839B83B9 +:1013D0008A8383E08093E9008FEF9091E800815049 +:1013E00095FD06C095ED9A95F1F700008111F5CFB6 +:1013F0008091E80085FF0DC040E050E063E070E0C0 +:10140000CE0101960E94110C8091E8008E778093A6 +:10141000E8000F900F900F90DF91CF9108952091E9 +:10142000E7012430F1F422E02093E9002FEF30911E +:10143000E800215035FD06C035ED3A95F1F7000082 +:101440002111F5CF2091E80025FF0BC040E050E0CE +:1014500065E070E00E94110C8091E8008E77809327 +:10146000E8000895CF93DF93EC019091E701943069 +:1014700009F046C080910C018823D9F080910D01BC +:101480008823B9F09093E9008FEF9091E8008150A4 +:1014900095FD06C095E19A95F1F700008111F5CF11 +:1014A0008091E80085FF2CC040E050E060E170E0F2 +:1014B00017C081E08093E9008FEF9091E8008150A0 +:1014C00095FD06C095ED9A95F1F700008111F5CFD5 +:1014D0008091E80085FF14C040E050E068E070E0D3 +:1014E000CE010E94110C8091E8008E778093E80075 +:1014F00080E1FE01A4E5B1E001900D928A95E1F74B +:10150000DF91CF9108958091E601811109C00E9479 +:10151000A60D0E94030E8091E20084608093E20099 +:1015200008951092E601089508950C9465230E9491 +:10153000C41C0E946B230E94A9100C94A20942E0D3 +:1015400061EC81E00E94200D42E061EC82E00E94AB +:10155000200D42E061EC83E00E94200D42E161EC4D +:1015600084E00C94200D8091E901833009F455C08A +:1015700030F4813071F0823009F48EC008958A30E1 +:1015800009F47AC08B3009F460C0893009F09CC03E +:1015900020C08091E801813A09F096C08091E8006E +:1015A000877F8093E8008091EC019091ED01892B79 +:1015B00021F460E184E591E003C060E080E090E028 +:1015C00070E00E945C0C8091E8008B778093E800CB +:1015D00008958091E801813209F076C08091EC0194 +:1015E0009091ED01009719F0039709F06DC080917B +:1015F000E800877F8093E8008091E80082FD05C0C5 +:101600008091E7018111F8CF5FC08091F100809354 +:1016100064018091E8008B7753C08091E801813AA2 +:1016200009F052C08091EC019091ED01892B09F0F5 +:101630004BC08091E800877F8093E8008091E800AC +:1016400080FFFCCF80910C0136C08091E80181328F +:10165000D9F58091EC019091ED01892BA9F580914C +:10166000E800877F8093E8000E94550D8091EA0191 +:1016700080930C010C941F168091E801813221F5B2 +:101680008091E800877F8093E8000E94550D80914B +:10169000EB018093650108958091E801813AA1F4FE +:1016A0008091E800877F8093E8008091E80080FFC8 +:1016B000FCCF809165018093F1008091E8008E77E6 +:1016C0008093E8000C94550D089584B7877F84BFFC +:1016D00088E10FB6F89480936000109260000FBE0E +:1016E00090E080E80FB6F8948093610090936100D9 +:1016F0000FBE0E94F8100E94A60D0E94030E80915A +:10170000E20084608093E20078940E9489100E9435 +:10171000FA1082E091E00E94A4100E94532380916D +:10172000E701853069F40E94881C8091E5018823D7 +:10173000B1F30E94B01C882391F30E94FB0BEFCF02 +:101740000E940011ECCF292F332723303105C9F037 +:1017500064F42130310581F02230310509F043C0B5 +:101760008DE690E025E236E042C021323105F1F00D +:101770002232310541F137C082E190E022E936E0C2 +:1017800036C099278130910541F08230910541F0B2 +:10179000892B49F5E1E2F6E005C0E9E0F6E002C098 +:1017A000E1EFF5E0849190E09F0121C06430D8F42E +:1017B000E62FF0E0EE0FFF1FEE5DFE4F208131813E +:1017C00089E090E014C0643070F470E0FB01EE0F2B +:1017D000FF1FE65EFE4F20813181FB01EA5EFE4F76 +:1017E000808190E004C080E090E020E030E0FA01E9 +:1017F00031832083089580E189BD82E189BD09B4E8 +:1018000000FEFDCF8091D8008F7D8093D80080911D +:10181000E00082608093E0008091E00081FDFCCFD9 +:101820000895CF92DF92EF92FF920F931F93CF9381 +:10183000DF93EC018B016A010E94740D811133C0AA +:10184000C114D10439F0F60180819181081B190B74 +:10185000C80FD91FE12CF12C0115110519F1809148 +:10186000E80085FD16C08091E8008E778093E8003F +:10187000C114D10449F0F60180819181E80EF91E6E +:10188000F182E08285E00FC00E94740D882321F36D +:101890000AC089918093F10001501109FFEFEF1AFE +:1018A000FF0ADACF80E0DF91CF911F910F91FF9077 +:1018B000EF90DF90CF9008952091EE013091EF01ED +:1018C0002617370748F06115710539F42091E800B3 +:1018D0002E772093E80001C0B90140E06115710541 +:1018E000A9F12091E701222309F443C0253009F42E +:1018F00042C02091E80023FD40C02091E80022FD75 +:1019000032C02091E80020FFE9CF4091F300209100 +:10191000F20030E0342BFC01CF016115710559F064 +:101920002830310540F481918093F10061507109B4 +:101930002F5F3F4FF1CF41E02830310509F040E003 +:101940002091E8002E772093E800C8CF4111C9CF3D +:101950000AC08091E701882361F0853061F08091B1 +:10196000E80083FD0AC08091E80082FFF2CF80E0AA +:10197000089582E0089583E0089581E0089520911C +:10198000EE013091EF012617370748F06115710518 +:1019900039F42091E8002E772093E80001C0B901C6 +:1019A000FC0120E06115710591F18091E701882328 +:1019B00009F440C0853009F43FC08091E80083FD00 +:1019C0003DC08091E80082FD2FC08091E80080FF3B +:1019D000E9CF2091F3008091F20090E0922B611505 +:1019E000710559F08830910540F424912093F1005D +:1019F0003196615071090196F2CF21E0089709F004 +:101A000020E08091E8008E778093E800CBCF211111 +:101A1000CCCF0AC08091E701882361F0853061F066 +:101A20008091E80083FD0AC08091E80082FFF2CF38 +:101A300080E0089582E0089583E0089581E00895AC +:101A4000982F973058F59093E900981739F07091D6 +:101A5000EC002091ED005091F00003C0242F762F70 +:101A600050E021FF19C03091EB003E7F3093EB0036 +:101A70003091ED003D7F3093ED003091EB0031600F +:101A80003093EB007093EC002093ED005093F00046 +:101A90002091EE0027FF07C09F5FD3CF8F70809308 +:101AA000E90081E0089580E008958091E80187FFD2 +:101AB00011C08091E80082FD05C08091E70181118D +:101AC000F8CF11C08091E8008B770BC08091E701BF +:101AD000882349F08091E80080FFF8CF8091E800EA +:101AE0008E778093E80008952091E4003091E5001E +:101AF00095E64091EC00842F817040FF22C08091D8 +:101B0000E80080FD1CC08091E701882391F08530BA +:101B100091F08091EB0085FD10C04091E400509160 +:101B2000E5004217530729F39A01915011F784E019 +:101B3000089582E0089583E0089581E0089580E0AB +:101B400008954091E80042FFDECF08950E94140EF0 +:101B50000E941C0EE0EEF0E0808181608083E8ED61 +:101B6000F0E080818F77808319BCA7EDB0E08C9185 +:101B70008E7F8C9380818F7E80831092E601089502 +:101B80000F931F93CF93DF930E94140E0E941C0E9D +:101B9000C8EDD0E088818F778883888180688883CA +:101BA00088818F7D888319BC1092E7011092E30130 +:101BB0001092E5011092E40100EE10E0F80180813E +:101BC0008B7F808388818160888342E060E080E051 +:101BD0000E94200DE1EEF0E080818E7F8083E2EEB6 +:101BE000F0E0808181608083808188608083F8015B +:101BF00080818E7F8083888180618883DF91CF910F +:101C00001F910F910895E8EDF0E080818F7E808331 +:101C1000E7EDF0E080818160808384E082BF81E035 +:101C20008093E6010C94C00DE8EDF0E080818E7F9A +:101C300080831092E20008951092DA001092E10081 +:101C400008951F920F920FB60F9211242F933F9376 +:101C50004F935F936F937F938F939F93AF93BF93B4 +:101C6000EF93FF938091E10082FF0BC08091E2002F +:101C700082FF07C08091E1008B7F8093E1000E948A +:101C800088108091DA0080FF1FC08091D80080FF0B +:101C90001BC08091DA008E7F8093DA008091D9009A +:101CA00080FF0DC080E189BD82E189BD09B400FEDD +:101CB000FDCF81E08093E7010E94830A05C019BC33 +:101CC0001092E7010E94910A8091E10080FF19C003 +:101CD0008091E20080FF15C08091E2008E7F8093AA +:101CE000E2008091E20080618093E2008091D80060 +:101CF00080628093D80019BC85E08093E7010E9440 +:101D0000950A8091E10084FF30C08091E20084FF59 +:101D10002CC080E189BD82E189BD09B400FEFDCF00 +:101D20008091D8008F7D8093D8008091E1008F7ED4 +:101D30008093E1008091E2008F7E8093E2008091A9 +:101D4000E20081608093E2008091E301882311F03A +:101D500084E007C08091E30087FD02C081E001C0FC +:101D600083E08093E7010E94970A8091E10083FF5E +:101D700029C08091E20083FF25C08091E100877F28 +:101D80008093E10082E08093E7011092E30180916B +:101D9000E1008E7F8093E1008091E2008E7F80934E +:101DA000E2008091E20080618093E20042E060E026 +:101DB00080E00E94200D8091F00088608093F00008 +:101DC0000E94940AFF91EF91BF91AF919F918F91E3 +:101DD0007F916F915F914F913F912F910F900FBE27 +:101DE0000F901F9018951F920F920FB60F9211240B +:101DF0002F933F934F935F936F937F938F939F9313 +:101E0000AF93BF93CF93DF93EF93FF93C091E9001C +:101E1000CF708091EC00D82FD17080FDD0E8109267 +:101E2000E9008091F000877F8093F00078940E9411 +:101E3000370F1092E9008091F00088608093F000E5 +:101E4000CD2BCF70C093E900FF91EF91DF91CF913F +:101E5000BF91AF919F918F917F916F915F914F91C2 +:101E60003F912F910F900FBE0F901F9018951F93C9 +:101E7000CF93DF93CDB7DEB7AA970FB6F894DEBF46 +:101E80000FBECDBFE8EEF1E088E08E0F9091F1003B +:101E900091938E13FBCF0E94B30A8091E80083FFD9 +:101EA0001FC18091E8019091E901492F50E04A302B +:101EB000510508F015C1FA01EB59FF4F0C94ED24C0 +:101EC000803881F0823809F00BC18091EC018F706D +:101ED0008093E9008091EB0085FB882780F91092C0 +:101EE000E90006C08091E4019091E50191118260C2 +:101EF0009091E800977F9093E8008093F100109212 +:101F0000F100C8C0282F2D7F09F0EAC0882319F0FE +:101F1000823061F0E5C08091EA01813009F0E0C0D3 +:101F2000933009F080E08093E5012BC08091EA01B5 +:101F3000811127C08091EC018F7009F4D1C080938A +:101F4000E9002091EB0020FF1CC0933021F4809128 +:101F5000EB00806214C09091EB0090619093EB00D5 +:101F600021E030E0A90102C0440F551F8A95E2F735 +:101F70004093EA001092EA008091EB008860809321 +:101F8000EB001092E9008091E800877F86C0811104 +:101F9000A7C01091EA011F778091E3008078812B20 +:101FA0008093E3008091E800877F8093E8000E949F +:101FB000550D8091E80080FFFCCF8091E3008068A0 +:101FC0008093E300111102C082E001C083E080939E +:101FD000E70186C08058823008F082C08091EA0113 +:101FE0009091EB018C3D53E0950779F583E08A836E +:101FF0008AE289834FB7F894DE01139620E03EE031 +:1020000051E2E32FF0E050935700E49120FF03C02A +:10201000E295EF703F5FEF708E2F90E0EA3010F0A6 +:10202000C79601C0C0968D939D932F5F243149F7C9 +:102030004FBF8091E800877F8093E8006AE270E0FC +:10204000CE0101960E945C0C14C0AE014F5F5F4F41 +:102050006091EC010E94A30BBC01892B09F440C0E4 +:102060009091E800977F9093E80089819A810E947F +:10207000BF0C8091E8008B778093E80031C08038F6 +:1020800079F58091E800877F8093E8008091E301F3 +:102090008093F1008091E8008E778093E8000E94A1 +:1020A000550D1EC081111CC09091EA019230C0F400 +:1020B0008091E800877F8093E8009093E3010E947D +:1020C000550D8091E301811106C08091E30087FDE9 +:1020D00002C081E001C084E08093E7010E949F0A72 +:1020E0008091E80083FF0AC08091E800877F809399 +:1020F000E8008091EB0080628093EB00AA960FB617 +:10210000F894DEBF0FBECDBFDF91CF911F91089530 +:102110000895CF938091E7018823A1F0C091E90051 +:10212000CF709091EC00892F817090FD80E8C82BD2 +:102130001092E9008091E80083FD0E94370FCF7074 +:10214000C093E900CF91089590936B0180936A0149 +:102150000895E0916A01F0916B01309721F00190B0 +:10216000F081E02D099480E00895E0916A01F091FA +:102170006B01309721F00280F381E02D09940895DE +:10218000E0916A01F0916B01309721F00480F581B4 +:10219000E02D09940895209168013091690182171A +:1021A000930771F09093690180936801E0916A014F +:1021B000F0916B01309721F00680F781E02D0994B2 +:1021C000089520916601309167018217930771F09D +:1021D0009093670180936601E0916A01F0916B0131 +:1021E000309721F00084F185E02D09940895089539 +:1021F0000C94F7100E94CA1C0E947F060C94901D3C +:10220000CF92DF92EF92FF920F931F93CF93DF93C2 +:10221000CDB7DEB72B970FB6F894DEBF0FBECDBF9C +:102220000E9497068DE6C82E81E0D82E00E010E0CF +:10223000E02E802F0E948507F60141916F01F42E58 +:10224000F826B1F40F5F1F4F0E30110589F78FEF9D +:1022500089838A831B820E94D31C8160782F9D838F +:102260008C8349815A816B818D810E94A31140C06A +:102270009091CE0191FF04C08B870E948B078B85C4 +:1022800020E030E04F2D50E0922FBA01022E02C024 +:10229000759567950A94E2F760FF24C02E83EF825C +:1022A00021E030E0690102C0CC0CDD1C9A95E2F718 +:1022B00090E08C219D21892B09F420E028870E9441 +:1022C000D31C8160782F9A8789874E815F816885CA +:1022D0008A850E94A311F801E359FE4F8081C82628 +:1022E000C08206C02F5F3F4F2630310569F6AACF66 +:1022F0000E94772010916C010E94A9101817A1F07C +:102300000E94A91080936C012B960FB6F894DEBF43 +:102310000FBECDBFDF91CF911F910F91FF90EF9036 +:10232000DF90CF900C94A2092B960FB6F894DEBFE5 +:102330000FBECDBFDF91CF911F910F91FF90EF9016 +:10234000DF90CF900895CF93DF93CDB7DEB72B9773 +:102350000FB6F894DEBF0FBECDBF4F835887698795 +:102360007A878B87DE01119686E0FD0111928A95AE +:10237000E9F785E0FE01379601900D928A95E1F725 +:1023800049815A816B817C818D819E810E94B9181F +:102390002B960FB6F894DEBF0FBECDBFDF91CF9165 +:1023A0000895CF93882309F4C2C0C82F823859F406 +:1023B0000E94A91081FDBBC089E30E94551B0E94A9 +:1023C000121C89E30CC0833879F40E94A91080FDA7 +:1023D000AEC083E50E94551B0E94121C83E50E943B +:1023E000971BCF910C94121C843859F40E94A910A9 +:1023F00082FD9DC087E40E94551B0E94121C87E449 +:10240000EECF8CEF8C0F813A48F48C2F0E94B822CB +:1024100081118DC08C2F0E94551BE3CF80E28C0F61 +:10242000883048F4C77081E001C0880FCA95EAF788 +:102430000E94DB1BD6CF8BE58C0F833078F4C53A36 +:1024400029F0C63A31F083E890E005C081E890E0D9 +:1024500002C082E890E0CF910C94CB1088E58C0FFD +:10246000833108F064C0C83A39F1C93A41F1CA3A37 +:1024700049F1CB3A51F1CC3A59F1CD3A61F1C03B37 +:1024800069F1CE3A71F1CF3A79F1C13B81F1C23BAA +:1024900089F1C33B91F1C43B99F1C53BA1F1C63B26 +:1024A000A9F1C73BB1F1C83BB9F1C93BC1F1CA3B86 +:1024B000C9F180E090E038C082EE90E035C089EE4E +:1024C00090E032C08AEE90E02FC085EB90E02CC007 +:1024D00086EB90E029C087EB90E026C08CEC90E082 +:1024E00023C08DEC90E020C083E891E01DC08AE815 +:1024F00091E01AC082E991E017C084E991E014C02C +:1025000081E292E011C083E292E00EC084E292E0A8 +:102510000BC085E292E008C086E292E005C087E247 +:1025200092E002C08AE292E0CF910C94E110CF9148 +:102530000895882309F44BC0823859F40E94A910E9 +:1025400081FF45C089E30E94551B0E94121C89E34C +:102550000CC0833871F40E94A91080FF38C083E555 +:102560000E94551B0E94121C83E50E94971B0C942D +:10257000121C843859F40E94A91082FF28C087E4F5 +:102580000E94551B0E94121C87E4EFCF9CEF980F0E +:10259000913A58F390E2980F983050F4877091E098 +:1025A00001C0990F8A95EAF7892F0E94E11BDFCFBE +:1025B0009BE5980F933020F480E090E00C94CB10D2 +:1025C000885A833120F480E090E00C94E110089563 +:1025D000882321F00E94DB1B0C94121C0895882391 +:1025E00021F00E94E11B0C94121C0895BF92CF921F +:1025F000DF92EF92FF920F931F93CF93DF9300D060 +:1026000000D000D0CDB7DEB725E0FC01DE01119689 +:1026100001900D922A95E1F7FC0140813181028100 +:10262000258122952F7063817481672B09F4E5C29F +:102630003F3F19F44F3F09F4E0C27C0149833A83DC +:1026400089819A812E830E94141B182FB92E0E9413 +:10265000131B0E94DA19EB2DE295EF70F0E0E159BF +:10266000FF4F2E810C94ED248B2D807F9B2D9F702E +:10267000F92E882319F0F29480EFF822002349F014 +:10268000FF2009F467C28F2D0E94EB1B0E94121CD1 +:1026900061C2812F0E949912FF2009F4AEC28F2DD2 +:1026A0000E94F11B26960FB6F894DEBF0FBECDBF79 +:1026B000DF91CF911F910F91FF90EF90DF90CF901E +:1026C000BF900C94121C3B2D307F8B2D8F703032BD +:1026D00011F08295807F112319F0113021F12CC067 +:1026E0000023B9F0222309F4A0C1213009F09DC1D3 +:1026F00026960FB6F894DEBF0FBECDBFDF91CF9107 +:102700001F910F91FF90EF90DF90CF90BF900C94AE +:10271000FB1B222319F0213009F46FC28E830E9423 +:10272000FE1B8E8196C1002321F0223008F065C285 +:102730007CC1211162C28DC1002321F0222309F442 +:1027400074C108C2222309F484C119C22B2D269515 +:102750002695237030E02115310521F02130310517 +:10276000D1F04BC2002321F0812F9B2D937002C02A +:1027700080E090E026960FB6F894DEBF0FBECDBF86 +:10278000DF91CF911F910F91FF90EF90DF90CF904D +:10279000BF900C94CB10002321F0812F9B2D9370C0 +:1027A00002C080E090E026960FB6F894DEBF0FBE20 +:1027B000CDBFDF91CF911F910F91FF90EF90DF90F0 +:1027C000CF90BF900C94E110812F002319F00E944C +:1027D0007F1F02C00E94E71F26960FB6F894DEBF47 +:1027E0000FBECDBFDF91CF911F910F91FF90EF9062 +:1027F000DF90CF90BF900C946C208B2D837009F0EC +:102800007BC00111FAC1812F829586958770880F50 +:10281000880F912F9F70C92ED12CE12CF12C082EFE +:1028200004C0CC0CDD1CEE1CFF1C0A94D2F714FF74 +:1028300012C04FE050E060E070E004C0440F551F4C +:10284000661F771F8A95D2F7CB01BA016095709504 +:102850008095909503C060E070E0CB012B2D26950C +:1028600026952370422F50E042305105D9F0433075 +:10287000510569F16C297D298E299F294130510527 +:1028800051F126960FB6F894DEBF0FBECDBFDF9193 +:10289000CF911F910F91FF90EF90DF90CF90BF905D +:1028A0000C94011A6C297D298E299F2926960FB632 +:1028B000F894DEBF0FBECDBFDF91CF911F910F9176 +:1028C000FF90EF90DF90CF90BF900C941D1A0E9464 +:1028D000011AC701B60126960FB6F894DEBF0FBEE7 +:1028E000CDBFDF91CF911F910F91FF90EF90DF90BF +:1028F000CF90BF900C94E519002319F08B2D8170B7 +:1029000001C08695882309F478C1812F8295869528 +:102910008770880F880F912F9F70C92ED12CE12CC2 +:10292000F12C082E04C0CC0CDD1CEE1CFF1C0A94FC +:10293000D2F714FF12C04FE050E060E070E004C036 +:10294000440F551F661F771F8A95D2F7CB01BA0136 +:10295000609570958095909503C060E070E0CB0124 +:102960002B2D269526952370422F50E0423051059D +:10297000D9F04330510569F16C297D298E299F29B1 +:102980004130510551F126960FB6F894DEBF0FBEC7 +:10299000CDBFDF91CF911F910F91FF90EF90DF900E +:1029A000CF90BF900C94DB1A6C297D298E299F292A +:1029B00026960FB6F894DEBF0FBECDBFDF91CF9144 +:1029C0001F910F91FF90EF90DF90CF90BF900C94EC +:1029D000F71A0E94DB1AC701B60126960FB6F894C3 +:1029E000DEBF0FBECDBFDF91CF911F910F91FF9042 +:1029F000EF90DF90CF90BF900C94BF1A103FD1F1B1 +:102A000018F4103E50F4A1C0123F09F463C008F45A +:102A10004CC0133F09F473C098C01F708B2D8F7189 +:102A20000023A1F00E94581A812F26960FB6F89421 +:102A3000DEBF0FBECDBFDF91CF911F910F91FF90F1 +:102A4000EF90DF90CF90BF900C94E8120E94791A1B +:102A5000812F26960FB6F894DEBF0FBECDBFDF9153 +:102A6000CF911F910F91FF90EF90DF90CF90BF908B +:102A70000C94EF120023A9F02111BFC08B2D8F7190 +:102A800026960FB6F894DEBF0FBECDBFDF91CF9173 +:102A90001F910F91FF90EF90DF90CF90BF900C941B +:102AA0009E1A223008F0A9C0E9CF0023A9F08B2D8F +:102AB0008F7126960FB6F894DEBF0FBECDBFDF91A3 +:102AC000CF911F910F91FF90EF90DF90CF90BF902B +:102AD0000C94581A002359F38B2D8F7126960FB63C +:102AE000F894DEBF0FBECDBFDF91CF911F910F9144 +:102AF000FF90EF90DF90CF90BF900C94791A002355 +:102B000099F08B2D8F7126960FB6F894DEBF0FBE0D +:102B1000CDBFDF91CF911F910F91FF90EF90DF908C +:102B2000CF90BF900C94431A26960FB6F894DEBF50 +:102B30000FBECDBFDF91CF911F910F91FF90EF900E +:102B4000DF90CF90BF900C94391A0023A9F0222374 +:102B500009F4ADCF812F26960FB6F894DEBF0FBED5 +:102B6000CDBFDF91CF911F910F91FF90EF90DF903C +:102B7000CF90BF900C94D111222309F4ADCF812FB7 +:102B800026960FB6F894DEBF0FBECDBFDF91CF9172 +:102B90001F910F91FF90EF90DF90CF90BF900C941A +:102BA00099124B2D4F70612FC7010E943604269653 +:102BB0000FB6F894DEBF0FBECDBFDF91CF911F914E +:102BC0000F91FF90EF90DF90CF90BF900C945D1924 +:102BD0004B2D4F70612FC70126960FB6F894DEBFBC +:102BE0000FBECDBFDF91CF911F910F91FF90EF905E +:102BF000DF90CF90BF900C944B0826960FB6F894B8 +:102C0000DEBF0FBECDBFDF91CF911F910F91FF901F +:102C1000EF90DF90CF90BF9008950E94F81B0E9424 +:102C2000CD1B0E94121C0E941D210E946C2080E07E +:102C300090E00E94CB1080E090E00C94E1100E94A4 +:102C4000E81B0C940D160E94141B292F22952F703F +:102C500030E02C3031054CF42A3031056CF4225030 +:102C600031092230310588F407C02C30310549F094 +:102C70002F30310531F009C0803E48F0803F29F403 +:102C800006C093FB882780F9089580E0089581E0CD +:102C90000895CF93DF9300D000D01F92CDB7DEB759 +:102CA0000F900F900F900F900F90DF91CF9108959C +:102CB000CF93DF9300D000D000D0CDB7DEB72696FB +:102CC0000FB6F894DEBF0FBECDBFDF91CF91089550 +:102CD0001F93CF93DF93C0917B0116E080917C011D +:102CE000C81799F0D0E01C9FF0011D9FF00D112432 +:102CF000E358FE4F408151816281738184819581C7 +:102D00000E9458162196C770E9CFDF91CF911F918D +:102D100008954091AD015091AE016091AF01709165 +:102D2000B0018091B1019091B2010C94581680913C +:102D3000B20182958F7009F054C08091AF01882351 +:102D400009F44FC080917B01A0917C016091AD019D +:102D50007091AE014091B0015091B101B6E08A1777 +:102D600009F43FC090E041155105C1F17F3F11F4D6 +:102D70006F3FA1F1B89FF001B99FF00D1124E35806 +:102D8000FE4F218172132AC02081621327C0228145 +:102D9000211124C0238134812417350710F42150D8 +:102DA0003109241B350B283C3105C0F42091B201B8 +:102DB0002F7020612093B20126E0289FF001299F07 +:102DC000F00D1124EE57FE4F80818F70806180835B +:102DD0008DEA91E00E94F6120C94681601968770B5 +:102DE000BECF0895CF92DF92EF92FF920F931F9381 +:102DF000CF93DF93CDB7DEB762970FB6F894DEBFFF +:102E00000FBECDBF8C0185E0F801DE011D9601905B +:102E10000D928A95E1F7D8014C9111965C9111972A +:102E200012966C9112971396CD90DC901497309176 +:102E3000AD017091AE018091B0019091B101009708 +:102E400009F46BC17F3F19F43F3F09F466C1E0907C +:102E5000AF01EE2009F4C0C02091B201C816D90616 +:102E600028F0F601E81BF90BCF0104C0809590957E +:102E70008C0D9D1DFF24F394883C910578F0F12C76 +:102E8000207F09F0C6C07C2DD98AC88A89890E9412 +:102E900049168DEA91E00E94F612B1C0822F807F20 +:102EA00009F046C0751314C0341312C0611110C06C +:102EB0002F7020612093B2010E9489168DEA91E063 +:102EC0000E94F6128091B201D80115968C932EC003 +:102ED000CD2819F15F3F11F44F3FF9F0F62E611143 +:102EE0001CC080917B0120917C0136E0821709F49F +:102EF0005AC090E0389FF001399FF00D1124E3583B +:102F0000FE4F7181571306C07081471303C0728151 +:102F1000711103C001968770E9CFF62E662309F47C +:102F200018C18091B20181608093B201F12C11C16E +:102F3000751308C0341306C0611104C08091B2013A +:102F4000D801C3C04D875E878D859E856A8B0E94A0 +:102F500023166A898823E1F16623D1F12091B20119 +:102F6000822F82958F7090E0029774F08091AD016E +:102F70009091AE0198878F831986DB86CA862C874D +:102F8000CE0107960E94F61286E0F801ADEAB1E0A4 +:102F900001900D928A95E1F70E9497160E9489167A +:102FA000FF24F394D6C04D875E878D859E850E9451 +:102FB000141B292F22952F7030E0223031050CF0A0 +:102FC000BCC09F7009F0B6C0805E883008F4C1C0F4 +:102FD000C8010E94F612E4CFC816D90608F453C0FF +:102FE000F601E81BF90BCF01883C910508F450C0AD +:102FF000F12C7C2DD98AC88A89890E944916EDEA6C +:10300000F1E086E0DF011D928A95E9F70E948916BA +:10301000A0C0751314C0341312C0611110C0809188 +:10302000B201F8018583C8010E94F61286E0EDEA3C +:10303000F1E0DF011D928A95E9F7FE2C8AC04D87E9 +:103040005E878D859E856A8B0E9423166A898823F8 +:1030500009F4BECF662309F4BBCF2091B201822FC1 +:1030600082958F7090E002970CF48ECF8091AD0125 +:103070009091AE019A8389831B82DD82CC822E835C +:10308000CE0101967FCF809590958C0D9D1DACCF84 +:10309000F62E662309F49CCF75132EC034132CC072 +:1030A0002091B20120FD1FC0822F82958F70D9F030 +:1030B000D80115962C9315978F3049F08F5F982F74 +:1030C0009295907F822F8F70892B15968C93C801D3 +:1030D0000E94F61286E0F801ADEAB1E001900D928F +:1030E0008A95E1F793CF86E0F801ADEAB1E001906F +:1030F0000D928A95E1F72DC04D875E878D859E855F +:103100000E942316811140CF8091B201816080938B +:10311000B201C8010E94F6121CC0662309F458CF00 +:103120004D875E878D859E850E942316882309F42E +:103130004FCF2ACF811148CF0CC0243031050CF07D +:1031400047CF9F7009F440CFF8019581907F09F037 +:103150003BCF8F2D62960FB6F894DEBF0FBECDBF6A +:10316000DF91CF911F910F91FF90EF90DF90CF9063 +:1031700008951F93CF93DF93CDB7DEB72C970FB68B +:10318000F894DEBF0FBECDBF4F83588769877A871B +:103190008B879C87CE0107960E94F216882369F0E0 +:1031A0008F8198852A853B85232BF1F19F3F09F07C +:1031B00063C08F3F09F060C037C086E0FE013796DC +:1031C000DE01119601900D928A95E1F76F81788565 +:1031D000EA85FB85309741F17F3F11F46F3F21F184 +:1031E00020917C0130E0C9010196877099274091B8 +:1031F0007B0150E08417950709F447C069837A83FF +:10320000FD83EC8396E0929FD001939FB00D112433 +:10321000A358BE4FFE01319601900D929A95E1F7A9 +:1032200080937C010E94681616E080917B0190914A +:103230007C018917C1F1189FC001112483589E4F4A +:103240000E94F216882379F1E0917B011E9FF00124 +:103250001124E358FE4F4081518162817381848142 +:1032600095810E94581680917B0190E001968770AD +:10327000992780937B01D9CF4F81588569857A85BD +:103280008B859C850E945816CFCF0E941F161092E6 +:103290007C0110927B01EDEAF1E086E0DF011D92F6 +:1032A0008A95E9F7C1CF2C960FB6F894DEBF0FBE12 +:1032B000CDBFDF91CF911F910895EF92FF920F93B1 +:1032C0001F93CF93DF938C01892B09F46CC0F12CF1 +:1032D000EE24E394E8012196F8018491843740F4C8 +:1032E000843008F051C0813081F0823019F15BC028 +:1032F000853709F444C0A8F19CE7980F903708F08F +:1033000052C08F770E94991241C00E5F1F4FFE017D +:10331000C49180E28C0F883048F4C7708E2D01C0B4 +:10332000880FCA95EAF70E94EB1B14C08C2F0E94ED +:10333000D1112DC00E5F1F4FFE01C49180E28C0F92 +:10334000883058F4C7708E2D01C0880FCA95EAF7EF +:103350000E94F11B0E94121C1AC08C2F0E9499120D +:1033600016C00E5F1F4FFE01C491CC2381F08FE980 +:103370009FE00197F1F700C00000C150F6CF0E5F4B +:103380001F4FFE01F49003C00E94D1118E018F2DBA +:10339000882309F49FCFEFE9FFE03197F1F700C0F0 +:1033A00000008150F5CFDF91CF911F910F91FF90D9 +:1033B000EF90089508956093B7017093B8018093DA +:1033C000B9019093BA010C940D160F931F930091BD +:1033D000B7011091B8012091B9013091BA01DC0117 +:1033E000CB01802B912BA22BB32B8093B701909311 +:1033F000B801A093B901B093BA011F910F910C9439 +:103400000D160F931F930091B7011091B8012091F1 +:10341000B9013091BA01DC01CB0180239123A223B1 +:10342000B3238093B7019093B801A093B901B093EF +:10343000BA011F910F910C940D160F931F930091D9 +:10344000B7011091B8012091B9013091BA01DC01A6 +:10345000CB0180279127A227B3278093B7019093B0 +:10346000B801A093B901B093BA011F910F910C94C8 +:103470000D161092B3011092B4011092B501109282 +:10348000B6010C940D1641E050E060E070E004C01D +:10349000440F551F661F771F8A95D2F74093B301DB +:1034A0005093B4016093B5017093B6010C940D165E +:1034B00041E050E060E070E004C0440F551F661F1B +:1034C000771F8A95D2F78091B3019091B401A091B2 +:1034D000B501B091B601482B592B6A2B7B2B409339 +:1034E000B3015093B4016093B5017093B6010C948D +:1034F0000D1641E050E060E070E004C0440F551F3D +:10350000661F771F8A95D2F7409550956095709504 +:103510008091B3019091B401A091B501B091B60131 +:10352000482359236A237B234093B3015093B4016A +:103530006093B5017093B6010C940D1641E050E014 +:1035400060E070E004C0440F551F661F771F8A9526 +:10355000D2F78091B3019091B401A091B501B091DF +:10356000B601482759276A277B274093B301509318 +:10357000B4016093B5017093B6010C940D160F93CE +:103580001F930091B3011091B4012091B5013091C6 +:10359000B601DC01CB01802B912BA22BB32B8093A6 +:1035A000B3019093B401A093B501B093B6011F91FC +:1035B0000F910C940D160F931F930091B30110916E +:1035C000B4012091B5013091B601DC01CB0180231B +:1035D0009123A223B3238093B3019093B401A093CA +:1035E000B501B093B6011F910F910C940D160F9376 +:1035F0001F930091B3011091B4012091B501309156 +:10360000B601DC01CB0180279127A227B327809345 +:10361000B3019093B401A093B501B093B6011F918B +:103620000F910C940D160895CF92DF92EF92FF92B6 +:103630000F931F93CF93DF938C01C090B701D0906D +:10364000B801E090B901F090BA014091B3015091F6 +:10365000B4016091B5017091B601C42AD52AE62A59 +:10366000F72ACFE1D0E0D701C6010C2E04C0B695F1 +:10367000A795979587950A94D2F780FF07C0B80160 +:103680008C2F0E946E088130910531F4219758F7F4 +:10369000B80180E00E946E08DF91CF911F910F91D9 +:1036A000FF90EF90DF90CF90089590910C019923B7 +:1036B00021F090910D01911109C020910E013091DE +:1036C0000F01F90132969FEF40E01FC0982F9695A9 +:1036D000969596959F3050F5E0910E01F0910F016F +:1036E000E90FF11D877021E030E0A90102C0440F0D +:1036F000551F8A95E2F7CA019181892B818308952C +:103700009F3F39F04F5F4E3041F051915813F8CF41 +:103710000DC05111F7CF942FF5CF9F3F39F0F9012C +:10372000E90FF11D97FDFA95828308950895909110 +:103730000C01992321F090910D01911109C0209164 +:103740000E0130910F01F9013296205F3F4F1FC0EB +:10375000982F9695969596959F30F0F4E0910E01EE +:10376000F0910F01E90FF11D877021E030E0A90110 +:1037700002C0440F551F8A95E2F7CA0180959181D6 +:103780008923818308953196E217F30729F0908108 +:103790009813F9CF1082F7CF089581E090E0E0917F +:1037A0000E01F0910F01E80FF91F10820196803190 +:1037B0009105A9F708959091CD01892B8093CD01B2 +:1037C000089580959091CD0189238093CD0108952E +:1037D0001092CD0108959091CC01892B8093CC015A +:1037E000089580959091CC0189238093CC01089510 +:1037F0001092CC0108958093BB0108951092BB01F3 +:10380000089580910E0190910F01FC0131969C0169 +:10381000205F3F4F80E0919191118F5FE217F30796 +:10382000D1F70895E0910E01F0910F018091CD0143 +:103830008083E0910E01F0910F0190818091CC0185 +:10384000892B80838091BB01882361F0E0910E0178 +:10385000F0910F019081892B80830E94011C8111BE +:103860001092BB0180910E0190910F010C94B51044 +:10387000CF92DF92EF92FF926C01EE24FF24C114ED +:10388000D104E104F10421F0C701B60120E101C037 +:1038900020E0C72ED82EE92EFF24C114D104E10464 +:1038A000F10419F0285FC701B6016B017C0154E0F7 +:1038B000F694E794D794C7945A95D1F7C114D104DC +:1038C000E104F10419F02C5FC701B6016B017C0122 +:1038D00042E0F694E794D794C7944A95D1F7C1147F +:1038E000D104E104F10419F02E5FC701B601DC0137 +:1038F000CB01B695A79597958795892B8A2B8B2B0E +:1039000009F02F5F822FFF90EF90DF90CF90089506 +:103910008091E701843009F11092CF0120E488E121 +:1039200090E00FB6F894A895809360000FBE2093A6 +:10393000600083B7817F846083BF83B7816083BF6A +:103940007894889583B78E7F83BF88E10FB6F8940B +:1039500080936000109260000FBE0895089508954E +:10396000CF930E94AE1C0E9497060E94AF1CC0E03D +:103970008C2F0E948507811104C0CF5FCE30C1F724 +:1039800001C081E0CF9108950E941F160E94A910E6 +:103990000C94A20982E084BD93E095BD9AEF97BD97 +:1039A00080936E0008952FB7F8948091D001909184 +:1039B000D101A091D201B091D3012FBF0895CF9230 +:1039C000DF92EF92FF920F931F932FB7F8944091DD +:1039D000D0015091D1016091D2017091D3012FBFDC +:1039E0006A017B01EE24FF248C0120E030E0C01648 +:1039F000D106E206F30610F4415051099A01281B42 +:103A0000390BC9011F910F91FF90EF90DF90CF907C +:103A100008951F920F920FB60F9211248F939F93C8 +:103A2000AF93BF938091D0019091D101A091D20129 +:103A3000B091D3010196A11DB11D8093D001909347 +:103A4000D101A093D201B093D301BF91AF919F91C7 +:103A50008F910F900FBE0F901F9018950E94A60D8A +:103A6000F8942FEF87EA91E6215080409040E1F7EB +:103A700000C0000087E090EBDC018093F0019093A0 +:103A8000F101A093F201B093F3019CE088E10FB63D +:103A9000F894A895809360000FBE90936000FFCFCC +:103AA000EF92FF920F931F93CF93DF93D82FC0E035 +:103AB0008C2F0E94850700E010E0E82EF12CC70152 +:103AC000002E02C0959587950A94E2F780FD06C006 +:103AD0000F5F1F4F0630110591F709C0602F7C2F33 +:103AE00080E00E944C08D813F3CF81E004C0CF5F80 +:103AF000CE30F1F680E0DF91CF911F910F91FF90D2 +:103B0000EF900895CF93C82F8CE20E94501D882318 +:103B100021F08C2FCF910C94501D80E0CF9108950F +:103B2000CF930E94D71E811102C00E94BD1EC5E620 +:103B3000C15049F00E9497068FE39CE90197F1F785 +:103B400000C00000F5CF89E20E94821D811113C1DF +:103B50008AE20E94821D81110E94BD1E85E00E94A2 +:103B6000821D81110E942E1D0E94E21E8093CE01B3 +:103B700087E00E94821D8823A9F18BE10E94821DAB +:103B8000882351F08091CE0181FB222720F991E01A +:103B9000922790FB81F90EC08EE00E94821D88233F +:103BA00061F08091CE0182FB222720F991E09227DB +:103BB00090FB82F98093CE0115C080E10E94821DA6 +:103BC0009091CE01882341F093FB222720F981E0D8 +:103BD000822780FB93F904C0892F809580FB90F9A0 +:103BE0009093CE018091CE010E94E61E0E94F41EA9 +:103BF0008093E10180EE0E94821D882341F0809134 +:103C0000E101982F909590FB80F98093E10189E381 +:103C10000E94821D882359F08091E10181FB2227B7 +:103C200020F991E0922790FB81F98093E10182EEE7 +:103C30000E94821D882359F08091E10182FB222796 +:103C400020F991E0922790FB82F98093E10186EEC2 +:103C50000E94821D882359F08091E10183FB222775 +:103C600020F991E0922790FB83F98093E10183EEA4 +:103C70000E94821D882359F08091E10184FB222754 +:103C800020F991E0922790FB84F98093E10185E38C +:103C90000E94821D882359F08091E10185FB222733 +:103CA00020F991E0922790FB85F98093E10181E36F +:103CB0000E94821D882359F08091E10186FB222712 +:103CC00020F991E0922790FB86F98093E10181E150 +:103CD0000E94821D882359F08091E10187FB2227F1 +:103CE00020F991E0922790FB87F98093E101809180 +:103CF000E1010E94F81E8091E10187FB882780F98D +:103D000080930D0187E20E94821DC82F8EE10E94E0 +:103D1000821D8111C2608FE10E94821D8111C460E9 +:103D200080E20E94821D8111C86081E20E94821D92 +:103D30008111C06182E20E94821D8111C06283E212 +:103D40000E94821D8111C06484E20E94821D88232A +:103D500011F0C06802C0CC2329F08C2F0E94EF1E06 +:103D60006C2F03C00E94EB1E682F70E080E090E093 +:103D7000CF910C94DB19CF9108956DEE7EEF80E02A +:103D800090E00E94232560E082E090E00E941525EB +:103D900060E083E090E00E94152560E084E090E020 +:103DA0000E94152560E085E090E00C94152580E0E8 +:103DB00090E00E940F2521E08D3E9E4F09F020E00B +:103DC000822F089582E090E00C940725682F82E00E +:103DD00090E00C94152583E090E00C940725682F63 +:103DE00083E090E00C94152584E090E00C94072586 +:103DF000682F84E090E00C9415258091D60180FF17 +:103E00000BC06091130185E0689FB0011124759586 +:103E10006795759567952BC081FF09C06091130167 +:103E200085E0689FB00111247595679520C082FFD9 +:103E300007C06091130185E0689FB001112417C08D +:103E40009091D7019923D1F060911201961788F7CC +:103E50002091130185E0289F90011124929FA001D9 +:103E6000939F500D112470E0CA010E94D92460383C +:103E7000710540F46115710539F002C065E070E02C +:103E8000862F08958FE7089581E008958091D601E7 +:103E900080FF08C06091110170E075956795759578 +:103EA000679521C081FF06C06091110170E0759592 +:103EB000679519C082FF04C06091110170E010C0C5 +:103EC0009091D7019923C1F0609110019617A0F746 +:103ED00080911101899FC001112470E00E94D924B2 +:103EE0006038710528F46115710521F0862F089559 +:103EF0008FE7089581E0089561E070E0F4CF803F9E +:103F000021F40E94FD1E819504C0813F29F40E9486 +:103F1000FD1E8093DA010895823F21F40E94FD1E68 +:103F2000819504C0833F29F40E94FD1E8093D9012E +:103F30000895893F19F40E94461F05C08A3F31F455 +:103F40000E94461F81958093DB0108958B3F21F4E9 +:103F50000E94461F819504C08C3F29F40E94461F91 +:103F60008093DC010895843F21F48091D801816021 +:103F700017C0853F21F48091D801826011C0863F2F +:103F800021F48091D80184600BC0873F21F4809197 +:103F9000D801886005C0883F31F48091D8018061E4 +:103FA0008093D80108958D3F21F48091D6018160DE +:103FB0000BC08E3F21F48091D601826005C08F3FF7 +:103FC00029F48091D60184608093D6010895803FC2 +:103FD00039F48091DA0187FF6CC01092DA0169C070 +:103FE000813F29F48091DA011816BCF362C09091E8 +:103FF000D901823F29F497FF5CC01092D90159C0C2 +:10400000833F19F41916CCF354C0893F41F48091D1 +:10401000DB0118160CF04DC01092DB014AC08A3F3C +:1040200029F48091DB0187FF44C0F6CF8B3F39F440 +:104030008091DC0187FF3DC01092DC013AC08C3FCB +:1040400029F48091DC011816BCF333C0843F21F4BD +:104050008091D8018E7F17C0853F21F48091D801CF +:104060008D7F11C0863F21F48091D8018B7F0BC0DA +:10407000873F21F48091D801877F05C0883F31F4C4 +:104080008091D8018F7E8093D80113C08D3F21F499 +:104090008091D6018E7F0BC08E3F21F48091D60196 +:1040A0008D7F05C08F3F29F48091D6018B7F80934F +:1040B000D6018091D90181110EC08091DA01811160 +:1040C0000AC08091DB01811106C08091DC01811161 +:1040D00002C01092D701089588ED91E00E94C010AF +:1040E0000E94D31C9093D5018093D40108951F930F +:1040F000CF93DF938091D4019091D5010E94DF1C72 +:10410000AC019091D701992321F02091140130E066 +:1041100006C0209115018AE0289F900111244217C2 +:10412000530708F486C08091D901C091DA01D0917B +:10413000DB011091DC01811107C0C11176C0D111E2 +:1041400074C0111172C075C09F3F19F09F5F9093AA +:10415000D701181624F40E94FD1E8093D901809186 +:10416000D90187FF05C00E94FD1E81958093D9016A +:104170001C1624F40E94FD1E8093DA018091DA015E +:1041800087FF05C00E94FD1E81958093DA01609132 +:10419000D901662339F1C091DA01CC2319F17727CF +:1041A00067FD7095872F972F0E94EA2323E333E35F +:1041B00043E35FE30E944E240E94B7236093D9013A +:1041C0006C2F772767FD7095872F972F0E94EA2322 +:1041D00023E333E343E35FE30E944E240E94B723CB +:1041E0006093DA011D1624F40E94461F8093DB01C0 +:1041F0008091DB0187FF05C00E94461F8195809357 +:10420000DB01111624F40E94461F8093DC0180918B +:10421000DC0187FF05C00E94461F81958093DC0169 +:10422000DF91CF911F910C946C209F3F09F08ECFAE +:1042300096CFDF91CF911F910895E8EDF1E085E0F1 +:10424000DF011D928A95E9F71092D7011092D601ED +:104250000895833081F128F4813059F08230D1F013 +:104260000895853009F449C0B8F1863009F456C084 +:10427000089580911501262F30E0280F311D2F3F22 +:10428000310524F4680F6093150108958FEF809332 +:104290001501089580911401262F30E0280F311D5B +:1042A0002F3F310524F4680F6093140108958FEFB8 +:1042B00080931401089580911301262F30E0280F78 +:1042C000311D2F3F310524F4680F609313010895C9 +:1042D0008FEF80931301089580911201262F30E013 +:1042E000280F311D2F3F310524F4680F6093120110 +:1042F00008958FEF80931201089580911101262F68 +:1043000030E0280F311D2F3F310524F4680F6093F2 +:10431000110108958FEF809311010895809110018C +:10432000262F30E0280F311D2F3F310524F4680F70 +:104330006093100108958FEF8093100108958330EA +:1043400011F128F4813049F0823091F008958530E0 +:1043500081F120F18630C1F108958091150168172F +:1043600020F4861B8093150108951092150108957D +:1043700080911401681720F4861B8093140108951E +:1043800010921401089580911301681720F4861B80 +:1043900080931301089510921301089580911201E2 +:1043A000681720F4861B8093120108951092120161 +:1043B000089580911101681720F4861B80931101E4 +:1043C000089510921101089580911001681720F44A +:1043D000861B8093100108951092100108950F9389 +:1043E0001F938D3109F46BC008F03FC08E3009F483 +:1043F0007DC0C0F4873009F46EC068F4863009F0DF +:10440000AFC08091CE01817F8E7F8093CE0181E00D +:104410008093DE01A6C0883009F458C08B3009F4BF +:104420009BC09EC0863109F497C078F4803109F4AE +:1044300070C0813109F094C00E941F1690910D0147 +:1044400081E0892780930D0187C0893109F484C0F8 +:104450008B3109F085C08091CE0181FB222720F9A4 +:1044600091E0922790FB81F94AC0853309F45BC043 +:1044700048F4873209F457C008F45AC0893209F465 +:1044800052C06EC0833438F48A3308F067C0883372 +:1044900009F462C065C0833409F445C0883409F06A +:1044A0005FC00E941F160FEF13ED20E30150104074 +:1044B0002040E1F700C000000E942E1D4DC00E9468 +:1044C00071230E94A9100E94A20946C00E94E21E08 +:1044D0000E94F41E41C09091CE01892F817090FFFF +:1044E00012C0917F9E7F9093CE013BC08091CE0100 +:1044F00082FB222720F991E0922790FB82F980939A +:10450000CE01992349F18091CE0181608093CE0143 +:1045100023C08091CE0183FB222720F991E09227CE +:1045200090FB83F9ECCF61E070E080E090E010C098 +:104530008D5141E050E060E070E08A019B0104C0D1 +:10454000000F111F221F331F8A95D2F7C901B8012E +:104550000E94DB190E941F1681E003C08953E9CF36 +:1045600080E01F910F91089580E0089580E0089504 +:10457000CF93C82F8091DE01813079F018F082301E +:10458000E9F187C0E0910E01F0910F018081813146 +:1045900069F0823209F07FC009C0E0910E01F0910C +:1045A0000F018081813111F0823261F48C2F0E94E1 +:1045B000B422811104C08C2F0E94EF211DC081E024 +:1045C00090E01AC08C2F0E94B622811114C0C43111 +:1045D00079F048F4CB3079F0C03109F060C082E066 +:1045E0008093DE0108C0C93219F0C83321F057C0EA +:1045F0001092DE0154C081E0817053C0C93289F14C +:1046000018F5C43171F1A8F4C73009F046C08AE04A +:104610008093150194E19093140193E0909313011A +:104620008093120188E08093110188E28093100149 +:1046300034C0CE51C63088F5EC2FF0E0E65DFE4F79 +:1046400080818093DD0129C0CE34E9F020F4CB34A1 +:1046500021F56AE013C0C13579F0C235F1F461E0AB +:104660000DC08091DD01882319F01092DD0115C085 +:1046700081E08093DE0115C061E006C08091DD011C +:104680000E9429210AC06AE08091DD010E949F21D9 +:1046900004C01092DE0180E004C081E002C080E02E +:1046A000ABCFCF910895E1E8F0E08081886080830E +:1046B0008081816080838FB7F89493E09093890024 +:1046C00090ED909388008FBF0895EFE6F0E0808131 +:1046D000826080830895EFE6F0E080818D7F8083A3 +:1046E0000895EFE6F0E0908182E0892780830895C5 +:1046F0001F920F920FB60F9211242F933F934F9357 +:104700005F936F937F938F939F93AF93BF93EF9339 +:10471000FF938091DF019091E00101969093E00179 +:104720008093DF01811103C082E00E94A209E09121 +:10473000E001E695E695F0E0E156F84FE4918091CE +:10474000DF018E1303C080E00E94A209FF91EF9168 +:10475000BF91AF919F918F917F916F915F914F9199 +:104760003F912F910F900FBE0F901F90189504D07E +:104770006894B1118DC0089570D088F09F5790F063 +:10478000B92F9927B751A0F0D1F0660F771F881F76 +:10479000991F1AF0BA95C9F712C0B13081F077D0DD +:1047A000B1E0089574C0672F782F8827B85F39F07B +:1047B000B93FCCF3869577956795B395D9F73EF4D5 +:1047C00090958095709561957F4F8F4F9F4F08957D +:1047D000E89409C097FB3EF490958095709561959B +:1047E0007F4F8F4F9F4F9923A9F0F92F96E9BB2751 +:1047F0009395F695879577956795B795F111F8CFCD +:10480000FAF4BB0F11F460FF1BC06F5F7F4F8F4F37 +:104810009F4F16C0882311F096E911C0772321F02D +:104820009EE8872F762F05C0662371F096E8862FC5 +:1048300070E060E02AF09A95660F771F881FDAF71C +:10484000880F9695879597F9089557FD9058440FCE +:10485000551F59F05F3F71F04795880F97FB991FDF +:1048600061F09F3F79F0879508951216130614069C +:10487000551FF2CF4695F1DF08C016161706180629 +:10488000991FF1CF86957105610508940895E89404 +:10489000BB2766277727CB0197F908950BD078C0FF +:1048A00069D028F06ED018F0952309F05AC05FC087 +:1048B0001124EECFCADFA0F3959FD1F3950F50E0FE +:1048C000551F629FF001729FBB27F00DB11D639FC2 +:1048D000AA27F00DB11DAA1F649F6627B00DA11D68 +:1048E000661F829F2227B00DA11D621F739FB00D0E +:1048F000A11D621F839FA00D611D221F749F33277E +:10490000A00D611D231F849F600D211D822F762F16 +:104910006A2F11249F5750408AF0E1F088234AF013 +:10492000EE0FFF1FBB1F661F771F881F915050405F +:10493000A9F79E3F510570F014C0AACF5F3FECF37A +:10494000983EDCF3869577956795B795F795E7954B +:104950009F5FC1F7FE2B880F911D9695879597F95C +:10496000089597F99F6780E870E060E008959FEFF1 +:1049700080EC089500240A941616170618060906F6 +:10498000089500240A9412161306140605060895C5 +:10499000092E0394000C11F4882352F0BB0F40F44D +:1049A000BF2B11F460FF04C06F5F7F4F8F4F9F4F8D +:1049B000089597FB072E16F4009407D077FD09D0D1 +:1049C0000E94F32407FC05D03EF4909581959F4FFB +:1049D0000895709561957F4F0895EE0FFF1F059024 +:1049E000F491E02D0994AA1BBB1B51E107C0AA1F3B +:1049F000BB1FA617B70710F0A61BB70B881F991F80 +:104A00005A95A9F780959095BC01CD010895F99923 +:104A1000FECF92BD81BDF89A992780B50895A8E18F +:104A2000B0E042E050E00C942A25262FF999FECF01 +:104A30001FBA92BD81BD20BD0FB6F894FA9AF99ABB +:104A40000FBE019608950E941525272F0C94162558 +:104A5000DC01CB01FC01F999FECF06C0F2BDE1BD3E +:104A6000F89A319600B40D9241505040B8F708952D +:044A7000F894FFCFE8 +:104A74002002A409320A0F0ADB09A7090101BC01BB +:104A840028080A03140A3F4D363960071307DD0668 +:104A9400A4063706500669068206010203040506C9 +:044AA40007080900F6 +:00000001FF diff --git a/keyboard/ergodox_ez/keymaps/osx_de/osx_de_highres.png b/keyboard/ergodox_ez/keymaps/osx_de/osx_de_highres.png new file mode 100644 index 0000000000..8e709ee260 Binary files /dev/null and b/keyboard/ergodox_ez/keymaps/osx_de/osx_de_highres.png differ diff --git a/keyboard/ergodox_ez/keymaps/keymap_osx_de_README.md b/keyboard/ergodox_ez/keymaps/osx_de/readme.md similarity index 80% rename from keyboard/ergodox_ez/keymaps/keymap_osx_de_README.md rename to keyboard/ergodox_ez/keymaps/osx_de/readme.md index 6b17d75d54..44d7a334e9 100644 --- a/keyboard/ergodox_ez/keymaps/keymap_osx_de_README.md +++ b/keyboard/ergodox_ez/keymaps/osx_de/readme.md @@ -4,13 +4,14 @@ Dies ist nur ein kleiner Tweak der bestehenden firmware für das ErgoDox-EZ-Keyb - Die Umlaute sollten an einigermassen sinnvollen Plätzen liegen - der Umstieg sollte dadurch erleichtert werden, dass einige Tasten an ihren "normalen" Platz zurückgewandert sind. Z.B. ESC, Tab,... -- die Leertaste lässt sich jetzt mit beiden Daumen bedienen +- die Leertaste ist jetzt auf der rechten seite, neben Enter. Dafür hat der linke Daumen nun Backspace und Delete. - die CMD- und Alt-Tasten sind in der Mitte einfach erreichbar. -- es gibt eine neue Layer für die Nutzung der Cursortasten, dort sind sie etwas einfacher angeordnet und sind z.B. auch für Spiele nutzbar +- es gibt eine neue Layer die für Spiele genutzt werden kann (egosooter wie Counter Strike). Dort liegen die wichtigsten Tasten auf der linken Seite, im Daumenblock z.B. space und ctrl sowie die F-Tasten 1-4. Diese Layer ist über die Symbollayer erreichbar. - Die Symbollayer wurde dahingehend angepasst, dass die klammern, etc nun auf beiden hälften der Tastatur zu finden sind - der Zehnerblock wurde in eine eigene Layer umgezogen - die Meh und Hyper-Tasten wurden in die Daumenblöcke umgezogen + ------------------------------ # ErgoDox EZ for OSX diff --git a/keyboard/ergodox_ez/keymaps/keymap_osx_de_adnw_koy.c b/keyboard/ergodox_ez/keymaps/osx_de_adnw_koy/keymap.c similarity index 98% rename from keyboard/ergodox_ez/keymaps/keymap_osx_de_adnw_koy.c rename to keyboard/ergodox_ez/keymaps/osx_de_adnw_koy/keymap.c index 7e9defafa7..70ac8f01f2 100644 --- a/keyboard/ergodox_ez/keymaps/keymap_osx_de_adnw_koy.c +++ b/keyboard/ergodox_ez/keymaps/osx_de_adnw_koy/keymap.c @@ -15,49 +15,50 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -/* Keymap 0: Basic layer - * - * ,--------------------------------------------------. ,--------------------------------------------------. - * | ESC | 1 | 2 | 3 | 4 | 5 |CMD-V | |CMD-C | 6 | 7 | 8 | 9 | 0 | ß | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | TAB | Q | W | E | R | T | CMD | | CMD | Z | U | I | O | P | ü | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | ADNW | A | S | D | F | G |------| |------| H | J | K | L | ö | ä/L2 | - * |--------+------+------+------+------+------| LALT | | RALT |------+------+------+------+------+--------| - * | LShift |Y/Ctrl| X | C | V | B | | | | N | M | , | . |-/Ctrl| RShift | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * |event.pressed) { + register_code(KC_RSFT); + } else { + unregister_code(KC_RSFT); + } + break; + } + return MACRO_NONE; +}; + +// Runs just one time when the keyboard initializes. +void matrix_init_user(void) { + +}; + +// Runs constantly in the background, in a loop. +void matrix_scan_user(void) { + + uint8_t layer = biton32(layer_state); + + ergodox_board_led_off(); + ergodox_right_led_1_off(); + ergodox_right_led_2_off(); + ergodox_right_led_3_off(); + switch (layer) { + // TODO: Make this relevant to the ErgoDox EZ. + case 1: + ergodox_right_led_1_on(); + break; + case 2: + ergodox_right_led_2_on(); + break; + default: + // none + break; + } + +}; diff --git a/keyboard/ergodox_ez/keymaps/plover/plover.hex b/keyboard/ergodox_ez/keymaps/plover/plover.hex new file mode 100644 index 0000000000..d63cbb8fab --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/plover/plover.hex @@ -0,0 +1,1131 @@ +:100000000C94B9020C9400030C9400030C940003AC +:100010000C9400030C9400030C9400030C94000354 +:100020000C9400030C9400030C94170C0C94E90C32 +:100030000C9400030C9400030C9400030C94000334 +:100040000C9400030C945D210C9400030C940003A9 +:100050000C9400030C94EF1A0C9400030C9400030E +:100060000C9400030C9400030C9400030C94000304 +:100070000C9400030C9400030C9400030C940003F4 +:100080000C9400030C9400030C9400030C940003E4 +:100090000C9400030C9400030C9400030C940003D4 +:1000A0000C9400030C9400030C940003560D780D7F +:1000B0006B0E780D6B0EBD0DE00D6B0E350E480E00 +:1000C0003211321161116111A411DE11EB13EB1326 +:1000D000F711EB13EC12EC12BF13EB13EB13D61367 +:1000E0000000F0A12E002B002900E1003581000066 +:1000F0001E00140004001D713400E2001F001A00ED +:1001000016001B00E1044C00200008000700060058 +:1001100050002A0021001500090019004F004D0071 +:10012000220017000A00050000006574E300015476 +:100130000000007F00004A004F00035400000077D9 +:100140000000E20023001C000B00110000002971D8 +:10015000240018000D00100052004B0025000C0078 +:100160000E00360051002C00260012000F00370050 +:100170002F002800270013003382387130004E0012 +:100180002D0031003400E500C10000000100010035 +:1001900001000100010000003A001E0220022202BC +:1001A000010001003B001F022102230201000100A7 +:1001B0003C002F0226022F00010001003D0030020A +:1001C00027023000010001003E00310235003502F7 +:1001D000000001000100010000000100000001001A +:1001E0000100010000000100000001003F0052007A +:1001F00051002402000001004000240021001E00E4 +:10020000010001004100250022001F00370001000D +:1002100042002600230020002700010043002502A1 +:100220002E0231002E0001004400450001000100B3 +:1002300001000000010001000100010001000000B8 +:1002400001000100010001000100010001000100A6 +:10025000F20001000100F5000100F000F1000100D2 +:10026000F400F40001000100F3000100F5000100BA +:100270000100010001000100000001000100010077 +:100280000000010000000100010001000000010069 +:100290000000010001000100F20001000000010067 +:1002A00001000100F1000100A900010001000100AE +:1002B000F000AC00AA00B70001000100F300AB00A1 +:1002C000A800B600010001000100010001000100CA +:1002D00001000100AE00010001000000000000006C +:1002E000000000000000000000001E0014000400D8 +:1002F0000000000000001F001A0016000000190096 +:100300000000200008000700000006000000210097 +:1003100015000900000000000000220017000A007C +:100320000000C40000000000000000000000000009 +:100330000100000000000000000001000000230098 +:100340001C000B00000001000000240018000D003C +:1003500001000100000025000C000E00010010004B +:100360000000260012000F0000001100000027000E +:100370001300330000000000010001002F003400D2 +:100380000000000016034500720067006F00440083 +:100390006F007800200045005A0000001603450059 +:1003A000720067006F0044006F0078002000450075 +:1003B0005A0000000403090409026D00040100A0B2 +:1003C000FA090400000103010100092111010001E3 +:1003D000223F000705810308000A09040100010308 +:1003E000010200092111010001224D0007058203CD +:1003F00008000A090402000103000000092111019C +:1004000000012236000705830308000A09040300DF +:100410000103000000092111010001223900070534 +:1004200084031000011201100100000008EDFE0716 +:100430001301000102000105010906A101050719C8 +:10044000E029E715002501950875018102050819C5 +:100450000129059505750191029501750391010525 +:10046000071900297715002501957875018102C0CB +:1004700005010980A101850216010026B7001A01B5 +:10048000002AB700751095018100C0050C0901A173 +:10049000018503160100269C021A01002A9C0275A0 +:1004A0001095018100C005010902A1010901A10007 +:1004B0000509190129051500250195057501810218 +:1004C0009501750381010501093009311581257FE9 +:1004D00095027508810609381581257F95017508F3 +:1004E0008106050C0A38021581257F950175088162 +:1004F00006C0C005010906A101050719E029E71595 +:100500000025019508750181029501750881010595 +:100510000819012905950575019102950175039149 +:10052000010507190029FF150025FF9506750881AB +:1005300000C00000000000000000000000010204F4 +:10054000060A0F17202C3A4A5D71879DB3C7DAE976 +:10055000F5FCFFFCF5E9DAC7B39D87715D4A3A2CDB +:1005600020170F0A0604020100000000000000002E +:10057000000011241FBECFEFDAE0DEBFCDBF04B60E +:1005800003FE27C08091ED019091EE01A091EF0153 +:10059000B091F0018730904BA740B04BD1F410924E +:1005A000ED011092EE011092EF011092F00114BED5 +:1005B00084B7877F84BF0FB6F894A89580916000B8 +:1005C000886180936000109260000FBEE0E0FFE35E +:1005D000099511E0A0E0B1E0ECE5F6E402C0059079 +:1005E0000D92A433B107D9F721E0A4E3B1E001C033 +:1005F0001D92AD3EB207E1F70E945E090C942C23D8 +:100600000C94000061110BC0FC018281882321F051 +:1006100085EE0E94CC0F03C085EE0E94941080E00E +:1006200090E0089508956091B1017091B2018091B8 +:10063000B3019091B4010E941C1A56985E982598B7 +:100640002D9826982E9827982F98813019F082306F +:1006500021F00895259A2D9A0895269A2E9A0895A4 +:100660000C94130356985E9825982D9826982E98EA +:1006700027982F988FEF90E09093890080938800BF +:1006800090938B0080938A0090938D0080938C00D0 +:10069000259A2D9A2FEF80E792E0215080409040DC +:1006A000E1F700C00000269A2E9A2FEF80E792E033 +:1006B000215080409040E1F700C00000279A2F9A17 +:1006C0002FEF80E792E0215080409040E1F700C09A +:1006D000000025982D982FEF80E792E02150804070 +:1006E0009040E1F700C0000026982E982FEF80E799 +:1006F00092E0215080409040E1F700C00000279830 +:100700002F9856985E9825982D9826982E98279879 +:100710002F98089589EA8093800089E08093810072 +:1007200024982C983F988AB18F748AB96E98479A0A +:100730008BB1806B8BB9769A0E9432030C941203B2 +:1007400080E2809300018091340181110EC00E94EB +:10075000EF0381E0809334012FEF83ED90E321508C +:1007600080409040E1F700C0000080E40E94F50363 +:100770008093000181112EC00E941F04809300010C +:10078000811128C00E941F0480930001811122C0A2 +:100790008FE30E941F048093000181111BC00E94FF +:1007A000170480E40E94F50380930001811112C0B8 +:1007B0008CE00E941F048093000181110BC00E94F5 +:1007C0001F0480930001811105C08FE30E941F0464 +:1007D000809300010E9417048091000108951092F7 +:1007E000B9008AE08093B800089594EA9093BC0021 +:1007F0009091BC0097FFFCCF9091B900987F983002 +:1008000021F0903111F081E008958093BB0084E8DD +:100810008093BC008091BC0087FFFCCF8091B90021 +:10082000887F883111F0803471F780E0089584E981 +:100830008093BC008091BC0084FDFCCF0895809320 +:10084000BB0084E88093BC008091BC0087FFFCCF94 +:100850009091B900987F81E0983209F480E0089582 +:1008600084E88093BC008091BC0087FFFCCF80911E +:10087000BB00089580910001811115C080E40E94A1 +:10088000F5038093000181110CC082E10E941F04D6 +:1008900080930001811105C08FEF0E941F04809397 +:1008A00000010E94170484B1807F84B985B1807FE4 +:1008B00085B98AB1837F8AB98BB1837F8BB93E9822 +:1008C000469808950E94A003809300010E943A0474 +:1008D00080B38C7080BB81B3836F81BBE4E4F1E0B3 +:1008E000A6E3B1E011921D9281E0E235F807D1F75D +:1008F0000C948A039F92AF92BF92CF92DF92EF92B5 +:10090000FF920F931F93CF93DF9380910001882371 +:1009100079F0809135018F5F80933501811108C096 +:100920000E94A00380930001811102C00E94320343 +:1009300086E3E82E81E0F82E8701C0E0D0E0BB24FA +:10094000B39492E0A92ECC24C394D12CC730D10506 +:1009500000F580910001811164C080E40E94F503DC +:1009600080930001811112C082E10E941F048093D4 +:10097000000181110BC0C6010C2E01C0880F0A9422 +:10098000EAF780950E941F04809300010E941704DB +:1009900048C0CA30A1F028F4C83059F0C93061F01D +:1009A00005C0CC3089F070F0CD3089F0209A2898BD +:1009B00010C0219A29980DC0229A2A980AC0239A19 +:1009C0002B9807C0529A01C0539A5B9802C03E9A76 +:1009D0004698E0EAEA95F1F78FB181708B25799915 +:1009E00002C032E001C030E0832B7C9902C034E0C9 +:1009F00001C030E0832B7D9902C028E001C020E0D7 +:100A0000822B7E9902C090E101C090E0892B9FB1BA +:100A10009095991F9927991F9295990F907E892BF0 +:100A20000FC08091000181114AC080E40E94F5034B +:100A300080930001882381F1912C0E941704892D55 +:100A4000D8019C91981719F08C93A09201010E94F3 +:100A50003A0421960F5F1F4FCE30D10509F076CFB3 +:100A600080910101882369F18150809301018823DD +:100A700039F0EFE9FFE03197F1F700C0000021C045 +:100A8000E4E4F1E0D7018D917D018193B4E4EB16AC +:100A9000B1E0FB06B9F715C083E10E941F04809303 +:100AA00000018111C9CF81E40E94F5038093000108 +:100AB0008111C2CF0E943004982E9094BECF80E066 +:100AC000BFCF0E94300381E0DF91CF911F910F9142 +:100AD000FF90EF90DF90CF90BF90AF909F900895E0 +:100AE000E82FF0E0EC5BFE4F8081089508958B3B8A +:100AF000910580F4883A910548F5853A9105D8F436 +:100B00008430910508F0B2C0019709F06EC081E011 +:100B100090E00895803E910508F467C0883E9105F5 +:100B200008F4A4C09C01205F31092031310508F090 +:100B30005CC090650895853A910509F459C0863ADC +:100B4000910509F058C082E890E40895883A91052B +:100B500009F454C0893A910509F453C08A3A9105C1 +:100B600009F452C08B3A910509F451C08C3A9105B1 +:100B700009F450C08D3A910509F44FC0803B9105AE +:100B800009F44EC08E3A910509F44DC08F3A910593 +:100B900009F44CC0813B910509F44BC0823B91059F +:100BA00009F44AC0833B910509F449C0843B91058F +:100BB00009F448C0853B910509F447C0863B91057F +:100BC00009F446C0873B910509F445C0883B91056F +:100BD00009F444C0893B910509F443C08A3B91055F +:100BE00009F442C080E094E4089580E090E0089524 +:100BF00081E890E4089583E890E4089582EE94E417 +:100C0000089589EE94E408958AEE94E4089585EBBE +:100C100094E4089586EB94E4089587EB94E40895B2 +:100C20008CEC94E408958DEC94E4089583E895E4C5 +:100C300008958AE895E4089582E995E4089584E9A1 +:100C400095E4089581E296E4089583E296E4089598 +:100C500084E296E4089585E296E4089586E296E4B7 +:100C6000089587E296E408958AE296E40895089547 +:100C700024E5829FC0011124FC0126E0729FE00D53 +:100C8000F11D1124E60FF11DEE0FFF1FEC51FF4F78 +:100C9000859194910895880F991FFC01E05AF040C6 +:100CA000859194910895880F991FFC01E052FF4FA0 +:100CB00085919491089524E5829FC0011124FC013F +:100CC00046E0749FE00DF11D1124E60FF11DEE0FBB +:100CD000FF1FEC51FF4F859194919C013A9521158E +:100CE0004FE1340708F425C13F512115304120F46C +:100CF0009F700E94530608959C0130532115304186 +:100D000018F49927906C0895811520E5920769F4ED +:100D10000E940D144FEF84E39CE0415080409040CE +:100D2000E1F700C000000C94141B813020E592070D +:100D300031F48091CC0181608093CC0108959C01B5 +:100D400030552115304108F05CC0292F33272F7012 +:100D5000332721303105E9F4AC0164E0440F551F1D +:100D60006A95E1F744275370BC016370772702C08E +:100D7000220F331F6A95E2F73C68242B352B73E072 +:100D8000880F991F7A95E1F780769927822B932B0C +:100D900008952230310529F4982F8827816F906AB1 +:100DA000089523303105A1F4AC0133E0440F551F01 +:100DB0003A95E1F7407E57708370992721E030E043 +:100DC00002C0220F331F8A95E2F7C9019C6816C042 +:100DD0002430310531F5AC0123E0440F551F2A952D +:100DE000E1F7407E57708370992721E030E002C020 +:100DF000220F331F8A95E2F7C9019A68842B952B3D +:100E000008959C0130572115304118F49F7090626D +:100E100008959C0130582115304118F49F70906A54 +:100E20000895803E9105E0F4803C910558F58133AA +:100E3000910509F46FC048F48932910509F463C043 +:100E40008A32910509F46DC072C089339105E9F0C9 +:100E500082389105D1F08533910509F44DC067C002 +:100E6000833E910581F138F4803E9105B9F0823ED0 +:100E70009105D9F05CC0863E910561F1873E9105F0 +:100E8000A1F155C00E944B0608952091DE0120FD7E +:100E900002C021FF4CC080EE90E049C08091DE018D +:100EA00080FFF9CF89E390E042C08091DE0182FFAC +:100EB0000EC08091DE0184FF03C080E090E037C067 +:100EC00083EE90E034C08091DE0182FFF2CF82EEAB +:100ED00090E02DC08091DE0183FF0BC08091DE0188 +:100EE00084FDEBCF87EE90E022C08091DE0183FF8E +:100EF000F5CF86EE90E01BC08091DE0185FF07C034 +:100F000089E290E014C08091DE0185FFF9CF85E38E +:100F100090E00DC08091DE0186FF07C08AE290E07C +:100F200006C08091DE0186FFF9CF81E390E00E9448 +:100F3000770508950895809162010895CF93DF9316 +:100F400000D01F92CDB7DEB79C018091E4018430C0 +:100F500019F593E099833B832A839093E9008FEFFF +:100F60009091E800815095FD06C095ED9A95F1F7B6 +:100F700000008111F5CF8091E80085FF0DC040E0B1 +:100F800050E063E070E0CE0101960E940B0A809170 +:100F9000E8008E778093E8000F900F900F90DF911C +:100FA000CF910895CF93DF9300D01F92CDB7DEB7D6 +:100FB0002091E401243021F522E029839B838A8358 +:100FC00083E08093E9008FEF9091E800815095FDD8 +:100FD00006C095ED9A95F1F700008111F5CF80914B +:100FE000E80085FF0DC040E050E063E070E0CE0116 +:100FF00001960E940B0A8091E8008E778093E800AA +:101000000F900F900F90DF91CF9108959C018091E8 +:10101000E4018430F9F482E08093E9009FEF80914D +:10102000E800915085FD06C085ED8A95F1F7000036 +:101030009111F5CF8091E80085FF0CC040E050E0B1 +:1010400065E070E0C9010E940B0A8091E8008E778C +:101050008093E8000895CF93DF93EC018091E40141 +:10106000843009F046C090910C019923D9F09091F9 +:101070000D019923B9F08093E9008FEF9091E8007A +:10108000815095FD06C095E19A95F1F70000811118 +:10109000F5CF8091E80085FF2CC040E050E060E192 +:1010A00070E017C081E08093E9008FEF9091E80035 +:1010B000815095FD06C095ED9A95F1F700008111DC +:1010C000F5CF8091E80085FF14C040E050E068E073 +:1010D00070E0CE010E940B0A8091E8008E77809329 +:1010E000E80080E1FE01A2E5B1E001900D928A9551 +:1010F000E1F7DF91CF9108958091E301811109C05B +:101100000E949C0B0E94F90B8091E2008460809306 +:10111000E20008951092E301089508950C944A2185 +:101120000E94AA1A0E9450210E94A40E0C949A07B1 +:1011300042E061EC81E00E94150B42E061EC82E04C +:101140000E94150B42E061EC83E00E94150B42E126 +:1011500061EC84E00C94150B8091E601833009F476 +:1011600055C030F4813071F0823009F48EC008959A +:101170008A3009F47AC08B3009F460C0893009F0F4 +:101180009CC020C08091E501813A09F096C0809111 +:10119000E800877F8093E8008091E9019091EA015F +:1011A000892B21F460E182E591E003C060E080E0FA +:1011B00090E070E00E94560A8091E8008B7780935F +:1011C000E80008958091E501813209F076C08091B0 +:1011D000E9019091EA01009719F0039709F06DC0B9 +:1011E0008091E800877F8093E8008091E80082FD8D +:1011F00005C08091E4018111F8CF5FC08091F100BA +:10120000809362018091E8008B7753C08091E50163 +:10121000813A09F052C08091E9019091EA01892B4D +:1012200009F04BC08091E800877F8093E8008091AF +:10123000E80080FFFCCF80910C0136C08091E50171 +:101240008132D9F58091E9019091EA01892BA9F5C4 +:101250008091E800877F8093E8000E944A0B80918C +:10126000E70180930C010C940D148091E50181320B +:1012700021F58091E800877F8093E8000E944A0B67 +:101280008091E8018093630108958091E501813A9E +:10129000A1F48091E800877F8093E8008091E800C6 +:1012A00080FFFCCF809163018093F1008091E80082 +:1012B0008E778093E8000C944A0B089584B7877F5B +:1012C00084BF0FB6F894A8958091600088618093E0 +:1012D0006000109260000FBE90E080E80FB6F894B6 +:1012E00080936100909361000FBE0E94F30E0E94F4 +:1012F0009C0B0E94F90B8091E20084608093E200D5 +:1013000078940E94840E0E94F50E82E091E00E9483 +:101310009F0E0E9438218091E401853069F40E947B +:101320006C1A8091E2018823B1F30E94961A8823F7 +:1013300091F30E94F509EFCF0E94FB0EECCF292F0D +:10134000332723303105C9F060F42130310581F0B5 +:101350002230310509F041C08DE690E028EB33E002 +:1013600040C021323105E1F02232310531F135C082 +:1013700082E190E025E234E034C099278130910584 +:1013800049F028F0029749F5E4E8F3E005C0E4EB02 +:10139000F3E002C0ECE9F3E0849190E09F0121C00A +:1013A0006430D8F4E62FF0E0EE0FFF1FEE5DFE4F45 +:1013B0002081318189E090E014C0643070F470E0E5 +:1013C000FB01EE0FFF1FE65EFE4F20813181FB0126 +:1013D000EA5EFE4F808190E004C080E090E020E073 +:1013E00030E0FA0131832083089580E189BD82E1F4 +:1013F00089BD09B400FEFDCF8091D8008F7D809318 +:10140000D8008091E00082608093E0008091E0004D +:1014100081FDFCCF0895CF92DF92EF92FF920F9360 +:101420001F93CF93DF93EC018B016A010E94690B3C +:10143000811133C0C114D10439F0F601808191814A +:10144000081B190BC80FD91FE12CF12C0115110530 +:1014500019F18091E80085FD16C08091E8008E7733 +:101460008093E800C114D10449F0F6018081918194 +:10147000E80EF91EF182E08285E00FC00E94690B40 +:10148000882321F30AC089918093F100015011094A +:10149000FFEFEF1AFF0ADACF80E0DF91CF911F91C3 +:1014A0000F91FF90EF90DF90CF9008952091EB0186 +:1014B0003091EC012617370748F06115710539F4B2 +:1014C0002091E8002E772093E80001C0B901FC01CB +:1014D00020E06115710579F18091E4018823F1F133 +:1014E0008530F1F18091E80083FD3CC08091E800F7 +:1014F00082FD2EC08091E80080FFEBCF2091F300A9 +:101500008091F20090E0922B6115710551F08830C6 +:10151000910538F421912093F100615071090196F1 +:10152000F3CF21E0089709F020E08091E8008E7762 +:101530008093E800CECF2111CFCF0AC08091E40183 +:10154000882361F0853061F08091E80083FD0AC056 +:101550008091E80082FFF2CF80E0089582E0089554 +:1015600083E0089581E008952091EB013091EC0132 +:101570002617370748F06115710539F42091E80006 +:101580002E772093E80001C0B901FC0120E061152D +:10159000710591F18091E401882309F440C0853000 +:1015A00009F43FC08091E80083FD3DC08091E800D0 +:1015B00082FD2FC08091E80080FFE9CF2091F300E9 +:1015C0008091F20090E0922B6115710559F08830FE +:1015D000910540F424912093F100319661507109F6 +:1015E0000196F2CF21E0089709F020E08091E80011 +:1015F0008E778093E800CBCF2111CCCF0AC08091A9 +:10160000E401882361F0853061F08091E80083FD7A +:101610000AC08091E80082FFF2CF80E0089582E066 +:10162000089583E0089581E00895982F973068F534 +:101630009093E900981739F07091EC002091ED003B +:101640005091F00003C0242F762F50E021FD02C0FE +:101650009F5FECCF3091EB003E7F3093EB003091F9 +:10166000ED003D7F3093ED003091EB003160309321 +:10167000EB007093EC002093ED005093F00020916C +:10168000EE0027FDE5CF80E008958F708093E9009C +:1016900081E008958091E50187FF11C08091E80005 +:1016A00082FD05C08091E4018111F8CF11C08091C5 +:1016B000E8008B770BC08091E401882349F080918A +:1016C000E80080FFF8CF8091E8008E778093E800F3 +:1016D00008952091E4003091E50095E64091EC00FA +:1016E000842F817040FF23C08091E80080FD1DC0E1 +:1016F0008091E401882399F0853099F08091EB0086 +:1017000085FD11C04091E4005091E5002417350794 +:1017100029F3915011F09A01E1CF84E0089582E01D +:10172000089583E0089581E0089580E00895409150 +:10173000E80042FFDDCF08950E940A0C0E94120CBF +:10174000E0EEF0E0808181608083E8EDF0E0808170 +:101750008F77808319BCA7EDB0E08C918E7F8C933E +:1017600080818F7E80831092E30108950F931F93F1 +:10177000CF93DF930E940A0C0E94120CC8EDD0E0B8 +:1017800088818F77888388818068888388818F7D2E +:10179000888319BC1092E4011092E0011092E201DA +:1017A0001092E10100EE10E0F80180818B7F8083D0 +:1017B00088818160888342E060E080E00E94150BB0 +:1017C000E1EEF0E080818E7F8083E2EEF0E08081C8 +:1017D00081608083808188608083F80180818E7F32 +:1017E0008083888180618883DF91CF911F910F91E1 +:1017F0000895E8EDF0E080818F7E8083E7EDF0E0F2 +:1018000080818160808384E082BF81E08093E301F6 +:101810000C94B60BE8EDF0E080818E7F808310920F +:10182000E20008951092DA001092E10008951F92EC +:101830000F920FB60F9211242F933F934F935F9304 +:101840006F937F938F939F93AF93BF93EF93FF9388 +:101850008091E10082FF0BC08091E20082FF07C00F +:101860008091E1008B7F8093E1000E94830E809144 +:10187000DA0080FF1FC08091D80080FF1BC08091DC +:10188000DA008E7F8093DA008091D90080FF0DC04E +:1018900080E189BD82E189BD09B400FEFDCF81E010 +:1018A0008093E4010E947C0805C019BC1092E401F9 +:1018B0000E948A088091E10080FF19C08091E200B7 +:1018C00080FF15C08091E2008E7F8093E2008091BE +:1018D000E20080618093E2008091D8008062809372 +:1018E000D80019BC85E08093E4010E948E088091A5 +:1018F000E10084FF30C08091E20084FF2CC080E1D1 +:1019000089BD82E189BD09B400FEFDCF8091D80078 +:101910008F7D8093D8008091E1008F7E8093E100DD +:101920008091E2008F7E8093E2008091E2008160EE +:101930008093E2008091E001882311F084E007C0E9 +:101940008091E30087FD02C081E001C083E08093C5 +:10195000E4010E9490088091E10083FF29C08091FA +:10196000E20083FF25C08091E100877F8093E10042 +:1019700082E08093E4011092E0018091E1008E7F8B +:101980008093E1008091E2008E7F8093E20080915D +:10199000E20080618093E20042E060E080E00E942B +:1019A000150B8091F00088608093F0000E948D08F4 +:1019B000FF91EF91BF91AF919F918F917F916F9127 +:1019C0005F914F913F912F910F900FBE0F901F90FD +:1019D00018951F920F920FB60F9211242F933F93D9 +:1019E0004F935F936F937F938F939F93AF93BF9327 +:1019F000CF93DF93EF93FF93C091E900CF70809175 +:101A0000EC00D82FD17080FDD0E81092E9008091D1 +:101A1000F000877F8093F00078940E942D0D109243 +:101A2000E9008091F00088608093F000CD2BCF70AA +:101A3000C093E900FF91EF91DF91CF91BF91AF91FA +:101A40009F918F917F916F915F914F913F912F91D6 +:101A50000F900FBE0F901F9018951F93CF93DF9399 +:101A6000CDB7DEB7AA970FB6F894DEBF0FBECDBFD5 +:101A7000E5EEF1E08091F100819321E0ED3EF20787 +:101A8000C9F70E94AC088091E80083FF24C18091CF +:101A9000E5019091E601492F50E04A30510508F0E8 +:101AA0001AC1FA01EA5AFF4F0C94E122803881F002 +:101AB000823809F010C18091E9018F708093E900AC +:101AC0008091EB0085FB882780F91092E90006C021 +:101AD0008091E1019091E201911182609091E80082 +:101AE000977F9093E8008093F1001092F100C8C0B6 +:101AF000282F2D7F09F0EFC0882319F0823061F084 +:101B0000EAC08091E701813009F0E5C0933009F027 +:101B100080E08093E2012BC08091E701811127C012 +:101B20008091E9018F7009F4D6C08093E90020917B +:101B3000EB0020FF1CC0933021F48091EB00806209 +:101B400014C09091EB0090619093EB0021E030E0A5 +:101B5000A90102C0440F551F8A95E2F74093EA009D +:101B60001092EA008091EB0088608093EB00109265 +:101B7000E9008091E800877F86C08111ACC0109198 +:101B8000E7011F778091E3008078812B8093E30049 +:101B90008091E800877F8093E8000E944A0B809143 +:101BA000E80080FFFCCF8091E30080688093E30031 +:101BB000111102C082E001C083E08093E4018BC078 +:101BC0008058823008F087C08091E7019091E80149 +:101BD0008C3D53E0950779F583E08A838AE2898317 +:101BE0004FB7F894DE01139620E03EE051E2E32F78 +:101BF000F0E050935700E49120FF03C0E295EF70AE +:101C00003F5FEF708E2F90E0EA3010F0C79601C072 +:101C1000C0968D939D932F5F243149F74FBF8091DC +:101C2000E800877F8093E8006AE270E0CE010196C9 +:101C30000E94560A14C0AE014F5F5F4F6091E901E8 +:101C40000E949F09BC01892B09F445C09091E800CE +:101C5000977F9093E80089819A810E94B40A8091CD +:101C6000E8008B778093E80036C08038A1F580913A +:101C7000E800877F8093E8008091E0018093F10085 +:101C80008091E8008E778093E8000E944A0B23C081 +:101C9000811121C08091E7019091E8019927029775 +:101CA000D4F48091E800877F8093E8008091E70179 +:101CB0008093E0010E944A0B8091E001811106C0EF +:101CC0008091E30087FD02C081E001C084E0809341 +:101CD000E4010E9498088091E80083FF0AC0809187 +:101CE000E800877F8093E8008091EB00806280931A +:101CF000EB00AA960FB6F894DEBF0FBECDBFDF9102 +:101D0000CF911F9108950895CF938091E401882386 +:101D1000A1F0C091E900CF709091EC00892F817003 +:101D200090FD80E8C82B1092E9008091E80083FDC7 +:101D30000E942D0DCF70C093E900CF91089590932C +:101D40006901809368010895E0916801F09169014B +:101D5000309721F00190F081E02D099480E0089502 +:101D6000E0916801F0916901309721F00280F381E0 +:101D7000E02D09940895E0916801F0916901309790 +:101D800021F00480F581E02D0994089520916601E9 +:101D9000309167012817390771F09093670180939C +:101DA0006601E0916801F0916901309721F00680A9 +:101DB000F781E02D09940895209164013091650127 +:101DC0002817390771F09093650180936401E091C1 +:101DD0006801F0916901309721F00084F185E02DD0 +:101DE0000994089508950C94F20E0E94B01A0E946E +:101DF00062040C94761BCF92DF92EF92FF920F93C6 +:101E00001F93CF93DF93CDB7DEB72B970FB6F89420 +:101E1000DEBF0FBECDBF0E947A048BE6C82E81E0E4 +:101E2000D82E00E010E0E02E802F0E947005F60111 +:101E300041916F01F82EF426B1F40F5F1F4F0E3061 +:101E4000110589F78FEF89838A831B820E94B91A53 +:101E50008160782F9D838C8349815A816B818D812C +:101E60000E949E0F40C09091CC0191FF04C08B87CF +:101E70000E9476058B8520E030E04F2D50E0922FB8 +:101E8000BA01022E02C0759567950A94E2F760FFC9 +:101E900024C02E83EF8221E030E0690102C0CC0C27 +:101EA000DD1C9A95E2F790E08C219D21892B09F4A5 +:101EB00020E028870E94B91A8160782F9A87898745 +:101EC0004E815F8168858A850E949E0FF801E559E1 +:101ED000FE4F8081C826C08206C02F5F3F4F26304C +:101EE000310569F6AACF0E945D1E0E94A40E909152 +:101EF0006A018917A1F00E94A40E80936A012B96B3 +:101F00000FB6F894DEBF0FBECDBFDF91CF911F910A +:101F10000F91FF90EF90DF90CF900C949A072B9643 +:101F20000FB6F894DEBF0FBECDBFDF91CF911F91EA +:101F30000F91FF90EF90DF90CF900895CF93DF93B4 +:101F4000CDB7DEB72B970FB6F894DEBF0FBECDBF6F +:101F50004F83588769877A878B87DE01119686E0E1 +:101F6000FD0111928A95E9F785E0FE01379601900F +:101F70000D928A95E1F749815A816B817C818D812F +:101F80009E810E94A1162B960FB6F894DEBF0FBE5D +:101F9000CDBFDF91CF910895CF93C82F882309F447 +:101FA000C1C0823859F40E94A40E81FDBBC089E3F0 +:101FB0000E943E190E94F61989E30CC0833879F417 +:101FC0000E94A40E80FDAEC083E50E943E190E94CF +:101FD000F61983E50E947D19CF910C94F619843887 +:101FE00059F40E94A40E82FD9DC087E40E943E1910 +:101FF0000E94F61987E4EECF8CEF8C0F813A48F4FB +:102000008C2F0E949D2081118DC08C2F0E943E1923 +:10201000E3CF80E28C0F883048F4C77081E001C0C4 +:10202000880FCA95EAF70E94BF19D6CF8BE58C0FAF +:10203000833078F4C53A29F0C63A31F083E890E06D +:1020400005C081E890E002C082E890E0CF910C9456 +:10205000C60E88E58C0F833108F064C0C83A39F1A8 +:10206000C93A41F1CA3A49F1CB3A51F1CC3A59F166 +:10207000CD3A61F1C03B69F1CE3A71F1CF3A79F1D5 +:10208000C13B81F1C23B89F1C33B91F1C43B99F162 +:10209000C53BA1F1C63BA9F1C73BB1F1C83BB9F1C2 +:1020A000C93BC1F1CA3BC9F180E090E038C082EE83 +:1020B00090E035C089EE90E032C08AEE90E02FC00B +:1020C00085EB90E02CC086EB90E029C087EB90E098 +:1020D00026C08CEC90E023C08DEC90E020C083E81B +:1020E00091E01DC08AE891E01AC082E991E017C032 +:1020F00084E991E014C081E292E011C083E292E0B1 +:102100000EC084E292E00BC085E292E008C086E255 +:1021100092E005C087E292E002C08AE292E0CF91AD +:102120000C94DC0ECF910895882309F44BC08238BB +:1021300059F40E94A40E81FF45C089E30E943E1914 +:102140000E94F61989E30CC0833871F40E94A40E32 +:1021500080FF38C083E50E943E190E94F61983E58E +:102160000E947D190C94F619843859F40E94A40E2B +:1021700082FF28C087E40E943E190E94F61987E476 +:10218000EFCF9CEF980F913A58F390E2980F983068 +:1021900050F4877091E001C0990F8A95EAF7892F72 +:1021A0000E94C519DFCF9BE5980F933020F480E0A3 +:1021B00090E00C94C60E885A833120F480E090E0C1 +:1021C0000C94DC0E0895882321F00E94BF190C9412 +:1021D000F6190895882321F00E94C5190C94F61968 +:1021E0000895BF92CF92DF92EF92FF920F931F93C9 +:1021F000CF93DF9300D000D000D0CDB7DEB77C0105 +:1022000085E0F701DE01119601900D928A95E1F7C4 +:10221000F70183819481892B09F4DDC2908181814A +:102220008F3F19F49F3F09F4D6C2F701028125813F +:1022300022952F7099838A8389819A812E830E94A7 +:10224000FD18182FB92E0E94FC180E94C317EB2D01 +:10225000E295EF704E2F50E0FA01E05AFF4F2E81C9 +:102260000C94E1228B2D807F9B2D9F70F92E88236B +:1022700019F0F29480EFF822002349F0FF2009F4CE +:1022800057C28F2D0E94CF190E94F61951C2812F7B +:102290000E949410FF2009F49EC28F2D0E94D51930 +:1022A00026960FB6F894DEBF0FBECDBFDF91CF915B +:1022B0001F910F91FF90EF90DF90CF90BF900C9403 +:1022C000F6193B2D307F8B2D8F70303211F08295B7 +:1022D000807F112319F0113021F12CC00023B9F0B7 +:1022E000222309F490C1213009F08DC126960FB642 +:1022F000F894DEBF0FBECDBFDF91CF911F910F913C +:10230000FF90EF90DF90CF90BF900C94DF192223C5 +:1023100019F0213009F45FC28E830E94E2198E8188 +:1023200086C1002321F0223008F055C26CC1211172 +:1023300052C27DC1002321F0222309F464C1F8C1F7 +:10234000222309F474C109C28B2D8695869583706A +:1023500019F08130D1F03FC2002321F0812F9B2D55 +:10236000937002C080E090E026960FB6F894DEBF2E +:102370000FBECDBFDF91CF911F910F91FF90EF90D6 +:10238000DF90CF90BF900C94C60E002321F0812FD8 +:102390009B2D937002C080E090E026960FB6F894D3 +:1023A000DEBF0FBECDBFDF91CF911F910F91FF9088 +:1023B000EF90DF90CF90BF900C94DC0E812F002324 +:1023C00019F00E94651D02C00E94CD1D26960FB611 +:1023D000F894DEBF0FBECDBFDF91CF911F910F915B +:1023E000FF90EF90DF90CF90BF900C94521E8B2DFA +:1023F000837009F075C00111EEC1812F8295869519 +:102400008770880F880F912F9F70C92ED12CE12CD7 +:10241000F12C082E04C0CC0CDD1CEE1CFF1C0A9411 +:10242000D2F714FF12C00FE010E020E030E004C04B +:10243000000F111F221F331F8A95D2F7C901B8015F +:10244000609570958095909503C060E070E0CB0139 +:102450004B2D4695469543704230C1F060F56C298E +:102460007D298E299F29413051F126960FB6F89487 +:10247000DEBF0FBECDBFDF91CF911F910F91FF90B7 +:10248000EF90DF90CF90BF900C94EA176C297D29D4 +:102490008E299F2926960FB6F894DEBF0FBECDBFBA +:1024A000DF91CF911F910F91FF90EF90DF90CF9030 +:1024B000BF900C9406180E94EA17C701B601269631 +:1024C0000FB6F894DEBF0FBECDBFDF91CF911F9145 +:1024D0000F91FF90EF90DF90CF90BF900C94CE17AC +:1024E000002319F08B2D817001C08695882309F493 +:1024F00072C1812F829586958770880F880F912FE2 +:102500009F70C92ED12CE12CF12C082E04C0CC0CCC +:10251000DD1CEE1CFF1C0A94D2F714FF12C00FE062 +:1025200010E020E030E004C0000F111F221F331F15 +:102530008A95D2F7C901B8016095709580959095FC +:1025400003C060E070E0CB014B2D4695469543708B +:102550004230C1F060F56C297D298E299F294130D8 +:1025600051F126960FB6F894DEBF0FBECDBFDF91B6 +:10257000CF911F910F91FF90EF90DF90CF90BF9080 +:102580000C94C4186C297D298E299F2926960FB694 +:10259000F894DEBF0FBECDBFDF91CF911F910F9199 +:1025A000FF90EF90DF90CF90BF900C94E0180E94C6 +:1025B000C418C701B60126960FB6F894DEBF0FBE49 +:1025C000CDBFDF91CF911F910F91FF90EF90DF90E2 +:1025D000CF90BF900C94A818103FD1F118F4103E82 +:1025E00050F4A1C0123F09F463C008F44CC0133F7B +:1025F00009F473C098C01F708B2D8F710023A1F058 +:102600000E944118812F26960FB6F894DEBF0FBEA8 +:10261000CDBFDF91CF911F910F91FF90EF90DF9091 +:10262000CF90BF900C94E3100E946218812F2696E1 +:102630000FB6F894DEBF0FBECDBFDF91CF911F91D3 +:102640000F91FF90EF90DF90CF90BF900C94EA1025 +:102650000023A9F02111BFC08B2D8F7126960FB6D4 +:10266000F894DEBF0FBECDBFDF91CF911F910F91C8 +:10267000FF90EF90DF90CF90BF900C94871822309E +:1026800008F0A9C0E9CF0023A9F08B2D8F71269601 +:102690000FB6F894DEBF0FBECDBFDF91CF911F9173 +:1026A0000F91FF90EF90DF90CF90BF900C94411866 +:1026B000002359F38B2D8F7126960FB6F894DEBF49 +:1026C0000FBECDBFDF91CF911F910F91FF90EF9083 +:1026D000DF90CF90BF900C946218002399F08B2D5F +:1026E0008F7126960FB6F894DEBF0FBECDBFDF9177 +:1026F000CF911F910F91FF90EF90DF90CF90BF90FF +:102700000C942C1826960FB6F894DEBF0FBECDBFE2 +:10271000DF91CF911F910F91FF90EF90DF90CF90BD +:10272000BF900C9422180023A9F0222309F4ADCF06 +:10273000812F26960FB6F894DEBF0FBECDBFDF9176 +:10274000CF911F910F91FF90EF90DF90CF90BF90AE +:102750000C94CC0F222309F4ADCF812F26960FB60F +:10276000F894DEBF0FBECDBFDF91CF911F910F91C7 +:10277000FF90EF90DF90CF90BF900C9494104B2D72 +:102780004F70612FC7010E94020326960FB6F8947E +:10279000DEBF0FBECDBFDF91CF911F910F91FF9094 +:1027A000EF90DF90CF90BF900C9446174B2D4F7059 +:1027B000612FC70126960FB6F894DEBF0FBECDBFBE +:1027C000DF91CF911F910F91FF90EF90DF90CF900D +:1027D000BF900C94370626960FB6F894DEBF0FBE56 +:1027E000CDBFDF91CF911F910F91FF90EF90DF90C0 +:1027F000CF90BF9008950E94DC190E94B1190E94E9 +:10280000F6190E94021F0E94521E80E090E00E9472 +:10281000C60E80E090E00C94DC0E0E94CC190C9463 +:10282000FB130E94FD18292F22952F702C3030F4B5 +:102830002A3048F42250223078F405C02C3041F080 +:102840002F3031F009C0803E48F0803F29F406C0A7 +:1028500093FB882780F9089580E0089581E008952A +:10286000CF93DF9300D000D01F92CDB7DEB70F908B +:102870000F900F900F900F90DF91CF910895CF930D +:10288000DF9300D000D000D0CDB7DEB726960FB6CC +:10289000F894DEBF0FBECDBFDF91CF9108951F9397 +:1028A000CF93DF93C091790116E080917A01C81728 +:1028B00099F0D0E01C9FF0011D9FF00D1124E55808 +:1028C000FE4F4081518162817381848195810E9494 +:1028D0003F142196C770E9CFDF91CF911F910895E2 +:1028E0004091AB015091AC016091AD017091AE018E +:1028F0008091AF019091B0010C943F148091B00190 +:1029000082958F7009F054C08091AD01882309F43D +:102910004FC080917901A0917A014091AE01509110 +:10292000AF016091AB017091AC01B6E08A1709F478 +:102930003FC090E041155105C1F17F3F11F46F3F59 +:10294000A1F1B89FF001B99FF00D1124E558FE4F99 +:10295000218127132AC02081261327C0228121111B +:1029600024C0238134812417350710F42150310904 +:10297000241B350B283C3105C0F42091B0012F7089 +:1029800020612093B00126E0289FF001299FF00DDF +:102990001124E058FE4F80818F70806180838BEA24 +:1029A00091E00E94F1100C944F1401968770BECFF5 +:1029B0000895CF92DF92EF92FF920F931F93CF93E0 +:1029C000DF93CDB7DEB762970FB6F894DEBF0FBEC8 +:1029D000CDBF8C0185E0F801DE011D9601900D92BE +:1029E0008A95E1F7D8014C9111965C911197129656 +:1029F0006C918091AE019091AF01009709F475C17F +:102A00003091AB017091AC017F3F19F43F3F09F465 +:102A10006CC1F801C380D480E090AD01EE2009F4D0 +:102A2000BEC02091B001C816D90628F0D601A81B57 +:102A3000B90BCD0104C0809590958C0D9D1DFF2490 +:102A4000F394883C910578F0F12C207F09F0C4C004 +:102A50007C2DD98AC88A89890E9430148BEA91E03A +:102A60000E94F110AFC0822F807F09F045C057133C +:102A700013C0431311C061110FC02F702061209348 +:102A8000B0010E9470148BEA91E00E94F1108091D5 +:102A9000B001F80185832EC0CD2819F15F3F11F4F4 +:102AA0004F3FF9F0F62E61111CC080917901209101 +:102AB0007A0136E0821709F45BC090E0389FF0019C +:102AC000399FF00D1124E558FE4F7181571306C050 +:102AD0007081471303C07281711103C00196877022 +:102AE000E9CFF62E662309F41CC18091B001816004 +:102AF0008093B001F12C15C1571309C0431307C0CF +:102B0000611105C08091B001F8018583C8C04D876F +:102B10005E878D859E856A8B0E9411146A89882341 +:102B2000D1F16623C1F12091B001822F82958F707F +:102B300090E0029774F08091AB019091AC0198877E +:102B40008F831986DB86CA862C87CE0107960E9462 +:102B5000F11086E0F801ABEAB1E001900D928A95A0 +:102B6000E1F70E947E140E947014FF24F394D9C0F0 +:102B70004D875E878D859E850E94FD18292F2295A1 +:102B80002F70223008F0C1C09F7009F0BBC0805E7A +:102B9000883008F4C6C0C8010E94F110E6CFC816FC +:102BA000D90608F453C0F601E81BF90BCF01883CA5 +:102BB000910508F450C0F12C7C2DD98AC88A8989E6 +:102BC0000E943014EBEAF1E086E0DF011D928A9565 +:102BD000E9F70E947014A5C0571314C0431312C024 +:102BE000611110C08091B001F8018583C8010E9475 +:102BF000F11086E0EBEAF1E0DF011D928A95E9F73A +:102C0000FE2C8FC04D875E878D859E856A8B0E94C6 +:102C100011146A89882309F4BECF662309F4BBCF57 +:102C20002091B001822F82958F7090E002970CF472 +:102C300090CF8091AB019091AC019A8389831B82E4 +:102C4000DD82CC822E83CE01019681CF8095909536 +:102C50008C0D9D1DACCFF62E662309F49CCF571327 +:102C600033C0431331C02091B00120FD24C0822F16 +:102C700082958F70482F50E041155105E1F0D80141 +:102C800015962C9315974F30510549F08F5F982F6B +:102C90009295907F822F8F70892B15968C93C80107 +:102CA0000E94F11086E0F801ABEAB1E001900D92CC +:102CB0008A95E1F78ECF86E0F801ABEAB1E00190AA +:102CC0000D928A95E1F72DC04D875E878D859E8593 +:102CD0000E94111481113DCF8091B00181608093D9 +:102CE000B001C8010E94F1101CC0662309F453CF43 +:102CF0004D875E878D859E850E941114882309F477 +:102D00004ACF27CF811143CF0CC0243008F043CFE6 +:102D10009F7009F43CCFD80115969C91907F09F0E3 +:102D200036CF8F2D62960FB6F894DEBF0FBECDBFA3 +:102D3000DF91CF911F910F91FF90EF90DF90CF9097 +:102D400008951F93CF93DF93CDB7DEB72C970FB6BF +:102D5000F894DEBF0FBECDBF4F83588769877A874F +:102D60008B879C87CE0107960E94D914882371F027 +:102D70008A859B85892B09F441C088858F3F09F09E +:102D800065C08F818F3F09F061C038C086E0FE01C9 +:102D90003796DE01119601900D928A95E1F76A85CA +:102DA0007B856115710551F1FF81E885EF3F11F4D5 +:102DB000FF3F21F120917A0130E0C901019687702F +:102DC00099274091790150E08417950709F447C08D +:102DD000F983EA837D836C8396E0929FD001939F71 +:102DE000B00D1124A558BE4FFE01319601900D92F1 +:102DF0009A95E1F780937A010E944F1416E0809132 +:102E0000790190917A018917B9F1189FC0011124B5 +:102E100085589E4F0E94D914882371F1E091790161 +:102E20001E9FF0011124E558FE4F408151816281BF +:102E30007381848195810E943F148091790190E093 +:102E400001968770992780937901D9CF4F81588552 +:102E500069857A858B859C850E943F14CFCF0E941F +:102E60000D1410927A0110927901EBEAF1E086E0FC +:102E7000DF011D928A95E9F72C960FB6F894DEBF14 +:102E80000FBECDBFDF91CF911F910895EF92FF92BA +:102E90000F931F93CF93DF938C01892B09F46CC0A0 +:102EA000F12CEE24E394E8012196F8018491843713 +:102EB00040F4843008F051C0813081F0823019F143 +:102EC0005BC0853709F444C0A8F19CE7980F9037A0 +:102ED00008F052C08F770E94941041C00E5F1F4FC0 +:102EE000FE01849190E2980F983050F48770FE2D87 +:102EF00001C0FF0F8A95EAF78F2F0E94CF1914C0E7 +:102F00000E94CC0F2DC00E5F1F4FFE01849190E2F6 +:102F1000980F983060F48770FE2D01C0FF0F8A95DE +:102F2000EAF78F2F0E94D5190E94F61919C00E9446 +:102F3000941016C00E5F1F4FFE01C491CC2381F088 +:102F40008FE99FE00197F1F700C00000C150F6CF74 +:102F50000E5F1F4FFE01F49003C00E94CC0F8E0144 +:102F60008F2D882309F49FCFEFE9FFE03197F1F728 +:102F700000C000008150F5CFDF91CF911F910F91DC +:102F8000FF90EF90089508956093B5017093B60196 +:102F90008093B7019093B8010C94FB130F931F9388 +:102FA0000091B5011091B6012091B7013091B8019F +:102FB000DC01CB01802B912BA22BB32B8093B5018D +:102FC0009093B601A093B701B093B8011F910F91F0 +:102FD0000C94FB130F931F930091B5011091B60150 +:102FE0002091B7013091B801DC01CB0180239123FE +:102FF000A223B3238093B5019093B601A093B701A8 +:10300000B093B8011F910F910C94FB130F931F9372 +:103010000091B5011091B6012091B7013091B8012E +:10302000DC01CB0180279127A227B3278093B5012C +:103030009093B601A093B701B093B8011F910F917F +:103040000C94FB131092B1011092B2011092B301D3 +:103050001092B4010C94FB1341E050E060E070E08A +:1030600004C0440F551F661F771F8A95D2F74093FF +:10307000B1015093B2016093B3017093B4010C9409 +:10308000FB1341E050E060E070E004C0440F551FC6 +:10309000661F771F8A95D2F78091B1019091B20196 +:1030A000A091B301B091B401482B592B6A2B7B2B13 +:1030B0004093B1015093B2016093B3017093B40196 +:1030C0000C94FB1341E050E060E070E004C0440F5A +:1030D000551F661F771F8A95D2F7409550956095CA +:1030E00070958091B1019091B201A091B301B0911E +:1030F000B401482359236A237B234093B1015093A1 +:10310000B2016093B3017093B4010C94FB1341E0DE +:1031100050E060E070E004C0440F551F661F771F49 +:103120008A95D2F78091B1019091B201A091B3013B +:10313000B091B401482759276A277B274093B101F2 +:103140005093B2016093B3017093B4010C94FB13DC +:103150000F931F930091B1011091B2012091B3011F +:103160003091B401DC01CB01802B912BA22BB32B2E +:103170008093B1019093B201A093B301B093B401D5 +:103180001F910F910C94FB130F931F930091B101AA +:103190001091B2012091B3013091B401DC01CB0157 +:1031A00080239123A223B3238093B1019093B20192 +:1031B000A093B301B093B4011F910F910C94FB1332 +:1031C0000F931F930091B1011091B2012091B301AF +:1031D0003091B401DC01CB0180279127A227B327CE +:1031E0008093B1019093B201A093B301B093B40165 +:1031F0001F910F910C94FB130895CF92DF92EF92E1 +:10320000FF920F931F93CF93DF938C01C090B10176 +:10321000D090B201E090B301F090B4018091B5017B +:103220009091B601A091B701B091B801C82AD92AEE +:10323000EA2AFB2ACFE1D0E0D701C6010C2E04C058 +:10324000B695A795979587950A94D2F780FF07C002 +:10325000B8018C2F0E945B068130910531F42197D3 +:1032600058F7B80180E00E945B06DF91CF911F9173 +:103270000F91FF90EF90DF90CF90089590910C0107 +:103280009923F1F090910D019923D1F0982F969503 +:10329000969596959F3080F5E0910E01F0910F0183 +:1032A000E90FF11D877021E030E0A90102C0440F51 +:1032B000551F8A95E2F7CA019181892B8183089570 +:1032C00020910E0130910F01F90132969FEF40E0FD +:1032D0005191851789F09F3F19F4511101C0942F26 +:1032E0004F5F4E30A9F79F3F39F0F901E90FF11D0B +:1032F00097FDFA9582830895089590910C01992382 +:10330000F9F090910D019923D9F0982F9695969503 +:1033100096959F3028F5E0910E01F0910F01E90F8D +:10332000F11D877021E030E0A90102C0440F551F54 +:103330008A95E2F7CA018095918189238183089556 +:1033400020910E0130910F01F9013296205F3F4F1D +:103350009081891301C010823196E217F307C1F7FB +:10336000089581E090E0E0910E01F0910F01E80FE7 +:10337000F91F1082019680319105A9F70895909167 +:10338000CB01892B8093CB01089580959091CB013F +:1033900089238093CB0108951092CB0108959091D9 +:1033A000CA01892B8093CA01089580959091CA0122 +:1033B00089238093CA0108951092CA0108958093C9 +:1033C000B90108951092B901089580910E0190916C +:1033D0000F01FC0131969C01205F3F4F80E09191ED +:1033E00091118F5FE217F307D1F70895E0910E0175 +:1033F000F0910F018091CB018083E0910E01F0915B +:103400000F0190818091CA01892B80838091B9013D +:10341000882361F0E0910E01F0910F019081892BDA +:1034200080830E94E51981111092B90180910E01EB +:1034300090910F010C94B00ECF92DF92EF92FF9219 +:103440006C01EE24FF24C114D104E104F10421F045 +:10345000C701B60120E101C020E0C72ED82EE92E19 +:10346000FF24C114D104E104F10419F0285FC7015D +:10347000B6016B017C0154E0F694E794D794C794AD +:103480005A95D1F7C114D104E104F10419F02C5F6D +:10349000C701B6016B017C0142E0F694E794D79432 +:1034A000C7944A95D1F7C114D104E104F10419F08D +:1034B0002E5FC701B601DC01CB01B695A7959795A4 +:1034C0008795892B8A2B8B2B09F02F5F822FFF90FA +:1034D000EF90DF90CF9008958091E401843011F156 +:1034E00020E488E190E00FB6F894A89580936000FE +:1034F0000FBE2093600083B7817F846083BF83B752 +:10350000816083BF7894889583B78E7F83BF0FB621 +:10351000F894A89580916000886180936000109273 +:1035200060000FBE089508950C94931ACF930E94E3 +:10353000941A0E947A040E94931AC0E08C2F0E9471 +:103540007005811104C0CF5FCE30C1F701C081E0AA +:10355000CF9108950E940D140E94A40E0C949A0716 +:1035600082E084BD93E095BD9AEF97BD80936E0095 +:1035700008952FB7F8948091CD019091CE01A0913C +:10358000CF01B091D0012FBF0895CF92DF92EF927B +:10359000FF920F931F932FB7F8944091CD01509154 +:1035A000CE016091CF017091D0012FBF6A017B01E4 +:1035B000EE24FF248C0120E030E0C016D106E206A4 +:1035C000F30610F4415051099A01281B390BC90127 +:1035D0001F910F91FF90EF90DF90CF9008951F9271 +:1035E0000F920FB60F9211248F939F93AF93BF93B7 +:1035F0008091CD019091CE01A091CF01B091D001E9 +:103600000196A11DB11D8093CD019093CE01A09391 +:10361000CF01B093D001BF91AF919F918F910F9047 +:103620000FBE0F901F9018950E949C0BF8942FEFDF +:1036300087EA91E6215080409040E1F700C0000009 +:1036400087E090EBDC018093ED019093EE01A09375 +:10365000EF01B093F0019CE088E10FB6F894A895D3 +:10366000809360000FBE90936000FFCFEF92FF92B7 +:103670000F931F93CF93DF93D82FC0E08C2F0E941E +:10368000700500E010E0E82EF12CC701002E02C00A +:10369000959587950A94E2F780FD06C00F5F1F4F4E +:1036A0000630110591F709C0602F7C2F80E00E9441 +:1036B00038068D13F3CF81E004C0CF5FCE30F1F632 +:1036C00080E0DF91CF911F910F91FF90EF900895CF +:1036D000CF93C82F8CE20E94361B882321F08C2FB9 +:1036E000CF910C94361B80E0CF910895CF930E9428 +:1036F000BD1C811102C00E94A31CC5E6C15049F047 +:103700000E947A048FE39CE90197F1F700C0000062 +:10371000F5CF89E20E94681B811113C18AE20E94E1 +:10372000681B81110E94A31C85E00E94681B811107 +:103730000E94141B0E94C81C8093CC0187E00E9449 +:10374000681B8823A9F18BE10E94681B882351F034 +:103750008091CC0181FB222720F991E0922790FBF8 +:1037600081F90EC08EE00E94681B882361F0809171 +:10377000CC0182FB222720F991E0922790FB82F96D +:103780008093CC0115C080E10E94681B9091CC0110 +:10379000882341F093FB222720F981E0822780FBD8 +:1037A00093F904C0892F809580FB90F99093CC0108 +:1037B0008091CC010E94CC1C0E94DA1C8093DE0117 +:1037C00080EE0E94681B882341F08091DE01982FD3 +:1037D000909590FB80F98093DE0189E30E94681B3D +:1037E000882359F08091DE0181FB222720F991E0A6 +:1037F000922790FB81F98093DE0182EE0E94681B84 +:10380000882359F08091DE0182FB222720F991E084 +:10381000922790FB82F98093DE0186EE0E94681B5E +:10382000882359F08091DE0183FB222720F991E063 +:10383000922790FB83F98093DE0183EE0E94681B40 +:10384000882359F08091DE0184FB222720F991E042 +:10385000922790FB84F98093DE0185E30E94681B28 +:10386000882359F08091DE0185FB222720F991E021 +:10387000922790FB85F98093DE0181E30E94681B0B +:10388000882359F08091DE0186FB222720F991E000 +:10389000922790FB86F98093DE0181E10E94681BEC +:1038A000882359F08091DE0187FB222720F991E0DF +:1038B000922790FB87F98093DE018091DE010E94C0 +:1038C000DE1C8091DE0187FB882780F980930D0143 +:1038D00087E20E94681BC82F8EE10E94681B81113D +:1038E000C2608FE10E94681B8111C46080E20E9467 +:1038F000681B8111C86081E20E94681B8111C06150 +:1039000082E20E94681B8111C06283E20E94681BF0 +:103910008111C06484E20E94681B882311F0C06892 +:1039200002C0CC2329F08C2F0E94D51C6C2F03C021 +:103930000E94D11C682F70E080E090E0CF910C9441 +:10394000C417CF9108956DEE7EEF80E090E00E9465 +:10395000172360E082E090E00E94092360E083E0AA +:1039600090E00E94092360E084E090E00E94092337 +:1039700060E085E090E00C94092380E090E00E94F4 +:10398000032321E08D3E9E4F09F020E0822F089511 +:1039900082E090E00C94FB22682F82E090E00C948F +:1039A000092383E090E00C94FB22682F83E090E0F1 +:1039B0000C94092384E090E00C94FB22682F84E0AF +:1039C00090E00C9409238091D30180FF0BC060919B +:1039D000130185E0689FB001112475956795759571 +:1039E00067952BC081FF09C06091130185E0689F36 +:1039F000B00111247595679520C082FF07C06091C2 +:103A0000130185E0689FB001112417C09091D40183 +:103A10009923D1F060911201961788F72091130134 +:103A200085E0289F90011124929FA001939F500D43 +:103A3000112470E0CA010E94CD226038710540F463 +:103A40006115710519F406C065E070E0862F0895D0 +:103A50008FE7089581E008958091D30180FF08C029 +:103A60006091110170E0759567957595679521C016 +:103A700081FF06C06091110170E07595679519C0CE +:103A800082FF04C06091110170E010C09091D401D8 +:103A9000992399F0609110019617A0F78091110178 +:103AA000899FC001112470E00E94CD226038710509 +:103AB00040F46115710519F406C061E070E0862FCD +:103AC00008958FE7089581E00895803F21F40E94D2 +:103AD000E31C819504C0813F29F40E94E31C80937C +:103AE000D7010895823F21F40E94E31C819504C010 +:103AF000833F29F40E94E31C8093D6010895893FF7 +:103B000019F40E942C1D05C08A3F31F40E942C1D1F +:103B100081958093D80108958B3F21F40E942C1D3C +:103B2000819504C08C3F29F40E942C1D8093D901FB +:103B30000895843F21F48091D501816017C0853FAD +:103B400021F48091D501826011C0863F21F48091DB +:103B5000D50184600BC0873F21F48091D501886036 +:103B600005C0883F31F48091D50180618093D501F3 +:103B700008958D3F21F48091D30181600BC08E3F69 +:103B800021F48091D301826005C08F3F29F4809198 +:103B9000D30184608093D3010895803F39F48091EC +:103BA000D70187FF6CC01092D70169C0813F29F40B +:103BB0008091D7011816BCF362C09091D601823F64 +:103BC00029F497FF5CC01092D60159C0833F19F4C5 +:103BD0001916CCF354C0893F41F48091D8011816CE +:103BE0000CF04DC01092D8014AC08A3F29F4809150 +:103BF000D80187FF44C0F6CF8B3F39F48091D901BB +:103C000087FF3DC01092D9013AC08C3F29F48091C2 +:103C1000D9011816BCF333C0843F21F48091D5013B +:103C20008E7F17C0853F21F48091D5018D7F11C013 +:103C3000863F21F48091D5018B7F0BC0873F21F413 +:103C40008091D501877F05C0883F31F48091D501EF +:103C50008F7E8093D50113C08D3F21F48091D301D5 +:103C60008E7F0BC08E3F21F48091D3018D7F05C0E4 +:103C70008F3F29F48091D3018B7F8093D301809172 +:103C8000D60181110EC08091D70181110AC08091A7 +:103C9000D801811106C08091D901811102C0109212 +:103CA000D401089585ED91E00E94BB0E0E94B91ADF +:103CB0009093D2018093D10108951F93CF93DF9306 +:103CC0008091D1019091D2010E94C51AAC019091CE +:103CD000D401992321F02091140130E006C02091F5 +:103CE00015018AE0289F900111244217530708F418 +:103CF00085C08091D601C091D701D091D801109193 +:103D0000D901811107C0C11175C0D11173C0111142 +:103D100071C074C09F3F19F09F5F9093D401181633 +:103D200024F40E94E31C8093D6018091D60187FF82 +:103D300005C00E94E31C81958093D6011C1624F4D3 +:103D40000E94E31C8093D7018091D70187FF05C0B3 +:103D50000E94E31C81958093D7016091D601662370 +:103D600031F1C091D701CC2311F1062E000C770B55 +:103D7000880B990B0E94D42123E333E343E35FE3F1 +:103D80000E9438220E949C216093D6016C2FCC0F98 +:103D9000770B880B990B0E94D42123E333E343E391 +:103DA0005FE30E9438220E949C216093D7011D1678 +:103DB00024F40E942C1D8093D8018091D80187FFA4 +:103DC00005C00E942C1D81958093D801111624F402 +:103DD0000E942C1D8093D9018091D90187FF05C0D5 +:103DE0000E942C1D81958093D901DF91CF911F9165 +:103DF0000C94521E9F3F09F08FCFA0CFDF91CF913F +:103E00001F910895E5EDF1E085E0DF011D928A95AF +:103E1000E9F71092D4011092D3010895833081F113 +:103E200028F4813059F08230D1F00895853009F4BA +:103E300049C0B8F1863009F456C008958091150143 +:103E4000262F30E0280F311D2F3F310524F4680F55 +:103E50006093150108958FEF809315010895809167 +:103E60001401262F30E0280F311D2F3F310524F497 +:103E7000680F6093140108958FEF809314010895E3 +:103E800080911301262F30E0280F311D2F3F31057F +:103E900024F4680F6093130108958FEF809313014A +:103EA000089580911201262F30E0280F311D2F3FF9 +:103EB000310524F4680F6093120108958FEF809309 +:103EC0001201089580911101262F30E0280F311D35 +:103ED0002F3F310524F4680F6093110108958FEF8F +:103EE00080931101089580911001262F30E0280F52 +:103EF000311D2F3F310524F4680F609310010895A0 +:103F00008FEF809310010895833011F128F48130F0 +:103F100049F0823091F00895853081F120F18630AA +:103F2000C1F1089580911501681720F4861B8093D4 +:103F300015010895109215010895809114016817D4 +:103F400020F4861B809314010895109214010895A3 +:103F500080911301681720F4861B80931301089544 +:103F600010921301089580911201681720F4861BA6 +:103F70008093120108951092120108958091110109 +:103F8000681720F4861B8093110108951092110187 +:103F9000089580911001681720F4861B809310010A +:103FA00008951092100108950F931F938D3109F415 +:103FB0006BC008F03FC08E3009F47DC0C0F487307C +:103FC00009F46EC068F4863009F0AFC08091CC016E +:103FD000817F8E7F8093CC0181E08093DB01A6C03E +:103FE000883009F458C08B3009F49BC09EC08631DC +:103FF00009F497C078F4803109F470C0813109F078 +:1040000094C00E940D1490910D0181E08927809346 +:104010000D0187C0893109F484C08B3109F085C056 +:104020008091CC0181FB222720F991E0922790FB1F +:1040300081F94AC0853309F45BC048F4873209F43A +:1040400057C008F45AC0893209F452C06EC0833494 +:1040500038F48A3308F067C0883309F462C065C059 +:10406000833409F445C0883409F05FC00E940D1400 +:104070000FEF13ED20E3015010402040E1F700C0A6 +:1040800000000E94141B4DC00E9456210E94A40EE5 +:104090000E949A0746C00E94C81C0E94DA1C41C0B8 +:1040A0009091CC01892F817090FF12C0917F9E7FEB +:1040B0009093CC013BC08091CC0182FB222720F958 +:1040C00091E0922790FB82F98093CC01992349F1EA +:1040D0008091CC0181608093CC0123C08091CC0180 +:1040E00083FB222720F991E0922790FB83F9ECCF04 +:1040F00061E070E080E090E010C08D5141E050E060 +:1041000060E070E08A019B0104C0000F111F221FB4 +:10411000331F8A95D2F7C901B8010E94C4170E94C3 +:104120000D1481E003C08953E9CF80E01F910F9106 +:10413000089580E008950C949920CF93C82F809122 +:10414000DB01813079F018F08230E9F187C0E0912D +:104150000E01F0910F018081813169F0823209F006 +:104160007FC009C0E0910E01F0910F018081813183 +:1041700011F0823261F48C2F0E949B20811104C0C7 +:104180008C2F0E94D41F1DC081E090E01AC08C2F9C +:104190000E949920811114C0C43179F048F4CB30C9 +:1041A00079F0C03109F060C082E08093DB0108C083 +:1041B000C93219F0C83321F057C01092DB0154C046 +:1041C00081E0817053C0C93289F118F5C43171F1B1 +:1041D000A8F4C73009F046C08AE08093150194E145 +:1041E0009093140193E0909313018093120188E05F +:1041F0008093110188E28093100134C0CE51C63003 +:1042000088F5EC2FF0E0E65DFE4F80818093DA01C7 +:1042100029C0CE34E9F020F4CB3421F56AE013C094 +:10422000C13579F0C235F1F461E00DC08091DA0159 +:10423000882319F01092DA0115C081E08093DB0128 +:1042400015C061E006C08091DA010E940E1F0AC00D +:104250006AE08091DA010E94841F04C01092DB01A1 +:1042600080E004C081E002C080E0ABCFCF91089530 +:10427000E1E8F0E0808188608083808181608083D4 +:104280008FB7F89493E09093890090ED9093880015 +:104290008FBF0895EFE6F0E080818260808308950B +:1042A000EFE6F0E080818D7F80830895EFE6F0E017 +:1042B000908182E08927808308951F920F920FB624 +:1042C0000F9211242F933F934F935F936F937F939C +:1042D0008F939F93AF93BF93EF93FF938091DC01F4 +:1042E0009091DD0101969093DD018093DC018111B5 +:1042F00003C082E00E949A07E091DD01E695E69511 +:10430000F0E0EE5CFA4FE4918091DC018E1303C083 +:1043100080E00E949A07FF91EF91BF91AF919F912A +:104320008F917F916F915F914F913F912F910F905E +:104330000FBE0F901F9018950E94A3216894B11191 +:104340000C94322208950E94172288F09F5798F00B +:10435000B92F9927B751B0F0E1F0660F771F881F8A +:10436000991F1AF0BA95C9F714C0B13091F00E94A4 +:104370003122B1E008950C943122672F782F8827DD +:10438000B85F39F0B93FCCF3869577956795B395CB +:10439000D9F73EF490958095709561957F4F8F4F3A +:1043A0009F4F0895E89409C097FB3EF4909580953F +:1043B000709561957F4F8F4F9F4F9923A9F0F92FEB +:1043C00096E9BB279395F695879577956795B79569 +:1043D000F111F8CFFAF4BB0F11F460FF1BC06F5F4F +:1043E0007F4F8F4F9F4F16C0882311F096E911C061 +:1043F000772321F09EE8872F762F05C0662371F082 +:1044000096E8862F70E060E02AF09A95660F771F95 +:10441000881FDAF7880F9695879597F9089557FDC5 +:104420009058440F551F59F05F3F71F04795880F22 +:1044300097FB991F61F09F3F79F0879508951216B9 +:1044400013061406551FF2CF4695F1DF08C0161665 +:1044500017061806991FF1CF869571056105089416 +:104460000895E894BB2766277727CB0197F908952D +:104470000E944B220C94BC220E94AE2238F00E9473 +:10448000B52220F0952311F00C94A5220C94AB22B8 +:1044900011240C9432220E940F2270F3959FC1F3D5 +:1044A000950F50E0551F629FF001729FBB27F00DE2 +:1044B000B11D639FAA27F00DB11DAA1F649F662737 +:1044C000B00DA11D661F829F2227B00DA11D621F86 +:1044D000739FB00DA11D621F839FA00D611D221F40 +:1044E000749F3327A00D611D231F849F600D211D24 +:1044F000822F762F6A2F11249F5750409AF0F1F0A7 +:1045000088234AF0EE0FFF1FBB1F661F771F881F0F +:1045100091505040A9F79E3F510580F00C94A52280 +:104520000C9432225F3FE4F3983ED4F3869577955E +:104530006795B795F795E7959F5FC1F7FE2B880FB5 +:10454000911D9695879597F9089597F99F6780E84B +:1045500070E060E008959FEF80EC089500240A94D5 +:104560001616170618060906089500240A9412164E +:104570001306140605060895092E0394000C11F481 +:10458000882352F0BB0F40F4BF2B11F460FF04C02E +:104590006F5F7F4F8F4F9F4F089597FB072E16F445 +:1045A000009407D077FD09D00E94E72207FC05D0D0 +:1045B0003EF4909581959F4F0895709561957F4F3A +:1045C0000895EE0FFF1F0590F491E02D0994AA1BAA +:1045D000BB1B51E107C0AA1FBB1FA617B70710F0EE +:1045E000A61BB70B881F991F5A95A9F78095909520 +:1045F000BC01CD010895F999FECF92BD81BDF89A15 +:10460000992780B50895A8E1B0E042E050E00C940D +:104610001E23262FF999FECF1FBA92BD81BD20BD62 +:104620000FB6F894FA9AF99A0FBE019608950E946F +:104630000923272F0C940A23DC01CB01FC01F999F3 +:10464000FECF06C0F2BDE1BDF89A319600B40D92DE +:0C46500041505040B8F70895F894FFCF97 +:10465C0020029B072B080608D2079E070101BA010E +:10466C0028080A03140A3F4D3639F304A6047004D3 +:10467C003704CA03E303FC03150401020304050613 +:04468C000708090012 +:00000001FF diff --git a/keyboard/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx-hjkl/keymap.c b/keyboard/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx-hjkl/keymap.c new file mode 100644 index 0000000000..7c9f673816 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx-hjkl/keymap.c @@ -0,0 +1,134 @@ +#include "ergodox_ez.h" +#include "debug.h" +#include "action_layer.h" + +#define BASE 0 +#define SYMB 1 +#define PLVR 2 +#define ARRW 3 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [BASE] = KEYMAP( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_F14, + KC_TAB, KC_Q, KC_W, KC_D, KC_F, KC_K, TG(PLVR), + CTL_T(KC_ESC), KC_A, KC_S, KC_E, KC_T, KC_G, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LBRC, + KC_F1, KC_F2, KC_F3, KC_LALT, KC_LGUI, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_VOLD, KC_MUTE, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_VOLU, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_BSPC, CTL_T(KC_ESC), KC_FN1, + // + /*-*/ KC_F15, KC_6, KC_7, KC_8, KC_9, KC_0, KC_EQL, + /*-*/ KC_BSLS, KC_J, KC_U, KC_R, KC_L, KC_SCLN, KC_MINS, + /*-*/ /*-*/ KC_Y, KC_N, KC_I, KC_O, KC_H, KC_ENT, + /*-*/ KC_RBRC, KC_P, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + /*-*/ /*-*/ /*-*/ KC_RGUI, KC_RALT, KC_F4, KC_F5, KC_F6, + KC_MPLY, KC_MNXT, + KC_MPRV, + KC_FN3, KC_QUOT, KC_SPC + ), + [SYMB] = KEYMAP( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_TRNS, + KC_TRNS, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, + /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, + // + /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + /*-*/ KC_TRNS, KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS, + /*-*/ /*-*/ KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_TRNS, + /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS + ), + [PLVR] = KEYMAP( + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, + KC_NO, KC_1, KC_2, KC_3, KC_4, KC_5, KC_TRNS, + KC_NO, KC_Q, KC_W, KC_E, KC_R, KC_T, + KC_NO, KC_A, KC_S, KC_D, KC_F, KC_G, KC_NO, + KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_NO, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, + /*-*/ /*-*/ /*-*/ /*-*/ KC_C, KC_V, KC_NO, + // + /*-*/ KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + /*-*/ KC_NO, KC_6, KC_7, KC_8, KC_9, KC_0, KC_NO, + /*-*/ /*-*/ KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, + /*-*/ KC_NO, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + /*-*/ /*-*/ /*-*/ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_NO, KC_N, KC_M + ), + [ARRW] = KEYMAP( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_U, KC_MS_D, KC_MS_R, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, + /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, + // + /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + /*-*/ /*-*/ KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_TRNS, KC_TRNS, + /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + /*-*/ /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS + ), +}; + +const uint16_t PROGMEM fn_actions[] = { + [SYMB] = ACTION_LAYER_TAP_TOGGLE(SYMB), // FN1 - Momentary Symbols Layer + [PLVR] = ACTION_LAYER_TAP_TOGGLE(PLVR), // FN2 - Momentary Plover Layer + [ARRW] = ACTION_LAYER_TAP_TOGGLE(ARRW), // FN3 - Momentary Arrows Layer +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch(id) { + case 0: + if (record->event.pressed) { + register_code(KC_RSFT); + } else { + unregister_code(KC_RSFT); + } + break; + } + return MACRO_NONE; +}; + +// Runs just one time when the keyboard initializes. +void matrix_init_user(void) { +}; + +// Runs constantly in the background, in a loop. +void matrix_scan_user(void) { + uint8_t layer = biton32(layer_state); + ergodox_board_led_off(); + ergodox_right_led_1_off(); + ergodox_right_led_2_off(); + ergodox_right_led_3_off(); + switch (layer) { + case SYMB: + ergodox_right_led_1_on(); + break; + case PLVR: + ergodox_right_led_2_on(); + break; + case ARRW: + ergodox_right_led_3_on(); + break; + default: + break; + } +}; diff --git a/keyboard/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx-hjkl/readme.md b/keyboard/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx-hjkl/readme.md new file mode 100644 index 0000000000..4188d2b50c --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx-hjkl/readme.md @@ -0,0 +1,50 @@ +# Roman's Layout + +There are four layers: + +- **BASE** is [Norman layout](https://normanlayout.info/). +- **SYMB** for numbers and symbols. +- **PLVR** is optimized for [Plover](http://www.openstenoproject.org). +- **ARRW** for navigation (same fingers for arrows as HJKL on QWERTY). + +Looking for IJKL arrows? [Here we +go](../romanzolotarev-norman-plover-osx/). + +[![keyboard-layout](romanzolotarev-norman-plover-osx-hjkl.png)](rttp://www.keyboard-layout-editor.com/#/gists/56ffedceb0668dda47c993e7271563e0) + +## Switching + +- Tap `SYMB` to toggle **SYMB**. +- Tap `ARRW` to toggle **ARRW**. +- Hold `SYMB` (or `ARRW`) to activate **SYMB** (or **ARRW**) while holding. +- Tap `PLVR` to toggle **PLVR**. + +## LEDs + +- Red: SYMB is on. +- Green: PLVR is on. +- Blue: ARRW is on. + +## Functional Keys + +- Tap `F1` to mute microphone via [Shush](http://mizage.com/shush/). +- Tap `F2` to copy screenshot to the clipboard. +- Hold `SHIFT` and tap `F2` to save screenshot as a file. +- Tap `F3`, `F4`, `F5`, `F6` to resize a window via [Divvy](http://mizage.com/divvy/). +- Tap `F14`, `F15` to adjust display brightness. + +**IMPORTANT**: If you have another keyboard connected via Bluetooth, then +`F14` and `F15` will not work. Turn off that Bluetooth keyboard. Re-plug +you ErgoDox. Enjoy! + +## CTRL/ESC + +Both of those keys are frequently used in Vim. + +- Tap `CTRL/ESC` to send `ESC`. +- Hold `CTRL/ESC` to use as `CTRL`. + +## Activate N-rollover + +- While in **BASE** hold left `SHIFT` and right `SHIRT` and then tap `N`. +- Then you can activate **PLVR** and use ErgoDox EZ for steno. diff --git a/keyboard/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx-hjkl/romanzolotarev-norman-plover-osx-hjkl.hex b/keyboard/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx-hjkl/romanzolotarev-norman-plover-osx-hjkl.hex new file mode 100644 index 0000000000..c341ba2b2b --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx-hjkl/romanzolotarev-norman-plover-osx-hjkl.hex @@ -0,0 +1,1139 @@ +:100000000C94BB020C94FF020C94FF020C94FF02B0 +:100010000C94FF020C94FF020C94FF020C94FF025C +:100020000C94FF020C94FF020C94090C0C94DB0C52 +:100030000C94FF020C94FF020C94FF020C94FF023C +:100040000C94FF020C94A9210C94FF020C94FF0263 +:100050000C94FF020C94341B0C94FF020C94FF02CE +:100060000C94FF020C94FF020C94FF020C94FF020C +:100070000C94FF020C94FF020C94FF020C94FF02FC +:100080000C94FF020C94FF020C94FF020C94FF02EC +:100090000C94FF020C94FF020C94FF020C94FF02DC +:1000A0000C94FF020C94FF020C94FF02480D6A0DA1 +:1000B000580E6A0D580EAF0DD20D580E270E3A0E7F +:1000C0002611261163116311A611E411FD13FD130E +:1000D000FD11FD13FE12FE12D113FD13FD13E813E3 +:1000E0000000F0A1F0A2F0A335002B002971E1007F +:1000F0003A0000001E00140004001D003B00C10077 +:100100001F001A0016001B003C0029712000070088 +:1001100008000600E2002A0021000900170019006B +:10012000E300A90022000E000A0005000000AA005A +:100130006900025400002F000000A8006A0031008E +:10014000000030000000AE0023000D001C00130072 +:100150000000AB002400180011001000E700AC0004 +:10016000250015000C003600E6002C0026000F00CC +:10017000120037003D003400270033000B00380028 +:100180003E00C3002E002D002800E5003F000000C7 +:1001900001000100010001000100000001001E003B +:1001A0001E0201000100010001001F001F020100EA +:1001B00001000100010020002002010001000100F7 +:1001C00001002100210201000100010001002200C4 +:1001D00022020100000001000100010000000100F6 +:1001E000000001000100010000000100000001000A +:1001F000010023002302010000000100010024008F +:100200002402010001000100010025002502010077 +:10021000010001000100260026020100010001008A +:100220000100270027020100010001000100010078 +:1002300001000100010000000000000000000000BB +:100240000100000000001E00140004000100000076 +:1002500000001F001A001600010019000000200015 +:10026000080007000000060000002100150009003A +:10027000000001000000220017000A000000010039 +:10028000010001000000000000000100010000006A +:100290000000000000000100000023001C000B0013 +:1002A000000001000000240018000D000000010003 +:1002B000000025000C000E000000100000002600C9 +:1002C00012000F000000110000002700130033008F +:1002D00000000000000000002F00340000000000BB +:1002E0000100010001000100010000000100010007 +:1002F000010001000100010001000100F200010005 +:100300000100010001000100F000010001000100F6 +:1003100001000100F100F4000100010001000100F2 +:10032000F300F500000001000100010000000100E1 +:1003300000000100010001000000010000000100B8 +:100340000100010050000100000001000100010057 +:1003500051000100010001000100010052000100F4 +:1003600001000100010001004F0001000100010037 +:100370000100010001000100010001000100010075 +:100380000100010001000000160345007200670033 +:100390006F0044006F007800200045005A00000004 +:1003A00016034500720067006F0044006F0078007C +:1003B000200045005A0000000403090409026D00F2 +:1003C000040100A0FA090400000103010100092151 +:1003D00011010001223F000705810308000A0904FA +:1003E00001000103010200092111010001224D0059 +:1003F0000705820308000A09040200010300000047 +:100400000921110100012236000705830308000AB3 +:100410000904030001030000000921110100012269 +:1004200039000705840310000112011001000000CB +:1004300008EDFE071301000102000105010906A1F4 +:1004400001050719E029E7150025019508750181C7 +:100450000205081901290595057501910295017597 +:100460000391010507190029771500250195787575 +:10047000018102C005010980A10185021601002643 +:10048000B7001A01002AB700751095018100C00558 +:100490000C0901A1018503160100269C021A010026 +:1004A0002A9C02751095018100C005010902A10175 +:1004B0000901A10005091901290515002501950566 +:1004C000750181029501750381010501093009312A +:1004D0001581257F95027508810609381581257FCC +:1004E000950175088106050C0A38021581257F954E +:1004F0000175088106C0C005010906A1010507199B +:10050000E029E7150025019508750181029501751F +:1005100008810105081901290595057501910295C4 +:1005200001750391010507190029FF150025FF95A5 +:100530000675088100C000000000000000000000F7 +:1005400000010204060A0F17202C3A4A5D71879DAC +:10055000B3C7DAE9F5FCFFFCF5E9DAC7B39D8771AB +:100560005D4A3A2C20170F0A060402010000000021 +:1005700000000000000011241FBECFEFDAE0DEBF54 +:10058000CDBF04B603FE24C08091EF019091F0012D +:10059000A091F101B091F2018730904BA740B04B90 +:1005A000B9F41092EF011092F0011092F101109243 +:1005B000F20114BE84B7877F84BF88E10FB6F89438 +:1005C00080936000109260000FBEE0E0FFE30995A9 +:1005D00011E0A0E0B1E0E6EDF6E402C005900D9276 +:1005E000A433B107D9F711E0A4E3B1E001C01D9233 +:1005F000AF3EB107E1F70E944D090C9469230C94BA +:10060000000061110BC0FC018281882321F085EE7E +:100610000E94BA0F03C085EE0E94821080E090E035 +:10062000089508956091B1017091B2018091B30174 +:100630009091B4010E94601A56985E9825982D9862 +:1006400026982E9827982F98823039F0833041F0E1 +:10065000813041F4259A2D9A0895269A2E9A08956C +:10066000279A2F9A08950C94120356985E9825980D +:100670002D9826982E9827982F988FEF90E090939A +:1006800089008093880090938B0080938A009093D8 +:100690008D0080938C00259A2D9A2FEF80E792E0B1 +:1006A000215080409040E1F700C00000269A2E9A29 +:1006B0002FEF80E792E0215080409040E1F700C0AA +:1006C0000000279A2F9A2FEF80E792E02150804078 +:1006D0009040E1F700C0000025982D982FEF80E7AB +:1006E00092E0215080409040E1F700C00000269841 +:1006F0002E982FEF80E792E0215080409040E1F764 +:1007000000C0000027982F9856985E9825982D983D +:1007100026982E9827982F98089589EA809380002C +:1007200089E08093810024982C983F988AB18F7437 +:100730008AB96E98479A8BB1806B8BB9769A0E9472 +:1007400035030C94110380E2809300018091340101 +:1007500081110EC00E94F20381E0809334012FEFDB +:1007600083ED90E3215080409040E1F700C000000D +:1007700080E40E94F8038093000181112EC00E9442 +:10078000220480930001811128C00E9422048093DA +:100790000001811122C08FE30E9422048093000196 +:1007A00081111BC00E941A0480E40E94F803809308 +:1007B0000001811112C08CE00E942204809300018C +:1007C00081110BC00E94220480930001811105C099 +:1007D0008FE30E942204809300010E941A048091FA +:1007E000000108951092B9008AE08093B80008953E +:1007F00094EA9093BC009091BC0097FFFCCF90913D +:10080000B900987F983021F0903111F081E008957F +:100810008093BB0084E88093BC008091BC0087FF7C +:10082000FCCF8091B900887F883111F0803471F756 +:1008300080E0089584E98093BC008091BC0084FD31 +:10084000FCCF08958093BB0084E88093BC00809126 +:10085000BC0087FFFCCF9091B900987F81E098326F +:1008600009F480E0089584E88093BC008091BC0086 +:1008700087FFFCCF8091BB0008958091000181111A +:1008800015C080E40E94F8038093000181110CC020 +:1008900082E10E94220480930001811105C08FEF44 +:1008A0000E942204809300010E941A0484B1807F78 +:1008B00084B985B1807F85B98AB1837F8AB98BB1CC +:1008C000837F8BB93E98469808950E94A303809336 +:1008D00000010E943D0480B38C7080BB81B3836FA4 +:1008E00081BBA6E3B1E0E4E4F1E08EE08E0F11926B +:1008F0001D928E13FCCF0C948D03BF92CF92DF928A +:10090000EF92FF920F931F93CF93DF93809100019B +:10091000882379F0809135018F5F809335018111B3 +:1009200008C00E94A30380930001811102C00E94AD +:10093000350306E311E0C0E0D0E0DD24D39482E08B +:10094000C82EEE24E394F12CC730D10500F5809138 +:100950000001811164C080E40E94F80380930001CB +:10096000811112C082E10E94220480930001811152 +:100970000BC0C7010C2E01C0880F0A94EAF78095BE +:100980000E942204809300010E941A0448C0CA30C9 +:10099000A1F028F4C83059F0C93061F005C0CC305E +:1009A00089F070F0CD3089F0209A289810C0219AF3 +:1009B00029980DC0229A2A980AC0239A2B9807C01A +:1009C000529A01C0539A5B9802C03E9A469890EAA8 +:1009D0009A95F1F79FB1799902C082E001C080E059 +:1009E00091709D25982B7C9902C084E001C080E025 +:1009F000892B7D9902C038E001C030E0832B7E99BD +:100A000002C020E101C020E0822B9FB19095991F88 +:100A10009927991F9295990F907E892B0FC08091ED +:100A20000001811149C080E40E94F8038093000115 +:100A3000882379F1B12C0E941A048B2DF801908142 +:100A4000981719F08083C09201010E943D042196FD +:100A50000F5F1F4FCE30D10509F076CF8091010195 +:100A6000882361F1815080930101882339F08FE957 +:100A70009FE00197F1F700C0000020C0A4E4B1E0BE +:100A8000E6E3F1E0CF01825F91919D938E13FCCF5D +:100A900015C083E10E942204809300018111CACF16 +:100AA00081E40E94F803809300018111C3CF0E946A +:100AB0003304B82EB094BFCF80E0C0CF0E94330380 +:100AC00081E0DF91CF911F910F91FF90EF90DF9028 +:100AD000CF90BF900895E82FF0E0EC5BFE4F80814F +:100AE000089508958B3B910578F4883A910540F577 +:100AF000853A9105D0F48430910508F0B1C0813079 +:100B0000910509F4ADC06BC0803E910508F467C043 +:100B1000883E910508F4A4C09C01205F3109203172 +:100B2000310508F05CC090650895853A910509F497 +:100B300059C0863A910509F058C082E890E40895BA +:100B4000883A910509F454C0893A910509F453C0D3 +:100B50008A3A910509F452C08B3A910509F451C0C3 +:100B60008C3A910509F450C08D3A910509F44FC0B3 +:100B7000803B910509F44EC08E3A910509F44DC0B1 +:100B80008F3A910509F44CC0813B910509F44BC0A3 +:100B9000823B910509F44AC0833B910509F449C0A1 +:100BA000843B910509F448C0853B910509F447C091 +:100BB000863B910509F446C0873B910509F445C081 +:100BC000883B910509F444C0893B910509F443C071 +:100BD0008A3B910509F442C080E094E4089580E0E6 +:100BE00090E0089581E890E4089583E890E4089502 +:100BF00082EE94E4089589EE94E408958AEE94E4F4 +:100C0000089585EB94E4089586EB94E4089587EBCA +:100C100094E408958CEC94E408958DEC94E40895A4 +:100C200083E895E408958AE895E4089582E995E4D7 +:100C3000089584E995E4089581E296E4089583E2B5 +:100C400096E4089584E296E4089585E296E4089592 +:100C500086E296E4089587E296E408958AE296E4AF +:100C60000895089596E0799FF001112494E5899FF5 +:100C7000E00DF11D1124E60FF11DEE0FFF1FE851ED +:100C8000FF4F859194910895880F991FFC01E05AB8 +:100C9000F040859194910895880F991FFC01E052CE +:100CA000FF4F85919491089526E0729FF0011124E1 +:100CB00044E5849FE00DF11D1124E60FF11DEE0FB8 +:100CC000FF1FE851FF4F859194919C013A952115A2 +:100CD0004FE1340708F41CC13F512115304120F485 +:100CE0009F700E944C0608959C013053211530419D +:100CF00018F49927906C0895811520E5920771F4F6 +:100D00000E9421144FEF84E39CE0415080409040CA +:100D1000E1F700C000000E94591BFAC0813020E5B5 +:100D2000920731F48091CD0181608093CD01F0C0B4 +:100D30009C0130552115304108F051C0292F33272F +:100D40002F70332721303105D9F4AC01437055277A +:100D500002C0220F331F4A95E2F73C68AC0164E001 +:100D6000440F551F6A95E1F744275370242B352B08 +:100D700073E0880F991F7A95E1F7807699271DC057 +:100D80002230310529F4982F8827816F906A0895C1 +:100D900023303105A9F4AC014370552721E030E040 +:100DA00002C0220F331F4A95E2F73C6843E0880FE8 +:100DB000991F4A95E1F7807E9770822B932B0895B7 +:100DC00024303105E1F4AC014370552721E030E0D7 +:100DD00002C0220F331F4A95E2F73A68E7CF9C0121 +:100DE00030572115304118F49F70906208959C018E +:100DF00030582115304118F49F70906A0895803E54 +:100E00009105E0F4803C910558F58133910509F492 +:100E10006FC048F48932910509F463C08A329105A4 +:100E200009F46DC072C089339105E9F082389105EB +:100E3000D1F08533910509F44DC067C0833E91051B +:100E400081F138F4803E9105B9F0823E9105D9F0E8 +:100E50005CC0863E910561F1873E9105A1F155C0C8 +:100E60000E94440608952091E00120FD02C021FF68 +:100E70004CC080EE90E049C08091E00180FFF9CF46 +:100E800089E390E042C08091E00182FF0EC0809132 +:100E9000E00184FF03C080E090E037C083EE90E083 +:100EA00034C08091E00182FFF2CF82EE90E02DC04D +:100EB0008091E00183FF0BC08091E00184FDEBCFC6 +:100EC00087EE90E022C08091E00183FFF5CF86EEAF +:100ED00090E01BC08091E00185FF07C089E290E0AF +:100EE00014C08091E00185FFF9CF85E390E00DC04B +:100EF0008091E00186FF07C08AE290E006C0809101 +:100F0000E00186FFF9CF81E390E00E947205089529 +:100F1000089508950C948907809162010895CF93F4 +:100F2000DF9300D01F92CDB7DEB79C018091E60120 +:100F3000843019F593E099833B832A839093E900E9 +:100F40008FEF9091E800815095FD06C095ED9A9540 +:100F5000F1F700008111F5CF8091E80085FF0DC009 +:100F600040E050E063E070E0CE0101960E94F90994 +:100F70008091E8008E778093E8000F900F900F909B +:100F8000DF91CF910895CF93DF9300D01F92CDB71B +:100F9000DEB72091E601243021F522E029839B83EE +:100FA0008A8383E08093E9008FEF9091E80081507D +:100FB00095FD06C095ED9A95F1F700008111F5CFEA +:100FC0008091E80085FF0DC040E050E063E070E0F4 +:100FD000CE0101960E94F9098091E8008E778093F6 +:100FE000E8000F900F900F90DF91CF91089520911E +:100FF000E6012430F1F422E02093E9002FEF309154 +:10100000E800215035FD06C035ED3A95F1F70000B6 +:101010002111F5CF2091E80025FF0BC040E050E002 +:1010200065E070E00E94F9098091E8008E77809376 +:10103000E8000895CF93DF93EC019091E60194309E +:1010400009F046C080910C018823D9F080910D01F0 +:101050008823B9F09093E9008FEF9091E8008150D8 +:1010600095FD06C095E19A95F1F700008111F5CF45 +:101070008091E80085FF2CC040E050E060E170E026 +:1010800017C081E08093E9008FEF9091E8008150D4 +:1010900095FD06C095ED9A95F1F700008111F5CF09 +:1010A0008091E80085FF14C040E050E068E070E007 +:1010B000CE010E94F9098091E8008E778093E800C4 +:1010C00080E1FE01A2E5B1E001900D928A95E1F781 +:1010D000DF91CF9108958091E501811109C00E94AF +:1010E0008E0B0E94EB0B8091E20084608093E20003 +:1010F00008951092E501089508950C9496210E9498 +:10110000EF1A0E949C210E94910E0C948A0742E0E3 +:1011100061EC81E00E94080B42E061EC82E00E94F9 +:10112000080B42E061EC83E00E94080B42E161ECB5 +:1011300084E00C94080B8091E801833009F455C0D9 +:1011400030F4813071F0823009F48EC008958A3015 +:1011500009F47AC08B3009F460C0893009F09CC072 +:1011600020C08091E701813A09F096C08091E800A3 +:10117000877F8093E8008091EB019091EC01892BAF +:1011800021F460E182E591E003C060E080E090E05E +:1011900070E00E94440A8091E8008B778093E80019 +:1011A00008958091E701813209F076C08091EB01CA +:1011B0009091EC01009719F0039709F06DC08091B0 +:1011C000E800877F8093E8008091E80082FD05C0F9 +:1011D0008091E6018111F8CF5FC08091F10080938A +:1011E00062018091E8008B7753C08091E701813ADA +:1011F00009F052C08091EB019091EC01892B09F02C +:101200004BC08091E800877F8093E8008091E800E0 +:1012100080FFFCCF80910C0136C08091E7018132C4 +:10122000D9F58091EB019091EC01892BA9F5809182 +:10123000E800877F8093E8000E943D0B8091E901E0 +:1012400080930C010C9421148091E701813221F5E7 +:101250008091E800877F8093E8000E943D0B809199 +:10126000EA018093630108958091E701813AA1F436 +:101270008091E800877F8093E8008091E80080FFFC +:10128000FCCF809163018093F1008091E8008E771C +:101290008093E8000C943D0B089584B7877F84BF4A +:1012A00088E10FB6F89480936000109260000FBE42 +:1012B00090E080E80FB6F89480936100909361000D +:1012C0000FBE0E94E00E0E948E0B0E94EB0B8091DD +:1012D000E20084608093E20078940E94710E0E9484 +:1012E000E20E82E091E00E948C0E0E9484218091A7 +:1012F000E601853069F40E94B01A8091E4018823E8 +:10130000B1F30E94DB1A882391F30E94E309EFCF27 +:101310000E94E80EECCF292F332723303105C9F086 +:1013200064F42130310581F02230310509F043C0E9 +:101330008DE690E02CEB33E042C021323105F1F034 +:101340002232310541F137C082E190E029E234E0F8 +:1013500036C099278130910541F08230910541F0E6 +:10136000892B49F5E8EBF3E005C0E0EAF3E002C0C1 +:10137000E8E8F3E0849190E09F0121C06430D8F464 +:10138000E62FF0E0EE0FFF1FEE5DFE4F2081318172 +:1013900089E090E014C0643070F470E0FB01EE0F5F +:1013A000FF1FE65EFE4F20813181FB01EA5EFE4FAA +:1013B000808190E004C080E090E020E030E0FA011D +:1013C00031832083089580E189BD82E189BD09B41C +:1013D00000FEFDCF8091D8008F7D8093D800809152 +:1013E000E00082608093E0008091E00081FDFCCF0E +:1013F0000895CF92DF92EF92FF920F931F93CF93B6 +:10140000DF93EC018B016A010E945C0B811133C0F8 +:10141000C114D10439F0F60180819181081B190BA8 +:10142000C80FD91FE12CF12C0115110519F180917C +:10143000E80085FD16C08091E8008E778093E80073 +:10144000C114D10449F0F60180819181E80EF91EA2 +:10145000F182E08285E00FC00E945C0B882321F3BB +:101460000AC089918093F10001501109FFEFEF1A32 +:10147000FF0ADACF80E0DF91CF911F910F91FF90AB +:10148000EF90DF90CF9008952091ED013091EE0123 +:101490002617370748F06115710539F42091E800E7 +:1014A0002E772093E80001C0B90140E06115710575 +:1014B000A9F12091E601222309F443C0253009F463 +:1014C00042C02091E80023FD40C02091E80022FDA9 +:1014D00032C02091E80020FFE9CF4091F300209135 +:1014E000F20030E0342BFC01CF016115710559F099 +:1014F0002830310540F481918093F10061507109E9 +:101500002F5F3F4FF1CF41E02830310509F040E037 +:101510002091E8002E772093E800C8CF4111C9CF71 +:101520000AC08091E601882361F0853061F08091E6 +:10153000E80083FD0AC08091E80082FFF2CF80E0DE +:10154000089582E0089583E0089581E00895209150 +:10155000ED013091EE012617370748F0611571054E +:1015600039F42091E8002E772093E80001C0B901FA +:10157000FC0120E06115710591F18091E60188235D +:1015800009F440C0853009F43FC08091E80083FD34 +:101590003DC08091E80082FD2FC08091E80080FF6F +:1015A000E9CF2091F3008091F20090E0922B611539 +:1015B000710559F08830910540F424912093F10091 +:1015C0003196615071090196F2CF21E0089709F038 +:1015D00020E08091E8008E778093E800CBCF211146 +:1015E000CCCF0AC08091E601882361F0853061F09C +:1015F0008091E80083FD0AC08091E80082FFF2CF6D +:1016000080E0089582E0089583E0089581E00895E0 +:10161000982F973058F59093E900981739F070910A +:10162000EC002091ED005091F00003C0242F762FA4 +:1016300050E021FF19C03091EB003E7F3093EB006A +:101640003091ED003D7F3093ED003091EB00316043 +:101650003093EB007093EC002093ED005093F0007A +:101660002091EE0027FF07C09F5FD3CF8F7080933C +:10167000E90081E0089580E008958091E70187FF07 +:1016800011C08091E80082FD05C08091E6018111C2 +:10169000F8CF11C08091E8008B770BC08091E601F4 +:1016A000882349F08091E80080FFF8CF8091E8001E +:1016B0008E778093E80008952091E4003091E50052 +:1016C00095E64091EC00842F817040FF22C080910C +:1016D000E80080FD1CC08091E601882391F08530F0 +:1016E00091F08091EB0085FD10C04091E400509195 +:1016F000E5004217530729F39A01915011F784E04E +:10170000089582E0089583E0089581E0089580E0DF +:1017100008954091E80042FFDECF08950E94FC0B3F +:101720000E94040CE0EEF0E0808181608083E8EDAF +:10173000F0E080818F77808319BCA7EDB0E08C91B9 +:101740008E7F8C9380818F7E80831092E501089537 +:101750000F931F93CF93DF930E94FC0B0E94040C06 +:10176000C8EDD0E088818F778883888180688883FE +:1017700088818F7D888319BC1092E6011092E20166 +:101780001092E4011092E30100EE10E0F801808174 +:101790008B7F808388818160888342E060E080E085 +:1017A0000E94080BE1EEF0E080818E7F8083E2EE04 +:1017B000F0E0808181608083808188608083F8018F +:1017C00080818E7F8083888180618883DF91CF9143 +:1017D0001F910F910895E8EDF0E080818F7E808366 +:1017E000E7EDF0E080818160808384E082BF81E06A +:1017F0008093E5010C94A80BE8EDF0E080818E7FEA +:1018000080831092E20008951092DA001092E100B5 +:1018100008951F920F920FB60F9211242F933F93AA +:101820004F935F936F937F938F939F93AF93BF93E8 +:10183000EF93FF938091E10082FF0BC08091E20063 +:1018400082FF07C08091E1008B7F8093E1000E94BE +:10185000700E8091DA0080FF1FC08091D80080FF59 +:101860001BC08091DA008E7F8093DA008091D900CE +:1018700080FF0DC080E189BD82E189BD09B400FE11 +:10188000FDCF81E08093E6010E946B0805C019BC82 +:101890001092E6010E9479088091E10080FF19C052 +:1018A0008091E20080FF15C08091E2008E7F8093DE +:1018B000E2008091E20080618093E2008091D80094 +:1018C00080628093D80019BC85E08093E6010E9475 +:1018D0007D088091E10084FF30C08091E20084FFA8 +:1018E0002CC080E189BD82E189BD09B400FEFDCF35 +:1018F0008091D8008F7D8093D8008091E1008F7E09 +:101900008093E1008091E2008F7E8093E2008091DD +:10191000E20081608093E2008091E201882311F06F +:1019200084E007C08091E30087FD02C081E001C030 +:1019300083E08093E6010E947F088091E10083FFAD +:1019400029C08091E20083FF25C08091E100877F5C +:101950008093E10082E08093E6011092E2018091A1 +:10196000E1008E7F8093E1008091E2008E7F809382 +:10197000E2008091E20080618093E20042E060E05A +:1019800080E00E94080B8091F00088608093F00056 +:101990000E947C08FF91EF91BF91AF919F918F9131 +:1019A0007F916F915F914F913F912F910F900FBE5B +:1019B0000F901F9018951F920F920FB60F9211243F +:1019C0002F933F934F935F936F937F938F939F9347 +:1019D000AF93BF93CF93DF93EF93FF93C091E90051 +:1019E000CF708091EC00D82FD17080FDD0E810929C +:1019F000E9008091F000877F8093F00078940E9446 +:101A00001F0D1092E9008091F00088608093F00033 +:101A1000CD2BCF70C093E900FF91EF91DF91CF9173 +:101A2000BF91AF919F918F917F916F915F914F91F6 +:101A30003F912F910F900FBE0F901F9018951F93FD +:101A4000CF93DF93CDB7DEB7AA970FB6F894DEBF7A +:101A50000FBECDBFE7EEF1E088E08E0F9091F10070 +:101A600091938E13FBCF0E949B088091E80083FF27 +:101A70001FC18091E7019091E801492F50E04A3061 +:101A8000510508F015C1FA01EA5AFF4F0C941E23C4 +:101A9000803881F0823809F00BC18091EB018F70A2 +:101AA0008093E9008091EB0085FB882780F91092F4 +:101AB000E90006C08091E3019091E40191118260F8 +:101AC0009091E800977F9093E8008093F100109246 +:101AD000F100C8C0282F2D7F09F0EAC0882319F033 +:101AE000823061F0E5C08091E901813009F0E0C009 +:101AF000933009F080E08093E4012BC08091E901EC +:101B0000811127C08091EB018F7009F4D1C08093BF +:101B1000E9002091EB0020FF1CC0933021F480915C +:101B2000EB00806214C09091EB0090619093EB0009 +:101B300021E030E0A90102C0440F551F8A95E2F769 +:101B40004093EA001092EA008091EB008860809355 +:101B5000EB001092E9008091E800877F86C0811138 +:101B6000A7C01091E9011F778091E3008078812B55 +:101B70008093E3008091E800877F8093E8000E94D3 +:101B80003D0B8091E80080FFFCCF8091E3008068EE +:101B90008093E300111102C082E001C083E08093D2 +:101BA000E60186C08058823008F082C08091E90149 +:101BB0009091EA018C3D53E0950779F583E08A83A3 +:101BC0008AE289834FB7F894DE01139620E03EE065 +:101BD00051E2E32FF0E050935700E49120FF03C05F +:101BE000E295EF703F5FEF708E2F90E0EA3010F0DB +:101BF000C79601C0C0968D939D932F5F243149F7FE +:101C00004FBF8091E800877F8093E8006AE270E030 +:101C1000CE0101960E94440A14C0AE014F5F5F4F8F +:101C20006091EB010E948B09BC01892B09F440C033 +:101C30009091E800977F9093E80089819A810E94B3 +:101C4000A70A8091E8008B778093E80031C0803844 +:101C500079F58091E800877F8093E8008091E20128 +:101C60008093F1008091E8008E778093E8000E94D5 +:101C70003D0B1EC081111CC09091E9019230C0F44F +:101C80008091E800877F8093E8009093E2010E94B2 +:101C90003D0B8091E201811106C08091E30087FD38 +:101CA00002C081E001C084E08093E6010E948708C1 +:101CB0008091E80083FF0AC08091E800877F8093CD +:101CC000E8008091EB0080628093EB00AA960FB64B +:101CD000F894DEBF0FBECDBFDF91CF911F91089565 +:101CE0000895CF938091E6018823A1F0C091E90087 +:101CF000CF709091EC00892F817090FD80E8C82B07 +:101D00001092E9008091E80083FD0E941F0DCF70C2 +:101D1000C093E900CF910895909369018093680181 +:101D20000895E0916801F0916901309721F00190E8 +:101D3000F081E02D099480E00895E0916801F09130 +:101D40006901309721F00280F381E02D0994089514 +:101D5000E0916801F0916901309721F00480F581EC +:101D6000E02D099408952091660130916701821752 +:101D7000930771F09093670180936601E091680189 +:101D8000F0916901309721F00680F781E02D0994E8 +:101D9000089520916401309165018217930771F0D5 +:101DA0009093650180936401E0916801F09169016D +:101DB000309721F00084F185E02D0994089508956D +:101DC0000C94DF0E0E94F51A0E9465040C94BB1B54 +:101DD000CF92DF92EF92FF920F931F93CF93DF93F7 +:101DE000CDB7DEB72B970FB6F894DEBF0FBECDBFD1 +:101DF0000E947D048BE6C82E81E0D82E00E010E022 +:101E0000E02E802F0E946B05F60141916F01F42EA8 +:101E1000F826B1F40F5F1F4F0E30110589F78FEFD1 +:101E200089838A831B820E94FE1A8160782F9D839A +:101E30008C8349815A816B818D810E948B0F40C0B8 +:101E40009091CD0191FF04C08B870E9471058B8515 +:101E500020E030E04F2D50E0922FBA01022E02C058 +:101E6000759567950A94E2F760FF24C02E83EF8290 +:101E700021E030E0690102C0CC0CDD1C9A95E2F74C +:101E800090E08C219D21892B09F420E028870E9475 +:101E9000FE1A8160782F9A8789874E815F816885D5 +:101EA0008A850E948B0FF801E559FE4F8081C82674 +:101EB000C08206C02F5F3F4F2630310569F6AACF9A +:101EC0000E94A21E10916A010E94910E1817A1F0A3 +:101ED0000E94910E80936A012B960FB6F894DEBF94 +:101EE0000FBECDBFDF91CF911F910F91FF90EF906B +:101EF000DF90CF900C948A072B960FB6F894DEBF34 +:101F00000FBECDBFDF91CF911F910F91FF90EF904A +:101F1000DF90CF900895CF93DF93CDB7DEB72B97A7 +:101F20000FB6F894DEBF0FBECDBF4F8358876987C9 +:101F30007A878B87DE01119686E0FD0111928A95E2 +:101F4000E9F785E0FE01379601900D928A95E1F759 +:101F500049815A816B817C818D819E810E94BB1653 +:101F60002B960FB6F894DEBF0FBECDBFDF91CF9199 +:101F700008950895CF93882309F4C2C0C82F8238EA +:101F800059F40E94910E81FDBBC089E30E9464193F +:101F90000E94311A89E30CC0833879F40E94910EB3 +:101FA00080FDAEC083E50E9464190E94311A83E56A +:101FB0000E94A619CF910C94311A843859F40E94CA +:101FC000910E82FD9DC087E40E9464190E94311A1F +:101FD00087E4EECF8CEF8C0F813A48F48C2F0E946F +:101FE000E92081118DC08C2F0E946419E3CF80E21B +:101FF0008C0F883048F4C77081E001C0880FCA9503 +:10200000EAF70E94EA19D6CF8BE58C0F833078F47B +:10201000C53A29F0C63A31F083E890E005C081E87E +:1020200090E002C082E890E0CF910C94B30E88E576 +:102030008C0F833108F064C0C83A39F1C93A41F1D4 +:10204000CA3A49F1CB3A51F1CC3A59F1CD3A61F162 +:10205000C03B69F1CE3A71F1CF3A79F1C13B81F1E0 +:10206000C23B89F1C33B91F1C43B99F1C53BA1F15E +:10207000C63BA9F1C73BB1F1C83BB9F1C93BC1F1BE +:10208000CA3BC9F180E090E038C082EE90E035C0F4 +:1020900089EE90E032C08AEE90E02FC085EB90E0B0 +:1020A0002CC086EB90E029C087EB90E026C08CEC3A +:1020B00090E023C08DEC90E020C083E891E01DC04B +:1020C0008AE891E01AC082E991E017C084E991E0C2 +:1020D00014C081E292E011C083E292E00EC084E27B +:1020E00092E00BC085E292E008C086E292E005C073 +:1020F00087E292E002C08AE292E0CF910C94C90E8E +:10210000CF910895882309F44BC0823859F40E9476 +:10211000910E81FF45C089E30E9464190E94311A23 +:1021200089E30CC0833871F40E94910E80FF38C09F +:1021300083E50E9464190E94311A83E50E94A61962 +:102140000C94311A843859F40E94910E82FF28C0F1 +:1021500087E40E9464190E94311A87E4EFCF9CEF54 +:10216000980F913A58F390E2980F983050F4877096 +:1021700091E001C0990F8A95EAF7892F0E94F01922 +:10218000DFCF9BE5980F933020F480E090E00C9433 +:10219000B30E885A833120F480E090E00C94C90E8D +:1021A0000895882321F00E94EA190C94311A0895A9 +:1021B000882321F00E94F0190C94311A0895BF92DF +:1021C000CF92DF92EF92FF920F931F93CF93DF9303 +:1021D00000D000D000D0CDB7DEB725E0FC01DE0195 +:1021E000119601900D922A95E1F7FC01D0801181A2 +:1021F0000281258122952F7043815481452B09F45A +:10220000FCC21F3F21F4FFEFDF1609F4F6C27C0188 +:102210002E830E94B90FD9821A8369817A81802F17 +:102220000E946019182FB92E0E9415190E94DC1700 +:102230002E81002319F00E94071A2E81EB2DE295C2 +:10224000EF70F0E0E05AFF4F0C941E238B2D807F3F +:102250009B2D9F70F92E882319F0F29480EFF822BD +:10226000002389F0FF2009F475C280E2810F8830D5 +:1022700020F48F2D0E94EA1903C08F2D0E94FA19B5 +:102280000E94311A67C2812F0E948210FF2009F438 +:10229000B4C2105E8F2D183018F40E94F01902C0DD +:1022A0000E94001A26960FB6F894DEBF0FBECDBF6F +:1022B000DF91CF911F910F91FF90EF90DF90CF9022 +:1022C000BF900C94311A3B2D307F8B2D8F703032A4 +:1022D00011F08295807F112319F0113021F12CC06B +:1022E0000023B9F0222309F4A0C1213009F09DC1D7 +:1022F00026960FB6F894DEBF0FBECDBFDF91CF910B +:102300001F910F91FF90EF90DF90CF90BF900C94B2 +:102310001A1A222319F0213009F46FC28E830E9409 +:102320001D1A8E8196C1002321F0223008F065C26B +:102330007CC1211162C28DC1002321F0222309F446 +:1023400074C108C2222309F484C119C22B2D269519 +:102350002695237030E02115310521F0213031051B +:10236000D1F04BC2002321F0812F9B2D937002C02E +:1023700080E090E026960FB6F894DEBF0FBECDBF8A +:10238000DF91CF911F910F91FF90EF90DF90CF9051 +:10239000BF900C94B30E002321F0812F9B2D9370DE +:1023A00002C080E090E026960FB6F894DEBF0FBE24 +:1023B000CDBFDF91CF911F910F91FF90EF90DF90F4 +:1023C000CF90BF900C94C90E812F002319F00E946A +:1023D000AA1D02C00E94121E26960FB6F894DEBFF8 +:1023E0000FBECDBFDF91CF911F910F91FF90EF9066 +:1023F000DF90CF90BF900C94971E8B2D837009F0C7 +:102400007BC00111FAC1812F829586958770880F54 +:10241000880F912F9F70C92ED12CE12CF12C082E02 +:1024200004C0CC0CDD1CEE1CFF1C0A94D2F714FF78 +:1024300012C04FE050E060E070E004C0440F551F50 +:10244000661F771F8A95D2F7CB01BA016095709508 +:102450008095909503C060E070E0CB012B2D269510 +:1024600026952370422F50E042305105D9F0433079 +:10247000510569F16C297D298E299F29413051052B +:1024800051F126960FB6F894DEBF0FBECDBFDF9197 +:10249000CF911F910F91FF90EF90DF90CF90BF9061 +:1024A0000C9403186C297D298E299F2926960FB636 +:1024B000F894DEBF0FBECDBFDF91CF911F910F917A +:1024C000FF90EF90DF90CF90BF900C941F180E9468 +:1024D0000318C701B60126960FB6F894DEBF0FBEEB +:1024E000CDBFDF91CF911F910F91FF90EF90DF90C3 +:1024F000CF90BF900C94E717002319F08B2D8170BB +:1025000001C08695882309F478C1812F829586952C +:102510008770880F880F912F9F70C92ED12CE12CC6 +:10252000F12C082E04C0CC0CDD1CEE1CFF1C0A9400 +:10253000D2F714FF12C04FE050E060E070E004C03A +:10254000440F551F661F771F8A95D2F7CB01BA013A +:10255000609570958095909503C060E070E0CB0128 +:102560002B2D269526952370422F50E042305105A1 +:10257000D9F04330510569F16C297D298E299F29B5 +:102580004130510551F126960FB6F894DEBF0FBECB +:10259000CDBFDF91CF911F910F91FF90EF90DF9012 +:1025A000CF90BF900C94DD186C297D298E299F292E +:1025B00026960FB6F894DEBF0FBECDBFDF91CF9148 +:1025C0001F910F91FF90EF90DF90CF90BF900C94F0 +:1025D000F9180E94DD18C701B60126960FB6F894C7 +:1025E000DEBF0FBECDBFDF91CF911F910F91FF9046 +:1025F000EF90DF90CF90BF900C94C118103FD1F1B5 +:1026000018F4103E50F4A1C0123F09F463C008F45E +:102610004CC0133F09F473C098C01F708B2D8F718D +:102620000023A1F00E945A18812F26960FB6F89425 +:10263000DEBF0FBECDBFDF91CF911F910F91FF90F5 +:10264000EF90DF90CF90BF900C94D1100E947B1838 +:10265000812F26960FB6F894DEBF0FBECDBFDF9157 +:10266000CF911F910F91FF90EF90DF90CF90BF908F +:102670000C94D8100023A9F02111BFC08B2D8F71AD +:1026800026960FB6F894DEBF0FBECDBFDF91CF9177 +:102690001F910F91FF90EF90DF90CF90BF900C941F +:1026A000A018223008F0A9C0E9CF0023A9F08B2D93 +:1026B0008F7126960FB6F894DEBF0FBECDBFDF91A7 +:1026C000CF911F910F91FF90EF90DF90CF90BF902F +:1026D0000C945A18002359F38B2D8F7126960FB640 +:1026E000F894DEBF0FBECDBFDF91CF911F910F9148 +:1026F000FF90EF90DF90CF90BF900C947B18002359 +:1027000099F08B2D8F7126960FB6F894DEBF0FBE11 +:10271000CDBFDF91CF911F910F91FF90EF90DF9090 +:10272000CF90BF900C94451826960FB6F894DEBF54 +:102730000FBECDBFDF91CF911F910F91FF90EF9012 +:10274000DF90CF90BF900C943B180023A9F0222378 +:1027500009F4ADCF812F26960FB6F894DEBF0FBED9 +:10276000CDBFDF91CF911F910F91FF90EF90DF9040 +:10277000CF90BF900C94BA0F222309F4ADCF812FD4 +:1027800026960FB6F894DEBF0FBECDBFDF91CF9176 +:102790001F910F91FF90EF90DF90CF90BF900C941E +:1027A00082104B2D4F70612FC7010E9401032696A6 +:1027B0000FB6F894DEBF0FBECDBFDF91CF911F9152 +:1027C0000F91FF90EF90DF90CF90BF900C945F1728 +:1027D0004B2D4F70612FC70126960FB6F894DEBFC0 +:1027E0000FBECDBFDF91CF911F910F91FF90EF9062 +:1027F000DF90CF90BF900C94310626960FB6F894D8 +:10280000DEBF0FBECDBFDF91CF911F910F91FF9023 +:10281000EF90DF90CF90BF9008950E94071A0E941A +:10282000171A0E94DC190E94311A0E94481F0E9448 +:10283000971E80E090E00E94B30E80E090E00C9440 +:10284000C90E0E94F7190C940D140E945519292FD6 +:1028500022952F7030E02C3031054CF42A303105B0 +:102860006CF4225031092230310588F407C02C3035 +:10287000310549F02F30310531F009C0803E48F074 +:10288000803F29F406C093FB882780F9089580E0F3 +:10289000089581E00895CF93DF9300D000D01F9278 +:1028A000CDB7DEB70F900F900F900F900F90DF9184 +:1028B000CF910895CF93DF9300D000D000D0CDB753 +:1028C000DEB726960FB6F894DEBF0FBECDBFDF9100 +:1028D000CF9108951F93CF93DF93C091790116E0B4 +:1028E00080917A01C81799F0D0E01C9FF0011D9FDC +:1028F000F00D1124E558FE4F4081518162817381B2 +:10290000848195810E945A142196C770E9CFDF9186 +:10291000CF911F9108954091AB015091AC0160910E +:10292000AD017091AE018091AF019091B0010C9416 +:102930005A148091B00182958F7009F054C0809133 +:10294000AD01882309F44FC080917901A0917A01EB +:102950006091AB017091AC014091AE015091AF011B +:10296000B6E08A1709F43FC090E041155105C1F166 +:102970007F3F11F46F3FA1F1B89FF001B99FF00DB7 +:102980001124E558FE4F218172132AC02081621361 +:1029900027C02281211124C02381348124173507C7 +:1029A00010F421503109241B350B283C3105C0F4AB +:1029B0002091B0012F7020612093B00126E0289F64 +:1029C000F001299FF00D1124E058FE4F80818F7097 +:1029D000806180838BEA91E00E94DF100C946A147E +:1029E00001968770BECF0895CF92DF92EF92FF924B +:1029F0000F931F93CF93DF93CDB7DEB762970FB6D8 +:102A0000F894DEBF0FBECDBF8C0185E0F801DE017A +:102A10001D9601900D928A95E1F7D8014C9111967F +:102A20005C91119712966C9112971396CD90DC9051 +:102A300014973091AB017091AC018091AE019091EF +:102A4000AF01009709F46BC17F3F19F43F3F09F4D0 +:102A500066C1E090AD01EE2009F4C0C02091B00144 +:102A6000C816D90628F0F601E81BF90BCF0104C0FF +:102A7000809590958C0D9D1DFF24F394883C9105C5 +:102A800078F0F12C207F09F0C6C07C2DD98AC88A45 +:102A900089890E944B148BEA91E00E94DF10B1C03B +:102AA000822F807F09F046C0751314C0341312C002 +:102AB000611110C02F7020612093B0010E948B140F +:102AC0008BEA91E00E94DF108091B001D801159649 +:102AD0008C932EC0CD2819F15F3F11F44F3FF9F0D0 +:102AE000F62E61111CC08091790120917A0136E0A7 +:102AF000821709F45AC090E0389FF001399FF00D19 +:102B00001124E558FE4F7181571306C07081471399 +:102B100003C07281711103C001968770E9CFF62E50 +:102B2000662309F418C18091B00181608093B001DF +:102B3000F12C11C1751308C0341306C0611104C013 +:102B40008091B001D801C3C04D875E878D859E8579 +:102B50006A8B0E9425146A898823E1F16623D1F1EA +:102B60002091B001822F82958F7090E0029774F0CF +:102B70008091AB019091AC0198878F831986DB8699 +:102B8000CA862C87CE0107960E94DF1086E0F801E6 +:102B9000ABEAB1E001900D928A95E1F70E94991499 +:102BA0000E948B14FF24F394D6C04D875E878D85D9 +:102BB0009E850E945519292F22952F7030E02230D2 +:102BC00031050CF0BCC09F7009F0B6C0805E883043 +:102BD00008F4C1C0C8010E94DF10E4CFC816D906AE +:102BE00008F453C0F601E81BF90BCF01883C9105AE +:102BF00008F450C0F12C7C2DD98AC88A89890E949A +:102C00004B14EBEAF1E086E0DF011D928A95E9F7CB +:102C10000E948B14A0C0751314C0341312C061112C +:102C200010C08091B001F8018583C8010E94DF10B7 +:102C300086E0EBEAF1E0DF011D928A95E9F7FE2CD0 +:102C40008AC04D875E878D859E856A8B0E9425147C +:102C50006A89882309F4BECF662309F4BBCF20918B +:102C6000B001822F82958F7090E002970CF48ECF86 +:102C70008091AB019091AC019A8389831B82DD82A4 +:102C8000CC822E83CE0101967FCF809590958C0DBE +:102C90009D1DACCFF62E662309F49CCF75132EC074 +:102CA00034132CC02091B00120FD1FC0822F8295CB +:102CB0008F70D9F0D80115962C9315978F3049F065 +:102CC0008F5F982F9295907F822F8F70892B15960A +:102CD0008C93C8010E94DF1086E0F801ABEAB1E0F6 +:102CE00001900D928A95E1F793CF86E0F801ABEA67 +:102CF000B1E001900D928A95E1F72DC04D875E8776 +:102D00008D859E850E942514811140CF8091B00150 +:102D100081608093B001C8010E94DF101CC066234F +:102D200009F458CF4D875E878D859E850E942514B6 +:102D3000882309F44FCF2ACF811148CF0CC024300B +:102D400031050CF047CF9F7009F440CFF801958111 +:102D5000907F09F03BCF8F2D62960FB6F894DEBFBF +:102D60000FBECDBFDF91CF911F910F91FF90EF90DC +:102D7000DF90CF9008951F93CF93DF93CDB7DEB749 +:102D80002C970FB6F894DEBF0FBECDBF4F83588788 +:102D900069877A878B879C87CE0107960E94F414F7 +:102DA000882369F08F8198852A853B85232BF1F153 +:102DB0009F3F09F063C08F3F09F060C037C086E0D5 +:102DC000FE013796DE01119601900D928A95E1F78A +:102DD0006F817885EA85FB85309741F17F3F11F45B +:102DE0006F3F21F120917A0130E0C901019687708F +:102DF00099274091790150E08417950709F447C05D +:102E000069837A83FD83EC8396E0929FD001939F40 +:102E1000B00D1124A558BE4FFE01319601900D92C0 +:102E20009A95E1F780937A010E946A1416E08091E6 +:102E3000790190917A018917C1F1189FC00111247D +:102E400085589E4F0E94F414882379F1E09179010E +:102E50001E9FF0011124E558FE4F4081518162818F +:102E60007381848195810E945A148091790190E048 +:102E700001968770992780937901D9CF4F81588522 +:102E800069857A858B859C850E945A14CFCF0E94D4 +:102E9000211410927A0110927901EBEAF1E086E0B8 +:102EA000DF011D928A95E9F7C1CF2C960FB6F894F1 +:102EB000DEBF0FBECDBFDF91CF911F910895EF927E +:102EC000FF920F931F93CF93DF938C01892B09F40B +:102ED0006CC0F12CEE24E394E8012196F801849172 +:102EE000843740F4843008F051C0813081F0823062 +:102EF00019F15BC0853709F444C0A8F19CE7980F2D +:102F0000903708F052C08F770E94821041C00E5F48 +:102F10001F4FFE01C49180E28C0F883048F4C770C7 +:102F20008E2D01C0880FCA95EAF70E940A1A14C0B4 +:102F30008C2F0E94BA0F2DC00E5F1F4FFE01C4914F +:102F400080E28C0F883058F4C7708E2D01C0880F36 +:102F5000CA95EAF70E94101A0E94311A1AC08C2FE3 +:102F60000E94821016C00E5F1F4FFE01C491CC2339 +:102F700081F08FE99FE00197F1F700C00000C15098 +:102F8000F6CF0E5F1F4FFE01F49003C00E94BA0FF0 +:102F90008E018F2D882309F49FCFEFE9FFE0319751 +:102FA000F1F700C000008150F5CFDF91CF911F9164 +:102FB0000F91FF90EF90089508956093B50170937D +:102FC000B6018093B7019093B8010C940D140F9340 +:102FD0001F930091B5011091B6012091B701309176 +:102FE000B801DC01CB01802B912BA22BB32B80935A +:102FF000B5019093B601A093B701B093B8011F91AA +:103000000F910C940D140F931F930091B501109123 +:10301000B6012091B7013091B801DC01CB018023CA +:103020009123A223B3238093B5019093B601A0937B +:10303000B701B093B8011F910F910C940D140F9329 +:103040001F930091B5011091B6012091B701309105 +:10305000B801DC01CB0180279127A227B3278093F9 +:10306000B5019093B601A093B701B093B8011F9139 +:103070000F910C940D141092B1011092B2011092A4 +:10308000B3011092B4010C940D1441E050E060E0E3 +:1030900070E004C0440F551F661F771F8A95D2F752 +:1030A0004093B1015093B2016093B3017093B401A6 +:1030B0000C940D1441E050E060E070E004C0440F57 +:1030C000551F661F771F8A95D2F78091B1019091A5 +:1030D000B201A091B301B091B401482B592B6A2BD6 +:1030E0007B2B4093B1015093B2016093B301709375 +:1030F000B4010C940D1441E050E060E070E004C0B5 +:10310000440F551F661F771F8A95D2F7409550953B +:10311000609570958091B1019091B201A091B30139 +:10312000B091B401482359236A237B234093B10112 +:103130005093B2016093B3017093B4010C940D14D9 +:1031400041E050E060E070E004C0440F551F661F8E +:10315000771F8A95D2F78091B1019091B201A09129 +:10316000B301B091B401482759276A277B274093C0 +:10317000B1015093B2016093B3017093B4010C9408 +:103180000D140F931F930091B1011091B201209182 +:10319000B3013091B401DC01CB01802B912BA22B28 +:1031A000B32B8093B1019093B201A093B301B0937C +:1031B000B4011F910F910C940D140F931F93009164 +:1031C000B1011091B2012091B3013091B401DC0141 +:1031D000CB0180239123A223B3238093B101909349 +:1031E000B201A093B301B093B4011F910F910C945D +:1031F0000D140F931F930091B1011091B201209112 +:10320000B3013091B401DC01CB0180279127A227C3 +:10321000B3278093B1019093B201A093B301B0930F +:10322000B4011F910F910C940D140895CF92DF9269 +:10323000EF92FF920F931F93CF93DF938C01C09077 +:10324000B501D090B601E090B701F090B80180913F +:10325000B1019091B201A091B301B091B401C82A1B +:10326000D92AEA2AFB2ACFE1D0E0D701C6010C2EE9 +:1032700004C0B695A795979587950A94D2F780FFD5 +:1032800006C0B8018C2F0E945406019721F42197A3 +:1032900060F780E001C08C2FDF91CF911F910F91DB +:1032A000FF90EF90DF90CF900895CF93DF93EC01E4 +:1032B0000E941619BE010E945406DF91CF91089515 +:1032C000CB010E945519089590910C01992321F08A +:1032D00090910D01911109C020910E0130910F01C3 +:1032E000F90132969FEF40E01FC0982F9695969572 +:1032F00096959F3050F5E0910E01F0910F01E90F86 +:10330000F11D877021E030E0A90102C0440F551F74 +:103310008A95E2F7CA019181892B818308959F3FA5 +:1033200039F04F5F4E3041F051915813F8CF0DC036 +:103330005111F7CF942FF5CF9F3F39F0F901E90FE5 +:10334000F11D97FDFA9582830895089590910C01DF +:10335000992321F090910D01911109C020910E0146 +:1033600030910F01F9013296205F3F4F1FC0982F17 +:103370009695969596959F30F0F4E0910E01F09118 +:103380000F01E90FF11D877021E030E0A90102C0B3 +:10339000440F551F8A95E2F7CA01809591818923D0 +:1033A000818308953196E217F30729F090819813ED +:1033B000F9CF1082F7CF089581E090E0E0910E01FF +:1033C000F0910F01E80FF91F1082019680319105ED +:1033D000A9F708959091CC01892B8093CC01089591 +:1033E00080959091CC0189238093CC01089510920F +:1033F000CC0108959091CB01892B8093CB01089546 +:1034000080959091CB0189238093CB0108951092F0 +:10341000CB0108959091CA01892B8093CA01089528 +:1034200080959091CA0189238093CA0108951092D2 +:10343000CA0108958093B90108951092B9010895C1 +:1034400080910E0190910F01FC0131969C01205F4B +:103450003F4F80E0919191118F5FE217F307D1F711 +:103460000895E0910E01F0910F018091CC018083CD +:10347000E0910E01F0910F0190818091CB01892B99 +:103480008083E0910E01F0910F0190818091CA013B +:10349000892B80838091B901882361F0E0910E012E +:1034A000F0910F019081892B80830E94201A811155 +:1034B0001092B90180910E0190910F010C949D0E14 +:1034C000CF92DF92EF92FF926C01EE24FF24C114A1 +:1034D000D104E104F10421F0C701B60120E101C0EB +:1034E00020E0C72ED82EE92EFF24C114D104E10418 +:1034F000F10419F0285FC701B6016B017C0154E0AB +:10350000F694E794D794C7945A95D1F7C114D1048F +:10351000E104F10419F02C5FC701B6016B017C01D5 +:1035200042E0F694E794D794C7944A95D1F7C11432 +:10353000D104E104F10419F02E5FC701B601DC01EA +:10354000CB01B695A79597958795892B8A2B8B2BC1 +:1035500009F02F5F822FFF90EF90DF90CF900895BA +:103560008091E601843021F11092CE0120E488E1BF +:1035700090E00FB6F894A895809360000FBE20935A +:10358000600080E00E948A0783B7817F846083BFE8 +:1035900083B7816083BF7894889583B78E7F83BF1C +:1035A00088E10FB6F89480936000109260000FBE1F +:1035B000089508950895CF930E94D91A0E947D041A +:1035C0000E94DA1AC0E08C2F0E946B05811104C0A2 +:1035D000CF5FCE30C1F701C081E0CF9108950E9446 +:1035E00021140E94910E0C948A0782E084BD93E01E +:1035F00095BD9AEF97BD80936E0008952FB7F8940C +:103600008091CF019091D001A091D101B091D201D0 +:103610002FBF0895CF92DF92EF92FF920F931F93E7 +:103620002FB7F8944091CF015091D0016091D10112 +:103630007091D2012FBF6A017B01EE24FF248C011F +:1036400020E030E0C016D106E206F30610F4415047 +:1036500051099A01281B390BC9011F910F91FF9045 +:10366000EF90DF90CF9008951F920F920FB60F92B8 +:1036700011248F939F93AF93BF938091CF0190912B +:10368000D001A091D101B091D2010196A11DB11D2F +:103690008093CF019093D001A093D101B093D20138 +:1036A000BF91AF919F918F910F900FBE0F901F9080 +:1036B00018950E948E0BF8942FEF87EA91E621501F +:1036C00080409040E1F700C0000087E090EBDC0113 +:1036D0008093EF019093F001A093F101B093F20178 +:1036E0009CE088E10FB6F894A895809360000FBE27 +:1036F00090936000FFCFEF92FF920F931F93CF93B1 +:10370000DF93D82FC0E08C2F0E946B0500E010E003 +:10371000E82EF12CC701002E02C0959587950A94DA +:10372000E2F780FD06C00F5F1F4F0630110591F7CD +:1037300009C0602F7C2F80E00E943206D813F3CF9F +:1037400081E004C0CF5FCE30F1F680E0DF91CF9111 +:103750001F910F91FF90EF900895CF93C82F8CE2A7 +:103760000E947B1B882321F08C2FCF910C947B1B14 +:1037700080E0CF910895CF930E94021D811102C075 +:103780000E94E81CC5E6C15049F00E947D048FE309 +:103790009CE90197F1F700C00000F5CF89E20E9493 +:1037A000AD1B811113C18AE20E94AD1B81110E94E1 +:1037B000E81C85E00E94AD1B81110E94591B0E94EC +:1037C0000D1D8093CD0187E00E94AD1B8823A9F1D8 +:1037D0008BE10E94AD1B882351F08091CD0181FBCC +:1037E000222720F991E0922790FB81F90EC08EE00C +:1037F0000E94AD1B882361F08091CD0182FB2227BE +:1038000020F991E0922790FB82F98093CD0115C0B9 +:1038100080E10E94AD1B9091CD01882341F093FB84 +:10382000222720F981E0822780FB93F904C0892FA9 +:10383000809580FB90F99093CD018091CD010E94FD +:10384000111D0E941F1D8093E00180EE0E94AD1BA0 +:10385000882341F08091E001982F909590FB80F9AA +:103860008093E00189E30E94AD1B882359F0809189 +:10387000E00181FB222720F991E0922790FB81F95A +:103880008093E00182EE0E94AD1B882359F0809165 +:10389000E00182FB222720F991E0922790FB82F938 +:1038A0008093E00186EE0E94AD1B882359F0809141 +:1038B000E00183FB222720F991E0922790FB83F916 +:1038C0008093E00183EE0E94AD1B882359F0809124 +:1038D000E00184FB222720F991E0922790FB84F9F4 +:1038E0008093E00185E30E94AD1B882359F080910D +:1038F000E00185FB222720F991E0922790FB85F9D2 +:103900008093E00181E30E94AD1B882359F08091F0 +:10391000E00186FB222720F991E0922790FB86F9AF +:103920008093E00181E10E94AD1B882359F08091D2 +:10393000E00187FB222720F991E0922790FB87F98D +:103940008093E0018091E0010E94231D8091E001BD +:1039500087FB882780F980930D0187E20E94AD1BC9 +:10396000C82F8EE10E94AD1B8111C2608FE10E94C1 +:10397000AD1B8111C46080E20E94AD1B8111C86043 +:1039800081E20E94AD1B8111C06182E20E94AD1BE9 +:103990008111C06283E20E94AD1B8111C06484E288 +:1039A0000E94AD1B882311F0C06802C0CC2329F00F +:1039B0008C2F0E941A1D6C2F03C00E94161D682FA9 +:1039C00070E080E090E0CF910C94DD17CF910895E6 +:1039D0006DEE7EEF80E090E00E94542360E082E094 +:1039E00090E00E94462360E083E090E00E9446233E +:1039F00060E084E090E00E94462360E085E090E093 +:103A00000C94462380E090E00E94402321E08D3E0C +:103A10009E4F09F020E0822F089582E090E00C9400 +:103A20003823682F82E090E00C94462383E090E0F6 +:103A30000C943823682F83E090E00C94462384E0B4 +:103A400090E00C943823682F84E090E00C94462397 +:103A50008091D50180FF0BC06091130185E0689FC4 +:103A6000B001112475956795759567952BC081FFF9 +:103A700009C06091130185E0689FB001112475951C +:103A8000679520C082FF07C06091130185E0689FA1 +:103A9000B001112417C09091D6019923D1F0609103 +:103AA0001201961788F72091130185E0289F900155 +:103AB0001124929FA001939F500D112470E0CA0120 +:103AC0000E940A236038710540F46115710539F0D0 +:103AD00002C065E070E0862F08958FE7089581E0C9 +:103AE00008958091D50180FF08C06091110170E0B8 +:103AF000759567957595679521C081FF06C06091A2 +:103B0000110170E07595679519C082FF04C060913E +:103B1000110170E010C09091D6019923C1F060911D +:103B200010019617A0F780911101899FC0011124FF +:103B300070E00E940A236038710528F46115710550 +:103B400021F0862F08958FE7089581E0089561E0C0 +:103B500070E0F4CF803F21F40E94281D819504C0BD +:103B6000813F29F40E94281D8093D9010895823F46 +:103B700021F40E94281D819504C0833F29F40E94EE +:103B8000281D8093D8010895893F19F40E94711D62 +:103B900005C08A3F31F40E94711D81958093DA013E +:103BA00008958B3F21F40E94711D819504C08C3FC4 +:103BB00029F40E94711D8093DB010895843F21F454 +:103BC0008091D701816017C0853F21F48091D70192 +:103BD000826011C0863F21F48091D70184600BC0C0 +:103BE000873F21F48091D701886005C0883F31F478 +:103BF0008091D70180618093D70108958D3F21F492 +:103C00008091D50181600BC08E3F21F48091D50158 +:103C1000826005C08F3F29F48091D5018460809334 +:103C2000D5010895803F39F48091D90187FF6CC098 +:103C30001092D90169C0813F29F48091D9011816E9 +:103C4000BCF362C09091D801823F29F497FF5CC019 +:103C50001092D80159C0833F19F41916CCF354C0FF +:103C6000893F41F48091DA0118160CF04DC0109292 +:103C7000DA014AC08A3F29F48091DA0187FF44C003 +:103C8000F6CF8B3F39F48091DB0187FF3DC0109266 +:103C9000DB013AC08C3F29F48091DB011816BCF39C +:103CA00033C0843F21F48091D7018E7F17C0853FB8 +:103CB00021F48091D7018D7F11C0863F21F480913E +:103CC000D7018B7F0BC0873F21F48091D701877F7D +:103CD00005C0883F31F48091D7018F7E8093D70152 +:103CE00013C08D3F21F48091D5018E7F0BC08E3F94 +:103CF00021F48091D5018D7F05C08F3F29F48091FB +:103D0000D5018B7F8093D5018091D80181110EC0A0 +:103D10008091D90181110AC08091DA01811106C018 +:103D20008091DB01811102C01092D601089587EDC8 +:103D300091E00E94A80E0E94FE1A9093D4018093F5 +:103D4000D30108951F93CF93DF938091D301909176 +:103D5000D4010E940A1BAC019091D601992321F055 +:103D60002091140130E006C0209115018AE0289FBF +:103D7000900111244217530708F486C08091D8019E +:103D8000C091D901D091DA011091DB01811107C0F6 +:103D9000C11176C0D11174C0111172C075C09F3F9E +:103DA00019F09F5F9093D601181624F40E94281DE5 +:103DB0008093D8018091D80187FF05C00E94281DFB +:103DC00081958093D8011C1624F40E94281D8093AD +:103DD000D9018091D90187FF05C00E94281D8195D6 +:103DE0008093D9016091D801662339F1C091D9013E +:103DF000CC2319F1772767FD7095872F972F0E94A5 +:103E00001B2223E333E343E35FE30E947F220E940C +:103E1000E8216093D8016C2F772767FD7095872F75 +:103E2000972F0E941B2223E333E343E35FE30E94C7 +:103E30007F220E94E8216093D9011D1624F40E947C +:103E4000711D8093DA018091DA0187FF05C00E941D +:103E5000711D81958093DA01111624F40E94711D61 +:103E60008093DB018091DB0187FF05C00E94711DFB +:103E700081958093DB01DF91CF911F910C94971E68 +:103E80009F3F09F08ECF96CFDF91CF911F9108957C +:103E9000E7EDF1E085E0DF011D928A95E9F71092E8 +:103EA000D6011092D5010895833081F128F4813034 +:103EB00059F08230D1F00895853009F449C0B8F145 +:103EC000863009F456C0089580911501262F30E000 +:103ED000280F311D2F3F310524F4680F6093150121 +:103EE00008958FEF80931501089580911401262F76 +:103EF00030E0280F311D2F3F310524F4680F609307 +:103F0000140108958FEF8093140108958091130197 +:103F1000262F30E0280F311D2F3F310524F4680F84 +:103F20006093130108958FEF80931301089580919A +:103F30001201262F30E0280F311D2F3F310524F4C8 +:103F4000680F6093120108958FEF80931201089516 +:103F500080911101262F30E0280F311D2F3F3105B0 +:103F600024F4680F6093110108958FEF809311017D +:103F7000089580911001262F30E0280F311D2F3F2A +:103F8000310524F4680F6093100108958FEF80933A +:103F900010010895833011F128F4813049F0823006 +:103FA00091F00895853081F120F18630C1F10895B6 +:103FB00080911501681720F4861B809315010895E0 +:103FC00010921501089580911401681720F4861B42 +:103FD00080931401089510921401089580911301A3 +:103FE000681720F4861B8093130108951092130123 +:103FF000089580911201681720F4861B80931201A6 +:10400000089510921201089580911101681720F40B +:10401000861B8093110108951092110108958091DB +:104020001001681720F4861B8093100108951092E8 +:10403000100108950F931F938D3109F46AC008F0A1 +:104040003FC08E3009F484C0C0F4873009F46DC0DD +:1040500068F4863009F0B5C08091CD01817F8E7FF4 +:104060008093CD0181E08093DD01ACC0883009F4FC +:1040700057C08B3009F46AC0A4C0863109F466C009 +:1040800078F4803109F477C0813109F09AC00E9438 +:10409000211490910D0181E0892780930D0156C074 +:1040A000893109F453C08B3109F08BC08091CD0167 +:1040B00081FB222720F991E0922790FB81F951C0E2 +:1040C000853309F475C048F4873209F471C008F4E7 +:1040D0005EC0893209F46CC074C0833430F48A3312 +:1040E00008F053C0883391F16CC0833409F460C088 +:1040F000883409F066C00E9421140FEF13ED20E30D +:10410000015010402040E1F700C000000E94591B00 +:104110001DC00E94A2210E94910E0E948A0716C013 +:104120000E940D1D0E941F1D11C09091CD01892F6D +:104130008095817080FB90F929F09660986090934B +:10414000CD0140C0997F977F9093CD0181E03AC027 +:104150008091CD0182FB222720F991E0922790FBEC +:1041600082F98093CD01992389F38091CD018160FB +:104170008093CD01EBCF8091CD0183FB222720F9E5 +:1041800091E0922790FB83F9ECCF895301C08D51C8 +:1041900041E050E060E070E08A019B0104C0000F44 +:1041A000111F221F331F8A95D2F7C901B80104C01D +:1041B00061E070E080E090E00E94DD170E94211431 +:1041C000C5CF80E01F910F91089580E0089580E0B1 +:1041D0000895CF93C82F8091DD01813079F018F0D8 +:1041E0008230E9F187C0E0910E01F0910F018081EA +:1041F000813169F0823209F07FC009C0E0910E017F +:10420000F0910F018081813111F0823261F48C2FA5 +:104210000E94E520811104C08C2F0E941A201DC02D +:1042200081E090E01AC08C2F0E94E720811114C019 +:10423000C43179F048F4CB3079F0C03109F060C076 +:1042400082E08093DD0108C0C93219F0C83321F043 +:1042500057C01092DD0154C081E0817053C0C93253 +:1042600089F118F5C43171F1A8F4C73009F046C0DE +:104270008AE08093150194E19093140193E0909368 +:1042800013018093120188E08093110188E28093EA +:10429000100134C0CE51C63088F5EC2FF0E0E65D59 +:1042A000FE4F80818093DC0129C0CE34E9F020F4F8 +:1042B000CB3421F56AE013C0C13579F0C235F1F491 +:1042C00061E00DC08091DC01882319F01092DC01BF +:1042D00015C081E08093DD0115C061E006C08091CA +:1042E000DC010E94541F0AC06AE08091DC010E9438 +:1042F000CA1F04C01092DD0180E004C081E002C04A +:1043000080E0ABCFCF910895E1E8F0E08081886054 +:1043100080838081816080838FB7F89493E090934D +:10432000890090ED909388008FBF0895EFE6F0E04C +:104330008081826080830895EFE6F0E080818D7F48 +:1043400080830895EFE6F0E0908182E08927808302 +:1043500008951F920F920FB60F9211242F933F933F +:104360004F935F936F937F938F939F93AF93BF937D +:10437000EF93FF938091DE019091DF01019690937E +:10438000DF018093DE01811103C082E00E948A0771 +:10439000E091DF01E695E695F0E0EA5CFA4FE49102 +:1043A0008091DE018E1303C080E00E948A07FF9196 +:1043B000EF91BF91AF919F918F917F916F915F919D +:1043C0004F913F912F910F900FBE0F901F90189516 +:1043D00004D06894B1118DC0089570D088F09F57B3 +:1043E00090F0B92F9927B751A0F0D1F0660F771F41 +:1043F000881F991F1AF0BA95C9F712C0B13081F021 +:1044000077D0B1E0089574C0672F782F8827B85F00 +:1044100039F0B93FCCF3869577956795B395D9F781 +:104420003EF490958095709561957F4F8F4F9F4F8B +:104430000895E89409C097FB3EF490958095709597 +:1044400061957F4F8F4F9F4F9923A9F0F92F96E9E0 +:10445000BB279395F695879577956795B795F11155 +:10446000F8CFFAF4BB0F11F460FF1BC06F5F7F4FF2 +:104470008F4F9F4F16C0882311F096E911C0772304 +:1044800021F09EE8872F762F05C0662371F096E80D +:10449000862F70E060E02AF09A95660F771F881FDC +:1044A000DAF7880F9695879597F9089557FD9058F4 +:1044B000440F551F59F05F3F71F04795880F97FBE8 +:1044C000991F61F09F3F79F08795089512161306A2 +:1044D0001406551FF2CF4695F1DF08C016161706D1 +:1044E0001806991FF1CF8695710561050894089506 +:1044F000E894BB2766277727CB0197F908950BD05F +:1045000078C069D028F06ED018F0952309F05AC011 +:104510005FC01124EECFCADFA0F3959FD1F3950FB2 +:1045200050E0551F629FF001729FBB27F00DB11D37 +:10453000639FAA27F00DB11DAA1F649F6627B00DC7 +:10454000A11D661F829F2227B00DA11D621F739FB0 +:10455000B00DA11D621F839FA00D611D221F749FBE +:104560003327A00D611D231F849F600D211D822F05 +:10457000762F6A2F11249F5750408AF0E1F088234C +:104580004AF0EE0FFF1FBB1F661F771F881F915059 +:104590005040A9F79E3F510570F014C0AACF5F3F6D +:1045A000ECF3983EDCF3869577956795B795F7958C +:1045B000E7959F5FC1F7FE2B880F911D9695879514 +:1045C00097F9089597F99F6780E870E060E0089593 +:1045D0009FEF80EC089500240A941616170618061B +:1045E0000906089500240A941216130614060506F7 +:1045F0000895092E0394000C11F4882352F0BB0F88 +:1046000040F4BF2B11F460FF04C06F5F7F4F8F4FEA +:104610009F4F089597FB072E16F4009407D077FD5F +:1046200009D00E94242307FC05D03EF49095819583 +:104630009F4F0895709561957F4F0895EE0FFF1F6E +:104640000590F491E02D0994AA1BBB1B51E107C012 +:10465000AA1FBB1FA617B70710F0A61BB70B881F12 +:10466000991F5A95A9F780959095BC01CD010895A1 +:10467000F999FECF92BD81BDF89A992780B508952A +:10468000A8E1B0E042E050E00C945B23262FF999BA +:10469000FECF1FBA92BD81BD20BD0FB6F894FA9A25 +:1046A000F99A0FBE019608950E944623272F0C9475 +:1046B0004723DC01CB01FC01F999FECF06C0F2BD16 +:1046C000E1BDF89A319600B40D9241505040B8F7D0 +:0646D0000895F894FFCFED +:1046D60020028C071A08F707C3078F070101BA01E2 +:1046E60028080A03140A3F4D3639F704AA0474044D +:1046F6003B04CE03E7030004190401020304050684 +:044706000708090097 +:00000001FF diff --git a/keyboard/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx-hjkl/romanzolotarev-norman-plover-osx-hjkl.png b/keyboard/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx-hjkl/romanzolotarev-norman-plover-osx-hjkl.png new file mode 100644 index 0000000000..cdc535f79e Binary files /dev/null and b/keyboard/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx-hjkl/romanzolotarev-norman-plover-osx-hjkl.png differ diff --git a/keyboard/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx/keymap.c b/keyboard/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx/keymap.c new file mode 100644 index 0000000000..9971b834cf --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx/keymap.c @@ -0,0 +1,134 @@ +#include "ergodox_ez.h" +#include "debug.h" +#include "action_layer.h" + +#define BASE 0 +#define SYMB 1 +#define PLVR 2 +#define ARRW 3 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [BASE] = KEYMAP( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_F14, + KC_TAB, KC_Q, KC_W, KC_D, KC_F, KC_K, TG(PLVR), + CTL_T(KC_ESC), KC_A, KC_S, KC_E, KC_T, KC_G, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LBRC, + KC_F1, KC_F2, KC_F3, KC_LALT, KC_LGUI, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_VOLD, KC_MUTE, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_VOLU, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_BSPC, CTL_T(KC_ESC), KC_FN1, + // + /*-*/ KC_F15, KC_6, KC_7, KC_8, KC_9, KC_0, KC_EQL, + /*-*/ KC_BSLS, KC_J, KC_U, KC_R, KC_L, KC_SCLN, KC_MINS, + /*-*/ /*-*/ KC_Y, KC_N, KC_I, KC_O, KC_H, KC_ENT, + /*-*/ KC_RBRC, KC_P, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + /*-*/ /*-*/ /*-*/ KC_RGUI, KC_RALT, KC_F4, KC_F5, KC_F6, + KC_MPLY, KC_MNXT, + KC_MPRV, + KC_FN3, KC_QUOT, KC_SPC + ), + [SYMB] = KEYMAP( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_TRNS, + KC_TRNS, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, + /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, + // + /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + /*-*/ KC_TRNS, KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS, + /*-*/ /*-*/ KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_TRNS, + /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS + ), + [PLVR] = KEYMAP( + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, + KC_NO, KC_1, KC_2, KC_3, KC_4, KC_5, KC_TRNS, + KC_NO, KC_Q, KC_W, KC_E, KC_R, KC_T, + KC_NO, KC_A, KC_S, KC_D, KC_F, KC_G, KC_NO, + KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_NO, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, + /*-*/ /*-*/ /*-*/ /*-*/ KC_C, KC_V, KC_NO, + // + /*-*/ KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + /*-*/ KC_NO, KC_6, KC_7, KC_8, KC_9, KC_0, KC_NO, + /*-*/ /*-*/ KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, + /*-*/ KC_NO, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + /*-*/ /*-*/ /*-*/ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_NO, KC_N, KC_M + ), + [ARRW] = KEYMAP( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_BTN1, KC_MS_U, KC_BTN2, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, + /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, + // + /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, + /*-*/ /*-*/ KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, + /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + /*-*/ /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS + ), +}; + +const uint16_t PROGMEM fn_actions[] = { + [SYMB] = ACTION_LAYER_TAP_TOGGLE(SYMB), // FN1 - Momentary Symbols Layer + [PLVR] = ACTION_LAYER_TAP_TOGGLE(PLVR), // FN2 - Momentary Plover Layer + [ARRW] = ACTION_LAYER_TAP_TOGGLE(ARRW), // FN3 - Momentary Arrows Layer +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch(id) { + case 0: + if (record->event.pressed) { + register_code(KC_RSFT); + } else { + unregister_code(KC_RSFT); + } + break; + } + return MACRO_NONE; +}; + +// Runs just one time when the keyboard initializes. +void matrix_init_user(void) { +}; + +// Runs constantly in the background, in a loop. +void matrix_scan_user(void) { + uint8_t layer = biton32(layer_state); + ergodox_board_led_off(); + ergodox_right_led_1_off(); + ergodox_right_led_2_off(); + ergodox_right_led_3_off(); + switch (layer) { + case SYMB: + ergodox_right_led_1_on(); + break; + case PLVR: + ergodox_right_led_2_on(); + break; + case ARRW: + ergodox_right_led_3_on(); + break; + default: + break; + } +}; diff --git a/keyboard/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx/readme.md b/keyboard/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx/readme.md new file mode 100644 index 0000000000..804c52a767 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx/readme.md @@ -0,0 +1,50 @@ +# Roman's Layout + +There are four layers: + +- **BASE** is [Norman layout](https://normanlayout.info/). +- **SYMB** for numbers and symbols. +- **PLVR** is optimized for [Plover](http://www.openstenoproject.org). +- **ARRW** for navigation (same fingers for arrows as IJKL on QWERTY). + +Looking for HJKL arrows? [Here we +go](../romanzolotarev-norman-plover-osx-hjkl/). + +[![keyboard-layout](romanzolotarev-norman-plover-osx.png)](http://www.keyboard-layout-editor.com/#/gists/8ebcb701ecb763944417) + +## Switching + +- Tap `SYMB` to toggle **SYMB**. +- Tap `ARRW` to toggle **ARRW**. +- Hold `SYMB` (or `ARRW`) to activate **SYMB** (or **ARRW**) while holding. +- Tap `PLVR` to toggle **PLVR**. + +## LEDs + +- Red: SYMB is on. +- Green: PLVR is on. +- Blue: ARRW is on. + +## Functional Keys + +- Tap `F1` to mute microphone via [Shush](http://mizage.com/shush/). +- Tap `F2` to copy screenshot to the clipboard. +- Hold `SHIFT` and tap `F2` to save screenshot as a file. +- Tap `F3`, `F4`, `F5`, `F6` to resize a window via [Divvy](http://mizage.com/divvy/). +- Tap `F14`, `F15` to adjust display brightness. + +**IMPORTANT**: If you have another keyboard connected via Bluetooth, then +`F14` and `F15` will not work. Turn off that Bluetooth keyboard. Re-plug +you ErgoDox. Enjoy! + +## CTRL/ESC + +Both of those keys are frequently used in Vim. + +- Tap `CTRL/ESC` to send `ESC`. +- Hold `CTRL/ESC` to use as `CTRL`. + +## Activate N-rollover + +- While in **BASE** hold left `SHIFT` and right `SHIRT` and then tap `N`. +- Then you can activate **PLVR** and use ErgoDox EZ for steno. diff --git a/keyboard/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx/romanzolotarev-norman-plover-osx.hex b/keyboard/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx/romanzolotarev-norman-plover-osx.hex new file mode 100644 index 0000000000..b5eded6e66 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx/romanzolotarev-norman-plover-osx.hex @@ -0,0 +1,1132 @@ +:100000000C94BB020C94FF020C94FF020C94FF02B0 +:100010000C94FF020C94FF020C94FF020C94FF025C +:100020000C94FF020C94FF020C941C0C0C94EE0C2C +:100030000C94FF020C94FF020C94FF020C94FF023C +:100040000C94FF020C9473210C94FF020C94FF0299 +:100050000C94FF020C94041B0C94FF020C94FF02FE +:100060000C94FF020C94FF020C94FF020C94FF020C +:100070000C94FF020C94FF020C94FF020C94FF02FC +:100080000C94FF020C94FF020C94FF020C94FF02EC +:100090000C94FF020C94FF020C94FF020C94FF02DC +:1000A0000C94FF020C94FF020C94FF025B0D7D0D7B +:1000B0006B0E7D0D6B0EC20DE50D6B0E3A0E4D0EE7 +:1000C0002F112F115E115E11A111DF11F813F8131A +:1000D000F811F813F912F912CC13F813F813E3130B +:1000E0000000F0A1F0A2F0A335002B002971E1007F +:1000F0003A0000001E00140004001D003B00C10077 +:100100001F001A0016001B003C0029712000070088 +:1001100008000600E2002A0021000900170019006B +:10012000E300A90022000E000A0005000000AA005A +:100130006900025400002F000000A8006A0031008E +:10014000000030000000AE0023000D001C00130072 +:100150000000AB002400180011001000E700AC0004 +:10016000250015000C003600E6002C0026000F00CC +:10017000120037003D003400270033000B00380028 +:100180003E00C3002E002D002800E5003F000000C7 +:1001900001000100010001000100000001001E003B +:1001A0001E0201000100010001001F001F020100EA +:1001B00001000100010020002002010001000100F7 +:1001C00001002100210201000100010001002200C4 +:1001D00022020100000001000100010000000100F6 +:1001E000000001000100010000000100000001000A +:1001F000010023002302010000000100010024008F +:100200002402010001000100010025002502010077 +:10021000010001000100260026020100010001008A +:100220000100270027020100010001000100010078 +:1002300001000100010000000000000000000000BB +:100240000100000000001E00140004000100000076 +:1002500000001F001A001600010019000000200015 +:10026000080007000000060000002100150009003A +:10027000000001000000220017000A000000010039 +:10028000010001000000000000000100010000006A +:100290000000000000000100000023001C000B0013 +:1002A000000001000000240018000D000000010003 +:1002B000000025000C000E000000100000002600C9 +:1002C00012000F000000110000002700130033008F +:1002D00000000000000000002F00340000000000BB +:1002E0000100010001000100010000000100010007 +:1002F00001000100010001000100F400F200010012 +:10030000010001000100F000F10001000100010006 +:100310000100F500F30001000100010001000100EF +:1003200001000100000001000100010000000100C7 +:1003300000000100010001000000010000000100B8 +:1003400001000100010001000000010001000100A6 +:1003500050000100010001000100520051000100A5 +:1003600001000100010001004F0001000100010037 +:100370000100010001000100010001000100010075 +:100380000100010001000000160345007200670033 +:100390006F0044006F007800200045005A00000004 +:1003A00016034500720067006F0044006F0078007C +:1003B000200045005A0000000403090409026D00F2 +:1003C000040100A0FA090400000103010100092151 +:1003D00011010001223F000705810308000A0904FA +:1003E00001000103010200092111010001224D0059 +:1003F0000705820308000A09040200010300000047 +:100400000921110100012236000705830308000AB3 +:100410000904030001030000000921110100012269 +:1004200039000705840310000112011001000000CB +:1004300008EDFE071301000102000105010906A1F4 +:1004400001050719E029E7150025019508750181C7 +:100450000205081901290595057501910295017597 +:100460000391010507190029771500250195787575 +:10047000018102C005010980A10185021601002643 +:10048000B7001A01002AB700751095018100C00558 +:100490000C0901A1018503160100269C021A010026 +:1004A0002A9C02751095018100C005010902A10175 +:1004B0000901A10005091901290515002501950566 +:1004C000750181029501750381010501093009312A +:1004D0001581257F95027508810609381581257FCC +:1004E000950175088106050C0A38021581257F954E +:1004F0000175088106C0C005010906A1010507199B +:10050000E029E7150025019508750181029501751F +:1005100008810105081901290595057501910295C4 +:1005200001750391010507190029FF150025FF95A5 +:100530000675088100C000000000000000000000F7 +:1005400000010204060A0F17202C3A4A5D71879DAC +:10055000B3C7DAE9F5FCFFFCF5E9DAC7B39D8771AB +:100560005D4A3A2C20170F0A060402010000000021 +:1005700000000000000011241FBECFEFDAE0DEBF54 +:10058000CDBF04B603FE24C08091EE019091EF012F +:10059000A091F001B091F1018730904BA740B04B92 +:1005A000B9F41092EE011092EF011092F001109246 +:1005B000F10114BE84B7877F84BF88E10FB6F89439 +:1005C00080936000109260000FBEE0E0FFE30995A9 +:1005D00011E0A0E0B1E0EAE6F6E402C005900D9279 +:1005E000A433B107D9F711E0A4E3B1E001C01D9233 +:1005F000AE3EB107E1F70E9460090C9433230C94DE +:10060000000061110BC0FC018281882321F085EE7E +:100610000E94CC0F03C085EE0E94941080E090E011 +:10062000089508956091B1017091B2018091B30174 +:100630009091B4010E94331A56985E9825982D988F +:1006400026982E9827982F98823039F0833041F0E1 +:10065000813041F4259A2D9A0895269A2E9A08956C +:10066000279A2F9A089582E193E0892B11F00E9436 +:10067000120380E090E0089556985E9825982D9892 +:1006800026982E9827982F988FEF90E090938900C6 +:100690008093880090938B0080938A0090938D00C4 +:1006A00080938C00259A2D9A2FEF80E792E02150BD +:1006B00080409040E1F700C00000269A2E9A2FEF6C +:1006C00080E792E0215080409040E1F700C00000B8 +:1006D000279A2F9A2FEF80E792E021508040904098 +:1006E000E1F700C0000025982D982FEF80E792E0F9 +:1006F000215080409040E1F700C0000026982E98DD +:100700002FEF80E792E0215080409040E1F700C059 +:10071000000027982F9856985E9825982D9826982F +:100720002E9827982F98089589EA8093800089E071 +:100730008093810024982C983F988AB18F748AB94D +:100740006E98479A8BB1806B8BB9769A0E943C0366 +:1007500081E193E0892B11F00E94110380E090E089 +:10076000089580E2809300018091340181110EC0D0 +:100770000E94000481E0809334012FEF83ED90E329 +:10078000215080409040E1F700C0000080E40E94CA +:1007900006048093000181112EC00E9430048093D2 +:1007A0000001811128C00E94300480930001811152 +:1007B00022C08FE30E9430048093000181111BC08E +:1007C0000E94280480E40E940604809300018111A5 +:1007D00012C08CE00E9430048093000181110BC094 +:1007E0000E94300480930001811105C08FE30E94B4 +:1007F0003004809300010E94280480910001089534 +:100800001092B9008AE08093B800089594EA90931A +:10081000BC009091BC0097FFFCCF9091B900987FED +:10082000983021F0903111F081E008958093BB0061 +:1008300084E88093BC008091BC0087FFFCCF80914E +:10084000B900887F883111F0803471F780E0089515 +:1008500084E98093BC008091BC0084FDFCCF0895A6 +:100860008093BB0084E88093BC008091BC0087FF2C +:10087000FCCF9091B900987F81E0983209F480E034 +:10088000089584E88093BC008091BC0087FFFCCF72 +:100890008091BB00089580910001811115C080E412 +:1008A0000E9406048093000181110CC082E10E9425 +:1008B000300480930001811105C08FEF0E94300445 +:1008C000809300010E94280484B1807F84B985B19F +:1008D000807F85B98AB1837F8AB98BB1837F8BB9D9 +:1008E0003E98469808950E94B103809300010E94AB +:1008F0004B0480B38C7080BB81B3836F81BBA6E354 +:10090000B1E0E4E4F1E08EE08E0F11921D928E13BF +:10091000FCCF84E993E0892B11F00C9494030895A3 +:10092000BF92CF92DF92EF92FF920F931F93CF93DC +:10093000DF9380910001882379F0809135018F5FEA +:1009400080933501811108C00E94B103809300019A +:10095000811102C00E943C0306E311E0C0E0D0E038 +:10096000DD24D39482E0C82EEE24E394F12CC7302A +:10097000D10500F580910001811164C080E40E94DE +:10098000060480930001811112C082E10E943004AC +:100990008093000181110BC0C7010C2E01C0880F8C +:1009A0000A94EAF780950E943004809300010E9427 +:1009B000280448C0CA30A1F028F4C83059F0C93022 +:1009C00061F005C0CC3089F070F0CD3089F0209A0C +:1009D000289810C0219A29980DC0229A2A980AC0F6 +:1009E000239A2B9807C0529A01C0539A5B9802C071 +:1009F0003E9A469890EA9A95F1F79FB1799902C08C +:100A000082E001C080E091709D25982B7C9902C006 +:100A100084E001C080E0892B7D9902C038E001C0EC +:100A200030E0832B7E9902C020E101C020E0822BC0 +:100A30009FB19095991F9927991F9295990F907E34 +:100A4000892B0FC08091000181114FC080E40E946A +:100A50000604809300018823A9F1B12C0E94280488 +:100A60008B2DF8019081981719F08083C0920101B5 +:100A70000E944B0421960F5F1F4FCE30D10509F025 +:100A800076CF809101018823B1F0815080930101DC +:100A9000882339F08FE99FE00197F1F700C000004B +:100AA0000AC0A4E4B1E0E6E3F1E0CF01825F9191F6 +:100AB0009D938E13FCCF83E393E0892BC1F00E94BA +:100AC000330315C083E10E9430048093000181113B +:100AD000C4CF81E40E940604809300018111BDCF40 +:100AE0000E944104B82EB094B9CF80E0BACF81E023 +:100AF000DF91CF911F910F91FF90EF90DF90CF90FA +:100B0000BF900895E82FF0E0EC5BFE4F80810895E0 +:100B100008958B3B910578F4883A910540F5853A24 +:100B20009105D0F48430910508F0B1C08130910571 +:100B300009F4ADC06BC0803E910508F467C0883EE3 +:100B4000910508F4A4C09C01205F310920313105D2 +:100B500008F05CC090650895853A910509F459C084 +:100B6000863A910509F058C082E890E40895883AE1 +:100B7000910509F454C0893A910509F453C08A3AA1 +:100B8000910509F452C08B3A910509F451C08C3A91 +:100B9000910509F450C08D3A910509F44FC0803B8E +:100BA000910509F44EC08E3A910509F44DC08F3A73 +:100BB000910509F44CC0813B910509F44BC0823B7F +:100BC000910509F44AC0833B910509F449C0843B6F +:100BD000910509F448C0853B910509F447C0863B5F +:100BE000910509F446C0873B910509F445C0883B4F +:100BF000910509F444C0893B910509F443C08A3B3F +:100C0000910509F442C080E094E4089580E090E00A +:100C1000089581E890E4089583E890E4089582EED1 +:100C200094E4089589EE94E408958AEE94E4089596 +:100C300085EB94E4089586EB94E4089587EB94E4BF +:100C400008958CEC94E408958DEC94E4089583E881 +:100C500095E408958AE895E4089582E995E4089575 +:100C600084E995E4089581E296E4089583E296E4A8 +:100C7000089584E296E4089585E296E4089586E274 +:100C800096E4089587E296E408958AE296E408954A +:100C9000089596E0799FF001112494E5899FE00D75 +:100CA000F11D1124E60FF11DEE0FFF1FE851FF4F5C +:100CB000859194910895880F991FFC01E05AF040A6 +:100CC000859194910895880F991FFC01E052FF4F80 +:100CD00085919491089526E0729FF001112444E5D6 +:100CE000849FE00DF11D1124E60FF11DEE0FFF1F93 +:100CF000E851FF4F859194919C013A9521154FE160 +:100D0000340708F41AC13F512115304120F49F7077 +:100D10000E94630608959C0130532115304118F458 +:100D20009927906C0895811520E5920769F40E9437 +:100D30001A144FEF84E39CE0415080409040E1F76B +:100D400000C000000C94291B813020E5920731F48B +:100D50008091CC0181608093CC0108959C01305535 +:100D60002115304108F051C0292F33272F70332728 +:100D700021303105D9F4AC014370552702C0220F50 +:100D8000331F4A95E2F73C68AC0164E0440F551FFD +:100D90006A95E1F744275370242B352B73E0880FB5 +:100DA000991F7A95E1F7807699271DC02230310589 +:100DB00029F4982F8827816F906A08952330310590 +:100DC000A9F4AC014370552721E030E002C0220FA6 +:100DD000331F4A95E2F73C6843E0880F991F4A9514 +:100DE000E1F7807E9770822B932B08952430310594 +:100DF000E1F4AC014370552721E030E002C0220F3E +:100E0000331F4A95E2F73A68E7CF9C013057211526 +:100E1000304118F49F70906208959C01305821155C +:100E2000304118F49F70906A0895803E9105E0F477 +:100E3000803C910558F58133910509F46FC048F461 +:100E40008932910509F463C08A32910509F46DC0B5 +:100E500072C089339105E9F082389105D1F085336C +:100E6000910509F44DC067C0833E910581F138F4C6 +:100E7000803E9105B9F0823E9105D9F05CC0863E76 +:100E8000910561F1873E9105A1F155C00E945B0675 +:100E900008952091DF0120FD02C021FF4CC080EEAB +:100EA00090E049C08091DF0180FFF9CF89E390E0B5 +:100EB00042C08091DF0182FF0EC08091DF0184FF7C +:100EC00003C080E090E037C083EE90E034C08091B2 +:100ED000DF0182FFF2CF82EE90E02DC08091DF0132 +:100EE00083FF0BC08091DF0184FDEBCF87EE90E0A4 +:100EF00022C08091DF0183FFF5CF86EE90E01BC01A +:100F00008091DF0185FF07C089E290E014C08091E5 +:100F1000DF0185FFF9CF85E390E00DC08091DF010F +:100F200086FF07C08AE290E006C08091DF0186FF5D +:100F3000F9CF81E390E00E9489050895089580919A +:100F400062010895CF93DF9300D01F92CDB7DEB733 +:100F50009C018091E501843019F593E099833B83EE +:100F60002A839093E9008FEF9091E800815095FDDE +:100F700006C095ED9A95F1F700008111F5CF8091AB +:100F8000E80085FF0DC040E050E063E070E0CE0176 +:100F900001960E940C0A8091E8008E778093E80009 +:100FA0000F900F900F90DF91CF910895CF93DF9323 +:100FB00000D01F92CDB7DEB72091E501243021F596 +:100FC00022E029839B838A8383E08093E9008FEF6B +:100FD0009091E800815095FD06C095ED9A95F1F746 +:100FE00000008111F5CF8091E80085FF0DC040E041 +:100FF00050E063E070E0CE0101960E940C0A8091FF +:10100000E8008E778093E8000F900F900F90DF91AB +:10101000CF9108952091E5012430F1F422E020934E +:10102000E9002FEF3091E800215035FD06C035ED85 +:101030003A95F1F700002111F5CF2091E80025FF46 +:101040000BC040E050E065E070E00E940C0A809127 +:10105000E8008E778093E8000895CF93DF93EC014A +:101060009091E501943009F046C080910C018823ED +:10107000D9F080910D018823B9F09093E9008FEFAA +:101080009091E800815095FD06C095E19A95F1F7A1 +:1010900000008111F5CF8091E80085FF2CC040E071 +:1010A00050E060E170E017C081E08093E9008FEFCD +:1010B0009091E800815095FD06C095ED9A95F1F765 +:1010C00000008111F5CF8091E80085FF14C040E059 +:1010D00050E068E070E0CE010E940C0A8091E800C8 +:1010E0008E778093E80080E1FE01A2E5B1E00190F7 +:1010F0000D928A95E1F7DF91CF9108958091E401F7 +:10110000811109C00E94A10B0E94FE0B8091E20098 +:1011100084608093E20008951092E4010895089598 +:101120000C9460210E94BF1A0E9466210E94A40EA6 +:101130000C949E0742E061EC81E00E941B0B42E0B0 +:1011400061EC82E00E941B0B42E061EC83E00E94B4 +:101150001B0B42E161EC84E00C941B0B8091E701D6 +:10116000833009F455C030F4813071F0823009F4D5 +:101170008EC008958A3009F47AC08B3009F460C0BB +:10118000893009F09CC020C08091E601813A09F0C5 +:1011900096C08091E800877F8093E8008091EA0103 +:1011A0009091EB01892B21F460E182E591E003C08D +:1011B00060E080E090E070E00E94570A8091E800D3 +:1011C0008B778093E80008958091E601813209F0E1 +:1011D00076C08091EA019091EB01009719F0039796 +:1011E00009F06DC08091E800877F8093E8008091CE +:1011F000E80082FD05C08091E5018111F8CF5FC054 +:101200008091F100809362018091E8008B7753C058 +:101210008091E601813A09F052C08091EA019091F3 +:10122000EB01892B09F04BC08091E800877F809308 +:10123000E8008091E80080FFFCCF80910C0136C06F +:101240008091E6018132D9F58091EA019091EB011C +:10125000892BA9F58091E800877F8093E8000E94A0 +:10126000500B8091E80180930C010C941A1480912A +:10127000E601813221F58091E800877F8093E800C4 +:101280000E94500B8091E901809363010895809141 +:10129000E601813AA1F48091E800877F8093E8001D +:1012A0008091E80080FFFCCF809163018093F10082 +:1012B0008091E8008E778093E8000C94500B08959D +:1012C00084B7877F84BF88E10FB6F894809360006D +:1012D000109260000FBE90E080E80FB6F894809303 +:1012E0006100909361000FBE0E94F30E0E94A10B5B +:1012F0000E94FE0B8091E20084608093E20078946B +:101300000E94840E0E94F50E82E091E00E949F0EE2 +:101310000E944E218091E501853069F40E94831A74 +:101320008091E3018823B1F30E94AB1A882391F3E3 +:101330000E94F609EFCF0E94FB0EECCF292F332736 +:1013400023303105C9F064F42130310581F02230B9 +:10135000310509F043C08DE690E02CEB33E042C04C +:1013600021323105F1F02232310541F137C082E1FD +:1013700090E029E234E036C099278130910541F0B0 +:101380008230910541F0892B49F5E8EBF3E005C087 +:10139000E0EAF3E002C0E8E8F3E0849190E09F0126 +:1013A00021C06430D8F4E62FF0E0EE0FFF1FEE5DB1 +:1013B000FE4F2081318189E090E014C0643070F4E8 +:1013C00070E0FB01EE0FFF1FE65EFE4F20813181D2 +:1013D000FB01EA5EFE4F808190E004C080E090E077 +:1013E00020E030E0FA0131832083089580E189BD57 +:1013F00082E189BD09B400FEFDCF8091D8008F7DC8 +:101400008093D8008091E00082608093E00080911A +:10141000E00081FDFCCF0895CF92DF92EF92FF9222 +:101420000F931F93CF93DF93EC018B016A010E940E +:101430006F0B811133C0C114D10439F0F6018081E2 +:101440009181081B190BC80FD91FE12CF12C011534 +:10145000110519F18091E80085FD16C08091E80022 +:101460008E778093E800C114D10449F0F6018081A1 +:101470009181E80EF91EF182E08285E00FC00E94A2 +:101480006F0B882321F30AC089918093F1000150EA +:101490001109FFEFEF1AFF0ADACF80E0DF91CF9159 +:1014A0001F910F91FF90EF90DF90CF9008952091C2 +:1014B000EC013091ED012617370748F061157105F1 +:1014C00039F42091E8002E772093E80001C0B9019B +:1014D00040E061157105A9F12091E501222309F48D +:1014E00043C0253009F442C02091E80023FD40C0EC +:1014F0002091E80022FD32C02091E80020FFE9CFD2 +:101500004091F3002091F20030E0342BFC01CF0138 +:101510006115710559F02830310540F481918093AF +:10152000F100615071092F5F3F4FF1CF41E028304A +:10153000310509F040E02091E8002E772093E80083 +:10154000C8CF4111C9CF0AC08091E501882361F05D +:10155000853061F08091E80083FD0AC08091E80049 +:1015600082FFF2CF80E0089582E0089583E008953D +:1015700081E008952091EC013091ED0126173707A5 +:1015800048F06115710539F42091E8002E77209319 +:10159000E80001C0B901FC0120E06115710591F17D +:1015A0008091E501882309F440C0853009F43FC0EB +:1015B0008091E80083FD3DC08091E80082FD2FC04E +:1015C0008091E80080FFE9CF2091F3008091F20044 +:1015D00090E0922B6115710559F08830910540F427 +:1015E00024912093F1003196615071090196F2CF58 +:1015F00021E0089709F020E08091E8008E77809341 +:10160000E800CBCF2111CCCF0AC08091E50188231F +:1016100061F0853061F08091E80083FD0AC080911F +:10162000E80082FFF2CF80E0089582E0089583E031 +:10163000089581E00895982F973058F59093E90028 +:10164000981739F07091EC002091ED005091F00066 +:1016500003C0242F762F50E021FF19C03091EB00FA +:101660003E7F3093EB003091ED003D7F3093ED00F5 +:101670003091EB0031603093EB007093EC002093DD +:10168000ED005093F0002091EE0027FF07C09F5F10 +:10169000D3CF8F708093E90081E0089580E00895B2 +:1016A0008091E60187FF11C08091E80082FD05C0AE +:1016B0008091E5018111F8CF11C08091E8008B770E +:1016C0000BC08091E501882349F08091E80080FFFC +:1016D000F8CF8091E8008E778093E80008952091FC +:1016E000E4003091E50095E64091EC00842F817094 +:1016F00040FF22C08091E80080FD1CC08091E50180 +:10170000882391F0853091F08091EB0085FD10C029 +:101710004091E4005091E5004217530729F39A01E4 +:10172000915011F784E0089582E0089583E00895D0 +:1017300081E0089580E008954091E80042FFDECF07 +:1017400008950E940F0C0E94170CE0EEF0E08081DB +:1017500081608083E8EDF0E080818F77808319BC21 +:10176000A7EDB0E08C918E7F8C9380818F7E8083FB +:101770001092E40108950F931F93CF93DF930E947B +:101780000F0C0E94170CC8EDD0E088818F778883FA +:1017900088818068888388818F7D888319BC1092B6 +:1017A000E5011092E1011092E3011092E20100EED6 +:1017B00010E0F80180818B7F80838881816088833D +:1017C00042E060E080E00E941B0BE1EEF0E08081EF +:1017D0008E7F8083E2EEF0E0808181608083808173 +:1017E00088608083F80180818E7F8083888180611A +:1017F0008883DF91CF911F910F910895E8EDF0E07C +:1018000080818F7E8083E7EDF0E08081816080833E +:1018100084E082BF81E08093E4010C94BB0BE8ED8F +:10182000F0E080818E7F80831092E2000895109214 +:10183000DA001092E10008951F920F920FB60F92F6 +:1018400011242F933F934F935F936F937F938F93C5 +:101850009F93AF93BF93EF93FF938091E10082FF3B +:101860000BC08091E20082FF07C08091E1008B7F76 +:101870008093E1000E94830E8091DA0080FF1FC0F8 +:101880008091D80080FF1BC08091DA008E7F80930A +:10189000DA008091D90080FF0DC080E189BD82E12E +:1018A00089BD09B400FEFDCF81E08093E5010E946F +:1018B0007E0805C019BC1092E5010E948C08809139 +:1018C000E10080FF19C08091E20080FF15C0809187 +:1018D000E2008E7F8093E2008091E200806180933D +:1018E000E2008091D80080628093D80019BC85E026 +:1018F0008093E5010E9490088091E10084FF30C050 +:101900008091E20084FF2CC080E189BD82E189BD25 +:1019100009B400FEFDCF8091D8008F7D8093D80060 +:101920008091E1008F7E8093E1008091E2008F7EC4 +:101930008093E2008091E20081608093E2008091D8 +:10194000E101882311F084E007C08091E30087FD66 +:1019500002C081E001C083E08093E5010E9492080B +:101960008091E10083FF29C08091E20083FF25C0C0 +:101970008091E100877F8093E10082E08093E50120 +:101980001092E1018091E1008E7F8093E1008091CF +:10199000E2008E7F8093E2008091E200806180937C +:1019A000E20042E060E080E00E941B0B8091F000CA +:1019B00088608093F0000E948F08FF91EF91BF91A3 +:1019C000AF919F918F917F916F915F914F913F91D7 +:1019D0002F910F900FBE0F901F9018951F920F928E +:1019E0000FB60F9211242F933F934F935F936F93F2 +:1019F0007F938F939F93AF93BF93CF93DF93EF9397 +:101A0000FF93C091E900CF708091EC00D82FD17086 +:101A100080FDD0E81092E9008091F000877F8093EC +:101A2000F00078940E94320D1092E9008091F0004D +:101A300088608093F000CD2BCF70C093E900FF91B8 +:101A4000EF91DF91CF91BF91AF919F918F917F9156 +:101A50006F915F914F913F912F910F900FBE0F901B +:101A60001F9018951F93CF93DF93CDB7DEB7AA973A +:101A70000FB6F894DEBF0FBECDBFE6EEF1E088E012 +:101A80008E0F9091F10091938E13FBCF0E94AE08C0 +:101A90008091E80083FF1FC18091E6019091E701EA +:101AA000492F50E04A30510508F015C1FA01EA5AB1 +:101AB000FF4F0C94E822803881F0823809F00BC186 +:101AC0008091EA018F708093E9008091EB0085FBA3 +:101AD000882780F91092E90006C08091E201909178 +:101AE000E301911182609091E800977F9093E80064 +:101AF0008093F1001092F100C8C0282F2D7F09F0CB +:101B0000EAC0882319F0823061F0E5C08091E801D5 +:101B1000813009F0E0C0933009F080E08093E30168 +:101B20002BC08091E801811127C08091EA018F705C +:101B300009F4D1C08093E9002091EB0020FF1CC084 +:101B4000933021F48091EB00806214C09091EB00FF +:101B500090619093EB0021E030E0A90102C0440FB6 +:101B6000551F8A95E2F74093EA001092EA008091AF +:101B7000EB0088608093EB001092E9008091E80010 +:101B8000877F86C08111A7C01091E8011F778091DF +:101B9000E3008078812B8093E3008091E800877FC9 +:101BA0008093E8000E94500B8091E80080FFFCCFFA +:101BB0008091E30080688093E300111102C082E00D +:101BC00001C083E08093E50186C08058823008F030 +:101BD00082C08091E8019091E9018C3D53E0950726 +:101BE00079F583E08A838AE289834FB7F894DE012E +:101BF000139620E03EE051E2E32FF0E050935700CF +:101C0000E49120FF03C0E295EF703F5FEF708E2FED +:101C100090E0EA3010F0C79601C0C0968D939D9376 +:101C20002F5F243149F74FBF8091E800877F809371 +:101C3000E8006AE270E0CE0101960E94570A14C0E3 +:101C4000AE014F5F5F4F6091EA010E949E09BC01A7 +:101C5000892B09F440C09091E800977F9093E800A9 +:101C600089819A810E94BA0A8091E8008B778093DB +:101C7000E80031C0803879F58091E800877F809353 +:101C8000E8008091E1018093F1008091E8008E7777 +:101C90008093E8000E94500B1EC081111CC09091DF +:101CA000E8019230C0F48091E800877F8093E800DB +:101CB0009093E1010E94500B8091E101811106C0D7 +:101CC0008091E30087FD02C081E001C084E0809341 +:101CD000E5010E949A088091E80083FF0AC0809184 +:101CE000E800877F8093E8008091EB00806280931A +:101CF000EB00AA960FB6F894DEBF0FBECDBFDF9102 +:101D0000CF911F9108950895CF938091E501882385 +:101D1000A1F0C091E900CF709091EC00892F817003 +:101D200090FD80E8C82B1092E9008091E80083FDC7 +:101D30000E94320DCF70C093E900CF910895909327 +:101D40006901809368010895E0916801F09169014B +:101D5000309721F00190F081E02D099480E0089502 +:101D6000E0916801F0916901309721F00280F381E0 +:101D7000E02D09940895E0916801F0916901309790 +:101D800021F00480F581E02D0994089520916601E9 +:101D9000309167018217930771F0909367018093E8 +:101DA0006601E0916801F0916901309721F00680A9 +:101DB000F781E02D09940895209164013091650127 +:101DC0008217930771F09093650180936401E0910D +:101DD0006801F0916901309721F00084F185E02DD0 +:101DE0000994089508950C94F20E0E94C51A0E9459 +:101DF00073040C948B1BCF92DF92EF92FF920F93A0 +:101E00001F93CF93DF93CDB7DEB72B970FB6F89420 +:101E1000DEBF0FBECDBF0E9490048BE6C82E81E0CE +:101E2000D82E00E010E0E02E802F0E948205F601FF +:101E300041916F01F42EF826B1F40F5F1F4F0E3061 +:101E4000110589F78FEF89838A831B820E94CE1A3E +:101E50008160782F9D838C8349815A816B818D812C +:101E60000E949E0F40C09091CC0191FF04C08B87CF +:101E70000E9488058B8520E030E04F2D50E0922FA6 +:101E8000BA01022E02C0759567950A94E2F760FFC9 +:101E900024C02E83EF8221E030E0690102C0CC0C27 +:101EA000DD1C9A95E2F790E08C219D21892B09F4A5 +:101EB00020E028870E94CE1A8160782F9A87898730 +:101EC0004E815F8168858A850E949E0FF801E559E1 +:101ED000FE4F8081C826C08206C02F5F3F4F26304C +:101EE000310569F6AACF0E94721E10916A010E9404 +:101EF000A40E1817A1F00E94A40E80936A012B96DD +:101F00000FB6F894DEBF0FBECDBFDF91CF911F910A +:101F10000F91FF90EF90DF90CF900C949E072B963F +:101F20000FB6F894DEBF0FBECDBFDF91CF911F91EA +:101F30000F91FF90EF90DF90CF900895CF93DF93B4 +:101F4000CDB7DEB72B970FB6F894DEBF0FBECDBF6F +:101F50004F83588769877A878B87DE01119686E0E1 +:101F6000FD0111928A95E9F785E0FE01379601900F +:101F70000D928A95E1F749815A816B817C818D812F +:101F80009E810E94B4162B960FB6F894DEBF0FBE4A +:101F9000CDBFDF91CF910895CF93882309F4C2C0BC +:101FA000C82F823859F40E94A40E81FDBBC089E37A +:101FB0000E9450190E940D1A89E30CC0833879F4ED +:101FC0000E94A40E80FDAEC083E50E9450190E94BD +:101FD0000D1A83E50E949219CF910C940D1A843842 +:101FE00059F40E94A40E82FD9DC087E40E945019FE +:101FF0000E940D1A87E4EECF8CEF8C0F813A48F4E3 +:102000008C2F0E94B32081118DC08C2F0E945019FB +:10201000E3CF80E28C0F883048F4C77081E001C0C4 +:10202000880FCA95EAF70E94D619D6CF8BE58C0F98 +:10203000833078F4C53A29F0C63A31F083E890E06D +:1020400005C081E890E002C082E890E0CF910C9456 +:10205000C60E88E58C0F833108F064C0C83A39F1A8 +:10206000C93A41F1CA3A49F1CB3A51F1CC3A59F166 +:10207000CD3A61F1C03B69F1CE3A71F1CF3A79F1D5 +:10208000C13B81F1C23B89F1C33B91F1C43B99F162 +:10209000C53BA1F1C63BA9F1C73BB1F1C83BB9F1C2 +:1020A000C93BC1F1CA3BC9F180E090E038C082EE83 +:1020B00090E035C089EE90E032C08AEE90E02FC00B +:1020C00085EB90E02CC086EB90E029C087EB90E098 +:1020D00026C08CEC90E023C08DEC90E020C083E81B +:1020E00091E01DC08AE891E01AC082E991E017C032 +:1020F00084E991E014C081E292E011C083E292E0B1 +:102100000EC084E292E00BC085E292E008C086E255 +:1021100092E005C087E292E002C08AE292E0CF91AD +:102120000C94DC0ECF910895882309F44BC08238BB +:1021300059F40E94A40E81FF45C089E30E94501902 +:102140000E940D1A89E30CC0833871F40E94A40E1A +:1021500080FF38C083E50E9450190E940D1A83E564 +:102160000E9492190C940D1A843859F40E94A40EFE +:1021700082FF28C087E40E9450190E940D1A87E44C +:10218000EFCF9CEF980F913A58F390E2980F983068 +:1021900050F4877091E001C0990F8A95EAF7892F72 +:1021A0000E94DC19DFCF9BE5980F933020F480E08C +:1021B00090E00C94C60E885A833120F480E090E0C1 +:1021C0000C94DC0E0895882321F00E94D6190C94FB +:1021D0000D1A0895882321F00E94DC190C940D1A21 +:1021E0000895BF92CF92DF92EF92FF920F931F93C9 +:1021F000CF93DF9300D000D000D0CDB7DEB725E07D +:10220000FC01DE01119601900D922A95E1F7FC0187 +:10221000408131810281258122952F7063817481F3 +:10222000672B09F4E5C23F3F19F44F3F09F4E0C2C0 +:102230007C0149833A8389819A812E830E940F19F8 +:10224000182FB92E0E940E190E94D517EB2DE2957A +:10225000EF70F0E0E05AFF4F2E810C94E8228B2DB6 +:10226000807F9B2D9F70F92E882319F0F29480EFC8 +:10227000F822002349F0FF2009F467C28F2D0E9445 +:10228000E6190E940D1A61C2812F0E949410FF204E +:1022900009F4AEC28F2D0E94EC1926960FB6F89461 +:1022A000DEBF0FBECDBFDF91CF911F910F91FF9089 +:1022B000EF90DF90CF90BF900C940D1A3B2D307FA4 +:1022C0008B2D8F70303211F08295807F112319F0A1 +:1022D000113021F12CC00023B9F0222309F4A0C150 +:1022E000213009F09DC126960FB6F894DEBF0FBECF +:1022F000CDBFDF91CF911F910F91FF90EF90DF90B5 +:10230000CF90BF900C94F619222319F0213009F4D4 +:102310006FC28E830E94F9198E8196C1002321F02D +:10232000223008F065C27CC1211162C28DC1002338 +:1023300021F0222309F474C108C2222309F484C1C4 +:1023400019C22B2D26952695237030E021153105D5 +:1023500021F021303105D1F04BC2002321F0812F33 +:102360009B2D937002C080E090E026960FB6F89403 +:10237000DEBF0FBECDBFDF91CF911F910F91FF90B8 +:10238000EF90DF90CF90BF900C94C60E002321F009 +:10239000812F9B2D937002C080E090E026960FB6AF +:1023A000F894DEBF0FBECDBFDF91CF911F910F918B +:1023B000FF90EF90DF90CF90BF900C94DC0E812FB8 +:1023C000002319F00E947A1D02C00E94E21D269689 +:1023D0000FB6F894DEBF0FBECDBFDF91CF911F9136 +:1023E0000F91FF90EF90DF90CF90BF900C94671EFD +:1023F0008B2D837009F07BC00111FAC1812F82956A +:1024000086958770880F880F912F9F70C92ED12CC9 +:10241000E12CF12C082E04C0CC0CDD1CEE1CFF1CA2 +:102420000A94D2F714FF12C04FE050E060E070E071 +:1024300004C0440F551F661F771F8A95D2F7CB0142 +:10244000BA01609570958095909503C060E070E04A +:10245000CB012B2D269526952370422F50E042303C +:102460005105D9F04330510569F16C297D298E2938 +:102470009F294130510551F126960FB6F894DEBFE1 +:102480000FBECDBFDF91CF911F910F91FF90EF90C5 +:10249000DF90CF90BF900C94FC176C297D298E297A +:1024A0009F2926960FB6F894DEBF0FBECDBFDF91F1 +:1024B000CF911F910F91FF90EF90DF90CF90BF9041 +:1024C0000C9418180E94FC17C701B60126960FB687 +:1024D000F894DEBF0FBECDBFDF91CF911F910F915A +:1024E000FF90EF90DF90CF90BF900C94E017002307 +:1024F00019F08B2D817001C08695882309F478C16D +:10250000812F829586958770880F880F912F9F70F5 +:10251000C92ED12CE12CF12C082E04C0CC0CDD1CD2 +:10252000EE1CFF1C0A94D2F714FF12C04FE050E0DB +:1025300060E070E004C0440F551F661F771F8A9546 +:10254000D2F7CB01BA01609570958095909503C044 +:1025500060E070E0CB012B2D269526952370422F4D +:1025600050E042305105D9F04330510569F16C29F2 +:102570007D298E299F294130510551F126960FB6AC +:10258000F894DEBF0FBECDBFDF91CF911F910F91A9 +:10259000FF90EF90DF90CF90BF900C94D6186C29ED +:1025A0007D298E299F2926960FB6F894DEBF0FBE8F +:1025B000CDBFDF91CF911F910F91FF90EF90DF90F2 +:1025C000CF90BF900C94F2180E94D618C701B601A4 +:1025D00026960FB6F894DEBF0FBECDBFDF91CF9128 +:1025E0001F910F91FF90EF90DF90CF90BF900C94D0 +:1025F000BA18103FD1F118F4103E50F4A1C0123FA8 +:1026000009F463C008F44CC0133F09F473C098C0C8 +:102610001F708B2D8F710023A1F00E945318812F02 +:1026200026960FB6F894DEBF0FBECDBFDF91CF91D7 +:102630001F910F91FF90EF90DF90CF90BF900C947F +:10264000E3100E947418812F26960FB6F894DEBF0F +:102650000FBECDBFDF91CF911F910F91FF90EF90F3 +:10266000DF90CF90BF900C94EA100023A9F02111C5 +:10267000BFC08B2D8F7126960FB6F894DEBF0FBEAC +:10268000CDBFDF91CF911F910F91FF90EF90DF9021 +:10269000CF90BF900C949918223008F0A9C0E9CFD0 +:1026A0000023A9F08B2D8F7126960FB6F894DEBF0C +:1026B0000FBECDBFDF91CF911F910F91FF90EF9093 +:1026C000DF90CF90BF900C945318002359F38B2DBB +:1026D0008F7126960FB6F894DEBF0FBECDBFDF9187 +:1026E000CF911F910F91FF90EF90DF90CF90BF900F +:1026F0000C947418002399F08B2D8F7126960FB6C9 +:10270000F894DEBF0FBECDBFDF91CF911F910F9127 +:10271000FF90EF90DF90CF90BF900C943E182696DC +:102720000FB6F894DEBF0FBECDBFDF91CF911F91E2 +:102730000F91FF90EF90DF90CF90BF900C943418E2 +:102740000023A9F0222309F4ADCF812F26960FB6DE +:10275000F894DEBF0FBECDBFDF91CF911F910F91D7 +:10276000FF90EF90DF90CF90BF900C94CC0F22237E +:1027700009F4ADCF812F26960FB6F894DEBF0FBEB9 +:10278000CDBFDF91CF911F910F91FF90EF90DF9020 +:10279000CF90BF900C9494104B2D4F70612FC701B8 +:1027A0000E94010326960FB6F894DEBF0FBECDBF80 +:1027B000DF91CF911F910F91FF90EF90DF90CF901D +:1027C000BF900C9458174B2D4F70612FC701269660 +:1027D0000FB6F894DEBF0FBECDBFDF91CF911F9132 +:1027E0000F91FF90EF90DF90CF90BF900C94480630 +:1027F00026960FB6F894DEBF0FBECDBFDF91CF9106 +:102800001F910F91FF90EF90DF90CF90BF900895B0 +:102810000E94F3190E94C8190E940D1A0E94181FE5 +:102820000E94671E80E090E00E94C60E80E090E06B +:102830000C94DC0E0E94E3190C9408140E940F19EA +:10284000292F22952F7030E02C3031054CF42A309E +:1028500031056CF4225031092230310588F407C06B +:102860002C30310549F02F30310531F009C0803E60 +:1028700048F0803F29F406C093FB882780F908952B +:1028800080E0089581E00895CF93DF9300D000D0D9 +:102890001F92CDB7DEB70F900F900F900F900F9053 +:1028A000DF91CF910895CF93DF9300D000D000D077 +:1028B000CDB7DEB726960FB6F894DEBF0FBECDBFFC +:1028C000DF91CF9108951F93CF93DF93C09179014A +:1028D00016E080917A01C81799F0D0E01C9FF001B2 +:1028E0001D9FF00D1124E558FE4F408151816281FA +:1028F0007381848195810E9453142196C770E9CF1A +:10290000DF91CF911F9108954091AB015091AC019F +:102910006091AD017091AE018091AF019091B001D5 +:102920000C9453148091B00182958F7009F054C0BB +:102930008091AD01882309F44FC080917901A09165 +:102940007A016091AB017091AC014091AE01509160 +:10295000AF01B6E08A1709F43FC090E04115510578 +:10296000C1F17F3F11F46F3FA1F1B89FF001B99F12 +:10297000F00D1124E558FE4F218172132AC02081E9 +:10298000621327C02281211124C02381348124179E +:10299000350710F421503109241B350B283C310533 +:1029A000C0F42091B0012F7020612093B00126E087 +:1029B000289FF001299FF00D1124E058FE4F8081DF +:1029C0008F70806180838BEA91E00E94F1100C94FB +:1029D000631401968770BECF0895CF92DF92EF9275 +:1029E000FF920F931F93CF93DF93CDB7DEB762971C +:1029F0000FB6F894DEBF0FBECDBF8C0185E0F801A5 +:102A0000DE011D9601900D928A95E1F7D8014C9157 +:102A100011965C91119712966C9112971396CD9026 +:102A2000DC9014973091AB017091AC018091AE01B4 +:102A30009091AF01009709F46BC17F3F19F43F3FBC +:102A400009F466C1E090AD01EE2009F4C0C0209108 +:102A5000B001C816D90628F0F601E81BF90BCF0122 +:102A600004C0809590958C0D9D1DFF24F394883CA7 +:102A7000910578F0F12C207F09F0C6C07C2DD98A11 +:102A8000C88A89890E9444148BEA91E00E94F1105F +:102A9000B1C0822F807F09F046C0751314C0341373 +:102AA00012C0611110C02F7020612093B0010E94EC +:102AB00084148BEA91E00E94F1108091B001D8015A +:102AC00015968C932EC0CD2819F15F3F11F44F3F1E +:102AD000F9F0F62E61111CC08091790120917A01E4 +:102AE00036E0821709F45AC090E0389FF001399F10 +:102AF000F00D1124E558FE4F7181571306C0708107 +:102B0000471303C07281711103C001968770E9CF2A +:102B1000F62E662309F418C18091B001816080937C +:102B2000B001F12C11C1751308C0341306C0611136 +:102B300004C08091B001D801C3C04D875E878D85E8 +:102B40009E856A8B0E941E146A898823E1F16623A0 +:102B5000D1F12091B001822F82958F7090E0029781 +:102B600074F08091AB019091AC0198878F831986A6 +:102B7000DB86CA862C87CE0107960E94F11086E07C +:102B8000F801ABEAB1E001900D928A95E1F70E945D +:102B900092140E948414FF24F394D6C04D875E875C +:102BA0008D859E850E940F19292F22952F7030E068 +:102BB000223031050CF0BCC09F7009F0B6C0805EB9 +:102BC000883008F4C1C0C8010E94F110E4CFC816D3 +:102BD000D90608F453C0F601E81BF90BCF01883C75 +:102BE000910508F450C0F12C7C2DD98AC88A8989B6 +:102BF0000E944414EBEAF1E086E0DF011D928A9521 +:102C0000E9F70E948414A0C0751314C0341312C0D5 +:102C1000611110C08091B001F8018583C8010E9444 +:102C2000F11086E0EBEAF1E0DF011D928A95E9F709 +:102C3000FE2C8AC04D875E878D859E856A8B0E949B +:102C40001E146A89882309F4BECF662309F4BBCF1A +:102C50002091B001822F82958F7090E002970CF442 +:102C60008ECF8091AB019091AC019A8389831B82B6 +:102C7000DD82CC822E83CE0101967FCF8095909508 +:102C80008C0D9D1DACCFF62E662309F49CCF7513D9 +:102C90002EC034132CC02091B00120FD1FC0822F04 +:102CA00082958F70D9F0D80115962C9315978F3097 +:102CB00049F08F5F982F9295907F822F8F70892B8C +:102CC00015968C93C8010E94F11086E0F801ABEADA +:102CD000B1E001900D928A95E1F793CF86E0F8017B +:102CE000ABEAB1E001900D928A95E1F72DC04D87D6 +:102CF0005E878D859E850E941E14811140CF809134 +:102D0000B00181608093B001C8010E94F1101CC025 +:102D1000662309F458CF4D875E878D859E850E9476 +:102D20001E14882309F44FCF2ACF811148CF0CC03D +:102D3000243031050CF047CF9F7009F440CFF801E3 +:102D40009581907F09F03BCF8F2D62960FB6F89456 +:102D5000DEBF0FBECDBFDF91CF911F910F91FF90CE +:102D6000EF90DF90CF9008951F93CF93DF93CDB76F +:102D7000DEB72C970FB6F894DEBF0FBECDBF4F83E2 +:102D8000588769877A878B879C87CE0107960E9430 +:102D9000ED14882369F08F8198852A853B85232B44 +:102DA000F1F19F3F09F063C08F3F09F060C037C069 +:102DB00086E0FE013796DE01119601900D928A950C +:102DC000E1F76F817885EA85FB85309741F17F3F98 +:102DD00011F46F3F21F120917A0130E0C901019691 +:102DE000877099274091790150E08417950709F47D +:102DF00047C069837A83FD83EC8396E0929FD0017C +:102E0000939FB00D1124A558BE4FFE01319601903D +:102E10000D929A95E1F780937A010E94631416E06F +:102E20008091790190917A018917C1F1189FC001B1 +:102E3000112485589E4F0E94ED14882379F1E0916A +:102E400079011E9FF0011124E558FE4F4081518108 +:102E500062817381848195810E94531480917901EC +:102E600090E001968770992780937901D9CF4F819F +:102E7000588569857A858B859C850E945314CFCFB0 +:102E80000E941A1410927A0110927901EBEAF1E093 +:102E900086E0DF011D928A95E9F7C1CF2C960FB627 +:102EA000F894DEBF0FBECDBFDF91CF911F91089583 +:102EB000EF92FF920F931F93CF93DF938C01892B97 +:102EC00009F46CC0F12CEE24E394E8012196F8019A +:102ED0008491843740F4843008F051C0813081F00F +:102EE000823019F15BC0853709F444C0A8F19CE732 +:102EF000980F903708F052C08F770E94941041C00D +:102F00000E5F1F4FFE01C49180E28C0F883048F4A1 +:102F1000C7708E2D01C0880FCA95EAF70E94E61986 +:102F200014C08C2F0E94CC0F2DC00E5F1F4FFE01CE +:102F3000C49180E28C0F883058F4C7708E2D01C088 +:102F4000880FCA95EAF70E94EC190E940D1A1AC060 +:102F50008C2F0E94941016C00E5F1F4FFE01C4916B +:102F6000CC2381F08FE99FE00197F1F700C00000CA +:102F7000C150F6CF0E5F1F4FFE01F49003C00E94B8 +:102F8000CC0F8E018F2D882309F49FCFEFE9FFE04E +:102F90003197F1F700C000008150F5CFDF91CF915C +:102FA0001F910F91FF90EF90089508956093B501E0 +:102FB0007093B6018093B7019093B8010C940814F4 +:102FC0000F931F930091B5011091B6012091B701A5 +:102FD0003091B801DC01CB01802B912BA22BB32BBC +:102FE0008093B5019093B601A093B701B093B80157 +:102FF0001F910F910C9408140F931F930091B5012A +:103000001091B6012091B7013091B801DC01CB01DC +:1030100080239123A223B3238093B5019093B6011B +:10302000A093B701B093B8011F910F910C940814AD +:103030000F931F930091B5011091B6012091B70134 +:103040003091B801DC01CB0180279127A227B3275B +:103050008093B5019093B601A093B701B093B801E6 +:103060001F910F910C9408141092B1011092B201AB +:103070001092B3011092B4010C94081441E050E096 +:1030800060E070E004C0440F551F661F771F8A95EB +:10309000D2F74093B1015093B2016093B3017093A2 +:1030A000B4010C94081441E050E060E070E004C00A +:1030B000440F551F661F771F8A95D2F78091B10183 +:1030C0009091B201A091B301B091B401482B592B5A +:1030D0006A2B7B2B4093B1015093B2016093B301F3 +:1030E0007093B4010C94081441E050E060E070E08B +:1030F00004C0440F551F661F771F8A95D2F740956D +:103100005095609570958091B1019091B201A09118 +:10311000B301B091B401482359236A237B23409320 +:10312000B1015093B2016093B3017093B4010C9458 +:10313000081441E050E060E070E004C0440F551F07 +:10314000661F771F8A95D2F78091B1019091B201E5 +:10315000A091B301B091B401482759276A277B2772 +:103160004093B1015093B2016093B3017093B401E5 +:103170000C9408140F931F930091B1011091B201A8 +:103180002091B3013091B401DC01CB01802B912B54 +:10319000A22BB32B8093B1019093B201A093B30102 +:1031A000B093B4011F910F910C9408140F931F93C7 +:1031B0000091B1011091B2012091B3013091B4019D +:1031C000DC01CB0180239123A223B3238093B1019F +:1031D0009093B201A093B301B093B4011F910F91EA +:1031E0000C9408140F931F930091B1011091B20138 +:1031F0002091B3013091B401DC01CB0180279127EC +:10320000A227B3278093B1019093B201A093B30199 +:10321000B093B4011F910F910C9408140895CF92AC +:10322000DF92EF92FF920F931F93CF93DF938C0166 +:10323000C090B501D090B601E090B701F090B80110 +:103240004091B1015091B2016091B3017091B4010C +:10325000C42AD52AE62AF72ACFE1D0E0D701C60151 +:103260000C2E04C0B695A795979587950A94D2F72A +:1032700080FF07C0B8018C2F0E946B06813091053A +:1032800031F4219758F7B80180E00E946B06DF9176 +:10329000CF911F910F91FF90EF90DF90CF90089505 +:1032A00090910C01992321F090910D01911109C089 +:1032B00020910E0130910F01F90132969FEF40E00D +:1032C0001FC0982F9695969596959F3050F5E09152 +:1032D0000E01F0910F01E90FF11D877021E030E040 +:1032E000A90102C0440F551F8A95E2F7CA019181D6 +:1032F000892B818308959F3F39F04F5F4E3041F015 +:1033000051915813F8CF0DC05111F7CF942FF5CF2D +:103310009F3F39F0F901E90FF11D97FDFA9582837E +:103320000895089590910C01992321F090910D0139 +:10333000911109C020910E0130910F01F9013296CF +:10334000205F3F4F1FC0982F9695969596959F307A +:10335000F0F4E0910E01F0910F01E90FF11D87707B +:1033600021E030E0A90102C0440F551F8A95E2F721 +:10337000CA01809591818923818308953196E2174E +:10338000F30729F090819813F9CF1082F7CF0895B1 +:1033900081E090E0E0910E01F0910F01E80FF91F3C +:1033A0001082019680319105A9F708959091CB0183 +:1033B000892B8093CB01089580959091CB0189232F +:1033C0008093CB0108951092CB0108959091CA018A +:1033D000892B8093CA01089580959091CA01892311 +:1033E0008093CA0108951092CA0108958093B9018B +:1033F00008951092B901089580910E0190910F01E6 +:10340000FC0131969C01205F3F4F80E0919191112A +:103410008F5FE217F307D1F70895E0910E01F09165 +:103420000F018091CB018083E0910E01F0910F019B +:1034300090818091CA01892B80838091B901882372 +:1034400061F0E0910E01F0910F019081892B808352 +:103450000E94FC1981111092B90180910E01909186 +:103460000F010C94B00ECF92DF92EF92FF926C019D +:10347000EE24FF24C114D104E104F10421F0C701BA +:10348000B60120E101C020E0C72ED82EE92EFF248E +:10349000C114D104E104F10419F0285FC701B60199 +:1034A0006B017C0154E0F694E794D794C7945A9545 +:1034B000D1F7C114D104E104F10419F02C5FC70164 +:1034C000B6016B017C0142E0F694E794D794C7946F +:1034D0004A95D1F7C114D104E104F10419F02E5F2B +:1034E000C701B601DC01CB01B695A79597958795E5 +:1034F000892B8A2B8B2B09F02F5F822FFF90EF9067 +:10350000DF90CF9008958091E501843009F1109209 +:10351000CD0120E488E190E00FB6F894A89580935F +:1035200060000FBE2093600083B7817F846083BFFB +:1035300083B7816083BF7894889583B78E7F83BF7C +:1035400088E10FB6F89480936000109260000FBE7F +:10355000089508950895CF930E94A91A0E94900497 +:103560000E94AA1AC0E08C2F0E948205811104C01B +:10357000CF5FCE30C1F701C081E0CF9108950E94A6 +:103580001A140E94A40E0C949E0782E084BD93E05E +:1035900095BD9AEF97BD80936E0008952FB7F8946C +:1035A0008091CE019091CF01A091D001B091D10135 +:1035B0002FBF0895CF92DF92EF92FF920F931F9348 +:1035C0002FB7F8944091CE015091CF016091D00176 +:1035D0007091D1012FBF6A017B01EE24FF248C0181 +:1035E00020E030E0C016D106E206F30610F44150A8 +:1035F00051099A01281B390BC9011F910F91FF90A6 +:10360000EF90DF90CF9008951F920F920FB60F9218 +:1036100011248F939F93AF93BF938091CE0190918C +:10362000CF01A091D001B091D1010196A11DB11D92 +:103630008093CE019093CF01A093D001B093D1019C +:10364000BF91AF919F918F910F900FBE0F901F90E0 +:1036500018950E94A10BF8942FEF87EA91E621506C +:1036600080409040E1F700C0000087E090EBDC0173 +:103670008093EE019093EF01A093F001B093F101DC +:103680009CE088E10FB6F894A895809360000FBE87 +:1036900090936000FFCFEF92FF920F931F93CF9311 +:1036A000DF93D82FC0E08C2F0E94820500E010E04D +:1036B000E82EF12CC701002E02C0959587950A943B +:1036C000E2F780FD06C00F5F1F4F0630110591F72E +:1036D00009C0602F7C2F80E00E944906D813F3CFE9 +:1036E00081E004C0CF5FCE30F1F680E0DF91CF9172 +:1036F0001F910F91FF90EF900895CF93C82F8CE208 +:103700000E944B1B882321F08C2FCF910C944B1BD4 +:1037100080E0CF910895CF930E94D21C811102C006 +:103720000E94B81CC5E6C15049F00E9490048FE386 +:103730009CE90197F1F700C00000F5CF89E20E94F3 +:103740007D1B811113C18AE20E947D1B81110E94A1 +:10375000B81C85E00E947D1B81110E94291B0E94DC +:10376000DD1C8093CC0187E00E947D1B8823A9F19A +:103770008BE10E947D1B882351F08091CC0181FB5D +:10378000222720F991E0922790FB81F90EC08EE06C +:103790000E947D1B882361F08091CC0182FB22274F +:1037A00020F991E0922790FB82F98093CC0115C01B +:1037B00080E10E947D1B9091CC01882341F093FB16 +:1037C000222720F981E0822780FB93F904C0892F0A +:1037D000809580FB90F99093CC018091CC010E9460 +:1037E000E11C0E94EF1C8093DF0180EE0E947D1B94 +:1037F000882341F08091DF01982F909590FB80F90C +:103800008093DF0189E30E947D1B882359F080911A +:10381000DF0181FB222720F991E0922790FB81F9BB +:103820008093DF0182EE0E947D1B882359F08091F6 +:10383000DF0182FB222720F991E0922790FB82F999 +:103840008093DF0186EE0E947D1B882359F08091D2 +:10385000DF0183FB222720F991E0922790FB83F977 +:103860008093DF0183EE0E947D1B882359F08091B5 +:10387000DF0184FB222720F991E0922790FB84F955 +:103880008093DF0185E30E947D1B882359F080919E +:10389000DF0185FB222720F991E0922790FB85F933 +:1038A0008093DF0181E30E947D1B882359F0809182 +:1038B000DF0186FB222720F991E0922790FB86F911 +:1038C0008093DF0181E10E947D1B882359F0809164 +:1038D000DF0187FB222720F991E0922790FB87F9EF +:1038E0008093DF018091DF010E94F31C8091DF0152 +:1038F00087FB882780F980930D0187E20E947D1B5A +:10390000C82F8EE10E947D1B8111C2608FE10E9451 +:103910007D1B8111C46080E20E947D1B8111C86003 +:1039200081E20E947D1B8111C06182E20E947D1BA9 +:103930008111C06283E20E947D1B8111C06484E218 +:103940000E947D1B882311F0C06802C0CC2329F09F +:103950008C2F0E94EA1C6C2F03C00E94E61C682F6B +:1039600070E080E090E0CF910C94D617CF9108954D +:103970006DEE7EEF80E090E00E941E2360E082E02A +:1039800090E00E94102360E083E090E00E9410230A +:1039900060E084E090E00E94102360E085E090E029 +:1039A0000C94102380E090E00E940A2321E08D3ED9 +:1039B0009E4F09F020E0822F089582E090E00C9461 +:1039C0000223682F82E090E00C94102383E090E0C3 +:1039D0000C940223682F83E090E00C94102384E081 +:1039E00090E00C940223682F84E090E00C94102364 +:1039F0008091D40180FF0BC06091130185E0689F26 +:103A0000B001112475956795759567952BC081FF59 +:103A100009C06091130185E0689FB001112475957C +:103A2000679520C082FF07C06091130185E0689F01 +:103A3000B001112417C09091D5019923D1F0609164 +:103A40001201961788F72091130185E0289F9001B5 +:103A50001124929FA001939F500D112470E0CA0180 +:103A60000E94D4226038710540F46115710539F067 +:103A700002C065E070E0862F08958FE7089581E029 +:103A800008958091D40180FF08C06091110170E019 +:103A9000759567957595679521C081FF06C0609102 +:103AA000110170E07595679519C082FF04C060919F +:103AB000110170E010C09091D5019923C1F060917F +:103AC00010019617A0F780911101899FC001112460 +:103AD00070E00E94D4226038710528F461157105E8 +:103AE00021F0862F08958FE7089581E0089561E021 +:103AF00070E0F4CF803F21F40E94F81C819504C04F +:103B0000813F29F40E94F81C8093D8010895823FD8 +:103B100021F40E94F81C819504C0833F29F40E947F +:103B2000F81C8093D7010895893F19F40E94411D24 +:103B300005C08A3F31F40E94411D81958093D901CF +:103B400008958B3F21F40E94411D819504C08C3F54 +:103B500029F40E94411D8093DA010895843F21F4E5 +:103B60008091D601816017C0853F21F48091D601F4 +:103B7000826011C0863F21F48091D60184600BC021 +:103B8000873F21F48091D601886005C0883F31F4D9 +:103B90008091D60180618093D60108958D3F21F4F4 +:103BA0008091D40181600BC08E3F21F48091D401BB +:103BB000826005C08F3F29F48091D4018460809396 +:103BC000D4010895803F39F48091D80187FF6CC0FB +:103BD0001092D80169C0813F29F48091D80118164C +:103BE000BCF362C09091D701823F29F497FF5CC07B +:103BF0001092D70159C0833F19F41916CCF354C061 +:103C0000893F41F48091D90118160CF04DC01092F3 +:103C1000D9014AC08A3F29F48091D90187FF44C065 +:103C2000F6CF8B3F39F48091DA0187FF3DC01092C7 +:103C3000DA013AC08C3F29F48091DA011816BCF3FE +:103C400033C0843F21F48091D6018E7F17C0853F19 +:103C500021F48091D6018D7F11C0863F21F480919F +:103C6000D6018B7F0BC0873F21F48091D601877FDF +:103C700005C0883F31F48091D6018F7E8093D601B4 +:103C800013C08D3F21F48091D4018E7F0BC08E3FF5 +:103C900021F48091D4018D7F05C08F3F29F480915C +:103CA000D4018B7F8093D4018091D70181110EC004 +:103CB0008091D80181110AC08091D901811106C07B +:103CC0008091DA01811102C01092D501089586ED2C +:103CD00091E00E94BB0E0E94CE1A9093D301809374 +:103CE000D20108951F93CF93DF938091D2019091D9 +:103CF000D3010E94DA1AAC019091D501992321F0E9 +:103D00002091140130E006C0209115018AE0289F1F +:103D1000900111244217530708F486C08091D701FF +:103D2000C091D801D091D9011091DA01811107C059 +:103D3000C11176C0D11174C0111172C075C09F3FFE +:103D400019F09F5F9093D501181624F40E94F81C77 +:103D50008093D7018091D70187FF05C00E94F81C8E +:103D600081958093D7011C1624F40E94F81C80933F +:103D7000D8018091D80187FF05C00E94F81C819569 +:103D80008093D8016091D701662339F1C091D801A1 +:103D9000CC2319F1772767FD7095872F972F0E9405 +:103DA000E52123E333E343E35FE30E9449220E94DA +:103DB000B2216093D7016C2F772767FD7095872F0D +:103DC000972F0E94E52123E333E343E35FE30E945F +:103DD00049220E94B2216093D8011D1624F40E944A +:103DE000411D8093D9018091D90187FF05C00E94B0 +:103DF000411D81958093D901111624F40E94411D23 +:103E00008093DA018091DA0187FF05C00E94411D8D +:103E100081958093DA01DF91CF911F910C94671EF9 +:103E20009F3F09F08ECF96CFDF91CF911F910895DC +:103E3000E6EDF1E085E0DF011D928A95E9F7109249 +:103E4000D5011092D4010895833081F128F4813096 +:103E500059F08230D1F00895853009F449C0B8F1A5 +:103E6000863009F456C0089580911501262F30E060 +:103E7000280F311D2F3F310524F4680F6093150181 +:103E800008958FEF80931501089580911401262FD6 +:103E900030E0280F311D2F3F310524F4680F609367 +:103EA000140108958FEF80931401089580911301F8 +:103EB000262F30E0280F311D2F3F310524F4680FE5 +:103EC0006093130108958FEF8093130108958091FB +:103ED0001201262F30E0280F311D2F3F310524F429 +:103EE000680F6093120108958FEF80931201089577 +:103EF00080911101262F30E0280F311D2F3F310511 +:103F000024F4680F6093110108958FEF80931101DD +:103F1000089580911001262F30E0280F311D2F3F8A +:103F2000310524F4680F6093100108958FEF80939A +:103F300010010895833011F128F4813049F0823066 +:103F400091F00895853081F120F18630C1F1089516 +:103F500080911501681720F4861B80931501089540 +:103F600010921501089580911401681720F4861BA2 +:103F70008093140108951092140108958091130103 +:103F8000681720F4861B8093130108951092130183 +:103F9000089580911201681720F4861B8093120106 +:103FA000089510921201089580911101681720F46C +:103FB000861B80931101089510921101089580913C +:103FC0001001681720F4861B809310010895109249 +:103FD000100108950F931F938D3109F46BC008F001 +:103FE0003FC08E3009F47DC0C0F4873009F46EC044 +:103FF00068F4863009F0AFC08091CC01817F8E7F5C +:104000008093CC0181E08093DC01A6C0883009F464 +:1040100058C08B3009F49BC09EC0863109F497C00C +:1040200078F4803109F470C0813109F094C00E94A5 +:104030001A1490910D0181E0892780930D0187C0AA +:10404000893109F484C08B3109F085C08091CC019D +:1040500081FB222720F991E0922790FB81F94AC049 +:10406000853309F45BC048F4873209F457C008F47B +:104070005AC0893209F452C06EC0833438F48A338E +:1040800008F067C0883309F462C065C0833409F45E +:1040900045C0883409F05FC00E941A140FEF13ED79 +:1040A00020E3015010402040E1F700C000000E94D2 +:1040B000291B4DC00E946C210E94A40E0E949E07E5 +:1040C00046C00E94DD1C0E94EF1C41C09091CC01B3 +:1040D000892F817090FF12C0917F9E7F9093CC01B9 +:1040E0003BC08091CC0182FB222720F991E09227EE +:1040F00090FB82F98093CC01992349F18091CC0106 +:1041000081608093CC0123C08091CC0183FB222766 +:1041100020F991E0922790FB83F9ECCF61E070E009 +:1041200080E090E010C08D5141E050E060E070E030 +:104130008A019B0104C0000F111F221F331F8A95A3 +:10414000D2F7C901B8010E94D6170E941A1481E063 +:1041500003C08953E9CF80E01F910F91089580E05B +:10416000089580E00895CF93C82F8091DC018130BD +:1041700079F018F08230E9F187C0E0910E01F091FA +:104180000F018081813169F0823209F07FC009C05E +:10419000E0910E01F0910F018081813111F08232A6 +:1041A00061F48C2F0E94AF20811104C08C2F0E94DB +:1041B000EA1F1DC081E090E01AC08C2F0E94B12040 +:1041C000811114C0C43179F048F4CB3079F0C0319A +:1041D00009F060C082E08093DC0108C0C93219F0A8 +:1041E000C83321F057C01092DC0154C081E08170C7 +:1041F00053C0C93289F118F5C43171F1A8F4C73040 +:1042000009F046C08AE08093150194E1909314016F +:1042100093E0909313018093120188E08093110141 +:1042200088E28093100134C0CE51C63088F5EC2F5F +:10423000F0E0E65DFE4F80818093DB0129C0CE3443 +:10424000E9F020F4CB3421F56AE013C0C13579F0F0 +:10425000C235F1F461E00DC08091DB01882319F0D3 +:104260001092DB0115C081E08093DC0115C061E094 +:1042700006C08091DB010E94241F0AC06AE0809181 +:10428000DB010E949A1F04C01092DC0180E004C090 +:1042900081E002C080E0ABCFCF910895E1E8F0E08B +:1042A0008081886080838081816080838FB7F8946B +:1042B00093E09093890090ED909388008FBF0895CC +:1042C000EFE6F0E08081826080830895EFE6F0E021 +:1042D00080818D7F80830895EFE6F0E0908182E019 +:1042E0008927808308951F920F920FB60F92112491 +:1042F0002F933F934F935F936F937F938F939F93EE +:10430000AF93BF93EF93FF938091DD019091DE0116 +:1043100001969093DE018093DD01811103C082E05C +:104320000E949E07E091DE01E695E695F0E0EA5CEA +:10433000FA4FE4918091DD018E1303C080E00E946A +:104340009E07FF91EF91BF91AF919F918F917F91C8 +:104350006F915F914F913F912F910F900FBE0F90F2 +:104360001F90189504D06894B1118DC0089570D035 +:1043700088F09F5790F0B92F9927B751A0F0D1F04E +:10438000660F771F881F991F1AF0BA95C9F712C0D8 +:10439000B13081F077D0B1E0089574C0672F782FE5 +:1043A0008827B85F39F0B93FCCF386957795679544 +:1043B000B395D9F73EF490958095709561957F4FB0 +:1043C0008F4F9F4F0895E89409C097FB3EF4909556 +:1043D0008095709561957F4F8F4F9F4F9923A9F0DE +:1043E000F92F96E9BB279395F6958795779567956D +:1043F000B795F111F8CFFAF4BB0F11F460FF1BC0B1 +:104400006F5F7F4F8F4F9F4F16C0882311F096E943 +:1044100011C0772321F09EE8872F762F05C06623F1 +:1044200071F096E8862F70E060E02AF09A95660FAA +:10443000771F881FDAF7880F9695879597F9089563 +:1044400057FD9058440F551F59F05F3F71F0479545 +:10445000880F97FB991F61F09F3F79F0879508952A +:10446000121613061406551FF2CF4695F1DF08C049 +:10447000161617061806991FF1CF86957105610566 +:1044800008940895E894BB2766277727CB0197F90E +:1044900008950BD078C069D028F06ED018F095231D +:1044A00009F05AC05FC01124EECFCADFA0F3959F78 +:1044B000D1F3950F50E0551F629FF001729FBB270B +:1044C000F00DB11D639FAA27F00DB11DAA1F649FB7 +:1044D0006627B00DA11D661F829F2227B00DA11D6A +:1044E000621F739FB00DA11D621F839FA00D611DF0 +:1044F000221F749F3327A00D611D231F849F600D11 +:10450000211D822F762F6A2F11249F5750408AF049 +:10451000E1F088234AF0EE0FFF1FBB1F661F771FD5 +:10452000881F91505040A9F79E3F510570F014C06C +:10453000AACF5F3FECF3983EDCF3869577956795BD +:10454000B795F795E7959F5FC1F7FE2B880F911DF3 +:104550009695879597F9089597F99F6780E870E099 +:1045600060E008959FEF80EC089500240A941616E9 +:10457000170618060906089500240A941216130651 +:10458000140605060895092E0394000C11F48823DF +:1045900052F0BB0F40F4BF2B11F460FF04C06F5FFB +:1045A0007F4F8F4F9F4F089597FB072E16F400946F +:1045B00007D077FD09D00E94EE2207FC05D03EF41B +:1045C000909581959F4F0895709561957F4F0895BF +:1045D000EE0FFF1F0590F491E02D0994AA1BBB1B61 +:1045E00051E107C0AA1FBB1FA617B70710F0A61BF3 +:1045F000B70B881F991F5A95A9F780959095BC0114 +:10460000CD010895F999FECF92BD81BDF89A992701 +:1046100080B50895A8E1B0E042E050E00C94252375 +:10462000262FF999FECF1FBA92BD81BD20BD0FB6CE +:10463000F894FA9AF99A0FBE019608950E941023F1 +:10464000272F0C941123DC01CB01FC01F999FECF3B +:1046500006C0F2BDE1BDF89A319600B40D9241500A +:0A4660005040B8F70895F894FFCF1A +:10466A0020029F072D080A08D607A2070101BA01EE +:10467A0028080A03140A3F4D3639F704AA047404B9 +:10468A003B04CE03E70300041904010203040506F0 +:04469A000708090004 +:00000001FF diff --git a/keyboard/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx/romanzolotarev-norman-plover-osx.png b/keyboard/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx/romanzolotarev-norman-plover-osx.png new file mode 100644 index 0000000000..10b0752be5 Binary files /dev/null and b/keyboard/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx/romanzolotarev-norman-plover-osx.png differ diff --git a/keyboard/ergodox_ez/keymaps/keymap_software_neo2.c b/keyboard/ergodox_ez/keymaps/software_neo2/keymap.c similarity index 99% rename from keyboard/ergodox_ez/keymaps/keymap_software_neo2.c rename to keyboard/ergodox_ez/keymaps/software_neo2/keymap.c index 684ecf5e33..a734062f1c 100644 --- a/keyboard/ergodox_ez/keymaps/keymap_software_neo2.c +++ b/keyboard/ergodox_ez/keymaps/software_neo2/keymap.c @@ -114,12 +114,12 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) }; // Runs just one time when the keyboard initializes. -void * matrix_init_user(void) { +void matrix_init_user(void) { }; // Runs constantly in the background, in a loop. -void * matrix_scan_user(void) { +void matrix_scan_user(void) { uint8_t layer = biton32(layer_state); diff --git a/keyboard/ergodox_ez/keymaps/software_neo2/software_neo2.hex b/keyboard/ergodox_ez/keymaps/software_neo2/software_neo2.hex new file mode 100644 index 0000000000..5ad6b23a7e --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/software_neo2/software_neo2.hex @@ -0,0 +1,1110 @@ +:100000000C940F020C9456020C9456020C94560257 +:100010000C9456020C9456020C9456020C94560200 +:100020000C9456020C9456020C946A0B0C943C0CE3 +:100030000C9456020C9456020C9456020C945602E0 +:100040000C9456020C94B0200C9456020C94560258 +:100050000C9456020C94421A0C9456020C945602BC +:100060000C9456020C9456020C9456020C945602B0 +:100070000C9456020C9456020C9456020C945602A0 +:100080000C9456020C9456020C9456020C94560290 +:100090000C9456020C9456020C9456020C94560280 +:1000A0000C9456020C9456020C945602A90CCB0CDC +:1000B000BE0DCB0CBE0D100D330DBE0D880D9B0D6E +:1000C00085108510B410B410F71031113E133E1393 +:1000D0004A113E133F123F1212133E133E132913CF +:1000E00023024C003900E100640000001E001400EF +:1000F00004001D714A0039001F001A0016001B730E +:100100004E002A0020000800070006744B002B0058 +:1001100021001500090019004D006400220017009D +:100120000A00050000006574AE0001540000007F65 +:100130000000E300AB000154000000770000E20083 +:1001400023001C000B00110000002971240018007E +:100150000D0010005000E60025000C000E003600D7 +:1001600051002800260012000F00370052002C001A +:1001700027001300330038004F0031002D002F00FE +:100180003400E50029000000010001000100010029 +:10019000010000003A000100F700FB00010001002F +:1001A0003B00F400F200FA00FD00F5003C00F00016 +:1001B000F100F900FE00F4003D00F500F300FC0042 +:1001C000FF0001003E000100F800F6000000010001 +:1001D0000100010000000100000001000100010019 +:1001E00000000100000001003F0001000100B40018 +:1001F000000001004000AA00AC00B60001000100B0 +:100200004100A800AD00B5000100B7004200A90000 +:10021000AE00B9000100B60043000100AB00B7001A +:100220000100010044004500010001000100000040 +:1002300016034500720067006F0044006F007800ED +:10024000200045005A0000001603450072006700B8 +:100250006F0044006F007800200045005A00000045 +:100260000403090409026D00040100A0FA09040056 +:10027000000103010100092111010001223F0007D3 +:1002800005810308000A09040100010301020009B5 +:100290002111010001224D000705820308000A090F +:1002A00004020001030000000921110100012236AF +:1002B000000705830308000A090403000103000086 +:1002C00000092111010001223900070584031000F3 +:1002D000011201100100000008EDFE0713010001EA +:1002E00002000105010906A101050719E029E7152A +:1002F0000025019508750181020508190129059558 +:1003000005750191029501750391010507190029F1 +:100310007715002501957875018102C005010980D6 +:10032000A101850216010026B7001A01002AB700B4 +:10033000751095018100C0050C0901A10185031606 +:100340000100269C021A01002A9C02751095018169 +:1003500000C005010902A1010901A1000509190157 +:100360002905150025019505750181029501750383 +:1003700081010501093009311581257F9502750834 +:10038000810609381581257F950175088106050CC0 +:100390000A38021581257F950175088106C0C005C0 +:1003A000010906A101050719E029E71500250195B6 +:1003B0000875018102950175088101050819012957 +:1003C00005950575019102950175039101050719C0 +:1003D0000029FF150025FF950675088100C0000063 +:1003E000000000000000000000010204060A0F17D0 +:1003F000202C3A4A5D71879DB3C7DAE9F5FCFFFC12 +:10040000F5E9DAC7B39D87715D4A3A2C20170F0AC8 +:10041000060402010000000000000000000011249A +:100420001FBECFEFDAE0DEBFCDBF04B603FE27C0AC +:100430008091ED019091EE01A091EF01B091F0015A +:100440008730904BA740B04BD1F41092ED01109241 +:10045000EE011092EF011092F00114BE84B7877F75 +:1004600084BF0FB6F894A89580916000886180934E +:100470006000109260000FBEE0E0FFE3099511E01C +:10048000A0E0B1E0E2E0F5E402C005900D92A433F3 +:10049000B107D9F721E0A4E3B1E001C01D92AD3E60 +:1004A000B207E1F70E94B1080C947F220C9400007F +:1004B00061110BC0FC018281882321F085EE0E942E +:1004C0001F0F03C085EE0E94E70F80E090E00895C3 +:1004D00008956091B1017091B2018091B301909142 +:1004E000B4010E946F1956985E9825982D98269809 +:1004F0002E9827982F98813019F4269A2E9A0895CD +:1005000056985E9808950C94690256985E982598BE +:100510002D9826982E9827982F988FEF90E09093FB +:1005200089008093880090938B0080938A00909339 +:100530008D0080938C00259A2D9A2FEF80E792E012 +:10054000215080409040E1F700C00000269A2E9A8A +:100550002FEF80E792E0215080409040E1F700C00B +:100560000000279A2F9A2FEF80E792E021508040D9 +:100570009040E1F700C0000025982D982FEF80E70C +:1005800092E0215080409040E1F700C000002698A2 +:100590002E982FEF80E792E0215080409040E1F7C5 +:1005A00000C0000027982F9856985E9825982D989F +:1005B00026982E9827982F98089589EA809380008E +:1005C00089E08093810024982C983F988AB18F7499 +:1005D0008AB96E98479A8BB1806B8BB9769A0E94D4 +:1005E00085020C94680280E28093000180913401BE +:1005F00081110EC00E94420381E0809334012FEFED +:1006000083ED90E3215080409040E1F700C000006E +:1006100080E40E9448038093000181112EC00E9453 +:10062000720380930001811128C00E94720380939D +:100630000001811122C08FE30E94720380930001A8 +:1006400081111BC00E946A0380E40E9448038093CA +:100650000001811112C08CE00E947203809300019E +:1006600081110BC00E94720380930001811105C0AB +:100670008FE30E947203809300010E946A038091BD +:10068000000108951092B9008AE08093B80008959F +:1006900094EA9093BC009091BC0097FFFCCF90919E +:1006A000B900987F983021F0903111F081E00895E1 +:1006B0008093BB0084E88093BC008091BC0087FFDE +:1006C000FCCF8091B900887F883111F0803471F7B8 +:1006D00080E0089584E98093BC008091BC0084FD93 +:1006E000FCCF08958093BB0084E88093BC00809188 +:1006F000BC0087FFFCCF9091B900987F81E09832D1 +:1007000009F480E0089584E88093BC008091BC00E7 +:1007100087FFFCCF8091BB0008958091000181117B +:1007200015C080E40E9448038093000181110CC031 +:1007300082E10E94720380930001811105C08FEF56 +:100740000E947203809300010E946A0384B1807F3B +:1007500084B985B1807F85B98AB1837F8AB98BB12D +:10076000837F8BB93E98469808950E94F302809348 +:1007700000010E948D0380B38C7080BB81B3836FB6 +:1007800081BBE4E4F1E0A6E3B1E011921D9281E0C7 +:10079000E235F807D1F70C94DD029F92AF92BF9239 +:1007A000CF92DF92EF92FF920F931F93CF93DF933D +:1007B00080910001882379F0809135018F5F8093CB +:1007C0003501811108C00E94F3028093000181115C +:1007D00002C00E94850286E3E82E81E0F82E8701A0 +:1007E000C0E0D0E0BB24B39492E0A92ECC24C39403 +:1007F000D12CC730D10500F580910001811164C072 +:1008000080E40E94480380930001811112C082E1BC +:100810000E9472038093000181110BC0C6010C2E4F +:1008200001C0880F0A94EAF780950E9472038093B2 +:1008300000010E946A0348C0CA30A1F028F4C83001 +:1008400059F0C93061F005C0CC3089F070F0CD307E +:1008500089F0209A289810C0219A29980DC0229AD0 +:100860002A980AC0239A2B9807C0529A01C0539A1B +:100870005B9802C03E9A4698E0EAEA95F1F78FB19C +:1008800081708B25799902C032E001C030E0832B62 +:100890007C9902C034E001C030E0832B7D9902C016 +:1008A00028E001C020E0822B7E9902C090E101C0C7 +:1008B00090E0892B9FB19095991F9927991F929548 +:1008C000990F907E892B0FC08091000181114AC041 +:1008D00080E40E94480380930001882381F1912CD9 +:1008E0000E946A03892DD8019C91981719F08C9366 +:1008F000A09201010E948D0321960F5F1F4FCE3001 +:10090000D10509F076CF80910101882369F18150EA +:1009100080930101882339F0EFE9FFE03197F1F787 +:1009200000C0000021C0E4E4F1E0D7018D917D0119 +:100930008193B4E4EB16B1E0FB06B9F715C083E18F +:100940000E947203809300018111C9CF81E40E944B +:100950004803809300018111C2CF0E948303982E27 +:100960009094BECF80E0BFCF0E94830281E0DF91F0 +:10097000CF911F910F91FF90EF90DF90CF90BF909C +:10098000AF909F900895E82FF0E0EC5BFE4F8081E0 +:10099000089508958B3B910580F4883A910548F5B8 +:1009A000853A9105D8F48430910508F0B2C00197DA +:1009B00009F06EC081E090E00895803E910508F452 +:1009C00067C0883E910508F4A4C09C01205F3109EE +:1009D0002031310508F05CC090650895853A910595 +:1009E00009F459C0863A910509F058C082E890E4AC +:1009F0000895883A910509F454C0893A910509F49B +:100A000053C08A3A910509F452C08B3A910509F412 +:100A100051C08C3A910509F450C08D3A910509F402 +:100A20004FC0803B910509F44EC08E3A910509F400 +:100A30004DC08F3A910509F44CC0813B910509F4F2 +:100A40004BC0823B910509F44AC0833B910509F4F0 +:100A500049C0843B910509F448C0853B910509F4E0 +:100A600047C0863B910509F446C0873B910509F4D0 +:100A700045C0883B910509F444C0893B910509F4C0 +:100A800043C08A3B910509F442C080E094E4089594 +:100A900080E090E0089581E890E4089583E890E490 +:100AA000089582EE94E4089589EE94E408958AEE20 +:100AB00094E4089585EB94E4089586EB94E4089516 +:100AC00087EB94E408958CEC94E408958DEC94E421 +:100AD000089583E895E408958AE895E4089582E905 +:100AE00095E4089584E995E4089581E296E40895F3 +:100AF00083E296E4089584E296E4089585E296E41C +:100B0000089586E296E4089587E296E408958AE2DD +:100B100096E40895089524E5829FC0011124FC0104 +:100B200026E0729FE00DF11D1124E60FF11DEE0F7E +:100B3000FF1FE052FF4F859194910895880F991FF0 +:100B4000FC01E05AF040859194910895880F991F17 +:100B5000FC01E052FF4F85919491089524E5829F16 +:100B6000C0011124FC0146E0749FE00DF11D112429 +:100B7000E60FF11DEE0FFF1FE052FF4F859194919C +:100B80009C013A9521154FE1340708F425C13F51E6 +:100B90002115304120F49F700E94A60508959C0104 +:100BA00030532115304118F49927906C0895811520 +:100BB00020E5920769F40E9460134FEF84E39CE004 +:100BC000415080409040E1F700C000000C94671A4B +:100BD000813020E5920731F48091CC0181608093CF +:100BE000CC0108959C0130552115304108F05CC0BE +:100BF000292F33272F70332721303105E9F4AC0139 +:100C000064E0440F551F6A95E1F744275370BC0117 +:100C10006370772702C0220F331F6A95E2F73C68A2 +:100C2000242B352B73E0880F991F7A95E1F7807696 +:100C30009927822B932B08952230310529F4982F80 +:100C40008827816F906A089523303105A1F4AC01A3 +:100C500033E0440F551F3A95E1F7407E577083709B +:100C6000992721E030E002C0220F331F8A95E2F776 +:100C7000C9019C6816C02430310531F5AC0123E070 +:100C8000440F551F2A95E1F7407E577083709927CE +:100C900021E030E002C0220F331F8A95E2F7C9013C +:100CA0009A68842B952B08959C013057211530416B +:100CB00018F49F70906208959C01305821153041BE +:100CC00018F49F70906A0895803E9105E0F4803C8E +:100CD000910558F58133910509F46FC048F48932C4 +:100CE000910509F463C08A32910509F46DC072C0A0 +:100CF00089339105E9F082389105D1F0853391056A +:100D000009F44DC067C0833E910581F138F4803EFF +:100D10009105B9F0823E9105D9F05CC0863E9105FF +:100D200061F1873E9105A1F155C00E949E0508958D +:100D30002091DE0120FD02C021FF4CC080EE90E03A +:100D400049C08091DE0180FFF9CF89E390E042C085 +:100D50008091DE0182FF0EC08091DE0184FF03C01E +:100D600080E090E037C083EE90E034C08091DE01F7 +:100D700082FFF2CF82EE90E02DC08091DE0183FFF2 +:100D80000BC08091DE0184FDEBCF87EE90E022C0A6 +:100D90008091DE0183FFF5CF86EE90E01BC080914D +:100DA000DE0185FF07C089E290E014C08091DE017A +:100DB00085FFF9CF85E390E00DC08091DE0186FFCD +:100DC00007C08AE290E006C08091DE0186FFF9CF7D +:100DD00081E390E00E94CA04089508958091620121 +:100DE0000895CF93DF9300D01F92CDB7DEB79C015B +:100DF0008091E401843019F593E099833B832A8341 +:100E00009093E9008FEF9091E800815095FD06C026 +:100E100095ED9A95F1F700008111F5CF8091E800EA +:100E200085FF0DC040E050E063E070E0CE01019628 +:100E30000E945E098091E8008E778093E8000F9011 +:100E40000F900F90DF91CF910895CF93DF9300D053 +:100E50001F92CDB7DEB72091E401243021F522E0C6 +:100E600029839B838A8383E08093E9008FEF9091AD +:100E7000E800815095FD06C095ED9A95F1F70000C8 +:100E80008111F5CF8091E80085FF0DC040E050E072 +:100E900063E070E0CE0101960E945E098091E80057 +:100EA0008E778093E8000F900F900F90DF91CF9195 +:100EB00008959C018091E4018430F9F482E08093EC +:100EC000E9009FEF8091E800915085FD06C085ED17 +:100ED0008A95F1F700009111F5CF8091E80085FF28 +:100EE0000CC040E050E065E070E0C9010E945E097E +:100EF0008091E8008E778093E8000895CF93DF9388 +:100F0000EC018091E401843009F046C090910C011D +:100F10009923D9F090910D019923B9F08093E900BC +:100F20008FEF9091E800815095FD06C095E19A956C +:100F3000F1F700008111F5CF8091E80085FF2CC00A +:100F400040E050E060E170E017C081E08093E9008C +:100F50008FEF9091E800815095FD06C095ED9A9530 +:100F6000F1F700008111F5CF8091E80085FF14C0F2 +:100F700040E050E068E070E0CE010E945E098091A0 +:100F8000E8008E778093E80080E1FE01A2E5B1E001 +:100F900001900D928A95E1F7DF91CF9108958091AC +:100FA000E301811109C00E94EF0A0E944C0B80915D +:100FB000E20084608093E20008951092E3010895B6 +:100FC00008950C949D200E94FD190E94A3200E9468 +:100FD000F70D0C94ED0642E061EC81E00E94680A96 +:100FE00042E061EC82E00E94680A42E061EC83E04A +:100FF0000E94680A42E161EC84E00C94680A8091E6 +:10100000E601833009F455C030F4813071F082304C +:1010100009F48EC008958A3009F47AC08B3009F43F +:1010200060C0893009F09CC020C08091E501813A00 +:1010300009F096C08091E800877F8093E800809156 +:10104000E9019091EA01892B21F460E182E591E0C8 +:1010500003C060E080E090E070E00E94A909809108 +:10106000E8008B778093E80008958091E501813254 +:1010700009F076C08091E9019091EA01009719F09A +:10108000039709F06DC08091E800877F8093E800A6 +:101090008091E80082FD05C08091E4018111F8CFC4 +:1010A0005FC08091F100809362018091E8008B77AE +:1010B00053C08091E501813A09F052C08091E90165 +:1010C0009091EA01892B09F04BC08091E800877F5D +:1010D0008093E8008091E80080FFFCCF80910C01B4 +:1010E00036C08091E5018132D9F58091E901909176 +:1010F000EA01892BA9F58091E800877F8093E800B9 +:101100000E949D0A8091E70180930C010C9460136A +:101110008091E501813221F58091E800877F8093FD +:10112000E8000E949D0A8091E80180936301089580 +:101130008091E501813AA1F48091E800877F809356 +:10114000E8008091E80080FFFCCF809163018093EC +:10115000F1008091E8008E778093E8000C949D0A5E +:10116000089584B7877F84BF0FB6F894A8958091BF +:101170006000886180936000109260000FBE90E074 +:1011800080E80FB6F89480936100909361000FBEE1 +:101190000E94460E0E94EF0A0E944C0B8091E200D2 +:1011A00084608093E20078940E94D70D0E94480EDC +:1011B00082E091E00E94F20D0E948B208091E40178 +:1011C000853069F40E94BF198091E2018823B1F350 +:1011D0000E94E919882391F30E944809EFCF0E94E9 +:1011E0004E0EECCF292F332723303105C9F060F4A0 +:1011F0002130310581F02230310509F041C08DE602 +:1012000090E024E632E040C021323105E1F02232A4 +:10121000310531F135C082E190E021ED32E034C09A +:1012200099278130910549F028F0029749F5E0E3CC +:10123000F2E005C0E0E6F2E002C0E8E4F2E084910A +:1012400090E09F0121C06430D8F4E62FF0E0EE0F6B +:10125000FF1FEE5DFE4F2081318189E090E014C0D8 +:10126000643070F470E0FB01EE0FFF1FE65EFE4F8E +:1012700020813181FB01EA5EFE4F808190E004C055 +:1012800080E090E020E030E0FA013183208308958F +:1012900080E189BD82E189BD09B400FEFDCF809166 +:1012A000D8008F7D8093D8008091E0008260809389 +:1012B000E0008091E00081FDFCCF0895CF92DF92A5 +:1012C000EF92FF920F931F93CF93DF93EC018B016B +:1012D0006A010E94BC0A811133C0C114D10439F0E3 +:1012E000F60180819181081B190BC80FD91FE12CD1 +:1012F000F12C0115110519F18091E80085FD16C04A +:101300008091E8008E778093E800C114D10449F001 +:10131000F60180819181E80EF91EF182E08285E07C +:101320000FC00E94BC0A882321F30AC089918093D0 +:10133000F10001501109FFEFEF1AFF0ADACF80E048 +:10134000DF91CF911F910F91FF90EF90DF90CF90A1 +:1013500008952091EB013091EC012617370748F0F2 +:101360006115710539F42091E8002E772093E8008B +:1013700001C0B901FC0120E06115710579F180918E +:10138000E4018823F1F18530F1F18091E80083FDDB +:101390003CC08091E80082FD2EC08091E80080FF73 +:1013A000EBCF2091F3008091F20090E0922B611539 +:1013B000710551F08830910538F421912093F100A6 +:1013C000615071090196F3CF21E0089709F020E000 +:1013D0008091E8008E778093E800CECF2111CFCFA7 +:1013E0000AC08091E401882361F0853061F080912A +:1013F000E80083FD0AC08091E80082FFF2CF80E020 +:10140000089582E0089583E0089581E00895209191 +:10141000EB013091EC012617370748F06115710593 +:1014200039F42091E8002E772093E80001C0B9013B +:10143000FC0120E06115710591F18091E4018823A0 +:1014400009F440C0853009F43FC08091E80083FD75 +:101450003DC08091E80082FD2FC08091E80080FFB0 +:10146000E9CF2091F3008091F20090E0922B61157A +:10147000710559F08830910540F424912093F100D2 +:101480003196615071090196F2CF21E0089709F079 +:1014900020E08091E8008E778093E800CBCF211187 +:1014A000CCCF0AC08091E401882361F0853061F0DF +:1014B0008091E80083FD0AC08091E80082FFF2CFAE +:1014C00080E0089582E0089583E0089581E0089522 +:1014D000982F973068F59093E900981739F070913C +:1014E000EC002091ED005091F00003C0242F762FE6 +:1014F00050E021FD02C09F5FECCF3091EB003E7FBA +:101500003093EB003091ED003D7F3093ED00309152 +:10151000EB0031603093EB007093EC002093ED0012 +:101520005093F0002091EE0027FDE5CF80E0089574 +:101530008F708093E90081E008958091E50187FF35 +:1015400011C08091E80082FD05C08091E401811105 +:10155000F8CF11C08091E8008B770BC08091E40137 +:10156000882349F08091E80080FFF8CF8091E8005F +:101570008E778093E80008952091E4003091E50093 +:1015800095E64091EC00842F817040FF23C080914C +:10159000E80080FD1DC08091E401882399F085302A +:1015A00099F08091EB0085FD11C04091E4005091CD +:1015B000E5002417350729F3915011F09A01E1CF86 +:1015C00084E0089582E0089583E0089581E008951D +:1015D00080E008954091E80042FFDDCF08950E9429 +:1015E0005D0B0E94650BE0EEF0E0808181608083FE +:1015F000E8EDF0E080818F77808319BCA7EDB0E043 +:101600008C918E7F8C9380818F7E80831092E301FA +:1016100008950F931F93CF93DF930E945D0B0E9459 +:10162000650BC8EDD0E088818F77888388818068DA +:10163000888388818F7D888319BC1092E401109281 +:10164000E0011092E2011092E10100EE10E0F801D9 +:1016500080818B7F808388818160888342E060E025 +:1016600080E00E94680AE1EEF0E080818E7F808356 +:10167000E2EEF0E0808181608083808188608083F9 +:10168000F80180818E7F8083888180618883DF91EB +:10169000CF911F910F910895E8EDF0E080818F7E4A +:1016A0008083E7EDF0E080818160808384E082BF09 +:1016B00081E08093E3010C94090BE8EDF0E0808178 +:1016C0008E7F80831092E20008951092DA001092CB +:1016D000E10008951F920F920FB60F9211242F93DD +:1016E0003F934F935F936F937F938F939F93AF93AA +:1016F000BF93EF93FF938091E10082FF0BC0809135 +:10170000E20082FF07C08091E1008B7F8093E100BF +:101710000E94D60D8091DA0080FF1FC08091D80012 +:1017200080FF1BC08091DA008E7F8093DA00809169 +:10173000D90080FF0DC080E189BD82E189BD09B477 +:1017400000FEFDCF81E08093E4010E94CF0705C039 +:1017500019BC1092E4010E94DD078091E10080FF36 +:1017600019C08091E20080FF15C08091E2008E7F59 +:101770008093E2008091E20080618093E20080919A +:10178000D80080628093D80019BC85E08093E40182 +:101790000E94E1078091E10084FF30C08091E20067 +:1017A00084FF2CC080E189BD82E189BD09B400FEBF +:1017B000FDCF8091D8008F7D8093D8008091E1008B +:1017C0008F7E8093E1008091E2008F7E8093E20023 +:1017D0008091E20081608093E2008091E0018823A3 +:1017E00011F084E007C08091E30087FD02C081E032 +:1017F00001C083E08093E4010E94E3078091E1004F +:1018000083FF29C08091E20083FF25C08091E10021 +:10181000877F8093E10082E08093E4011092E001F1 +:101820008091E1008E7F8093E1008091E2008E7FC5 +:101830008093E2008091E20080618093E20042E0C8 +:1018400060E080E00E94680A8091F00088608093E8 +:10185000F0000E94E007FF91EF91BF91AF919F913F +:101860008F917F916F915F914F913F912F910F9049 +:101870000FBE0F901F9018951F920F920FB60F92E8 +:1018800011242F933F934F935F936F937F938F9385 +:101890009F93AF93BF93CF93DF93EF93FF93C09149 +:1018A000E900CF708091EC00D82FD17080FDD0E896 +:1018B0001092E9008091F000877F8093F000789487 +:1018C0000E94800C1092E9008091F0008860809363 +:1018D000F000CD2BCF70C093E900FF91EF91DF9125 +:1018E000CF91BF91AF919F918F917F916F915F91B8 +:1018F0004F913F912F910F900FBE0F901F90189511 +:101900001F93CF93DF93CDB7DEB7AA970FB6F894A6 +:10191000DEBF0FBECDBFE5EEF1E08091F100819317 +:1019200021E0ED3EF207C9F70E94FF078091E80031 +:1019300083FF24C18091E5019091E601492F50E099 +:101940004A30510508F01AC1FA01EA5AFF4F0C94C7 +:101950003422803881F0823809F010C18091E90189 +:101960008F708093E9008091EB0085FB882780F9D8 +:101970001092E90006C08091E1019091E20191117D +:1019800082609091E800977F9093E8008093F10047 +:101990001092F100C8C0282F2D7F09F0EFC08823D6 +:1019A00019F0823061F0EAC08091E701813009F0DE +:1019B000E5C0933009F080E08093E2012BC0809174 +:1019C000E701811127C08091E9018F7009F4D6C029 +:1019D0008093E9002091EB0020FF1CC0933021F49C +:1019E0008091EB00806214C09091EB009061909325 +:1019F000EB0021E030E0A90102C0440F551F8A9599 +:101A0000E2F74093EA001092EA008091EB008860D0 +:101A10008093EB001092E9008091E800877F86C0F8 +:101A20008111ACC01091E7011F778091E3008078AD +:101A3000812B8093E3008091E800877F8093E8000A +:101A40000E949D0A8091E80080FFFCCF8091E30016 +:101A500080688093E300111102C082E001C083E03E +:101A60008093E4018BC08058823008F087C0809159 +:101A7000E7019091E8018C3D53E0950779F583E00B +:101A80008A838AE289834FB7F894DE01139620E0B7 +:101A90003EE051E2E32FF0E050935700E49120FF45 +:101AA00003C0E295EF703F5FEF708E2F90E0EA3059 +:101AB00010F0C79601C0C0968D939D932F5F24317F +:101AC00049F74FBF8091E800877F8093E8006AE282 +:101AD00070E0CE0101960E94A90914C0AE014F5FCB +:101AE0005F4F6091E9010E94F208BC01892B09F463 +:101AF00045C09091E800977F9093E80089819A8192 +:101B00000E94070A8091E8008B778093E80036C036 +:101B10008038A1F58091E800877F8093E80080916C +:101B2000E0018093F1008091E8008E778093E800D7 +:101B30000E949D0A23C0811121C08091E7019091EC +:101B4000E80199270297D4F48091E800877F809379 +:101B5000E8008091E7018093E0010E949D0A809156 +:101B6000E001811106C08091E30087FD02C081E0A1 +:101B700001C084E08093E4010E94EB078091E800BB +:101B800083FF0AC08091E800877F8093E8008091FE +:101B9000EB0080628093EB00AA960FB6F894DEBF4C +:101BA0000FBECDBFDF91CF911F9108950895CF93C0 +:101BB0008091E4018823A1F0C091E900CF70909159 +:101BC000EC00892F817090FD80E8C82B1092E9000D +:101BD0008091E80083FD0E94800CCF70C093E900E3 +:101BE000CF91089590936901809368010895E091E1 +:101BF0006801F0916901309721F00190F081E02DAA +:101C0000099480E00895E0916801F09169013097AE +:101C100021F00280F381E02D09940895E09168019C +:101C2000F0916901309721F00480F581E02D09944D +:101C3000089520916601309167012817390771F0E6 +:101C40009093670180936601E0916801F0916901CA +:101C5000309721F00680F781E02D099408952091B6 +:101C60006401309165012817390771F0909365017F +:101C700080936401E0916801F0916901309721F04F +:101C80000084F185E02D0994089508950C94450E83 +:101C90000E94031A0E94B5030C94C91ACF92DF92D6 +:101CA000EF92FF920F931F93CF93DF93CDB7DEB7E1 +:101CB0002B970FB6F894DEBF0FBECDBF0E94CD03A9 +:101CC0008BE6C82E81E0D82E00E010E0E02E802FB9 +:101CD0000E94C304F60141916F01F82EF426B1F47D +:101CE0000F5F1F4F0E30110589F78FEF89838A83AD +:101CF0001B820E940C1A8160782F9D838C834981FE +:101D00005A816B818D810E94F10E40C09091CC016F +:101D100091FF04C08B870E94C9048B8520E030E0CE +:101D20004F2D50E0922FBA01022E02C07595679593 +:101D30000A94E2F760FF24C02E83EF8221E030E0B6 +:101D4000690102C0CC0CDD1C9A95E2F790E08C2171 +:101D50009D21892B09F420E028870E940C1A8160BC +:101D6000782F9A8789874E815F8168858A850E944E +:101D7000F10EF801E559FE4F8081C826C08206C0E9 +:101D80002F5F3F4F2630310569F6AACF0E94B01D64 +:101D90000E94F70D90916A018917A1F00E94F70D3A +:101DA00080936A012B960FB6F894DEBF0FBECDBFAD +:101DB000DF91CF911F910F91FF90EF90DF90CF9027 +:101DC0000C94ED062B960FB6F894DEBF0FBECDBF78 +:101DD000DF91CF911F910F91FF90EF90DF90CF9007 +:101DE0000895CF93DF93CDB7DEB72B970FB6F89456 +:101DF000DEBF0FBECDBF4F83588769877A878B8739 +:101E0000DE01119686E0FD0111928A95E9F785E0E1 +:101E1000FE01379601900D928A95E1F749815A812A +:101E20006B817C818D819E810E94F4152B960FB66B +:101E3000F894DEBF0FBECDBFDF91CF910895CF9351 +:101E4000C82F882309F4C1C0823859F40E94F70DC5 +:101E500081FDBBC089E30E9491180E94491989E362 +:101E60000CC0833879F40E94F70D80FDAEC083E585 +:101E70000E9491180E94491983E50E94D018CF91C1 +:101E80000C944919843859F40E94F70D82FD9DC0C5 +:101E900087E40E9491180E94491987E4EECF8CEFE5 +:101EA0008C0F813A48F48C2F0E94F01F81118DC055 +:101EB0008C2F0E949118E3CF80E28C0F883048F479 +:101EC000C77081E001C0880FCA95EAF70E94121915 +:101ED000D6CF8BE58C0F833078F4C53A29F0C63A1B +:101EE00031F083E890E005C081E890E002C082E82C +:101EF00090E0CF910C94190E88E58C0F833108F097 +:101F000064C0C83A39F1C93A41F1CA3A49F1CB3A09 +:101F100051F1CC3A59F1CD3A61F1C03B69F1CE3A79 +:101F200071F1CF3A79F1C13B81F1C23B89F1C33BF9 +:101F300091F1C43B99F1C53BA1F1C63BA9F1C73B67 +:101F4000B1F1C83BB9F1C93BC1F1CA3BC9F180E06D +:101F500090E038C082EE90E035C089EE90E032C06B +:101F60008AEE90E02FC085EB90E02CC086EB90E0ED +:101F700029C087EB90E026C08CEC90E023C08DEC6C +:101F800090E020C083E891E01DC08AE891E01AC08B +:101F900082E991E017C084E991E014C081E292E007 +:101FA00011C083E292E00EC084E292E00BC085E2B1 +:101FB00092E008C086E292E005C087E292E002C0AB +:101FC0008AE292E0CF910C942F0ECF91089588234E +:101FD00009F44BC0823859F40E94F70D81FF45C0C7 +:101FE00089E30E9491180E94491989E30CC0833843 +:101FF00071F40E94F70D80FF38C083E50E949118AC +:102000000E94491983E50E94D0180C94491984381C +:1020100059F40E94F70D82FF28C087E40E949118AE +:102020000E94491987E4EFCF9CEF980F913A58F33B +:1020300090E2980F983050F4877091E001C0990FAA +:102040008A95EAF7892F0E941819DFCF9BE5980F30 +:10205000933020F480E090E00C94190E885A83317C +:1020600020F480E090E00C942F0E0895882321F056 +:102070000E9412190C9449190895882321F00E9496 +:1020800018190C9449190895BF92CF92DF92EF92DC +:10209000FF920F931F93CF93DF9300D000D000D017 +:1020A000CDB7DEB77C0185E0F701DE011196019026 +:1020B0000D928A95E1F7F70183819481892B09F4C8 +:1020C000DDC2908181818F3F19F49F3F09F4D6C210 +:1020D000F7010281258122952F7099838A83898156 +:1020E0009A812E830E945018182FB92E0E944F18E3 +:1020F0000E941617EB2DE295EF704E2F50E0FA017B +:10210000E05AFF4F2E810C9434228B2D807F9B2D23 +:102110009F70F92E882319F0F29480EFF8220023A3 +:1021200049F0FF2009F457C28F2D0E9422190E9406 +:10213000491951C2812F0E94E70FFF2009F49EC266 +:102140008F2D0E94281926960FB6F894DEBF0FBE79 +:10215000CDBFDF91CF911F910F91FF90EF90DF9056 +:10216000CF90BF900C9449193B2D307F8B2D8F70F1 +:10217000303211F08295807F112319F0113021F156 +:102180002CC00023B9F0222309F490C1213009F0BA +:102190008DC126960FB6F894DEBF0FBECDBFDF917E +:1021A000CF911F910F91FF90EF90DF90CF90BF9054 +:1021B0000C943219222319F0213009F45FC28E8366 +:1021C0000E9435198E8186C1002321F0223008F04B +:1021D00055C26CC1211152C27DC1002321F02223BE +:1021E00009F464C1F8C1222309F474C109C28B2D1A +:1021F00086958695837019F08130D1F03FC2002317 +:1022000021F0812F9B2D937002C080E090E02696F4 +:102210000FB6F894DEBF0FBECDBFDF91CF911F91F7 +:102220000F91FF90EF90DF90CF90BF900C94190E1C +:10223000002321F0812F9B2D937002C080E090E05D +:1022400026960FB6F894DEBF0FBECDBFDF91CF91BB +:102250001F910F91FF90EF90DF90CF90BF900C9463 +:102260002F0E812F002319F00E94B81C02C00E947B +:10227000201D26960FB6F894DEBF0FBECDBFDF91AE +:10228000CF911F910F91FF90EF90DF90CF90BF9073 +:102290000C94A51D8B2D837009F075C00111EEC142 +:1022A000812F829586958770880F880F912F9F7058 +:1022B000C92ED12CE12CF12C082E04C0CC0CDD1C35 +:1022C000EE1CFF1C0A94D2F714FF12C00FE010E0BE +:1022D00020E030E004C0000F111F221F331F8A9539 +:1022E000D2F7C901B801609570958095909503C0AB +:1022F00060E070E0CB014B2D46954695437042302F +:10230000C1F060F56C297D298E299F29413051F15A +:1023100026960FB6F894DEBF0FBECDBFDF91CF91EA +:102320001F910F91FF90EF90DF90CF90BF900C9492 +:102330003D176C297D298E299F2926960FB6F89482 +:10234000DEBF0FBECDBFDF91CF911F910F91FF90E8 +:10235000EF90DF90CF90BF900C9459170E943D17DB +:10236000C701B60126960FB6F894DEBF0FBECDBFEB +:10237000DF91CF911F910F91FF90EF90DF90CF9061 +:10238000BF900C942117002319F08B2D817001C090 +:102390008695882309F472C1812F8295869587706E +:1023A000880F880F912F9F70C92ED12CE12CF12C12 +:1023B000082E04C0CC0CDD1CEE1CFF1C0A94D2F7C6 +:1023C00014FF12C00FE010E020E030E004C0000F66 +:1023D000111F221F331F8A95D2F7C901B8016095DA +:1023E00070958095909503C060E070E0CB014B2D17 +:1023F0004695469543704230C1F060F56C297D29C1 +:102400008E299F29413051F126960FB6F894DEBFF0 +:102410000FBECDBFDF91CF911F910F91FF90EF9035 +:10242000DF90CF90BF900C9417186C297D298E29CE +:102430009F2926960FB6F894DEBF0FBECDBFDF9161 +:10244000CF911F910F91FF90EF90DF90CF90BF90B1 +:102450000C9433180E941718C701B60126960FB6C0 +:10246000F894DEBF0FBECDBFDF91CF911F910F91CA +:10247000FF90EF90DF90CF90BF900C94FB17103F30 +:10248000D1F118F4103E50F4A1C0123F09F463C01A +:1024900008F44CC0133F09F473C098C01F708B2D13 +:1024A0008F710023A1F00E949417812F26960FB6FA +:1024B000F894DEBF0FBECDBFDF91CF911F910F917A +:1024C000FF90EF90DF90CF90BF900C9436100E9459 +:1024D000B517812F26960FB6F894DEBF0FBECDBF7D +:1024E000DF91CF911F910F91FF90EF90DF90CF90F0 +:1024F000BF900C943D100023A9F02111BFC08B2D7B +:102500008F7126960FB6F894DEBF0FBECDBFDF9158 +:10251000CF911F910F91FF90EF90DF90CF90BF90E0 +:102520000C94DA17223008F0A9C0E9CF0023A9F0F3 +:102530008B2D8F7126960FB6F894DEBF0FBECDBFE0 +:10254000DF91CF911F910F91FF90EF90DF90CF908F +:10255000BF900C949417002359F38B2D8F712696FE +:102560000FB6F894DEBF0FBECDBFDF91CF911F91A4 +:102570000F91FF90EF90DF90CF90BF900C94B51724 +:10258000002399F08B2D8F7126960FB6F894DEBF3D +:102590000FBECDBFDF91CF911F910F91FF90EF90B4 +:1025A000DF90CF90BF900C947F1726960FB6F894CB +:1025B000DEBF0FBECDBFDF91CF911F910F91FF9076 +:1025C000EF90DF90CF90BF900C9475170023A9F087 +:1025D000222309F4ADCF812F26960FB6F894DEBFE3 +:1025E0000FBECDBFDF91CF911F910F91FF90EF9064 +:1025F000DF90CF90BF900C941F0F222309F4ADCF32 +:10260000812F26960FB6F894DEBF0FBECDBFDF91A7 +:10261000CF911F910F91FF90EF90DF90CF90BF90DF +:102620000C94E70F4B2D4F70612FC7010E94580289 +:1026300026960FB6F894DEBF0FBECDBFDF91CF91C7 +:102640001F910F91FF90EF90DF90CF90BF900C946F +:1026500099164B2D4F70612FC70126960FB6F8942F +:10266000DEBF0FBECDBFDF91CF911F910F91FF90C5 +:10267000EF90DF90CF90BF900C948A0526960FB60E +:10268000F894DEBF0FBECDBFDF91CF911F910F91A8 +:10269000FF90EF90DF90CF90BF9008950E942F1988 +:1026A0000E9404190E9449190E94551E0E94A51DEE +:1026B00080E090E00E94190E80E090E00C942F0ED4 +:1026C0000E941F190C944E130E945018292F229516 +:1026D0002F702C3030F42A3048F42250223078F415 +:1026E00005C02C3041F02F3031F009C0803E48F059 +:1026F000803F29F406C093FB882780F9089580E085 +:10270000089581E00895CF93DF9300D000D01F9209 +:10271000CDB7DEB70F900F900F900F900F90DF9115 +:10272000CF910895CF93DF9300D000D000D0CDB7E4 +:10273000DEB726960FB6F894DEBF0FBECDBFDF9191 +:10274000CF9108951F93CF93DF93C091790116E045 +:1027500080917A01C81799F0D0E01C9FF0011D9F6D +:10276000F00D1124E558FE4F408151816281738143 +:10277000848195810E9492132196C770E9CFDF91E1 +:10278000CF911F9108954091AB015091AC016091A0 +:10279000AD017091AE018091AF019091B0010C94A8 +:1027A00092138091B00182958F7009F054C080918E +:1027B000AD01882309F44FC080917901A0917A017D +:1027C0004091AE015091AF016091AB017091AC01AD +:1027D000B6E08A1709F43FC090E041155105C1F1F8 +:1027E0007F3F11F46F3FA1F1B89FF001B99FF00D49 +:1027F0001124E558FE4F218127132AC0208126137A +:1028000027C02281211124C0238134812417350758 +:1028100010F421503109241B350B283C3105C0F43C +:102820002091B0012F7020612093B00126E0289FF5 +:10283000F001299FF00D1124E058FE4F80818F7028 +:10284000806180838BEA91E00E9444100C94A21373 +:1028500001968770BECF0895CF92DF92EF92FF92DC +:102860000F931F93CF93DF93CDB7DEB762970FB669 +:10287000F894DEBF0FBECDBF8C0185E0F801DE010C +:102880001D9601900D928A95E1F7D8014C91119611 +:102890005C91119712966C918091AE019091AF016D +:1028A000009709F475C13091AB017091AC017F3F85 +:1028B00019F43F3F09F46CC1F801C380D480E09063 +:1028C000AD01EE2009F4BEC02091B001C816D906B2 +:1028D00028F0D601A81BB90BCD0104C080959095B6 +:1028E0008C0D9D1DFF24F394883C910578F0F12C0C +:1028F000207F09F0C4C07C2DD98AC88A89890E94AA +:1029000083138BEA91E00E944410AFC0822F807F36 +:1029100009F045C0571313C0431311C061110FC014 +:102920002F7020612093B0010E94C3138BEA91E0C5 +:102930000E9444108091B001F80185832EC0CD28FB +:1029400019F15F3F11F44F3FF9F0F62E61111CC0F1 +:102950008091790120917A0136E0821709F45BC0F9 +:1029600090E0389FF001399FF00D1124E558FE4F9B +:102970007181571306C07081471303C072817111B2 +:1029800003C001968770E9CFF62E662309F41CC1B7 +:102990008091B00181608093B001F12C15C1571373 +:1029A00009C0431307C0611105C08091B001F8014F +:1029B0008583C8C04D875E878D859E856A8B0E9402 +:1029C00064136A898823D1F16623C1F12091B00193 +:1029D000822F82958F7090E0029774F08091AB0106 +:1029E0009091AC0198878F831986DB86CA862C87E5 +:1029F000CE0107960E94441086E0F801ABEAB1E0F0 +:102A000001900D928A95E1F70E94D1130E94C313A1 +:102A1000FF24F394D9C04D875E878D859E850E94E3 +:102A20005018292F22952F70223008F0C1C09F70B6 +:102A300009F0BBC0805E883008F4C6C0C8010E949F +:102A40004410E6CFC816D90608F453C0F601E81BB7 +:102A5000F90BCF01883C910508F450C0F12C7C2D76 +:102A6000D98AC88A89890E948313EBEAF1E086E05B +:102A7000DF011D928A95E9F70E94C313A5C0571381 +:102A800014C0431312C0611110C08091B001F8014D +:102A90008583C8010E94441086E0EBEAF1E0DF0183 +:102AA0001D928A95E9F7FE2C8FC04D875E878D8534 +:102AB0009E856A8B0E9464136A89882309F4BECFBD +:102AC000662309F4BBCF2091B001822F82958F70CD +:102AD00090E002970CF490CF8091AB019091AC0103 +:102AE0009A8389831B82DD82CC822E83CE0101965C +:102AF00081CF809590958C0D9D1DACCFF62E6623D1 +:102B000009F49CCF571333C0431331C02091B00157 +:102B100020FD24C0822F82958F70482F50E04115F0 +:102B20005105E1F0D80115962C9315974F305105BA +:102B300049F08F5F982F9295907F822F8F70892B0D +:102B400015968C93C8010E94441086E0F801ABEA08 +:102B5000B1E001900D928A95E1F78ECF86E0F80101 +:102B6000ABEAB1E001900D928A95E1F72DC04D8757 +:102B70005E878D859E850E94641381113DCF809173 +:102B8000B00181608093B001C8010E9444101CC054 +:102B9000662309F453CF4D875E878D859E850E94FD +:102BA0006413882309F44ACF27CF811143CF0CC087 +:102BB000243008F043CF9F7009F43CCFD80115961C +:102BC0009C91907F09F036CF8F2D62960FB6F894C6 +:102BD000DEBF0FBECDBFDF91CF911F910F91FF9050 +:102BE000EF90DF90CF9008951F93CF93DF93CDB7F1 +:102BF000DEB72C970FB6F894DEBF0FBECDBF4F8364 +:102C0000588769877A878B879C87CE0107960E94B1 +:102C10002C14882371F08A859B85892B09F441C087 +:102C200088858F3F09F065C08F818F3F09F061C0B3 +:102C300038C086E0FE013796DE01119601900D92B4 +:102C40008A95E1F76A857B856115710551F1FF81F0 +:102C5000E885EF3F11F4FF3F21F120917A0130E048 +:102C6000C9010196877099274091790150E0841736 +:102C7000950709F447C0F983EA837D836C8396E066 +:102C8000929FD001939FB00D1124A558BE4FFE0115 +:102C9000319601900D929A95E1F780937A010E9406 +:102CA000A21316E08091790190917A018917B9F108 +:102CB000189FC001112485589E4F0E942C14882310 +:102CC00071F1E09179011E9FF0011124E558FE4F4A +:102CD0004081518162817381848195810E94921328 +:102CE0008091790190E0019687709927809379010E +:102CF000D9CF4F81588569857A858B859C850E94BF +:102D00009213CFCF0E94601310927A011092790132 +:102D1000EBEAF1E086E0DF011D928A95E9F72C9657 +:102D20000FB6F894DEBF0FBECDBFDF91CF911F91DC +:102D30000895EF92FF920F931F93CF93DF938C012F +:102D4000892B09F46CC0F12CEE24E394E801219660 +:102D5000F8018491843740F4843008F051C0813008 +:102D600081F0823019F15BC0853709F444C0A8F1C5 +:102D70009CE7980F903708F052C08F770E94E70FBA +:102D800041C00E5F1F4FFE01849190E2980F983072 +:102D900050F48770FE2D01C0FF0F8A95EAF78F2F40 +:102DA0000E94221914C00E941F0F2DC00E5F1F4FDA +:102DB000FE01849190E2980F983060F48770FE2DA8 +:102DC00001C0FF0F8A95EAF78F2F0E9428190E94F1 +:102DD000491919C00E94E70F16C00E5F1F4FFE0170 +:102DE000C491CC2381F08FE99FE00197F1F700C0F7 +:102DF0000000C150F6CF0E5F1F4FFE01F49003C0DC +:102E00000E941F0F8E018F2D882309F49FCFEFE9B9 +:102E1000FFE03197F1F700C000008150F5CFDF915E +:102E2000CF911F910F91FF90EF90089508956093B7 +:102E3000B5017093B6018093B7019093B8010C94DB +:102E40004E130F931F930091B5011091B60120917D +:102E5000B7013091B801DC01CB01802B912BA22B63 +:102E6000B32B8093B5019093B601A093B701B093B3 +:102E7000B8011F910F910C944E130F931F93009163 +:102E8000B5011091B6012091B7013091B801DC0174 +:102E9000CB0180239123A223B3238093B501909388 +:102EA000B601A093B701B093B8011F910F910C9494 +:102EB0004E130F931F930091B5011091B60120910D +:102EC000B7013091B801DC01CB0180279127A227FF +:102ED000B3278093B5019093B601A093B701B09347 +:102EE000B8011F910F910C944E131092B1011092E2 +:102EF000B2011092B3011092B4010C944E1341E050 +:102F000050E060E070E004C0440F551F661F771F5B +:102F10008A95D2F74093B1015093B2016093B30107 +:102F20007093B4010C944E1341E050E060E070E007 +:102F300004C0440F551F661F771F8A95D2F78091F2 +:102F4000B1019091B201A091B301B091B401482BAD +:102F5000592B6A2B7B2B4093B1015093B2016093A4 +:102F6000B3017093B4010C944E1341E050E060E063 +:102F700070E004C0440F551F661F771F8A95D2F773 +:102F800040955095609570958091B1019091B201F6 +:102F9000A091B301B091B401482359236A237B2344 +:102FA0004093B1015093B2016093B3017093B401A7 +:102FB0000C944E1341E050E060E070E004C0440F18 +:102FC000551F661F771F8A95D2F78091B1019091A6 +:102FD000B201A091B301B091B401482759276A27E3 +:102FE0007B274093B1015093B2016093B30170937A +:102FF000B4010C944E130F931F930091B1011091E3 +:10300000B2012091B3013091B401DC01CB01802BDE +:10301000912BA22BB32B8093B1019093B201A0937B +:10302000B301B093B4011F910F910C944E130F9301 +:103030001F930091B1011091B2012091B301309121 +:10304000B401DC01CB0180239123A223B32380931D +:10305000B1019093B201A093B301B093B4011F9159 +:103060000F910C944E130F931F930091B101109187 +:10307000B2012091B3013091B401DC01CB01802772 +:103080009127A227B3278093B1019093B201A09317 +:10309000B301B093B4011F910F910C944E13089596 +:1030A000CF92DF92EF92FF920F931F93CF93DF9314 +:1030B0008C01C090B101D090B201E090B301F090CA +:1030C000B4018091B5019091B601A091B701B09182 +:1030D000B801C82AD92AEA2AFB2ACFE1D0E0D701D1 +:1030E000C6010C2E04C0B695A795979587950A94AE +:1030F000D2F780FF07C0B8018C2F0E94AE05813047 +:10310000910531F4219758F7B80180E00E94AE058F +:10311000DF91CF911F910F91FF90EF90DF90CF90B3 +:10312000089590910C019923F1F090910D0199234C +:10313000D1F0982F9695969596959F3080F5E091D1 +:103140000E01F0910F01E90FF11D877021E030E0D1 +:10315000A90102C0440F551F8A95E2F7CA01918167 +:10316000892B8183089520910E0130910F01F9017F +:1031700032969FEF40E05191851789F09F3F19F4F7 +:10318000511101C0942F4F5F4E30A9F79F3F39F086 +:10319000F901E90FF11D97FDFA95828308950895CD +:1031A00090910C019923F9F090910D019923D9F098 +:1031B000982F9695969596959F3028F5E0910E015B +:1031C000F0910F01E90FF11D877021E030E0A901B6 +:1031D00002C0440F551F8A95E2F7CA01809591817C +:1031E00089238183089520910E0130910F01F90107 +:1031F0003296205F3F4F9081891301C01082319633 +:10320000E217F307C1F7089581E090E0E0910E0125 +:10321000F0910F01E80FF91F10820196803191059E +:10322000A9F708959091CB01892B8093CB01089544 +:1032300080959091CB0189238093CB0108951092C2 +:10324000CB0108959091CA01892B8093CA010895FA +:1032500080959091CA0189238093CA0108951092A4 +:10326000CA0108958093B90108951092B901089593 +:1032700080910E0190910F01FC0131969C01205F1D +:103280003F4F80E0919191118F5FE217F307D1F7E3 +:103290000895E0910E01F0910F018091CB018083A0 +:1032A000E0910E01F0910F0190818091CA01892B6C +:1032B00080838091B901882361F0E0910E01F09143 +:1032C0000F019081892B80830E94381981111092FF +:1032D000B90180910E0190910F010C94030ECF92D1 +:1032E000DF92EF92FF926C01EE24FF24C114D1040F +:1032F000E104F10421F0C701B60120E101C020E0A2 +:10330000C72ED82EE92EFF24C114D104E104F10404 +:1033100019F0285FC701B6016B017C0154E0F694F7 +:10332000E794D794C7945A95D1F7C114D104E10416 +:10333000F10419F02C5FC701B6016B017C0142E07A +:10334000F694E794D794C7944A95D1F7C114D10461 +:10335000E104F10419F02E5FC701B601DC01CB01D5 +:10336000B695A79597958795892B8A2B8B2B09F076 +:103370002F5F822FFF90EF90DF90CF900895809184 +:10338000E401843011F120E488E190E00FB6F89474 +:10339000A895809360000FBE2093600083B7817F63 +:1033A000846083BF83B7816083BF7894889583B737 +:1033B0008E7F83BF0FB6F894A895809160008861D6 +:1033C00080936000109260000FBE089508950C94E1 +:1033D000E619CF930E94E7190E94CD030E94E619D7 +:1033E000C0E08C2F0E94C304811104C0CF5FCE3097 +:1033F000C1F701C081E0CF9108950E9460130E943F +:10340000F70D0C94ED0682E084BD93E095BD9AEF34 +:1034100097BD80936E0008952FB7F8948091CD01E9 +:103420009091CE01A091CF01B091D0012FBF08950E +:10343000CF92DF92EF92FF920F931F932FB7F894E2 +:103440004091CD015091CE016091CF017091D0019A +:103450002FBF6A017B01EE24FF248C0120E030E0C5 +:10346000C016D106E206F30610F4415051099A0144 +:10347000281B390BC9011F910F91FF90EF90DF902E +:10348000CF9008951F920F920FB60F9211248F9331 +:103490009F93AF93BF938091CD019091CE01A09166 +:1034A000CF01B091D0010196A11DB11D8093CD0136 +:1034B0009093CE01A093CF01B093D001BF91AF9173 +:1034C0009F918F910F900FBE0F901F9018950E94A3 +:1034D000EF0AF8942FEF87EA91E621508040904060 +:1034E000E1F700C0000087E090EBDC018093ED0184 +:1034F0009093EE01A093EF01B093F0019CE088E17E +:103500000FB6F894A895809360000FBE909360006A +:10351000FFCFEF92FF920F931F93CF93DF93D82F9C +:10352000C0E08C2F0E94C30400E010E0E82EF12CD4 +:10353000C701002E02C0959587950A94E2F780FD99 +:1035400006C00F5F1F4F0630110591F709C0602FAD +:103550007C2F80E00E948B058D13F3CF81E004C0A7 +:10356000CF5FCE30F1F680E0DF91CF911F910F91C8 +:10357000FF90EF900895CF93C82F8CE20E94891A94 +:10358000882321F08C2FCF910C94891A80E0CF9161 +:103590000895CF930E94101C811102C00E94F61B57 +:1035A000C5E6C15049F00E94CD038FE39CE9019725 +:1035B000F1F700C00000F5CF89E20E94BB1A81112B +:1035C00013C18AE20E94BB1A81110E94F61B85E09A +:1035D0000E94BB1A81110E94671A0E941B1C8093D3 +:1035E000CC0187E00E94BB1A8823A9F18BE10E94DD +:1035F000BB1A882351F08091CC0181FB222720F94E +:1036000091E0922790FB81F90EC08EE00E94BB1AD8 +:10361000882361F08091CC0182FB222720F991E080 +:10362000922790FB82F98093CC0115C080E10E9423 +:10363000BB1A9091CC01882341F093FB222720F9FB +:1036400081E0822780FB93F904C0892F809580FB5D +:1036500090F99093CC018091CC010E941F1C0E9494 +:103660002D1C8093DE0180EE0E94BB1A882341F05E +:103670008091DE01982F909590FB80F98093DE0178 +:1036800089E30E94BB1A882359F08091DE0181FBF7 +:10369000222720F991E0922790FB81F98093DE01A7 +:1036A00082EE0E94BB1A882359F08091DE0182FBD2 +:1036B000222720F991E0922790FB82F98093DE0186 +:1036C00086EE0E94BB1A882359F08091DE0183FBAD +:1036D000222720F991E0922790FB83F98093DE0165 +:1036E00083EE0E94BB1A882359F08091DE0184FB8F +:1036F000222720F991E0922790FB84F98093DE0144 +:1037000085E30E94BB1A882359F08091DE0185FB76 +:10371000222720F991E0922790FB85F98093DE0122 +:1037200081E30E94BB1A882359F08091DE0186FB59 +:10373000222720F991E0922790FB86F98093DE0101 +:1037400081E10E94BB1A882359F08091DE0187FB3A +:10375000222720F991E0922790FB87F98093DE01E0 +:103760008091DE010E94311C8091DE0187FB882759 +:1037700080F980930D0187E20E94BB1AC82F8EE169 +:103780000E94BB1A8111C2608FE10E94BB1A811195 +:10379000C46080E20E94BB1A8111C86081E20E946D +:1037A000BB1A8111C06182E20E94BB1A8111C06202 +:1037B00083E20E94BB1A8111C06484E20E94BB1A9A +:1037C000882311F0C06802C0CC2329F08C2F0E94FE +:1037D000281C6C2F03C00E94241C682F70E080E01E +:1037E00090E0CF910C941717CF9108956DEE7EEF76 +:1037F00080E090E00E946A2260E082E090E00E9417 +:103800005C2260E083E090E00E945C2260E084E063 +:1038100090E00E945C2260E085E090E00C945C22E5 +:1038200080E090E00E94562221E08D3E9E4F09F0FC +:1038300020E0822F089582E090E00C944E22682FC1 +:1038400082E090E00C945C2283E090E00C944E22A5 +:10385000682F83E090E00C945C2284E090E00C946C +:103860004E22682F84E090E00C945C228091D3017A +:1038700080FF0BC06091130185E0689FB0011124A7 +:1038800075956795759567952BC081FF09C0609107 +:10389000130185E0689FB00111247595679520C0DC +:1038A00082FF07C06091130185E0689FB001112479 +:1038B00017C09091D4019923D1F06091120196170D +:1038C00088F72091130185E0289F90011124929F91 +:1038D000A001939F500D112470E0CA010E94202284 +:1038E0006038710540F46115710519F406C065E092 +:1038F00070E0862F08958FE7089581E00895809104 +:10390000D30180FF08C06091110170E07595679543 +:103910007595679521C081FF06C06091110170E027 +:103920007595679519C082FF04C06091110170E020 +:1039300010C09091D401992399F0609110019617CD +:10394000A0F780911101899FC001112470E00E94AD +:1039500020226038710540F46115710519F406C024 +:1039600061E070E0862F08958FE7089581E0089563 +:10397000803F21F40E94361C819504C0813F29F4C8 +:103980000E94361C8093D7010895823F21F40E9443 +:10399000361C819504C0833F29F40E94361C809315 +:1039A000D6010895893F19F40E947F1C05C08A3F03 +:1039B00031F40E947F1C81958093D80108958B3F3C +:1039C00021F40E947F1C819504C08C3F29F40E9441 +:1039D0007F1C8093D9010895843F21F48091D50103 +:1039E000816017C0853F21F48091D501826011C0AC +:1039F000863F21F48091D50184600BC0873F21F47C +:103A00008091D501886005C0883F31F48091D5014F +:103A100080618093D50108958D3F21F48091D30179 +:103A200081600BC08E3F21F48091D301826005C07C +:103A30008F3F29F48091D30184608093D30108954E +:103A4000803F39F48091D70187FF6CC01092D70175 +:103A500069C0813F29F48091D7011816BCF362C078 +:103A60009091D601823F29F497FF5CC01092D60155 +:103A700059C0833F19F41916CCF354C0893F41F45F +:103A80008091D80118160CF04DC01092D8014AC090 +:103A90008A3F29F48091D80187FF44C0F6CF8B3F3D +:103AA00039F48091D90187FF3DC01092D9013AC005 +:103AB0008C3F29F48091D9011816BCF333C0843FA0 +:103AC00021F48091D5018E7F17C0853F21F480912C +:103AD000D5018D7F11C0863F21F48091D5018B7F68 +:103AE0000BC0873F21F48091D501877F05C0883FB7 +:103AF00031F48091D5018F7E8093D50113C08D3F25 +:103B000021F48091D3018E7F0BC08E3F21F48091F0 +:103B1000D3018D7F05C08F3F29F48091D3018B7F26 +:103B20008093D3018091D60181110EC08091D7017D +:103B300081110AC08091D801811106C08091D901FC +:103B4000811102C01092D401089585ED91E00E9488 +:103B50000E0E0E940C1A9093D2018093D101089509 +:103B60001F93CF93DF938091D1019091D2010E9456 +:103B7000181AAC019091D401992321F020911401DD +:103B800030E006C0209115018AE0289F90011124A1 +:103B90004217530708F485C08091D601C091D70120 +:103BA000D091D8011091D901811107C0C11175C000 +:103BB000D11173C0111171C074C09F3F19F09F5F84 +:103BC0009093D401181624F40E94361C8093D601D9 +:103BD0008091D60187FF05C00E94361C8195809395 +:103BE000D6011C1624F40E94361C8093D7018091C4 +:103BF000D70187FF05C00E94361C81958093D701AD +:103C00006091D601662331F1C091D701CC2311F127 +:103C1000062E000C770B880B990B0E94272123E3BB +:103C200033E343E35FE30E948B210E94EF20609324 +:103C3000D6016C2FCC0F770B880B990B0E94272194 +:103C400023E333E343E35FE30E948B210E94EF20F1 +:103C50006093D7011D1624F40E947F1C8093D80125 +:103C60008091D80187FF05C00E947F1C81958093B9 +:103C7000D801111624F40E947F1C8093D9018091F1 +:103C8000D90187FF05C00E947F1C81958093D901CF +:103C9000DF91CF911F910C94A51D9F3F09F08FCF0D +:103CA000A0CFDF91CF911F910895E5EDF1E085E080 +:103CB000DF011D928A95E9F71092D4011092D30189 +:103CC0000895833081F128F4813059F08230D1F0A9 +:103CD0000895853009F449C0B8F1863009F456C01A +:103CE000089580911501262F30E0280F311D2F3FB8 +:103CF000310524F4680F6093150108958FEF8093C8 +:103D00001501089580911401262F30E0280F311DF0 +:103D10002F3F310524F4680F6093140108958FEF4D +:103D200080931401089580911301262F30E0280F0D +:103D3000311D2F3F310524F4680F6093130108955E +:103D40008FEF80931301089580911201262F30E0A8 +:103D5000280F311D2F3F310524F4680F60931201A5 +:103D600008958FEF80931201089580911101262FFD +:103D700030E0280F311D2F3F310524F4680F609388 +:103D8000110108958FEF8093110108958091100122 +:103D9000262F30E0280F311D2F3F310524F4680F06 +:103DA0006093100108958FEF809310010895833080 +:103DB00011F128F4813049F0823091F00895853076 +:103DC00081F120F18630C1F10895809115016817C5 +:103DD00020F4861B80931501089510921501089513 +:103DE00080911401681720F4861B809314010895B4 +:103DF00010921401089580911301681720F4861B16 +:103E00008093130108951092130108958091120177 +:103E1000681720F4861B80931201089510921201F6 +:103E2000089580911101681720F4861B8093110179 +:103E3000089510921101089580911001681720F4DF +:103E4000861B8093100108951092100108950F931E +:103E50001F938D3109F46BC008F03FC08E3009F418 +:103E60007DC0C0F4873009F46EC068F4863009F074 +:103E7000AFC08091CC01817F8E7F8093CC0181E0A7 +:103E80008093DB01A6C0883009F458C08B3009F458 +:103E90009BC09EC0863109F497C078F4803109F444 +:103EA00070C0813109F094C00E94601390910D019F +:103EB00081E0892780930D0187C0893109F484C08E +:103EC0008B3109F085C08091CC0181FB222720F93C +:103ED00091E0922790FB81F94AC0853309F45BC0D9 +:103EE00048F4873209F457C008F45AC0893209F4FB +:103EF00052C06EC0833438F48A3308F067C0883308 +:103F000009F462C065C0833409F445C0883409F0FF +:103F10005FC00E9460130FEF13ED20E301501040CB +:103F20002040E1F700C000000E94671A4DC00E94C7 +:103F3000A9200E94F70D0E94ED0646C00E941B1C9E +:103F40000E942D1C41C09091CC01892F817090FF5F +:103F500012C0917F9E7F9093CC013BC08091CC0199 +:103F600082FB222720F991E0922790FB82F980932F +:103F7000CC01992349F18091CC0181608093CC01DF +:103F800023C08091CC0183FB222720F991E0922766 +:103F900090FB83F9ECCF61E070E080E090E010C02E +:103FA0008D5141E050E060E070E08A019B0104C067 +:103FB000000F111F221F331F8A95D2F7C901B801C4 +:103FC0000E9417170E94601381E003C08953E9CF54 +:103FD00080E01F910F91089580E008950C94EC1FEC +:103FE000CF93C82F8091DB01813079F018F08230B7 +:103FF000E9F187C0E0910E01F0910F0180818131DC +:1040000069F0823209F07FC009C0E0910E01F091A1 +:104010000F018081813111F0823261F48C2F0E9476 +:10402000EE1F811104C08C2F0E94271F1DC081E04C +:1040300090E01AC08C2F0E94EC1F811114C0C43173 +:1040400079F048F4CB3079F0C03109F060C082E0FB +:104050008093DB0108C0C93219F0C83321F057C082 +:104060001092DB0154C081E0817053C0C93289F1E4 +:1040700018F5C43171F1A8F4C73009F046C08AE0E0 +:104080008093150194E19093140193E090931301B0 +:104090008093120188E08093110188E280931001DF +:1040A00034C0CE51C63088F5EC2FF0E0E65DFE4F0F +:1040B00080818093DA0129C0CE34E9F020F4CB343A +:1040C00021F56AE013C0C13579F0C235F1F461E041 +:1040D0000DC08091DA01882319F01092DA0115C021 +:1040E00081E08093DB0115C061E006C08091DA01B8 +:1040F0000E94611E0AC06AE08091DA010E94D71E08 +:1041000004C01092DB0180E004C081E002C080E0C6 +:10411000ABCFCF910895E1E8F0E0808188608083A3 +:104120008081816080838FB7F89493E090938900B9 +:1041300090ED909388008FBF0895EFE6F0E08081C6 +:10414000826080830895EFE6F0E080818D7F808338 +:104150000895EFE6F0E0908182E08927808308955A +:104160001F920F920FB60F9211242F933F934F93EC +:104170005F936F937F938F939F93AF93BF93EF93CF +:10418000FF938091DC019091DD0101969093DD0118 +:104190008093DC01811103C082E00E94ED06E09172 +:1041A000DD01E695E695F0E0E252FC4FE491809166 +:1041B000DC018E1303C080E00E94ED06FF91EF91B9 +:1041C000BF91AF919F918F917F916F915F914F912F +:1041D0003F912F910F900FBE0F901F9018950E9446 +:1041E000F6206894B1110C94852108950E946A21EB +:1041F00088F09F5798F0B92F9927B751B0F0E1F0A8 +:10420000660F771F881F991F1AF0BA95C9F714C057 +:10421000B13091F00E948421B1E008950C94842182 +:10422000672F782F8827B85F39F0B93FCCF3869590 +:1042300077956795B395D9F73EF4909580957095ED +:1042400061957F4F8F4F9F4F0895E89409C097FB6A +:104250003EF490958095709561957F4F8F4F9F4F5D +:104260009923A9F0F92F96E9BB279395F6958795A1 +:1042700077956795B795F111F8CFFAF4BB0F11F464 +:1042800060FF1BC06F5F7F4F8F4F9F4F16C088230B +:1042900011F096E911C0772321F09EE8872F762F41 +:1042A00005C0662371F096E8862F70E060E02AF082 +:1042B0009A95660F771F881FDAF7880F969587956E +:1042C00097F9089557FD9058440F551F59F05F3FD7 +:1042D00071F04795880F97FB991F61F09F3F79F028 +:1042E00087950895121613061406551FF2CF4695AA +:1042F000F1DF08C0161617061806991FF1CF86952C +:104300007105610508940895E894BB27662777270F +:10431000CB0197F908950E949E210C940F220E94D0 +:10432000012238F00E94082220F0952311F00C940D +:10433000F8210C94FE2111240C9485210E94622105 +:1043400070F3959FC1F3950F50E0551F629FF001E8 +:10435000729FBB27F00DB11D639FAA27F00DB11D01 +:10436000AA1F649F6627B00DA11D661F829F22278A +:10437000B00DA11D621F739FB00DA11D621F839F11 +:10438000A00D611D221F749F3327A00D611D231FE7 +:10439000849F600D211D822F762F6A2F11249F5735 +:1043A00050409AF0F1F088234AF0EE0FFF1FBB1F38 +:1043B000661F771F881F91505040A9F79E3F5105F7 +:1043C00080F00C94F8210C9485215F3FE4F3983E33 +:1043D000D4F3869577956795B795F795E7959F5FA1 +:1043E000C1F7FE2B880F911D9695879597F9089533 +:1043F00097F99F6780E870E060E008959FEF80EC98 +:10440000089500240A94161617061806090608953A +:1044100000240A9412161306140605060895092EA0 +:104420000394000C11F4882352F0BB0F40F4BF2B0F +:1044300011F460FF04C06F5F7F4F8F4F9F4F08954F +:1044400097FB072E16F4009407D077FD09D00E9441 +:104450003A2207FC05D03EF4909581959F4F089530 +:10446000709561957F4F0895EE0FFF1F0590F491B1 +:10447000E02D0994AA1BBB1B51E107C0AA1FBB1F5B +:10448000A617B70710F0A61BB70B881F991F5A95E0 +:10449000A9F780959095BC01CD010895F999FECFBB +:1044A00092BD81BDF89A992780B50895A8E1B0E042 +:1044B00042E050E00C947122262FF999FECF1FBAEA +:1044C00092BD81BD20BD0FB6F894FA9AF99A0FBE3D +:1044D000019608950E945C22272F0C945D22DC0136 +:1044E000CB01FC01F999FECF06C0F2BDE1BDF89AFF +:1044F000319600B40D9241505040B8F70895F894A9 +:02450000FFCFEB +:104502002002EE067E0759072507F1060101BA01CE +:1045120028080A03140A3F4D36399F0352031C032D +:10452200E30276028F02A802C10201020304050619 +:04453200070809006D +:00000001FF diff --git a/keyboard/ergodox_ez/keymaps/tm2030/README.md b/keyboard/ergodox_ez/keymaps/tm2030/README.md new file mode 100644 index 0000000000..ae69adf78a --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/tm2030/README.md @@ -0,0 +1,136 @@ +# TypeMatrix™ 2030 inspired layout + +This is a [TypeMatrix™ 2030](http://typematrix.com/2030/features.php) inspired layout for the ErgoDox EZ. The _TypeMatrix_ is a nice small ergonomic keyboard with a matrix layout, and it provides several nice features like `enter`, `backspace` and `delete` at the center, bigger `shift` keys and international `cut`, `copy` and `paste` keys. + +The idea in this ErgoDox layout is to make it is as close as possible to the TM2030, such that it would be easy to switch between the TM and the ErgoDox. No _fancy_ features have been implemented, as this is intended to be a base for further customization if desired. Some keys have been duplicated in order to accomodate for most people. + +Most of the TM2030 features are supported except +* automatic window switching (alt-tab key, at the left of the space key) +* show desktop key (at the right of the space key) +* 102/106 modes + +Dvorak mode is even supported by pressing [`Magic`](/TMK_README.md#magic-commands)+`1` (`Magic` is by default `LShift`+`RShift`) + +Some keys had to be moved around to fit into the ErgoDox, especially the `F1`-`F12` keys and the arrow keys. + +## Base Layer +This is the default layer, close to the TM with the following differences: + + - Top row (with the `F`-keys) and rightmost column (with application shortcuts) are removed, the corresponding keys are displaced elsewhere. + - Bottom-left keys are reorganized on a single row as: `Ctrl`, `fn`, `Gui`, `Play`, `App`/`Alt`. + - `shuffle` and `desktop` are not supported. + - `right-shift` is moved on `'`, `\` and on the right thumb (the latter is actually the only _true_ `right-shift`, and must be used in the `Magic` key combination). + - `right-ctrl` is moved on `End`. + - `]` is moved in place of the dash (`-`). + - Dash (`-`) and `=` are moved on bottom right row. + - Arrows and `PgUp`/`PgDn` are moved on the thumbs. + +``` +,--------------------------------------------------. ,--------------------------------------------------. +| ` | 1 | 2 | 3 | 4 | 5 | Del | | Del | 6 | 7 | 8 | 9 | 0 | ] | +|--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| +| Tab | Q | W | E | R | T |Backsp| |Backsp| Y | U | I | O | P | [ | +|--------+------+------+------+------+------|ace | |ace |------+------+------+------+------+--------| +| LShift | A | S | D | F | G |------| |------| H | J | K | L | ; | '/Shift| +|--------+------+------+------+------+------|Enter | |Enter |------+------+------+------+------+--------| +| LShift | Z | X | C | V | B | | | | N | M | , | . | / | \/Shift| +`--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + |LCtrl | fn | LGui | Play |App/Alt| | RAlt | - | Home | = |End/Ctl| + `-----------------------------------' `-----------------------------------' + ,--------------. ,-------------. + |Esc/Alt| num | | Left |Right | + ,------+-------+------| |------+------+------. + | | | PgUp | | Up | | | + |Space |LShift |------| |------|RShift|Space | + | | | PgDn | | Down | | | + `---------------------' `--------------------' +``` + +### Layer Switching +- Use `num` to toggle the Numeric Layer. +- Hold `fn` to temporarily activate the Numeric & Fn Layers. + +As on the original TM 2030, when `num` layer is activated, holding `fn` disables it but enables the other `fn` keys. + +## Dvorak Layer +Same as Layer 0 but with _Dvorak_ layout, to use with QWERTY OS layout. + +Enable Dvorak layout with [`Magic`](/TMK_README.md#magic-commands)+`1` (`LShift`+`RShift`+`1`), disable with `Magic`-`0`. + +The middle (green) led indicates when the Dvorak layer is activated. + + ,--------------------------------------------------. ,--------------------------------------------------. + | ` | 1 | 2 | 3 | 4 | 5 | Del | | Del | 6 | 7 | 8 | 9 | 0 | = | + |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + | Tab | ' | , | . | P | Y |Backsp| |Backsp| F | G | C | R | L | / | + |--------+------+------+------+------+------|ace | |ace |------+------+------+------+------+--------| + | LShift | A | O | E | U | I |------| |------| D | H | T | N | S | -/Shift| + |--------+------+------+------+------+------|Enter | |Enter |------+------+------+------+------+--------| + | LShift | ; | Q | J | K | X | | | | B | M | W | V | Z | \/Shift| + `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + |LCtrl | fn | LGui | Play |App/Alt| | RAlt | [ | Home | ] |End/Ctl| + `-----------------------------------' `-----------------------------------' + ,--------------. ,-------------. + |Esc/Alt| num | | Left |Right | + ,------+-------+------| |------+------+------. + | | | PgUp | | Up | | | + |Space |LShift |------| |------|RShift|Space | + | | | PgDn | | Down | | | + `---------------------' `--------------------' + +## Numeric Layer +Numeric layer close to the TM when toggling `num`, with the following differences: + +- Numpad is displaced by 1 to the top left. +- Arrows are displaced by 1 to the left. +- Provides access to `F1`-`F12`, `caps-lock` and `num-lock`. + +The numeric layer is indicated with the left (red) led. Caps-lock is indicated with the right (blue) led. + + ,--------------------------------------------------. ,--------------------------------------------------. + | | F1 | F2 | F3 | F4 | F5 | | | | | | Tab | / | * | - | + |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + | | F6 | F7 | F8 | F9 | F10 | | | | | Home | 7 | 8 | 9 | + | + |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + | | F11 | F12 | | | |------| |------| Up | End | 4 | 5 | 6 | + | + |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + | | | | | | | | | Left | Down | Right| 1 | 2 | 3 |KpEnter | + `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + | | | | | | | | 0 | 00 | . |Etr/Ctl| + `----------------------------------' `-----------------------------------' + ,-------------. ,-------------. + | | | |n.lock|c.lock| + ,------|------|------| |------+------+------. + | | | | | | | | + | | |------| |------| | | + | | | | | | | | + `--------------------' `--------------------' + +## Fn Layer +Activated simultaneously with the Numeric layer when holding the `fn` key. As on the TM, it provides access to the following features: +- `cut`, `copy` and `paste` +- `volume up`, `volume down` and `mute` — as opposed to the TM, these are only on left hand +- `previous track` and `next track` +- `calculator`, `mail` and `browser home` +- `insert`, `power`, `sleep`, `wake`, `print screen`, `scroll-lock` and `pause` + +Note: the `eject` key does not work due to jackhumbert/qmk_firmware#82 + + ,--------------------------------------------------. ,--------------------------------------------------. + | | | | | | |Insert| |Insert|Eject |Power |Sleep | Wake |PrtScr|ScrollLk| + |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + | | | | | | |VolUp | | | | | | | | Pause | + |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + | | | | Calc | Mail |Browsr|------| |------| | | | | | | + |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + | | | cut | copy |paste | Mute |VolDn | | | | | | | | | + `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + | | | | | | | | | | | | + `----------------------------------' `----------------------------------' + ,-------------. ,-------------. + | | | | | | + ,------|------|------| |------+------+------. + | | | | | Next | | | + | Mute | |------| |------| | | + | | | | | Prev | | | + `--------------------' `--------------------' diff --git a/keyboard/ergodox_ez/keymaps/tm2030/keymap.c b/keyboard/ergodox_ez/keymaps/tm2030/keymap.c new file mode 100644 index 0000000000..ca80752263 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/tm2030/keymap.c @@ -0,0 +1,242 @@ +/* TypeMatrix-2030-like keymap */ +#include "ergodox_ez.h" +#include "debug.h" +#include "action_layer.h" +#include "led.h" + +#define BASE 0 // default layer +#define DVRK 1 // Dvorak layer +#define NUMR 8 // numeric layer +#define FNLR 9 // fn layer + +#define MDBL0 1 +#define MFNLR 2 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Basic layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | Del | | Del | 6 | 7 | 8 | 9 | 0 | ] | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | Tab | Q | W | E | R | T |Backsp| |Backsp| Y | U | I | O | P | [ | + * |--------+------+------+------+------+------|ace | |ace |------+------+------+------+------+--------| + * | LShift | A | S | D | F | G |------| |------| H | J | K | L | ; | '/Shift| + * |--------+------+------+------+------+------|Enter | |Enter |------+------+------+------+------+--------| + * | LShift | Z | X | C | V | B | | | | N | M | , | . | / | \/Shift| + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * |LCtrl | fn | LGui | Play |App/Alt| | RAlt | - | Home | = |End/Ctl| + * `-----------------------------------' `-----------------------------------' + * ,--------------. ,-------------. + * |Esc/Alt| num | | Left |Right | + * ,------+-------+------| |------+------+------. + * | | | PgUp | | Up | | | + * |Space |LShift |------| |------|RShift|Space | + * | | | PgDn | | Down | | | + * `---------------------' `--------------------' + */ +// If it accepts an argument (i.e, is a function), it doesn't need KC_. +// Otherwise, it needs KC_* +[BASE] = KEYMAP( // layer 0 : default + // left hand + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_DELT, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_BSPC, + KC_LSFT, KC_A, KC_S, KC_D, KC_F, KC_G, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_ENT, + KC_LCTL, M(MFNLR), KC_LGUI,KC_MPLY,ALT_T(KC_APP), + + ALT_T(KC_ESC), TG(NUMR), + KC_PGUP, + KC_SPC, KC_LSFT, KC_PGDN, + + // right hand + KC_DELT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_RBRC, + KC_BSPC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, + KC_H, KC_J, KC_K, KC_L, KC_SCLN, SFT_T(KC_QUOT), + KC_ENT, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFT_T(KC_BSLS), + KC_RALT, KC_MINS, KC_HOME, KC_EQL, CTL_T(KC_END), + + KC_LEFT, KC_RGHT, + KC_UP, + KC_DOWN, KC_RSFT, KC_SPC + ), +/* Dvorak layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | Del | | Del | 6 | 7 | 8 | 9 | 0 | = | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | Tab | ' | , | . | P | Y |Backsp| |Backsp| F | G | C | R | L | / | + * |--------+------+------+------+------+------|ace | |ace |------+------+------+------+------+--------| + * | LShift | A | O | E | U | I |------| |------| D | H | T | N | S | -/Shift| + * |--------+------+------+------+------+------|Enter | |Enter |------+------+------+------+------+--------| + * | LShift | ; | Q | J | K | X | | | | B | M | W | V | Z | \/Shift| + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * |LCtrl | fn | LGui | Play |App/Alt| | RAlt | [ | Home | ] |End/Ctl| + * `-----------------------------------' `-----------------------------------' + * ,--------------. ,-------------. + * |Esc/Alt| num | | Left |Right | + * ,------+-------+------| |------+------+------. + * | | | PgUp | | Up | | | + * |Space |LShift |------| |------|RShift|Space | + * | | | PgDn | | Down | | | + * `---------------------' `--------------------' + */ +// If it accepts an argument (i.e, is a function), it doesn't need KC_. +// Otherwise, it needs KC_* +[DVRK] = KEYMAP( // layer 0 : default + // left hand + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_DELT, + KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_BSPC, + KC_LSFT, KC_A, KC_O, KC_E, KC_U, KC_I, + KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_ENT, + KC_LCTL, M(MFNLR), KC_LGUI, KC_MPLY, ALT_T(KC_APP), + + ALT_T(KC_ESC), TG(NUMR), + KC_PGUP, + KC_SPC, KC_LSFT, KC_PGDN, + + // right hand + KC_DELT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_EQL, + KC_BSPC, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, + KC_D, KC_H, KC_T, KC_N, KC_S, SFT_T(KC_MINS), + KC_ENT, KC_B, KC_M, KC_W, KC_V, KC_Z, SFT_T(KC_BSLS), + KC_RALT, KC_LBRC, KC_HOME, KC_RBRC, CTL_T(KC_END), + + KC_LEFT, KC_RGHT, + KC_UP, + KC_DOWN, KC_RSFT, KC_SPC + ), +/* Numeric Layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | F1 | F2 | F3 | F4 | F5 | | | | | | Tab | / | * | - | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | F6 | F7 | F8 | F9 | F10 | | | | | Home | 7 | 8 | 9 | + | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | F11 | F12 | | | |------| |------| Up | End | 4 | 5 | 6 | + | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | | | | Left | Down | Right| 1 | 2 | 3 |KpEnter | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | | 0 | 00 | . |Etr/Ctl| + * `----------------------------------' `-----------------------------------' + * ,-------------. ,-------------. + * | | | |n.lock|c.lock| + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// SYMBOLS +[NUMR] = KEYMAP( + // left hand + KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS, + KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_TRNS, + KC_TRNS, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + + KC_TRNS,KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS,KC_TRNS, + // right hand + KC_TRNS, KC_F6, KC_F7, KC_TAB, KC_PSLS, KC_PAST, KC_PMNS, + KC_TRNS, KC_TRNS, KC_HOME, KC_P7, KC_P8, KC_P9, KC_PPLS, + KC_UP, KC_END, KC_P4, KC_P5, KC_P6, KC_PPLS, + KC_LEFT, KC_DOWN, KC_RGHT, KC_P1, KC_P2, KC_P3, KC_PENT, + KC_TRNS, KC_P0, M(MDBL0),KC_PDOT, CTL_T(KC_PENT), + + KC_NLCK, KC_CAPS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS +), +/* fn layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | | | | | |Insert| |Insert|Eject |Power |Sleep | Wake |PrtScr|ScrollLk| + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | | | | |VolUp | | | | | | | | Pause | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | Calc | Mail |Browsr|------| |------| | | | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | cut | copy |paste | Mute |VolDn | | | | | | | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | Next | | | + * | Mute | |------| |------| | | + * | | | | | Prev | | | + * `--------------------' `--------------------' + */ +// MEDIA AND MOUSE +[FNLR] = KEYMAP( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_INS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU, + KC_TRNS, KC_TRNS, KC_TRNS, KC_CALC, KC_MAIL, KC_WHOM, + KC_TRNS, KC_TRNS, LSFT(KC_DELT),LCTL(KC_INS),LSFT(KC_INS), KC_MUTE, KC_VOLD, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_MUTE, KC_TRNS, KC_TRNS, + // right hand + KC_INS, KC_EJCT, KC_PWR, KC_SLEP, KC_WAKE, KC_PSCR, KC_SLCK, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PAUS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + + KC_TRNS, KC_TRNS, + KC_MPRV, + KC_MNXT, KC_TRNS, KC_TRNS +), +}; + +const uint16_t PROGMEM fn_actions[] = { +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch(id) { + case MDBL0: + if (record->event.pressed) { + return MACRO( I(25), T(P0), T(P0), END ); + } + break; + case MFNLR: + layer_invert(NUMR); + layer_invert(FNLR); + break; + } + return MACRO_NONE; +}; + +// Runs just one time when the keyboard initializes. +void matrix_init_user(void) { + +}; + +// Runs constantly in the background, in a loop. +void matrix_scan_user(void) { + + ergodox_board_led_off(); + ergodox_right_led_1_off(); + ergodox_right_led_2_off(); + ergodox_right_led_3_off(); + // led 1: numeric layer + if (layer_state & (1 << NUMR)) { + ergodox_right_led_1_on(); + } + // led 2: Dvorak layer + if (default_layer_state == 1 << DVRK) { + ergodox_right_led_2_on(); + } + // led 3: caps lock + if (host_keyboard_leds() & (1<event.pressed) { + register_code(KC_RSFT); + } else { + unregister_code(KC_RSFT); + } + break; + } + return MACRO_NONE; +}; + +// Runs just one time when the keyboard initializes. +void matrix_init_user(void) { + +}; + +// Runs constantly in the background, in a loop. +void matrix_scan_user(void) { + + uint8_t layer = biton32(layer_state); + + ergodox_board_led_off(); + ergodox_right_led_1_off(); + ergodox_right_led_2_off(); + ergodox_right_led_3_off(); + switch (layer) { + // TODO: Make this relevant to the ErgoDox EZ. + case 1: + ergodox_right_led_1_on(); + break; + case 2: + ergodox_right_led_2_on(); + break; + default: + // none + break; + } + +}; diff --git a/keyboard/ergodox_ez/keymaps/tonyabra_osx/readme.md b/keyboard/ergodox_ez/keymaps/tonyabra_osx/readme.md new file mode 100644 index 0000000000..f9d76efc23 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/tonyabra_osx/readme.md @@ -0,0 +1,5 @@ +# ErgoDox EZ OS X Simplified Configuration + +This keyboard configuration replaces the hyper and meh keys with the command key. It also removes all of the meta keys that require a "hold" because I found that I hesitate when I type, which can accidentally fire those combinations. On the upper left of the left hand, I mimicked the Mac placement of tab and escape, and on the upper right of the right hand, I placed an additional enter key for convenience when breezing through prompts. + +This is my standard working configuration for now, but I can see myself tweaking it as I use it more. I highly recommend you do the same. \ No newline at end of file diff --git a/keyboard/ergodox_ez/keymaps/tonyabra_osx/tonyabra_osx.hex b/keyboard/ergodox_ez/keymaps/tonyabra_osx/tonyabra_osx.hex new file mode 100644 index 0000000000..75a2333d78 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/tonyabra_osx/tonyabra_osx.hex @@ -0,0 +1,1121 @@ +:100000000C9465020C94AC020C94AC020C94AC02FF +:100010000C94AC020C94AC020C94AC020C94AC02A8 +:100020000C94AC020C94AC020C94C30B0C94950C85 +:100030000C94AC020C94AC020C94AC020C94AC0288 +:100040000C94AC020C9409210C94AC020C94AC02FC +:100050000C94AC020C949B1A0C94AC020C94AC0261 +:100060000C94AC020C94AC020C94AC020C94AC0258 +:100070000C94AC020C94AC020C94AC020C94AC0248 +:100080000C94AC020C94AC020C94AC020C94AC0238 +:100090000C94AC020C94AC020C94AC020C94AC0228 +:1000A0000C94AC020C94AC020C94AC02020D240D26 +:1000B000170E240D170E690D8C0D170EE10DF40DA2 +:1000C000DE10DE100D110D1150118A1197139713C8 +:1000D000A3119713981298126B1397139713821307 +:1000E0000000F0A129002B002A00E10001540000CB +:1000F0001E00140004001D0035004D001F001A00F2 +:1001000016001B002F002A00200008000700060030 +:1001100030002C00210015000900190034004A00AD +:10012000220017000A00050000004C002E000154B8 +:100130000000E3000000E2002D0001540000E30095 +:100140000000E60023001C000B0011000000E4008A +:10015000240018000D00100050004B0025000C007A +:100160000E00360052002800260012000F00370053 +:1001700051002B0027001300330038004F004E00C1 +:10018000280031003400E5000254000001000100A5 +:1001900001000100010000003A001E0220022202BC +:1001A000010001003B001F022102230201000100A7 +:1001B0003C002F0226022F00010001003D0030020A +:1001C00027023000010001003E00310235003502F7 +:1001D000000001000100010000000100000001001A +:1001E0000100010000000100000001003F0052007A +:1001F00051002402000001004000240021001E00E4 +:10020000010001004100250022001F00370001000D +:1002100042002600230020002700010043002502A1 +:100220002E0231002E0001004400450001000100B3 +:1002300001000000010001000100010001000000B8 +:1002400001000100010001000100010001000100A6 +:10025000F2000100010001000100F000F1000100C6 +:10026000F400010001000100F3000100F5000100AD +:100270000100010001000100000001000100010077 +:100280000000010000000100010001000000010069 +:100290000000010001000100010001000000010058 +:1002A0000100010001000100A9000100010001009E +:1002B0000100AC00AA00B600010001000100AB0083 +:1002C000A80001000100010001000100010001007F +:1002D00001000100AE00010001000000160345000E +:1002E000720067006F0044006F0078002000450036 +:1002F0005A00000016034500720067006F004400BA +:100300006F007800200045005A0000000403090433 +:1003100009026D00040100A0FA09040000010301B4 +:100320000100092111010001223F00070581030896 +:10033000000A090401000103010200092111010062 +:1003400001224D000705820308000A09040200018A +:100350000300000009211101000122360007058376 +:100360000308000A09040300010300000009211129 +:100370000100012239000705840310000112011059 +:100380000100000008EDFE07130100010200010555 +:10039000010906A101050719E029E71500250195C6 +:1003A0000875018102050819012905950575019156 +:1003B000029501750391010507190029771500259C +:1003C00001957875018102C005010980A1018502AE +:1003D00016010026B7001A01002AB7007510950112 +:1003E0008100C0050C0901A1018503160100269CAE +:1003F000021A01002A9C02751095018100C00501B6 +:100400000902A1010901A100050919012905150029 +:10041000250195057501810295017503810105018D +:10042000093009311581257F950275088106093843 +:100430001581257F950175088106050C0A3802157E +:1004400081257F950175088106C0C005010906A1B7 +:1004500001050719E029E7150025019508750181B7 +:100460000295017508810105081901290595057591 +:100470000191029501750391010507190029FF15E6 +:100480000025FF950675088100C0000000000000EF +:100490000000000000010204060A0F17202C3A4A4F +:1004A0005D71879DB3C7DAE9F5FCFFFCF5E9DAC7B2 +:1004B000B39D87715D4A3A2C20170F0A060402018A +:1004C0000000000000000000000011241FBECFEF5C +:1004D000DAE0DEBFCDBF04B603FE27C08091ED0198 +:1004E0009091EE01A091EF01B091F0018730904B17 +:1004F000A740B04BD1F41092ED011092EE01109292 +:10050000EF011092F00114BE84B7877F84BF0FB64D +:10051000F894A895809160008861809360001092A3 +:1005200060000FBEE0E0FFE3099511E0A0E0B1E05C +:10053000E4EBF5E402C005900D92A433B107D9F7BE +:1005400021E0A4E3B1E001C01D92AD3EB207E1F7A6 +:100550000E940A090C94D8220C94000061110BC06F +:10056000FC018281882321F085EE0E94780F03C070 +:1005700085EE0E94401080E090E00895089560911B +:10058000B1017091B2018091B3019091B4010E94C8 +:10059000C81956985E9825982D9826982E982798D1 +:1005A0002F98813019F0823021F00895259A2D9AE4 +:1005B0000895269A2E9A08950C94BF0256985E9834 +:1005C00025982D9826982E9827982F988FEF90E0B1 +:1005D000909389008093880090938B0080938A0089 +:1005E00090938D0080938C00259A2D9A2FEF80E7B1 +:1005F00092E0215080409040E1F700C00000269A30 +:100600002E9A2FEF80E792E0215080409040E1F752 +:1006100000C00000279A2F9A2FEF80E792E0215028 +:1006200080409040E1F700C0000025982D982FEF02 +:1006300080E792E0215080409040E1F700C0000048 +:1006400026982E982FEF80E792E02150804090402E +:10065000E1F700C0000027982F9856985E982598DB +:100660002D9826982E9827982F98089589EA809398 +:10067000800089E08093810024982C983F988AB16B +:100680008F748AB96E98479A8BB1806B8BB9769AC2 +:100690000E94DE020C94BE0280E2809300018091F1 +:1006A000340181110EC00E949B0381E080933401CC +:1006B0002FEF83ED90E3215080409040E1F700C0A0 +:1006C000000080E40E94A1038093000181112EC0EC +:1006D0000E94CB0380930001811128C00E94CB03AC +:1006E00080930001811122C08FE30E94CB0380938D +:1006F000000181111BC00E94C30380E40E94A1037A +:1007000080930001811112C08CE00E94CB03809382 +:10071000000181110BC00E94CB0380930001811165 +:1007200005C08FE30E94CB03809300010E94C303A6 +:100730008091000108951092B9008AE08093B8007A +:10074000089594EA9093BC009091BC0097FFFCCF71 +:100750009091B900987F983021F0903111F081E0AC +:1007600008958093BB0084E88093BC008091BC0016 +:1007700087FFFCCF8091B900887F883111F08034E9 +:1007800071F780E0089584E98093BC008091BC00FB +:1007900084FDFCCF08958093BB0084E88093BC0067 +:1007A0008091BC0087FFFCCF9091B900987F81E0D9 +:1007B000983209F480E0089584E88093BC00809129 +:1007C000BC0087FFFCCF8091BB00089580910001A1 +:1007D000811115C080E40E94A10380930001811162 +:1007E0000CC082E10E94CB0380930001811105C0FF +:1007F0008FEF0E94CB03809300010E94C30384B15A +:10080000807F84B985B1807F85B98AB1837F8AB9B9 +:100810008BB1837F8BB93E98469808950E944C0314 +:10082000809300010E94E60380B38C7080BB81B38B +:10083000836F81BBE4E4F1E0A6E3B1E011921D9285 +:1008400081E0E235F807D1F70C9436039F92AF921E +:10085000BF92CF92DF92EF92FF920F931F93CF93AD +:10086000DF9380910001882379F0809135018F5FBB +:1008700080933501811108C00E944C0380930001D0 +:10088000811102C00E94DE0286E3E82E81E0F82E8C +:100890008701C0E0D0E0BB24B39492E0A92ECC2421 +:1008A000C394D12CC730D10500F58091000181118E +:1008B00064C080E40E94A10380930001811112C0F2 +:1008C00082E10E94CB038093000181110BC0C6011D +:1008D0000C2E01C0880F0A94EAF780950E94CB0382 +:1008E000809300010E94C30348C0CA30A1F028F4DD +:1008F000C83059F0C93061F005C0CC3089F070F0D3 +:10090000CD3089F0209A289810C0219A29980DC0DE +:10091000229A2A980AC0239A2B9807C0529A01C09B +:10092000539A5B9802C03E9A4698E0EAEA95F1F73E +:100930008FB181708B25799902C032E001C030E01F +:10094000832B7C9902C034E001C030E0832B7D9979 +:1009500002C028E001C020E0822B7E9902C090E115 +:1009600001C090E0892B9FB19095991F9927991FFD +:100970009295990F907E892B0FC080910001811173 +:100980004AC080E40E94A10380930001882381F182 +:10099000912C0E94C303892DD8019C91981719F0BE +:1009A0008C93A09201010E94E60321960F5F1F4FD6 +:1009B000CE30D10509F076CF80910101882369F10D +:1009C000815080930101882339F0EFE9FFE03197EE +:1009D000F1F700C0000021C0E4E4F1E0D7018D91FF +:1009E0007D018193B4E4EB16B1E0FB06B9F715C0C5 +:1009F00083E10E94CB03809300018111C9CF81E480 +:100A00000E94A103809300018111C2CF0E94DC03E8 +:100A1000982E9094BECF80E0BFCF0E94DC0281E090 +:100A2000DF91CF911F910F91FF90EF90DF90CF90CA +:100A3000BF90AF909F900895E82FF0E0EC5BFE4FE1 +:100A40008081089508958B3B910580F4883A910543 +:100A500048F5853A9105D8F48430910508F0B2C084 +:100A6000019709F06EC081E090E00895803E910505 +:100A700008F467C0883E910508F4A4C09C01205F7B +:100A800031092031310508F05CC090650895853A40 +:100A9000910509F459C0863A910509F058C082E8D9 +:100AA00090E40895883A910509F454C0893A910573 +:100AB00009F453C08A3A910509F452C08B3A910562 +:100AC00009F451C08C3A910509F450C08D3A910552 +:100AD00009F44FC0803B910509F44EC08E3A910550 +:100AE00009F44DC08F3A910509F44CC0813B910542 +:100AF00009F44BC0823B910509F44AC0833B910540 +:100B000009F449C0843B910509F448C0853B91052F +:100B100009F447C0863B910509F446C0873B91051F +:100B200009F445C0883B910509F444C0893B91050F +:100B300009F443C08A3B910509F442C080E094E483 +:100B4000089580E090E0089581E890E4089583E8B6 +:100B500090E4089582EE94E4089589EE94E4089573 +:100B60008AEE94E4089585EB94E4089586EB94E48A +:100B7000089587EB94E408958CEC94E408958DEC4B +:100B800094E4089583E895E408958AE895E4089547 +:100B900082E995E4089584E995E4089581E296E474 +:100BA000089583E296E4089584E296E4089585E248 +:100BB00096E4089586E296E4089587E296E408951F +:100BC0008AE296E40895089524E5829FC0011124E5 +:100BD000FC0126E0729FE00DF11D1124E60FF11DCE +:100BE000EE0FFF1FEC51FF4F859194910895880FF0 +:100BF000991FFC01E05AF040859194910895880F67 +:100C0000991FFC01E052FF4F85919491089524E5CE +:100C1000829FC0011124FC0146E0749FE00DF11D8C +:100C20001124E60FF11DEE0FFF1FEC51FF4F8591D0 +:100C300094919C013A9521154FE1340708F425C1A0 +:100C40003F512115304120F49F700E94FF05089507 +:100C50009C0130532115304118F49927906C089568 +:100C6000811520E5920769F40E94B9134FEF84E3E0 +:100C70009CE0415080409040E1F700C000000C949F +:100C8000C01A813020E5920731F48091CC01816057 +:100C90008093CC0108959C0130552115304108F016 +:100CA0005CC0292F33272F70332721303105E9F419 +:100CB000AC0164E0440F551F6A95E1F74427537077 +:100CC000BC016370772702C0220F331F6A95E2F7D9 +:100CD0003C68242B352B73E0880F991F7A95E1F738 +:100CE00080769927822B932B08952230310529F4A1 +:100CF000982F8827816F906A089523303105A1F4D9 +:100D0000AC0133E0440F551F3A95E1F7407E577030 +:100D10008370992721E030E002C0220F331F8A95AB +:100D2000E2F7C9019C6816C02430310531F5AC01E9 +:100D300023E0440F551F2A95E1F7407E57708370DA +:100D4000992721E030E002C0220F331F8A95E2F795 +:100D5000C9019A68842B952B08959C013057211561 +:100D6000304118F49F70906208959C01305821150D +:100D7000304118F49F70906A0895803E9105E0F428 +:100D8000803C910558F58133910509F46FC048F412 +:100D90008932910509F463C08A32910509F46DC066 +:100DA00072C089339105E9F082389105D1F085331D +:100DB000910509F44DC067C0833E910581F138F477 +:100DC000803E9105B9F0823E9105D9F05CC0863E27 +:100DD000910561F1873E9105A1F155C00E94F7058B +:100DE00008952091DE0120FD02C021FF4CC080EE5D +:100DF00090E049C08091DE0180FFF9CF89E390E067 +:100E000042C08091DE0182FF0EC08091DE0184FF2E +:100E100003C080E090E037C083EE90E034C0809162 +:100E2000DE0182FFF2CF82EE90E02DC08091DE01E4 +:100E300083FF0BC08091DE0184FDEBCF87EE90E055 +:100E400022C08091DE0183FFF5CF86EE90E01BC0CB +:100E50008091DE0185FF07C089E290E014C0809197 +:100E6000DE0185FFF9CF85E390E00DC08091DE01C2 +:100E700086FF07C08AE290E006C08091DE0186FF0F +:100E8000F9CF81E390E00E942305089508958091B1 +:100E900062010895CF93DF9300D01F92CDB7DEB7E4 +:100EA0009C018091E401843019F593E099833B83A0 +:100EB0002A839093E9008FEF9091E800815095FD8F +:100EC00006C095ED9A95F1F700008111F5CF80915C +:100ED000E80085FF0DC040E050E063E070E0CE0127 +:100EE00001960E94B7098091E8008E778093E80010 +:100EF0000F900F900F90DF91CF910895CF93DF93D4 +:100F000000D01F92CDB7DEB72091E401243021F547 +:100F100022E029839B838A8383E08093E9008FEF1B +:100F20009091E800815095FD06C095ED9A95F1F7F6 +:100F300000008111F5CF8091E80085FF0DC040E0F1 +:100F400050E063E070E0CE0101960E94B709809105 +:100F5000E8008E778093E8000F900F900F90DF915C +:100F6000CF9108959C018091E4018430F9F482E0EE +:100F70008093E9009FEF8091E800915085FD06C0C5 +:100F800085ED8A95F1F700009111F5CF8091E80089 +:100F900085FF0CC040E050E065E070E0C9010E94B0 +:100FA000B7098091E8008E778093E8000895CF9389 +:100FB000DF93EC018091E401843009F046C0909108 +:100FC0000C019923D9F090910D019923B9F08093E8 +:100FD000E9008FEF9091E800815095FD06C095E102 +:100FE0009A95F1F700008111F5CF8091E80085FF17 +:100FF0002CC040E050E060E170E017C081E08093D9 +:10100000E9008FEF9091E800815095FD06C095EDC5 +:101010009A95F1F700008111F5CF8091E80085FFE6 +:1010200014C040E050E068E070E0CE010E94B709D3 +:101030008091E8008E778093E80080E1FE01A2E5D0 +:10104000B1E001900D928A95E1F7DF91CF9108957B +:101050008091E301811109C00E94480B0E94A50BF9 +:101060008091E20084608093E20008951092E30191 +:10107000089508950C94F6200E94561A0E94FC20B0 +:101080000E94500E0C94460742E061EC81E00E9401 +:10109000C10A42E061EC82E00E94C10A42E061ECD8 +:1010A00083E00E94C10A42E161EC84E00C94C10A31 +:1010B0008091E601833009F455C030F4813071F03D +:1010C000823009F48EC008958A3009F47AC08B30DA +:1010D00009F460C0893009F09CC020C08091E5010E +:1010E000813A09F096C08091E800877F8093E800FC +:1010F0008091E9019091EA01892B21F460E182E578 +:1011000091E003C060E080E090E070E00E94020A9D +:101110008091E8008B778093E80008958091E50145 +:10112000813209F076C08091E9019091EA0100973F +:1011300019F0039709F06DC08091E800877F8093D4 +:10114000E8008091E80082FD05C08091E4018111F2 +:10115000F8CF5FC08091F100809362018091E80038 +:101160008B7753C08091E501813A09F052C080919C +:10117000E9019091EA01892B09F04BC08091E800C8 +:10118000877F8093E8008091E80080FFFCCF80910A +:101190000C0136C08091E5018132D9F58091E901D9 +:1011A0009091EA01892BA9F58091E800877F8093CF +:1011B000E8000E94F60A8091E70180930C010C94EC +:1011C000B9138091E501813221F58091E800877F94 +:1011D0008093E8000E94F60A8091E8018093630101 +:1011E00008958091E501813AA1F48091E800877F1C +:1011F0008093E8008091E80080FFFCCF809163013C +:101200008093F1008091E8008E778093E8000C9441 +:10121000F60A089584B7877F84BF0FB6F894A8951F +:1012200080916000886180936000109260000FBE22 +:1012300090E080E80FB6F89480936100909361008D +:101240000FBE0E949F0E0E94480B0E94A50B80912A +:10125000E20084608093E20078940E94300E0E9445 +:10126000A10E82E091E00E944B0E0E94E42080914A +:10127000E401853069F40E94181A8091E201882304 +:10128000B1F30E94421A882391F30E94A109EFCF83 +:101290000E94A70EECCF292F332723303105C9F048 +:1012A00060F42130310581F02230310509F041C070 +:1012B0008DE690E020E133E040C021323105E1F0DD +:1012C0002232310531F135C082E190E02DE733E083 +:1012D00034C099278130910549F028F0029749F5EB +:1012E000ECEDF2E005C0ECE0F3E002C0E4EFF2E088 +:1012F000849190E09F0121C06430D8F4E62FF0E0A3 +:10130000EE0FFF1FEE5DFE4F2081318189E090E0FE +:1013100014C0643070F470E0FB01EE0FFF1FE65E56 +:10132000FE4F20813181FB01EA5EFE4F808190E01B +:1013300004C080E090E020E030E0FA0131832083B7 +:10134000089580E189BD82E189BD09B400FEFDCF29 +:101350008091D8008F7D8093D8008091E0008260DA +:101360008093E0008091E00081FDFCCF0895CF9252 +:10137000DF92EF92FF920F931F93CF93DF93EC01D5 +:101380008B016A010E94150B811133C0C114D10475 +:1013900039F0F60180819181081B190BC80FD91F04 +:1013A000E12CF12C0115110519F18091E80085FD62 +:1013B00016C08091E8008E778093E800C114D104B4 +:1013C00049F0F60180819181E80EF91EF182E082F8 +:1013D00085E00FC00E94150B882321F30AC0899174 +:1013E0008093F10001501109FFEFEF1AFF0ADACFE5 +:1013F00080E0DF91CF911F910F91FF90EF90DF90F0 +:10140000CF9008952091EB013091EC01261737071A +:1014100048F06115710539F42091E8002E7720938A +:10142000E80001C0B901FC0120E06115710579F106 +:101430008091E4018823F1F18530F1F18091E80099 +:1014400083FD3CC08091E80082FD2EC08091E800C1 +:1014500080FFEBCF2091F3008091F20090E0922B7F +:101460006115710551F08830910538F42191209370 +:10147000F100615071090196F3CF21E0089709F05E +:1014800020E08091E8008E778093E800CECF211194 +:10149000CFCF0AC08091E401882361F0853061F0EC +:1014A0008091E80083FD0AC08091E80082FFF2CFBE +:1014B00080E0089582E0089583E0089581E0089532 +:1014C0002091EB013091EC012617370748F06115A8 +:1014D000710539F42091E8002E772093E80001C0CF +:1014E000B901FC0120E06115710591F18091E401E1 +:1014F000882309F440C0853009F43FC08091E8009A +:1015000083FD3DC08091E80082FD2FC08091E800FE +:1015100080FFE9CF2091F3008091F20090E0922BC0 +:101520006115710559F08830910540F4249120939C +:10153000F1003196615071090196F2CF21E00897D0 +:1015400009F020E08091E8008E778093E800CBCF0F +:101550002111CCCF0AC08091E401882361F085304D +:1015600061F08091E80083FD0AC08091E80082FF6D +:10157000F2CF80E0089582E0089583E0089581E04D +:101580000895982F973068F59093E900981739F0EF +:101590007091EC002091ED005091F00003C0242FD9 +:1015A000762F50E021FD02C09F5FECCF3091EB0021 +:1015B0003E7F3093EB003091ED003D7F3093ED00A6 +:1015C0003091EB0031603093EB007093EC0020938E +:1015D000ED005093F0002091EE0027FDE5CF80E074 +:1015E00008958F708093E90081E008958091E5016E +:1015F00087FF11C08091E80082FD05C08091E40161 +:101600008111F8CF11C08091E8008B770BC08091D9 +:10161000E401882349F08091E80080FFF8CF8091B1 +:10162000E8008E778093E80008952091E4003091DF +:10163000E50095E64091EC00842F817040FF23C0C7 +:101640008091E80080FD1DC08091E401882399F01D +:10165000853099F08091EB0085FD11C04091E40048 +:101660005091E5002417350729F3915011F09A01A4 +:10167000E1CF84E0089582E0089583E0089581E059 +:10168000089580E008954091E80042FFDDCF08957D +:101690000E94B60B0E94BE0BE0EEF0E080818160FC +:1016A0008083E8EDF0E080818F77808319BCA7ED1F +:1016B000B0E08C918E7F8C9380818F7E808310929E +:1016C000E30108950F931F93CF93DF930E94B60B0E +:1016D0000E94BE0BC8EDD0E088818F778883888117 +:1016E0008068888388818F7D888319BC1092E4018B +:1016F0001092E0011092E2011092E10100EE10E080 +:10170000F80180818B7F808388818160888342E0BB +:1017100060E080E00E94C10AE1EEF0E080818E7F0F +:101720008083E2EEF0E08081816080838081886048 +:101730008083F80180818E7F8083888180618883A7 +:10174000DF91CF911F910F910895E8EDF0E0808136 +:101750008F7E8083E7EDF0E080818160808384E08C +:1017600082BF81E08093E3010C94620BE8EDF0E02E +:1017700080818E7F80831092E20008951092DA00BB +:101780001092E10008951F920F920FB60F9211244C +:101790002F933F934F935F936F937F938F939F9379 +:1017A000AF93BF93EF93FF938091E10082FF0BC053 +:1017B0008091E20082FF07C08091E1008B7F8093DF +:1017C000E1000E942F0E8091DA0080FF1FC08091FF +:1017D000D80080FF1BC08091DA008E7F8093DA00F2 +:1017E0008091D90080FF0DC080E189BD82E189BD73 +:1017F00009B400FEFDCF81E08093E4010E94280837 +:1018000005C019BC1092E4010E9436088091E100E5 +:1018100080FF19C08091E20080FF15C08091E20036 +:101820008E7F8093E2008091E20080618093E200ED +:101830008091D80080628093D80019BC85E08093A5 +:10184000E4010E943A088091E10084FF30C0809159 +:10185000E20084FF2CC080E189BD82E189BD09B42A +:1018600000FEFDCF8091D8008F7D8093D8008091BD +:10187000E1008F7E8093E1008091E2008F7E809373 +:10188000E2008091E20081608093E2008091E001BB +:10189000882311F084E007C08091E30087FD02C037 +:1018A00081E001C083E08093E4010E943C088091C4 +:1018B000E10083FF29C08091E20083FF25C0809171 +:1018C000E100877F8093E10082E08093E401109241 +:1018D000E0018091E1008E7F8093E1008091E20041 +:1018E0008E7F8093E2008091E20080618093E2002D +:1018F00042E060E080E00E94C10A8091F0008860D0 +:101900008093F0000E943908FF91EF91BF91AF9151 +:101910009F918F917F916F915F914F913F912F9107 +:101920000F900FBE0F901F9018951F920F920FB639 +:101930000F9211242F933F934F935F936F937F9355 +:101940008F939F93AF93BF93CF93DF93EF93FF93C7 +:10195000C091E900CF708091EC00D82FD17080FD4C +:10196000D0E81092E9008091F000877F8093F0002A +:1019700078940E94D90C1092E9008091F000886060 +:101980008093F000CD2BCF70C093E900FF91EF91D1 +:10199000DF91CF91BF91AF919F918F917F916F9187 +:1019A0005F914F913F912F910F900FBE0F901F901D +:1019B00018951F93CF93DF93CDB7DEB7AA970FB6D5 +:1019C000F894DEBF0FBECDBFE5EEF1E08091F100EF +:1019D000819321E0ED3EF207C9F70E9458088091FB +:1019E000E80083FF24C18091E5019091E601492F31 +:1019F00050E04A30510508F01AC1FA01EA5AFF4F87 +:101A00000C948D22803881F0823809F010C18091C9 +:101A1000E9018F708093E9008091EB0085FB8827B6 +:101A200080F91092E90006C08091E1019091E201F5 +:101A3000911182609091E800977F9093E8008093E5 +:101A4000F1001092F100C8C0282F2D7F09F0EFC0DF +:101A5000882319F0823061F0EAC08091E70181307B +:101A600009F0E5C0933009F080E08093E2012BC0DB +:101A70008091E701811127C08091E9018F7009F4FD +:101A8000D6C08093E9002091EB0020FF1CC093306A +:101A900021F48091EB00806214C09091EB00906182 +:101AA0009093EB0021E030E0A90102C0440F551FE4 +:101AB0008A95E2F74093EA001092EA008091EB00E9 +:101AC00088608093EB001092E9008091E800877FA6 +:101AD00086C08111ACC01091E7011F778091E300AF +:101AE0008078812B8093E3008091E800877F80934A +:101AF000E8000E94F60A8091E80080FFFCCF809108 +:101B0000E30080688093E300111102C082E001C00D +:101B100083E08093E4018BC08058823008F087C056 +:101B20008091E7019091E8018C3D53E0950779F5AC +:101B300083E08A838AE289834FB7F894DE011396A3 +:101B400020E03EE051E2E32FF0E050935700E491B3 +:101B500020FF03C0E295EF703F5FEF708E2F90E0A3 +:101B6000EA3010F0C79601C0C0968D939D932F5F09 +:101B7000243149F74FBF8091E800877F8093E800C8 +:101B80006AE270E0CE0101960E94020A14C0AE0122 +:101B90004F5F5F4F6091E9010E944B09BC01892BA7 +:101BA00009F445C09091E800977F9093E8008981FF +:101BB0009A810E94600A8091E8008B778093E80008 +:101BC00036C08038A1F58091E800877F8093E800D7 +:101BD0008091E0018093F1008091E8008E778093FE +:101BE000E8000E94F60A23C0811121C08091E7011C +:101BF0009091E80199270297D4F48091E800877FBB +:101C00008093E8008091E7018093E0010E94F60A4A +:101C10008091E001811106C08091E30087FD02C040 +:101C200081E001C084E08093E4010E944408809137 +:101C3000E80083FF0AC08091E800877F8093E80076 +:101C40008091EB0080628093EB00AA960FB6F89427 +:101C5000DEBF0FBECDBFDF91CF911F9108950895D4 +:101C6000CF938091E4018823A1F0C091E900CF7067 +:101C70009091EC00892F817090FD80E8C82B109224 +:101C8000E9008091E80083FD0E94D90CCF70C093D9 +:101C9000E900CF91089590936901809368010895B8 +:101CA000E0916801F0916901309721F00190F08195 +:101CB000E02D099480E00895E0916801F0916901B8 +:101CC000309721F00280F381E02D09940895E0918E +:101CD0006801F0916901309721F00480F581E02DD1 +:101CE00009940895209166013091670128173907FA +:101CF00071F09093670180936601E0916801F09123 +:101D00006901309721F00680F781E02D099408954C +:101D100020916401309165012817390771F0909383 +:101D2000650180936401E0916801F0916901309749 +:101D300021F00084F185E02D0994089508950C9414 +:101D40009E0E0E945C1A0E940E040C94221BCF92DD +:101D5000DF92EF92FF920F931F93CF93DF93CDB754 +:101D6000DEB72B970FB6F894DEBF0FBECDBF0E9433 +:101D700026048BE6C82E81E0D82E00E010E0E02E8D +:101D8000802F0E941C05F60141916F01F82EF42668 +:101D9000B1F40F5F1F4F0E30110589F78FEF898364 +:101DA0008A831B820E94651A8160782F9D838C83B1 +:101DB00049815A816B818D810E944A0F40C0909168 +:101DC000CC0191FF04C08B870E9422058B8520E007 +:101DD00030E04F2D50E0922FBA01022E02C07595CF +:101DE00067950A94E2F760FF24C02E83EF8221E01A +:101DF00030E0690102C0CC0CDD1C9A95E2F790E05E +:101E00008C219D21892B09F420E028870E94651AE6 +:101E10008160782F9A8789874E815F8168858A855E +:101E20000E944A0FF801E559FE4F8081C826C08202 +:101E300006C02F5F3F4F2630310569F6AACF0E94BA +:101E4000091E0E94500E90916A018917A1F00E940C +:101E5000500E80936A012B960FB6F894DEBF0FBE2A +:101E6000CDBFDF91CF911F910F91FF90EF90DF9049 +:101E7000CF900C9446072B960FB6F894DEBF0FBE9A +:101E8000CDBFDF91CF911F910F91FF90EF90DF9029 +:101E9000CF900895CF93DF93CDB7DEB72B970FB6D2 +:101EA000F894DEBF0FBECDBF4F83588769877A870E +:101EB0008B87DE01119686E0FD0111928A95E9F784 +:101EC00085E0FE01379601900D928A95E1F74981F0 +:101ED0005A816B817C818D819E810E944D162B964B +:101EE0000FB6F894DEBF0FBECDBFDF91CF9108953E +:101EF000CF93C82F882309F4C1C0823859F40E94B7 +:101F0000500E81FDBBC089E30E94EA180E94A2190D +:101F100089E30CC0833879F40E94500E80FDAEC076 +:101F200083E50E94EA180E94A21983E50E942919FC +:101F3000CF910C94A219843859F40E94500E82FD5E +:101F40009DC087E40E94EA180E94A21987E4EECFA0 +:101F50008CEF8C0F813A48F48C2F0E94492081111C +:101F60008DC08C2F0E94EA18E3CF80E28C0F88305E +:101F700048F4C77081E001C0880FCA95EAF70E9453 +:101F80006B19D6CF8BE58C0F833078F4C53A29F0E6 +:101F9000C63A31F083E890E005C081E890E002C0E5 +:101FA00082E890E0CF910C94720E88E58C0F83311B +:101FB00008F064C0C83A39F1C93A41F1CA3A49F166 +:101FC000CB3A51F1CC3A59F1CD3A61F1C03B69F1CC +:101FD000CE3A71F1CF3A79F1C13B81F1C23B89F13F +:101FE000C33B91F1C43B99F1C53BA1F1C63BA9F1BB +:101FF000C73BB1F1C83BB9F1C93BC1F1CA3BC9F11B +:1020000080E090E038C082EE90E035C089EE90E04C +:1020100032C08AEE90E02FC085EB90E02CC086EBBA +:1020200090E029C087EB90E026C08CEC90E023C0C4 +:102030008DEC90E020C083E891E01DC08AE891E03B +:102040001AC082E991E017C084E991E014C081E2EE +:1020500092E011C083E292E00EC084E292E00BC0F5 +:1020600085E292E008C086E292E005C087E292E055 +:1020700002C08AE292E0CF910C94880ECF9108952D +:10208000882309F44BC0823859F40E94500E81FF16 +:1020900045C089E30E94EA180E94A21989E30CC096 +:1020A000833871F40E94500E80FF38C083E50E948F +:1020B000EA180E94A21983E50E9429190C94A2191A +:1020C000843859F40E94500E82FF28C087E40E9491 +:1020D000EA180E94A21987E4EFCF9CEF980F913A7B +:1020E00058F390E2980F983050F4877091E001C057 +:1020F000990F8A95EAF7892F0E947119DFCF9BE526 +:10210000980F933020F480E090E00C94720E885A7F +:10211000833120F480E090E00C94880E08958823A9 +:1021200021F00E946B190C94A2190895882321F0C4 +:102130000E9471190C94A2190895BF92CF92DF9258 +:10214000EF92FF920F931F93CF93DF9300D000D0B5 +:1021500000D0CDB7DEB77C0185E0F701DE01119636 +:1021600001900D928A95E1F7F70183819481892B83 +:1021700009F4DDC2908181818F3F19F49F3F09F4FA +:10218000D6C2F7010281258122952F7099838A8317 +:1021900089819A812E830E94A918182FB92E0E9436 +:1021A000A8180E946F17EB2DE295EF704E2F50E0AC +:1021B000FA01E05AFF4F2E810C948D228B2D807FE7 +:1021C0009B2D9F70F92E882319F0F29480EFF8224E +:1021D000002349F0FF2009F457C28F2D0E947B197C +:1021E0000E94A21951C2812F0E944010FF2009F4C1 +:1021F0009EC28F2D0E94811926960FB6F894DEBFDD +:102200000FBECDBFDF91CF911F910F91FF90EF9047 +:10221000DF90CF90BF900C94A2193B2D307F8B2D77 +:102220008F70303211F08295807F112319F01130B8 +:1022300021F12CC00023B9F0222309F490C12130F0 +:1022400009F08DC126960FB6F894DEBF0FBECDBF44 +:10225000DF91CF911F910F91FF90EF90DF90CF9082 +:10226000BF900C948B19222319F0213009F45FC21E +:102270008E830E948E198E8186C1002321F0223028 +:1022800008F055C26CC1211152C27DC1002321F05A +:10229000222309F464C1F8C1222309F474C109C2DC +:1022A0008B2D86958695837019F08130D1F03FC2D1 +:1022B000002321F0812F9B2D937002C080E090E0DD +:1022C00026960FB6F894DEBF0FBECDBFDF91CF913B +:1022D0001F910F91FF90EF90DF90CF90BF900C94E3 +:1022E000720E002321F0812F9B2D937002C080E09D +:1022F00090E026960FB6F894DEBF0FBECDBFDF91FB +:10230000CF911F910F91FF90EF90DF90CF90BF90F2 +:102310000C94880E812F002319F00E94111D02C019 +:102320000E94791D26960FB6F894DEBF0FBECDBF72 +:10233000DF91CF911F910F91FF90EF90DF90CF90A1 +:10234000BF900C94FE1D8B2D837009F075C0011198 +:10235000EEC1812F829586958770880F880F912F07 +:102360009F70C92ED12CE12CF12C082E04C0CC0C6E +:10237000DD1CEE1CFF1C0A94D2F714FF12C00FE004 +:1023800010E020E030E004C0000F111F221F331FB7 +:102390008A95D2F7C901B80160957095809590959E +:1023A00003C060E070E0CB014B2D4695469543702D +:1023B0004230C1F060F56C297D298E299F2941307A +:1023C00051F126960FB6F894DEBF0FBECDBFDF9158 +:1023D000CF911F910F91FF90EF90DF90CF90BF9022 +:1023E0000C9496176C297D298E299F2926960FB665 +:1023F000F894DEBF0FBECDBFDF91CF911F910F913B +:10240000FF90EF90DF90CF90BF900C94B2170E9496 +:102410009617C701B60126960FB6F894DEBF0FBE19 +:10242000CDBFDF91CF911F910F91FF90EF90DF9083 +:10243000CF90BF900C947A17002319F08B2D8170E8 +:1024400001C08695882309F472C1812F82958695F3 +:102450008770880F880F912F9F70C92ED12CE12C87 +:10246000F12C082E04C0CC0CDD1CEE1CFF1C0A94C1 +:10247000D2F714FF12C00FE010E020E030E004C0FB +:10248000000F111F221F331F8A95D2F7C901B8010F +:10249000609570958095909503C060E070E0CB01E9 +:1024A0004B2D4695469543704230C1F060F56C293E +:1024B0007D298E299F29413051F126960FB6F89437 +:1024C000DEBF0FBECDBFDF91CF911F910F91FF9067 +:1024D000EF90DF90CF90BF900C9470186C297D29FD +:1024E0008E299F2926960FB6F894DEBF0FBECDBF6A +:1024F000DF91CF911F910F91FF90EF90DF90CF90E0 +:10250000BF900C948C180E947018C701B6012696D3 +:102510000FB6F894DEBF0FBECDBFDF91CF911F91F4 +:102520000F91FF90EF90DF90CF90BF900C945418D4 +:10253000103FD1F118F4103E50F4A1C0123F09F43D +:1025400063C008F44CC0133F09F473C098C01F70F7 +:102550008B2D8F710023A1F00E94ED17812F2696FD +:102560000FB6F894DEBF0FBECDBFDF91CF911F91A4 +:102570000F91FF90EF90DF90CF90BF900C948F1051 +:102580000E940E18812F26960FB6F894DEBF0FBE5C +:10259000CDBFDF91CF911F910F91FF90EF90DF9012 +:1025A000CF90BF900C9496100023A9F02111BFC0CA +:1025B0008B2D8F7126960FB6F894DEBF0FBECDBF60 +:1025C000DF91CF911F910F91FF90EF90DF90CF900F +:1025D000BF900C943318223008F0A9C0E9CF002333 +:1025E000A9F08B2D8F7126960FB6F894DEBF0FBE23 +:1025F000CDBFDF91CF911F910F91FF90EF90DF90B2 +:10260000CF90BF900C94ED17002359F38B2D8F7151 +:1026100026960FB6F894DEBF0FBECDBFDF91CF91E7 +:102620001F910F91FF90EF90DF90CF90BF900C948F +:102630000E18002399F08B2D8F7126960FB6F89403 +:10264000DEBF0FBECDBFDF91CF911F910F91FF90E5 +:10265000EF90DF90CF90BF900C94D81726960FB6CE +:10266000F894DEBF0FBECDBFDF91CF911F910F91C8 +:10267000FF90EF90DF90CF90BF900C94CE17002387 +:10268000A9F0222309F4ADCF812F26960FB6F89436 +:10269000DEBF0FBECDBFDF91CF911F910F91FF9095 +:1026A000EF90DF90CF90BF900C94780F222309F425 +:1026B000ADCF812F26960FB6F894DEBF0FBECDBFEB +:1026C000DF91CF911F910F91FF90EF90DF90CF900E +:1026D000BF900C9440104B2D4F70612FC7010E948A +:1026E000AE0226960FB6F894DEBF0FBECDBFDF91C7 +:1026F000CF911F910F91FF90EF90DF90CF90BF90FF +:102700000C94F2164B2D4F70612FC70126960FB611 +:10271000F894DEBF0FBECDBFDF91CF911F910F9117 +:10272000FF90EF90DF90CF90BF900C94E30526963A +:102730000FB6F894DEBF0FBECDBFDF91CF911F91D2 +:102740000F91FF90EF90DF90CF90BF9008950E947F +:1027500088190E945D190E94A2190E94AE1E0E9453 +:10276000FE1D80E090E00E94720E80E090E00C94EC +:10277000880E0E9478190C94A7130E94A918292F7B +:1027800022952F702C3030F42A3048F42250223019 +:1027900078F405C02C3041F02F3031F009C0803E74 +:1027A00048F0803F29F406C093FB882780F90895FC +:1027B00080E0089581E00895CF93DF9300D000D0AA +:1027C0001F92CDB7DEB70F900F900F900F900F9024 +:1027D000DF91CF910895CF93DF9300D000D000D048 +:1027E000CDB7DEB726960FB6F894DEBF0FBECDBFCD +:1027F000DF91CF9108951F93CF93DF93C09179011B +:1028000016E080917A01C81799F0D0E01C9FF00182 +:102810001D9FF00D1124E558FE4F408151816281CA +:102820007381848195810E94EB132196C770E9CF53 +:10283000DF91CF911F9108954091AB015091AC0170 +:102840006091AD017091AE018091AF019091B001A6 +:102850000C94EB138091B00182958F7009F054C0F5 +:102860008091AD01882309F44FC080917901A09136 +:102870007A014091AE015091AF016091AB0170912E +:10288000AC01B6E08A1709F43FC090E0411551054C +:10289000C1F17F3F11F46F3FA1F1B89FF001B99FE3 +:1028A000F00D1124E558FE4F218127132AC0208105 +:1028B000261327C02281211124C0238134812417AB +:1028C000350710F421503109241B350B283C310504 +:1028D000C0F42091B0012F7020612093B00126E058 +:1028E000289FF001299FF00D1124E058FE4F8081B0 +:1028F0008F70806180838BEA91E00E949D100C9420 +:10290000FB1301968770BECF0895CF92DF92EF92AE +:10291000FF920F931F93CF93DF93CDB7DEB76297EC +:102920000FB6F894DEBF0FBECDBF8C0185E0F80175 +:10293000DE011D9601900D928A95E1F7D8014C9128 +:1029400011965C91119712966C918091AE019091C5 +:10295000AF01009709F475C13091AB017091AC01E2 +:102960007F3F19F43F3F09F46CC1F801C380D48064 +:10297000E090AD01EE2009F4BEC02091B001C81670 +:10298000D90628F0D601A81BB90BCD0104C080954B +:1029900090958C0D9D1DFF24F394883C910578F053 +:1029A000F12C207F09F0C4C07C2DD98AC88A89897E +:1029B0000E94DC138BEA91E00E949D10AFC0822F31 +:1029C000807F09F045C0571313C0431311C0611134 +:1029D0000FC02F7020612093B0010E941C148BEA5D +:1029E00091E00E949D108091B001F80185832EC076 +:1029F000CD2819F15F3F11F44F3FF9F0F62E611128 +:102A00001CC08091790120917A0136E0821709F487 +:102A10005BC090E0389FF001399FF00D1124E5581C +:102A2000FE4F7181571306C07081471303C0728136 +:102A3000711103C001968770E9CFF62E662309F461 +:102A40001CC18091B00181608093B001F12C15C14F +:102A5000571309C0431307C0611105C08091B0012D +:102A6000F8018583C8C04D875E878D859E856A8BFA +:102A70000E94BD136A898823D1F16623C1F1209198 +:102A8000B001822F82958F7090E0029774F0809150 +:102A9000AB019091AC0198878F831986DB86CA863B +:102AA0002C87CE0107960E949D1086E0F801ABEAC4 +:102AB000B1E001900D928A95E1F70E942A140E94DC +:102AC0001C14FF24F394D9C04D875E878D859E85A5 +:102AD0000E94A918292F22952F70223008F0C1C01A +:102AE0009F7009F0BBC0805E883008F4C6C0C80182 +:102AF0000E949D10E6CFC816D90608F453C0F6010F +:102B0000E81BF90BCF01883C910508F450C0F12C6B +:102B10007C2DD98AC88A89890E94DC13EBEAF1E00E +:102B200086E0DF011D928A95E9F70E941C14A5C07A +:102B3000571314C0431312C0611110C08091B0012B +:102B4000F8018583C8010E949D1086E0EBEAF1E060 +:102B5000DF011D928A95E9F7FE2C8FC04D875E87B5 +:102B60008D859E856A8B0E94BD136A89882309F42E +:102B7000BECF662309F4BBCF2091B001822F82958E +:102B80008F7090E002970CF490CF8091AB01909100 +:102B9000AC019A8389831B82DD82CC822E83CE0195 +:102BA000019681CF809590958C0D9D1DACCFF62E12 +:102BB000662309F49CCF571333C0431331C02091CF +:102BC000B00120FD24C0822F82958F70482F50E0E5 +:102BD00041155105E1F0D80115962C9315974F300A +:102BE000510549F08F5F982F9295907F822F8F70BB +:102BF000892B15968C93C8010E949D1086E0F801E0 +:102C0000ABEAB1E001900D928A95E1F78ECF86E0B4 +:102C1000F801ABEAB1E001900D928A95E1F72DC081 +:102C20004D875E878D859E850E94BD1381113DCFA6 +:102C30008091B00181608093B001C8010E949D1015 +:102C40001CC0662309F453CF4D875E878D859E8512 +:102C50000E94BD13882309F44ACF27CF811143CFA7 +:102C60000CC0243008F043CF9F7009F43CCFD8014A +:102C700015969C91907F09F036CF8F2D62960FB6F6 +:102C8000F894DEBF0FBECDBFDF91CF911F910F91A2 +:102C9000FF90EF90DF90CF9008951F93CF93DF9335 +:102CA000CDB7DEB72C970FB6F894DEBF0FBECDBF01 +:102CB0004F83588769877A878B879C87CE010796D1 +:102CC0000E948514882371F08A859B85892B09F4DD +:102CD00041C088858F3F09F065C08F818F3F09F023 +:102CE00061C038C086E0FE013796DE011196019082 +:102CF0000D928A95E1F76A857B856115710551F121 +:102D0000FF81E885EF3F11F4FF3F21F120917A0127 +:102D100030E0C9010196877099274091790150E010 +:102D20008417950709F447C0F983EA837D836C8390 +:102D300096E0929FD001939FB00D1124A558BE4FED +:102D4000FE01319601900D929A95E1F780937A01F8 +:102D50000E94FB1316E08091790190917A01891706 +:102D6000B9F1189FC001112485589E4F0E94851407 +:102D7000882371F1E09179011E9FF0011124E5583B +:102D8000FE4F4081518162817381848195810E94CF +:102D9000EB138091790190E00196877099278093D9 +:102DA0007901D9CF4F81588569857A858B859C8536 +:102DB0000E94EB13CFCF0E94B91310927A011092A8 +:102DC0007901EBEAF1E086E0DF011D928A95E9F7EF +:102DD0002C960FB6F894DEBF0FBECDBFDF91CF911A +:102DE0001F910895EF92FF920F931F93CF93DF935C +:102DF0008C01892B09F46CC0F12CEE24E394E801DA +:102E00002196F8018491843740F4843008F051C051 +:102E1000813081F0823019F15BC0853709F444C0FC +:102E2000A8F19CE7980F903708F052C08F770E9466 +:102E3000401041C00E5F1F4FFE01849190E2980F39 +:102E4000983050F48770FE2D01C0FF0F8A95EAF785 +:102E50008F2F0E947B1914C00E94780F2DC00E5F27 +:102E60001F4FFE01849190E2980F983060F48770B4 +:102E7000FE2D01C0FF0F8A95EAF78F2F0E9481195E +:102E80000E94A21919C00E94401016C00E5F1F4F69 +:102E9000FE01C491CC2381F08FE99FE00197F1F707 +:102EA00000C00000C150F6CF0E5F1F4FFE01F4902E +:102EB00003C00E94780F8E018F2D882309F49FCFC5 +:102EC000EFE9FFE03197F1F700C000008150F5CF46 +:102ED000DF91CF911F910F91FF90EF90089508958A +:102EE0006093B5017093B6018093B7019093B801D8 +:102EF0000C94A7130F931F930091B5011091B60185 +:102F00002091B7013091B801DC01CB01802B912BCE +:102F1000A22BB32B8093B5019093B601A093B70178 +:102F2000B093B8011F910F910C94A7130F931F93A7 +:102F30000091B5011091B6012091B7013091B8010F +:102F4000DC01CB0180239123A223B3238093B5011D +:102F50009093B601A093B701B093B8011F910F9160 +:102F60000C94A7130F931F930091B5011091B60114 +:102F70002091B7013091B801DC01CB018027912766 +:102F8000A227B3278093B5019093B601A093B70110 +:102F9000B093B8011F910F910C94A7131092B10137 +:102FA0001092B2011092B3011092B4010C94A713C5 +:102FB00041E050E060E070E004C0440F551F661F20 +:102FC000771F8A95D2F74093B1015093B201609375 +:102FD000B3017093B4010C94A71341E050E060E09A +:102FE00070E004C0440F551F661F771F8A95D2F703 +:102FF0008091B1019091B201A091B301B091B4015F +:10300000482B592B6A2B7B2B4093B1015093B20173 +:103010006093B3017093B4010C94A71341E050E0A6 +:1030200060E070E004C0440F551F661F771F8A954B +:10303000D2F740955095609570958091B10190912F +:10304000B201A091B301B091B401482359236A237E +:103050007B234093B1015093B2016093B30170930D +:10306000B4010C94A71341E050E060E070E004C0AC +:10307000440F551F661F771F8A95D2F78091B101C3 +:103080009091B201A091B301B091B40148275927A2 +:103090006A277B274093B1015093B2016093B3013B +:1030A0007093B4010C94A7130F931F930091B10177 +:1030B0001091B2012091B3013091B401DC01CB0138 +:1030C000802B912BA22BB32B8093B1019093B20153 +:1030D000A093B301B093B4011F910F910C94A71367 +:1030E0000F931F930091B1011091B2012091B30190 +:1030F0003091B401DC01CB0180239123A223B323BF +:103100008093B1019093B201A093B301B093B40145 +:103110001F910F910C94A7130F931F930091B1016E +:103120001091B2012091B3013091B401DC01CB01C7 +:1031300080279127A227B3278093B1019093B201F2 +:10314000A093B301B093B4011F910F910C94A713F6 +:103150000895CF92DF92EF92FF920F931F93CF9338 +:10316000DF938C01C090B101D090B201E090B30127 +:10317000F090B4018091B5019091B601A091B70192 +:10318000B091B801C82AD92AEA2AFB2ACFE1D0E0B7 +:10319000D701C6010C2E04C0B695A79597958795C3 +:1031A0000A94D2F780FF07C0B8018C2F0E9407064F +:1031B0008130910531F4219758F7B80180E00E94E1 +:1031C0000706DF91CF911F910F91FF90EF90DF9055 +:1031D000CF90089590910C019923F1F090910D01F9 +:1031E0009923D1F0982F9695969596959F3080F5D6 +:1031F000E0910E01F0910F01E90FF11D877021E0C0 +:1032000030E0A90102C0440F551F8A95E2F7CA01B8 +:103210009181892B8183089520910E0130910F01B6 +:10322000F90132969FEF40E05191851789F09F3F59 +:1032300019F4511101C0942F4F5F4E30A9F79F3FF1 +:1032400039F0F901E90FF11D97FDFA958283089590 +:10325000089590910C019923F9F090910D01992313 +:10326000D9F0982F9695969596959F3028F5E091F0 +:103270000E01F0910F01E90FF11D877021E030E0A0 +:10328000A90102C0440F551F8A95E2F7CA01809533 +:10329000918189238183089520910E0130910F013E +:1032A000F9013296205F3F4F9081891301C010824F +:1032B0003196E217F307C1F7089581E090E0E091BD +:1032C0000E01F0910F01E80FF91F10820196803175 +:1032D0009105A9F708959091CB01892B8093CB019B +:1032E000089580959091CB0189238093CB01089517 +:1032F0001092CB0108959091CA01892B8093CA0145 +:10330000089580959091CA0189238093CA010895F8 +:103310001092CA0108958093B90108951092B901DD +:10332000089580910E0190910F01FC0131969C014E +:10333000205F3F4F80E0919191118F5FE217F3077B +:10334000D1F70895E0910E01F0910F018091CB012A +:103350008083E0910E01F0910F0190818091CA016C +:10336000892B80838091B901882361F0E0910E015F +:10337000F0910F019081892B80830E949119811116 +:103380001092B90180910E0190910F010C945C0E86 +:10339000CF92DF92EF92FF926C01EE24FF24C114D2 +:1033A000D104E104F10421F0C701B60120E101C01C +:1033B00020E0C72ED82EE92EFF24C114D104E10449 +:1033C000F10419F0285FC701B6016B017C0154E0DC +:1033D000F694E794D794C7945A95D1F7C114D104C1 +:1033E000E104F10419F02C5FC701B6016B017C0107 +:1033F00042E0F694E794D794C7944A95D1F7C11464 +:10340000D104E104F10419F02E5FC701B601DC011B +:10341000CB01B695A79597958795892B8A2B8B2BF2 +:1034200009F02F5F822FFF90EF90DF90CF900895EB +:103430008091E401843011F120E488E190E00FB63E +:10344000F894A895809360000FBE2093600083B726 +:10345000817F846083BF83B7816083BF78948895C0 +:1034600083B78E7F83BF0FB6F894A89580916000D4 +:10347000886180936000109260000FBE08950895E7 +:103480000C943F1ACF930E94401A0E9426040E9477 +:103490003F1AC0E08C2F0E941C05811104C0CF5F31 +:1034A000CE30C1F701C081E0CF9108950E94B913D9 +:1034B0000E94500E0C94460782E084BD93E095BDB7 +:1034C0009AEF97BD80936E0008952FB7F89480917E +:1034D000CD019091CE01A091CF01B091D0012FBF2D +:1034E0000895CF92DF92EF92FF920F931F932FB721 +:1034F000F8944091CD015091CE016091CF0170912F +:10350000D0012FBF6A017B01EE24FF248C0120E053 +:1035100030E0C016D106E206F30610F4415051091E +:103520009A01281B390BC9011F910F91FF90EF9051 +:10353000DF90CF9008951F920F920FB60F92112433 +:103540008F939F93AF93BF938091CD019091CE01C4 +:10355000A091CF01B091D0010196A11DB11D809322 +:10356000CD019093CE01A093CF01B093D001BF9134 +:10357000AF919F918F910F900FBE0F901F90189554 +:103580000E94480BF8942FEF87EA91E62150804083 +:103590009040E1F700C0000087E090EBDC018093F1 +:1035A000ED019093EE01A093EF01B093F0019CE048 +:1035B00088E10FB6F894A895809360000FBE9093B1 +:1035C0006000FFCFEF92FF920F931F93CF93DF9393 +:1035D000D82FC0E08C2F0E941C0500E010E0E82EE0 +:1035E000F12CC701002E02C0959587950A94E2F749 +:1035F00080FD06C00F5F1F4F0630110591F709C00F +:10360000602F7C2F80E00E94E4058D13F3CF81E0D2 +:1036100004C0CF5FCE30F1F680E0DF91CF911F91F3 +:103620000F91FF90EF900895CF93C82F8CE20E94E6 +:10363000E21A882321F08C2FCF910C94E21A80E0BB +:10364000CF910895CF930E94691C811102C00E94FE +:103650004F1CC5E6C15049F00E9426048FE39CE947 +:103660000197F1F700C00000F5CF89E20E94141B1A +:10367000811113C18AE20E94141B81110E944F1C08 +:1036800085E00E94141B81110E94C01A0E94741CC4 +:103690008093CC0187E00E94141B8823A9F18BE161 +:1036A0000E94141B882351F08091CC0181FB2227BA +:1036B00020F991E0922790FB81F90EC08EE00E94E4 +:1036C000141B882361F08091CC0182FB222720F912 +:1036D00091E0922790FB82F98093CC0115C080E1A4 +:1036E0000E94141B9091CC01882341F093FB222768 +:1036F00020F981E0822780FB93F904C0892F80950F +:1037000080FB90F99093CC018091CC010E94781CB1 +:103710000E94861C8093DE0180EE0E94141B882389 +:1037200041F08091DE01982F909590FB80F9809375 +:10373000DE0189E30E94141B882359F08091DE0189 +:1037400081FB222720F991E0922790FB81F9809359 +:10375000DE0182EE0E94141B882359F08091DE0165 +:1037600082FB222720F991E0922790FB82F9809337 +:10377000DE0186EE0E94141B882359F08091DE0141 +:1037800083FB222720F991E0922790FB83F9809315 +:10379000DE0183EE0E94141B882359F08091DE0124 +:1037A00084FB222720F991E0922790FB84F98093F3 +:1037B000DE0185E30E94141B882359F08091DE010D +:1037C00085FB222720F991E0922790FB85F98093D1 +:1037D000DE0181E30E94141B882359F08091DE01F1 +:1037E00086FB222720F991E0922790FB86F98093AF +:1037F000DE0181E10E94141B882359F08091DE01D3 +:1038000087FB222720F991E0922790FB87F980938C +:10381000DE018091DE010E948A1C8091DE0187FB1F +:10382000882780F980930D0187E20E94141BC82F1E +:103830008EE10E94141B8111C2608FE10E94141B53 +:103840008111C46080E20E94141B8111C86081E272 +:103850000E94141B8111C06182E20E94141B81111D +:10386000C06283E20E94141B8111C06484E20E9442 +:10387000141B882311F0C06802C0CC2329F08C2FC0 +:103880000E94811C6C2F03C00E947D1C682F70E079 +:1038900080E090E0CF910C947017CF9108956DEE79 +:1038A0007EEF80E090E00E94C32260E082E090E042 +:1038B0000E94B52260E083E090E00E94B52260E0C3 +:1038C00084E090E00E94B52260E085E090E00C94F6 +:1038D000B52280E090E00E94AF2221E08D3E9E4F15 +:1038E00009F020E0822F089582E090E00C94A72256 +:1038F000682F82E090E00C94B52283E090E00C9475 +:10390000A722682F83E090E00C94B52284E090E039 +:103910000C94A722682F84E090E00C94B52280914B +:10392000D30180FF0BC06091130185E0689FB00157 +:10393000112475956795759567952BC081FF09C012 +:103940006091130185E0689FB0011124759567951A +:1039500020C082FF07C06091130185E0689FB0011D +:10396000112417C09091D4019923D1F060911201D4 +:10397000961788F72091130185E0289F9001112464 +:10398000929FA001939F500D112470E0CA010E94E4 +:1039900079226038710540F46115710519F406C08B +:1039A00065E070E0862F08958FE7089581E008951F +:1039B0008091D30180FF08C06091110170E075957E +:1039C00067957595679521C081FF06C060911101CB +:1039D00070E07595679519C082FF04C06091110170 +:1039E00070E010C09091D401992399F0609110017A +:1039F0009617A0F780911101899FC001112470E0F2 +:103A00000E9479226038710540F46115710519F43E +:103A100006C061E070E0862F08958FE7089581E089 +:103A20000895803F21F40E948F1C819504C0813F3E +:103A300029F40E948F1C8093D7010895823F21F4BE +:103A40000E948F1C819504C0833F29F40E948F1C23 +:103A50008093D6010895893F19F40E94D81C05C0AF +:103A60008A3F31F40E94D81C81958093D801089533 +:103A70008B3F21F40E94D81C819504C08C3F29F40F +:103A80000E94D81C8093D9010895843F21F480912D +:103A9000D501816017C0853F21F48091D5018260F6 +:103AA00011C0863F21F48091D50184600BC0873F0F +:103AB00021F48091D501886005C0883F31F4809160 +:103AC000D50180618093D50108958D3F21F48091C7 +:103AD000D30181600BC08E3F21F48091D3018260BD +:103AE00005C08F3F29F48091D30184608093D30176 +:103AF0000895803F39F48091D70187FF6CC0109200 +:103B0000D70169C0813F29F48091D7011816BCF311 +:103B100062C09091D601823F29F497FF5CC0109259 +:103B2000D60159C0833F19F41916CCF354C0893F0C +:103B300041F48091D80118160CF04DC01092D801B4 +:103B40004AC08A3F29F48091D80187FF44C0F6CF4C +:103B50008B3F39F48091D90187FF3DC01092D90184 +:103B60003AC08C3F29F48091D9011816BCF333C0B8 +:103B7000843F21F48091D5018E7F17C0853F21F4C9 +:103B80008091D5018D7F11C0863F21F48091D501B0 +:103B90008B7F0BC0873F21F48091D501877F05C0C3 +:103BA000883F31F48091D5018F7E8093D50113C079 +:103BB0008D3F21F48091D3018E7F0BC08E3F21F485 +:103BC0008091D3018D7F05C08F3F29F48091D3016F +:103BD0008B7F8093D3018091D60181110EC080919B +:103BE000D70181110AC08091D801811106C080914E +:103BF000D901811102C01092D401089585ED91E0A0 +:103C00000E94670E0E94651A9093D2018093D101A1 +:103C100008951F93CF93DF938091D1019091D201AA +:103C20000E94711AAC019091D401992321F0209146 +:103C3000140130E006C0209115018AE0289F900110 +:103C400011244217530708F485C08091D601C09112 +:103C5000D701D091D8011091D901811107C0C111AC +:103C600075C0D11173C0111171C074C09F3F19F09C +:103C70009F5F9093D401181624F40E948F1C8093A8 +:103C8000D6018091D60187FF05C00E948F1C8195C7 +:103C90008093D6011C1624F40E948F1C8093D701B8 +:103CA0008091D70187FF05C00E948F1C819580936A +:103CB000D7016091D601662331F1C091D701CC23A1 +:103CC00011F1062E000C770B880B990B0E948021B6 +:103CD00023E333E343E35FE30E94E4210E944821AE +:103CE0006093D6016C2FCC0F770B880B990B0E9439 +:103CF000802123E333E343E35FE30E94E4210E9456 +:103D000048216093D7011D1624F40E94D81C80938B +:103D1000D8018091D80187FF05C00E94D81C8195E9 +:103D20008093D801111624F40E94D81C8093D901E5 +:103D30008091D90187FF05C00E94D81C819580938E +:103D4000D901DF91CF911F910C94FE1D9F3F09F087 +:103D50008FCFA0CFDF91CF911F910895E5EDF1E0D6 +:103D600085E0DF011D928A95E9F71092D401109247 +:103D7000D3010895833081F128F4813059F08230E5 +:103D8000D1F00895853009F449C0B8F1863009F4BE +:103D900056C0089580911501262F30E0280F311D5F +:103DA0002F3F310524F4680F6093150108958FEFBC +:103DB00080931501089580911401262F30E0280F7B +:103DC000311D2F3F310524F4680F609314010895CD +:103DD0008FEF80931401089580911301262F30E016 +:103DE000280F311D2F3F310524F4680F6093130114 +:103DF00008958FEF80931301089580911201262F6B +:103E000030E0280F311D2F3F310524F4680F6093F7 +:103E1000120108958FEF809312010895809111018E +:103E2000262F30E0280F311D2F3F310524F4680F75 +:103E30006093110108958FEF80931101089580918F +:103E40001001262F30E0280F311D2F3F310524F4BB +:103E5000680F6093100108958FEF8093100108950B +:103E6000833011F128F4813049F0823091F00895C7 +:103E7000853081F120F18630C1F1089580911501DE +:103E8000681720F4861B8093150108951092150180 +:103E9000089580911401681720F4861B8093140103 +:103EA000089510921401089580911301681720F469 +:103EB000861B809313010895109213010895809139 +:103EC0001201681720F4861B809312010895109246 +:103ED0001201089580911101681720F4861B8093C8 +:103EE0001101089510921101089580911001681731 +:103EF00020F4861B809310010895109210010895FC +:103F00000F931F938D3109F46BC008F03FC08E30C2 +:103F100009F47DC0C0F4873009F46EC068F48630BF +:103F200009F0AFC08091CC01817F8E7F8093CC015E +:103F300081E08093DB01A6C0883009F458C08B3043 +:103F400009F49BC09EC0863109F497C078F4803193 +:103F500009F470C0813109F094C00E94B9139091A6 +:103F60000D0181E0892780930D0187C0893109F413 +:103F700084C08B3109F085C08091CC0181FB222760 +:103F800020F991E0922790FB81F94AC0853309F42A +:103F90005BC048F4873209F457C008F45AC089322C +:103FA00009F452C06EC0833438F48A3308F067C015 +:103FB000883309F462C065C0833409F445C088348D +:103FC00009F05FC00E94B9130FEF13ED20E3015019 +:103FD00010402040E1F700C000000E94C01A4DC010 +:103FE0000E9402210E94500E0E94460746C00E9475 +:103FF000741C0E94861C41C09091CC01892F817055 +:1040000090FF12C0917F9E7F9093CC013BC0809126 +:10401000CC0182FB222720F991E0922790FB82F9C4 +:104020008093CC01992349F18091CC0181608093E8 +:10403000CC0123C08091CC0183FB222720F991E0A1 +:10404000922790FB83F9ECCF61E070E080E090E094 +:1040500010C08D5141E050E060E070E08A019B01AA +:1040600004C0000F111F221F331F8A95D2F7C90108 +:10407000B8010E9470170E94B91381E003C08953F0 +:10408000E9CF80E01F910F91089580E008950C948E +:104090004520CF93C82F8091DB01813079F018F053 +:1040A0008230E9F187C0E0910E01F0910F0180812B +:1040B000813169F0823209F07FC009C0E0910E01C0 +:1040C000F0910F018081813111F0823261F48C2FE7 +:1040D0000E944720811104C08C2F0E94801F1DC0A8 +:1040E00081E090E01AC08C2F0E944520811114C0FD +:1040F000C43179F048F4CB3079F0C03109F060C0B8 +:1041000082E08093DB0108C0C93219F0C83321F086 +:1041100057C01092DB0154C081E0817053C0C93296 +:1041200089F118F5C43171F1A8F4C73009F046C01F +:104130008AE08093150194E19093140193E09093A9 +:1041400013018093120188E08093110188E280932B +:10415000100134C0CE51C63088F5EC2FF0E0E65D9A +:10416000FE4F80818093DA0129C0CE34E9F020F43B +:10417000CB3421F56AE013C0C13579F0C235F1F4D2 +:1041800061E00DC08091DA01882319F01092DA0104 +:1041900015C081E08093DB0115C061E006C080910D +:1041A000DA010E94BA1E0AC06AE08091DA010E9418 +:1041B000301F04C01092DB0180E004C081E002C027 +:1041C00080E0ABCFCF910895E1E8F0E08081886096 +:1041D00080838081816080838FB7F89493E090938F +:1041E000890090ED909388008FBF0895EFE6F0E08E +:1041F0008081826080830895EFE6F0E080818D7F8A +:1042000080830895EFE6F0E0908182E08927808343 +:1042100008951F920F920FB60F9211242F933F9380 +:104220004F935F936F937F938F939F93AF93BF93BE +:10423000EF93FF938091DC019091DD0101969093C3 +:10424000DD018093DC01811103C082E00E944607FA +:10425000E091DD01E695E695F0E0E657FB4FE4914D +:104260008091DC018E1303C080E00E944607FF911D +:10427000EF91BF91AF919F918F917F916F915F91DE +:104280004F913F912F910F900FBE0F901F90189557 +:104290000E944F216894B1110C94DE2108950E9470 +:1042A000C32188F09F5798F0B92F9927B751B0F0E4 +:1042B000E1F0660F771F881F991F1AF0BA95C9F7AA +:1042C00014C0B13091F00E94DD21B1E008950C944A +:1042D000DD21672F782F8827B85F39F0B93FCCF3FD +:1042E000869577956795B395D9F73EF49095809527 +:1042F000709561957F4F8F4F9F4F0895E89409C047 +:1043000097FB3EF490958095709561957F4F8F4F08 +:104310009F4F9923A9F0F92F96E9BB279395F6951E +:10432000879577956795B795F111F8CFFAF4BB0F9C +:1043300011F460FF1BC06F5F7F4F8F4F9F4F16C000 +:10434000882311F096E911C0772321F09EE8872F8A +:10435000762F05C0662371F096E8862F70E060E046 +:104360002AF09A95660F771F881FDAF7880F9695BF +:10437000879597F9089557FD9058440F551F59F0A8 +:104380005F3F71F04795880F97FB991F61F09F3F42 +:1043900079F087950895121613061406551FF2CF6B +:1043A0004695F1DF08C0161617061806991FF1CFBB +:1043B00086957105610508940895E894BB276627E2 +:1043C0007727CB0197F908950E94F7210C94682272 +:1043D0000E945A2238F00E94612220F0952311F0A9 +:1043E0000C9451220C94572211240C94DE210E942B +:1043F000BB2170F3959FC1F3950F50E0551F629F4D +:10440000F001729FBB27F00DB11D639FAA27F00D2D +:10441000B11DAA1F649F6627B00DA11D661F829F54 +:104420002227B00DA11D621F739FB00DA11D621F39 +:10443000839FA00D611D221F749F3327A00D611D56 +:10444000231F849F600D211D822F762F6A2F112438 +:104450009F5750409AF0F1F088234AF0EE0FFF1F6B +:10446000BB1F661F771F881F91505040A9F79E3FC2 +:10447000510580F00C9451220C94DE215F3FE4F34F +:10448000983ED4F3869577956795B795F795E79518 +:104490009F5FC1F7FE2B880F911D9695879597F921 +:1044A000089597F99F6780E870E060E008959FEFB6 +:1044B00080EC089500240A941616170618060906BB +:1044C000089500240A94121613061406050608958A +:1044D000092E0394000C11F4882352F0BB0F40F412 +:1044E000BF2B11F460FF04C06F5F7F4F8F4F9F4F52 +:1044F000089597FB072E16F4009407D077FD09D096 +:104500000E94932207FC05D03EF4909581959F4F21 +:104510000895709561957F4F0895EE0FFF1F0590E8 +:10452000F491E02D0994AA1BBB1B51E107C0AA1FFF +:10453000BB1FA617B70710F0A61BB70B881F991F44 +:104540005A95A9F780959095BC01CD010895F999E8 +:10455000FECF92BD81BDF89A992780B50895A8E154 +:10456000B0E042E050E00C94CA22262FF999FECF29 +:104570001FBA92BD81BD20BD0FB6F894FA9AF99A80 +:104580000FBE019608950E94B522272F0C94B622E3 +:10459000DC01CB01FC01F999FECF06C0F2BDE1BD03 +:1045A000F89A319600B40D9241505040B8F70895F2 +:0445B000F894FFCFAD +:1045B40020024707D707B2077E074A070101BA015D +:1045C40028080A03140A3F4D36394B04FE03C80376 +:1045D4008F0322033B0354036D0301020304050606 +:0445E40007080900BB +:00000001FF diff --git a/keyboard/ergodox_ez/keymaps/keymap_workman_osx_mdw.c b/keyboard/ergodox_ez/keymaps/workman_osx_mdw/keymap.c similarity index 99% rename from keyboard/ergodox_ez/keymaps/keymap_workman_osx_mdw.c rename to keyboard/ergodox_ez/keymaps/workman_osx_mdw/keymap.c index 14bbe010d5..05800a00c6 100644 --- a/keyboard/ergodox_ez/keymaps/keymap_workman_osx_mdw.c +++ b/keyboard/ergodox_ez/keymaps/workman_osx_mdw/keymap.c @@ -337,12 +337,12 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) }; // Runs just one time when the keyboard initializes. -void * matrix_init_user(void) { +void matrix_init_user(void) { }; // Runs constantly in the background, in a loop. -void * matrix_scan_user(void) { +void matrix_scan_user(void) { uint8_t layer = biton32(layer_state); diff --git a/keyboard/ergodox_ez/keymaps/workman_osx_mdw/workman_osx_mdw.hex b/keyboard/ergodox_ez/keymaps/workman_osx_mdw/workman_osx_mdw.hex new file mode 100644 index 0000000000..39b4076a59 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/workman_osx_mdw/workman_osx_mdw.hex @@ -0,0 +1,1199 @@ +:100000000C9466030C94AD030C94AD030C94AD03F7 +:100010000C94AD030C94AD030C94AD030C94AD03A0 +:100020000C94AD030C94AD030C94350E0C94070F97 +:100030000C94AD030C94AD030C94AD030C94AD0380 +:100040000C94AD030C947B230C94AD030C94AD0382 +:100050000C94AD030C940D1D0C94AD030C94AD03E6 +:100060000C94AD030C94AD030C94AD030C94AD0350 +:100070000C94AD030C94AD030C94AD030C94AD0340 +:100080000C94AD030C94AD030C94AD030C94AD0330 +:100090000C94AD030C94AD030C94AD030C94AD0320 +:1000A0000C94AD030C94AD030C94AD03740F960F38 +:1000B0008910960F8910DB0FFE0F89105310661000 +:1000C000501350137F137F13C213FC130916091624 +:1000D000151409160A150A15DD1509160916F41561 +:1000E0000122022201C402C4000121022101C40232 +:1000F000C4000120022001C402C400011F021F012C +:10010000C402C4000131023101C402C40001E10192 +:1001100031023102E101C402C4000126022601C4F9 +:1001200002C4000125022501C402C40001240224E6 +:1001300001C402C4000123022301C402C40001E17E +:100140000134023402E101C402C400012D022D0178 +:10015000C402C40001E10127022702E101C402C474 +:100160000001E10125022502E101C402C400011ED3 +:10017000021E01C402C40001E10130023002E101AB +:10018000C402C40001E1012F022F02E101C402C434 +:10019000000127022701C402C400012E022E01C45F +:1001A00002C40001E10126022602E101C402C400EA +:1001B0000138023801C402C40001E1011E021E021E +:1001C000E101C402C4000130023001C402C40001D4 +:1001D0002F022F01C402C40001E1012D022D02E112 +:1001E00001C402C40001E10121022102E101C402B3 +:1001F000C40001E1011F021F02E101C402C40001A9 +:10020000E1012E022E02E101C402C40001E1013825 +:10021000023802E101C402C40001E1012402240207 +:10022000E101C402C40001E10122022202E101C491 +:1002300002C4000000F0A101840884088A35002B64 +:1002400000297FE100000000001E00140004001DD2 +:100250000000004D001F00070016001B00E0002CEE +:1002600000200015000B001000E2002A0021001AF7 +:100270000017000600E3004A00220005000A0019EA +:1002800000000000005000015400000000000000C9 +:10029000004F000154000000770000000023000D13 +:1002A000001C000E00000000002400090011000FD7 +:1002B0000050004B002500180008003600510028AF +:1002C00000260013001200370052002C00270033D4 +:1002D000000C0038714F004E002D0031003400E555 +:1002E00000C4000000010001000100010001000045 +:1002F000003A00220238002300010001003B0024E4 +:100300000226022400010001003C0038022E0025D4 +:1003100000010001003D002E02270026000100011F +:10032000003E001F022F0231020000010001000107 +:1003300000000001000000010001000100000001B8 +:1003400000000001003F00210230023800000001DF +:100350000040002D021E001F000100010041002F7F +:100360000025022000010001004200300027022188 +:10037000000100010043001E022D002200010001C7 +:1003800000440045003400010001000000010001AC +:100390000001000100010000000100010001000156 +:1003A000000100010001000100F200010001000154 +:1003B000000100F000F1000100F400010001000163 +:1003C00000F3000100F5000100010001000100013F +:1003D0000000000100010001000000010000000118 +:1003E0000001000100000001000000010001000107 +:1003F00000010001000000010001000100010001F6 +:1004000000A9000100010001000100AC00AA00B633 +:1004100000010001000100AB00A800010001000183 +:1004200000010001000100010001000100AE000117 +:1004300000010000000100010001000100010000B6 +:10044000003A0064306D307830010001003B0065F7 +:10045000306E307930010001003C0066306F307A38 +:1004600030010001003D00673070307B3001000139 +:10047000003E00683071307C300000010001000156 +:100480000000000100000001000100010000000167 +:1004900000000001003F00693072307D3000000133 +:1004A0000040006A3073307E300100010041006B73 +:1004B0003074307F300100010042006C30753080B4 +:1004C00030010001004300823076308130010001AC +:1004D000004400450077300100010000001603458C +:1004E00000720067006F0044006F00780020004534 +:1004F000005A00000016034500720067006F0044B8 +:10050000006F007800200045005A00000004030935 +:100510000409026D00040100A0FA090400000103AF +:10052000010100092111010001223F00070581039B +:1005300008000A0904010001030102000921110158 +:100540000001224D000705820308000A0904020089 +:1005500001030000000921110100012236000705F6 +:10056000830308000A0904030001030000000921B5 +:100570001101000122390007058403100001120156 +:10058000100100000008EDFE071301000102000148 +:1005900005010906A101050719E029E71500250154 +:1005A0009508750181020508190129059505750150 +:1005B000910295017503910105071900297715002E +:1005C0002501957875018102C005010980A1018589 +:1005D0000216010026B7001A01002AB7007510950F +:1005E000018100C0050C0901A10185031601002647 +:1005F0009C021A01002A9C02751095018100C00519 +:10060000010902A1010901A1000509190129051526 +:10061000002501950575018102950175038101058C +:1006200001093009311581257F9502750881060978 +:10063000381581257F950175088106050C0A380259 +:100640001581257F950175088106C0C00501090641 +:10065000A101050719E029E7150025019508750195 +:100660008102950175088101050819012905950583 +:10067000750191029501750391010507190029FF84 +:10068000150025FF950675088100C00000000000D8 +:10069000000000000000010204060A0F17202C3A97 +:1006A0004A5D71879DB3C7DAE9F5FCFFFCF5E9DA2D +:1006B000C7B39D87715D4A3A2C20170F0A060402C2 +:1006C00001000000000000000000000011241FBE17 +:1006D000CFEFDAE0DEBFCDBF04B603FE27C08091C6 +:1006E000ED019091EE01A091EF01B091F001873002 +:1006F000904BA740B04BD1F41092ED011092EE0157 +:100700001092EF011092F00114BE84B7877F84BF6E +:100710000FB6F894A895809160008861809360007E +:10072000109260000FBEE0E0FFE3099511E0A0E049 +:10073000B1E0E8E9FAE402C005900D92A433B107F4 +:10074000D9F721E0A4E3B1E001C01D92AD3EB207AC +:10075000E1F70E947C0B0C944A250C940000CF9387 +:10076000DF93EC01623709F4B7C038F56A3609F453 +:100770007DC098F4663609F461C048F4643609F423 +:1007800051C008F055C0662309F441C006C168365F +:1007900009F460C008F458C063C06E3609F484C020 +:1007A00030F46C3609F46EC008F466C077C0603768 +:1007B00009F486C008F47EC089C06A3709F4BCC059 +:1007C00080F4663709F4A0C030F4643709F490C0AF +:1007D00008F488C093C0683709F4A2C008F49AC02E +:1007E000A5C06E3709F4C0C030F46C3709F4B0C04E +:1007F00008F4A8C0B3C0603809F4C2C008F4BAC095 +:10080000613809F4C3C0623809F442C0C6C08A81A5 +:10081000882321F085EE0E94EA11BEC085EE0E9479 +:10082000B212BAC00E94401A8A818111B9C0B5C003 +:100830000E94401A8A818111B6C0AFC00E94401A3E +:100840008A818111B3C0A9C00E94401A8A81811196 +:10085000B0C0A3C00E94401A8A818111ADC09DC062 +:100860000E94401A8A818111AAC097C00E94401A32 +:100870008A818111A7C091C00E94401A8A8181118A +:10088000A4C08BC00E94401A8A818111A1C085C07A +:100890000E94401A8A8181119EC07FC00E94401A26 +:1008A0008A8181119BC079C00E94401A8A8181117E +:1008B00098C073C00E94401A8A81811195C06DC092 +:1008C0000E94401A8A81811192C067C00E94401A1A +:1008D0008A8181118FC061C00E94401A8A81811172 +:1008E0008CC05BC00E94401A8A81811189C055C0AA +:1008F0000E94401A8A81811186C04FC00E94401A0E +:100900008A81811183C049C00E94401A8A81811165 +:1009100080C043C00E94401A8A8181117DC03DC0C1 +:100920000E94401A8A8181117AC037C00E94401A01 +:100930008A81811177C031C00E94401A8A81811159 +:1009400074C02BC00E94401A8A81811171C025C0D9 +:100950000E94401A8A8181116EC01FC00E94401AF5 +:100960008A8181116BC019C00E94401A8A8181114D +:1009700068C013C00E94401A8A81811165C00DC0F1 +:100980000E94401A8A81811162C007C00E94401AE9 +:100990008A8181115FC001C060C020E030E05CC08E +:1009A00026E232E059C029E132E056C02CE032E0C4 +:1009B00053C02FEF31E050C022EF31E04DC025EEA3 +:1009C00031E04AC028ED31E047C02FEC31E044C0AF +:1009D00026EC31E041C029EB31E03EC020EB31E0B4 +:1009E0003BC023EA31E038C02AE931E035C021E9D3 +:1009F00031E032C024E831E02FC027E731E02CC0DD +:100A00002EE631E029C021E631E026C024E531E0C0 +:100A100023C02BE431E020C02EE331E01DC025E3EC +:100A200031E01AC02CE231E017C023E231E014C0FB +:100A30002AE131E011C02DE031E00EC024E031E0C8 +:100A40000BC02BEF30E008C022EF30E005C029EEEC +:100A500030E002C020EE30E0C901DF91CF9108956F +:100A600008956091B1017091B2018091B3019091AC +:100A7000B4010E943A1C56985E9825982D982698A5 +:100A80002E9827982F98813019F0823021F0089500 +:100A9000259A2D9A0895269A2E9A08950C94310538 +:100AA00056985E9825982D9826982E9827982F98D6 +:100AB0008FEF90E0909389008093880090938B0053 +:100AC00080938A0090938D0080938C00259A2D9AB4 +:100AD0002FEF80E792E0215080409040E1F700C086 +:100AE0000000269A2E9A2FEF80E792E02150804056 +:100AF0009040E1F700C00000279A2F9A2FEF80E77F +:100B000092E0215080409040E1F700C0000025981D +:100B10002D982FEF80E792E0215080409040E1F740 +:100B200000C0000026982E982FEF80E792E0215019 +:100B300080409040E1F700C0000027982F98569819 +:100B40005E9825982D9826982E9827982F98089586 +:100B500089EA8093800089E08093810024982C9812 +:100B60003F988AB18F748AB96E98479A8BB1806B1F +:100B70008BB9769A0E9450050C94300580E28093E0 +:100B800000018091340181110EC00E940D0681E0A8 +:100B9000809334012FEF83ED90E32150804090400B +:100BA000E1F700C0000080E40E941306809300017A +:100BB00081112EC00E943D0680930001811128C042 +:100BC0000E943D0680930001811122C08FE30E94A4 +:100BD0003D068093000181111BC00E94350680E410 +:100BE0000E94130680930001811112C08CE00E94C4 +:100BF0003D068093000181110BC00E943D06809349 +:100C00000001811105C08FE30E943D068093000121 +:100C10000E9435068091000108951092B9008AE083 +:100C20008093B800089594EA9093BC009091BC0022 +:100C300097FFFCCF9091B900987F983021F09031C8 +:100C400011F081E008958093BB0084E88093BC009C +:100C50008091BC0087FFFCCF8091B900887F8831EC +:100C600011F0803471F780E0089584E98093BC002E +:100C70008091BC0084FDFCCF08958093BB0084E884 +:100C80008093BC008091BC0087FFFCCF9091B9009D +:100C9000987F81E0983209F480E0089584E8809399 +:100CA000BC008091BC0087FFFCCF8091BB00089501 +:100CB00080910001811115C080E40E941306809389 +:100CC000000181110CC082E10E943D068093000169 +:100CD000811105C08FEF0E943D06809300010E94A4 +:100CE000350684B1807F84B985B1807F85B98AB1AA +:100CF000837F8AB98BB1837F8BB93E9846980895DC +:100D00000E94BE05809300010E94580680B38C703B +:100D100080BB81B3836F81BBE4E4F1E0A6E3B1E083 +:100D200011921D9281E0E235F807D1F70C94A805E5 +:100D30009F92AF92BF92CF92DF92EF92FF920F936A +:100D40001F93CF93DF9380910001882379F08091E6 +:100D500035018F5F80933501811108C00E94BE0567 +:100D600080930001811102C00E94500586E3E82EA5 +:100D700081E0F82E8701C0E0D0E0BB24B39492E07C +:100D8000A92ECC24C394D12CC730D10500F5809175 +:100D90000001811164C080E40E9413068093000169 +:100DA000811112C082E10E943D06809300018111F1 +:100DB0000BC0C6010C2E01C0880F0A94EAF780957B +:100DC0000E943D06809300010E94350648C0CA304B +:100DD000A1F028F4C83059F0C93061F005C0CC301A +:100DE00089F070F0CD3089F0209A289810C0219AAF +:100DF00029980DC0229A2A980AC0239A2B9807C0D6 +:100E0000529A01C0539A5B9802C03E9A4698E0EA13 +:100E1000EA95F1F78FB181708B25799902C032E0A4 +:100E200001C030E0832B7C9902C034E001C030E087 +:100E3000832B7D9902C028E001C020E0822B7E999F +:100E400002C090E101C090E0892B9FB19095991F5D +:100E50009927991F9295990F907E892B0FC08091A9 +:100E6000000181114AC080E40E94130680930001B2 +:100E7000882381F1912C0E943506892DD8019C91FF +:100E8000981719F08C93A09201010E9458062196A0 +:100E90000F5F1F4FCE30D10509F076CF8091010151 +:100EA000882369F1815080930101882339F0EFE9AB +:100EB000FFE03197F1F700C0000021C0E4E4F1E069 +:100EC000D7018D917D018193B4E4EB16B1E0FB066F +:100ED000B9F715C083E10E943D068093000181119E +:100EE000C9CF81E40E941306809300018111C2CF13 +:100EF0000E944E06982E9094BECF80E0BFCF0E94F5 +:100F00004E0581E0DF91CF911F910F91FF90EF90FF +:100F1000DF90CF90BF90AF909F900895E82FF0E0C2 +:100F2000EC5BFE4F8081089508958B3B910580F422 +:100F3000883A910548F5853A9105D8F484309105B1 +:100F400008F0B2C0019709F06EC081E090E008950A +:100F5000803E910508F467C0883E910508F4A4C05E +:100F60009C01205F31092031310508F05CC090659B +:100F70000895853A910509F459C0863A910509F01A +:100F800058C082E890E40895883A910509F454C065 +:100F9000893A910509F453C08A3A910509F452C07F +:100FA0008B3A910509F451C08C3A910509F450C06F +:100FB0008D3A910509F44FC0803B910509F44EC06C +:100FC0008E3A910509F44DC08F3A910509F44CC051 +:100FD000813B910509F44BC0823B910509F44AC05D +:100FE000833B910509F449C0843B910509F448C04D +:100FF000853B910509F447C0863B910509F446C03D +:10100000873B910509F445C0883B910509F444C02C +:10101000893B910509F443C08A3B910509F442C01C +:1010200080E094E4089580E090E0089581E890E401 +:10103000089583E890E4089582EE94E4089589EE9B +:1010400094E408958AEE94E4089585EB94E4089579 +:1010500086EB94E4089587EB94E408958CEC94E493 +:1010600008958DEC94E4089583E895E408958AE862 +:1010700095E4089582E995E4089584E995E4089556 +:1010800081E296E4089583E296E4089584E296E48A +:10109000089585E296E4089586E296E4089587E24D +:1010A00096E408958AE296E40895089524E5829FDF +:1010B000C0011124FC0126E0729FE00DF11D1124F6 +:1010C000E60FF11DEE0FFF1FE35CFD4F859194913C +:1010D0000895880F991FFC01ED54FF4F859194915D +:1010E0000895880F991FFC01ED5CFD4F8591949147 +:1010F000089524E5829FC0011124FC0146E0749FFD +:10110000E00DF11D1124E60FF11DEE0FFF1FE35C52 +:10111000FD4F859194919C013A9521154FE134073B +:1011200008F425C13F512115304120F49F700E94E1 +:10113000710808959C0130532115304118F4992706 +:10114000906C0895811520E5920769F40E942B1692 +:101150004FEF84E39CE0415080409040E1F700C0B5 +:1011600000000C94321D813020E5920731F480910B +:10117000CC0181608093CC0108959C0130552115EC +:10118000304108F05CC0292F33272F7033272130DE +:101190003105E9F4AC0164E0440F551F6A95E1F7AD +:1011A00044275370BC016370772702C0220F331F9E +:1011B0006A95E2F73C68242B352B73E0880F991F62 +:1011C0007A95E1F780769927822B932B0895223028 +:1011D000310529F4982F8827816F906A089523306C +:1011E0003105A1F4AC0133E0440F551F3A95E1F706 +:1011F000407E57708370992721E030E002C0220FB3 +:10120000331F8A95E2F7C9019C6816C02430310566 +:1012100031F5AC0123E0440F551F2A95E1F7407EDC +:1012200057708370992721E030E002C0220F331FEE +:101230008A95E2F7C9019A68842B952B08959C0141 +:1012400030572115304118F49F70906208959C0129 +:1012500030582115304118F49F70906A0895803EEF +:101260009105E0F4803C910558F58133910509F42E +:101270006FC048F48932910509F463C08A32910540 +:1012800009F46DC072C089339105E9F08238910587 +:10129000D1F08533910509F44DC067C0833E9105B7 +:1012A00081F138F4803E9105B9F0823E9105D9F084 +:1012B0005CC0863E910561F1873E9105A1F155C064 +:1012C0000E94690808952091DE0120FD02C021FFDF +:1012D0004CC080EE90E049C08091DE0180FFF9CFE4 +:1012E00089E390E042C08091DE0182FF0EC08091D0 +:1012F000DE0184FF03C080E090E037C083EE90E021 +:1013000034C08091DE0182FFF2CF82EE90E02DC0EA +:101310008091DE0183FF0BC08091DE0184FDEBCF65 +:1013200087EE90E022C08091DE0183FFF5CF86EE4C +:1013300090E01BC08091DE0185FF07C089E290E04C +:1013400014C08091DE0185FFF9CF85E390E00DC0E8 +:101350008091DE0186FF07C08AE290E006C080919E +:10136000DE0186FFF9CF81E390E00E9495070895A2 +:101370000895809162010895CF93DF9300D01F926A +:10138000CDB7DEB79C018091E401843019F593E07C +:1013900099833B832A839093E9008FEF9091E80033 +:1013A000815095FD06C095ED9A95F1F700008111E9 +:1013B000F5CF8091E80085FF0DC040E050E063E08C +:1013C00070E0CE0101960E94290C8091E8008E7792 +:1013D0008093E8000F900F900F90DF91CF910895C8 +:1013E000CF93DF9300D01F92CDB7DEB72091E401F9 +:1013F000243021F522E029839B838A8383E0809334 +:10140000E9008FEF9091E800815095FD06C095EDC1 +:101410009A95F1F700008111F5CF8091E80085FFE2 +:101420000DC040E050E063E070E0CE0101960E9404 +:10143000290C8091E8008E778093E8000F900F9040 +:101440000F90DF91CF9108959C018091E401843049 +:10145000F9F482E08093E9009FEF8091E8009150D9 +:1014600085FD06C085ED8A95F1F700009111F5CF55 +:101470008091E80085FF0CC040E050E065E070E03E +:10148000C9010E94290C8091E8008E778093E800C2 +:101490000895CF93DF93EC018091E401843009F04B +:1014A00046C090910C019923D9F090910D01992398 +:1014B000B9F08093E9008FEF9091E800815095FD9D +:1014C00006C095E19A95F1F700008111F5CF809162 +:1014D000E80085FF2CC040E050E060E170E017C0FC +:1014E00081E08093E9008FEF9091E800815095FDB5 +:1014F00006C095ED9A95F1F700008111F5CF809126 +:10150000E80085FF14C040E050E068E070E0CE01E4 +:101510000E94290C8091E8008E778093E80080E19A +:10152000FE01A2E5B1E001900D928A95E1F7DF910D +:10153000CF9108958091E301811109C00E94BA0DF5 +:101540000E94170E8091E20084608093E20008956B +:101550001092E301089508950C9468230E94C81C1A +:101560000E946E230E94C2100C94B80942E061EC04 +:1015700081E00E94330D42E061EC82E00E94330D75 +:1015800042E061EC83E00E94330D42E161EC84E0D3 +:101590000C94330D8091E601833009F455C030F48A +:1015A000813071F0823009F48EC008958A3009F4D8 +:1015B0007AC08B3009F460C0893009F09CC020C02B +:1015C0008091E501813A09F096C08091E800877F1B +:1015D0008093E8008091E9019091EA01892B21F440 +:1015E00060E182E591E003C060E080E090E070E0BF +:1015F0000E94740C8091E8008B778093E800089536 +:101600008091E501813209F076C08091E9019091E5 +:10161000EA01009719F0039709F06DC08091E80086 +:10162000877F8093E8008091E80082FD05C080916B +:10163000E4018111F8CF5FC08091F10080936201D5 +:101640008091E8008B7753C08091E501813A09F0E1 +:1016500052C08091E9019091EA01892B09F04BC0B9 +:101660008091E800877F8093E8008091E80080FF08 +:10167000FCCF80910C0136C08091E5018132D9F513 +:101680008091E9019091EA01892BA9F58091E80008 +:10169000877F8093E8000E94680D8091E701809326 +:1016A0000C010C942B168091E501813221F580917B +:1016B000E800877F8093E8000E94680D8091E80130 +:1016C0008093630108958091E501813AA1F48091AE +:1016D000E800877F8093E8008091E80080FFFCCFDE +:1016E000809163018093F1008091E8008E77809370 +:1016F000E8000C94680D089584B7877F84BF0FB607 +:10170000F894A895809160008861809360001092A1 +:1017100060000FBE90E080E80FB6F89480936100FF +:10172000909361000FBE0E9411110E94BA0D0E9499 +:10173000170E8091E20084608093E20078940E940A +:10174000A2100E94131182E091E00E94BD100E943D +:1017500056238091E401853069F40E948A1C8091AF +:10176000E2018823B1F30E94B41C882391F30E9404 +:10177000130CEFCF0E941911ECCF292F3327233000 +:101780003105C9F060F42130310581F02230310596 +:1017900009F041C08DE690E021E135E040C0213202 +:1017A0003105E1F02232310531F135C082E190E0BE +:1017B0002EE735E034C099278130910549F028F0B3 +:1017C000029749F5EDEDF4E005C0EDE0F5E002C06B +:1017D000E5EFF4E0849190E09F0121C06430D8F4FB +:1017E000E62FF0E0EE0FFF1FEE5DFE4F208131810E +:1017F00089E090E014C0643070F470E0FB01EE0FFB +:10180000FF1FE65EFE4F20813181FB01EA5EFE4F45 +:10181000808190E004C080E090E020E030E0FA01B8 +:1018200031832083089580E189BD82E189BD09B4B7 +:1018300000FEFDCF8091D8008F7D8093D8008091ED +:10184000E00082608093E0008091E00081FDFCCFA9 +:101850000895CF92DF92EF92FF920F931F93CF9351 +:10186000DF93EC018B016A010E94870D811133C067 +:10187000C114D10439F0F60180819181081B190B44 +:10188000C80FD91FE12CF12C0115110519F1809118 +:10189000E80085FD16C08091E8008E778093E8000F +:1018A000C114D10449F0F60180819181E80EF91E3E +:1018B000F182E08285E00FC00E94870D882321F32A +:1018C0000AC089918093F10001501109FFEFEF1ACE +:1018D000FF0ADACF80E0DF91CF911F910F91FF9047 +:1018E000EF90DF90CF9008952091EB013091EC01C3 +:1018F0002617370748F06115710539F42091E80083 +:101900002E772093E80001C0B901FC0120E06115A9 +:10191000710579F18091E4018823F1F18530F1F1CD +:101920008091E80083FD3CC08091E80082FD2EC0DC +:101930008091E80080FFEBCF2091F3008091F200CE +:1019400090E0922B6115710551F08830910538F4C3 +:1019500021912093F100615071090196F3CF21E0AC +:10196000089709F020E08091E8008E778093E800E6 +:10197000CECF2111CFCF0AC08091E401882361F03E +:10198000853061F08091E80083FD0AC08091E80015 +:1019900082FFF2CF80E0089582E0089583E0089509 +:1019A00081E008952091EB013091EC012617370773 +:1019B00048F06115710539F42091E8002E772093E5 +:1019C000E80001C0B901FC0120E06115710591F149 +:1019D0008091E401882309F440C0853009F43FC0B8 +:1019E0008091E80083FD3DC08091E80082FD2FC01A +:1019F0008091E80080FFE9CF2091F3008091F20010 +:101A000090E0922B6115710559F08830910540F4F2 +:101A100024912093F1003196615071090196F2CF23 +:101A200021E0089709F020E08091E8008E7780930C +:101A3000E800CBCF2111CCCF0AC08091E4018823EC +:101A400061F0853061F08091E80083FD0AC08091EB +:101A5000E80082FFF2CF80E0089582E0089583E0FD +:101A6000089581E00895982F973068F59093E900E4 +:101A7000981739F07091EC002091ED005091F00032 +:101A800003C0242F762F50E021FD02C09F5FECCFD2 +:101A90003091EB003E7F3093EB003091ED003D7FC5 +:101AA0003093ED003091EB0031603093EB00709398 +:101AB000EC002093ED005093F0002091EE0027FD04 +:101AC000E5CF80E008958F708093E90081E008956C +:101AD0008091E50187FF11C08091E80082FD05C07B +:101AE0008091E4018111F8CF11C08091E8008B77DB +:101AF0000BC08091E401882349F08091E80080FFC9 +:101B0000F8CF8091E8008E778093E80008952091C7 +:101B1000E4003091E50095E64091EC00842F81705F +:101B200040FF23C08091E80080FD1DC08091E4014A +:101B3000882399F0853099F08091EB0085FD11C0E4 +:101B40004091E4005091E5002417350729F39150A6 +:101B500011F09A01E1CF84E0089582E0089583E0D6 +:101B6000089581E0089580E008954091E80042FFE3 +:101B7000DDCF08950E94280E0E94300EE0EEF0E0C6 +:101B8000808181608083E8EDF0E080818F778083C1 +:101B900019BCA7EDB0E08C918E7F8C9380818F7EF5 +:101BA00080831092E30108950F931F93CF93DF93E7 +:101BB0000E94280E0E94300EC8EDD0E088818F77F9 +:101BC000888388818068888388818F7D888319BC19 +:101BD0001092E4011092E0011092E2011092E101F2 +:101BE00000EE10E0F80180818B7F80838881816026 +:101BF000888342E060E080E00E94330DE1EEF0E097 +:101C000080818E7F8083E2EEF0E08081816080833E +:101C1000808188608083F80180818E7F80838881C5 +:101C200080618883DF91CF911F910F910895E8ED36 +:101C3000F0E080818F7E8083E7EDF0E0808181603D +:101C4000808384E082BF81E08093E3010C94D40D13 +:101C5000E8EDF0E080818E7F80831092E2000895AD +:101C60001092DA001092E10008951F920F920FB6C1 +:101C70000F9211242F933F934F935F936F937F9312 +:101C80008F939F93AF93BF93EF93FF938091E10066 +:101C900082FF0BC08091E20082FF07C08091E100CB +:101CA0008B7F8093E1000E94A1108091DA0080FF79 +:101CB0001FC08091D80080FF1BC08091DA008E7F0A +:101CC0008093DA008091D90080FF0DC080E189BD4A +:101CD00082E189BD09B400FEFDCF81E08093E4017B +:101CE0000E949A0A05C019BC1092E4010E94A80A39 +:101CF0008091E10080FF19C08091E20080FF15C053 +:101D00008091E2008E7F8093E2008091E20080610A +:101D10008093E2008091D80080628093D80019BC43 +:101D200085E08093E4010E94AC0A8091E10084FF89 +:101D300030C08091E20084FF2CC080E189BD82E147 +:101D400089BD09B400FEFDCF8091D8008F7D8093BE +:101D5000D8008091E1008F7E8093E1008091E200C5 +:101D60008F7E8093E2008091E20081608093E200A8 +:101D70008091E001882311F084E007C08091E300A6 +:101D800087FD02C081E001C083E08093E4010E94EE +:101D9000AE0A8091E10083FF29C08091E20083FFB9 +:101DA00025C08091E100877F8093E10082E08093ED +:101DB000E4011092E0018091E1008E7F8093E100C8 +:101DC0008091E2008E7F8093E2008091E20080614A +:101DD0008093E20042E060E080E00E94330D809159 +:101DE000F00088608093F0000E94AB0AFF91EF91B1 +:101DF000BF91AF919F918F917F916F915F914F9123 +:101E00003F912F910F900FBE0F901F9018951F922A +:101E10000F920FB60F9211242F933F934F935F931E +:101E20006F937F938F939F93AF93BF93CF93DF93E2 +:101E3000EF93FF93C091E900CF708091EC00D82F11 +:101E4000D17080FDD0E81092E9008091F000877F8A +:101E50008093F00078940E944B0F1092E9008091DB +:101E6000F00088608093F000CD2BCF70C093E90024 +:101E7000FF91EF91DF91CF91BF91AF919F918F91A2 +:101E80007F916F915F914F913F912F910F900FBE76 +:101E90000F901F9018951F93CF93DF93CDB7DEB7A8 +:101EA000AA970FB6F894DEBF0FBECDBFE5EEF1E006 +:101EB0008091F100819321E0ED3EF207C9F70E9485 +:101EC000CA0A8091E80083FF24C18091E5019091C6 +:101ED000E601492F50E04A30510508F01AC1FA01D5 +:101EE000EA5AFF4F0C94FF24803881F0823809F0C1 +:101EF00010C18091E9018F708093E9008091EB001F +:101F000085FB882780F91092E90006C08091E101E5 +:101F10009091E201911182609091E800977F9093F7 +:101F2000E8008093F1001092F100C8C0282F2D7FA7 +:101F300009F0EFC0882319F0823061F0EAC0809187 +:101F4000E701813009F0E5C0933009F080E080932B +:101F5000E2012BC08091E701811127C08091E90146 +:101F60008F7009F4D6C08093E9002091EB0020FF28 +:101F70001CC0933021F48091EB00806214C09091DA +:101F8000EB0090619093EB0021E030E0A90102C0EA +:101F9000440F551F8A95E2F74093EA001092EA0039 +:101FA0008091EB0088608093EB001092E9008091B3 +:101FB000E800877F86C08111ACC01091E7011F77D0 +:101FC0008091E3008078812B8093E3008091E8008A +:101FD000877F8093E8000E94680D8091E80080FF71 +:101FE000FCCF8091E30080688093E300111102C070 +:101FF00082E001C083E08093E4018BC0805882308E +:1020000008F087C08091E7019091E8018C3D53E092 +:10201000950779F583E08A838AE289834FB7F8943C +:10202000DE01139620E03EE051E2E32FF0E0509312 +:102030005700E49120FF03C0E295EF703F5FEF701F +:102040008E2F90E0EA3010F0C79601C0C0968D93B5 +:102050009D932F5F243149F74FBF8091E800877F20 +:102060008093E8006AE270E0CE0101960E94740C51 +:1020700014C0AE014F5F5F4F6091E9010E94BD0B3C +:10208000BC01892B09F445C09091E800977F90939B +:10209000E80089819A810E94D20C8091E8008B77B8 +:1020A0008093E80036C08038A1F58091E800877FF2 +:1020B0008093E8008091E0018093F1008091E80036 +:1020C0008E778093E8000E94680D23C0811121C0A3 +:1020D0008091E7019091E80199270297D4F48091CB +:1020E000E800877F8093E8008091E7018093E0011A +:1020F0000E94680D8091E001811106C08091E3008B +:1021000087FD02C081E001C084E08093E4010E9469 +:10211000B60A8091E80083FF0AC08091E800877FBB +:102120008093E8008091EB0080628093EB00AA9698 +:102130000FB6F894DEBF0FBECDBFDF91CF911F91D8 +:1021400008950895CF938091E4018823A1F0C09170 +:10215000E900CF709091EC00892F817090FD80E8AC +:10216000C82B1092E9008091E80083FD0E944B0F7C +:10217000CF70C093E900CF91089590936901809347 +:1021800068010895E0916801F0916901309721F0AC +:102190000190F081E02D099480E00895E0916801BC +:1021A000F0916901309721F00280F381E02D0994CC +:1021B0000895E0916801F0916901309721F0048061 +:1021C000F581E02D09940895209166013091670111 +:1021D0002817390771F09093670180936601E091A9 +:1021E0006801F0916901309721F00680F781E02DB8 +:1021F00009940895209164013091650128173907E9 +:1022000071F09093650180936401E0916801F09111 +:102210006901309721F00084F185E02D099408953B +:1022200008950C9410110E94CE1C0E9480060C94FC +:10223000941DCF92DF92EF92FF920F931F93CF9353 +:10224000DF93CDB7DEB72B970FB6F894DEBF0FBE86 +:10225000CDBF0E9498068BE6C82E81E0D82E00E004 +:1022600010E0E02E802F0E948E07F60141916F0151 +:10227000F82EF426B1F40F5F1F4F0E30110589F7C9 +:102280008FEF89838A831B820E94D71C8160782FFD +:102290009D838C8349815A816B818D810E94BC1101 +:1022A00040C09091CC0191FF04C08B870E9494079D +:1022B0008B8520E030E04F2D50E0922FBA01022EA6 +:1022C00002C0759567950A94E2F760FF24C02E83DB +:1022D000EF8221E030E0690102C0CC0CDD1C9A9550 +:1022E000E2F790E08C219D21892B09F420E02887DA +:1022F0000E94D71C8160782F9A8789874E815F81E1 +:1023000068858A850E94BC11F801E559FE4F8081DD +:10231000C826C08206C02F5F3F4F2630310569F6C0 +:10232000AACF0E947B200E94C21090916A01891757 +:10233000A1F00E94C21080936A012B960FB6F89408 +:10234000DEBF0FBECDBFDF91CF911F910F91FF90E8 +:10235000EF90DF90CF900C94B8092B960FB6F894BD +:10236000DEBF0FBECDBFDF91CF911F910F91FF90C8 +:10237000EF90DF90CF900895CF93DF93CDB7DEB786 +:102380002B970FB6F894DEBF0FBECDBF4F83588793 +:1023900069877A878B87DE01119686E0FD011192AD +:1023A0008A95E9F785E0FE01379601900D928A95AE +:1023B000E1F749815A816B817C818D819E810E94E8 +:1023C000BF182B960FB6F894DEBF0FBECDBFDF91BE +:1023D000CF910895CF93C82F882309F4C1C08238C4 +:1023E00059F40E94C21081FDBBC089E30E945C1BAE +:1023F0000E94141C89E30CC0833879F40E94C21037 +:1024000080FDAEC083E50E945C1B0E94141C83E526 +:102410000E949B1BCF910C94141C843859F40E9489 +:10242000C21082FD9DC087E40E945C1B0E94141CA8 +:1024300087E4EECF8CEF8C0F813A48F48C2F0E940A +:10244000BB2281118DC08C2F0E945C1BE3CF80E2E8 +:102450008C0F883048F4C77081E001C0880FCA959E +:10246000EAF70E94DD1BD6CF8BE58C0F833078F422 +:10247000C53A29F0C63A31F083E890E005C081E81A +:1024800090E002C082E890E0CF910C94E41088E5DF +:102490008C0F833108F064C0C83A39F1C93A41F170 +:1024A000CA3A49F1CB3A51F1CC3A59F1CD3A61F1FE +:1024B000C03B69F1CE3A71F1CF3A79F1C13B81F17C +:1024C000C23B89F1C33B91F1C43B99F1C53BA1F1FA +:1024D000C63BA9F1C73BB1F1C83BB9F1C93BC1F15A +:1024E000CA3BC9F180E090E038C082EE90E035C090 +:1024F00089EE90E032C08AEE90E02FC085EB90E04C +:102500002CC086EB90E029C087EB90E026C08CECD5 +:1025100090E023C08DEC90E020C083E891E01DC0E6 +:102520008AE891E01AC082E991E017C084E991E05D +:1025300014C081E292E011C083E292E00EC084E216 +:1025400092E00BC085E292E008C086E292E005C00E +:1025500087E292E002C08AE292E0CF910C94FA10F6 +:10256000CF910895882309F44BC0823859F40E9412 +:10257000C21081FF45C089E30E945C1B0E94141CAD +:1025800089E30CC0833871F40E94C21080FF38C008 +:1025900083E50E945C1B0E94141C83E50E949B1B28 +:1025A0000C94141C843859F40E94C21082FF28C075 +:1025B00087E40E945C1B0E94141C87E4EFCF9CEF11 +:1025C000980F913A58F390E2980F983050F4877032 +:1025D00091E001C0990F8A95EAF7892F0E94E31BC9 +:1025E000DFCF9BE5980F933020F480E090E00C94CF +:1025F000E410885A833120F480E090E00C94FA10C3 +:102600000895882321F00E94DD1B0C94141C08956A +:10261000882321F00E94E31B0C94141C0895BF92A0 +:10262000CF92DF92EF92FF920F931F93CF93DF939E +:1026300000D000D000D0CDB7DEB77C0185E0F70137 +:10264000DE01119601900D928A95E1F7F7018381E1 +:102650009481892B09F4DDC2908181818F3F19F427 +:102660009F3F09F4D6C2F7010281258122952F7080 +:1026700099838A8389819A812E830E941B1B182F3C +:10268000B92E0E941A1B0E94E119EB2DE295EF7002 +:102690004E2F50E0FA01E05AFF4F2E810C94FF2498 +:1026A0008B2D807F9B2D9F70F92E882319F0F2943B +:1026B00080EFF822002349F0FF2009F457C28F2D44 +:1026C0000E94ED1B0E94141C51C2812F0E94B21265 +:1026D000FF2009F49EC28F2D0E94F31B26960FB691 +:1026E000F894DEBF0FBECDBFDF91CF911F910F9148 +:1026F000FF90EF90DF90CF90BF900C94141C3B2D77 +:10270000307F8B2D8F70303211F08295807F1123B6 +:1027100019F0113021F12CC00023B9F0222309F463 +:1027200090C1213009F08DC126960FB6F894DEBF16 +:102730000FBECDBFDF91CF911F910F91FF90EF9012 +:10274000DF90CF90BF900C94FD1B222319F0213015 +:1027500009F45FC28E830E94001C8E8186C1002313 +:1027600021F0223008F055C26CC1211152C27DC146 +:10277000002321F0222309F464C1F8C1222309F4C3 +:1027800074C109C28B2D86958695837019F08130AE +:10279000D1F03FC2002321F0812F9B2D937002C006 +:1027A00080E090E026960FB6F894DEBF0FBECDBF56 +:1027B000DF91CF911F910F91FF90EF90DF90CF901D +:1027C000BF900C94E410002321F0812F9B2D937077 +:1027D00002C080E090E026960FB6F894DEBF0FBEF0 +:1027E000CDBFDF91CF911F910F91FF90EF90DF90C0 +:1027F000CF90BF900C94FA10812F002319F00E9403 +:10280000831F02C00E94EB1F26960FB6F894DEBF0E +:102810000FBECDBFDF91CF911F910F91FF90EF9031 +:10282000DF90CF90BF900C9470208B2D837009F0B7 +:1028300075C00111EEC1812F829586958770880F32 +:10284000880F912F9F70C92ED12CE12CF12C082ECE +:1028500004C0CC0CDD1CEE1CFF1C0A94D2F714FF44 +:1028600012C00FE010E020E030E004C0000F111FA4 +:10287000221F331F8A95D2F7C901B8016095709560 +:102880008095909503C060E070E0CB014B2D46959C +:10289000469543704230C1F060F56C297D298E2940 +:1028A0009F29413051F126960FB6F894DEBF0FBE36 +:1028B000CDBFDF91CF911F910F91FF90EF90DF90EF +:1028C000CF90BF900C94081A6C297D298E299F29DE +:1028D00026960FB6F894DEBF0FBECDBFDF91CF9125 +:1028E0001F910F91FF90EF90DF90CF90BF900C94CD +:1028F000241A0E94081AC701B60126960FB6F8944A +:10290000DEBF0FBECDBFDF91CF911F910F91FF9022 +:10291000EF90DF90CF90BF900C94EC19002319F04A +:102920008B2D817001C08695882309F472C1812F97 +:10293000829586958770880F880F912F9F70C92E7A +:10294000D12CE12CF12C082E04C0CC0CDD1CEE1C8B +:10295000FF1C0A94D2F714FF12C00FE010E020E031 +:1029600030E004C0000F111F221F331F8A95D2F7D9 +:10297000C901B801609570958095909503C060E09D +:1029800070E0CB014B2D4695469543704230C1F027 +:1029900060F56C297D298E299F29413051F12696B9 +:1029A0000FB6F894DEBF0FBECDBFDF91CF911F9160 +:1029B0000F91FF90EF90DF90CF90BF900C94E21AB0 +:1029C0006C297D298E299F2926960FB6F894DEBFA3 +:1029D0000FBECDBFDF91CF911F910F91FF90EF9070 +:1029E000DF90CF90BF900C94FE1A0E94E21AC701AC +:1029F000B60126960FB6F894DEBF0FBECDBFDF91AD +:102A0000CF911F910F91FF90EF90DF90CF90BF90EB +:102A10000C94C61A103FD1F118F4103E50F4A1C026 +:102A2000123F09F463C008F44CC0133F09F473C0AB +:102A300098C01F708B2D8F710023A1F00E945F1A28 +:102A4000812F26960FB6F894DEBF0FBECDBFDF9163 +:102A5000CF911F910F91FF90EF90DF90CF90BF909B +:102A60000C9401130E94801A812F26960FB6F894B9 +:102A7000DEBF0FBECDBFDF91CF911F910F91FF90B1 +:102A8000EF90DF90CF90BF900C9408130023A9F033 +:102A90002111BFC08B2D8F7126960FB6F894DEBF23 +:102AA0000FBECDBFDF91CF911F910F91FF90EF909F +:102AB000DF90CF90BF900C94A51A223008F0A9C0E7 +:102AC000E9CF0023A9F08B2D8F7126960FB6F894CD +:102AD000DEBF0FBECDBFDF91CF911F910F91FF9051 +:102AE000EF90DF90CF90BF900C945F1A002359F3C2 +:102AF0008B2D8F7126960FB6F894DEBF0FBECDBF1B +:102B0000DF91CF911F910F91FF90EF90DF90CF90C9 +:102B1000BF900C94801A002399F08B2D8F7126960C +:102B20000FB6F894DEBF0FBECDBFDF91CF911F91DE +:102B30000F91FF90EF90DF90CF90BF900C944A1AC6 +:102B400026960FB6F894DEBF0FBECDBFDF91CF91B2 +:102B50001F910F91FF90EF90DF90CF90BF900C945A +:102B6000401A0023A9F0222309F4ADCF812F269625 +:102B70000FB6F894DEBF0FBECDBFDF91CF911F918E +:102B80000F91FF90EF90DF90CF90BF900C94EA11DF +:102B9000222309F4ADCF812F26960FB6F894DEBF1D +:102BA0000FBECDBFDF91CF911F910F91FF90EF909E +:102BB000DF90CF90BF900C94B2124B2D4F70612FCD +:102BC000C7010E94AF0326960FB6F894DEBF0FBE72 +:102BD000CDBFDF91CF911F910F91FF90EF90DF90CC +:102BE000CF90BF900C9464194B2D4F70612FC7018B +:102BF00026960FB6F894DEBF0FBECDBFDF91CF9102 +:102C00001F910F91FF90EF90DF90CF90BF900C94A9 +:102C1000550826960FB6F894DEBF0FBECDBFDF91E4 +:102C2000CF911F910F91FF90EF90DF90CF90BF90C9 +:102C300008950E94FA1B0E94CF1B0E94141C0E9440 +:102C400020210E94702080E090E00E94E41080E04B +:102C500090E00C94FA100E94EA1B0C9419160E9442 +:102C60001B1B292F22952F702C3030F42A3048F46A +:102C70002250223078F405C02C3041F02F3031F052 +:102C800009C0803E48F0803F29F406C093FB8827A6 +:102C900080F9089580E0089581E00895CF93DF934F +:102CA00000D000D01F92CDB7DEB70F900F900F90DD +:102CB0000F900F90DF91CF910895CF93DF9300D0C5 +:102CC00000D000D0CDB7DEB726960FB6F894DEBFA1 +:102CD0000FBECDBFDF91CF9108951F93CF93DF93A8 +:102CE000C091790116E080917A01C81799F0D0E07F +:102CF0001C9FF0011D9FF00D1124E558FE4F4081EF +:102D0000518162817381848195810E945D16219633 +:102D1000C770E9CFDF91CF911F9108954091AB012A +:102D20005091AC016091AD017091AE018091AF0105 +:102D30009091B0010C945D168091B00182958F70D6 +:102D400009F054C08091AD01882309F44FC08091EF +:102D50007901A0917A014091AE015091AF0160914B +:102D6000AB017091AC01B6E08A1709F43FC090E066 +:102D700041155105C1F17F3F11F46F3FA1F1B89F9B +:102D8000F001B99FF00D1124E558FE4F2181271362 +:102D90002AC02081261327C02281211124C023812B +:102DA00034812417350710F421503109241B350BC9 +:102DB000283C3105C0F42091B0012F702061209390 +:102DC000B00126E0289FF001299FF00D1124E05862 +:102DD000FE4F80818F70806180838BEA91E00E943A +:102DE0000F130C946D1601968770BECF0895CF9285 +:102DF000DF92EF92FF920F931F93CF93DF93CDB7A4 +:102E0000DEB762970FB6F894DEBF0FBECDBF8C0160 +:102E100085E0F801DE011D9601900D928A95E1F79B +:102E2000D8014C9111965C91119712966C918091FA +:102E3000AE019091AF01009709F475C13091AB01DB +:102E40007091AC017F3F19F43F3F09F46CC1F80168 +:102E5000C380D480E090AD01EE2009F4BEC0209183 +:102E6000B001C816D90628F0D601A81BB90BCD01B0 +:102E700004C0809590958C0D9D1DFF24F394883C93 +:102E8000910578F0F12C207F09F0C4C07C2DD98AFF +:102E9000C88A89890E944E168BEA91E00E940F131E +:102EA000AFC0822F807F09F045C0571313C0431372 +:102EB00011C061110FC02F7020612093B0010E94DA +:102EC0008E168BEA91E00E940F138091B001F801F9 +:102ED00085832EC0CD2819F15F3F11F44F3FF9F0E3 +:102EE000F62E61111CC08091790120917A0136E0A3 +:102EF000821709F45BC090E0389FF001399FF00D14 +:102F00001124E558FE4F7181571306C07081471395 +:102F100003C07281711103C001968770E9CFF62E4C +:102F2000662309F41CC18091B00181608093B001D7 +:102F3000F12C15C1571309C0431307C0611105C017 +:102F40008091B001F8018583C8C04D875E878D856B +:102F50009E856A8B0E942F166A898823D1F1662389 +:102F6000C1F12091B001822F82958F7090E002977D +:102F700074F08091AB019091AC0198878F83198692 +:102F8000DB86CA862C87CE0107960E940F1386E047 +:102F9000F801ABEAB1E001900D928A95E1F70E9449 +:102FA0009C160E948E16FF24F394D9C04D875E872D +:102FB0008D859E850E941B1B292F22952F70223004 +:102FC00008F0C1C09F7009F0BBC0805E883008F473 +:102FD000C6C0C8010E940F13E6CFC816D90608F470 +:102FE00053C0F601E81BF90BCF01883C910508F4AA +:102FF00050C0F12C7C2DD98AC88A89890E944E162E +:10300000EBEAF1E086E0DF011D928A95E9F70E9484 +:103010008E16A5C0571314C0431312C0611110C0FF +:103020008091B001F8018583C8010E940F1386E0EA +:10303000EBEAF1E0DF011D928A95E9F7FE2C8FC0E3 +:103040004D875E878D859E856A8B0E942F166A89C3 +:10305000882309F4BECF662309F4BBCF2091B001C9 +:10306000822F82958F7090E002970CF490CF809120 +:10307000AB019091AC019A8389831B82DD82CC8263 +:103080002E83CE01019681CF809590958C0D9D1D4C +:10309000ACCFF62E662309F49CCF571333C04313ED +:1030A00031C02091B00120FD24C0822F82958F7005 +:1030B000482F50E041155105E1F0D80115962C93A9 +:1030C00015974F30510549F08F5F982F9295907F5B +:1030D000822F8F70892B15968C93C8010E940F1335 +:1030E00086E0F801ABEAB1E001900D928A95E1F734 +:1030F0008ECF86E0F801ABEAB1E001900D928A959F +:10310000E1F72DC04D875E878D859E850E942F1625 +:1031100081113DCF8091B00181608093B001C801E1 +:103120000E940F131CC0662309F453CF4D875E879E +:103130008D859E850E942F16882309F44ACF27CFBC +:10314000811143CF0CC0243008F043CF9F7009F4A5 +:103150003CCFD80115969C91907F09F036CF8F2DEA +:1031600062960FB6F894DEBF0FBECDBFDF91CF9150 +:103170001F910F91FF90EF90DF90CF9008951F93D4 +:10318000CF93DF93CDB7DEB72C970FB6F894DEBFA1 +:103190000FBECDBF4F83588769877A878B879C87FF +:1031A000CE0107960E94F716882371F08A859B85C9 +:1031B000892B09F441C088858F3F09F065C08F8154 +:1031C0008F3F09F061C038C086E0FE013796DE010E +:1031D000119601900D928A95E1F76A857B856115BC +:1031E000710551F1FF81E885EF3F11F4FF3F21F1B7 +:1031F00020917A0130E0C9010196877099274091AA +:10320000790150E08417950709F447C0F983EA83F0 +:103210007D836C8396E0929FD001939FB00D112423 +:10322000A558BE4FFE01319601900D929A95E1F797 +:1032300080937A010E946D1616E080917901909139 +:103240007A018917B9F1189FC001112485589E4F42 +:103250000E94F716882371F1E09179011E9FF00119 +:103260001124E558FE4F4081518162817381848130 +:1032700095810E945D168091790190E0019687709A +:10328000992780937901D9CF4F81588569857A85AF +:103290008B859C850E945D16CFCF0E942B161092C5 +:1032A0007A0110927901EBEAF1E086E0DF011D92EC +:1032B0008A95E9F72C960FB6F894DEBF0FBECDBF06 +:1032C000DF91CF911F910895EF92FF920F931F937B +:1032D000CF93DF938C01892B09F46CC0F12CEE2481 +:1032E000E394E8012196F8018491843740F4843016 +:1032F00008F051C0813081F0823019F15BC0853710 +:1033000009F444C0A8F19CE7980F903708F052C028 +:103310008F770E94B21241C00E5F1F4FFE01849151 +:1033200090E2980F983050F48770FE2D01C0FF0F87 +:103330008A95EAF78F2F0E94ED1B14C00E94EA11B4 +:103340002DC00E5F1F4FFE01849190E2980F9830C0 +:1033500060F48770FE2D01C0FF0F8A95EAF78F2F6A +:103360000E94F31B0E94141C19C00E94B21216C0C6 +:103370000E5F1F4FFE01C491CC2381F08FE99FE0C7 +:103380000197F1F700C00000C150F6CF0E5F1F4F4C +:10339000FE01F49003C00E94EA118E018F2D882354 +:1033A00009F49FCFEFE9FFE03197F1F700C000008B +:1033B0008150F5CFDF91CF911F910F91FF90EF904A +:1033C000089508956093B5017093B6018093B70195 +:1033D0009093B8010C9419160F931F930091B501A7 +:1033E0001091B6012091B7013091B801DC01CB01F9 +:1033F000802B912BA22BB32B8093B5019093B60118 +:10340000A093B701B093B8011F910F910C941916B6 +:103410000F931F930091B5011091B6012091B70150 +:103420003091B801DC01CB0180239123A223B32387 +:103430008093B5019093B601A093B701B093B80102 +:103440001F910F910C9419160F931F930091B501C2 +:103450001091B6012091B7013091B801DC01CB0188 +:1034600080279127A227B3278093B5019093B601B7 +:10347000A093B701B093B8011F910F910C94191646 +:103480001092B1011092B2011092B3011092B401E6 +:103490000C94191641E050E060E070E004C0440F65 +:1034A000551F661F771F8A95D2F74093B10150933D +:1034B000B2016093B3017093B4010C94191641E00A +:1034C00050E060E070E004C0440F551F661F771F96 +:1034D0008A95D2F78091B1019091B201A091B30188 +:1034E000B091B401482B592B6A2B7B2B4093B1012F +:1034F0005093B2016093B3017093B4010C94191608 +:1035000041E050E060E070E004C0440F551F661FCA +:10351000771F8A95D2F74095509560957095809168 +:10352000B1019091B201A091B301B091B4014823CF +:1035300059236A237B234093B1015093B2016093D6 +:10354000B3017093B4010C94191641E050E060E0AF +:1035500070E004C0440F551F661F771F8A95D2F78D +:103560008091B1019091B201A091B301B091B401E9 +:10357000482759276A277B274093B1015093B2010E +:103580006093B3017093B4010C9419160F931F93B9 +:103590000091B1011091B2012091B3013091B401B9 +:1035A000DC01CB01802B912BA22BB32B8093B1019B +:1035B0009093B201A093B301B093B4011F910F9106 +:1035C0000C9419160F931F930091B1011091B20141 +:1035D0002091B3013091B401DC01CB018023912310 +:1035E000A223B3238093B1019093B201A093B301BE +:1035F000B093B4011F910F910C9419160F931F9360 +:103600000091B1011091B2012091B3013091B40148 +:10361000DC01CB0180279127A227B3278093B1013A +:103620009093B201A093B301B093B4011F910F9195 +:103630000C9419160895CF92DF92EF92FF920F9398 +:103640001F93CF93DF938C01C090B101D090B20152 +:10365000E090B301F090B4018091B5019091B60172 +:10366000A091B701B091B801C82AD92AEA2AFB2A49 +:10367000CFE1D0E0D701C6010C2E04C0B695A795C6 +:10368000979587950A94D2F780FF07C0B8018C2FD1 +:103690000E9479088130910531F4219758F7B801DB +:1036A00080E00E947908DF91CF911F910F91FF90E8 +:1036B000EF90DF90CF90089590910C019923F1F055 +:1036C00090910D019923D1F0982F96959695969506 +:1036D0009F3080F5E0910E01F0910F01E90FF11D8F +:1036E000877021E030E0A90102C0440F551F8A9580 +:1036F000E2F7CA019181892B8183089520910E01FF +:1037000030910F01F90132969FEF40E051918517FA +:1037100089F09F3F19F4511101C0942F4F5F4E3033 +:10372000A9F79F3F39F0F901E90FF11D97FDFA95CF +:1037300082830895089590910C019923F9F0909156 +:103740000D019923D9F0982F9695969596959F30CF +:1037500028F5E0910E01F0910F01E90FF11D87703E +:1037600021E030E0A90102C0440F551F8A95E2F71D +:10377000CA018095918189238183089520910E014A +:1037800030910F01F9013296205F3F4F90818913EC +:1037900001C010823196E217F307C1F7089581E066 +:1037A00090E0E0910E01F0910F01E80FF91F1082F7 +:1037B000019680319105A9F708959091CB01892B4D +:1037C0008093CB01089580959091CB0189238093BC +:1037D000CB0108951092CB0108959091CA01892BD5 +:1037E0008093CA01089580959091CA01892380939E +:1037F000CA0108951092CA0108958093B9010895ED +:103800001092B901089580910E0190910F01FC0171 +:1038100031969C01205F3F4F80E0919191118F5F25 +:10382000E217F307D1F70895E0910E01F0910F012F +:103830008091CB018083E0910E01F0910F01908186 +:103840008091CA01892B80838091B901882361F01E +:10385000E0910E01F0910F019081892B80830E94ED +:10386000031C81111092B90180910E0190910F01FA +:103870000C94CE10CF92DF92EF92FF926C01EE2467 +:10388000FF24C114D104E104F10421F0C701B60101 +:1038900020E101C020E0C72ED82EE92EFF24C1145C +:1038A000D104E104F10419F0285FC701B6016B01EE +:1038B0007C0154E0F694E794D794C7945A95D1F7D5 +:1038C000C114D104E104F10419F02C5FC701B60161 +:1038D0006B017C0142E0F694E794D794C7944A9533 +:1038E000D1F7C114D104E104F10419F02E5FC7012E +:1038F000B601DC01CB01B695A79597958795892BE5 +:103900008A2B8B2B09F02F5F822FFF90EF90DF9097 +:10391000CF9008958091E401843011F120E488E192 +:1039200090E00FB6F894A895809360000FBE2093A6 +:10393000600083B7817F846083BF83B7816083BF6A +:103940007894889583B78E7F83BF0FB6F894A89537 +:1039500080916000886180936000109260000FBECB +:10396000089508950C94B11CCF930E94B21C0E943C +:1039700098060E94B11CC0E08C2F0E948E07811116 +:1039800004C0CF5FCE30C1F701C081E0CF91089570 +:103990000E942B160E94C2100C94B80982E084BDCC +:1039A00093E095BD9AEF97BD80936E0008952FB771 +:1039B000F8948091CD019091CE01A091CF01B0916A +:1039C000D0012FBF0895CF92DF92EF92FF920F9315 +:1039D0001F932FB7F8944091CD015091CE01609183 +:1039E000CF017091D0012FBF6A017B01EE24FF242B +:1039F0008C0120E030E0C016D106E206F30610F498 +:103A0000415051099A01281B390BC9011F910F918F +:103A1000FF90EF90DF90CF9008951F920F920FB616 +:103A20000F9211248F939F93AF93BF938091CD01F9 +:103A30009091CE01A091CF01B091D0010196A11D2E +:103A4000B11D8093CD019093CE01A093CF01B0938F +:103A5000D001BF91AF919F918F910F900FBE0F90AA +:103A60001F9018950E94BA0DF8942FEF87EA91E6FF +:103A7000215080409040E1F700C0000087E090EBCB +:103A8000DC018093ED019093EE01A093EF01B093E0 +:103A9000F0019CE088E10FB6F894A895809360004F +:103AA0000FBE90936000FFCFEF92FF920F931F9392 +:103AB000CF93DF93D82FC0E08C2F0E948E0700E0B9 +:103AC00010E0E82EF12CC701002E02C095958795D5 +:103AD0000A94E2F780FD06C00F5F1F4F0630110504 +:103AE00091F709C0602F7C2F80E00E9456088D134B +:103AF000F3CF81E004C0CF5FCE30F1F680E0DF91FC +:103B0000CF911F910F91FF90EF900895CF93C82F01 +:103B10008CE20E94541D882321F08C2FCF910C94AD +:103B2000541D80E0CF910895CF930E94DB1E811138 +:103B300002C00E94C11EC5E6C15049F00E9498060D +:103B40008FE39CE90197F1F700C00000F5CF89E20F +:103B50000E94861D811113C18AE20E94861D811177 +:103B60000E94C11E85E00E94861D81110E94321DA7 +:103B70000E94E61E8093CC0187E00E94861D882368 +:103B8000A9F18BE10E94861D882351F08091CC0120 +:103B900081FB222720F991E0922790FB81F90EC04A +:103BA0008EE00E94861D882361F08091CC0182FB0B +:103BB000222720F991E0922790FB82F98093CC0193 +:103BC00015C080E10E94861D9091CC01882341F0B0 +:103BD00093FB222720F981E0822780FB93F904C020 +:103BE000892F809580FB90F99093CC018091CC0136 +:103BF0000E94EA1E0E94F81E8093DE0180EE0E9461 +:103C0000861D882341F08091DE01982F909590FBCE +:103C100080F98093DE0189E30E94861D882359F094 +:103C20008091DE0181FB222720F991E0922790FB11 +:103C300081F98093DE0182EE0E94861D882359F06F +:103C40008091DE0182FB222720F991E0922790FBF0 +:103C500082F98093DE0186EE0E94861D882359F04A +:103C60008091DE0183FB222720F991E0922790FBCF +:103C700083F98093DE0183EE0E94861D882359F02C +:103C80008091DE0184FB222720F991E0922790FBAE +:103C900084F98093DE0185E30E94861D882359F014 +:103CA0008091DE0185FB222720F991E0922790FB8D +:103CB00085F98093DE0181E30E94861D882359F0F7 +:103CC0008091DE0186FB222720F991E0922790FB6C +:103CD00086F98093DE0181E10E94861D882359F0D8 +:103CE0008091DE0187FB222720F991E0922790FB4B +:103CF00087F98093DE018091DE010E94FC1E809195 +:103D0000DE0187FB882780F980930D0187E20E94FE +:103D1000861DC82F8EE10E94861D8111C2608FE131 +:103D20000E94861D8111C46080E20E94861D81115F +:103D3000C86081E20E94861D8111C06182E20E94FA +:103D4000861D8111C06283E20E94861D8111C064BC +:103D500084E20E94861D882311F0C06802C0CC2333 +:103D600029F08C2F0E94F31E6C2F03C00E94EF1EBF +:103D7000682F70E080E090E0CF910C94E219CF9131 +:103D800008956DEE7EEF80E090E00E94352560E0C2 +:103D900082E090E00E94272560E083E090E00E94AE +:103DA000272560E084E090E00E94272560E085E020 +:103DB00090E00C94272580E090E00E94212521E0EE +:103DC0008D3E9E4F09F020E0822F089582E090E022 +:103DD0000C941925682F82E090E00C94272583E04D +:103DE00090E00C941925682F83E090E00C9427252F +:103DF00084E090E00C941925682F84E090E00C9406 +:103E000027258091D30180FF0BC06091130185E0CD +:103E1000689FB001112475956795759567952BC0BE +:103E200081FF09C06091130185E0689FB0011124F2 +:103E30007595679520C082FF07C06091130185E0EA +:103E4000689FB001112417C09091D4019923D1F03B +:103E500060911201961788F72091130185E0289F41 +:103E600090011124929FA001939F500D112470E0A6 +:103E7000CA010E94EB246038710540F46115710598 +:103E800019F406C065E070E0862F08958FE7089565 +:103E900081E008958091D30180FF08C060911101F5 +:103EA00070E0759567957595679521C081FF06C08F +:103EB0006091110170E07595679519C082FF04C08B +:103EC0006091110170E010C09091D401992399F094 +:103ED000609110019617A0F780911101899FC00190 +:103EE000112470E00E94EB246038710540F46115E4 +:103EF000710519F406C061E070E0862F08958FE720 +:103F0000089581E00895803F21F40E94011F81956A +:103F100004C0813F29F40E94011F8093D7010895B6 +:103F2000823F21F40E94011F819504C0833F29F440 +:103F30000E94011F8093D6010895893F19F40E94C1 +:103F40004A1F05C08A3F31F40E944A1F8195809321 +:103F5000D80108958B3F21F40E944A1F819504C027 +:103F60008C3F29F40E944A1F8093D9010895843F11 +:103F700021F48091D501816017C0853F21F48091A3 +:103F8000D501826011C0863F21F48091D501846003 +:103F90000BC0873F21F48091D501886005C0883F20 +:103FA00031F48091D50180618093D50108958D3FD2 +:103FB00021F48091D30181600BC08E3F21F4809168 +:103FC000D301826005C08F3F29F48091D3018460C2 +:103FD0008093D3010895803F39F48091D70187FF02 +:103FE0006CC01092D70169C0813F29F48091D7013C +:103FF0001816BCF362C09091D601823F29F497FF56 +:104000005CC01092D60159C0833F19F41916CCF345 +:1040100054C0893F41F48091D80118160CF04DC06E +:104020001092D8014AC08A3F29F48091D80187FFB5 +:1040300044C0F6CF8B3F39F48091D90187FF3DC052 +:104040001092D9013AC08C3F29F48091D9011816F9 +:10405000BCF333C0843F21F48091D5018E7F17C01B +:10406000853F21F48091D5018D7F11C0863F21F4D9 +:104070008091D5018B7F0BC0873F21F48091D501C2 +:10408000877F05C0883F31F48091D5018F7E809372 +:10409000D50113C08D3F21F48091D3018E7F0BC0D9 +:1040A0008E3F21F48091D3018D7F05C08F3F29F48D +:1040B0008091D3018B7F8093D3018091D6018111B0 +:1040C0000EC08091D70181110AC08091D801811161 +:1040D00006C08091D901811102C01092D4010895C7 +:1040E00085ED91E00E94D9100E94D71C9093D201D7 +:1040F0008093D10108951F93CF93DF938091D101D5 +:104100009091D2010E94E31CAC019091D4019923BB +:1041100021F02091140130E006C0209115018AE0C1 +:10412000289F900111244217530708F485C08091FD +:10413000D601C091D701D091D8011091D901811138 +:1041400007C0C11175C0D11173C0111171C074C005 +:104150009F3F19F09F5F9093D401181624F40E949A +:10416000011F8093D6018091D60187FF05C00E9470 +:10417000011F81958093D6011C1624F40E94011F13 +:104180008093D7018091D70187FF05C00E94011F4E +:1041900081958093D7016091D601662331F1C0915A +:1041A000D701CC2311F1062E000C770B880B990B4D +:1041B0000E94F22323E333E343E35FE30E945624A8 +:1041C0000E94BA236093D6016C2FCC0F770B880B1B +:1041D000990B0E94F22323E333E343E35FE30E945E +:1041E00056240E94BA236093D7011D1624F40E941E +:1041F0004A1F8093D8018091D80187FF05C00E9493 +:104200004A1F81958093D801111624F40E944A1FF9 +:104210008093D9018091D90187FF05C00E944A1F70 +:1042200081958093D901DF91CF911F910C947020DB +:104230009F3F09F08FCFA0CFDF91CF911F910895BD +:10424000E5EDF1E085E0DF011D928A95E9F7109236 +:10425000D4011092D3010895833081F128F4813084 +:1042600059F08230D1F00895853009F449C0B8F191 +:10427000863009F456C0089580911501262F30E04C +:10428000280F311D2F3F310524F4680F609315016D +:1042900008958FEF80931501089580911401262FC2 +:1042A00030E0280F311D2F3F310524F4680F609353 +:1042B000140108958FEF80931401089580911301E4 +:1042C000262F30E0280F311D2F3F310524F4680FD1 +:1042D0006093130108958FEF8093130108958091E7 +:1042E0001201262F30E0280F311D2F3F310524F415 +:1042F000680F6093120108958FEF80931201089563 +:1043000080911101262F30E0280F311D2F3F3105FC +:1043100024F4680F6093110108958FEF80931101C9 +:10432000089580911001262F30E0280F311D2F3F76 +:10433000310524F4680F6093100108958FEF809386 +:1043400010010895833011F128F4813049F0823052 +:1043500091F00895853081F120F18630C1F1089502 +:1043600080911501681720F4861B8093150108952C +:1043700010921501089580911401681720F4861B8E +:1043800080931401089510921401089580911301EF +:10439000681720F4861B809313010895109213016F +:1043A000089580911201681720F4861B80931201F2 +:1043B000089510921201089580911101681720F458 +:1043C000861B809311010895109211010895809128 +:1043D0001001681720F4861B809310010895109235 +:1043E000100108950F931F938D3109F46BC008F0ED +:1043F0003FC08E3009F47DC0C0F4873009F46EC030 +:1044000068F4863009F0AFC08091CC01817F8E7F47 +:104410008093CC0181E08093DB01A6C0883009F451 +:1044200058C08B3009F49BC09EC0863109F497C0F8 +:1044300078F4803109F470C0813109F094C00E9491 +:104440002B1690910D0181E0892780930D0187C083 +:10445000893109F484C08B3109F085C08091CC0189 +:1044600081FB222720F991E0922790FB81F94AC035 +:10447000853309F45BC048F4873209F457C008F467 +:104480005AC0893209F452C06EC0833438F48A337A +:1044900008F067C0883309F462C065C0833409F44A +:1044A00045C0883409F05FC00E942B160FEF13ED52 +:1044B00020E3015010402040E1F700C000000E94BE +:1044C000321D4DC00E9474230E94C2100E94B80980 +:1044D00046C00E94E61E0E94F81E41C09091CC0189 +:1044E000892F817090FF12C0917F9E7F9093CC01A5 +:1044F0003BC08091CC0182FB222720F991E09227DA +:1045000090FB82F98093CC01992349F18091CC01F1 +:1045100081608093CC0123C08091CC0183FB222752 +:1045200020F991E0922790FB83F9ECCF61E070E0F5 +:1045300080E090E010C08D5141E050E060E070E01C +:104540008A019B0104C0000F111F221F331F8A958F +:10455000D2F7C901B8010E94E2190E942B1681E02E +:1045600003C08953E9CF80E01F910F91089580E047 +:1045700008950C94B722CF93C82F8091DB0181302E +:1045800079F018F08230E9F187C0E0910E01F091E6 +:104590000F018081813169F0823209F07FC009C04A +:1045A000E0910E01F0910F018081813111F0823292 +:1045B00061F48C2F0E94B922811104C08C2F0E94BB +:1045C000F2211DC081E090E01AC08C2F0E94B7221A +:1045D000811114C0C43179F048F4CB3079F0C03186 +:1045E00009F060C082E08093DB0108C0C93219F095 +:1045F000C83321F057C01092DB0154C081E08170B4 +:1046000053C0C93289F118F5C43171F1A8F4C7302B +:1046100009F046C08AE08093150194E1909314015B +:1046200093E0909313018093120188E0809311012D +:1046300088E28093100134C0CE51C63088F5EC2F4B +:10464000F0E0E65DFE4F80818093DA0129C0CE3430 +:10465000E9F020F4CB3421F56AE013C0C13579F0DC +:10466000C235F1F461E00DC08091DA01882319F0C0 +:104670001092DA0115C081E08093DB0115C061E082 +:1046800006C08091DA010E942C210AC06AE0809164 +:10469000DA010E94A22104C01092DB0180E004C074 +:1046A00081E002C080E0ABCFCF910895E1E8F0E077 +:1046B0008081886080838081816080838FB7F89457 +:1046C00093E09093890090ED909388008FBF0895B8 +:1046D000EFE6F0E08081826080830895EFE6F0E00D +:1046E00080818D7F80830895EFE6F0E0908182E005 +:1046F0008927808308951F920F920FB60F9211247D +:104700002F933F934F935F936F937F938F939F93D9 +:10471000AF93BF93EF93FF938091DC019091DD0104 +:1047200001969093DD018093DC01811103C082E04A +:104730000E94B809E091DD01E695E695F0E0E557C5 +:10474000F94FE4918091DC018E1303C080E00E9458 +:10475000B809FF91EF91BF91AF919F918F917F9198 +:104760006F915F914F913F912F910F900FBE0F90DE +:104770001F9018950E94C1236894B1110C94502485 +:1047800008950E94352488F09F5798F0B92F9927F3 +:10479000B751B0F0E1F0660F771F881F991F1AF02C +:1047A000BA95C9F714C0B13091F00E944F24B1E01E +:1047B00008950C944F24672F782F8827B85F39F01D +:1047C000B93FCCF3869577956795B395D9F73EF4C5 +:1047D00090958095709561957F4F8F4F9F4F08956D +:1047E000E89409C097FB3EF490958095709561958B +:1047F0007F4F8F4F9F4F9923A9F0F92F96E9BB2741 +:104800009395F695879577956795B795F111F8CFBC +:10481000FAF4BB0F11F460FF1BC06F5F7F4F8F4F27 +:104820009F4F16C0882311F096E911C0772321F01D +:104830009EE8872F762F05C0662371F096E8862FB5 +:1048400070E060E02AF09A95660F771F881FDAF70C +:10485000880F9695879597F9089557FD9058440FBE +:10486000551F59F05F3F71F04795880F97FB991FCF +:1048700061F09F3F79F0879508951216130614068C +:10488000551FF2CF4695F1DF08C016161706180619 +:10489000991FF1CF86957105610508940895E894F4 +:1048A000BB2766277727CB0197F908950E946924D3 +:1048B0000C94DA240E94CC2438F00E94D32420F0F7 +:1048C000952311F00C94C3240C94C92411240C9446 +:1048D00050240E942D2470F3959FC1F3950F50E052 +:1048E000551F629FF001729FBB27F00DB11D639FA2 +:1048F000AA27F00DB11DAA1F649F6627B00DA11D48 +:10490000661F829F2227B00DA11D621F739FB00DED +:10491000A11D621F839FA00D611D221F749F33275D +:10492000A00D611D231F849F600D211D822F762FF6 +:104930006A2F11249F5750409AF0F1F088234AF0D3 +:10494000EE0FFF1FBB1F661F771F881F915050403F +:10495000A9F79E3F510580F00C94C3240C94502479 +:104960005F3FE4F3983ED4F3869577956795B795C6 +:10497000F795E7959F5FC1F7FE2B880F911D9695E0 +:10498000879597F9089597F99F6780E870E060E050 +:1049900008959FEF80EC089500240A9416161706D8 +:1049A00018060906089500240A9412161306140620 +:1049B00005060895092E0394000C11F4882352F083 +:1049C000BB0F40F4BF2B11F460FF04C06F5F7F4F3B +:1049D0008F4F9F4F089597FB072E16F4009407D032 +:1049E00077FD09D00E94052507FC05D03EF490957F +:1049F00081959F4F0895709561957F4F0895EE0FB3 +:104A0000FF1F0590F491E02D0994AA1BBB1B51E1F7 +:104A100007C0AA1FBB1FA617B70710F0A61BB70B2E +:104A2000881F991F5A95A9F780959095BC01CD01D3 +:104A30000895F999FECF92BD81BDF89A992780B566 +:104A40000895A8E1B0E042E050E00C943C25262F08 +:104A5000F999FECF1FBA92BD81BD20BD0FB6F89463 +:104A6000FA9AF99A0FBE019608950E942725272FDA +:104A70000C942825DC01CB01FC01F999FECF06C07E +:104A8000F2BDE1BDF89A319600B40D92415050400C +:084A9000B8F70895F894FFCF78 +:104A98002002B909490A240AF009BC090101BA012E +:104AA80028080A03140A3F4D36394C06FF05C90584 +:104AB800900523053C0555056E050102030405060E +:044AC80007080900D2 +:00000001FF diff --git a/keyboard/ergodox_ez/makeallhex.sh b/keyboard/ergodox_ez/makeallhex.sh new file mode 100755 index 0000000000..9ea899e1ae --- /dev/null +++ b/keyboard/ergodox_ez/makeallhex.sh @@ -0,0 +1,9 @@ +#!/bin/bash +#a quick tool to rebuild all the hex files for the keymaps in the ./keymaps/ directory +make clean +for f in ./keymaps/* + do + MAPNAME=$(echo "$f"|sed -r 's#^./keymaps/##') + make KEYMAP=$MAPNAME + mv ergodox_ez.hex "$f/$MAPNAME.hex" +done diff --git a/keyboard/ergodox_ez/matrix.c b/keyboard/ergodox_ez/matrix.c index 3e1d69444b..c4f5b179f0 100644 --- a/keyboard/ergodox_ez/matrix.c +++ b/keyboard/ergodox_ez/matrix.c @@ -62,12 +62,12 @@ uint32_t matrix_scan_count; __attribute__ ((weak)) -void * matrix_init_kb(void) { -}; +void matrix_init_kb(void) { +} __attribute__ ((weak)) -void * matrix_scan_kb(void) { -}; +void matrix_scan_kb(void) { +} inline uint8_t matrix_rows(void) @@ -102,9 +102,7 @@ void matrix_init(void) matrix_scan_count = 0; #endif - if (matrix_init_kb) { - (*matrix_init_kb)(); - } + matrix_init_kb(); } @@ -163,9 +161,7 @@ uint8_t matrix_scan(void) } - if (matrix_scan_kb) { - (*matrix_scan_kb)(); - } + matrix_scan_kb(); return 1; } diff --git a/keyboard/ergodox_ez/readme.md b/keyboard/ergodox_ez/readme.md new file mode 100644 index 0000000000..4afb42c8fd --- /dev/null +++ b/keyboard/ergodox_ez/readme.md @@ -0,0 +1,45 @@ +# Getting started + +There are two main ways you could customize the ErgoDox EZ. + +## The Easy Way: Use an existing firmware file and just flash it + +1. Download and install the [Teensy Loader](https://www.pjrc.com/teensy/loader.html) +2. Find a firmware file you like. You can find a few if these in the keymaps subdirectory right here. The file you need ends with .hex, and you can look at its .c counterpart (or its PNG image) to see what you'll be getting. You can also use the [Massdrop configurator](https://keyboard-configurator.massdrop.com/ext/ergodox) to create a firmware Hex file you like. +3. Download the firmware file +4. Connect the keyboard, press its Reset button (gently insert a paperclip into the hole in the top-right corner) and flash it using the Teensy loader you installed on step 1 and the firmware you downloaded. + +## More technical: create your own totally custom firmware by editing the source files. + +This requires a little bit of familiarity with coding. + +1. Go to https://github.com/jackhumbert/qmk_firmware and read the Readme at the base of this repository, top to bottom. Then come back here :) +2. Clone the repository (download it) +3. Set up a build environment as per [the build guide](/BUILD_GUIDE.md) + - Using a Mac and have homebrew? just run `brew tap osx-cross/avr && brew install avr-libc` +4. Copy `keymaps/default/keymap.c` into `keymaps/your_name/keymap.c` (for example, `keymaps/german/keymap.c`) +5. Edit this file, changing keycodes to your liking (see "Finding the keycodes you need" below). Try to edit the comments as well, so the "text graphics" represent your layout correctly. See below for more tips on sharing your work. +6. Compile your firmware by running `make clean` followed by `make KEYMAP=your_name`. For example, `make KEYMAP=german`. This will result in a hex file, which will always be called `ergodox_ez.hex`, regardless of your keymap name. +6. Flash this hex file using the [Teensy loader](https://www.pjrc.com/teensy/loader.html) as described in step 4 in the "Easy Way" above. +7. Submit your work as a pull request to this repository, so others can also use it. :) See below on specifics. + +Good luck! :) + +## Contributing your keymap + +The ErgoDox EZ firmware is open-source, so it would be wonderful to have your contribution! Within a very short time after launching we already amassed almost 20 user-contributed keymaps, with all sorts of creative improvements and tweaks. This is very valuable for people who aren't comfortable coding, but do want to customize their ErgoDox EZ. To make it easy for these people to use your layout, I recommend submitting your PR in the following format. + +1. All work goes inside your keymap subdirectory (`keymaps/german` in this example). +2. `keymap.c` - this is your actual keymap file; please update the ASCII comments in the file so they correspond with what you did. +3. `german.hex` - a compiled version of your keymap. Commit it to the repo with `git add -f` as hex files are ignored by default. This allows people to just download your hex file and flash it without having to set up a build toolchain to make it. +3. `readme.md` - a Readme file, which GitHub would display by default when people go to your directory. Explain what's different about your keymap, what you tweaked or how it works. No specific format to follow, just communicate what you did. :) +4. Any graphics you wish to add. This is absolutely not a must. If you feel like it, you can use [Keyboard Layout Editor](http://keyboard-layout-editor.com) to make something and grab a screenshot, but it's really not a must. If you do have graphics, your Readme can just embed the graphic as a link, just like I did with the default layout. + + +## Finding the keycodes you need + +Let's say you want a certain key in your layout to send a colon; to figure out what keycode to use to make it do that, you're going to need `quantum/keymap_common.h`. + +That file contains a big list of all of the special, fancy keys (like, being able to send % on its own and whatnot). + +If you want to send a plain vanilla key, you can look up its code under `doc/keycode.txt`. That's where all the boring keys hang out. diff --git a/keyboard/ergodox_ez/reference_compiled_default_firmware.hex b/keyboard/ergodox_ez/reference_compiled_default_firmware.hex deleted file mode 100644 index 69577c549c..0000000000 --- a/keyboard/ergodox_ez/reference_compiled_default_firmware.hex +++ /dev/null @@ -1,1416 +0,0 @@ -:100000000C9471060C94B5060C94B5060C94B506C8 -:100010000C94B5060C94B5060C94B5060C94B50674 -:100020000C94B5060C94B5060C946E110C94401209 -:100030000C9480200C94B5060C94B5060C94B5066F -:100040000C94B5060C94B5060C94B5060C94B50644 -:100050000C94B5060C94E7200C94B5060C94B506E8 -:100060000C94B5060C94B5060C94B5060C94B50624 -:100070000C94B5060C94B5060C94B5060C94B50614 -:100080000C94B5060C94B5060C94B5060C94B50604 -:100090000C94B5060C94B5060C94B5060C94B506F4 -:1000A0000C94B5060C94B5060C94B506A512C712AF -:1000B000B213C712B21309132C13B2138113941382 -:1000C000E216E2161017101753178F179019901990 -:1000D000A71790199E189E186A19901990197E19E1 -:1000E0000000F0A12E004C002A00E1003581000044 -:1000F0001E00140004001D71E1044D001F001A00D1 -:1001000016001B002B002A00200008000700060034 -:1001100050002C0021001500090019004F004A0072 -:10012000220017000A00050000006500500001547D -:100130000000007F0000E3004F0001540000007F3A -:100140000000E20023001C000B00110000002971D8 -:10015000240018000D00100052004B0025000C0078 -:100160000E00360051002800260012000F00370054 -:100170002F002B00270013003382387130004E000F -:100180002D0031003400E500C10000000100010035 -:1001900001000100010000003A001E0220022202BC -:1001A000010001003B001F022102230201000100A7 -:1001B0003C002F0226022F00010001003D0030020A -:1001C00027023000010001003E00380235003502F0 -:1001D000000001000100010000000100000001001A -:1001E0000100010000000100000001003F0052007A -:1001F00051002402000001004000240021001E00E4 -:10020000010001004100250022001F00370001000D -:1002100042002600230020002700010043002502A1 -:100220002E0231002E0001004400450001000100B3 -:1002300001000000010001000100010001000000B8 -:1002400001000100010001000100010001000100A6 -:10025000F2000100010001000100F000F1000100C6 -:10026000F600010001000100F3000100F5000100AB -:100270000100010001000100000001000100010077 -:100280000000010000000100010001000000010069 -:100290000000010001000100010001000000010058 -:1002A0000100010001000100A9000100010001009E -:1002B0000100AC00AA00B600010001000100AB0083 -:1002C000A80001000100010001000100010001007F -:1002D00001000100AE000100010000000A0025300D -:1002E000313662003A200025303258000A722F63FE -:1002F0002030313233343536373839414243444582 -:10030000460A000A002530325800626F756E636538 -:10031000213A20006C6566742073696465206174FD -:100320007461636865640A006C656674207369644F -:1003300065206E6F7420726573706F6E64696E678E -:100340000A00747279696E6720746F207265736534 -:1003500074206D637032333031380A000A444542EC -:1003600055473A20656E61626C65642E0A005B73C6 -:100370005D004B6579626F617264207374617274A1 -:100380002E0A005B575D005B535D005B525D005BB6 -:10039000445D005B435D0016034500720067006F1B -:1003A0000044006F007800200045005A000000164D -:1003B000034500720067006F0044006F0078002062 -:1003C0000045005A000000040309040902740004F7 -:1003D0000100A0FA09040000010301010009211134 -:1003E000010001223F000705810308000A090401FA -:1003F000000103010200092111010001224D000743 -:1004000005820308000A0904020001030000000934 -:1004100021110100012236000705830308000A09A3 -:100420000403000203000000092111010001222041 -:1004300000070584032000010705040320000112C2 -:1004400001100100000008EDFE0713010001020089 -:10045000010631FF0974A1010975150025FF9520DA -:10046000750881020976150025FF9520750891020F -:10047000C005010980A101850216010026B7001AF6 -:1004800001002AB700751095018100C0050C090113 -:10049000A1018503160100269C021A01002A9C0274 -:1004A000751095018100C005010902A1010901A192 -:1004B000000509190129051500250195057501811A -:1004C0000295017503810105010930093115812566 -:1004D0007F95027508810609381581257F9501757C -:1004E000088106050C0A38021581257F95017508DB -:1004F0008106C0C005010906A101050719E029E729 -:100500001500250195087501810295017508810185 -:1005100005081901290595057501910295017503D5 -:1005200091010507190029FF150025FF950675089B -:100530008100C00A002530325820006B6579626F57 -:100540006172645F7265706F72743A20000A0025F0 -:10055000303258006B6579626F6172645F736574E5 -:100560005F6C65643A2000646F6E652E0A00626FEE -:100570006F676D61676963207363616E3A202E2E29 -:100580002E2000290A002575002F002575005D2802 -:100590000025640020002564002000256400200060 -:1005A0002564007C0025303258006D6F7573656BD3 -:1005B0006579205B62746E7C782079207620685D96 -:1005C000287265702F61636C293A205B006D6B5F48 -:1005D000776865656C5F74696D655F746F5F6D6189 -:1005E00078203D2025640A006D6B5F776865656C37 -:1005F0005F6D61785F7370656564203D2025640AD6 -:10060000006D6B5F74696D655F746F5F6D617820FD -:100610003D2025640A006D6B5F6D61785F737065C6 -:100620006564203D2025640A006D6B5F696E74650A -:100630007276616C203D2025640A006D6B5F6465F5 -:100640006C6179203D2025640A006D6B5F776865D9 -:10065000656C5F74696D655F746F5F6D6178203D77 -:100660002025640A006D6B5F776865656C5F6D615E -:10067000785F7370656564203D2025640A006D6BAA -:100680005F74696D655F746F5F6D6178203D2025D3 -:10069000640A006D6B5F6D61785F737065656420DF -:1006A0003D2025640A006D6B5F696E74657276612A -:1006B0006C203D2025640A006D6B5F64656C617978 -:1006C000203D2025640A000A00257500363A20776F -:1006D0006865656C5F74696D655F746F5F6D617887 -:1006E0003A20000A00257500353A20776865656C68 -:1006F0005F6D61785F73706565643A20000A00255C -:100700007500343A2074696D655F746F5F6D617850 -:100710003A20000A00257500333A206D61785F7336 -:10072000706565643A20000A00257500323A206938 -:100730006E74657276616C286D73293A20000A0028 -:10074000257500313A2064656C6179282A31306D55 -:1007500073293A20000A092D2056616C75657320B3 -:100760002D0A004D3E004D25643E20003F0073657C -:10077000742064656661756C740A00433E200077DE -:10078000686572652064656C74613A206375727384 -:100790006F723D25642C20776865656C3D25640A81 -:1007A00053656520687474703A2F2F656E2E7769D3 -:1007B0006B6970656469612E6F72672F77696B6909 -:1007C0002F4D6F7573655F6B6579730A000A092D8C -:1007D000204D6F7573656B6579202D0A4553432F46 -:1007E000713A09717569740A313A0964656C617905 -:1007F000282A31306D73290A323A09696E7465729C -:1008000076616C286D73290A333A096D61785F73DC -:10081000706565640A343A0974696D655F746F5F69 -:100820006D61780A353A09776865656C5F6D617846 -:100830005F73706565640A363A09776865656C5F51 -:1008400074696D655F746F5F6D61780A0A703A094B -:100850007072696E742076616C7565730A643A090A -:100860007365742064656661756C74730A75703A9B -:10087000092B310A646F776E3A092D310A7067755A -:10088000703A092B31300A7067646F776E3A092D20 -:1008900031300A0A7370656564203D2064656C74AC -:1008A00061202A206D61785F7370656564202A205D -:1008B00028726570656174202F2074696D655F749E -:1008C0006F5F6D6178290A003F004D3E2000433E76 -:1008D00020004C25640A000A092D20436F6E736FB7 -:1008E0006C65202D0A4553432F713A09717569745F -:1008F0000A6D3A096D6F7573656B65790A000A09AF -:100900002D204D61676963202D0A643A0964656290 -:1009100075670A783A096465627567206D6174725B -:1009200069780A6B3A096465627567206B6579625C -:100930006F6172640A6D3A096465627567206D6F54 -:100940007573650A763A0976657273696F6E0A7314 -:100950003A097374617475730A633A09636F6E734D -:100960006F6C65206D6F64650A302D343A096C61D7 -:10097000796572302D34284631302D4634290A509D -:100980006175733A09626F6F746C6F616465720AA6 -:10099000653A09656570726F6D0A000A0025750079 -:1009A0002E6E6B726F3A20000A002575002E737749 -:1009B00061705F6261636B736C6173685F626163D6 -:1009C0006B73706163653A20000A002575002E7311 -:1009D0007761705F67726176655F6573633A200067 -:1009E0000A002575002E6E6F5F6775693A20000A50 -:1009F000002575002E737761705F72616C745F7291 -:100A00006775693A20000A002575002E73776170BA -:100A10005F6C616C745F6C6775693A20000A002531 -:100A200075002E636170736C6F636B5F746F5F63CF -:100A30006F6E74726F6C3A20000A002575002E7379 -:100A40007761705F636F6E74726F6C5F63617073F8 -:100A50006C6F636B3A20000A0025303258006B65DA -:100A6000796D61705F636F6E6669672E7261773A48 -:100A700020000A002575002E6D6F7573653A200001 -:100A80000A002575002E6B6579626F6172643A20E9 -:100A9000000A002575002E6D61747269783A200095 -:100AA0000A002575002E656E61626C653A20000AA9 -:100AB00000253032580064656275675F636F6E664B -:100AC00069672E7261773A20000A00257500646517 -:100AD0006661756C745F6C617965723A20003F00E5 -:100AE00074696D65725F636F756E743A202530347A -:100AF0006C580A006B6579626F6172645F69646C3F -:100B0000653A2025580A006B6579626F6172645FEF -:100B100070726F746F636F6C3A2025580A00686FAB -:100B200073745F6B6579626F6172645F6C65647327 -:100B300028293A2025580A000A092D205374617487 -:100B40007573202D0A004743433A20342E382E3245 -:100B5000204156522D4C4942433A20312E382E30F6 -:100B6000204156525F415243483A20617672350A1D -:100B7000004F5054494F4E533A204C554641204265 -:100B80004F4F544D41474943204D4F5553454B45D9 -:100B9000592045585452414B455920434F4E534FCD -:100BA0004C4520434F4D4D414E44203531320A00D3 -:100BB0004255494C443A20656130653131362D64E7 -:100BC00069727479202830303A31343A3339204F01 -:100BD00063742032392032303135290A00564944B5 -:100BE0003A20307846454544284572676F446F780F -:100BF00020455A29205049443A2030783133303743 -:100C0000284572676F446F7820455A29205645520F -:100C10003A203078303030310A00444553433A208E -:100C2000742E6D2E6B2E206B6579626F617264205D -:100C30006669726D7761726520666F7220457267B2 -:100C40006F646F780A000A092D2056657273696F08 -:100C50006E202D0A000A6D6F7573653A206F666607 -:100C60000A000A6D6F7573653A206F6E0A000A6B91 -:100C70006579626F6172643A206F66660A000A6B7A -:100C80006579626F6172643A206F6E0A000A6D6165 -:100C9000747269783A206F66660A000A6D61747230 -:100CA00069783A206F6E0A000A64656275673A20B7 -:100CB0006F6E0A000A64656275673A206F66660A9D -:100CC000000A0A626F6F746C6F616465722E2E2E5B -:100CD0002000433E20006565636F6E6669673A0ACF -:100CE000000011241FBECFEFDAE0DEBFCDBF04B697 -:100CF00003FE24C08091E1019091E201A091E30103 -:100D0000B091E4018730904BA740B04BB9F41092FA -:100D1000E1011092E2011092E3011092E40114BE8D -:100D200084B7877F84BF88E10FB6F8948093600012 -:100D3000109260000FBEE0E0FFE3099511E0A0E033 -:100D4000B1E0ECE2F8E502C005900D92A433B107E2 -:100D5000D9F711E0A4E3B1E001C01D92A13EB107B3 -:100D6000E1F70E94AA0E0C94142C0C940000FF933F -:100D7000EF93E0913401F0913501309709F0099536 -:100D8000EF91FF910895FC018591803011F0EFDF24 -:100D9000FBCF0895FF27E0E230E247FF0CC041950A -:100DA00097FF09C0EDE26095709580959095611D63 -:100DB000711D811D911D27FF02C0219530E350E276 -:100DC000AA27660F771F881F991FAA1FA41710F064 -:100DD000A41B63955A95A9F7AA3008F0A95FA05DF6 -:100DE000AF93F395611571058105910541F7ED32DA -:100DF00011F4EF93F395F21718F43F93F395FBCFAB -:100E00008F91B5DFFA95E1F70895E991F991859110 -:100E1000803021F0853219F0AADFF9CF089520E063 -:100E2000E89455915532C1F3503311F468945591BB -:100E30005A3348F4505390F3220F022E220F220F00 -:100E4000200D250FF4CF0EF42195899199915336F9 -:100E500019F3533729F1533559F1BC0188279927E4 -:100E6000E8945C3621F489919991689455915436AF -:100E700039F446EF7EF077FF0DC08FEF9FEF0AC089 -:100E800055374AE039F0583540E121F0523642E01A -:100E900009F00895FF93EF937DDFEF91FF91B7CFB6 -:100EA000FF93EF93FC0181918030B9F360DFFBCFBA -:100EB000FF93EF9368DFF1CFDF93CF93CDB7DEB72A -:100EC0002596A3DFCF91DF91089561110BC0FC013E -:100ED0008281882321F085EE0E94761503C085EE7D -:100EE0000E943E1680E090E0089508956091AE0162 -:100EF0007091AF018091B0019091B1010E94C21F29 -:100F000056985E9825982D9826982E9827982F9871 -:100F1000813019F0823021F00895259A2D9A089594 -:100F2000269A2E9A089586E797E0892B11F00C9463 -:100F30007607089556985E9825982D9826982E98AD -:100F400027982F988FEF90E09093890080938800E6 -:100F500090938B0080938A0090938D0080938C00F7 -:100F6000569A5E9A259A2D9A269A2E9A279A2F9A01 -:100F70002FE782E490E1215080409040E1F700C0EB -:100F8000000056985E9825982D9826982E982798B8 -:100F90002F98089589EA8093800089E080938100EA -:100FA00024982C983F988AB18F748AB96E98479A82 -:100FB0008BB1806B8BB9769A0E949A0785E797E090 -:100FC000892B11F00C947507089580E2809300013D -:100FD0008091360181110EC00E94340881E0809317 -:100FE00036012FEF83ED90E3215080409040E1F7F0 -:100FF00000C0000080E40E943A0880930001811143 -:101000002EC00E94640880930001811128C00E94B4 -:10101000640880930001811122C08FE30E9464085C -:101020008093000181111BC00E945C0880E40E9433 -:101030003A0880930001811112C08CE00E9464087C -:101040008093000181110BC00E946408809300010D -:10105000811105C08FE30E946408809300010E9403 -:101060005C088091000108951092B9008AE0809395 -:10107000B800089594EA9093BC009091BC0097FF4B -:10108000FCCF9091B900987F983021F0903111F009 -:1010900081E008958093BB0084E88093BC00809138 -:1010A000BC0087FFFCCF8091B900887F883111F0A8 -:1010B000803471F780E0089584E98093BC008091CA -:1010C000BC0084FDFCCF08958093BB0084E880932E -:1010D000BC008091BC0087FFFCCF9091B900987F45 -:1010E00081E0983209F480E0089584E88093BC00A0 -:1010F0008091BC0087FFFCCF8091BB000895809158 -:101100000001811115C080E40E943A08809300011B -:1011100081110CC082E10E9464088093000181115A -:1011200005C08FEF0E946408809300010E945C0854 -:1011300084B1807F84B985B1807F85B98AB1837F8E -:101140008AB98BB1837F8BB93E98469808950E94E7 -:10115000E507809300010E947F0880B38C7080BBFC -:1011600081B3836F81BBE6E4F1E0A8E3B1E01192C3 -:101170001D9281E0E435F807D1F78AEC97E0892BDE -:1011800011F00C94CA0708959F92AF92BF92CF922C -:10119000DF92EF92FF920F931F93CF93DF93809193 -:1011A00000018823E1F0809137018F5F8093370140 -:1011B000811115C082E493E00E94C3060E94E507F6 -:1011C00080930001882329F088E293E00E94C306FF -:1011D00006C084E193E00E94C3060E949A0708E3D8 -:1011E00011E0C0E0D0E0BB24B39482E0A82ECC2470 -:1011F000C394D12C25E0E22E23E0F22EC73000F577 -:1012000080910001811162C080E40E943A088093BD -:101210000001811112C082E10E94640880930001E4 -:1012200081110BC0C6010C2E01C0880F0A94EAF789 -:1012300080950E946408809300010E945C0846C06B -:10124000CA30A1F028F4C83059F0C93061F005C0A7 -:10125000CC3089F070F0CD3089F0209A289810C0F9 -:10126000219A29980DC0229A2A980AC0239A2B986D -:1012700007C0529A01C0539A5B9802C03E9A4698A2 -:10128000E0EAEA95F1F78FB1799985C092E0817033 -:101290008B25892B7C9B02C090E001C094E0892BB8 -:1012A0007D9B02C090E001C098E0892B7E9B02C02C -:1012B00090E001C090E1892B9FB19095991F9927EB -:1012C000991F9295990F907E892B10C080910001F3 -:1012D000811176C080E40E943A088093000188233F -:1012E00009F45BC0912C0E945C08892DF801908163 -:1012F000981739F1808380910101882301F1809151 -:10130000C10180FF04C08AE093E00E94C30680917F -:10131000C10180FF0CC0809101011F928F93FF9249 -:10132000EF920E945C070F900F900F900F908091AA -:10133000C10180FF04C083E093E00E94C306A09235 -:1013400001010E947F0821960F5F1F4FCE30D1050B -:1013500009F054CF809101018823B1F0815080932E -:101360000101882339F08FE99FE00197F1F700C070 -:1013700000000AC0A6E4B1E0E8E3F1E081918D93BA -:1013800091E0E634F907D1F783E997E0892BD1F0B2 -:101390000E94930717C090E07ACF83E10E9464080F -:1013A0008093000181119ECF81E40E943A088093CE -:1013B0000001811197CF0E947508982E909493CFC9 -:1013C00080E094CF81E0DF91CF911F910F91FF904A -:1013D000EF90DF90CF90BF90AF909F900895E82F4F -:1013E000F0E0EA5BFE4F80810895CF92DF92EF92AA -:1013F000FF920F931F93CF93DF938CEE92E00E94A6 -:10140000C30636E4E32E31E0F32EC0E0D0E047EE31 -:10141000C42E42E0D42E0EED12E0DF93CF93DF9284 -:10142000CF920E945C0784EE92E00E94C306F7010F -:1014300081917F0190E00E9427209F938F931F93BB -:101440000F930E945C078CED92E00E94C3062196E8 -:101450008DB79EB708960FB6F8949EBF0FBE8DBF8E -:10146000CE30D105D1F6DF91CF911F910F91FF9032 -:10147000EF90DF90CF9008958B3B910578F4883AF8 -:10148000910540F5853A9105D0F48430910508F036 -:10149000B1C08130910509F4ADC06BC0803E9105AB -:1014A00008F467C0883E910508F4A4C09C01205F41 -:1014B00031092031310508F05CC090650895853A06 -:1014C000910509F459C0863A910509F458C083E89A -:1014D00090E40895883A910509F454C0893A910539 -:1014E00009F453C08A3A910509F452C08B3A910528 -:1014F00009F451C08C3A910509F450C08D3A910518 -:1015000009F44FC0803B910509F44EC08E3A910515 -:1015100009F44DC08F3A910509F44CC0813B910507 -:1015200009F44BC0823B910509F44AC0833B910505 -:1015300009F449C0843B910509F448C0853B9105F5 -:1015400009F447C0863B910509F446C0873B9105E5 -:1015500009F445C0883B910509F444C0893B9105D5 -:1015600009F443C08A3B910509F042C08AE296E43F -:10157000089580E090E0089581E890E4089582E87D -:1015800090E4089582EE94E4089589EE94E4089539 -:101590008AEE94E4089585EB94E4089586EB94E450 -:1015A000089587EB94E408958CEC94E408958DEC11 -:1015B00094E4089583E895E408958AE895E408950D -:1015C00082E995E4089584E995E4089581E296E43A -:1015D000089583E296E4089584E296E4089585E20E -:1015E00096E4089586E296E4089587E296E40895E5 -:1015F00080E094E40895089596E0799FF001112425 -:1016000094E5899FE00DF11D1124E60FF11DEE0F09 -:10161000FF1FEC51FF4F859194910895880F991FFA -:10162000805A9040FC01859194910895880F991FEC -:1016300080529F4FFC0185919491089526E0729FFE -:10164000F001112444E5849FE00DF11D1124E60F03 -:10165000F11DEE0FFF1FEC51FF4F25913491C90191 -:101660009A9581159F4110F4C9010895C9019052BE -:101670008115904128F4C9019F700E94160B0895AE -:10168000C90190538115904120F4C9019927906CAC -:101690000895211580E5380769F40E94B1199FEF7C -:1016A00024E34CE0915020404040E1F700C00000AE -:1016B0000C940C21213080E5380751F48CE593E03F -:1016C0000E94C3068091C10181608093C101089589 -:1016D000C90190558115904108F050C0832F99277A -:1016E0008F70992781309105D9F4A901437055274E -:1016F00002C0880F991F4A95E2F79C68A90164E02F -:10170000440F551F6A95E1F744275370842B952B9E -:1017100073E0220F331F7A95E1F7207633271DC03F -:101720008230910529F4922F8827816F906A08955D -:1017300083309105A9F4A9014370552781E090E019 -:1017400002C0880F991F4A95E2F79C6843E0220F78 -:10175000331F4A95E1F7207E3770822B932B089533 -:101760000497F1F4A9014370552781E090E002C08D -:10177000880F991F4A95E2F79A68E8CFC9019057F8 -:101780008115904120F4C9019F7090620895C901AC -:1017900090588115904120F4C9019F70906A089576 -:1017A000203E3105E0F4203C310558F52133310568 -:1017B00009F470C048F42932310509F464C02A32B2 -:1017C000310509F46EC074C029333105F1F02238B7 -:1017D0003105D9F02533310509F44EC069C0233EE7 -:1017E000310589F138F4203E3105C1F0223E310542 -:1017F000E1F05EC0263E310569F1273E3105A9F1D1 -:1018000057C0C9010E940E0B08958091D20180FD3E -:1018100002C081FF4DC080EE90E04BC08091D201AC -:1018200080FFF9CF89E390E044C08091D20182FF2C -:101830000EC08091D20184FF03C080E090E039C0E7 -:1018400083EE90E036C08091D20182FFF2CF82EE2B -:1018500090E02FC08091D20183FF0BC08091D20114 -:1018600084FDEBCF87EE90E024C08091D20183FF0E -:10187000F5CF86EE90E01DC08091D20185FF07C0B4 -:1018800089E290E016C08091D20185FFF9CF85E30F -:1018900090E00FC08091D20186FF07C08AE290E0FD -:1018A00008C08091D20186FFF9CF81E390E001C0AA -:1018B000C9010E943C0A0895089580915F0108952E -:1018C0009FB7F894109256019FBF9091D801943021 -:1018D00009F058C09091E9009F702091EC0020FF22 -:1018E00002C020E801C020E0292B94E09093E90099 -:1018F0009091EB0090FF43C09091EE0097FF3FC0A6 -:1019000090915401992321F09091E80095FF37C000 -:101910001092540196E03091E80035FD15C03091E9 -:10192000D801343061F53091EB0035FD28C091507D -:1019300021F481E08093540122C0EFE9FFE0319768 -:10194000F1F700C00000E7CF8093F1008091E8003C -:1019500085FD0AC08091E80080FFFCCF8091E800FF -:101960008E778093E80006C08FB7F89491E090934B -:1019700056018FBF2F702093E90080E008952F70EB -:101980002093E9008FEF0895CF93DF9300D01F924B -:10199000CDB7DEB72091D801243019F523E0298393 -:1019A0009B838A832093E9008FEF9091E800815018 -:1019B00095FD06C095ED9A95F1F700008111F5CFE0 -:1019C0008091E80085FF0DC040E050E063E070E0EA -:1019D000CE0101960E94610F8091E8008E7780937E -:1019E000E8000F900F900F90DF91CF910895CF9363 -:1019F000DF9300D01F92CDB7DEB72091D8012430FD -:101A000021F522E029839B838A8383E08093E90088 -:101A10008FEF9091E800815095FD06C095ED9A9565 -:101A2000F1F700008111F5CF8091E80085FF0DC02E -:101A300040E050E063E070E0CE0101960E94610F4B -:101A40008091E8008E778093E8000F900F900F90C0 -:101A5000DF91CF9108952091D8012430F1F422E054 -:101A60002093E9002FEF3091E800215035FD06C0AA -:101A700035ED3A95F1F700002111F5CF2091E800FE -:101A800025FF0BC040E050E065E070E00E94610F70 -:101A90008091E8008E778093E8000895CF93DF93DC -:101AA000EC018091D801843039F581E08093E90020 -:101AB0008FEF9091E800815095FD06C095ED9A95C5 -:101AC000F1F700008111F5CF8091E80085FF14C087 -:101AD00040E050E068E070E0CE010E94610F80912C -:101AE000E8008E778093E80088E0FE01A7E5B1E08A -:101AF00001900D928A95E1F7DF91CF91089583E9E6 -:101B000093E00E94C3068091D701811109C00E9411 -:101B1000F3100E9450118091E20084608093E200F3 -:101B200008958FE893E00E94C3061092D7010895AC -:101B30008BE893E00C94C30687E893E00C94C3060B -:101B400083E893E00E94C3060C947E2080915501A7 -:101B50008F5F8093550162E30E94A92B911135C0DC -:101B60001092550180915601882379F18091D80116 -:101B7000843049F58091E9008F709091EC0090FFDE -:101B800002C090E801C090E0982B84E08093E900C7 -:101B90008091EB0080FF14C08091EE0087FF10C0A1 -:101BA0008091E80085FF03C01092F100F9CF809189 -:101BB000E80080FF05C08091E8008E778093E80000 -:101BC0009F709093E90010925601089542E061ECF5 -:101BD00081E00E946D1042E061EC82E00E946D1095 -:101BE00042E061EC83E00E946D1042E261EC84E02F -:101BF0000C946D108091DA01833009F453C030F4F5 -:101C0000813071F0823009F48CC008958A3009F473 -:101C100078C08B3009F45EC0893009F09AC020C0CA -:101C20008091D901813A09F094C08091E800877FC2 -:101C30008093E8008091DD019091DE01892B21F0F5 -:101C400060E080E090E003C068E087E591E070E04C -:101C50000E94AA0F8091E8008B778093E800089596 -:101C60008091D901813209F074C08091DD01909199 -:101C7000DE01892B09F06DC08091E800877F809399 -:101C8000E8008091E80082FD05C08091D8018111B3 -:101C9000F8CF5FC08091F10080935F018091E800F0 -:101CA0008B7753C08091D901813A09F052C080915D -:101CB000DD019091DE01892B09F04BC08091E80095 -:101CC000877F8093E8008091E80080FFFCCF8091BF -:101CD0000C0136C08091D9018132D9F58091DD01A6 -:101CE0009091DE01892BA9F58091E800877F809390 -:101CF000E8000E94A2108091DB0180930C010C94FB -:101D0000B1198091D901813221F58091E800877F56 -:101D10008093E8000E94A2108091DC018093600112 -:101D200008958091D901813AA1F48091E800877FDC -:101D30008093E8008091E80080FFFCCF80916001F3 -:101D40008093F1008091E8008E778093E8000C94F6 -:101D5000A210089584B7877F84BF88E10FB6F894F6 -:101D600080936000109260000FBE90E080E80FB694 -:101D7000F89480936100909361000FBE0E947514E7 -:101D80000E94F3100E9450118091E20084608093C1 -:101D9000E20080E69CE00E94BD1F78940E94CA1376 -:101DA0000E94771482E091E00E94E71382E793E0BB -:101DB0000E94C3068091D801853089F48EE693E0B5 -:101DC0000E94C3060E9441208091D601882391F38E -:101DD0000E946920882371F30E944B0FEBCF0E9471 -:101DE000A514E8CF292F332723303105A9F06CF44F -:101DF0002130310509F442C02230310509F043C0D9 -:101E000084E790E02BEC33E042C021323105C9F089 -:101E10002232310519F137C099278130910541F0FF -:101E20008230910541F0892B71F5E7ECF3E005C0B4 -:101E3000EFEAF3E002C0E7E9F3E0849190E09F016C -:101E400026C0643000F5E62FF0E0EE0FFF1FEF5DD7 -:101E5000FE4F2081318189E090E019C0643098F410 -:101E6000E62FF0E0DF01AA0FBB1FA75EBE4F2D914A -:101E70003C91EB5EFE4F808190E009C082E190E0F2 -:101E80002FE334E004C080E090E020E030E0FA018D -:101E900031832083089580E189BD82E189BD09B441 -:101EA00000FEFDCF8091D8008F7D8093D800809177 -:101EB000E00082608093E0008091E00081FDFCCF33 -:101EC0000895CF92DF92EF92FF920F931F93CF93DB -:101ED000DF937C018B01EA010E94C310811131C0A4 -:101EE000209731F088819981081B190BE80EF91EA3 -:101EF000C12CD12C0115110519F18091E80085FD47 -:101F000014C08091E8008E778093E800209741F01C -:101F1000888199818C0D9D1D9983888385E011C0EE -:101F20000E94C310882331F30CC0F70181917F0117 -:101F30008093F10001501109FFEFCF1ADF0ADACFC9 -:101F400080E0DF91CF911F910F91FF90EF90DF9094 -:101F5000CF9008952091DF013091E00126173707D7 -:101F600048F06115710539F42091E8002E7720932F -:101F7000E80001C0B901FC0120E061157105B9F16B -:101F80008091D801882309F440C0853009F43FC00E -:101F90008091E80083FD3DC08091E80082FF06C08B -:101FA0008091E80082FF26C080E008958091E800DB -:101FB00080FFE3CF2091F3008091F20090E0922B1C -:101FC0006115710551F08830910538F42191209305 -:101FD000F100615071090196F3CF21E0089709F0F3 -:101FE00020E08091E8008E778093E800C6CF211131 -:101FF000C7CFD6CF8091D801882339F0853039F00A -:102000008091E80083FFCCCF04C082E0089583E094 -:10201000089581E008952091DF013091E0012617B5 -:10202000370748F06115710539F42091E8002E77E3 -:102030002093E80001C0B901FC0120E061157105A1 -:10204000C1F18091D801882309F441C0853009F499 -:1020500040C08091E80083FD3EC08091E80082FF8F -:1020600006C08091E80082FF27C080E0089580913B -:10207000E80080FFE3CF2091F3008091F20090E030 -:10208000922B6115710559F08830910540F4249127 -:102090002093F1003196615071090196F2CF21E051 -:1020A000089709F020E08091E8008E778093E8009F -:1020B000C5CF2111C6CFD5CF8091D801882339F063 -:1020C000853039F08091E80083FFCBCF04C082E0F7 -:1020D000089583E0089581E00895982F973058F58A -:1020E0009093E900981739F07091EC002091ED0081 -:1020F0005091F00003C0242F762F50E021FF19C02B -:102100003091EB003E7F3093EB003091ED003D7F4E -:102110003093ED003091EB0031603093EB00709321 -:10212000EC002093ED005093F0002091EE0027FF8B -:1021300007C09F5FD3CF8F708093E90081E008953F -:1021400080E008958091D90187FD05C08091E80065 -:1021500080FF0EC012C08091E80082FD05C0809112 -:10216000D8018111F8CF08958091E8008B7708C0DD -:102170008091D8018111EACF08958091E8008E778F -:102180008093E80008958091E4009091E50045E691 -:102190002091EC0020FF21C02091E80020FD21C00B -:1021A0002091D801222389F0253089F02091EB007D -:1021B00025FD0FC02091E4003091E5002817390774 -:1021C00039F3415041F0C901E3CF82E0089583E043 -:1021D000089581E0089584E008952091E80022FFA9 -:1021E000DFCF80E008950E9461110E946911E0EE46 -:1021F000F0E0808181608083E8EDF0E080818F777E -:10220000808319BCA7EDB0E08C918E7F8C93808188 -:102210008F7E80831092D70108950F931F93CF93E1 -:10222000DF930E9461110E946911C8EDD0E088819E -:102230008F77888388818068888388818F7D888371 -:1022400019BC1092D8011092D4011092D6011092AC -:10225000D50100EE10E0F80180818B7F80838881BA -:102260008160888342E060E080E00E946D10E1EED2 -:10227000F0E080818E7F8083E2EEF0E080818160FB -:102280008083808188608083F80180818E7F808355 -:10229000888180618883DF91CF911F910F9108958C -:1022A000E8EDF0E080818F7E8083E7EDF0E08081D3 -:1022B0008160808384E082BF81E08093D7010C94A9 -:1022C0000D11E8EDF0E080818E7F80831092E200B6 -:1022D00008951092DA001092E10008951F920F9273 -:1022E0000FB60F9211242F933F934F935F936F93E9 -:1022F0007F938F939F93AF93BF93EF93FF938091BF -:10230000E10082FF0BC08091E20082FF07C0809154 -:10231000E1008B7F8093E1000E94A60D8091DA009E -:1023200080FF1FC08091D80080FF1BC08091DA0021 -:102330008E7F8093DA008091D90080FF0DC080E10C -:1023400089BD82E189BD09B400FEFDCF81E08093A3 -:10235000D8010E947F0D05C019BC1092D8010E94BF -:10236000910D8091E10080FF19C08091E20080FF13 -:1023700015C08091E2008E7F8093E2008091E200A0 -:1023800080618093E2008091D80080628093D800C1 -:1023900019BC85E08093D8010E949C0D8091E100DA -:1023A00084FF30C08091E20084FF2CC080E189BDB1 -:1023B00082E189BD09B400FEFDCF8091D8008F7DF8 -:1023C0008093D8008091E1008F7E8093E10080911E -:1023D000E2008F7E8093E2008091E2008160809332 -:1023E000E2008091D401882311F084E007C080913D -:1023F000E30087FF02C083E001C081E08093D80141 -:102400000E94A00D8091E10083FF29C08091E2002D -:1024100083FF25C08091E100877F8093E10082E007 -:102420008093D8011092D4018091E1008E7F809337 -:10243000E1008091E2008E7F8093E2008091E200D3 -:1024400080618093E20042E060E080E00E946D10D5 -:102450008091F00088608093F0000E94980DFF91B9 -:10246000EF91BF91AF919F918F917F916F915F910C -:102470004F913F912F910F900FBE0F901F90189585 -:102480001F920F920FB60F9211242F933F934F93E9 -:102490005F936F937F938F939F93AF93BF93CF93EC -:1024A000EF93FF93C091E900CF708091EC00109200 -:1024B000E9008091F000877F8093F00078940E947B -:1024C0007C121092E9008091F00088608093F00007 -:1024D000C093E900FF91EF91CF91BF91AF919F9190 -:1024E0008F917F916F915F914F913F912F910F90BD -:1024F0000FBE0F901F9018951F93CF93DF93CDB70A -:10250000DEB7AA970FB6F894DEBF0FBECDBFE9EDD8 -:10251000F1E08091F100819321E0E13EF207C9F7FB -:102520000E94FA0D8091E80083FF1CC12091D9011F -:102530003091DA01832F90E08A30910508F012C1C2 -:10254000FC01EA5AFF4F0C94C92B203881F0223845 -:1025500009F008C18091DD018F708093E9008091BE -:10256000EB0085FB882780F91092E90006C0809176 -:10257000D5019091D601911182609091E800977FEA -:102580009093E8008093F1001092F100C5C0822F73 -:102590008D7F09F0E7C0222319F0223061F0E2C0FC -:1025A0008091DB01813009F0DDC0333009F080E03B -:1025B0008093D60128C08091DB01811124C0209135 -:1025C000DD012F7009F4CEC02093E9008091EB006B -:1025D00080FF19C08091EB00333011F4806211C08C -:1025E00080618093EB0081E090E0022E01C0880FB3 -:1025F0000A94EAF78093EA001092EA008091EB00D7 -:1026000088608093EB001092E9008091E800877F5A -:1026100086C02111A7C01091DB011F778091E300D4 -:102620008078812B8093E3008091E800877F8093FE -:10263000E8000E94A2108091E80080FFFCCF80910A -:10264000E30080688093E300112311F083E001C070 -:1026500082E08093D80186C02058223008F082C0E2 -:102660008091DB019091DC018C3D23E0920779F5AC -:1026700083E08A838AE289834FB7F894DE01139658 -:1026800020E03EE051E2E32FF0E050935700E49168 -:1026900020FF03C0E295EF703F5FEF708E2F90E058 -:1026A000EA3010F0C79601C0C0968D939D932F5FBE -:1026B000243149F74FBF8091E800877F8093E8007D -:1026C0006AE270E0CE0101960E94AA0F14C0AE012A -:1026D0004F5F5F4F6091DD010E94F20E009709F499 -:1026E00041C02091E800277F2093E800BC01898148 -:1026F0009A810E940B108091E8008B778093E8000C -:1027000031C0203879F58091E800877F8093E80018 -:102710008091D4018093F1008091E8008E778093BE -:10272000E8000E94A2101EC021111CC09091DB0184 -:102730009230C0F48091E800877F8093E800909306 -:10274000D4010E94A2108091D401811104C0809113 -:10275000E30087FF02C084E001C081E08093D801DC -:102760000E94E60D8091E80083FF0AC08091E80096 -:10277000877F8093E8008091EB0080628093EB007C -:10278000AA960FB6F894DEBF0FBECDBFDF91CF91F2 -:102790001F910895CF938091D8018823B1F0809143 -:1027A000E9008F709091EC0090FF02C090E801C0AA -:1027B00090E0C92FC82B1092E9008091E80083FDBA -:1027C0000E947C12CF70C093E900CF91089590933E -:1027D0006601809365010895E0916501F0916601BD -:1027E000309721F00190F081E02D099480E0089568 -:1027F000FF920F931F93CF93DF938C01E0916501BC -:10280000F0916601309799F10280F381E02D0995EE -:102810008091C10182FF2BC080FF04C08BE395E053 -:102820000E94C306E80188E0F82E05E315E08091D8 -:10283000C10180FF0BC088811F928F931F930F935C -:102840000E945C070F900F900F900F90FA942196C2 -:10285000F110EDCF8091C10180FF09C083E395E0C5 -:10286000DF91CF911F910F91FF900C94C306DF91E0 -:10287000CF911F910F91FF900895E0916501F09124 -:102880006601309721F00480F581E02D09940895C8 -:1028900020916301309164018217930771F0909346 -:1028A000640180936301E0916501F09166013097C6 -:1028B00021F00680F781E02D0994089520916101AF -:1028C000309162018217930771F0909362018093B7 -:1028D0006101E0916501F0916601309721F000847B -:1028E000F185E02D0994089508950C9474140E94C4 -:1028F000A9200E94A7080C946F21CF93C82F809124 -:10290000C10182FF1EC080FF04C084E595E00E94E3 -:10291000C3068091C10180FF0CC01F92CF932FE4AA -:1029200035E03F932F930E945C070F900F900F901C -:102930000F908091C10180FF04C08DE495E00E945A -:10294000C3068C2FCF910C945C0CCF92DF92EF9248 -:10295000FF920F931F93CF93DF93CDB7DEB72B97E3 -:102960000FB6F894DEBF0FBECDBF0E94C40838E694 -:10297000E32E31E0F32E00E010E0C02E802F0E9405 -:10298000EF09F701D1907F01D826B1F40F5F1F4FF7 -:102990000E30110591F78FEF89838A831B820E9485 -:1029A000B2208160782F9D838C8349815A816B810D -:1029B0008D810E94481541C09091C10191FF04C0D2 -:1029C0008B870E94F5098B8520E030E04D2D50E08B -:1029D000922FBA01022E02C0759567950A94E2F70C -:1029E00060FF25C02E83CF82EE24E394F12C02C039 -:1029F000EE0CFF1C9A95E2F790E08E219F2121E0DA -:102A0000892B09F420E028870E94B2208160782F6A -:102A10009A8789874E815F8168858A850E944815DB -:102A2000F801E859FE4F80818E25808306C02F5F14 -:102A30003F4F2630310561F6A9CF0E94D624109170 -:102A400067010E94EC131817A1F00E94EC13809309 -:102A500067012B960FB6F894DEBF0FBECDBFDF9196 -:102A6000CF911F910F91FF90EF90DF90CF900C943A -:102A70007D142B960FB6F894DEBF0FBECDBFDF914D -:102A8000CF911F910F91FF90EF90DF90CF9008951D -:102A9000CF93DF93CDB7DEB72B970FB6F894DEBF99 -:102AA0000FBECDBF4F83588769877A878B87DE013A -:102AB000119686E0FD0111928A95E9F785E0FE0105 -:102AC000379601900D928A95E1F749815A816B8181 -:102AD0007C818D819E810E947D1C2B960FB6F8947F -:102AE000DEBF0FBECDBFDF91CF910895CF93C82F2A -:102AF000882309F4C1C0823859F40E94EC1381FD87 -:102B0000BBC089E30E941C1F0E94971F89E30CC071 -:102B1000833879F40E94EC1380FDAEC083E50E94F7 -:102B20001C1F0E94971F83E50E943D1FCF910C94AC -:102B3000971F843859F40E94EC1382FD9DC087E4EE -:102B40000E941C1F0E94971F87E4EECF8CEF8C0F12 -:102B5000813A48F48C2F0E94322981118DC08C2F2C -:102B60000E941C1FE3CF80E28C0F883048F4C770AE -:102B700081E001C0880FCA95EAF70E945E1FD6CF98 -:102B80008BE58C0F833078F4C53A29F0C63A31F4DE -:102B900082E890E005C081E890E002C083E890E020 -:102BA000CF910C94481488E58C0F833108F064C0F1 -:102BB000C83A39F1C93A41F1CA3A49F1CB3A51F12F -:102BC000CC3A59F1CD3A61F1C03B69F1CE3A71F19D -:102BD000CF3A79F1C13B81F1C23B89F1C33B91F11D -:102BE000C43B99F1C53BA1F1C63BA9F1C73BB1F18B -:102BF000C83BB9F1C93BC1F1CA3BC9F58AE292E0D1 -:102C000038C082EE90E035C089EE90E032C08AEEA6 -:102C100090E02FC085EB90E02CC086EB90E029C0BF -:102C200087EB90E026C08CEC90E023C08DEC90E028 -:102C300020C083E891E01DC08AE891E01AC082E9D3 -:102C400091E017C084E991E014C081E292E011C0E4 -:102C500083E292E00EC084E292E00BC085E292E053 -:102C600008C086E292E005C087E292E002C080E000 -:102C700090E0CF910C945E14CF910895882309F4CD -:102C80004BC0823859F40E94EC1381FF45C089E3A0 -:102C90000E941C1F0E94971F89E30CC0833871F4A7 -:102CA0000E94EC1380FF38C083E50E941C1F0E9425 -:102CB000971F83E50E943D1F0C94971F843859F499 -:102CC0000E94EC1382FF28C087E40E941C1F0E9410 -:102CD000971F87E4EFCF9CEF980F913A58F390E25B -:102CE000980F983050F4877091E001C0990F8A9541 -:102CF000EAF7892F0E94641FDFCF9BE5980F93307E -:102D000020F480E090E00C944814885A833120F439 -:102D100080E090E00C945E140895882321F00E94D6 -:102D20005E1F0C94971F0895882321F00E94641F52 -:102D30000C94971F0895CF92DF92EF92FF920F931A -:102D40001F93CF93DF93CDB7DEB728970FB6F894D4 -:102D5000DEBF0FBECDBF8C0185E0F801DE0111960C -:102D600001900D928A95E1F7F80140813181F2805E -:102D7000258122952F7083819481892B31F03F3FEB -:102D800031F481E04F3F19F403C081E001C080E0DD -:102D900080FDC6C249833A8389819A812F830E942C -:102DA000DA1E9E8388870E94D91E0E94AC1D4E8128 -:102DB000E42FE295EF70F0E0E05AFF4F2F81688535 -:102DC0000C94C92B842F807F142F1F70882311F03F -:102DD0001295107FFF2059F0112309F456C2812F5C -:102DE00068870E946E1F0E94971F68854EC2862FBB -:102DF0000E943E16112309F493C2812F0E94741F72 -:102E000028960FB6F894DEBF0FBECDBFDF91CF91ED -:102E10001F910F91FF90EF90DF90CF900C94971F30 -:102E2000342F307F842F8F70303211F08295807F65 -:102E3000662319F0613019F12CC0FF20B1F0222374 -:102E400009F494C1213009F091C128960FB6F89485 -:102E5000DEBF0FBECDBFDF91CF911F910F91FF90CD -:102E6000EF90DF90CF900C947E1F222319F0213039 -:102E700009F456C28E830E94811F8E818AC1FF2071 -:102E800021F0263008F04CC271C1253008F048C24C -:102E900080C1FF2021F0222309F468C1F6C122235A -:102EA00009F477C106C2242F26952695237030E0B9 -:102EB0002115310521F021303105C9F031C2FF2043 -:102EC00021F0862F942F937002C080E090E0289626 -:102ED0000FB6F894DEBF0FBECDBFDF91CF911F912B -:102EE0000F91FF90EF90DF90CF900C944814FF204B -:102EF00021F0862F942F937002C080E090E02896F6 -:102F00000FB6F894DEBF0FBECDBFDF91CF911F91FA -:102F10000F91FF90EF90DF90CF900C945E14862F6E -:102F2000FF2019F00E945C2302C00E94C42328964F -:102F30000FB6F894DEBF0FBECDBFDF91CF911F91CA -:102F40000F91FF90EF90DF90CF900C944924842F45 -:102F5000837009F076C0F110E3C1262F22952695E3 -:102F60002770220F220F862F8F70C82ED12CE12CB4 -:102F7000F12C022E04C0CC0CDD1CEE1CFF1C0A94AC -:102F8000D2F764FF10C06FE070E080E090E004C012 -:102F9000660F771F881F991F2A95D2F76095709545 -:102FA0008095909503C060E070E0CB01242F2695BA -:102FB00026952370422F50E042305105D1F0433026 -:102FC000510559F16C297D298E299F2941305105E0 -:102FD00041F128960FB6F894DEBF0FBECDBFDF914A -:102FE000CF911F910F91FF90EF90DF90CF900C94B5 -:102FF000D11D6C297D298E299F2928960FB6F8941A -:10300000DEBF0FBECDBFDF91CF911F910F91FF901B -:10301000EF90DF90CF900C94EB1D0E94D11DC70163 -:10302000B60128960FB6F894DEBF0FBECDBFDF9174 -:10303000CF911F910F91FF90EF90DF90CF900C9464 -:10304000B71DFF2019F0842F817001C08695882359 -:1030500009F466C1262F229526952770220F220F8C -:10306000862F8F70C82ED12CE12CF12C022E04C09B -:10307000CC0CDD1CEE1CFF1C0A94D2F764FF10C0C0 -:103080006FE070E080E090E004C0660F771F881F5B -:10309000991F2A95D2F7609570958095909503C0F9 -:1030A00060E070E0CB01242F269526952370422FF7 -:1030B00050E042305105D1F04330510559F16C29AF -:1030C0007D298E299F294130510541F128960FB65F -:1030D000F894DEBF0FBECDBFDF91CF911F910F914E -:1030E000FF90EF90DF90CF900C94A51E6C297D2966 -:1030F0008E299F2928960FB6F894DEBF0FBECDBF4C -:10310000DF91CF911F910F91FF90EF90DF90CF90C3 -:103110000C94BF1E0E94A51EC701B60128960FB6CB -:10312000F894DEBF0FBECDBFDF91CF911F910F91FD -:10313000FF90EF90DF90CF900C948B1E603FC9F111 -:1031400018F4603E50F49CC0623F09F461C008F47A -:103150004BC0633F09F470C093C0162F1F70842FBB -:103160008F71FF2099F00E94241E812F28960FB6A0 -:10317000F894DEBF0FBECDBFDF91CF911F910F91AD -:10318000FF90EF90DF90CF900C948D160E94451E1B -:10319000812F28960FB6F894DEBF0FBECDBFDF910A -:1031A000CF911F910F91FF90EF90DF90CF900C94F3 -:1031B0009416FF20A9F0253008F0B2C0842F8F713B -:1031C00028960FB6F894DEBF0FBECDBFDF91CF912A -:1031D0001F910F91FF90EF90DF90CF900C946A1E9B -:1031E000263008F09DC0EACFFF20A1F0842F8F7118 -:1031F00028960FB6F894DEBF0FBECDBFDF91CF91FA -:103200001F910F91FF90EF90DF90CF900C94241EB0 -:10321000FF2061F3842F8F7128960FB6F894DEBFDC -:103220000FBECDBFDF91CF911F910F91FF90EF9017 -:10323000DF90CF900C94451EFF2091F0842F8F716A -:1032400028960FB6F894DEBF0FBECDBFDF91CF91A9 -:103250001F910F91FF90EF90DF90CF900C940F1E75 -:1032600028960FB6F894DEBF0FBECDBFDF91CF9189 -:103270001F910F91FF90EF90DF90CF900C94051E5F -:10328000FF20A1F0222309F4B1CF862F28960FB694 -:10329000F894DEBF0FBECDBFDF91CF911F910F918C -:1032A000FF90EF90DF90CF900C947615222309F4D5 -:1032B000B1CF862F28960FB6F894DEBF0FBECDBFD4 -:1032C000DF91CF911F910F91FF90EF90DF90CF9002 -:1032D0000C943E164F70C8010E94650728960FB6E1 -:1032E000F894DEBF0FBECDBFDF91CF911F910F913C -:1032F000FF90EF90DF90CF900C942A1D4F70C80183 -:1033000028960FB6F894DEBF0FBECDBFDF91CF91E8 -:103310001F910F91FF90EF90DF90CF900C94FB0ADC -:1033200028960FB6F894DEBF0FBECDBFDF91CF91C8 -:103330001F910F91FF90EF90DF90CF9008950E9422 -:103340007B1F0E94501F0E94971F0E9477250E949A -:10335000492480E090E00E94481480E090E00C94C2 -:103360005E140E946B1F0C949F190E94DA1E292F75 -:1033700022952F7030E02C3031054CF42A30310585 -:103380006CF4225031092230310590F407C02C3002 -:10339000310551F02F30310539F00AC0803E10F070 -:1033A000803F31F481E0089593FB882780F90895E8 -:1033B00080E00895CF93DF9300D000D01F92CDB767 -:1033C000DEB70F900F900F900F900F90DF91CF917D -:1033D0000895CF93DF9300D000D000D0CDB7DEB7F3 -:1033E00026960FB6F894DEBF0FBECDBFDF91CF910A -:1033F00008951F93CF93DF93C091760116E08091DB -:103400007701C81799F0D0E01C9FF0011D9FF00DC7 -:103410001124E858FE4F408151816281738184817B -:1034200095810E94E9192196C770E9CFDF91CF916C -:103430001F9108954091A8015091A9016091AA019E -:103440007091AB018091AC019091AD010C94E919A0 -:10345000CF938091AD0182958F7009F05FC080910C -:10346000AA01882309F45AC020917601A09177011E -:103470006091A8017091A9018091AB019091AC017C -:1034800031E06F3F09F030E0B32FC6E02A1709F4AE -:1034900045C0009721F07F3F21F44B2F03C041E04E -:1034A00001C040E030E040FD35C0C29FF001C39F45 -:1034B000F00D1124E858FE4F418174132BC0408158 -:1034C000641328C04281411125C0438154814817AB -:1034D000590710F441505109481B590B483C5105FC -:1034E000C8F48091AD018F7080618093AD0186E05A -:1034F000829FF001839FF00D1124E358FE4F8081DD -:103500008F708061808388EA91E00E949B16CF9142 -:103510000C94F9192F5F3F4F2770B8CFCF910895C2 -:10352000CF92DF92EF92FF920F931F93CF93DF938F -:10353000CDB7DEB762970FB6F894DEBF0FBECDBF32 -:103540008C0185E0F801DE011D9601900D928A95AF -:10355000E1F7D8014C9111965C91119712966C91FC -:1035600012971396ED90FC9014977091A801E0913A -:10357000A9012091AB013091AC012115310531F049 -:10358000EF3F31F481E07F3F19F403C081E001C0D7 -:1035900080E0B82FB170CB2E80FD6CC1D090AA0115 -:1035A000DD2009F4F5C0F091AD01E216F30638F024 -:1035B000C701821B930B883C910548F09BC0209566 -:1035C00030952E0D3F1D283C310508F093C08F2FFC -:1035D000807F09F052C0E51314C0741312C0D62EB8 -:1035E00061110FC0FF70F061F093AD010E941A1AD3 -:1035F00088EA91E00E949B168091AD01F8018583D5 -:103600006CC1EF2831F05F3F31F481E04F3F19F496 -:1036100003C081E001C080E080FD03C081E0862717 -:1036200001C080E0F82FF170FF2E80FF1CC0809158 -:1036300076012091770136E0821709F428C190E0E5 -:10364000389FF001399FF00D1124E858FE4F718129 -:10365000571306C07081471303C07281671303C0FC -:1036600001968770E9CFD62E662309F436C1809182 -:10367000AD0181608093AD0153C0E51308C07413A0 -:1036800006C0611104C0D8011596FC93AEC04D87E9 -:103690005E878D859E856A8B0E94B5196A8988230D -:1036A00029F1D62E662311F12091AD01822F82954A -:1036B0008F7090E002970CF460C08091A801909107 -:1036C000A90198878F831986FB86EA862C87CE010D -:1036D000079651C0E51731F14D875E878D859E8530 -:1036E0006A8B0E94B5196A8981112EC0C8010E9497 -:1036F0009B16A4C08F2F807F69F77E2DF98AE88AF8 -:1037000089890E94DA1988EA91E00E949B16E8EA0A -:10371000F1E086E0DF011D928A95E9F70E941A1A0E -:10372000D12CDBC07413D8CF6111D6CFD801159638 -:10373000FC93C8010E949B16E8EAF1E086E0DF01F5 -:103740001D928A95E9F7C9C0D62E662379F2209199 -:10375000AD01822F82958F7090E0029774F0809176 -:10376000A8019091A9019A8389831B82FD82EC8232 -:103770002E83CE0101960E949B1686E0F801A8EAEE -:10378000B1E001900D928A95E1F70E94281A6FC06E -:10379000E216F30628F0C701821B930B9C0104C0BC -:1037A000209530952E0D3F1D283C310508F052C064 -:1037B000D62E662309F49ACFE5132CC074132AC0C1 -:1037C0008091AD0180FD1DC0982F92959F70C9F02A -:1037D000D80115968C9315979F3039F09F5F92957D -:1037E000907F8F70892B15968C93C8010E949B1631 -:1037F00086E0F801A8EAB1E001900D928A95E1F720 -:1038000036C086E0F801A8EAB1E001900D928A95F1 -:10381000E1F763C04D875E878D859E850E94B5194F -:10382000882379F086E0F801A8EAB1E001900D92D2 -:103830008A95E1F70E94281A0E941A1ADD24D3946F -:103840004CC08091AD0181608093AD01C8010E94A0 -:103850009B1643C07E2DF98AE88A89890E94DA196D -:10386000E8EAF1E086E0DF011D928A95E9F70E941F -:103870001A1A33C0662309F439CF4D875E878D85C8 -:103880009E850E94B519882309F430CFCBCF4D8790 -:103890005E878D859E850E94DA1E292F22952F70C6 -:1038A00030E0223031052CF49F7041F0811106C0C8 -:1038B0000CC0243031052CF49F7049F4805E8830B0 -:1038C00020F0C8010E949B16CF2CDC2C06C0D8012A -:1038D00015969C91907F91F7F8CF8D2D62960FB63B -:1038E000F894DEBF0FBECDBFDF91CF911F910F9136 -:1038F000FF90EF90DF90CF9008951F93CF93DF93C9 -:10390000CDB7DEB72C970FB6F894DEBF0FBECDBF94 -:103910004F83588769877A878B879C87CE01079664 -:103920000E94901A8823C1F02F8138858A859B8553 -:10393000892B31F03F3F11F080E003C02F3FE1F7CA -:1039400081E0811147C04F81588569857A858B85D3 -:103950009C850E94E9193EC086E0FE013796DE0193 -:10396000119601900D928A95E1F7FF81E8854A85CD -:103970005B854115510531F0EF3F31F481E0FF3FA8 -:1039800019F403C081E001C080E080FD23C02091D4 -:10399000770130E0C901019687709927609176011F -:1039A00070E086179707F1F1F983EA835D834C8312 -:1039B00096E0929FD001939FB00D1124A858BE4F5E -:1039C000FE01319601900D929A95E1F7809377016F -:1039D0000E94F91916E0809176019091770189177C -:1039E00079F1189FC001112488589E4F0E94901AA7 -:1039F000882331F1E09176011E9FF0011124E858EF -:103A0000FE4F4081518162817381848195810E9442 -:103A1000E9198091760190E001968770992780934B -:103A20007601D9CF0E94B1191092770110927601D8 -:103A3000E8EAF1E086E0DF011D928A95E9F7CACF56 -:103A40002C960FB6F894DEBF0FBECDBFDF91CF919D -:103A50001F910895EF92FF920F931F93CF93DF93DF -:103A60009C01009709F471C0F12CEE24E394E90164 -:103A70002196F9018491843740F4843008F056C0CF -:103A8000813081F0823021F160C0853709F449C06E -:103A9000C0F19CE7980F903708F057C08F770E94CD -:103AA0003E1646C089010E5F1F4FFE01849190E2D1 -:103AB000980F983050F48770FE2D01C0FF0F8A9543 -:103AC000EAF78F2F0E946E1F15C00E94761514C052 -:103AD00089010E5F1F4FFE01849190E2980F98308C -:103AE00068F48770FE2D01C0FF0F8A95EAF78F2FCB -:103AF0000E94741F0E94971FE8011AC00E943E1680 -:103B0000FBCF2E5F3F4FFE01C491CC2341F08FE9E4 -:103B10009FE00197F1F700C00000C150F6CFE90126 -:103B200007C0FE01F490E901229602C00E947615BA -:103B30008F2D882341F0EFE9FFE03197F1F700C0C6 -:103B400000008150F6CF9E0192CFDF91CF911F915F -:103B50000F91FF90EF90089508956093B2017093D4 -:103B6000B3018093B4019093B5010C949F190F9306 -:103B70001F930091B2011091B3012091B4013091D3 -:103B8000B501062B172B282B392B0093B20110936C -:103B9000B3012093B4013093B5011F910F910C94A0 -:103BA0009F190F931F930091B2011091B3012091BF -:103BB000B4013091B501062317232823392300933C -:103BC000B2011093B3012093B4013093B5011F915A -:103BD0000F910C949F190F931F930091B2011091B4 -:103BE000B3012091B4013091B5010627172728278A -:103BF00039270093B2011093B3012093B40130939D -:103C0000B5011F910F910C949F191092AE01109263 -:103C1000AF011092B0011092B1010C949F1941E0D4 -:103C200050E060E070E004C0440F551F661F771F2E -:103C30008A95D2F74093AE015093AF016093B001E3 -:103C40007093B1010C949F1941E050E060E070E086 -:103C500004C0440F551F661F771F8A95D2F78091C5 -:103C6000AE019091AF01A091B001B091B101842B50 -:103C7000952BA62BB72B8093AE019093AF01A09309 -:103C8000B001B093B1010C949F1941E050E060E0A5 -:103C900070E004C0440F551F661F771F8A95D2F746 -:103CA00040955095609570958091AE019091AF01CF -:103CB000A091B001B091B10184239523A623B7232D -:103CC0008093AE019093AF01A093B001B093B10186 -:103CD0000C949F1941E050E060E070E004C0440F94 -:103CE000551F661F771F8A95D2F78091AE0190917C -:103CF000AF01A091B001B091B10184279527A6270B -:103D0000B7278093AE019093AF01A093B001B09319 -:103D1000B1010C949F190F931F930091AE01109164 -:103D2000AF012091B0013091B101062B172B282B48 -:103D3000392B0093AE011093AF012093B001309363 -:103D4000B1011F910F910C949F190F931F93009134 -:103D5000AE011091AF012091B0013091B101062365 -:103D60001723282339230093AE011093AF0120932A -:103D7000B0013093B1011F910F910C949F190F93D3 -:103D80001F930091AE011091AF012091B0013091CD -:103D9000B10106271727282739270093AE01109372 -:103DA000AF012093B0013093B1011F910F910C949A -:103DB0009F190895CF92DF92EF92FF920F931F9376 -:103DC000CF93DF93EC01C090B201D090B301E090AB -:103DD000B401F090B5018091AE019091AF01A09136 -:103DE000B001B091B101C82AD92AEA2AFB2A0FE111 -:103DF00010E0B701A601002E04C07695679557958F -:103E000047950A94D2F740FF07C0BE01802F0E9459 -:103E10001E0B8130910539F40150110950F7BE0194 -:103E200080E00E941E0BDF91CF911F910F91FF90B8 -:103E3000EF90DF90CF90089540910D0150910E01C9 -:103E400020E030E09FEFFA01E20FF31F6281681774 -:103E500099F09F3F19F4611101C0922F2F5F3F4FDE -:103E60002630310581F79F3F39F0FA01E90FF11D46 -:103E700097FDFA9582830895089540910D01509120 -:103E80000E0120E030E0FA01E20FF31F9281981357 -:103E900001C012822F5F3F4F26303105A1F70895F0 -:103EA00081E090E0E0910D01F0910E01E80FF91F23 -:103EB0001082019688309105A9F708959091C0016C -:103EC000982B9093C001089580959091C0019823FC -:103ED0009093C00108951092C00108959091BF0180 -:103EE000982B9093BF01089580959091BF019823DE -:103EF0009093BF0108951092BF0108958093B60179 -:103F000008951092B601089540910D0150910E014F -:103F100020E030E080E0FA01E20FF31F918191117F -:103F20008F5F2F5F3F4F27303105A9F70895E0914C -:103F30000D01F0910E018091C0018083E0910D018F -:103F4000F0910E0180819091BF01892B8083909127 -:103F5000B601992361F0E0910D01F0910E0180818D -:103F6000892B80830E94841F81111092B601809159 -:103F70000D0190910E010C94F813909335018093EC -:103F800034010895CF92DF92EF92FF920F931F9327 -:103F90006C01EE24FF24C114D104E104F10421F4E6 -:103FA0006B017C0180E001C080E133272F2D1E2DA5 -:103FB0000D2D011511052105310519F0885F6801E6 -:103FC000790197018601A4E0369527951795079505 -:103FD000AA95D1F7011511052105310519F08C5F5E -:103FE0006801790197018601F2E0369527951795CA -:103FF0000795FA95D1F7011511052105310519F03D -:104000008E5F68017901B701A6017695679557958E -:104010004795452B462B472B09F08F5F1F910F913A -:10402000FF90EF90DF90CF9008958295982F9C7C21 -:1040300096959695837344E0849F90011124922B6A -:10404000892F8A7A86959575990F892B08951F93E4 -:10405000CF93DF931F92CDB7DEB799830E941520CF -:10406000182F9981892F0E941520212F30E0322F9F -:104070002227A901482BCA010F90DF91CF911F91F0 -:1040800008958091D801843009F11092C20120E492 -:1040900088E190E00FB6F894A895809360000FBE79 -:1040A0002093600083B7817F846083BF83B7816082 -:1040B00083BF7894889583B78E7F83BF88E10FB6DE -:1040C000F89480936000109260000FBE08950895E8 -:1040D0000895CF930E9467200E94C4080E94682020 -:1040E000C0E08C2F0E94EF09811105C0CF5FCE3058 -:1040F000C1F780E001C081E0CF9108950C94B1191F -:104100001F920F920FB60F9211248F939F93AF932C -:10411000BF938091C201811113C08091C30190911E -:10412000C401A091C501B091C6014196A11DB11D68 -:104130008093C3019093C401A093C501B093C601BD -:10414000BF91AF919F918F910F900FBE0F901F90D5 -:10415000189582E084BD93E095BD9AEF97BD80935A -:104160006E0008952FB7F8948091C3019091C40117 -:10417000A091C501B091C6012FBF0895CF92DF92E3 -:10418000EF92FF920F931F932FB7F8944091C301C2 -:104190005091C4016091C5017091C6012FBF6A01A1 -:1041A0007B01EE24FF248C0120E030E0C016D10614 -:1041B000E206F30610F441505109481B590BCA019D -:1041C0001F910F91FF90EF90DF90CF9008951F9275 -:1041D0000F920FB60F9211248F939F93AF93BF93BB -:1041E0008091C3019091C401A091C501B091C60115 -:1041F0000196A11DB11D8093C3019093C401A093AA -:10420000C501B093C601BF91AF919F918F910F905F -:104210000FBE0F901F9018950E94F310F8942FEF87 -:1042200087EA91E6215080409040E1F700C000000D -:1042300087E090EBDC018093E1019093E201A09391 -:10424000E301B093E4012CE088E190E00FB6F8942C -:10425000A895809360000FBE20936000FFCFEF927F -:10426000FF920F931F93CF93DF93E82EF12C8F2DA6 -:104270000E94EF09C0E0D0E0082F10E098010C2E5A -:1042800002C0359527950A94E2F720FD05C02196D6 -:10429000C630D10599F709C06C2F7F2D80E00E94B0 -:1042A000FC0AE812F4CF81E005C0F3948EE0F81226 -:1042B000DECF80E0DF91CF911F910F91FF90EF90C3 -:1042C0000895CF93C82F8CE20E942F21882321F0DC -:1042D0008C2FCF910C942F2180E0CF910895CF9314 -:1042E0000E94B522811102C00E949B228EE695E0B9 -:1042F0000E94C306C5E6C15049F00E94C4088FE37E -:104300009CE90197F1F700C00000F5CF87E695E042 -:104310000E94C30689E20E94612181110AC18AE2DA -:104320000E94612181110E949B2285E00E946121EF -:1043300081110E940C210E94C0228093C10187E05C -:104340000E946121882399F18BE10E9461218823D9 -:1043500051F09091C10191FB882780F921E08227DB -:1043600080FB91F922C08EE00E946121882351F0E8 -:104370009091C10192FB882780F921E0822780FB80 -:1043800092F913C080E10E9461219091C1018823BC -:1043900041F093FB882780F921E0822780FB93F985 -:1043A00004C0892F809580FB90F99093C101809182 -:1043B000C1010E94C4220E94D2228093D20180EEC9 -:1043C0000E946121882341F08091D201982F90951D -:1043D00090FB80F98093D20189E30E9461218823B8 -:1043E00059F09091D20191FB882780F921E0822732 -:1043F00080FB91F99093D20182EE0E946121882383 -:1044000059F09091D20192FB882780F921E0822710 -:1044100080FB92F99093D20186EE0E94612188235D -:1044200059F09091D20193FB882780F921E08227EF -:1044300080FB93F99093D20183EE0E94612188233F -:1044400059F09091D20194FB882780F921E08227CE -:1044500080FB94F99093D20185E30E946121882327 -:1044600059F09091D20195FB882780F921E08227AD -:1044700080FB95F99093D20181E30E94612188230A -:1044800059F09091D20196FB882780F921E082278C -:1044900080FB96F99093D20181E10E9461218823EB -:1044A00059F09091D20197FB882780F921E082276B -:1044B00080FB97F99093D2018091D2010E94D6227D -:1044C00087E20E946121C82F8EE10E946121811143 -:1044D000C2608FE10E9461218111C46080E20E946C -:1044E00061218111C86081E20E9461218111C06156 -:1044F00082E20E9461218111C06283E20E946121F7 -:104500008111C06484E20E946121882311F0C06897 -:1045100002C0CC2329F08C2F0E94CD226C2F03C027 -:104520000E94C922682F70E080E090E0CF910C9447 -:10453000AD1DCF9108956DEE7EEF80E090E00E947A -:10454000FF2B60E082E090E00E94F12B60E083E0CE -:1045500090E00E94F12B60E084E090E00E94F12B5B -:1045600060E085E090E00C94F12B80E090E00E9408 -:10457000EB2B21E08D3E9E4F09F020E0822F089525 -:1045800082E090E00C94E32B682F82E090E00C94A2 -:10459000F12B83E090E00C94E32B682F83E090E014 -:1045A0000C94F12B84E090E00C94E32B682F84E0D2 -:1045B00090E00C94F12B8091C90180FF0BC06091B9 -:1045C000120185E0689FB001112475956795759576 -:1045D00067952AC081FF09C06091120185E0689F3C -:1045E000B0011124759567951FC082FF07C06091C7 -:1045F000120185E0689FB001112416C04091CA01E4 -:104600004423C9F060911101461788F720911201E7 -:1046100085E0289F90011124429FC001439F900D87 -:10462000112470E00E94B52B6038710540F46115CB -:10463000710539F002C065E070E0862F08958FE7BC -:10464000089581E008958091C90180FF08C06091BC -:10465000100170E0759567957595679521C081FF8C -:1046600006C06091100170E07595679519C082FFD2 -:1046700004C06091100170E010C08091CA018823CD -:10468000C1F060910F018617A0F790911001989FDB -:10469000C001112470E00E94B52B6038710528F428 -:1046A0006115710521F0862F08958FE7089581E047 -:1046B000089561E070E0F4CF803F21F40E94DB2296 -:1046C000819504C0813F29F40E94DB228093CD01B3 -:1046D0000895823F21F40E94DB22819504C0833F2C -:1046E00029F40E94DB228093CC010895893F19F4BC -:1046F0000E94232305C08A3F31F40E942323819521 -:104700008093CE0108958B3F21F40E94232381954D -:1047100004C08C3F29F40E9423238093CF01089585 -:10472000843F21F48091CB01816017C0853F21F443 -:104730008091CB01826011C0863F21F48091CB0132 -:1047400084600BC0873F21F48091CB01886005C055 -:10475000883F31F48091CB0180618093CB01089533 -:104760008D3F21F48091C90181600BC08E3F21F4FF -:104770008091C901826005C08F3F29F48091C901F1 -:1047800084608093C9010895803F39F48091CD0100 -:1047900087FF6CC01092CD0169C0813F29F48091E0 -:1047A000CD011816BCF362C09091CC01823F29F470 -:1047B00097FF5CC01092CC0159C0833F19F41916C1 -:1047C000CCF354C0893F41F48091CE0118160CF00F -:1047D0004DC01092CE014AC08A3F29F48091CE018B -:1047E00087FF44C0F6CF8B3F39F48091CF0187FF1C -:1047F0003DC01092CF013AC08C3F29F48091CF0187 -:104800001816BCF333C0843F21F48091CB018E7F16 -:1048100017C0853F21F48091CB018D7F11C0863F69 -:1048200021F48091CB018B7F0BC0873F21F48091D5 -:10483000CB01877F05C0883F31F48091CB018F7E0B -:104840008093CB0113C08D3F21F48091C9018E7FED -:104850000BC08E3F21F48091C9018D7F05C08F3F31 -:1048600029F48091C9018B7F8093C9018091CC018B -:1048700081110EC08091CD0181110AC08091CE01BD -:10488000811106C08091CF01811102C01092CA012E -:1048900008958091C10183FF7EC08AEA95E00E945D -:1048A000C3068091CB011F928F9385EA95E09F9379 -:1048B0008F930E945C0783EA95E00E94C3062091D3 -:1048C000CC01822F992787FD90959F932F9380EAA3 -:1048D00095E09F938F930E945C078EE995E00E947C -:1048E000C3062091CD01822F992787FD90959F9334 -:1048F0002F938BE995E09F938F930E945C0789E942 -:1049000095E00E94C3062091CE01822F992787FD52 -:1049100090959F932F9386E995E09F938F930E94A4 -:104920005C0784E995E00E94C3062091CF01822FA5 -:10493000992787FD90959F932F9381E995E09F9309 -:104940008F930E945C078EE895E00E94C3068091D9 -:10495000CA011F928F938BE895E09F938F930E94DB -:104960005C0789E895E00E94C3068091C9011F9207 -:104970008F9386E895E09F938F930E945C0783E86E -:1049800095E00E94C3068DB79EB74C960FB6F8947B -:104990009EBF0FBE8DBF8BEC91E00E943D140E9424 -:1049A000B2209093C8018093C70108951F93CF93BD -:1049B000DF938091C7019091C8010E94BE20409171 -:1049C000CA01442321F02091130130E006C0209158 -:1049D00014015AE0259F900111248217930708F4CF -:1049E00082C08091CC011091CD01D091CE01C091B7 -:1049F000CF01811107C0111105C0D11103C0CC2313 -:104A000009F471C04F3F19F04F5F4093CA01181667 -:104A100024F40E94DB228093CC018091CC0187FF9B -:104A200005C00E94DB2281958093CC01111624F4ED -:104A30000E94DB228093CD018091CD0187FF05C0CC -:104A40000E94DB2281958093CD016091CC01662389 -:104A500039F11091CD01112319F1772767FD709578 -:104A6000872F972F0E94BA2A23E333E343E35FE3C0 -:104A70000E941E2B0E94872A6093CC01612F77270A -:104A800067FD7095872F972F0E94BA2A23E333E39F -:104A900043E35FE30E941E2B0E94872A6093CD01AF -:104AA0001D1624F40E9423238093CE018091CE0111 -:104AB00087FF05C00E94232381958093CE011C1699 -:104AC00024F40E9423238093CF018091CF0187FF9C -:104AD00005C00E94232381958093CF01DF91CF9160 -:104AE0001F910C944924DF91CF911F910895EBEC15 -:104AF000F1E085E0DF011D928A95E9F71092CA0185 -:104B00001092C90108958DEC97E00E94C3061F9290 -:104B100081E08F931F9285E08F938FE797E09F93BB -:104B20008F930E945C070F900F900F900F900F9043 -:104B30000F9008958330E9F128F4813061F08230DC -:104B400009F10895853009F462C008F449C086303F -:104B500009F474C0089520911401862F90E0820F0B -:104B6000911D8F3F910520F4620F6093140103C0E3 -:104B70008FEF80931401809114011F928F9388EB23 -:104B800096E072C020911301862F90E0820F911D54 -:104B90008F3F910520F4620F6093130103C08FEFE4 -:104BA00080931301809113011F928F9386EA96E000 -:104BB0005BC020911201862F90E0820F911D8F3FE4 -:104BC000910520F4620F6093120103C08FEF809370 -:104BD0001201809112011F928F9383E996E044C0E5 -:104BE00020911101862F90E0820F911D8F3F91053A -:104BF00020F4620F6093110103C08FEF80931101C5 -:104C0000809111011F928F938EE796E02DC0209125 -:104C10001001862F90E0820F911D8F3F910520F4A7 -:104C2000620F6093100103C08FEF80931001809199 -:104C300010011F928F9385E696E016C020910F0118 -:104C4000862F90E0820F911D8F3F910520F4620F17 -:104C500060930F0103C08FEF80930F0180910F01CC -:104C60001F928F938AE496E09F938F930E945C0734 -:104C70000F900F900F900F900895833081F128F4DA -:104C8000813059F08230D1F00895853009F449C05F -:104C9000B8F1863009F456C0089580911401681760 -:104CA00020F4861B8093140102C01092140180919D -:104CB00014011F928F938BE396E054C080911301EF -:104CC000681720F4861B8093130102C01092130111 -:104CD000809113011F928F9389E296E043C08091E7 -:104CE0001201681720F4861B8093120102C01092F3 -:104CF0001201809112011F928F9386E196E032C0DB -:104D000080911101681720F4861B8093110102C065 -:104D100010921101809111011F928F9381E096E012 -:104D200021C080911001681720F4861B8093100128 -:104D300002C010921001809110011F928F9388EE93 -:104D400095E010C080910F01681720F4861B8093B6 -:104D50000F0102C010920F0180910F011F928F93DB -:104D60008DEC95E09F938F930E945C070F900F90BE -:104D70000F900F900895CF93C82F1F928F9322ED1D -:104D800038E03F932F930E945C0761E070E080E081 -:104D900090E004C0660F771F881F991FCA95D2F74D -:104DA0000E94AD1D0F900F900F900F90CF910C941B -:104DB000B119CF938732B0F58E3108F043C28E30EF -:104DC00009F4BDC100F5873009F48DC1A8F486301F -:104DD00009F03CC28091C101817F8E7F8093C10127 -:104DE00087ED98E00E94C30682ED9CE00E94C30616 -:104DF00081E08093D10175C1883009F43FC08B30C8 -:104E000009F46BC123C2863109F4DDC120F480317D -:104E100009F4A8C11BC2893109F4BEC18B3109F460 -:104E20007BC114C2883309F458C150F4893209F4A3 -:104E300007C2853309F404C2873209F007C200C2F1 -:104E4000833409F4FDC128F48A3308F4FFC189537F -:104E5000FAC1883409F0FAC10E94B11981EC9CE0D2 -:104E60000E94C3069FEF23ED80E3915020408040D5 -:104E7000E1F700C000000E940C2133C186ED9CE0E8 -:104E80000E94C3068EEC9AE00E94C3060E94C922CB -:104E90001F928F938BEC9AE09F938F930E945C07F5 -:104EA00089EC9AE00E94C3060E94C022C82F86EBBC -:104EB0009AE00E94C3061F92CF9321EB3AE03F9302 -:104EC0002F930E945C078FEA9AE00E94C30685EA4E -:104ED0009AE00E94C3068C2F81701F928F9322EA62 -:104EE0003AE03F932F930E945C0780EA9AE00E9489 -:104EF000C30686E99AE00E94C306C1FB882780F9B1 -:104F00001F928F9323E93AE03F932F930E945C070F -:104F100081E99AE00E94C30685E89AE00E94C306F0 -:104F2000C2FB882780F91F928F9322E83AE03F93D3 -:104F30002F930E945C0780E89AE00E94C30687E7EF -:104F40009AE00E94C306C3FBCC27C0F91F92CF93FF -:104F500084E79AE09F938F930E945C0782E79AE030 -:104F60000E94C3060E94D222C82F8EE59AE00E94BA -:104F7000C3061F92CF9329E53AE03F932F930E94F7 -:104F80005C0787E59AE00E94C3068EE39AE00E94E0 -:104F9000C3068C2F81701F928F932BE33AE03F93CF -:104FA0002F930E945C078DB79EB780960FB6F8943A -:104FB0009EBF0FBE8DBF89E39AE00E94C30682E2C6 -:104FC0009AE00E94C306C1FB882780F91F928F9345 -:104FD0002FE13AE03F932F930E945C078DE19AE026 -:104FE0000E94C3068BE09AE00E94C306C2FB88279A -:104FF00080F91F928F9328E03AE03F932F930E940D -:105000005C0786E09AE00E94C30684EF99E00E9464 -:10501000C306C3FB882780F91F928F9321EF39E0E5 -:105020003F932F930E945C078FEE99E00E94C30686 -:1050300085EE99E00E94C306C4FB882780F91F9281 -:105040008F9322EE39E03F932F930E945C0780EE0E -:1050500099E00E94C3068EEC99E00E94C306C5FB4E -:10506000882780F91F928F932BEC39E03F932F9381 -:105070000E945C0789EC99E00E94C3068DEA99E0E2 -:105080000E94C306C6FB882780F91F928F932AEAE5 -:1050900039E03F932F930E945C0788EA99E00E94D1 -:1050A000C30680EA99E00E94C306C7FBCC27C0F97B -:1050B0001F92CF938DE999E09F938F930E945C0795 -:1050C0008BE999E00E94C3068DB79EB74C960FB648 -:1050D000F8949EBF0FBE8DBF04C08EEF98E00E9473 -:1050E000C306C1E0B8C08091C101C82FC17080FF64 -:1050F00009C084EB9CE00E94C3068091C101817FBE -:105100008E7F44C088EA9CE00E94C3068091C10162 -:1051100081608093C101E5CF8091C10181FBCC27E3 -:10512000C0F991E0C927C0FB81F98093C101CC236C -:1051300019F08BE99CE025C08DE89CE0D0CF8091F0 -:10514000C10182FBCC27C0F991E0C927C0FB82F9DD -:105150008093C101CC2319F08EE79CE012C08EE64B -:105160009CE0BDCF8091C10183FBCC27C0F991E0C9 -:10517000C927C0FB83F98093C101CC2351F082E69B -:105180009CE00E94C3068091C10181608093C101AF -:1051900062C085E59CE0A3CF86E49CE00E94C30644 -:1051A0008AE19CE00E94C3068DED9BE00E94C3064D -:1051B00080EB9BE00E94C30681E79BE00E94C30650 -:1051C00086E49BE08CCF88E39BE00E94C3060E94AC -:1051D000EC131F928F938EE19BE09F938F930E941D -:1051E0005C0780910C011F928F9387E09BE09F9357 -:1051F0008F930E945C07809160011F928F9384EFD0 -:105200009AE09F938F930E945C078091C3019091D5 -:10521000C401A091C501B091C601BF93AF939F9304 -:105220008F9380EE9AE09F938F930E945C078DB7D7 -:105230009EB742960FB6F8949EBF0FBE8DBF51CF5A -:1052400080E001C08D510E94BB264BCF8EED9AE0CD -:105250000E94C306C0E08C2FCF91089580E008958E -:1052600080E00895CF93C82F8091D101813081F0E3 -:1052700020F0823009F44CC042C1A0910D01B091E0 -:105280000E018C91813169F0823209F03AC109C076 -:10529000A0910D01B0910E018C91813111F08232FB -:1052A00049F48C2F0E942E2981112FC08C2F0E942F -:1052B000D9262CC08C2F0E943029811126C0C431E0 -:1052C000E1F070F4CB3081F0C031D1F40E9483253D -:1052D0008AEC98E00E94C30682E08093D10115C059 -:1052E000C93259F0C83361F487ED98E00E94C306D3 -:1052F0008EEC98E00E94C30608C01092D10103C151 -:1053000088EC98E00E94C306FEC081E08170FDC079 -:10531000C43220F5CE3108F0C0C0CB3099F1C8F4CA -:10532000C73009F0D2C08AE08093140194E19093D1 -:10533000130193E0909312018093110188E0809310 -:10534000100188E280930F018EE697E00E94C30669 -:10535000BFC0C33149F1C431C1F0B7C0CB3409F487 -:10536000A9C028F4C93289F0C83361F0AEC0C13594 -:1053700009F49EC0C23509F499C0CE3409F0A5C025 -:105380006AE09EC00E948325A3C08091D00188233B -:1053900019F01092D0019CC08BE797E00E94C306E1 -:1053A00081E08093D101B1C085E597E00E94C306FA -:1053B00083E497E00E94C306809114011F928F93AB -:1053C00080E497E09F938F930E945C078EE397E0C1 -:1053D0000E94C3068CE297E00E94C30680911301ED -:1053E0001F928F9389E297E09F938F930E945C07AF -:1053F00087E297E00E94C30688E197E00E94C30617 -:10540000809112011F928F9385E197E09F938F9374 -:105410000E945C0783E197E00E94C30682E097E068 -:105420000E94C306809111011F928F938FEF96E027 -:105430009F938F930E945C078DEF96E00E94C306B6 -:1054400088EE96E00E94C306809110011F928F9310 -:1054500085EE96E09F938F930E945C0783EE96E023 -:105460000E94C3068CEC96E00E94C30680910F0157 -:105470001F928F9389EC96E09F938F930E945C0715 -:1054800087EC96E00E94C3068DB79EB748960FB68C -:10549000F8949EBF0FBE8DBF1BC0CE51EC2FF0E025 -:1054A000E75DFE4F80818093D00112C061E003C0B0 -:1054B00061E006C06AE08091D0010E949A2508C090 -:1054C0008091D0010E943D2603C08CE697E013C076 -:1054D0008091D001882369F01F928F9386E697E030 -:1054E0009F938F930E945C070F900F900F900F90E7 -:1054F00004C083E697E00E94C30681E006C01092D4 -:10550000D10180E002C080E001CFCF91089504D0A6 -:105510006894B1118DC0089570D088F09F5790F0B5 -:10552000B92F9927B751A0F0D1F0660F771F881FC8 -:10553000991F1AF0BA95C9F712C0B13081F077D02F -:10554000B1E0089574C0672F782F8827B85F39F0CD -:10555000B93FCCF3869577956795B395D9F73EF427 -:1055600090958095709561957F4F8F4F9F4F0895CF -:10557000E89409C097FB3EF49095809570956195ED -:105580007F4F8F4F9F4F9923A9F0F92F96E9BB27A3 -:105590009395F695879577956795B795F111F8CF1F -:1055A000FAF4BB0F11F460FF1BC06F5F7F4F8F4F8A -:1055B0009F4F16C0882311F096E911C0772321F080 -:1055C0009EE8872F762F05C0662371F096E8862F18 -:1055D00070E060E02AF09A95660F771F881FDAF76F -:1055E000880F9695879597F9089557FD9058440F21 -:1055F000551F59F05F3F71F04795880F97FB991F32 -:1056000061F09F3F79F087950895121613061406EE -:10561000551FF2CF4695F1DF08C01616170618067B -:10562000991FF1CF86957105610508940895E89456 -:10563000BB2766277727CB0197F908950BD078C051 -:1056400069D028F06ED018F0952309F05AC05FC0D9 -:105650001124EECFCADFA0F3959FD1F3950F50E050 -:10566000551F629FF001729FBB27F00DB11D639F14 -:10567000AA27F00DB11DAA1F649F6627B00DA11DBA -:10568000661F829F2227B00DA11D621F739FB00D60 -:10569000A11D621F839FA00D611D221F749F3327D0 -:1056A000A00D611D231F849F600D211D822F762F69 -:1056B0006A2F11249F5750408AF0E1F088234AF066 -:1056C000EE0FFF1FBB1F661F771F881F91505040B2 -:1056D000A9F79E3F510570F014C0AACF5F3FECF3CD -:1056E000983EDCF3869577956795B795F795E7959E -:1056F0009F5FC1F7FE2B880F911D9695879597F9AF -:10570000089597F99F6780E870E060E008959FEF43 -:1057100080EC089500240A94161617061806090648 -:10572000089500240A941216130614060506089517 -:10573000092E0394000C11F4882352F0BB0F40F49F -:10574000BF2B11F460FF04C06F5F7F4F8F4F9F4FDF -:105750000895991B79E004C0991F961708F0961BCD -:10576000881F7A95C9F78095089597FB072E16F440 -:10577000009407D077FD09D00E94CF2B07FC05D0FD -:105780003EF4909581959F4F0895709561957F4F58 -:105790000895EE0FFF1F0590F491E02D0994AA1BC8 -:1057A000BB1B51E107C0AA1FBB1FA617B70710F00C -:1057B000A61BB70B881F991F5A95A9F7809590953E -:1057C000BC01CD010895F999FECF92BD81BDF89A33 -:1057D000992780B50895A8E1B0E042E050E00C942C -:1057E000062C262FF999FECF1FBA92BD81BD20BD90 -:1057F0000FB6F894FA9AF99A0FBE019608950E948E -:10580000F12B272F0C94F22BDC01CB01FC01F99931 -:10581000FECF06C0F2BDE1BDF89A319600B40D92FC -:0C58200041505040B8F70895F894FFCFB5 -:10582C0020025D0C4E0D2B0DF70CC40C01B701289A -:10583C00080A03140A3F4D3620F404A704710451DE -:10584C0004DD03F6030F0428040102030405060714 -:04585C000809000037 -:00000001FF diff --git a/keyboard/gh60/Makefile b/keyboard/gh60/Makefile index daba0f6449..4c8f9dc8ab 100644 --- a/keyboard/gh60/Makefile +++ b/keyboard/gh60/Makefile @@ -53,9 +53,9 @@ SRC = keymap_common.c \ led.c ifdef KEYMAP - SRC := keymap_$(KEYMAP).c $(SRC) + SRC := keymaps/$(KEYMAP).c $(SRC) else - SRC := keymap_poker.c $(SRC) + SRC := keymaps/poker.c $(SRC) endif CONFIG_H = config.h diff --git a/keyboard/gh60/Makefile.pjrc b/keyboard/gh60/Makefile.pjrc index 11bd3b7840..8ed73a248d 100644 --- a/keyboard/gh60/Makefile.pjrc +++ b/keyboard/gh60/Makefile.pjrc @@ -53,9 +53,9 @@ SRC = keymap_common.c \ led.c ifdef KEYMAP - SRC := keymap_$(KEYMAP).c $(SRC) + SRC := keymaps/$(KEYMAP).c $(SRC) else - SRC := keymap_poker.c $(SRC) + SRC := keymaps/poker.c $(SRC) endif CONFIG_H = config.h diff --git a/keyboard/gh60/README.md b/keyboard/gh60/README.md index 510cb5c8b6..41a757ea3a 100644 --- a/keyboard/gh60/README.md +++ b/keyboard/gh60/README.md @@ -21,7 +21,7 @@ Use `make -f Makefile.pjrc` if you want to use PJRC stack but I find no reason t ## Keymap -Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create file named `keymap_.c` and see keymap document(you can find in top README.md) and existent keymap files. +Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create file named `.c` in the keymaps folder, and see keymap document(you can find in top README.md) and existent keymap files. To build firmware binary hex file with a certain keymap just do `make` with `KEYMAP` option like: @@ -29,8 +29,8 @@ To build firmware binary hex file with a certain keymap just do `make` with `KEY ### 1 Poker -[keymap_poker.c](keymap_poker.c) emulates original Poker layers -while both [keymap_poker_bit.c](keymap_poker_bit.c) and [keymap_poker_set.c](keymap_poker_set.c) implements same layout in different way and they fix a minor issue of original Poker and enhance arrow keys. +[poker.c](keymaps/poker.c) emulates original Poker layers +while both [poker_bit.c](keymaps/poker_bit.c) and [poker_set.c](keymaps/poker_set.c) implement the same layout in different ways and they fix a minor issue of original Poker and enhance arrow keys. Fn + Esc = ` Fn + {left, down, up, right} = {home, pgdown, pgup, end} @@ -63,7 +63,7 @@ while both [keymap_poker_bit.c](keymap_poker_bit.c) and [keymap_poker_set.c](key ### 2. Plain Without any Fn layer this will be useful if you want to use key remapping tool like AHK on host. -See [keymap_plain.c](keymap_plain.c) for detail. +See [plain.c](keymaps/plain.c) for detail. #### 1.0 Plain Default layer ,-----------------------------------------------------------. @@ -80,11 +80,11 @@ See [keymap_plain.c](keymap_plain.c) for detail. ### 3. Hasu -This is my favorite keymap with HHKB Fn, Vi cursor and Mousekey layer. See [keymap_hasu.c](keymap_hasu.c) for detail. +This is my favorite keymap with HHKB Fn, Vi cursor and Mousekey layer. See [hasu.c](keymaps/hasu.c) for detail. ### 4. SpaceFN -This layout proposed by spiceBar uses space bar to change layer with using Dual role key technique. See [keymap_spacefn.c](keymap_spacefn.c) and [SpaceFN discussion](http://geekhack.org/index.php?topic=51069.0). +This layout proposed by spiceBar uses space bar to change layer with using Dual role key technique. See [spacefn.c](keymaps/spacefn.c) and [SpaceFN discussion](http://geekhack.org/index.php?topic=51069.0). #### 4.0 Default layer ,-----------------------------------------------------------. @@ -113,7 +113,7 @@ This layout proposed by spiceBar uses space bar to change layer with using Dual ### 5. HHKB -[keymap_hhkb.c](keymap_hhkb.c) emulates original HHKB layers. +[hhkb.c](keymaps/hhkb.c) emulates original HHKB layers. #### 5.0: Default layer ,-----------------------------------------------------------. |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| \| `| diff --git a/keyboard/gh60/keymap_hasu.c b/keyboard/gh60/keymaps/hasu.c similarity index 100% rename from keyboard/gh60/keymap_hasu.c rename to keyboard/gh60/keymaps/hasu.c diff --git a/keyboard/gh60/keymap_hhkb.c b/keyboard/gh60/keymaps/hhkb.c similarity index 100% rename from keyboard/gh60/keymap_hhkb.c rename to keyboard/gh60/keymaps/hhkb.c diff --git a/keyboard/gh60/keymap_plain.c b/keyboard/gh60/keymaps/plain.c similarity index 100% rename from keyboard/gh60/keymap_plain.c rename to keyboard/gh60/keymaps/plain.c diff --git a/keyboard/gh60/keymap_poker.c b/keyboard/gh60/keymaps/poker.c similarity index 100% rename from keyboard/gh60/keymap_poker.c rename to keyboard/gh60/keymaps/poker.c diff --git a/keyboard/gh60/keymap_poker_bit.c b/keyboard/gh60/keymaps/poker_bit.c similarity index 100% rename from keyboard/gh60/keymap_poker_bit.c rename to keyboard/gh60/keymaps/poker_bit.c diff --git a/keyboard/gh60/keymap_poker_set.c b/keyboard/gh60/keymaps/poker_set.c similarity index 100% rename from keyboard/gh60/keymap_poker_set.c rename to keyboard/gh60/keymaps/poker_set.c diff --git a/keyboard/gh60/keymap_spacefn.c b/keyboard/gh60/keymaps/spacefn.c similarity index 100% rename from keyboard/gh60/keymap_spacefn.c rename to keyboard/gh60/keymaps/spacefn.c diff --git a/keyboard/hhkb/Makefile b/keyboard/hhkb/Makefile index 5a179bd24d..d434246cef 100644 --- a/keyboard/hhkb/Makefile +++ b/keyboard/hhkb/Makefile @@ -129,17 +129,17 @@ NKRO_ENABLE = yes # USB Nkey Rollover # Keymap file # ifdef KEYMAP - SRC := keymap_$(KEYMAP).c $(SRC) + SRC := keymaps/$(KEYMAP).c $(SRC) else ifdef HHKB_JP - SRC := keymap_jp.c $(SRC) + SRC := keymaps/jp.c $(SRC) else - SRC := keymap_hhkb.c $(SRC) + SRC := keymaps/hhkb.c $(SRC) endif endif -ifneq (, $(or $(findstring keymap_jp.c, $(SRC)), $(findstring yes, $(HHKB_JP)))) +ifneq (, $(or $(findstring jp.c, $(SRC)), $(findstring yes, $(HHKB_JP)))) OPT_DEFS += -DHHKB_JP endif diff --git a/keyboard/hhkb/Makefile.pjrc b/keyboard/hhkb/Makefile.pjrc index 7d0f8c3a9c..403a8ec60a 100644 --- a/keyboard/hhkb/Makefile.pjrc +++ b/keyboard/hhkb/Makefile.pjrc @@ -18,9 +18,9 @@ SRC = keymap_common.c \ led.c ifdef KEYMAP - SRC := keymap_$(KEYMAP).c $(SRC) + SRC := keymaps/$(KEYMAP).c $(SRC) else - SRC := keymap_hasu.c $(SRC) + SRC := keymaps/hasu.c $(SRC) endif CONFIG_H = config.h diff --git a/keyboard/hhkb/Makefile.rn42 b/keyboard/hhkb/Makefile.rn42 index cbb2b744c9..a730442af0 100644 --- a/keyboard/hhkb/Makefile.rn42 +++ b/keyboard/hhkb/Makefile.rn42 @@ -122,17 +122,17 @@ COMMAND_ENABLE = yes # Commands for debug and configuration # Keymap file # ifdef KEYMAP - SRC := keymap_$(KEYMAP).c $(SRC) + SRC := keymaps/$(KEYMAP).c $(SRC) else ifdef HHKB_JP - SRC := keymap_jp.c $(SRC) + SRC := keymaps/jp.c $(SRC) else - SRC := keymap_hhkb.c $(SRC) + SRC := keymaps/hhkb.c $(SRC) endif endif -ifneq (, $(or $(findstring keymap_jp.c, $(SRC)), $(findstring yes, $(HHKB_JP)))) +ifneq (, $(or $(findstring jp.c, $(SRC)), $(findstring yes, $(HHKB_JP)))) OPT_DEFS += -DHHKB_JP endif diff --git a/keyboard/hhkb/README.md b/keyboard/hhkb/README.md index fcd72e1941..e20c23d823 100644 --- a/keyboard/hhkb/README.md +++ b/keyboard/hhkb/README.md @@ -76,7 +76,7 @@ Use [Teensy Loader] if your controller is Teensy/Teensy++. ##Keymap -To define your own keymap create file named `keymap_.c` and see [keymap document](../../doc/keymap.md) and existent keymap files. +To define your own keymap create a file in the keymaps folder named `.c` and see keymap document (you can find in top README.md) and existent keymap files. ##Hardware diff --git a/keyboard/hhkb/keymap_hasu.c b/keyboard/hhkb/keymaps/hasu.c similarity index 100% rename from keyboard/hhkb/keymap_hasu.c rename to keyboard/hhkb/keymaps/hasu.c diff --git a/keyboard/hhkb/keymap_hhkb.c b/keyboard/hhkb/keymaps/hhkb.c similarity index 100% rename from keyboard/hhkb/keymap_hhkb.c rename to keyboard/hhkb/keymaps/hhkb.c diff --git a/keyboard/hhkb/keymap_jp.c b/keyboard/hhkb/keymaps/jp.c similarity index 100% rename from keyboard/hhkb/keymap_jp.c rename to keyboard/hhkb/keymaps/jp.c diff --git a/keyboard/hhkb/keymap_spacefn.c b/keyboard/hhkb/keymaps/spacefn.c similarity index 100% rename from keyboard/hhkb/keymap_spacefn.c rename to keyboard/hhkb/keymaps/spacefn.c diff --git a/keyboard/hhkb_qmk/Makefile b/keyboard/hhkb_qmk/Makefile index 8bd44100b7..21ba261a23 100644 --- a/keyboard/hhkb_qmk/Makefile +++ b/keyboard/hhkb_qmk/Makefile @@ -54,9 +54,9 @@ SRC = hhkb_qmk.c \ matrix.c ifdef KEYMAP - SRC := keymaps/keymap_$(KEYMAP).c $(SRC) + SRC := keymaps/keymaps/$(KEYMAP).c $(SRC) else - SRC := keymaps/keymap_default.c $(SRC) + SRC := keymaps/keymaps/default.c $(SRC) endif CONFIG_H = config.h diff --git a/keyboard/hhkb_qmk/README.md b/keyboard/hhkb_qmk/README.md index 606025c411..389407b3aa 100644 --- a/keyboard/hhkb_qmk/README.md +++ b/keyboard/hhkb_qmk/README.md @@ -171,10 +171,10 @@ Depending on which keymap you would like to use, you will have to compile slight To build with the default keymap, simply run `make`. ### Other Keymaps -Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create file named `keymap_.c` and see keymap document (you can find in top README.md) and existent keymap files. +Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create a file in the keymaps folder named `.c` and see keymap document (you can find in top README.md) and existent keymap files. To build the firmware binary hex file with a keymap just do `make` with `KEYMAP` option like: ``` $ make KEYMAP=[default|jack|] ``` -Keymaps follow the format **__keymap\_\.c__** and are stored in the `keymaps` folder. +Keymaps follow the format **__\.c__** and are stored in the `keymaps` folder. diff --git a/keyboard/hhkb_qmk/hhkb_qmk.c b/keyboard/hhkb_qmk/hhkb_qmk.c index 9c90e6eb44..36dc3f29db 100644 --- a/keyboard/hhkb_qmk/hhkb_qmk.c +++ b/keyboard/hhkb_qmk/hhkb_qmk.c @@ -1,16 +1,16 @@ #include "hhkb_qmk.h" __attribute__ ((weak)) -void * matrix_init_user(void) { +void matrix_init_user(void) { // leave these blank }; __attribute__ ((weak)) -void * matrix_scan_user(void) { +void matrix_scan_user(void) { // leave these blank }; -void * matrix_init_kb(void) { +void matrix_init_kb(void) { // put your keyboard start-up code here // runs once when the firmware starts up @@ -19,7 +19,7 @@ void * matrix_init_kb(void) { } }; -void * matrix_scan_kb(void) { +void matrix_scan_kb(void) { // put your looping keyboard code here // runs every cycle (a lot) diff --git a/keyboard/hhkb_qmk/hhkb_qmk.h b/keyboard/hhkb_qmk/hhkb_qmk.h index f6bf20f43b..1bac33c2de 100644 --- a/keyboard/hhkb_qmk/hhkb_qmk.h +++ b/keyboard/hhkb_qmk/hhkb_qmk.h @@ -24,7 +24,7 @@ { K70, K71, K72, K73, K74, K75, K76, KC_NO } \ } -void * matrix_init_user(void); -void * matrix_scan_user(void); +void matrix_init_user(void); +void matrix_scan_user(void); #endif diff --git a/keyboard/hhkb_qmk/keymaps/keymap_default.c b/keyboard/hhkb_qmk/keymaps/default.c similarity index 100% rename from keyboard/hhkb_qmk/keymaps/keymap_default.c rename to keyboard/hhkb_qmk/keymaps/default.c diff --git a/keyboard/hhkb_qmk/keymaps/keymap_lxol.c b/keyboard/hhkb_qmk/keymaps/lxol.c similarity index 100% rename from keyboard/hhkb_qmk/keymaps/keymap_lxol.c rename to keyboard/hhkb_qmk/keymaps/lxol.c diff --git a/keyboard/jd45/Makefile b/keyboard/jd45/Makefile index 076dced829..f6a8d10c58 100644 --- a/keyboard/jd45/Makefile +++ b/keyboard/jd45/Makefile @@ -54,9 +54,9 @@ SRC = jd45.c \ backlight.c ifdef KEYMAP - SRC := keymaps/keymap_$(KEYMAP).c $(SRC) + SRC := keymaps/keymaps/(KEYMAP).c $(SRC) else - SRC := keymaps/keymap_default.c $(SRC) + SRC := keymaps/keymaps/default.c $(SRC) endif CONFIG_H = config.h diff --git a/keyboard/jd45/jd45.c b/keyboard/jd45/jd45.c index d05714f07b..bc3fcd3ddf 100644 --- a/keyboard/jd45/jd45.c +++ b/keyboard/jd45/jd45.c @@ -1,16 +1,16 @@ #include "jd45.h" __attribute__ ((weak)) -void * matrix_init_user(void) { +void matrix_init_user(void) { }; __attribute__ ((weak)) -void * matrix_scan_user(void) { +void matrix_scan_user(void) { }; -void * matrix_init_kb(void) { +void matrix_init_kb(void) { #ifdef BACKLIGHT_ENABLE backlight_init_ports(); #endif @@ -20,7 +20,7 @@ void * matrix_init_kb(void) { } }; -void * matrix_scan_kb(void) { +void matrix_scan_kb(void) { if (matrix_scan_user) { (*matrix_scan_user)(); } diff --git a/keyboard/jd45/jd45.h b/keyboard/jd45/jd45.h index f07bd5e139..d0ca1a88d0 100644 --- a/keyboard/jd45/jd45.h +++ b/keyboard/jd45/jd45.h @@ -6,7 +6,7 @@ #include "backlight.h" #include -void * matrix_init_user(void); -void * matrix_scan_user(void); +void matrix_init_user(void); +void matrix_scan_user(void); #endif diff --git a/keyboard/jd45/keymaps/keymap_default.c b/keyboard/jd45/keymaps/default.c similarity index 100% rename from keyboard/jd45/keymaps/keymap_default.c rename to keyboard/jd45/keymaps/default.c diff --git a/keyboard/jd45/keymaps/keymap_justin.c b/keyboard/jd45/keymaps/justin.c similarity index 100% rename from keyboard/jd45/keymaps/keymap_justin.c rename to keyboard/jd45/keymaps/justin.c diff --git a/keyboard/planck/CYGWIN_GUIDE.md b/keyboard/planck/CYGWIN_GUIDE.md new file mode 100755 index 0000000000..ac13e745d7 --- /dev/null +++ b/keyboard/planck/CYGWIN_GUIDE.md @@ -0,0 +1,352 @@ +#Planck Advanced (but not too advanced) `cygwin` Users Guide +If you are a user of the [cygwin environment](https://cygwin.com) in Windows and want the freedom to use the latest tools available, then this is the guide for you. If compiling your own copy of the latest and greatest Gnu C Compiler makes you super happy, then this is the guide for you. If the command line make you smile, then this is the guide for you. + +This guide was written step by step as I went through the process on a `Windows 10` `x86_64` and a `Windows 7` `amd k10` based system. This should be generally applicable to to any `Windows` environment with `cygwin`. + +#####Do not skip steps. Do not move past a step until the previous step finishes successfully. + +Based on [avr-libc installation guide](http://www.nongnu.org/avr-libc/user-manual/install_tools.html) + +##Get the Required Packages +Download the `cygwin` setup ([x86_64](https://cygwin.com/setup-x86_64.exe)) and install the default system plus the following if they are not already selected: +- devel/git +- devel/gcc-core +- devel/gcc-g++ +- devel/flex +- devel/bison +- devel/make +- devel/texinfo +- devel/gettext-devel +- devel/automake +- devel/autoconfig +- devel/libtool +- text/gettext +- libs/libgcc1 +- interpreters/m4 +- web/wget +- archive/unzip + +The following sources will be required: +- [gmp](https://gmplib.org/) (6.1.0) +- [mpfr](http://www.mpfr.org/) (3.1.4) +- [mpc](http://www.multiprecision.org/) (1.0.3) +- [binutils](https://www.sourceware.org/binutils/) (2.26) +- [gcc](https://gcc.gnu.org/) (5.3.0) +- [avr-libc](http://www.nongnu.org/avr-libc/) (2.0.0) + +The `dfu-programmer` will be required to flash the new firmware +- [dfu-programmer](https://dfu-programmer.github.io/) (0.7.2) + +The set of commands below will create a directory (`~/local/avr`) for the sources you compile to be installed on the machine and a directory (`~/src`) for these source files to be stored. The commands then download the sources of the needed packages and unpack them. Note: the expand commands are different depending on if the packages are offered as a `bz2` or `gz` archive +``` +$ mkdir ~/local +$ mkdir ~/local/avr +$ mkdir ~/src +$ cd ~/src +$ wget https://gmplib.org/download/gmp/gmp-6.1.0.tar.bz2 +$ wget http://www.mpfr.org/mpfr-3.1.4/mpfr-3.1.4.tar.bz2 +$ wget ftp://ftp.gnu.org/gnu/mpc/mpc-1.0.3.tar.gz +$ wget http://ftp.gnu.org/gnu/binutils/binutils-2.26.tar.gz +$ wget http://mirror0.babylon.network/gcc/releases/gcc-5.3.0/gcc-5.3.0.tar.gz +$ wget http://download.savannah.gnu.org/releases/avr-libc/avr-libc-2.0.0.tar.bz2 +$ tar -xjf gmp-6.1.0.tar.bz2 +$ tar -xjf mpfr-3.1.4.tar.bz2 +$ tar -zxf mpc-1.0.3.tar.gz +$ tar -zxf binutils-2.26.tar.gz +$ tar -zxf gcc-5.3.0.tar.gz +$ tar -xjf avr-libc-2.0.0.tar.bz2 +``` + +##Setup the Build Environment +These commands will set up the install directory and the `PATH` variable, which will allow you to access your installed packages. Note: if you close the `cygwin` terminal window, you will need to rerun these commands, they are not permanent. +``` +$ PREFIX=$HOME/local/avr +$ export PREFIX +$ PATH=/usr/local/bin:/usr/local/lib:/usr/local/include:/bin:/lib:/cygdrive/c/WINDOWS/system32:/cygdrive/c/WINDOWS +$ PATH=$PATH:$PREFIX/bin:$PREFIX/lib +$ export PATH +``` + +##The `gcc` Required Math Library Packages +The following packages are required to be complied and installed in order to compile `gcc`. They are not sufficiently available through the `cygwin` package system, so we have to make them ourselves. They must be complied in this order because each one depends on the previous. Verfiy that for each package, `make check` returns all passing and no fails. + +###Build and Install `gmp` +``` +$ cd ~/src/gmp-6.1.0 +$ ./configure --enable-static --disable-shared +$ make +$ make check +$ make install +``` + +###Build and Install `mpfr` +``` +$ cd ~/src/mpfr-3.1.4 +$ ./configure --with-gmp-build=../gmp-6.1.0 --enable-static --disable-shared +$ make +$ make check +$ make install +``` + +###Build and Install `mpc` +``` +$ cd ~/src/mpc-1.0.3 +$ ./configure --with-gmp=/usr/local --with-mpfr=/usr/local --enable-static --disable-shared +$ make +$ make check +$ make install +``` + +##OPTIONAL Part +You can build and install a brand new `gcc` or you can use the one supplied by `cygwin`. This will take about 4-5 hours to compile (It is a "native build", so it does the entire build **3 times**. This takes a long while). + +###Build and Install `gcc` for Your Machine +``` +$ cd ~/src/gcc-5.3.0 +$ mkdir obj-local +$ cd obj-local +$ ../configure --enable-languages=c,c++ --with-gmp=/usr/local --with-mpfr=/usr/local --with-mpc=/usr/local --enable-static --disable-shared +$ make +$ make install +``` +##End OPTIONAL Part + +###Build and Install `binutils` for Your Machine +``` +$ cd ~/src/binutils-2.26 +$ mkdir obj-local +$ cd obj-local +$ ../configure +$ make +$ make install +``` + +##Buliding `binutils`, `gcc`, and `avr-libc` for the AVR system +Now we can make the critical stuff for compiling our firmware: `binutils`, `gcc`, and `avr-libc` for the AVR architecture. These allow us to build and manipulate the firmware for the keyboard. + +###Build `binutils` for AVR +If you plan to build and install `avr-gdb` also, use the `gdb` install at the end of this guide as it also builds the `binutils` +``` +$ cd ~/src/binutils-2.26 +$ mkdir obj-avr +$ cd obj-avr +$ ../configure --prefix=$PREFIX --target=avr --disable-nls +$ make +$ make install +``` + +###Build `gcc` for AVR +``` +$ cd ~/src/gcc-5.3.0 +$ mkdir obj-avr +$ cd obj-avr +$ ../configure --prefix=$PREFIX --target=avr --enable-languages=c,c++ --with-gmp=/usr/local --with-mpfr=/usr/local --with-mpc=/usr/local --enable-static --disable-shared --disable-nls --disable-libssp --with-dwarf2 +$ make +$ make install +``` + +###Build `avr-libc` for AVR +For building the `avr-libc`, we have to specify the host build system. In my case it is `x86_64-unknown-cygwin`. You can look for build system type in the `gcc` configure notes for the proper `--build` specification to pass when you configure `avr-libc`. +``` +$ cd ~/src/avr-libc-2.0.0 +$ ./configure --prefix=$PREFIX --build=x86_64-unknown-cygwin --host=avr +$ make +$ make install +``` + +##Building 'dfu-programmer' for flashing the firmware via USB and installing the drivers +We can either build our own, or use the precomplied binaries. The precompiled binaries don't play well with `cygwin` so it is better to build them ourselves. The procedure for the precompiled binaries is included at the end of this guide. + +### Build and Install the `libusb` +The `dfu-programmer` requires `libusb` so that it can interact with the USB system. These repos must be bootstrapped in order to create an appropriate `./configure` and `Makefile` for your system. +``` +$ cd ~/src +$ git clone https://github.com/libusb/libusb.git +$ cd libusb +$ ./bootstrap.sh +$ ./configure +$ make +$ make install +``` + +### Build and Install the `dfu-programmer` +``` +$ cd ~/src +$ git clone https://github.com/dfu-programmer/dfu-programmer.git +$ cd dfu-programmer +$ ./bootstrap.sh +$ ./configure +$ make +$ make install +``` + +Verify the installation with: +``` +$ which dfu-programmer +/usr/local/bin/dfu-programmer + +$ dfu-programmer +dfu-programmer 0.7.2 +https://github.com/dfu-programmer/dfu-programmer +Type 'dfu-programmer --help' for a list of commands + 'dfu-programmer --targets' to list supported target devices +``` +If you are not getting the above result, you will not be able to flash the firmware! + +###Install the USB drivers +The drivers are included in the windows binary version of [`dfu-programmer` 0.7.2](http://iweb.dl.sourceforge.net/project/dfu-programmer/dfu-programmer/0.7.2/dfu-programmer-win-0.7.2.zip). +``` +$ cd ~/src +$ wget http://iweb.dl.sourceforge.net/project/dfu-programmer/dfu-programmer/0.7.2/dfu-programmer-win-0.7.2.zip +$ unzip dfu-programmer-win-0.7.2.zip -d dfu-programmer-win-0.7.2 +``` + +or + +The official drivers are found in [Atmel's `FLIP` installer](http://www.atmel.com/images/Flip%20Installer%20-%203.4.7.112.exe). Download and then install `FLIP`. Upon installation, the drivers will be found in `C:\Program Files (x86)\Atmel\Flip 3.4.7\usb`. + +Then, from an **administrator-privileged** `Windows` terminal, run the following command (adjust the path for username, etc. as necessary) and accept the prompt that pops up: +``` +C:\> pnputil -i -a C:\cygwin64\home\Kevin\src\dfu-programmer-win-0.7.2\dfu-prog-usb-1.2.2\atmel_usb_dfu.inf +or +C:\> pnputil -i -a "C:\Program Files (x86)\Atmel\Flip 3.4.7\usb\atmel_usb_dfu.inf" +``` + +This should be the result: +``` +Microsoft PnP Utility + +Processing inf : atmel_usb_dfu.inf +Successfully installed the driver on a device on the system. +Driver package added successfully. +Published name : oem104.inf + + +Total attempted: 1 +Number successfully imported: 1 +``` + +Alternatively, the `Windows` driver can be installed when prompted by `Windows` when the keyboard is attached. Do not let `Windows` search for a driver; specify the path to search for a driver and point it to the `atmel_usb_dfu.inf` file. + +##Building and Flashing the Planck firmware! +If you did everything else right. This part should be a snap! Grab the latest sources from `github`, make the Plank firmware, then flash it. + +###Build Planck and Load the Firmware +``` +$ cd ~/src +$ git clone https://github.com/jackhumbert/qmk_firmware.git +$ cd qmk_firmware/keyboard/planck +$ make +``` + +Make sure there are no errors. You should end up with this or something similar: +``` +Creating load file for Flash: planck.hex +avr-objcopy -O ihex -R .eeprom -R .fuse -R .lock -R .signature planck.elf planck.hex + +Creating load file for EEPROM: planck.eep +avr-objcopy -j .eeprom --set-section-flags=.eeprom="alloc,load" \ +--change-section-lma .eeprom=0 --no-change-warnings -O ihex planck.elf planck.eep || exit 0 + +Creating Extended Listing: planck.lss +avr-objdump -h -S -z planck.elf > planck.lss + +Creating Symbol Table: planck.sym +avr-nm -n planck.elf > planck.sym + +Size after: + text data bss dec hex filename + 18602 82 155 18839 4997 planck.elf + +-------- end -------- +``` + +If you do not get the above, you **did not** build the firmware, and you will have nothing to flash. If you have the fresh clone from `github`, it was probably something gone wrong in this install process, go check and see what didn't work and threw errors or what steps you might have missed. + +But if everything went OK, you are ready to flash! Press the reset button on the bottom of the Planck, wait two seconds, then: +``` +$ make dfu +``` +. +. +. +profit!!! + + + + + +##extra bits... + +###Installing Precompiled `dfu-programmer` Binaries (not recommended for `cygwin`) +To install the `dfu-programmer` from the binaries, we must get if from [the `dfu-programmer` website](https://dfu-programmer.github.io/) ([0.7.2](http://iweb.dl.sourceforge.net/project/dfu-programmer/dfu-programmer/0.7.2/dfu-programmer-win-0.7.2.zip)). + +Copy this file into your `cygwin` home\src directory. (For me, it is `C:\cygwin64\home\Kevin\src`), extract the files, move `dfu-programmer.exe` to `~/local/avr/bin`. Most obnoxiously, the `libusb0_x86.dll` and `libusb0.sys` need to be moved from `./dfu-prog-usb-1.2.2/x86/` to a directory in the `Windows` `PATH` and the `cygwin` `PATH`. This is because the `dfu-programmer` binary is `mingw` based, not `cygwin` based, so the `dlls` do not cooperate. I achieved acceptable pathing by moving the files to `C:\cygwin64\home\Kevin\local\avr\bin` Then, in a `WINDOWS` command prompt running (Adjusting your path for username, etc. as needed): +``` +C:\> set PATH=%PATH%;C:\cygwin64\home\Kevin\local\avr\bin +``` + +Then, rename `libusb0_x86.dll` to `libusb0.dll`. + +You can tell that you were successful by trying to execute 'dfu-programmer' from the 'cygwin' prompt: +``` +$ which dfu-programmer +/home/Kevin/local/avr/bin/dfu-programmer + +$ dfu-programmer +dfu-programmer 0.7.2 +https://github.com/dfu-programmer/dfu-programmer +Type 'dfu-programmer --help' for a list of commands + 'dfu-programmer --targets' to list supported target devices +``` + +If you are not getting the above result, you will not be able to flash the firmware! +- Try making sure your `PATH` variables are set correctly for both `Windows` and `cygwin`. +- Make sure the `dll` is named correctly. +- Do not extract it with `cygwin`'s `unzip` as it does not set the executable permission. If you did it anyway, do `chmod +x dfu-programmer.exe`. +- Still have problems? Try building it instead. + + +##Debugging Tools + +These tools are for debugging your firmware, etc. before flashing. Theoretically, it can save your memory from wearing out. However, these tool do not work 100% for the Planck firmware. + +### `gdb` for AVR +`gdb` has a simulator for AVR but it does not support all instructions (like WDT), so it immediately crashes when running the Planck firmware (because `lufa.c` disables the WDT in the first few lines of execution). But it can still be useful in debugging example code and test cases, if you know how to use it. + +``` +$ cd ~/src +$ git clone git://sourceware.org/git/binutils-gdb.git +$ cd binutils-gdb +$ mkdir obj-avr +$ cd obj-avr +$ ../configure --prefix=$PREFIX --target=avr --build=x86_64-unknown-cygwin --with-gmp=/usr/local --with-mpfr=/usr/local --with-mpc=/usr/local --disable-nls --enable-static +$ make +$ make install +``` + +### `simulavr` +`simulavr` is an AVR simulator. It runs the complied AVR elfs. `simulavr` does not support the `atmega32u4` device... it does `atmega32` but that is not good enough for the firmware (no PORTE and other things), so you cannot run the Planck firmware. I use it to simulate ideas I have for features in separate test projects. + +This one is a major pain in the butt because it has a lot of dependencies and it is buggy. I will do my best to explain it but... it was hard to figure out. A few things need to be changed in the 'Makefile' to make it work in `cygwin`. + + +``` +$ cd ~/src +$ git clone https://github.com/Traumflug/simulavr.git +$ cd simulavr +$ ./bootstrap +$ ./configure --prefix=$PREFIX --enable-static --disable-tcl --disable-doxygen-doc +``` + Edit `src/Makefile.am` now so that `-no-undefined` is included (I did this by removing the SYS_MINGW conditional surrounding `libsim_la_LDFLAGS += -no-undefined` and `libsimulavr_la_LDFLAGS += -no-undefined \ libsimulavr_la_LIBADD += $(TCL_LIB)`. Also, `$(EXEEXT)` is added after `kbdgentables` in two places. + +``` +$ make +$ make install +``` + + +TODO: +- git repos for all sources +- command line magic for cygwin setup +- better options for `dfu-drivers` diff --git a/keyboard/planck/Makefile b/keyboard/planck/Makefile index 485c5f77f6..8d4e7787a6 100644 --- a/keyboard/planck/Makefile +++ b/keyboard/planck/Makefile @@ -27,7 +27,7 @@ # make flip-ee = Download the eeprom file to the device, using Atmel FLIP # (must have Atmel FLIP installed). # -# make debug = Start either simulavr or avarice as specified for debugging, +# make debug = Start either simulavr or avarice as specified for debugging, # with avr-gdb or avr-insight as the front end for debugging. # # make filename.s = Just compile filename.c into the assembler code only. @@ -41,7 +41,6 @@ # Target file name (without extension). TARGET = planck - # Directory common source filess exist TOP_DIR = ../.. TMK_DIR = ../../tmk_core @@ -50,14 +49,41 @@ TMK_DIR = ../../tmk_core TARGET_DIR = . # # project specific files -SRC = planck.c \ - backlight.c +SRC = planck.c + +ifdef keymap + KEYMAP = $(keymap) +endif ifdef KEYMAP - SRC := keymaps/keymap_$(KEYMAP).c $(SRC) +ifneq ("$(wildcard keymaps/$(KEYMAP).c)","") + KEYMAP_FILE = keymaps/$(KEYMAP).c else - SRC := keymaps/keymap_default.c $(SRC) +ifneq ("$(wildcard keymaps/$(KEYMAP)/keymap.c)","") + KEYMAP_FILE = keymaps/$(KEYMAP)/keymap.c +ifneq ("$(wildcard keymaps/$(KEYMAP)/makefile.mk)","") + include keymaps/$(KEYMAP)/makefile.mk endif +else +$(error Keymap file does not exist) +endif +endif + +else + +ifneq ("$(wildcard keymaps/default.c)","") + KEYMAP_FILE = keymaps/default.c +else + KEYMAP_FILE = keymaps/default/keymap.c +endif + +ifneq ("$(wildcard keymaps/default/makefile.mk)","") + include keymaps/default/makefile.mk +endif + +endif + +SRC := $(KEYMAP_FILE) $(SRC) CONFIG_H = config.h @@ -78,7 +104,6 @@ MCU = atmega32u4 # software delays. F_CPU = 16000000 - # # LUFA specific # @@ -110,23 +135,45 @@ OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT # USBaspLoader 2048 OPT_DEFS += -DBOOTLOADER_SIZE=4096 - # Build Options -# comment out to disable the options. +# change to "no" to disable the options, or define them in the makefile.mk in +# the appropriate keymap folder that will get included automatically # -BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000) -MOUSEKEY_ENABLE = yes # Mouse keys(+4700) -EXTRAKEY_ENABLE = yes # Audio control and System control(+450) -CONSOLE_ENABLE = yes # Console for debug(+400) -COMMAND_ENABLE = yes # Commands for debug and configuration -# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE -# SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend -# NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work -BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality -# MIDI_ENABLE = YES # MIDI controls -# UNICODE_ENABLE = YES # Unicode -# BLUETOOTH_ENABLE = yes # Enable Bluetooth with the Adafruit EZ-Key HID +BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = yes # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = yes # Console for debug(+400) +COMMAND_ENABLE = yes # Commands for debug and configuration +NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +MIDI_ENABLE = no # MIDI controls +AUDIO_ENABLE = no # Audio output on port C6 +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend + +ifdef KEYMAP + +ifeq ("$(wildcard keymaps/$(KEYMAP).c)","") +ifneq ("$(wildcard keymaps/$(KEYMAP)/makefile.mk)","") + include keymaps/$(KEYMAP)/makefile.mk +endif +endif + +else + +ifneq ("$(wildcard keymaps/default/makefile.mk)","") + include keymaps/default/makefile.mk +endif + +endif + +ifeq ($(strip $(BACKLIGHT_ENABLE)), yes) + SRC := backlight.c $(SRC) +endif # Optimize size but this may cause error "relocation truncated to fit" #EXTRALDFLAGS = -Wl,--relax @@ -137,4 +184,3 @@ VPATH += $(TOP_DIR) VPATH += $(TMK_DIR) include $(TOP_DIR)/quantum/quantum.mk - diff --git a/keyboard/planck/PCB_GUIDE.md b/keyboard/planck/PCB_GUIDE.md index 9ff12d4852..b36d8fb64c 100644 --- a/keyboard/planck/PCB_GUIDE.md +++ b/keyboard/planck/PCB_GUIDE.md @@ -3,9 +3,12 @@ ## Setting up the environment ### Windows -1. Install [WinAVR Tools](http://sourceforge.net/projects/winavr/) for AVR GCC compiler. -2. Install [DFU-Programmer][dfu-prog] (the -win one). -3. Start DFU bootloader on the chip first time you will see 'Found New Hardware Wizard' to install driver. If you install device driver properly you can find chip name like 'ATmega32U4' under 'LibUSB-Win32 Devices' tree on 'Device Manager'. If not you will need to update its driver on 'Device Manager' to the `dfu-programmer` driver. +1. Install [MHV AVR Tools](https://infernoembedded.com/sites/default/files/project/MHV_AVR_Tools_20131101.exe). Disable smatch, but **be sure to leave the option to add the tools to the PATH checked**. +2. Install [MinGW](https://sourceforge.net/projects/mingw/files/Installer/mingw-get-setup.exe/download). During installation, uncheck the option to install a graphical user interface. **DO NOT change the default installation folder.** The scripts depend on the default location. +3. Clone this repository. [This link will download it as a zip file, which you'll need to extract.](https://github.com/jackhumbert/qmk_firmware/archive/master.zip) Open the extracted folder in Windows Explorer. +4. Right-click on the 1-setup-path-win batch script, select "Run as administrator", and accept the User Account Control prompt. Press the spacebar to dismiss the success message in the command prompt that pops up. +5. Right-click on the 2-setup-environment-win batch script, select "Run as administrator", and accept the User Account Control prompt. This part may take a couple of minutes, and you'll need to approve a driver installation, but once it finishes, your environment is complete! + ### Mac @@ -13,6 +16,7 @@ If you're using homebrew, you can use the following commands: brew tap osx-cross/avr brew install avr-libc + brew install dfu-programmer Otherwise, these instructions will work: @@ -24,6 +28,9 @@ Otherwise, these instructions will work: 1. Install AVR GCC with your favorite package manager. 2. Install [DFU-Programmer][dfu-prog]. +Note that, since it will be directly accessing USB hardware, the +`dfu-programmer` program needs to be run as root. + ## Verify Your Installation 1. Clone the following repository: https://github.com/jackhumbert/qmk_firmware 2. Open a Terminal and `cd` into `qmk_firmware/keyboard/planck` @@ -47,11 +54,33 @@ Generally, the instructions to flash the PCB are as follows: 4. Press the reset button on the PCB/press the key with the `RESET` keycode 5. `make dfu` - use the necessary `KEYMAP=` and/or `COMMON=true` arguments here. +## Troubleshooting +If you see something like this + + 0 [main] sh 13384 sync_with_child: child 9716(0x178) died before initialization with status code 0xC0000142 + 440 [main] sh 13384 sync_with_child: *** child state waiting for longjmp + /usr/bin/sh: fork: Resource temporarily unavailable + +after running 'make' on Windows than you are encountering a very popular issue with WinAVR on Windows 8.1 and 10. +You can easily fix this problem by replacing msys-1.0.dll in WinAVR/utils/bin with [this one](http://www.madwizard.org/download/electronics/msys-1.0-vista64.zip). +Restart your system and everything should work fine! + + +If you see this + + dfu-programmer atmega32u4 erase + process_begin: CreateProcess(NULL, dfu-programmer atmega32u4 erase, ...) failed. + make (e=2): The system cannot find the file specified. + make: *** [dfu] Error 2 + +when trying to 'make dfu' on Windows you need to copy the dfu-programmer.exe to qmk_firmware/keyboard/planck. + + ## Quantum MK Firmware ### Keymap -Unlike the other keymaps, prefixing the keycodes with `KC_` is required. A full list of the keycodes is available [here](https://github.com/jackhumbert/qmk_firmware/blob/master/doc/keycode.txt). For the keycodes available only in the extended keymap, see this [header file](https://github.com/jackhumbert/qmk_firmware/blob/master/quantum/keymap_common.h). +Unlike the other keymaps, prefixing the keycodes with `KC_` is required. A full list of the keycodes is available [here](https://github.com/jackhumbert/qmk_firmware/blob/master/tmk_core/doc/keycode.txt). For the keycodes available only in the extended keymap, see this [header file](https://github.com/jackhumbert/qmk_firmware/blob/master/quantum/keymap_common.h). You can use modifiers with keycodes like this: diff --git a/keyboard/planck/README.md b/keyboard/planck/README.md index 0003e765d4..d9a1e3beee 100644 --- a/keyboard/planck/README.md +++ b/keyboard/planck/README.md @@ -3,116 +3,8 @@ Planck keyboard firmware DIY/Assembled compact ortholinear 40% keyboard by [Ortholinear Keyboards](http://ortholinearkeyboards.com). ## Quantum MK Firmware -You have access to a bunch of goodies! Check out the Makefile to enable/disable some of the features. Uncomment the `#` to enable them. Setting them to `no` does nothing and will only confuse future you. - BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality - MIDI_ENABLE = yes # MIDI controls - # UNICODE_ENABLE = yes # Unicode support - BLUETOOTH_ENABLE = yes # Enable Bluetooth with the Adafruit EZ-Key HID - -### Mod shortcuts - -* `LSFT(kc)` - applies left shift to *kc* - `S(kc)` is an alias -* `RSFT(kc)` - applies right shift to *kc* -* `LCTL(kc)` - applies left control to *kc* -* `RCTL(kc)` - applies right control to *kc* -* `LALT(kc)` - applies left alt to *kc* -* `RALT(kc)` - applies right alt to *kc* -* `LGUI(kc)` - applies left gui (command/win) to *kc* -* `RGUI(kc)` - applies right gui (command/win) to *kc* - -You can also use more than one, like this: - - LALT(LGUI(KC_ESC)) - -The following shortcuts automatically add `LSFT()` to keycodes to get commonly used symbols. Their long names (see `quantum/keymap_common.h`) are also availble. - - KC_TILD ~ - KC_EXLM ! - KC_AT @ - KC_HASH # - KC_DLR $ - KC_PERC % - KC_CIRC ^ - KC_AMPR & - KC_ASTR * - KC_LPRN ( - KC_RPRN ) - KC_UNDS _ - KC_PLUS + - KC_LCBR { - KC_RCBR } - KC_PIPE | - KC_COLN : - -### Function shortcuts - -Instead of using `FNx`, you can use `F(x)` - the benefit here is being able to use more than 32 function layers (up to 4096), if you happen to need them. - -There are also keycode shortcuts for common actions: - -* `MO(layer)` - momentary switch to *layer* -* `DF(layer)` - sets default layer to *layer* -* `TG(layer)` - toggle between the current layer and *layer* -* `MT(mod, kc)` - is *mod* when held, and *kc* when tapped - * `CTL_T(kc)` - is LCTL when held and *kc* when tapped - * `SFT_T(kc)` - is LSFT when held and *kc* when tapped - * `ALT_T(kc)` - is LALT when held and *kc* when tapped - * `GUI_T(kc)` - is LGUI when held and *kc* when tapped - * `ALL_T(kc)` - is Hyper (all mods) when held and *kc* when tapped -* `LT(layer, kc)` - momentary switch to *layer* when held, and *kc* when tapped - -These functions work the same way that their `ACTION_*` functions do, and will require KC_TRNS on the layer being switched to - check out the default keymap for an example. - -### Additional keycodes for software-implemented layouts (Colemak, Dvorak, etc) - -Everything is assuming you're in Qwerty (in software) by default, but there is built-in support for using a Colemak or Dvorak layout by including this at the top of your keymap: - - #include "keymap_.h" - -Where is "colemak" or "dvorak". After including this line, you will get access to: - - * `CM_*` for all of the Colemak-equivalent characters - * `DV_*` for all of the Dvorak-equivalent characters - -These implementations assume you're using Colemak or Dvorak on your OS, not on your keyboard - this is referred to as a software-implemented layout. If your computer is in Qwerty and your keymap is in Colemak or Dvorak, this is referred to as a firmware-implemented layout, and you won't need these features. - -To give an example, if you're using software-implemented Colemak, and want to get an `F`, you would use `CM_F` - `KC_F` under these same circumstances would result in `T`. - -### Additional language support - -In `quantum/keymap_extras/`, you'll see various language files - these work the same way as the alternative layout ones do. Most are defined by their two letter country/language code followed by an underscore and a 4-letter abbrivation of its name. `FR_UGRV` which will result in a `ù` when using a software-implemented AZERTY layout. It's currently difficult to send such characters in just the firmware (but it's being worked on - see Unicode support). - -### Unicode support - -You can currently send 4 hex digits with your OS-specific modifier key (RALT for OSX with the "Unicode Hex Input" layout) - this is currently limited to supporting one OS at a time, and requires a recompile for switching. 8 digit hex codes are being worked on. The keycode function is `UC(n)`, where *n* is a 4 digit hexidecimal. Enable from the Makefile. - -### Macro shortcuts - -Instead of using the `ACTION_MACRO` function, you can simply use `M(n)` to access macro *n* - *n* will get passed into the `action_get_macro` as the `id`, and you can use a switch statement to filter them. This gets called on the keydown and keyup, so you'll need to use an if statement testing `record->event.pressed` (see keymap_default.c). - -### Other keyboard shortcut keycodes - -* `RESET` - puts the MCU in DFU mode for flashing new firmware (with `make dfu`) -* `DEBUG` - the firmware into debug mode - you'll need hid_listen to see things -* `BL_ON` - turns the backlight on -* `BL_OFF` - turns the backlight off -* `BL_` - sets the backlight to level *n* -* `BL_INC` - increments the backlight level by one -* `BL_DEC` - decrements the backlight level by one -* `BL_TOGG` - toggles the backlight -* `BL_STEP` - steps through the backlight levels - -Enable the backlight from the Makefile. - - -### MIDI functionalty - -This is still a WIP, but check out `quantum/keymap_midi.c` to see what's happening. Enable from the Makefile. - -### Bluetooth functionality - -This requires [some hardware changes](https://www.reddit.com/r/MechanicalKeyboards/comments/3psx0q/the_planck_keyboard_with_bluetooth_guide_and/?ref=search_posts), but can be enabled via the Makefile. The firmware will still output characters via USB, so be aware of this when charging via a computer. It would make sense to have a switch on the Bluefruit to turn it off at will. +For the full Quantum feature list, see [the parent README.md](/README.md). ## Building @@ -124,13 +16,13 @@ Depending on which keymap you would like to use, you will have to compile slight To build with the default keymap, simply run `make`. ### Other Keymaps -Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create file named `keymap_.c` and see keymap document (you can find in top README.md) and existent keymap files. +Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create file named `.c` in the keymaps folder, and see keymap document (you can find in top README.md) and existent keymap files. To build the firmware binary hex file with a keymap just do `make` with `KEYMAP` option like: ``` $ make KEYMAP=[default|jack|] ``` -Keymaps follow the format **__keymap\_\.c__** and are stored in the `keymaps` folder. +Keymaps follow the format **__\.c__** and are stored in the `keymaps` folder. ### Notable forks (which some of the keymap files are from) - [Shane's Fork](https://github.com/shanecelis/tmk_keyboard/tree/master/keyboard/planck) diff --git a/keyboard/planck/config.h b/keyboard/planck/config.h index a4c711db82..7d64f09773 100644 --- a/keyboard/planck/config.h +++ b/keyboard/planck/config.h @@ -58,16 +58,25 @@ along with this program. If not, see . keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ ) +/* ws2812 RGB LED */ +#define ws2812_PORTREG PORTD +#define ws2812_DDRREG DDRD +#define ws2812_pin PD1 +#define RGBLED_NUM 28 // Number of LEDs +#define RGBLIGHT_HUE_STEP 10 +#define RGBLIGHT_SAT_STEP 17 +#define RGBLIGHT_VAL_STEP 17 + /* * Feature disable options * These options are also useful to firmware size reduction. */ /* disable debug print */ -#define NO_DEBUG +//#define NO_DEBUG /* disable print */ -#define NO_PRINT +//#define NO_PRINT /* disable action features */ //#define NO_ACTION_LAYER diff --git a/keyboard/planck/keymaps/keymap_alexey.c b/keyboard/planck/keymaps/alexey.c similarity index 100% rename from keyboard/planck/keymaps/keymap_alexey.c rename to keyboard/planck/keymaps/alexey.c diff --git a/keyboard/planck/keymaps/keymap_angerthosenear.c b/keyboard/planck/keymaps/angerthosenear.c similarity index 100% rename from keyboard/planck/keymaps/keymap_angerthosenear.c rename to keyboard/planck/keymaps/angerthosenear.c diff --git a/keyboard/planck/keymaps/keymap_austin.c b/keyboard/planck/keymaps/austin.c similarity index 100% rename from keyboard/planck/keymaps/keymap_austin.c rename to keyboard/planck/keymaps/austin.c diff --git a/keyboard/planck/keymaps/bone2planck.c b/keyboard/planck/keymaps/bone2planck.c new file mode 100644 index 0000000000..a99e7719f9 --- /dev/null +++ b/keyboard/planck/keymaps/bone2planck.c @@ -0,0 +1,112 @@ + +#include "planck.h" +#ifdef BACKLIGHT_ENABLE +#include "backlight.h" +#endif +#include "..\..\quantum\keymap_extras\keymap_german.h" + +/* This Layout tries to emulate the Bone2 Variant of Neo2, and is intended to be used with a German QWERTZ Softwarelayout. + It has Umlauts and "ß" as it is optimized for a mix of German & English. + My favourite features are the placement of the special characters often used for programming right on the home row + and the number & navigation block combo, so you never have to move your hands from their home position. + + Bone2 wiki page: http://wiki.neo-layout.org/wiki/Bone +*/ + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + /* Bone2 + * ,-----------------------------------------------------------------------------------. + * | Q | J | D | U | A | X | P | H | L | M | W | ẞ | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | M1 | C | T | I | E | O | B | N | R | S | G | M1 | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| F | V | Ü | Ä | Ö | Y | Z | , | . | K |Shift | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Ctrl | GUI | Alt | M3 | M2 | Space | M2 | M3 | Esc | Tab |Enter | + * `-----------------------------------------------------------------------------------' + */ + [0] = { + { DE_Q, DE_J, DE_D, DE_U, DE_A, DE_X, DE_P, DE_H, DE_L, DE_M, DE_W, DE_SS }, + { MO(1), DE_C, DE_T, DE_I, DE_E, DE_O, DE_B, DE_N, DE_R, DE_S, DE_G, MO(1) }, + { DE_S, DE_F, DE_V, DE_UE, DE_AE, DE_OE, DE_Y, DE_Z, DE_COMM, DE_DOT, DE_K, DE_S }, + { KC_LCTL, KC_LGUI, KC_LALT, MO(3), MO(2), KC_SPC, KC_SPC, MO(2), MO(3), KC_ESC, KC_TAB, KC_ENT } + }, + + /* M1 Special Characters + * ,-----------------------------------------------------------------------------------. + * | ° | @ | _ | [ | ] | ^ | ! | < | > | = | & | | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | M1 | \ | / | { | } | * | ? | ( | ) | - | : | M1 | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | # | $ | | | ~ | € | + | % | " | ' | ; | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Ctrl | GUI | Alt | M3 | M2 | Space | M2 | M3 | Esc | Tab |Enter | + * `-----------------------------------------------------------------------------------' + */ + [1] = { + { DE_RING, DE_AT, DE_UNDS, DE_LBRC, DE_RBRC, DE_CIRC, DE_EXLM, DE_LESS, DE_MORE, DE_EQL, DE_AMPR, KC_NO }, + { KC_TRNS, DE_BSLS, DE_SLSH, DE_LCBR, DE_RCBR, DE_ASTR, DE_QST, DE_LPRN, DE_RPRN, DE_MINS, DE_COLN, KC_TRNS }, + { KC_NO , DE_HASH, DE_DLR, DE_PIPE, DE_TILD, DE_EURO, DE_PLUS, DE_PERC, DE_DQOT, DE_QUOT, DE_SCLN, KC_NO }, + { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS } + }, + + /* Navigation & Number Blocks + * ,-----------------------------------------------------------------------------------. + * | | PgUp | Bksp | Up | DEL | PgDn | | 7 | 8 | 9 | | | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | Home | Lft | Down | Right| End | . | 4 | 5 | 6 | , | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| | Tab | Ins | Enter| | 0 | 1 | 2 | 3 | ; |Shift | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Ctrl | GUI | Alt | M3 | M2 | Space | M2 | M3 | Esc | Tab |Enter | + * `-----------------------------------------------------------------------------------' + */ + [2] = { + { KC_NO, KC_PGUP, KC_BSPC, KC_UP, KC_DEL, KC_PGDN, KC_NO, DE_7, DE_8, DE_9, KC_NO, KC_NO }, + { KC_NO, KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, DE_DOT, DE_4, DE_5, DE_6, DE_COMM, KC_NO }, + { DE_S, KC_NO, KC_TAB, KC_INS, KC_ENT, KC_NO, KC_0, DE_1, DE_2, DE_3, DE_SCLN, DE_S }, + { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS } + }, + + /* Function & Media Keys + * ,-----------------------------------------------------------------------------------. + * | | | Print|Scroll|Pause | | | F7 | F8 | F9 | F12 | | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | | Mute | Vol- | Vol+ | | ³ | F4 | F5 | F6 | F11 | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| | Prev | Play | Next | | ² | F1 | F2 | F3 | F10 |Shift | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Ctrl | GUI | Alt | M3 | | Space | | M3 | Esc | Tab |Enter | + * `-----------------------------------------------------------------------------------' + */ + [3] = { + { KC_NO, KC_NO, KC_PSCR, KC_SLCK, KC_PAUS, KC_NO, KC_NO, KC_F7, KC_F8, KC_F9, KC_F12, KC_NO }, + { KC_NO, KC_NO, KC_MUTE, KC_VOLD, KC_VOLU, KC_NO, DE_SQ3, KC_F4, KC_F5, KC_F6, KC_F11, KC_NO }, + { KC_TRNS, KC_NO, KC_MPRV, KC_MPLY, KC_MNXT, KC_NO, DE_SQ2, KC_F1, KC_F2, KC_F3, KC_F10, KC_TRNS}, + { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_TRNS, KC_TRNS, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} + } +}; + +const uint16_t PROGMEM fn_actions[] = { + +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch (id) { + case 0: + if (record->event.pressed) { + register_code(KC_RSFT); +#ifdef BACKLIGHT_ENABLE + backlight_step(); +#endif + } + else { + unregister_code(KC_RSFT); + } + break; + } + return MACRO_NONE; +}; diff --git a/keyboard/planck/keymaps/brandon.c b/keyboard/planck/keymaps/brandon.c new file mode 100644 index 0000000000..2b89f86db2 --- /dev/null +++ b/keyboard/planck/keymaps/brandon.c @@ -0,0 +1,134 @@ +// This is the canonical layout file for the Quantum project. If you want to add another keyboard, +// this is the style you want to emulate. + +#include "planck.h" +#ifdef BACKLIGHT_ENABLE + #include "backlight.h" +#endif + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +#define _QW 0 +#define _CM 1 +#define _TK 2 +#define _LW 3 +#define _RS 4 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[_QW] = { /* Qwerty */ +/* MIT Layout (QWERTY layer) + * + * ,-----------------------------------------------------------------------. + * | esc | q | w | e | r | t | y | u | i | o | p | bspc| + * |-----------------------------------------------------------------------| + * | tab | a | s | d | f | g | h | j | k | l | ; | ' | + * |-----------------------------------------------------------------------| + * |shift| z | x | c | v | b | n | m | , | . | / |enter| + * |-----------------------------------------------------------------------| + * | ctl | alt | win | TK |lower| spc |raise|left |down | up |right| + * `-----------------------------------------------------------------------' + */ + {KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, + {KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, MT(MOD_LSFT, KC_ENT) }, + {KC_LCTL, KC_LALT, KC_LGUI, TG(_TK), MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, +[_CM] = { /* Colemak */ +/* MIT Layout (Colemak layer) + * + * ,-----------------------------------------------------------------------. + * | esc | q | w | f | p | g | j | l | u | y | ; | bspc| + * |-----------------------------------------------------------------------| + * | tab | a | r | s | t | d | h | n | e | i | o | ' | + * |-----------------------------------------------------------------------| + * |shift| z | x | c | v | b | k | m | , | . | / |enter| + * |-----------------------------------------------------------------------| + * | ctl | alt | win | TK |lower| spc |raise|left |down | up |right| + * `-----------------------------------------------------------------------' + */ + {KC_ESC, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, + {KC_TAB, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, MT(MOD_LSFT, KC_ENT)}, + {KC_LCTL, KC_LALT, KC_LGUI, TG(_TK), MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, +[_RS] = { /* RAISE */ +/* MIT Layout (RAISE layer) + * + * ,-----------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | bspc| + * |-----------------------------------------------------------------------| + * | tab | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | + * |-----------------------------------------------------------------------| + * |shift| F7 | F8 | F9 | F10 | F11 | F12 | QW | CM | BL | RST |enter| + * |-----------------------------------------------------------------------| + * | ctl | alt | win | del |lower| spc |raise|next |vold |volu |PLAY | + * `-----------------------------------------------------------------------' + */ + + {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, + {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, + {KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, DF(_QW), DF(_CM), M(0), RESET, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} +}, +[_LW] = { /* LOWER */ +/* MIT Layout (Colemak layer) + * + * ,-----------------------------------------------------------------------. + * | esc | q | w | f | p | g | j | l | u | y | ; | bspc| + * |-----------------------------------------------------------------------| + * | tab | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | + * |-----------------------------------------------------------------------| + * |shift| F7 | F8 | F9 | F10 | F11 | F12 | QW | CM | BL | RST |enter| + * |-----------------------------------------------------------------------| + * | ctl | alt | win | TK |lower| spc |raise|next |vold |volu |PLAY | + * `-----------------------------------------------------------------------' + */ + {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC}, + {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE}, + {KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, DF(_QW), DF(_CM), M(0), RESET, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} +}, +[_TK] = { /* Ten Key*/ +/* MIT Layout (Ten Key layer) + * + * ,-----------------------------------------------------------------------. + * | esc | F9 | F10 | F11 | F12 | PGUP| % | / | 7 | 8 | 9 | bspc| + * |-----------------------------------------------------------------------| + * | tab | F5 | F6 | F7 | F8 | PGDN| HOME| * | 4 | 5 | 6 | \ | + * |-----------------------------------------------------------------------| + * |shift| F1 | F2 | F3 | F4 | DEL | END | 0 | 1 | 2 | 3 |enter| + * |-----------------------------------------------------------------------| + * | ctl | alt | win | TK |lower| spc |raise|left |down | up |right| + * `-----------------------------------------------------------------------' + */ + {KC_TRNS, KC_F9, KC_F10, KC_F11, KC_F12, KC_PGUP, KC_PERC, KC_SLSH, KC_7, KC_8, KC_9, KC_BSPC}, + {KC_TRNS, KC_F5, KC_F6, KC_F7, KC_F8, KC_PGDN, KC_HOME, KC_ASTR, KC_4, KC_5, KC_6, KC_PIPE}, + {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_DEL, KC_END, KC_0, KC_1, KC_2, KC_3, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +} + +}; + +const uint16_t PROGMEM fn_actions[] = { + +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch(id) { + case 0: + if (record->event.pressed) { + register_code(KC_RSFT); + #ifdef BACKLIGHT_ENABLE + backlight_step(); + #endif + } else { + unregister_code(KC_RSFT); + } + break; + } + return MACRO_NONE; +}; diff --git a/keyboard/planck/keymaps/cbbrowne/README.md b/keyboard/planck/keymaps/cbbrowne/README.md new file mode 100644 index 0000000000..323e9a8596 --- /dev/null +++ b/keyboard/planck/keymaps/cbbrowne/README.md @@ -0,0 +1,16 @@ +cbbrowne custom keyboard +============================== + +Due to cbbrowne@acm.org +Christopher Browne + +This was originally based on the default keyboard map, but I have been +doing sundry experimentation: + + * To figure things out about the toolset + * I'm an Emacs guy, so will be needing a fair bit of tuning + * It made sense to mess around some with keyboard maps. + - I added Workman alongside Dvorak and Colemak + - Boy, oh boy, these don't help + - I have done 30 years of learning of Emacs key mappings, and these alternative keyboards massively mess me up + - I added a keypad, originally based on keymaps/numpad.c, but mighty substantially revised, as that one seems to be rotated 90 degrees from usual conventions for number pads \ No newline at end of file diff --git a/keyboard/planck/keymaps/cbbrowne/keymap.c b/keyboard/planck/keymaps/cbbrowne/keymap.c new file mode 100644 index 0000000000..250d412ced --- /dev/null +++ b/keyboard/planck/keymaps/cbbrowne/keymap.c @@ -0,0 +1,172 @@ +#include "planck.h" +#ifdef BACKLIGHT_ENABLE + #include "backlight.h" +#endif + +/* Each layer is given a name to aid in readability, which is then + used in the keymap matrix below. The underscores do not denote + anything - you can have a layer called STUFF or any other name. + + Layer names don't all need to be of the same length, obviously, and + you could also skip them entirely and just use numbers, though that + means needing to manage the numbers. + + It is preferable to keep the symbols short so that a line worth of + key mappings fits compactly onto a line of code. */ + +/* This was originally based on planck/keymaps/default/default.c, and + then cbbrowne has revised things */ + +/* Things I did not like about the default mapping + + - I find control too hard to get to. I think I'll want it on a + left finger. Gonna need to lose something to do that... + - Almost certainly, KC_LCTL should be on [2][1] + - having dash on [lower-j] is a bit nonintuitive, but may be OK + - I'll bet I should switch ESC/TAB + - I'm suspicious that I want to shift M(0) from [4][1] to [4][2], + and shift ESC off the first column so KC_LCTL and KC_LALT can + be on the first column. + - I think I wanna swap ' and ENTER + + - All of the above are done :-) + + - I'm keeping Colemak and Dvorak around for reference, and added + Workman just for fun. They're useless to me, though. +*/ + + +/* Some interesting things implemented + + - There is a macro that writes out "cbbrowne" just because I could + - There is a (somewhat cruddy) linear congruential random number + generator. + - I would like to be seeding it with clock info to make it look + more random + - There are two macros that use the random number generators + - one, M_RANDDIGIT, generates a random digit based on state + of the random number generator + - the other, M_RANDLETTER, generates a random letter based on state + of the random number generator + - in both, note the use of register_code()/unregister_code() + to indicate the desired key +*/ + +/* Other things to do... + + - Need to think about what zsh and readline actions I use lots + - Wanna figure out macros, so I can put in a "cbbrowne" macro + - Ought to ensure that Control-Alt-Delete is convenient enough + - How about Alt-F1 thru Alt-F8? + - What's the keystroke to get from X to console these days? + - I do indeed want a sweet number pad! + - A layer for doing console switching would not be a bad idea +*/ + +enum layers { + _QW = 0, /* Qwerty mapping */ + _LW, /* Lower layer, where top line has symbols !@#$%^&*() */ + _RS, /* Raised layer, where top line has digits 1234567890 */ + _KP, /* Key pad */ +}; + +enum macro_id { + M_LED = 0, + M_USERNAME, + M_RANDDIGIT, + M_RANDLETTER +}; + +/* Note that Planck has dimensions 4 rows x 12 columns */ + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[_QW] = { /* Qwerty */ + {KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, + {KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT}, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_QUOT }, + {KC_TAB, M(M_LED), KC_LALT, KC_LGUI, MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, +[_RS] = { /* RAISE */ + {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, + {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, + {KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, DF(_QW), DF(_KP), DF(_KP), RESET, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} +}, +[_LW] = { /* LOWER */ + {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC}, + {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE}, + {KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, DF(_QW), DF(_KP), DF(_KP), RESET, KC_TRNS}, + {KC_TRNS, DF(_KP), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} +}, +[_KP] = { /* Key Pad */ + {KC_ESC, M(M_USERNAME), KC_W, KC_E, KC_R, KC_T, KC_Y, KC_KP_ENTER, KC_KP_PLUS, KC_KP_PLUS, KC_KP_ENTER, KC_BSPC}, + {KC_LCTL, M(M_RANDDIGIT), KC_S, KC_D, KC_F, KC_G, KC_H, KC_KP_MINUS, KC_7, KC_8, KC_9, KC_ENT}, + {KC_LSFT, M(M_RANDLETTER), KC_X, KC_C, KC_V, KC_B, KC_N, KC_KP_PLUS, KC_4, KC_5, KC_6, KC_DOT}, + {BL_STEP, M(M_LED), KC_LALT, KC_LGUI, KC_NO, KC_SPC, KC_SPC, DF(_QW), KC_1, KC_2, KC_3, KC_0} +} +}; + +const uint16_t PROGMEM fn_actions[] = { +}; + +/* This bit of logic seeds a wee linear congruential random number generator */ + +static uint16_t random_value = 157; +#define randadd 53 +#define randmul 181 +#define randmod 167 + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + uint8_t clockbyte=0; + clockbyte = TCNT1 % 256; + uint8_t rval; + // MACRODOWN only works in this function + switch(id) { + case M_LED: + if (record->event.pressed) { + register_code(KC_RSFT); +#ifdef BACKLIGHT_ENABLE + backlight_step(); +#endif + } else { + unregister_code(KC_RSFT); + } + break; + case M_USERNAME: + if (record->event.pressed) { + return MACRO( I(1), T(C), T(B), T(B), T(R), T(O), T(W), T(N), T(E)); + } else { + return MACRO_NONE ; + } + break; + case M_RANDDIGIT: + /* Generate, based on random number generator, a keystroke for + a numeric digit chosen at random */ + random_value = ((random_value + randadd) * randmul) % randmod; + if (record->event.pressed) { + /* Here, we mix the LCRNG with low bits from one of the system + clocks via XOR in the theory that this may be more random + than either separately */ + rval = (random_value ^ clockbyte) % 10; + /* Note that KC_1 thru KC_0 are a contiguous range */ + register_code (KC_1 + rval); + unregister_code (KC_1 + rval); + } + break; + case M_RANDLETTER: + /* Generate, based on random number generator, a keystroke for + a letter chosen at random */ + /* Here, we mix the LCRNG with low bits from one of the system + clocks via XOR in the theory that this may be more random + than either separately */ + random_value = ((random_value + randadd) * randmul) % randmod; + if (record->event.pressed) { + rval = (random_value ^ clockbyte) % 26; + register_code (KC_A + rval); + unregister_code (KC_A + rval); + } + break; + } + return MACRO_NONE; +}; diff --git a/keyboard/planck/keymaps/keymap_charlie.c b/keyboard/planck/keymaps/charlie.c similarity index 100% rename from keyboard/planck/keymaps/keymap_charlie.c rename to keyboard/planck/keymaps/charlie.c diff --git a/keyboard/planck/keymaps/keymap_daniel.c b/keyboard/planck/keymaps/daniel.c similarity index 100% rename from keyboard/planck/keymaps/keymap_daniel.c rename to keyboard/planck/keymaps/daniel.c diff --git a/keyboard/planck/keymaps/keymap_david.c b/keyboard/planck/keymaps/david.c similarity index 100% rename from keyboard/planck/keymaps/keymap_david.c rename to keyboard/planck/keymaps/david.c diff --git a/keyboard/planck/keymaps/default/README.md b/keyboard/planck/keymaps/default/README.md new file mode 100644 index 0000000000..d2f43bbdb8 --- /dev/null +++ b/keyboard/planck/keymaps/default/README.md @@ -0,0 +1,34 @@ +# The Default Planck Layout + + const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_QW] = { /* Qwerty */ + {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, + {KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, + {M(0), KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} + }, + [_CM] = { /* Colemak */ + {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, + {KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, + {M(0), KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} + }, + [_DV] = { /* Dvorak */ + {KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC}, + {KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH}, + {KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT }, + {M(0), KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} + }, + [_RS] = { /* RAISE */ + {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, + {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, + {KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, DF(_QW), DF(_CM), DF(_DV), RESET, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} + }, + [_LW] = { /* LOWER */ + {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC}, + {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE}, + {KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, DF(_QW), DF(_CM), DF(_DV), RESET, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} + } + }; \ No newline at end of file diff --git a/keyboard/planck/keymaps/default/keymap.c b/keyboard/planck/keymaps/default/keymap.c new file mode 100644 index 0000000000..ede08ad7f1 --- /dev/null +++ b/keyboard/planck/keymaps/default/keymap.c @@ -0,0 +1,270 @@ +// This is the canonical layout file for the Quantum project. If you want to add another keyboard, +// this is the style you want to emulate. + +#include "planck.h" +#include "action_layer.h" +#ifdef AUDIO_ENABLE + #include "audio.h" +#endif + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +#define _QW 0 +#define _CM 1 +#define _DV 2 +#define _LW 3 +#define _RS 4 +#define _AD 5 + +// Macro name shortcuts +#define QWERTY M(_QW) +#define COLEMAK M(_CM) +#define DVORAK M(_DV) +#define LOWER M(_LW) +#define RAISE M(_RS) +#define M_BL 5 +#ifdef AUDIO_ENABLE + #define AUD_OFF M(6) + #define AUD_ON M(7) +#endif + +// Fillers to make layering more clear +#define _______ KC_TRNS +#define XXXXXXX KC_NO + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* Qwerty + * ,-----------------------------------------------------------------------------------. + * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | S | D | F | G | H | J | K | L | ; | " | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_QW] = { + {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, + {KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, + {M(M_BL), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, + +/* Colemak + * ,-----------------------------------------------------------------------------------. + * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | R | S | T | D | H | N | E | I | O | " | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | K | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_CM] = { + {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, + {KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, + {M(M_BL), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, + +/* Dvorak + * ,-----------------------------------------------------------------------------------. + * | Tab | " | , | . | P | Y | F | G | C | R | L | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | O | E | U | I | D | H | T | N | S | / | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_DV] = { + {KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC}, + {KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH}, + {KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT }, + {M(M_BL), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, + +/* Lower + * ,-----------------------------------------------------------------------------------. + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | F12 | | | | |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ +[_LW] = { + {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC}, + {KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE}, + {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} +}, + +/* Raise + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | F12 | | | | |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ +[_RS] = { + {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, + {KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, + {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} +}, + +/* Adjust (Lower + Raise) + * ,-----------------------------------------------------------------------------------. + * | | Reset| | | | | | | | | | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | | |Aud on|Audoff| | |Qwerty|Colemk|Dvorak| | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | | | | | | | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | + * `-----------------------------------------------------------------------------------' + */ +[_AD] = { + {_______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL}, + {_______, _______, _______, AUD_ON, AUD_OFF, _______, _______, QWERTY, COLEMAK, DVORAK, _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} +} +}; + +const uint16_t PROGMEM fn_actions[] = { + +}; + +#ifdef AUDIO_ENABLE +float start_up[][2] = { + {440.0*pow(2.0,(67)/12.0), 12}, + {440.0*pow(2.0,(64)/12.0), 8}, + {440.0*pow(2.0,(55)/12.0), 8}, + {440.0*pow(2.0,(60)/12.0), 8}, + {440.0*pow(2.0,(64)/12.0), 20} +}; + +float tone_qw[][2] = { + {440.0*pow(2.0,(59)/12.0), 8}, + {440.0*pow(2.0,(60)/12.0), 8}, + {0, 4}, + {440.0*pow(2.0,(67)/12.0), 16} +}; + +float tone_cm[][2] = { + {440.0*pow(2.0,(59)/12.0), 8}, + {440.0*pow(2.0,(60)/12.0), 8}, + {0, 4}, + {440.0*pow(2.0,(67)/12.0), 12}, + {0, 4}, + {440.0*pow(2.0,(71)/12.0), 12} +}; + +float tone_dv[][2] = { + {440.0*pow(2.0,(59)/12.0), 8}, + {440.0*pow(2.0,(60)/12.0), 8}, + {0, 4}, + {440.0*pow(2.0,(67)/12.0), 8}, + {0, 4}, + {440.0*pow(2.0,(69)/12.0), 8}, + {0, 4}, + {440.0*pow(2.0,(67)/12.0), 8} +}; +#endif + + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch(id) { + case _QW: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + play_notes(&tone_qw, 4, false); + #endif + default_layer_set(1UL<<_QW); + } + break; + case _CM: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + play_notes(&tone_cm, 6, false); + #endif + default_layer_set(1UL<<_CM); + } + break; + case _DV: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + play_notes(&tone_dv, 8, false); + #endif + default_layer_set(1UL<<_DV); + } + break; + case _LW: + if (record->event.pressed) { + layer_on(_LW); + update_tri_layer(_LW, _RS, _AD); + } else { + layer_off(_LW); + update_tri_layer(_LW, _RS, _AD); + } + break; + case _RS: + if (record->event.pressed) { + layer_on(_RS); + update_tri_layer(_LW, _RS, _AD); + } else { + layer_off(_RS); + update_tri_layer(_LW, _RS, _AD); + } + break; + case M_BL: + if (record->event.pressed) { + register_code(KC_RSFT); + #ifdef BACKLIGHT_ENABLE + backlight_step(); + #endif + } else { + unregister_code(KC_RSFT); + } + break; + case 6: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + audio_off(); + #endif + } + break; + case 7: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + audio_on(); + play_notes(&start_up, 5, false); + #endif + } + break; + } + return MACRO_NONE; +}; + +void matrix_init_user(void) { + #ifdef AUDIO_ENABLE + init_notes(); + play_notes(&start_up, 5, false); + #endif +} diff --git a/keyboard/planck/keymaps/default/makefile.mk b/keyboard/planck/keymaps/default/makefile.mk new file mode 100644 index 0000000000..8cbec4a1f5 --- /dev/null +++ b/keyboard/planck/keymaps/default/makefile.mk @@ -0,0 +1 @@ +AUDIO_ENABLE = yes \ No newline at end of file diff --git a/keyboard/planck/keymaps/keymap_dzobert.c b/keyboard/planck/keymaps/dzobert.c similarity index 100% rename from keyboard/planck/keymaps/keymap_dzobert.c rename to keyboard/planck/keymaps/dzobert.c diff --git a/keyboard/planck/keymaps/keymap_gabriel.c b/keyboard/planck/keymaps/gabriel.c similarity index 100% rename from keyboard/planck/keymaps/keymap_gabriel.c rename to keyboard/planck/keymaps/gabriel.c diff --git a/keyboard/planck/keymaps/keymap_joe.c b/keyboard/planck/keymaps/joe.c similarity index 100% rename from keyboard/planck/keymaps/keymap_joe.c rename to keyboard/planck/keymaps/joe.c diff --git a/keyboard/planck/keymaps/keymap_jack.c b/keyboard/planck/keymaps/keymap_jack.c deleted file mode 100644 index 0b93bba33f..0000000000 --- a/keyboard/planck/keymaps/keymap_jack.c +++ /dev/null @@ -1,50 +0,0 @@ -#include "keymap_common.h" - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[0] = { /* Jack soft-coded colemak */ - {KC_TAB, CM_Q, CM_W, CM_F, CM_P, CM_G, CM_J, CM_L, CM_U, CM_Y, CM_SCLN, KC_BSPC}, - {KC_ESC, CM_A, CM_R, CM_S, CM_T, CM_D, CM_H, CM_N, CM_E, CM_I, CM_O, KC_QUOT}, - {KC_LSFT, CM_Z, CM_X, CM_C, CM_V, CM_B, CM_K, CM_M, CM_COMM, CM_DOT, CM_SLSH, KC_ENT}, - {BL_STEP, KC_LCTL, KC_LALT, KC_LGUI, FUNC(2), KC_SPC, KC_SPC, FUNC(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} - // Space is repeated to accommadate for both spacebar wiring positions -}, -[1] = { /* Jack hard-coded colemak */ - {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, - {KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, - {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT}, - {KC_FN3, KC_LCTL, KC_LALT, KC_LGUI, FUNC(2), KC_SPC, KC_SPC, FUNC(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} -}, -[2] = { /* Jack RAISE */ - {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, - {KC_TRNS, FUNC(3), FUNC(4), LSFT(RSFT(KC_PAUSE)), KC_TRNS, KC_TRNS, KC_TRNS, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, - {KC_TRNS, KC_F11, KC_F12, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, FUNC(1), KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} -}, -[3] = { /* Jack LOWER */ - {S(KC_GRV), S(KC_1), S(KC_2), S(KC_3), S(KC_4), S(KC_5), S(KC_6), S(KC_7), S(KC_8), S(KC_9), S(KC_0), KC_BSPC}, - {KC_TRNS, FUNC(3), FUNC(4), LSFT(RSFT(KC_PAUSE)), KC_TRNS, KC_TRNS, KC_TRNS, S(KC_MINS), S(KC_EQL), S(KC_LBRC), S(KC_RBRC), S(KC_BSLS)}, - {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, FUNC(2), KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} -} -}; - - -const uint16_t PROGMEM fn_actions[] = { - [1] = ACTION_LAYER_MOMENTARY(2), // to Fn overlay - [2] = ACTION_LAYER_MOMENTARY(3), // to Fn overlay - - [3] = ACTION_DEFAULT_LAYER_SET(0), - [4] = ACTION_DEFAULT_LAYER_SET(1), - -}; - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - // MACRODOWN only works in this function - switch(id) { - case 0: - return MACRODOWN(T(CM_T), END); - break; - } - return MACRO_NONE; -}; diff --git a/keyboard/planck/keymaps/keymap_kyle.c b/keyboard/planck/keymaps/kyle.c similarity index 100% rename from keyboard/planck/keymaps/keymap_kyle.c rename to keyboard/planck/keymaps/kyle.c diff --git a/keyboard/planck/keymaps/keymap_leo.c b/keyboard/planck/keymaps/leo.c similarity index 100% rename from keyboard/planck/keymaps/keymap_leo.c rename to keyboard/planck/keymaps/leo.c diff --git a/keyboard/planck/keymaps/lock/README.md b/keyboard/planck/keymaps/lock/README.md new file mode 100644 index 0000000000..d21cb990b0 --- /dev/null +++ b/keyboard/planck/keymaps/lock/README.md @@ -0,0 +1,3 @@ +# Lock layout + +This layout is designed for having a lock switch in the lower-left-hand corner, and for experimenting with MIDI/audio features. It's constantly in development, so don't expect anything to work/be documented correctly! \ No newline at end of file diff --git a/keyboard/planck/keymaps/keymap_lock.c b/keyboard/planck/keymaps/lock/keymap.c similarity index 83% rename from keyboard/planck/keymaps/keymap_lock.c rename to keyboard/planck/keymaps/lock/keymap.c index cc9be55f64..f1629492ef 100644 --- a/keyboard/planck/keymaps/keymap_lock.c +++ b/keyboard/planck/keymaps/lock/keymap.c @@ -1,7 +1,12 @@ +// USING_MIDI +// USING_BACKLIGHT #include "keymap_common.h" -#include "backlight.h" +#ifdef BACKLIGHT_ENABLE + #include "backlight.h" +#endif #include "action_layer.h" #include "keymap_midi.h" +#include "audio.h" #include const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { @@ -63,15 +68,31 @@ uint16_t hextokeycode(int hex) { } } +float walk_up[][2] = { + {440.0*pow(2.0,(60)/12.0), 400}, + {0, 50}, + {440.0*pow(2.0,(67)/12.0), 600}, +}; + +float walk_dn[][2] = { + {440.0*pow(2.0,(67)/12.0), 400}, + {0, 50}, + {440.0*pow(2.0,(60)/12.0), 600}, +}; + const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { // MACRODOWN only works in this function switch(id) { case 0: if (record->event.pressed) { + + play_notes(&walk_up, 3, false); // play_note(440, 20); // register_code(KC_RSFT); - backlight_set(BACKLIGHT_LEVELS); + #ifdef BACKLIGHT_ENABLE + backlight_set(BACKLIGHT_LEVELS); + #endif default_layer_and(0); default_layer_or((1<<5)); @@ -103,19 +124,33 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) // register_code(hextokeycode((lock & 0x0F))); // unregister_code(hextokeycode((lock & 0x0F))); - // note(0+12, 20); - // note(0+24, 20); } else { - // unregister_code(KC_RSFT); - // stop_note(); - backlight_set(0); + unregister_code(KC_RSFT); + play_notes(&walk_dn, 3, false); + #ifdef BACKLIGHT_ENABLE + backlight_set(0); + #endif default_layer_and(0); default_layer_or(0); - // note(0+24, 20); - // note(0, 20); - // play_note(4, 20); } break; } return MACRO_NONE; }; + +float start_up[][2] = { + {440.0*pow(2.0,(67)/12.0), 600}, + {0, 50}, + {440.0*pow(2.0,(64)/12.0), 400}, + {0, 50}, + {440.0*pow(2.0,(55)/12.0), 400}, + {0, 50}, + {440.0*pow(2.0,(60)/12.0), 400}, + {0, 50}, + {440.0*pow(2.0,(64)/12.0), 1000}, +}; + +void matrix_init_user(void) { + init_notes(); + play_notes(&start_up, 9, false); +} \ No newline at end of file diff --git a/keyboard/planck/keymaps/lucas.c b/keyboard/planck/keymaps/lucas.c new file mode 100644 index 0000000000..27672e1bbc --- /dev/null +++ b/keyboard/planck/keymaps/lucas.c @@ -0,0 +1,163 @@ +/* +This is the keymap of /u/deepshitgoeshere! +Layer 1 exists so I can have the symbol positions of QWERTY while having my system in german. +The second layer has all the german umlauts I need and with capital and small letters on the +same layer there is no need to press shift+lower. +This keymap is made to work with software implemented QWERTZ. +The "Gaming" layer is mainly customized for CS:GO. +If you have any question about this keymap feel free to shoot me a message on reddit! +*/ + +#include "keymap_common.h" +#include "keymap_extras/keymap_german.h" +#include "backlight.h" +#include "debug.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[0] = { /* Colemak + * ,-----------------------------------------------------------------------. + * | Esc | q | w | f | p | g | j | l | u | y | ; | - | + * |-----------------------------------------------------------------------| + * | BS | a | r | s | t | d | h | n | e | i | o | ' | + * |-----------------------------------------------------------------------| + * | SFT | z | x | c | v | b | k | m | , | . | / | Ent | + * |-----------------------------------------------------------------------| + * | CTL | GUI | Tab | ALT |Lower| Space |Raise|Left |Down | Up |Right| + * `-----------------------------------------------------------------------' + */ + {KC_ESC, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Z, DE_SCLN, DE_MINS}, + {KC_BSPC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, DE_QUOT}, + {M(0), KC_Y, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, DE_COMM, DE_DOT, DE_SLSH, KC_ENT}, + {KC_LCTL, KC_LGUI, KC_TAB, KC_LALT, F(2), F(3), F(3), F(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, +[1] = { /* Symbols + * ,-----------------------------------------------------------------------. + * | | | | | | | | | | | : | | + * |-----------------------------------------------------------------------| + * | | | | | | | | | | | | " | + * |-----------------------------------------------------------------------| + * | | | | | | | | | < | > | ? | | + * |-----------------------------------------------------------------------| + * | | | | | | | | | | | | + * `-----------------------------------------------------------------------' + */ + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, DE_DOT, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, DE_DQOT}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, M(1), DE_MORE, DE_QST, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} +}, +[2] = { /* Raise + * ,-----------------------------------------------------------------------. + * | | Ä | | | | | | | Ü | Ö | |Game | + * |-----------------------------------------------------------------------| + * | Del | ä | | ß | | | | | ü | ö | |FVol+| + * |-----------------------------------------------------------------------| + * | | | | | | | | |Stop | Prv | Nxt |FVol-| + * |-----------------------------------------------------------------------| + * |LCTL |LGUI | Tab |LALT |Lower| Space | |Mute |Vol- |Vol+ | P/P | + * `-----------------------------------------------------------------------' + */ + {KC_NO, S(DE_AE), KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, S(DE_UE), S(DE_OE), KC_NO, F(4)}, + {KC_DEL, DE_AE, KC_NO, DE_SS, KC_NO, KC_NO, KC_NO, KC_NO, DE_UE, DE_OE, KC_NO, RALT(KC_F12)}, + {KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_MSTP, KC_MPRV, KC_MNXT, RALT(KC_F11)}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_VOLD, KC_VOLU, KC_MPLY} +}, +[3] = { /* Lower + * ,-----------------------------------------------------------------------. + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | + | + * |-----------------------------------------------------------------------| + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | = | + * |-----------------------------------------------------------------------| + * | | | | | | [ | ] | { | } | € | | \ | Ent | + * |-----------------------------------------------------------------------| + * |LCTL |LGUI | Tab |LALT | | Space |Raise|Home |PgDn |PgUp | End | + * `-----------------------------------------------------------------------' + */ + {DE_TILD, DE_EXLM, DE_AT, DE_HASH, DE_DLR, DE_PERC, DE_CIRC, DE_AMPR, DE_ASTR, DE_LPRN, DE_RPRN, DE_PLUS}, + {DE_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, DE_EQL}, + {KC_NO, KC_NO, KC_NO, DE_PIPE, DE_LBRC, DE_RBRC, DE_LCBR, DE_RCBR, DE_EURO, KC_NO, DE_BSLS, KC_ENT}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_PGUP, KC_END} +}, +[4] = { /* Function + * ,-----------------------------------------------------------------------. + * | F13 | F14 | F15 | F16 | F17 | F18 | F19 | F20 | F21 | F22 | F23 | F24 | + * |-----------------------------------------------------------------------| + * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | + * |-----------------------------------------------------------------------| + * | | | | | | KP- | KP+ | | | | |Reset| + * |-----------------------------------------------------------------------| + * | |Light|BL DN|BL UP| | | | |Mute |Vol- |Vol+ | P/P | + * `-----------------------------------------------------------------------' + */ + {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_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12}, + {KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_PMNS, KC_PPLS, KC_NO, KC_NO, KC_NO, RESET, KC_NO}, + {KC_NO, BL_TOGG, BL_DEC, BL_INC, FUNC(2), KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_VOLD, KC_VOLU, KC_MPLY} +}, +[5] = { /* Gaming + * ,-----------------------------------------------------------------------. + * | Buy | ESC | q | w | e | r | t | y | u | i | o | p | + * |-----------------------------------------------------------------------| + * | ENT | BS | a | s | d | f | g | h | j | k | l | ; | + * |-----------------------------------------------------------------------| + * | CTL | SFT | z | x | c | v | b | n | m | , | Up | / | + * |-----------------------------------------------------------------------| + * | | | Tab | ALT | | Space |CrJmp| GUI |Left |Down |Right| + * `-----------------------------------------------------------------------' + */ + {MO(6), KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Z, KC_U, KC_I, KC_O, F(4)}, + {KC_ENT, KC_BSPC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, DE_SCLN}, + {KC_LCTL, KC_LSFT, KC_Y, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, DE_DOT, KC_UP, DE_SLSH}, + {KC_NO, KC_NO, KC_TAB, KC_LALT, KC_NO, KC_SPC, KC_SPC, LCTL(KC_SPC), KC_LGUI, KC_LEFT, KC_DOWN, KC_RGHT} +}, +[6] = { /* Gaming + /* CS:GO buy binds + * ,-----------------------------------------------------------------------. + * | | | | | | | | | 7 | 8 | 9 | | + * |-----------------------------------------------------------------------| + * | BS | | | | | | | | 6 | 5 | 4 | End | + * |-----------------------------------------------------------------------| + * | CTL | SFT | | | | | | | 1 | 2 | 3 |Pgdn | + * |-----------------------------------------------------------------------| + * | | | Tab | ALT | | Space |CrJmp| | 0 | KP+ |PEnt | + * `-----------------------------------------------------------------------' + */ + {KC_TRNS, KC_NO, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_P7, KC_P8, KC_P9, KC_NO}, + {KC_BSPC, KC_NO, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_P4, KC_P5, KC_P6, KC_END}, + {KC_LCTL, KC_LSFT, KC_Y, KC_X, KC_C, KC_V, KC_B, KC_K, KC_P1, KC_P2, KC_P3, KC_PGDN}, + {KC_NO, KC_NO, KC_TAB, KC_LALT, KC_NO, KC_SPC, KC_SPC, LCTL(KC_SPC), KC_NO, KC_P0, KC_PDOT, KC_PENT} +}, +}; + +const uint16_t PROGMEM fn_actions[] = { + [1] = ACTION_LAYER_MOMENTARY(2), // to RAISE + [2] = ACTION_LAYER_MOMENTARY(3), // to LOWER + [3] = ACTION_LAYER_TAP_KEY(4,KC_SPC), // to Function + [4] = ACTION_LAYER_TOGGLE(5), // toggle Gaming + [5] = ACTION_MODS_TAP_KEY(KC_LSFT, KC_CAPS), //Shift on press, Caps on tap +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + switch(id) { + case 0: // M(0) + if (record->event.pressed) { + register_code(KC_LSFT); + layer_on(1); + } else { + layer_off(1); + unregister_code(KC_LSFT); + } + break; + case 1: // M(1) + if (record->event.pressed) { + unregister_code(KC_LSFT); + register_code(DE_MORE); + } else { + unregister_code(DE_MORE); + } + break; + } + return MACRO_NONE; + +}; \ No newline at end of file diff --git a/keyboard/planck/keymaps/lukas.c b/keyboard/planck/keymaps/lukas.c new file mode 100644 index 0000000000..6fd95378b1 --- /dev/null +++ b/keyboard/planck/keymaps/lukas.c @@ -0,0 +1,64 @@ +#include "planck.h" +#ifdef BACKLIGHT_ENABLE + #include "backlight.h" +#endif + +// This simple keymap is optimized for xmonad users using super as their modifier key. +// M(1) makes it possible to change virtual screens and swap windows between them. + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +#define _QW 0 +#define _LW 1 +#define _RS 2 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_QW] = { /* Qwerty */ + {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, + {KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, + {KC_LCTL, KC_LALT, KC_LGUI, M(1), MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} + }, + [_RS] = { /* RAISE */ + {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL }, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} + }, + [_LW] = { /* LOWER */ + {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LBRC, KC_RBRC, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} + } +}; + +const uint16_t PROGMEM fn_actions[] = { + +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch(id) { + case 0: + if (record->event.pressed) { + register_code(KC_RSFT); + #ifdef BACKLIGHT_ENABLE + backlight_step(); + #endif + } else { + unregister_code(KC_RSFT); + } + break; + case 1: + if (record->event.pressed) { + register_code(KC_LGUI); + layer_on(_RS); + } else { + unregister_code(KC_LGUI); + layer_off(_RS); + } + break; + } + return MACRO_NONE; +}; diff --git a/keyboard/planck/keymaps/keymap_max.c b/keyboard/planck/keymaps/max.c similarity index 100% rename from keyboard/planck/keymaps/keymap_max.c rename to keyboard/planck/keymaps/max.c diff --git a/keyboard/planck/keymaps/mollat.c b/keyboard/planck/keymaps/mollat.c new file mode 100644 index 0000000000..e7c71efd47 --- /dev/null +++ b/keyboard/planck/keymaps/mollat.c @@ -0,0 +1,149 @@ +// +// This layout is based on the following needs: +// +// should be as close as possible to querty/us-international layout (using international/AltGr as o/s driver) +// added german umlauts at known places from de-layout +// all movement keys should be at known places from vi/bash (eg HJKL for cursor keys) +// Fn layer (at CapsLock place like the Pok3r does) for missing keys +// additional layer for tmux window switching +// +// This is work in Progress! If you have suggestions write me at github.com/mollat/qmk_firmware/ and check +// this fork for updates as I probably won't bother jack with my pull requests frequently. +// + +#include "planck.h" + +#define _QWERTY 0 +#define _HIGH 1 +#define _LOW 2 +#define _FN 3 +#define _TMUX 4 +#define _LCTL 5 +#define _MOUSE 6 +#define __________ KC_NO // just for easy reading + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +[_QWERTY] = { /* Qwerty */ + { LT(_MOUSE, KC_ESC),KC_Q,KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC }, + { LT(_FN, KC_TAB),KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT }, + { KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFT_T(KC_ENT)}, + { __________, __________, KC_LGUI, KC_LALT, KC_LCTL,LT(_TMUX, KC_SPC),LT(_HIGH, KC_SPC),MO(_LOW),KC_RALT,KC_RGUI, __________, __________ } +}, + +// missing keys regarding to the form factor +// keeping the dot and comma for typing faster IP addresses and (german) float values +// putting the backslash on the slash's place +[_HIGH] = { + { KC_GRV, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_MINS }, + { __________, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_EQL }, + { __________, __________, __________, __________, __________, __________, __________, __________, KC_COMM, KC_DOT, KC_BSLS, LSFT(KC_BSLS)}, + { __________, __________, __________, __________, __________, __________, KC_TRNS, __________, __________, __________, __________, __________ } +}, + +// classic Fn-Layer triggered with 'CapsLock-key' like on Pok3r +// SPC and ENT are doubled for using repeat (which I switched off, see https://github.com/tmk/tmk_keyboard/issues/287) +// '€' sign is on the '5' position as this is the usual AltGr place on the US Internation layout +// home/end at the 'a' and 'e' position like in bash +// ins at 'i' +// del besides backspace (had no better place for it because of the umlauts) +// pg-down at 'f' (forward in vi), pg-up at 'b' (back in 'vi') +// +[_FN] = { + { __________, __________, __________, KC_END, __________, __________, __________, __________, KC_INS, __________, KC_DEL, RALT(KC_Y) }, + { KC_TRNS, __________, RALT(KC_S), __________, KC_PGDN, RALT(KC_5), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, RALT(KC_P), RALT(KC_Q) }, + { __________, KC_HOME, __________, __________, __________, KC_PGUP, __________, __________, __________, __________, __________, KC_ENT }, + { RESET, __________, __________, __________, __________, KC_SPC, KC_SPC, __________, __________, __________, __________, __________ } +}, + +// function key layer and some shift + (missing key at the small form factor) +[_LOW] = { + { KC_TILD, __________, __________, __________, __________, __________, __________, __________, __________, KC_LCBR, KC_RCBR, KC_UNDS }, + { __________, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_LBRC, KC_RBRC, KC_PLUS }, + { __________, __________, __________, __________, __________, KC_F9, KC_F10, KC_F11, KC_F12, __________, __________, __________ }, + { __________, __________, __________, __________, __________, __________, __________, KC_TRNS, __________, __________, __________, __________ } +}, + +// most macros will switch tmux screens +// two macros are for vi's save/quit at 'w' and 'q' +[_TMUX] = { + { __________, M(14), M(13), __________, __________, __________, __________, __________, __________, __________, M(11), __________ }, + { M(0), M(1), M(2), M(3), M(4), M(5), M(6), M(7), M(8), M(9), __________, __________ }, + { __________, __________, __________, M(12), __________, __________, M(10), __________, __________, __________, __________, __________ }, + { __________, __________, __________, __________, __________, KC_TRNS, __________, __________, __________, __________, __________, __________ } +}, + +// mouse movement can be improved (e.g. can't press hj at once), but I will use this seldom, so I stick with hjkl keys. +[_MOUSE] = { + { KC_TRNS, __________, __________, __________, __________, __________, __________, __________, __________, __________, __________, __________ }, + { __________, __________, __________, __________, KC_WH_D, __________, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, __________, __________ }, + { __________, __________, __________, __________, __________, KC_WH_U, __________, __________, __________, __________, __________, __________ }, + { __________, __________, __________, KC_ACL2, KC_ACL1, KC_ACL0, KC_MS_BTN1, KC_MS_BTN3, KC_MS_BTN2, __________, __________, __________ } +} +}; + +const uint16_t PROGMEM fn_actions[] = { + [_LCTL] = ACTION_MODS_TAP_KEY(KC_LCTL, M(12)), // does not work +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + switch(id) { + case 0: + return MACRODOWN( DOWN(KC_LCTL), TYPE(KC_B), UP(KC_LCTL), TYPE(KC_0), END ); + break; + case 1: + return MACRODOWN( DOWN(KC_LCTL), TYPE(KC_B), UP(KC_LCTL), TYPE(KC_1), END ); + break; + case 2: + return MACRODOWN( DOWN(KC_LCTL), TYPE(KC_B), UP(KC_LCTL), TYPE(KC_2), END ); + break; + case 3: + return MACRODOWN( DOWN(KC_LCTL), TYPE(KC_B), UP(KC_LCTL), TYPE(KC_3), END ); + break; + case 4: + return MACRODOWN( DOWN(KC_LCTL), TYPE(KC_B), UP(KC_LCTL), TYPE(KC_4), END ); + break; + case 5: + return MACRODOWN( DOWN(KC_LCTL), TYPE(KC_B), UP(KC_LCTL), TYPE(KC_5), END ); + break; + case 6: + return MACRODOWN( DOWN(KC_LCTL), TYPE(KC_B), UP(KC_LCTL), TYPE(KC_6), END ); + break; + case 7: + return MACRODOWN( DOWN(KC_LCTL), TYPE(KC_B), UP(KC_LCTL), TYPE(KC_7), END ); + break; + case 8: + return MACRODOWN( DOWN(KC_LCTL), TYPE(KC_B), UP(KC_LCTL), TYPE(KC_8), END ); + break; + case 9: + // tmux last window + return MACRODOWN( DOWN(KC_LCTL), TYPE(KC_B), UP(KC_LCTL), TYPE(KC_L), END ); + break; + // tmux next window + case 10: + return MACRODOWN( DOWN(KC_LCTL), TYPE(KC_B), UP(KC_LCTL), TYPE(KC_N), END ); + break; + // tmux previous window + case 11: + return MACRODOWN( DOWN(KC_LCTL), TYPE(KC_B), UP(KC_LCTL), TYPE(KC_P), END ); + break; + // tmux new window + case 12: + return MACRODOWN( DOWN(KC_LCTL), TYPE(KC_B), UP(KC_LCTL), TYPE(KC_C), END ); + break; + case 13: + // vi save document + return MACRODOWN( TYPE(KC_ESC), DOWN(KC_LSFT), TYPE(KC_SCLN), UP(KC_LSFT), TYPE(KC_W), TYPE(KC_ENT), END ); + break; + case 14: + // vi quit + return MACRODOWN( TYPE(KC_ESC), DOWN(KC_LSFT), TYPE(KC_SCLN), UP(KC_LSFT), TYPE(KC_Q), TYPE(KC_ENT), END ); + break; + // tmux press ctrl-b + case 15: + return MACRODOWN( DOWN(KC_LCTL), TYPE(KC_B), UP(KC_LCTL), END ); + break; + } + return MACRO_NONE; +}; diff --git a/keyboard/planck/keymaps/keymap_monkey.c b/keyboard/planck/keymaps/monkey.c similarity index 100% rename from keyboard/planck/keymaps/keymap_monkey.c rename to keyboard/planck/keymaps/monkey.c diff --git a/keyboard/planck/keymaps/keymap_default.c b/keyboard/planck/keymaps/nico.c similarity index 71% rename from keyboard/planck/keymaps/keymap_default.c rename to keyboard/planck/keymaps/nico.c index 49670dafd3..e81fd80a44 100644 --- a/keyboard/planck/keymaps/keymap_default.c +++ b/keyboard/planck/keymaps/nico.c @@ -17,38 +17,39 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_QW] = { /* Qwerty */ {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, - {KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, + {KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, - {M(0), KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} + {M(0), KC_ESC, KC_LALT, KC_LGUI, F(1), KC_SPC, KC_SPC, F(2), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} }, [_CM] = { /* Colemak */ {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, - {KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, + {KC_LCTL, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, - {M(0), KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} + {M(0), KC_ESC, KC_LALT, KC_LGUI, F(1), KC_SPC, KC_SPC, F(2), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} }, [_DV] = { /* Dvorak */ {KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC}, - {KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH}, + {KC_LCTL, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH}, {KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT }, - {M(0), KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} + {M(0), KC_ESC, KC_LALT, KC_LGUI, F(1), KC_SPC, KC_SPC, F(2), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} }, [_RS] = { /* RAISE */ {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, {KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, DF(_QW), DF(_CM), DF(_DV), RESET, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} + {M(0), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F14, KC_F15, KC_TRNS, KC_MFFD, KC_VOLD, KC_VOLU, KC_MPLY} }, [_LW] = { /* LOWER */ {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC}, {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE}, {KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, DF(_QW), DF(_CM), DF(_DV), RESET, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} + {M(0), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F14, KC_F15, KC_TRNS, KC_MFFD, KC_VOLD, KC_VOLU, KC_MPLY} } }; const uint16_t PROGMEM fn_actions[] = { - + [1] = ACTION_LAYER_TAP_KEY(MO(_LW), KC_BSPC), // Tap for backspace, hold for LOWER + [2] = ACTION_LAYER_TAP_KEY(MO(_RS), KC_ENT), // Tap for enter, hold for RAISE }; const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) diff --git a/keyboard/planck/keymaps/keymap_numpad.c b/keyboard/planck/keymaps/numpad.c similarity index 100% rename from keyboard/planck/keymaps/keymap_numpad.c rename to keyboard/planck/keymaps/numpad.c diff --git a/keyboard/planck/keymaps/pc.c b/keyboard/planck/keymaps/pc.c new file mode 100644 index 0000000000..ed062609f4 --- /dev/null +++ b/keyboard/planck/keymaps/pc.c @@ -0,0 +1,158 @@ +// This is the canonical layout file for the Quantum project. If you want to add another keyboard, +// this is the style you want to emulate. + +#include "planck.h" +#ifdef BACKLIGHT_ENABLE + #include "backlight.h" +#endif + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +#define _QW 0 +#define _CM 1 +#define _DV 2 +#define _LW 3 +#define _RS 4 +#define _FN 5 + +#define XXXXXXX KC_NO +#define _______ KC_TRNS + +#define ASFT(kc) LSFT(RSFT(kc)) +#define MG_B ASFT(KC_B) +#define MG_H ASFT(KC_H) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* Qwerty + * ,-----------------------------------------------------------------------------------. + * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | S | D | F | G | H | J | K | L | ; | " | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | N | M | , | . | Up |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Ctrl | GUI | Alt | Del |Raise | Space |Lower | / | Left | Down |Right | + * `-----------------------------------------------------------------------------------' + */ +[_QW] = { + {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, + {KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, KC_ENT }, + {KC_LCTL, KC_LGUI, KC_LALT, KC_DEL, MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_SLSH, KC_LEFT, KC_DOWN, KC_RGHT} +}, + +/* Colemak + * ,-----------------------------------------------------------------------------------. + * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | R | S | T | D | H | N | E | I | O | " | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | K | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite| Ctrl | Alt | GUI |Raise | Space |Lower | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_CM] = { + {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, + {KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, + {M(0), KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, + +/* Dvorak + * ,-----------------------------------------------------------------------------------. + * | Tab | " | , | . | P | Y | F | G | C | R | L | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | O | E | U | I | D | H | T | N | S | / | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite| Ctrl | Alt | GUI |Raise | Space |Lower | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_DV] = { + {KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC}, + {KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH}, + {KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT }, + {M(0), KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, + +/* Raise + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| F7 | F8 | F9 | F10 | F11 | F12 |Qwerty|Colemk|Dvorak| Reset|Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite| Ctrl | Alt | GUI |Raise | Space |Lower | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ +[_RS] = { + {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, + {_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, + {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, XXXXXXX, XXXXXXX, XXXXXXX, RESET, _______}, + {_______, _______, _______, _______, MO(_FN), _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} +}, + +/* Lower + * ,-----------------------------------------------------------------------------------. + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| F7 | F8 | F9 | F10 | F11 | F12 |Qwerty|Colemk|Dvorak| Reset|Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite| Ctrl | Alt | GUI |Raise | Space |Lower | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ +[_LW] = { + {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC}, + {_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE}, + {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, XXXXXXX, XXXXXXX, XXXXXXX, MG_B, _______}, + {_______, _______, _______, _______, _______, _______, _______, MO(_FN), KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} +}, + +/* Function + * ,-----------------------------------------------------------------------------------. + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| F7 | F8 | F9 | F10 | F11 | F12 |Qwerty|Colemk|Dvorak| Reset|Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite| Ctrl | Alt | GUI |Raise | Space |Lower | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ +[_FN] = { + {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}, + {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, MG_H, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}, + {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}, + {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX} +} +}; + +const uint16_t PROGMEM fn_actions[] = { + +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch(id) { + case 0: + if (record->event.pressed) { + register_code(KC_RSFT); + #ifdef BACKLIGHT_ENABLE + backlight_step(); + #endif + } else { + unregister_code(KC_RSFT); + } + break; + } + return MACRO_NONE; +}; diff --git a/keyboard/planck/keymaps/tak3over.c b/keyboard/planck/keymaps/tak3over.c new file mode 100644 index 0000000000..7d8243dfac --- /dev/null +++ b/keyboard/planck/keymaps/tak3over.c @@ -0,0 +1,130 @@ +// This is the canonical layout file for the Quantum project. If you want to add another keyboard, +// this is the style you want to emulate. +// +//Dropped the Dvorak layer and added two my layer buttons. Both Raise and lower can be accessed from either side now. + +#include "planck.h" +#ifdef BACKLIGHT_ENABLE + #include "backlight.h" +#endif + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +#define _QW 0 +#define _CM 1 +#define _LW 2 +#define _RS 3 +#define _FN 4 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* Qwerty + * ,-----------------------------------------------------------------------------------. + * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | S | D | F | G | H | J | K | L | ; | " | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Ctrl | Alt | GUI |Func |Lower | Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_QW] = { + {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, + {KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, + {KC_LCTL, KC_LALT, KC_LGUI, MO(_FN), MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, +/* Colemak + * ,-----------------------------------------------------------------------------------. + * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | R | S | T | D | H | N | E | I | O | " | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | K | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Ctrl | Alt | GUI |Func |Lower | Space |Raise | Left | Down | Up |Right + * `-----------------------------------------------------------------------------------' + */ +[_CM] = { + {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, + {KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, + {KC_LCTL, KC_LALT, KC_LGUI, MO(_FN), MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, +/* Raise + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| F7 | F8 | F9 | F10 | F11 | F12 | _ | + | { | } |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Ctrl | Alt | GUI |Func |Lower | Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_RS] = { + {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, + {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_PIPE}, + {KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} +}, +/* Lower + * ,-----------------------------------------------------------------------------------. + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | Reset| Ins | Home | PGUP |Colemk| Left | - | = | [ | ] | \ | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Brite| Del | End | PGDN |Qwerty| Del | _ | + | { | } |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Ctrl | Alt | GUI |Func |Lower | Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_LW] = { + {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC}, + {KC_TRNS, RESET, KC_INS, KC_HOME, KC_PGUP, DF(_CM), KC_LEFT, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, + {KC_TRNS, M(0), KC_DEL, KC_END, KC_PGDN, DF(_QW), KC_DEL, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} +}, +/* Function + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | GUI | X | C | V | Z | Left | Down | Up |Right | Del | \ | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * |Shift | Ctrl | X | C | V | Z | Next | Mute | Vol- | Vol+ | Play |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Ctrl | Alt | GUI |Func |Lower | Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_FN] = { + {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, + {KC_TRNS, KC_RGUI, KC_X, KC_C, KC_V, KC_Z, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_DEL, KC_BSLS}, + {KC_TRNS, KC_RCTL, KC_X, KC_C, KC_V, KC_Z, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_MPLY, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} +} +}; + +const uint16_t PROGMEM fn_actions[] = { + +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch(id) { + case 0: + if (record->event.pressed) { + register_code(KC_RSFT); + #ifdef BACKLIGHT_ENABLE + backlight_step(); + #endif + } else { + unregister_code(KC_RSFT); + } + break; + } + return MACRO_NONE; +}; diff --git a/keyboard/planck/keymaps/yang/WS2812-wiring.jpg b/keyboard/planck/keymaps/yang/WS2812-wiring.jpg new file mode 100644 index 0000000000..2c65cd283a Binary files /dev/null and b/keyboard/planck/keymaps/yang/WS2812-wiring.jpg differ diff --git a/keyboard/planck/keymaps/yang/keymap.c b/keyboard/planck/keymaps/yang/keymap.c new file mode 100644 index 0000000000..541b1a57e4 --- /dev/null +++ b/keyboard/planck/keymaps/yang/keymap.c @@ -0,0 +1,146 @@ +// This is the canonical layout file for the Quantum project. If you want to add another keyboard, +// this is the style you want to emulate. + +#include "planck.h" +#ifdef BACKLIGHT_ENABLE + #include "backlight.h" +#endif + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +#define _QW 0 +#define _CM 1 +#define _DV 2 +#define _LW 3 +#define _RS 4 +#define _RGB 5 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[_QW] = { /* Qwerty */ + {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, + {KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, + {M(0), KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), F(0), F(0), MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, +[_CM] = { /* Colemak */ + {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, + {KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, + {M(0), KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), F(0), F(0), MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, +[_DV] = { /* Dvorak */ + {KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC}, + {KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH}, + {KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT }, + {M(0), KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), F(0), F(0), MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, +[_RS] = { /* RAISE */ + {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, + {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, + {KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, DF(_QW), DF(_CM), DF(_DV), RESET, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} +}, +[_LW] = { /* LOWER */ + {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC}, + {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE}, + {KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, DF(_QW), DF(_CM), DF(_DV), RESET, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} +}, +[_RGB] = { /* RGBLIGHT */ + {KC_TRNS, KC_PGUP, KC_UP, KC_PGDN, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DEL}, + {KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_HOME, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_END, KC_TRNS}, + {KC_TRNS, F(1), F(2), F(3), F(4), F(5), F(6), F(7), F(8), KC_TRNS, KC_TRNS, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} + +} +}; + +enum function_id { + RGBLED_TOGGLE, + RGBLED_STEP_MODE, + RGBLED_INCREASE_HUE, + RGBLED_DECREASE_HUE, + RGBLED_INCREASE_SAT, + RGBLED_DECREASE_SAT, + RGBLED_INCREASE_VAL, + RGBLED_DECREASE_VAL, +}; + +const uint16_t PROGMEM fn_actions[] = { + [0] = ACTION_LAYER_TAP_KEY(_RGB, KC_SPC), + [1] = ACTION_FUNCTION(RGBLED_TOGGLE), + [2] = ACTION_FUNCTION(RGBLED_STEP_MODE), + [3] = ACTION_FUNCTION(RGBLED_INCREASE_HUE), + [4] = ACTION_FUNCTION(RGBLED_DECREASE_HUE), + [5] = ACTION_FUNCTION(RGBLED_INCREASE_SAT), + [6] = ACTION_FUNCTION(RGBLED_DECREASE_SAT), + [7] = ACTION_FUNCTION(RGBLED_INCREASE_VAL), + [8] = ACTION_FUNCTION(RGBLED_DECREASE_VAL), +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch(id) { + case 0: + if (record->event.pressed) { + register_code(KC_RSFT); + #ifdef BACKLIGHT_ENABLE + backlight_step(); + #endif + } else { + unregister_code(KC_RSFT); + } + break; + } + return MACRO_NONE; +}; + +void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { + switch (id) { + case RGBLED_TOGGLE: + //led operations + if (record->event.pressed) { + rgblight_toggle(); + } + + break; + case RGBLED_INCREASE_HUE: + if (record->event.pressed) { + rgblight_increase_hue(); + } + break; + case RGBLED_DECREASE_HUE: + if (record->event.pressed) { + rgblight_decrease_hue(); + } + break; + case RGBLED_INCREASE_SAT: + if (record->event.pressed) { + rgblight_increase_sat(); + } + break; + case RGBLED_DECREASE_SAT: + if (record->event.pressed) { + rgblight_decrease_sat(); + } + break; + case RGBLED_INCREASE_VAL: + if (record->event.pressed) { + rgblight_increase_val(); + } + break; + case RGBLED_DECREASE_VAL: + if (record->event.pressed) { + rgblight_decrease_val(); + } + break; + case RGBLED_STEP_MODE: + if (record->event.pressed) { + rgblight_step(); + } + break; + } +} diff --git a/keyboard/planck/keymaps/yang/planck-with-rgb-underglow.jpg b/keyboard/planck/keymaps/yang/planck-with-rgb-underglow.jpg new file mode 100644 index 0000000000..c636b9a83d Binary files /dev/null and b/keyboard/planck/keymaps/yang/planck-with-rgb-underglow.jpg differ diff --git a/keyboard/planck/old_keymap_files/common_keymaps/keymap_mitch.c b/keyboard/planck/old_keymap_files/common_keymaps/keymap_mitch.c new file mode 100644 index 0000000000..f7df7bbbaa --- /dev/null +++ b/keyboard/planck/old_keymap_files/common_keymaps/keymap_mitch.c @@ -0,0 +1,49 @@ +#include "keymap_common.h" + +const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[0] = KEYMAP( + TAB, Q, W, E, R, T, Y, U, I, O, P, BSPC, + LCTL, A, S, D, F, G, H, J, K, L, SCLN, QUOT, + LSFT, Z, X, C, V, B, N, M, COMM, DOT, SLSH, FN3, + ESC, DEL, LALT, LGUI, FN2, SPC, FN1, LEFT, DOWN, UP, RGHT), +[1] = KEYMAP( + GRV, GRV, FN22, FN19, FN10, TRNS, TRNS, 7, 8, 9, 0, BSPC, + TRNS, LBRC, RBRC, FN23, FN24, TRNS, TRNS, 4, 5, 6, TRNS, BSLS, + TRNS, MINS, FN20, EQL, FN21, TRNS, TRNS, 1, 2, 3, TRNS, ENT, + TRNS, TRNS, TRNS, TRNS, TRNS, SPC, FN1, TRNS, PGDN, PGUP, TRNS), +[2] = KEYMAP( + FN26, FN10, FN11, FN12, FN13, FN14, FN15, FN17, FN18, FN19, FN10, DEL, + TRNS, TRNS, MUTE, VOLD, VOLU, TRNS, BSPC, FN14, FN15, FN16, TRNS, FN25, + TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, FN11, FN12, FN13, TRNS, ENT, + TRNS, TRNS, TRNS, TRNS, FN2, ENT, TRNS, TRNS, PGDN, PGUP, TRNS), +}; + +const uint16_t PROGMEM fn_actions[] = { + [1] = ACTION_LAYER_MOMENTARY(1), // Switch layer raise + [2] = ACTION_LAYER_MOMENTARY(2), // Switch layer lower + + [3] = ACTION_MODS_TAP_KEY(MOD_RSFT, KC_ENT), // Right shift serves as Enter on tap + + // Numeric shift modifiers + [10] = ACTION_MODS_KEY(MOD_LSFT, KC_0), + [11] = ACTION_MODS_KEY(MOD_LSFT, KC_1), + [12] = ACTION_MODS_KEY(MOD_LSFT, KC_2), + [13] = ACTION_MODS_KEY(MOD_LSFT, KC_3), + [14] = ACTION_MODS_KEY(MOD_LSFT, KC_4), + [15] = ACTION_MODS_KEY(MOD_LSFT, KC_5), + [16] = ACTION_MODS_KEY(MOD_LSFT, KC_6), + [17] = ACTION_MODS_KEY(MOD_LSFT, KC_7), + [18] = ACTION_MODS_KEY(MOD_LSFT, KC_8), + [19] = ACTION_MODS_KEY(MOD_LSFT, KC_9), + + // Other shift modifiers + [20] = ACTION_MODS_KEY(MOD_LSFT, KC_MINS), // _ + [21] = ACTION_MODS_KEY(MOD_LSFT, KC_EQL), // + + [22] = ACTION_MODS_KEY(MOD_LSFT, KC_GRV), // ~ + [23] = ACTION_MODS_KEY(MOD_LSFT, KC_LBRC), // { + [24] = ACTION_MODS_KEY(MOD_LSFT, KC_RBRC), // } + [25] = ACTION_MODS_KEY(MOD_LSFT, KC_BSLS), // | + + // Switch windows in app + [26] = ACTION_MODS_KEY(MOD_LGUI, KC_GRV), +}; diff --git a/keyboard/planck/planck.c b/keyboard/planck/planck.c index b62862af04..4b39cf1e8b 100644 --- a/keyboard/planck/planck.c +++ b/keyboard/planck/planck.c @@ -1,31 +1,34 @@ #include "planck.h" __attribute__ ((weak)) -void * matrix_init_user(void) { - -}; +void matrix_init_user(void) {} __attribute__ ((weak)) -void * matrix_scan_user(void) { +void matrix_scan_user(void) {} -}; +__attribute__ ((weak)) +void process_action_user(keyrecord_t *record) {} -void * matrix_init_kb(void) { - #ifdef BACKLIGHT_ENABLE - backlight_init_ports(); - #endif +void matrix_init_kb(void) { +#ifdef BACKLIGHT_ENABLE + backlight_init_ports(); +#endif - // Turn status LED on - DDRE |= (1<<6); - PORTE |= (1<<6); +#ifdef RGBLIGHT_ENABLE + rgblight_init(); +#endif - if (matrix_init_user) { - (*matrix_init_user)(); - } -}; + // Turn status LED on + DDRE |= (1<<6); + PORTE |= (1<<6); -void * matrix_scan_kb(void) { - if (matrix_scan_user) { - (*matrix_scan_user)(); - } -}; \ No newline at end of file + matrix_init_user(); +} + +void matrix_scan_kb(void) { + matrix_scan_user(); +} + +void process_action_kb(keyrecord_t *record) { + process_action_user(record); +} diff --git a/keyboard/planck/planck.h b/keyboard/planck/planck.h index 4e59aef566..edcb5fbff6 100644 --- a/keyboard/planck/planck.h +++ b/keyboard/planck/planck.h @@ -3,8 +3,16 @@ #include "matrix.h" #include "keymap_common.h" -#include "backlight.h" +#ifdef BACKLIGHT_ENABLE + #include "backlight.h" +#endif +#ifdef RGBLIGHT_ENABLE + #include "rgblight.h" +#endif #include +#ifdef MIDI_ENABLE + #include +#endif #define PLANCK_MIT( \ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \ @@ -17,7 +25,7 @@ { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b }, \ { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b }, \ { k30, k31, k32, k33, k34, k35, k35, k37, k38, k39, k3a, k3b } \ -} +} #define PLANCK_GRID( \ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \ @@ -30,9 +38,10 @@ { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b }, \ { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b }, \ { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b } \ -} +} -void * matrix_init_user(void); -void * matrix_scan_user(void); +void matrix_init_user(void); +void matrix_scan_user(void); +void process_action_user(keyrecord_t *record); -#endif \ No newline at end of file +#endif diff --git a/keyboard/preonic/Makefile b/keyboard/preonic/Makefile index 0145e44bc6..eaf9ef927c 100644 --- a/keyboard/preonic/Makefile +++ b/keyboard/preonic/Makefile @@ -27,7 +27,7 @@ # make flip-ee = Download the eeprom file to the device, using Atmel FLIP # (must have Atmel FLIP installed). # -# make debug = Start either simulavr or avarice as specified for debugging, +# make debug = Start either simulavr or avarice as specified for debugging, # with avr-gdb or avr-insight as the front end for debugging. # # make filename.s = Just compile filename.c into the assembler code only. @@ -39,25 +39,41 @@ #---------------------------------------------------------------------------- # Target file name (without extension). -TARGET = preonic_lufa +TARGET = preonic + # Directory common source filess exist TOP_DIR = ../.. +TMK_DIR = ../../tmk_core # Directory keyboard dependent files exist TARGET_DIR = . # # project specific files -SRC = extended_keymap_common.c \ - matrix.c \ - led.c \ - backlight.c +SRC = preonic.c + +ifdef keymap + KEYMAP = $(keymap) +endif ifdef KEYMAP - SRC := extended_keymaps/extended_keymap_$(KEYMAP).c $(SRC) +ifneq ("$(wildcard keymaps/$(KEYMAP).c)","") + KEYMAP_FILE = keymaps/$(KEYMAP).c else - SRC := extended_keymaps/extended_keymap_default.c $(SRC) +ifneq ("$(wildcard keymaps/$(KEYMAP)/keymap.c)","") + KEYMAP_FILE = keymaps/$(KEYMAP)/keymap.c +else +$(error Keymap file does not exist) endif +endif +else +ifneq ("$(wildcard keymaps/default.c)","") + KEYMAP_FILE = keymaps/default.c +else + KEYMAP_FILE = keymaps/default/keymap.c +endif +endif +SRC := $(KEYMAP_FILE) $(SRC) CONFIG_H = config.h @@ -110,34 +126,53 @@ OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT # USBaspLoader 2048 OPT_DEFS += -DBOOTLOADER_SIZE=4096 - # Build Options -# comment out to disable the options. +# change to "no" to disable the options, or define them in the makefile.mk in +# the appropriate keymap folder that will get included automatically # -BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000) -MOUSEKEY_ENABLE = yes # Mouse keys(+4700) -EXTRAKEY_ENABLE = yes # Audio control and System control(+450) -CONSOLE_ENABLE = yes # Console for debug(+400) -COMMAND_ENABLE = yes # Commands for debug and configuration -# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE -#SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend -NKRO_ENABLE = yes # USB Nkey Rollover - not yet supported in LUFA -BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality -MIDI_ENABLE = yes # MIDI controls -BACKLIGHT_ENABLE = yes +BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = yes # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = yes # Console for debug(+400) +COMMAND_ENABLE = yes # Commands for debug and configuration +NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +MIDI_ENABLE = no # MIDI controls +AUDIO_ENABLE = no # Audio output on port C6 +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. -ifdef MIDI_ENABLE - SRC += keymap_midi.c \ - beeps.c +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend + +ifdef KEYMAP + +ifeq ("$(wildcard keymaps/$(KEYMAP).c)","") +ifneq ("$(wildcard keymaps/$(KEYMAP)/makefile.mk)","") + include keymaps/$(KEYMAP)/makefile.mk +endif endif +else + +ifneq ("$(wildcard keymaps/default/makefile.mk)","") + include keymaps/default/makefile.mk +endif + +endif + +ifeq ($(strip $(BACKLIGHT_ENABLE)), yes) + SRC := backlight.c $(SRC) +endif + + # Optimize size but this may cause error "relocation truncated to fit" #EXTRALDFLAGS = -Wl,--relax # Search Path VPATH += $(TARGET_DIR) VPATH += $(TOP_DIR) +VPATH += $(TMK_DIR) -include $(TOP_DIR)/protocol/lufa.mk -include $(TOP_DIR)/common.mk -include $(TOP_DIR)/rules.mk +include $(TOP_DIR)/quantum/quantum.mk diff --git a/keyboard/preonic/Makefile.pjrc b/keyboard/preonic/Makefile.pjrc deleted file mode 100644 index be83ba18b1..0000000000 --- a/keyboard/preonic/Makefile.pjrc +++ /dev/null @@ -1,116 +0,0 @@ -#---------------------------------------------------------------------------- -# On command line: -# -# make all = Make software. -# -# make clean = Clean out built project files. -# -# make coff = Convert ELF to AVR COFF. -# -# make extcoff = Convert ELF to AVR Extended COFF. -# -# make program = Download the hex file to the device. -# Please customize your programmer settings(PROGRAM_CMD) -# -# make teensy = Download the hex file to the device, using teensy_loader_cli. -# (must have teensy_loader_cli installed). -# -# make dfu = Download the hex file to the device, using dfu-programmer (must -# have dfu-programmer installed). -# -# make flip = Download the hex file to the device, using Atmel FLIP (must -# have Atmel FLIP installed). -# -# make dfu-ee = Download the eeprom file to the device, using dfu-programmer -# (must have dfu-programmer installed). -# -# make flip-ee = Download the eeprom file to the device, using Atmel FLIP -# (must have Atmel FLIP installed). -# -# make debug = Start either simulavr or avarice as specified for debugging, -# with avr-gdb or avr-insight as the front end for debugging. -# -# make filename.s = Just compile filename.c into the assembler code only. -# -# make filename.i = Create a preprocessed source file for use in submitting -# bug reports to the GCC project. -# -# To rebuild project do "make clean" then "make all". -#---------------------------------------------------------------------------- - -# Target file name (without extension). -TARGET = gh60_pjrc - -# Directory common source filess exist -TOP_DIR = ../.. - -# Directory keyboard dependent files exist -TARGET_DIR = . - -# project specific files -SRC = keymap_common.c \ - matrix.c \ - led.c - -ifdef KEYMAP - SRC := keymap_$(KEYMAP).c $(SRC) -else - SRC := keymap_jack.c $(SRC) -endif - -CONFIG_H = config.h - - -# MCU name, you MUST set this to match the board you are using -# type "make clean" after changing this, so all files will be rebuilt -MCU = atmega32u4 -#MCU = at90usb1286 - - -# Processor frequency. -# Normally the first thing your program should do is set the clock prescaler, -# so your program will run at the correct speed. You should also set this -# variable to same clock speed. The _delay_ms() macro uses this, and many -# examples use this variable to calculate timings. Do not add a "UL" here. -F_CPU = 16000000 - - -# Boot Section Size in *bytes* -# Teensy halfKay 512 -# Atmel DFU loader 4096 -# LUFA bootloader 4096 -OPT_DEFS += -DBOOTLOADER_SIZE=4096 - - -# Build Options -# comment out to disable the options. -# -BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000) -MOUSEKEY_ENABLE = yes # Mouse keys(+5000) -EXTRAKEY_ENABLE = yes # Audio control and System control(+600) -CONSOLE_ENABLE = yes # Console for debug -COMMAND_ENABLE = yes # Commands for debug and configuration -SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend -NKRO_ENABLE = yes # USB Nkey Rollover(+500) -#PS2_MOUSE_ENABLE = yes # PS/2 mouse(TrackPoint) support - - -# Search Path -VPATH += $(TARGET_DIR) -VPATH += $(TOP_DIR) - -include $(TOP_DIR)/protocol/pjrc.mk -include $(TOP_DIR)/common.mk -include $(TOP_DIR)/rules.mk - -plain: OPT_DEFS += -DKEYMAP_PLAIN -plain: all - -poker: OPT_DEFS += -DKEYMAP_POKER -poker: all - -poker_set: OPT_DEFS += -DKEYMAP_POKER_SET -poker_set: all - -poker_bit: OPT_DEFS += -DKEYMAP_POKER_BIT -poker_bit: all diff --git a/keyboard/preonic/PCB_GUIDE.md b/keyboard/preonic/PCB_GUIDE.md deleted file mode 100644 index c3004c75a4..0000000000 --- a/keyboard/preonic/PCB_GUIDE.md +++ /dev/null @@ -1,116 +0,0 @@ -# Planck Firmware Guide - -## Setting up the environment - -### Windows -1. Install [WinAVR Tools](http://sourceforge.net/projects/winavr/) for AVR GCC compiler. -2. Install [DFU-Programmer][dfu-prog] (the -win one). -3. Start DFU bootloader on the chip first time you will see 'Found New Hardware Wizard' to install driver. If you install device driver properly you can find chip name like 'ATmega32U4' under 'LibUSB-Win32 Devices' tree on 'Device Manager'. If not you will need to update its driver on 'Device Manager' to the `dfu-programmer` driver. - -### Mac -1. Install [CrossPack](http://www.obdev.at/products/crosspack/index.html) or install Xcode from the App Store and install the Command Line Tools from `Xcode->Preferences->Downloads`. -2. Install [DFU-Programmer][dfu-prog]. - -### Linux -1. Install AVR GCC with your favorite package manager. -2. Install [DFU-Programmer][dfu-prog]. - -##Verify Your Installation -1. Clone the following repository: https://github.com/jackhumbert/tmk_keyboard -2. Open a Terminal and `cd` into `tmk_keyboard/keyboard/planck` -3. Run `make`. This should output a lot of information about the build process. - -## Using the built-in functions - -Here is a list of some of the functions available from the command line: - -* `make clean`: clean the environment - may be required in-between builds -* `make`: compile the code -* `make COMMON=true`: compile with the common (non-extended) keymap -* `make MATRIX=`: compile with the referenced matrix file. Default if unspecified is `matrix_pcb.c`. For handwired boards, use `matrix_handwired.c`. -* `make KEYMAP=`: compile with the extended keymap file `extended_keymaps/extended_keymap_.c` -* `make COMMON=true KEYMAP=`: compile with the common keymap file `common_keymaps/keymap_.c` -* `make dfu`: build and flash the layout to the PCB -* `make dfu-force`: build and force-flash the layout to the PCB (may be require for first flash) - -Generally, the instructions to flash the PCB are as follows: - -1. Make changes to the appropriate keymap file -2. Save the file -3. `make clean` -4. Press the reset button on the PCB/press the key with the `RESET` keycode -5. `make dfu` - use the necessary `KEYMAP=` and/or `COMMON=true` arguments here. - -## Extended keymap - -### Keymap - -Unlike the common keymap, prefixing the keycodes with `KC_` is required. A full list of the keycodes is available [here](https://github.com/jackhumbert/tmk_keyboard/blob/master/doc/keycode.txt). For the keycodes available only in the extended keymap, see this [header file](https://github.com/jackhumbert/tmk_keyboard/blob/master/keyboard/planck/extended_keymap_common.h). - -You can use modifiers with keycodes like this: - - LCTL(KC_C) - -Which will generate Ctrl+c. These are daisy-chainable, meaning you can do things like: - - LCTL(LALT(KC_C)) - -That will generate Ctrl+Alt+c. The entire list of these functions is here: - -* `LCTL()`: Left control -* `LSFT()` / `S()`: Left shift -* `LALT()`: Left alt/opt -* `LGUI()`: Left win/cmd -* `RCTL()`: Right control -* `RSFT()`: Right shift -* `RALT()`: Right alt/opt -* `RGUI()`: Right win/cmd - -`S(KC_1)`-like entries are useful in writing keymaps for the Planck. - -### Other keycodes - -A number of other keycodes have been added that you may find useful: - -* `CM_`: the Colemak equivalent of a key (in place of `KC_`), when using Colemak in software (`CM_O` generates `KC_SCLN`) -* `RESET`: jump to bootloader for flashing (same as press the reset button) -* `BL_STEP`: step through the backlight brightnesses -* `BL_<0-15>`: set backlight brightness to 0-15 -* `BL_DEC`: lower the backlight brightness -* `BL_INC`: raise the backlight brightness -* `BL_TOGG`: toggle the backlight on/off - -### Function layers - -The extended keymap extends the number of function layers from 32 to the near-infinite value of 256. Rather than using `FN` notation (still available, but limited to `FN0`-`FN31`), you can use the `FUNC()` notation. `F()` is a shortcut for this. - -The function actions are unchanged, and you can see the full list of them [here](https://github.com/jackhumbert/tmk_keyboard/blob/master/common/action_code.h). They are explained in detail [here](https://github.com/jackhumbert/tmk_keyboard/blob/master/doc/keymap.md#2-action). - -### Macros - -Macros have been setup in the `extended_keymaps/extended_keymaps_default.c` file so that you can use `M()` to access a macro in the `action_get_macro` section on your keymap. The switch/case structure you see here is required, and is setup for `M(0)` - you'll need to copy and paste the code to look like this (e.g. to support `M(3)`): - - switch(id) { - case 0: - return MACRODOWN(TYPE(KC_A), END); - break; - case 1: - return MACRODOWN(TYPE(KC_B), END); - break; - case 2: - return MACRODOWN(TYPE(KC_C), END); - break; - case 3: - return MACRODOWN(TYPE(KC_D), END); - break; - } - return MACRO_NONE; - -`MACRODOWN()` is a shortcut for `(record->event.pressed ? MACRO(__VA_ARGS__) : MACRO_NONE)` which tells the macro to execute when the key is pressed. Without this, the macro will be executed on both the down and up stroke. - -[cygwin]: https://www.cygwin.com/ -[mingw]: http://www.mingw.org/ -[mhv]: https://infernoembedded.com/products/avr-tools -[winavr]: http://winavr.sourceforge.net/ -[crosspack]: http://www.obdev.at/products/crosspack/index.html -[dfu-prog]: http://dfu-programmer.sourceforge.net/ diff --git a/keyboard/preonic/README.md b/keyboard/preonic/README.md index ee824d26e0..4a33a3e4e0 100644 --- a/keyboard/preonic/README.md +++ b/keyboard/preonic/README.md @@ -1,56 +1,25 @@ -Planck keyboard firmware +Preonic keyboard firmware ====================== -DIY/Assembled compact ortholinear 40% keyboard by [Ortholinear Keyboards](http://ortholinearkeyboards.com). +DIY/Assembled compact ortholinear 50% keyboard by [Ortholinear Keyboards](http://ortholinearkeyboards.com). -## Extended Keymap -If you include extended_keymap_common.h instead of keymap_common.h at the top of your file, you'll have access to a bunch of goodies: +## Quantum MK Firmware -- Use `LSFT()`, `LCTL()`, et. al. (listed in extended_keymap_common.h) as modifiers for keys (daisy-chain-able) -- Use `FUNC(1)` instead of `FN1` (etc.) to access the function layers beyond the 32 function layer limit -- Use `CM_F` instead of `KC_F` to get the ColeMak equivilent for shortcuts (maps backwards) -- Use `MACRODOWN()` instead of `MACRO()` to easily make a keydown macro (`CM_*` works here too) +For the full Quantum feature list, see [the parent README.md](/README.md). -### Some notes on usage: +## Building -- The `KEYMAP()` macro is unable to be used due to the bitwise modifications that take place - refer to extended_keymap_jack.c to see how to set things up with the `KC_` prefix -- Keep an eye on the Makefile - this needs to include the correct files to work -- Don't forget to use `const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {` instead of the 8bit equivilent - -## Build - -Follow [this guide](http://deskthority.net/workshop-f7/how-to-build-your-very-own-keyboard-firmware-t7177.html) to setup your development environment before anything else. Abbreviated instructions are provide at the [bottom of this document](https://github.com/rswiernik/tmk_keyboard/tree/rswiernik_dev/keyboard/planck#environment-setup) - -Download the whole firmware [here](https://github.com/jackhumbert/tmk_keyboard/archive/master.zip) and navigate to the keyboard/planck folder. Once your dev env is setup, you'll be able to type `make` to generate your .hex that you can load with the Teensy app onto your Planck (once you've hit reset/shorted GND & RST). +Download or clone the whole firmware and navigate to the keyboard/preonic folder. Once your dev env is setup, you'll be able to type `make` to generate your .hex - you can then use `make dfu` to program your PCB once you hit the reset button. Depending on which keymap you would like to use, you will have to compile slightly differently. -####Default -To build with the default keymap, simply move to the tmk\_keyboard/keyboard/planck/ and run `make` as follows: -``` -$ make -``` +### Default +To build with the default keymap, simply run `make`. -## Keymap -Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create file named `keymap_.c` and see keymap document (you can find in top README.md) and existent keymap files. - -####**Extended Keymaps** +### Other Keymaps +Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap, create a file in the keymaps folder named `.c` and see keymap document (you can find in top README.md) and existent keymap files. -To build the firmware binary hex file with an extended keymap just do `make` with `KEYMAP` option like: +To build the firmware binary hex file with a keymap just do `make` with `KEYMAP` option like: ``` -$ make KEYMAP=[common|jack|] +$ make KEYMAP=[default|jack|] ``` -_The only applicable keymaps will work with this option._ Extended keymaps follow the format **__extended\_keymap\_\.c__** - -####**Common Keymaps** - -Building with a common keymap is as simple as adding the COMMON option. Note that only -``` -$ make KEYMAP=[common|jack|] COMMON=true -``` -_The only applicable keymaps will work with this option._ Common keymaps follow the format **__keymap\_\.c__** - -## Notable TMK forks (which some of the keymap files are from) -- [Shane's Fork](https://github.com/shanecelis/tmk_keyboard/tree/master/keyboard/planck) -- [Pierre's Fork](https://github.com/pcarrier/tmk_keyboard/blob/pcarrier/planck/keyboard/gh60/keymap_planck.c) -- [Nathan's Fork](https://github.com/nathanrosspowell/tmk_keyboard/tree/planck-jack/keyboard/planck) -- [Matthew's Fork](https://github.com/pepers/tmk_keyboard/tree/master/keyboard/planck_grid) +Keymaps follow the format **__\.c__** and are stored in the `keymaps` folder. diff --git a/keyboard/preonic/__avr_gdbinit b/keyboard/preonic/__avr_gdbinit deleted file mode 100644 index afc51e6d19..0000000000 --- a/keyboard/preonic/__avr_gdbinit +++ /dev/null @@ -1,6 +0,0 @@ -define reset -SIGNAL SIGHUP -end -file planck_lufa.elf -target remote localhost:4242 -break main diff --git a/keyboard/preonic/analog.c b/keyboard/preonic/analog.c deleted file mode 100644 index 49b84ee0e8..0000000000 --- a/keyboard/preonic/analog.c +++ /dev/null @@ -1,53 +0,0 @@ -// Simple analog to digitial conversion - -#include -#include -#include -#include "analog.h" - - -static uint8_t aref = (1<= 12) return 0; - return adc_read(pgm_read_byte(pin_to_mux + pin)); -#elif defined(__AVR_AT90USB646__) || defined(__AVR_AT90USB1286__) - if (pin >= 8) return 0; - return adc_read(pin); -#else - return 0; -#endif -} - -// Mux input -int16_t adc_read(uint8_t mux) -{ -#if defined(__AVR_AT90USB162__) - return 0; -#else - uint8_t low; - - ADCSRA = (1< - -void analogReference(uint8_t mode); -int16_t analogRead(uint8_t pin); -int16_t adc_read(uint8_t mux); - -#define ADC_REF_POWER (1< -#include -#include -#include - -#define PI 3.14159265 - -void delay_us(int count) { - while(count--) { - _delay_us(1); - } -} - -int voices = 0; -double frequency = 0; -int volume = 0; -int position = 0; - -double frequencies[8] = {0, 0, 0, 0, 0, 0, 0, 0}; -int volumes[8] = {0, 0, 0, 0, 0, 0, 0, 0}; -bool sliding = false; -#define RANGE 1000 -volatile int i=0; //elements of the wave - - -void beeps() { - play_notes(); -} - -void send_freq(double freq, int vol) { - int duty = (((double)F_CPU) / freq); - ICR3 = duty; // Set max to the period - OCR3A = duty >> (0x10 - vol); // Set compare to half the period -} - -void stop_all_notes() { - voices = 0; - TCCR3A = 0; - TCCR3B = 0; - frequency = 0; - volume = 0; - - for (int i = 0; i < 8; i++) { - frequencies[i] = 0; - volumes[i] = 0; - } -} - -void stop_note(double freq) { - for (int i = 7; i >= 0; i--) { - if (frequencies[i] == freq) { - frequencies[i] = 0; - volumes[i] = 0; - for (int j = i; (j < 7); j++) { - frequencies[j] = frequencies[j+1]; - frequencies[j+1] = 0; - volumes[j] = volumes[j+1]; - volumes[j+1] = 0; - } - } - } - voices--; - if (voices < 0) - voices = 0; - if (voices == 0) { - TCCR3A = 0; - TCCR3B = 0; - frequency = 0; - volume = 0; - } else { - double freq = frequencies[voices - 1]; - int vol = volumes[voices - 1]; - if (frequency < freq) { - sliding = true; - for (double f = frequency; f <= freq; f += ((freq - frequency) / 500.0)) { - send_freq(f, vol); - } - sliding = false; - } else if (frequency > freq) { - sliding = true; - for (double f = frequency; f >= freq; f -= ((frequency - freq) / 500.0)) { - send_freq(f, vol); - } - sliding = false; - } - send_freq(freq, vol); - frequency = freq; - volume = vol; - } -} - -void init_notes() { - // TCCR1A = (1 << COM1A1) | (0 << COM1A0) | (1 << WGM11) | (1 << WGM10); - // TCCR1B = (1 << COM1B1) | (0 << COM1A0) | (1 << WGM13) | (1 << WGM12) | (0 << CS12) | (0 << CS11) | (1 << CS10); - - // DDRC |= (1<<6); - - // TCCR3A = (1 << COM3A1) | (0 << COM3A0) | (1 << WGM31) | (0 << WGM30); - // TCCR3B = (1 << WGM33) | (1 << WGM32) | (0 << CS32) | (0 << CS31) | (1 << CS30); - - // ICR3 = 0xFFFF; - // OCR3A = (int)((float)wave[i]*ICR3/RANGE); //go to next array element - - - // cli(); - - // /* Enable interrupt on timer2 == 127, with clk/8 prescaler. At 16MHz, - // this gives a timer interrupt at 15625Hz. */ - // TIMSK3 = (1 << OCIE3A); - - // /* clear/reset timer on match */ - // // TCCR3A = 1<> 8) & 0x00FF) -// #define lowByte(c) (c & 0x00FF) - -ISR(TIMER3_COMPA_vect) { - - if (ICR3 > 0 && !sliding) { - switch (position) { - case 0: { - int duty = (((double)F_CPU) / (frequency)); - ICR3 = duty; // Set max to the period - OCR3A = duty >> 1; // Set compare to half the period - break; - } - case 1: { - int duty = (((double)F_CPU) / (frequency*2)); - ICR3 = duty; // Set max to the period - OCR3A = duty >> 1; // Set compare to half the period - break; - } - case 2: { - int duty = (((double)F_CPU) / (frequency*3)); - ICR3 = duty; // Set max to the period - OCR3A = duty >> 1; // Set compare to half the period - break; - } - } - position = (position + 1) % 3; - } -// /* OCR2A has been cleared, per TCCR2A above */ -// // OCR3A = 127; - -// // pos1 += incr1; -// // pos2 += incr2; -// // pos3 += incr3; - -// // sample = sinewave[highByte(pos1)] + sinewave[highByte(pos2)] + sinewave[highByte(pos3)]; - -// // OCR3A = sample; - - -// OCR3A=pgm_read_byte(&sinewave[pos1]); -// pos1++; -// // PORTC &= ~(1<<6); - -// /* buffered, 1x gain, active mode */ -// // SPDR = highByte(sample) | 0x70; -// // while (!(SPSR & (1< 0) { - DDRC |= (1<<6); - - TCCR3A = (1 << COM3A1) | (0 << COM3A0) | (1 << WGM31) | (0 << WGM30); - TCCR3B = (1 << WGM33) | (1 << WGM32) | (0 << CS32) | (1 << CS31) | (0 << CS30); - - if (frequency != 0) { - if (frequency < freq) { - for (double f = frequency; f <= freq; f += ((freq - frequency) / 500.0)) { - send_freq(f, vol); - } - } else if (frequency > freq) { - for (double f = frequency; f >= freq; f -= ((frequency - freq) / 500.0)) { - send_freq(f, vol); - } - } - } - send_freq(freq, vol); - frequency = freq; - volume = vol; - - frequencies[voices] = frequency; - volumes[voices] = volume; - voices++; - } - // ICR3 = 0xFFFF; - // for (int i = 0; i < 10000; i++) { - // OCR3A = round((sin(i*freq)*.5)+.5)*0xFFFF; - // // _delay_us(50); - // } - - // TCCR3A = 0; - // TCCR3B = 0; -} - -// void note(int x, float length) { -// DDRC |= (1<<6); -// int t = (int)(440*pow(2,-x/12.0)); // starting note -// for (int y = 0; y < length*1000/t; y++) { // note length -// PORTC |= (1<<6); -// delay_us(t); -// PORTC &= ~(1<<6); -// delay_us(t); -// } -// PORTC &= ~(1<<6); -// } - -// void true_note(float x, float y, float length) { -// for (uint32_t i = 0; i < length * 50; i++) { -// uint32_t v = (uint32_t) (round(sin(PI*2*i*640000*pow(2, x/12.0))*.5+1 + sin(PI*2*i*640000*pow(2, y/12.0))*.5+1) / 2 * pow(2, 8)); -// for (int u = 0; u < 8; u++) { -// if (v & (1 << u) && !(PORTC&(1<<6))) -// PORTC |= (1<<6); -// else if (PORTC&(1<<6)) -// PORTC &= ~(1<<6); -// } -// } -// PORTC &= ~(1<<6); -// } \ No newline at end of file diff --git a/keyboard/preonic/beeps.h b/keyboard/preonic/beeps.h deleted file mode 100644 index 378983c605..0000000000 --- a/keyboard/preonic/beeps.h +++ /dev/null @@ -1,12 +0,0 @@ -#include -#include -#include -#include - -void note(int x, float length); -void beeps(); -void true_note(float x, float y, float length); -void play_note(double freq, int vol); -void stop_note(double freq); -void stop_all_notes(); -void init_notes(); \ No newline at end of file diff --git a/keyboard/preonic/config.h b/keyboard/preonic/config.h index cad269c9d4..5528667fa7 100644 --- a/keyboard/preonic/config.h +++ b/keyboard/preonic/config.h @@ -18,11 +18,11 @@ along with this program. If not, see . #ifndef CONFIG_H #define CONFIG_H -#include "config_definitions.h" +#include "config_common.h" /* USB Device descriptor parameter */ #define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x6062 +#define PRODUCT_ID 0x6061 #define DEVICE_VER 0x0001 #define MANUFACTURER Ortholinear Keyboards #define PRODUCT The Preonic Keyboard @@ -34,7 +34,10 @@ along with this program. If not, see . /* Planck PCB default pin-out */ #define COLS (int []){ F1, F0, B0, C7, F4, F5, F6, F7, D4, D6, B4, D7 } -#define ROWS (int []){ D1, D0, D5, B5, B6 } +#define ROWS (int []){ D2, D5, B5, B6, D3 } + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW /* define if matrix has ghost */ //#define MATRIX_HAS_GHOST @@ -55,6 +58,15 @@ along with this program. If not, see . keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ ) +/* ws2812 RGB LED */ +#define ws2812_PORTREG PORTD +#define ws2812_DDRREG DDRD +#define ws2812_pin PD1 +#define RGBLED_NUM 28 // Number of LEDs +#define RGBLIGHT_HUE_STEP 10 +#define RGBLIGHT_SAT_STEP 17 +#define RGBLIGHT_VAL_STEP 17 + /* * Feature disable options * These options are also useful to firmware size reduction. diff --git a/keyboard/preonic/config_definitions.h b/keyboard/preonic/config_definitions.h deleted file mode 100644 index fd138b8841..0000000000 --- a/keyboard/preonic/config_definitions.h +++ /dev/null @@ -1,50 +0,0 @@ -#ifndef CONFIG_DEFINITIONS_H -#define CONFIG_DEFINITIONS_H - -#define B0 0x20 -#define B1 0x21 -#define B2 0x22 -#define B3 0x23 -#define B4 0x24 -#define B5 0x25 -#define B6 0x26 -#define B7 0x27 -#define C0 0x30 -#define C1 0x31 -#define C2 0x32 -#define C3 0x33 -#define C4 0x34 -#define C5 0x35 -#define C6 0x36 -#define C7 0x37 -#define D0 0x40 -#define D1 0x41 -#define D2 0x42 -#define D3 0x43 -#define D4 0x44 -#define D5 0x45 -#define D6 0x46 -#define D7 0x47 -#define E0 0x50 -#define E1 0x51 -#define E2 0x52 -#define E3 0x53 -#define E4 0x54 -#define E5 0x55 -#define E6 0x56 -#define E7 0x57 -#define F0 0x60 -#define F1 0x61 -#define F2 0x62 -#define F3 0x63 -#define F4 0x64 -#define F5 0x65 -#define F6 0x66 -#define F7 0x67 - - - - - -#endif - diff --git a/keyboard/preonic/extended_keymap_common.c b/keyboard/preonic/extended_keymap_common.c deleted file mode 100644 index 4fa80de7cf..0000000000 --- a/keyboard/preonic/extended_keymap_common.c +++ /dev/null @@ -1,216 +0,0 @@ -/* -Copyright 2012,2013 Jun Wako - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#include "extended_keymap_common.h" -#include "report.h" -#include "keycode.h" -#include "action_layer.h" -#include "action.h" -#include "action_macro.h" -#include "debug.h" -#include "backlight.h" -#include "keymap_midi.h" -#include - -static action_t keycode_to_action(uint16_t keycode); - -/* converts key to action */ -action_t action_for_key(uint8_t layer, keypos_t key) -{ - // 16bit keycodes - important - uint16_t keycode = keymap_key_to_keycode(layer, key); - - if (keycode >= 0x0100 && keycode < 0x2000) { - // Has a modifier - action_t action; - // Split it up - action.code = ACTION_MODS_KEY(keycode >> 8, keycode & 0xFF); - return action; - } else if (keycode >= 0x2000 && keycode < 0x3000) { - // Is a shortcut for function layer, pull last 12bits - return keymap_func_to_action(keycode & 0xFFF); - } else if (keycode >= 0x3000 && keycode < 0x4000) { - action_t action; - action.code = ACTION_MACRO(keycode & 0xFF); - return action; - } else if (keycode >= BL_0 & keycode <= BL_15) { - action_t action; - action.code = ACTION_BACKLIGHT_LEVEL(keycode & 0x000F); - return action; - } else if (keycode == BL_DEC) { - action_t action; - action.code = ACTION_BACKLIGHT_DECREASE(); - return action; - } else if (keycode == BL_INC) { - action_t action; - action.code = ACTION_BACKLIGHT_INCREASE(); - return action; - } else if (keycode == BL_TOGG) { - action_t action; - action.code = ACTION_BACKLIGHT_TOGGLE(); - return action; - } else if (keycode == BL_STEP) { - action_t action; - action.code = ACTION_BACKLIGHT_STEP(); - return action; - } else if (keycode == RESET) { - bootloader_jump(); - return; - } else if (keycode == DEBUG) { - print("\nDEBUG: enabled.\n"); - debug_enable = true; - return; - } else if (keycode >= 0x6000 && keycode < 0x7000) { - action_t action; - action.code = ACTION_FUNCTION_OPT(keycode & 0xFF, (keycode & 0x0F00) >> 8); - return action; - } - - switch (keycode) { - case KC_FN0 ... KC_FN31: - return keymap_fn_to_action(keycode); -#ifdef BOOTMAGIC_ENABLE - case KC_CAPSLOCK: - case KC_LOCKING_CAPS: - if (keymap_config.swap_control_capslock || keymap_config.capslock_to_control) { - return keycode_to_action(KC_LCTL); - } - return keycode_to_action(keycode); - case KC_LCTL: - if (keymap_config.swap_control_capslock) { - return keycode_to_action(KC_CAPSLOCK); - } - return keycode_to_action(KC_LCTL); - case KC_LALT: - if (keymap_config.swap_lalt_lgui) { - if (keymap_config.no_gui) { - return keycode_to_action(ACTION_NO); - } - return keycode_to_action(KC_LGUI); - } - return keycode_to_action(KC_LALT); - case KC_LGUI: - if (keymap_config.swap_lalt_lgui) { - return keycode_to_action(KC_LALT); - } - if (keymap_config.no_gui) { - return keycode_to_action(ACTION_NO); - } - return keycode_to_action(KC_LGUI); - case KC_RALT: - if (keymap_config.swap_ralt_rgui) { - if (keymap_config.no_gui) { - return keycode_to_action(ACTION_NO); - } - return keycode_to_action(KC_RGUI); - } - return keycode_to_action(KC_RALT); - case KC_RGUI: - if (keymap_config.swap_ralt_rgui) { - return keycode_to_action(KC_RALT); - } - if (keymap_config.no_gui) { - return keycode_to_action(ACTION_NO); - } - return keycode_to_action(KC_RGUI); - case KC_GRAVE: - if (keymap_config.swap_grave_esc) { - return keycode_to_action(KC_ESC); - } - return keycode_to_action(KC_GRAVE); - case KC_ESC: - if (keymap_config.swap_grave_esc) { - return keycode_to_action(KC_GRAVE); - } - return keycode_to_action(KC_ESC); - case KC_BSLASH: - if (keymap_config.swap_backslash_backspace) { - return keycode_to_action(KC_BSPACE); - } - return keycode_to_action(KC_BSLASH); - case KC_BSPACE: - if (keymap_config.swap_backslash_backspace) { - return keycode_to_action(KC_BSLASH); - } - return keycode_to_action(KC_BSPACE); -#endif - default: - return keycode_to_action(keycode); - } -} - - -/* Macro */ -__attribute__ ((weak)) -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - return MACRO_NONE; -} - -/* Function */ -__attribute__ ((weak)) -void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) -{ -} - -/* translates keycode to action */ -static action_t keycode_to_action(uint16_t keycode) -{ - action_t action; - switch (keycode) { - case KC_A ... KC_EXSEL: - case KC_LCTRL ... KC_RGUI: - action.code = ACTION_KEY(keycode); - break; - case KC_SYSTEM_POWER ... KC_SYSTEM_WAKE: - action.code = ACTION_USAGE_SYSTEM(KEYCODE2SYSTEM(keycode)); - break; - case KC_AUDIO_MUTE ... KC_WWW_FAVORITES: - action.code = ACTION_USAGE_CONSUMER(KEYCODE2CONSUMER(keycode)); - break; - case KC_MS_UP ... KC_MS_ACCEL2: - action.code = ACTION_MOUSEKEY(keycode); - break; - case KC_TRNS: - action.code = ACTION_TRANSPARENT; - break; - default: - action.code = ACTION_NO; - break; - } - return action; -} - - -/* translates key to keycode */ -uint16_t keymap_key_to_keycode(uint8_t layer, keypos_t key) -{ - // Read entire word (16bits) - return pgm_read_word(&keymaps[(layer)][(key.row)][(key.col)]); -} - -/* translates Fn keycode to action */ -action_t keymap_fn_to_action(uint16_t keycode) -{ - return (action_t){ .code = pgm_read_word(&fn_actions[FN_INDEX(keycode)]) }; -} - -action_t keymap_func_to_action(uint16_t keycode) -{ - // For FUNC without 8bit limit - return (action_t){ .code = pgm_read_word(&fn_actions[(int)keycode]) }; -} diff --git a/keyboard/preonic/extended_keymap_common.h b/keyboard/preonic/extended_keymap_common.h deleted file mode 100644 index 7ccfa1b039..0000000000 --- a/keyboard/preonic/extended_keymap_common.h +++ /dev/null @@ -1,181 +0,0 @@ -/* -Copyright 2012,2013 Jun Wako - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#ifndef KEYMAP_H -#define KEYMAP_H - -#include -#include -#include "action.h" -#include -#include "keycode.h" -#include "keymap.h" -#include "action_macro.h" -#include "report.h" -#include "host.h" -// #include "print.h" -#include "debug.h" - -#ifdef BOOTMAGIC_ENABLE -/* NOTE: Not portable. Bit field order depends on implementation */ -typedef union { - uint16_t raw; - struct { - bool swap_control_capslock:1; - bool capslock_to_control:1; - bool swap_lalt_lgui:1; - bool swap_ralt_rgui:1; - bool no_gui:1; - bool swap_grave_esc:1; - bool swap_backslash_backspace:1; - bool nkro:1; - }; -} keymap_config_t; -keymap_config_t keymap_config; -#endif - - -/* translates key to keycode */ -uint16_t keymap_key_to_keycode(uint8_t layer, keypos_t key); - -/* translates Fn keycode to action */ -action_t keymap_fn_to_action(uint16_t keycode); - -/* translates Fn keycode to action */ -action_t keymap_func_to_action(uint16_t keycode); - -extern const uint16_t keymaps[][MATRIX_ROWS][MATRIX_COLS]; -extern const uint16_t fn_actions[]; - -// Ability to use mods in layouts -#define LCTL(kc) kc | 0x0100 -#define LSFT(kc) kc | 0x0200 -#define LALT(kc) kc | 0x0400 -#define LGUI(kc) kc | 0x0800 -#define RCTL(kc) kc | 0x1100 -#define RSFT(kc) kc | 0x1200 -#define RALT(kc) kc | 0x1400 -#define RGUI(kc) kc | 0x1800 - -// Alias for function layers than expand past FN31 -#define FUNC(kc) kc | 0x2000 - -// Aliases -#define S(kc) LSFT(kc) -#define F(kc) FUNC(kc) - -// For software implementation of colemak -#define CM_Q KC_Q -#define CM_W KC_W -#define CM_F KC_E -#define CM_P KC_R -#define CM_G KC_T -#define CM_J KC_Y -#define CM_L KC_U -#define CM_U KC_I -#define CM_Y KC_O -#define CM_SCLN KC_P - -#define CM_A KC_A -#define CM_R KC_S -#define CM_S KC_D -#define CM_T KC_F -#define CM_D KC_G -#define CM_H KC_H -#define CM_N KC_J -#define CM_E KC_K -#define CM_I KC_L -#define CM_O KC_SCLN - -#define CM_Z KC_Z -#define CM_X KC_X -#define CM_C KC_C -#define CM_V KC_V -#define CM_B KC_B -#define CM_K KC_N -#define CM_M KC_M -#define CM_COMM KC_COMM -#define CM_DOT KC_DOT -#define CM_SLSH KC_SLSH - -// Make it easy to support these in macros -#define KC_CM_Q CM_Q -#define KC_CM_W CM_W -#define KC_CM_F CM_F -#define KC_CM_P CM_P -#define KC_CM_G CM_G -#define KC_CM_J CM_J -#define KC_CM_L CM_L -#define KC_CM_U CM_U -#define KC_CM_Y CM_Y -#define KC_CM_SCLN CM_SCLN - -#define KC_CM_A CM_A -#define KC_CM_R CM_R -#define KC_CM_S CM_S -#define KC_CM_T CM_T -#define KC_CM_D CM_D -#define KC_CM_H CM_H -#define KC_CM_N CM_N -#define KC_CM_E CM_E -#define KC_CM_I CM_I -#define KC_CM_O CM_O - -#define KC_CM_Z CM_Z -#define KC_CM_X CM_X -#define KC_CM_C CM_C -#define KC_CM_V CM_V -#define KC_CM_B CM_B -#define KC_CM_K CM_K -#define KC_CM_M CM_M -#define KC_CM_COMM CM_COMM -#define KC_CM_DOT CM_DOT -#define KC_CM_SLSH CM_SLSH - -#define M(kc) kc | 0x3000 - -#define MACRODOWN(...) (record->event.pressed ? MACRO(__VA_ARGS__) : MACRO_NONE) - -#define BL_ON 0x4009 -#define BL_OFF 0x4000 -#define BL_0 0x4000 -#define BL_1 0x4001 -#define BL_2 0x4002 -#define BL_3 0x4003 -#define BL_4 0x4004 -#define BL_5 0x4005 -#define BL_6 0x4006 -#define BL_7 0x4007 -#define BL_8 0x4008 -#define BL_9 0x4009 -#define BL_10 0x400A -#define BL_11 0x400B -#define BL_12 0x400C -#define BL_13 0x400D -#define BL_14 0x400E -#define BL_15 0x400F -#define BL_DEC 0x4010 -#define BL_INC 0x4011 -#define BL_TOGG 0x4012 -#define BL_STEP 0x4013 - -#define RESET 0x5000 -#define DEBUG 0x5001 - -#define MIDI(n) n | 0x6000 - -#endif diff --git a/keyboard/preonic/extended_keymaps/extended_keymap_default.c b/keyboard/preonic/extended_keymaps/extended_keymap_default.c deleted file mode 100644 index b52f60fd08..0000000000 --- a/keyboard/preonic/extended_keymaps/extended_keymap_default.c +++ /dev/null @@ -1,70 +0,0 @@ -#include "extended_keymap_common.h" -#include "backlight.h" -#include "lufa.h" -#include "debug.h" - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[0] = { /* Qwerty */ - {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL}, - {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, - {KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, - {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT}, - {M(0), KC_LCTL, KC_LALT, KC_LGUI, FUNC(2), KC_SPC, KC_SPC, FUNC(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} - // Space is repeated to accommadate for both spacebar wiring positions -}, -[1] = { /* Colemak */ - {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL}, - {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, - {KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, - {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT}, - {KC_FN3, KC_LCTL, KC_LALT, KC_LGUI, FUNC(2), KC_SPC, KC_SPC, FUNC(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} -}, -[2] = { /* RAISE */ - {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL}, - {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, - {KC_TRNS, FUNC(3), FUNC(4), RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, - {KC_TRNS, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, FUNC(1), KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} -}, -[3] = { /* LOWER */ - {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL}, - {S(KC_GRV), S(KC_1), S(KC_2), S(KC_3), S(KC_4), S(KC_5), S(KC_6), S(KC_7), S(KC_8), S(KC_9), S(KC_0), KC_BSPC}, - {KC_TRNS, FUNC(3), FUNC(4), RESET, KC_TRNS, KC_TRNS, KC_TRNS, S(KC_MINS), S(KC_EQL), S(KC_LBRC), S(KC_RBRC), S(KC_BSLS)}, - {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, FUNC(2), KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} -}, -[4] = { /* TENKEY */ - {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL}, - {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_KP_7, KC_KP_8, KC_KP_9, KC_P, KC_BSPC}, - {KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_KP_4, KC_KP_5, KC_KP_6, KC_SCLN, KC_QUOT}, - {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_KP_1, KC_KP_2, KC_KP_3, KC_SLSH, KC_ENT}, - {KC_TRNS, KC_LCTL, KC_LALT, KC_LGUI, KC_TRNS, KC_SPC, KC_SPC, KC_KP_0, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} -} -}; - -const uint16_t PROGMEM fn_actions[] = { - [1] = ACTION_LAYER_MOMENTARY(2), // to RAISE - [2] = ACTION_LAYER_MOMENTARY(3), // to LOWER - - [3] = ACTION_DEFAULT_LAYER_SET(0), - [4] = ACTION_DEFAULT_LAYER_SET(1), - -}; - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - // MACRODOWN only works in this function - switch(id) { - case 0: - if (record->event.pressed) { - register_code(KC_RSFT); - midi_send_noteon(&midi_device, 1, 64, 127); - backlight_step(); - } else { - unregister_code(KC_RSFT); - midi_send_noteoff(&midi_device, 1, 64, 127); - } - break; - } - return MACRO_NONE; -}; diff --git a/keyboard/preonic/extended_keymaps/extended_keymap_lock.c b/keyboard/preonic/extended_keymaps/extended_keymap_lock.c deleted file mode 100644 index ec7bc776ac..0000000000 --- a/keyboard/preonic/extended_keymaps/extended_keymap_lock.c +++ /dev/null @@ -1,81 +0,0 @@ -#include "extended_keymap_common.h" -#include "backlight.h" -#include "action_layer.h" -#include "keymap_midi.h" -#include "beeps.h" - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[0] = { /* Qwerty */ - {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, - {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, - {KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, - {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT}, - {M(0), KC_LCTL, KC_LALT, KC_LGUI, FUNC(2), KC_SPC, KC_SPC, FUNC(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} - // Space is repeated to accommadate for both spacebar wiring positions -}, -[1] = { /* Colemak */ - {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, - {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, - {KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, - {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT}, - {KC_FN3, KC_LCTL, KC_LALT, KC_LGUI, FUNC(2), KC_SPC, KC_SPC, FUNC(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} -}, -[2] = { /* RAISE */ - {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, - {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, - {KC_TRNS, FUNC(3), FUNC(4), RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, - {KC_TRNS, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, FUNC(1), KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} -}, -[3] = { /* LOWER */ - {KC_GRV, S(KC_1), S(KC_2), S(KC_3), S(KC_4), S(KC_5), S(KC_6), S(KC_7), S(KC_8), S(KC_9), S(KC_0), KC_BSPC}, - {S(KC_GRV), S(KC_1), S(KC_2), S(KC_3), S(KC_4), S(KC_5), S(KC_6), S(KC_7), S(KC_8), S(KC_9), S(KC_0), KC_BSPC}, - {KC_TRNS, FUNC(3), FUNC(4), RESET, KC_TRNS, KC_TRNS, KC_TRNS, S(KC_MINS), S(KC_EQL), S(KC_LBRC), S(KC_RBRC), S(KC_BSLS)}, - {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, FUNC(2), KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} -}, -[4] = { /* TENKEY */ - {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, - {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_KP_7, KC_KP_8, KC_KP_9, KC_P, KC_BSPC}, - {KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_KP_4, KC_KP_5, KC_KP_6, KC_SCLN, KC_QUOT}, - {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_KP_1, KC_KP_2, KC_KP_3, KC_SLSH, KC_ENT}, - {KC_TRNS, KC_LCTL, KC_LALT, KC_LGUI, KC_TRNS, KC_SPC, KC_SPC, KC_KP_0, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} -}, -[5] = { - { MIDI12 }, - { MIDI12 }, - { MIDI12 }, - { MIDI12 }, - {M(0), KC_LCTL, KC_LALT, KC_LGUI, FUNC(2), KC_SPC, KC_SPC, FUNC(1), MIDI, MIDI, MIDI, MIDI} -} - -}; - -const uint16_t PROGMEM fn_actions[] = { - [1] = ACTION_LAYER_MOMENTARY(2), // to RAISE - [2] = ACTION_LAYER_MOMENTARY(3), // to LOWER - - [3] = ACTION_DEFAULT_LAYER_SET(0), - [4] = ACTION_DEFAULT_LAYER_SET(1), - -}; - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - switch(id) { - case 0: - if (record->event.pressed) { - // register_code(KC_RSFT); - backlight_set(BACKLIGHT_LEVELS); - default_layer_and(0); - default_layer_or((1<<5)); - } else { - // unregister_code(KC_RSFT); - backlight_set(0); - default_layer_and(0); - default_layer_or(0); - } - break; - } - return MACRO_NONE; -}; diff --git a/keyboard/preonic/flash-pcb.sh b/keyboard/preonic/flash-pcb.sh new file mode 100755 index 0000000000..8b59b83f5e --- /dev/null +++ b/keyboard/preonic/flash-pcb.sh @@ -0,0 +1,3 @@ +dfu-programmer atmega32u4 erase --force +dfu-programmer atmega32u4 flash preonic_pcb.hex +dfu-programmer atmega32u4 reset \ No newline at end of file diff --git a/keyboard/preonic/keymap_midi.c b/keyboard/preonic/keymap_midi.c deleted file mode 100644 index a0fa59990c..0000000000 --- a/keyboard/preonic/keymap_midi.c +++ /dev/null @@ -1,110 +0,0 @@ -/* -Copyright 2015 Jack Humbert - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#include "extended_keymap_common.h" -#include "keymap_midi.h" -#include - -uint8_t starting_note = 0x0C; -int offset = 7; - -void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - if (id != 0) { - if (record->event.pressed) { - midi_send_noteon(&midi_device, opt, (id & 0xFF), 127); - } else { - midi_send_noteoff(&midi_device, opt, (id & 0xFF), 127); - } - } - - if (record->event.key.col == (MATRIX_COLS - 1) && record->event.key.row == (MATRIX_ROWS - 1)) { - if (record->event.pressed) { - starting_note++; - play_note(((double)261.6)*pow(2.0, -1.0)*pow(2.0,(starting_note + SCALE[0 + offset])/12.0+(MATRIX_ROWS - 1)), 0xC); - midi_send_cc(&midi_device, 0, 0x7B, 0); - midi_send_cc(&midi_device, 1, 0x7B, 0); - midi_send_cc(&midi_device, 2, 0x7B, 0); - midi_send_cc(&midi_device, 3, 0x7B, 0); - midi_send_cc(&midi_device, 4, 0x7B, 0); - return; - } else { - stop_note(((double)261.6)*pow(2.0, -1.0)*pow(2.0,(starting_note + SCALE[0 + offset])/12.0+(MATRIX_ROWS - 1))); - stop_all_notes(); - return; - } - } - if (record->event.key.col == (MATRIX_COLS - 2) && record->event.key.row == (MATRIX_ROWS - 1)) { - if (record->event.pressed) { - starting_note--; - play_note(((double)261.6)*pow(2.0, -1.0)*pow(2.0,(starting_note + SCALE[0 + offset])/12.0+(MATRIX_ROWS - 1)), 0xC); - midi_send_cc(&midi_device, 0, 0x7B, 0); - midi_send_cc(&midi_device, 1, 0x7B, 0); - midi_send_cc(&midi_device, 2, 0x7B, 0); - midi_send_cc(&midi_device, 3, 0x7B, 0); - midi_send_cc(&midi_device, 4, 0x7B, 0); - return; - } else { - stop_note(((double)261.6)*pow(2.0, -1.0)*pow(2.0,(starting_note + SCALE[0 + offset])/12.0+(MATRIX_ROWS - 1))); - stop_all_notes(); - return; - } - } - - if (record->event.key.col == (MATRIX_COLS - 3) && record->event.key.row == (MATRIX_ROWS - 1) && record->event.pressed) { - offset++; - midi_send_cc(&midi_device, 0, 0x7B, 0); - midi_send_cc(&midi_device, 1, 0x7B, 0); - midi_send_cc(&midi_device, 2, 0x7B, 0); - midi_send_cc(&midi_device, 3, 0x7B, 0); - midi_send_cc(&midi_device, 4, 0x7B, 0); - stop_all_notes(); - for (int i = 0; i <= 7; i++) { - play_note(((double)261.6)*pow(2.0, -1.0)*pow(2.0,(starting_note + SCALE[i + offset])/12.0+(MATRIX_ROWS - 1)), 0xC); - _delay_us(80000); - stop_note(((double)261.6)*pow(2.0, -1.0)*pow(2.0,(starting_note + SCALE[i + offset])/12.0+(MATRIX_ROWS - 1))); - _delay_us(8000); - } - return; - } - if (record->event.key.col == (MATRIX_COLS - 4) && record->event.key.row == (MATRIX_ROWS - 1) && record->event.pressed) { - offset--; - midi_send_cc(&midi_device, 0, 0x7B, 0); - midi_send_cc(&midi_device, 1, 0x7B, 0); - midi_send_cc(&midi_device, 2, 0x7B, 0); - midi_send_cc(&midi_device, 3, 0x7B, 0); - midi_send_cc(&midi_device, 4, 0x7B, 0); - stop_all_notes(); - for (int i = 0; i <= 7; i++) { - play_note(((double)261.6)*pow(2.0, -1.0)*pow(2.0,(starting_note + SCALE[i + offset])/12.0+(MATRIX_ROWS - 1)), 0xC); - _delay_us(80000); - stop_note(((double)261.6)*pow(2.0, -1.0)*pow(2.0,(starting_note + SCALE[i + offset])/12.0+(MATRIX_ROWS - 1))); - _delay_us(8000); - } - return; - } - - if (record->event.pressed) { - // midi_send_noteon(&midi_device, record->event.key.row, starting_note + SCALE[record->event.key.col], 127); - midi_send_noteon(&midi_device, 0, (starting_note + SCALE[record->event.key.col + offset])+12*(MATRIX_ROWS - record->event.key.row), 127); - play_note(((double)261.6)*pow(2.0, -1.0)*pow(2.0,(starting_note + SCALE[record->event.key.col + offset])/12.0+(MATRIX_ROWS - record->event.key.row)), 0xF); - } else { - // midi_send_noteoff(&midi_device, record->event.key.row, starting_note + SCALE[record->event.key.col], 127); - midi_send_noteoff(&midi_device, 0, (starting_note + SCALE[record->event.key.col + offset])+12*(MATRIX_ROWS - record->event.key.row), 127); - stop_note(((double)261.6)*pow(2.0, -1.0)*pow(2.0,(starting_note + SCALE[record->event.key.col + offset])/12.0+(MATRIX_ROWS - record->event.key.row))); - } -} \ No newline at end of file diff --git a/keyboard/preonic/keymap_midi.h b/keyboard/preonic/keymap_midi.h deleted file mode 100644 index c5917f884e..0000000000 --- a/keyboard/preonic/keymap_midi.h +++ /dev/null @@ -1,220 +0,0 @@ -/* -Copyright 2015 Jack Humbert - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#ifndef KEYMAP_MIDI_H -#define KEYMAP_MIDI_H - -#define MIDI 0x6000 -#define MIDI12 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000 - -#define CHNL(note, channel) (note + (channel << 8)) - -#define SCALE (int []){ 0 + (12*0), 2 + (12*0), 4 + (12*0), 5 + (12*0), 7 + (12*0), 9 + (12*0), 11 + (12*0), \ - 0 + (12*1), 2 + (12*1), 4 + (12*1), 5 + (12*1), 7 + (12*1), 9 + (12*1), 11 + (12*1), \ - 0 + (12*2), 2 + (12*2), 4 + (12*2), 5 + (12*2), 7 + (12*2), 9 + (12*2), 11 + (12*2), \ - 0 + (12*3), 2 + (12*3), 4 + (12*3), 5 + (12*3), 7 + (12*3), 9 + (12*3), 11 + (12*3), \ - 0 + (12*4), 2 + (12*4), 4 + (12*4), 5 + (12*4), 7 + (12*4), 9 + (12*4), 11 + (12*4), } - -#define N_CN1 (0x600C + (12 * -1) + 0 ) -#define N_CN1S (0x600C + (12 * -1) + 1 ) -#define N_DN1F (0x600C + (12 * -1) + 1 ) -#define N_DN1 (0x600C + (12 * -1) + 2 ) -#define N_DN1S (0x600C + (12 * -1) + 3 ) -#define N_EN1F (0x600C + (12 * -1) + 3 ) -#define N_EN1 (0x600C + (12 * -1) + 4 ) -#define N_FN1 (0x600C + (12 * -1) + 5 ) -#define N_FN1S (0x600C + (12 * -1) + 6 ) -#define N_GN1F (0x600C + (12 * -1) + 6 ) -#define N_GN1 (0x600C + (12 * -1) + 7 ) -#define N_GN1S (0x600C + (12 * -1) + 8 ) -#define N_AN1F (0x600C + (12 * -1) + 8 ) -#define N_AN1 (0x600C + (12 * -1) + 9 ) -#define N_AN1S (0x600C + (12 * -1) + 10) -#define N_BN1F (0x600C + (12 * -1) + 10) -#define N_BN1 (0x600C + (12 * -1) + 11) -#define N_C0 (0x600C + (12 * 0) + 0 ) -#define N_C0S (0x600C + (12 * 0) + 1 ) -#define N_D0F (0x600C + (12 * 0) + 1 ) -#define N_D0 (0x600C + (12 * 0) + 2 ) -#define N_D0S (0x600C + (12 * 0) + 3 ) -#define N_E0F (0x600C + (12 * 0) + 3 ) -#define N_E0 (0x600C + (12 * 0) + 4 ) -#define N_F0 (0x600C + (12 * 0) + 5 ) -#define N_F0S (0x600C + (12 * 0) + 6 ) -#define N_G0F (0x600C + (12 * 0) + 6 ) -#define N_G0 (0x600C + (12 * 0) + 7 ) -#define N_G0S (0x600C + (12 * 0) + 8 ) -#define N_A0F (0x600C + (12 * 0) + 8 ) -#define N_A0 (0x600C + (12 * 0) + 9 ) -#define N_A0S (0x600C + (12 * 0) + 10) -#define N_B0F (0x600C + (12 * 0) + 10) -#define N_B0 (0x600C + (12 * 0) + 11) -#define N_C1 (0x600C + (12 * 1) + 0 ) -#define N_C1S (0x600C + (12 * 1) + 1 ) -#define N_D1F (0x600C + (12 * 1) + 1 ) -#define N_D1 (0x600C + (12 * 1) + 2 ) -#define N_D1S (0x600C + (12 * 1) + 3 ) -#define N_E1F (0x600C + (12 * 1) + 3 ) -#define N_E1 (0x600C + (12 * 1) + 4 ) -#define N_F1 (0x600C + (12 * 1) + 5 ) -#define N_F1S (0x600C + (12 * 1) + 6 ) -#define N_G1F (0x600C + (12 * 1) + 6 ) -#define N_G1 (0x600C + (12 * 1) + 7 ) -#define N_G1S (0x600C + (12 * 1) + 8 ) -#define N_A1F (0x600C + (12 * 1) + 8 ) -#define N_A1 (0x600C + (12 * 1) + 9 ) -#define N_A1S (0x600C + (12 * 1) + 10) -#define N_B1F (0x600C + (12 * 1) + 10) -#define N_B1 (0x600C + (12 * 1) + 11) -#define N_C2 (0x600C + (12 * 2) + 0 ) -#define N_C2S (0x600C + (12 * 2) + 1 ) -#define N_D2F (0x600C + (12 * 2) + 1 ) -#define N_D2 (0x600C + (12 * 2) + 2 ) -#define N_D2S (0x600C + (12 * 2) + 3 ) -#define N_E2F (0x600C + (12 * 2) + 3 ) -#define N_E2 (0x600C + (12 * 2) + 4 ) -#define N_F2 (0x600C + (12 * 2) + 5 ) -#define N_F2S (0x600C + (12 * 2) + 6 ) -#define N_G2F (0x600C + (12 * 2) + 6 ) -#define N_G2 (0x600C + (12 * 2) + 7 ) -#define N_G2S (0x600C + (12 * 2) + 8 ) -#define N_A2F (0x600C + (12 * 2) + 8 ) -#define N_A2 (0x600C + (12 * 2) + 9 ) -#define N_A2S (0x600C + (12 * 2) + 10) -#define N_B2F (0x600C + (12 * 2) + 10) -#define N_B2 (0x600C + (12 * 2) + 11) -#define N_C3 (0x600C + (12 * 3) + 0 ) -#define N_C3S (0x600C + (12 * 3) + 1 ) -#define N_D3F (0x600C + (12 * 3) + 1 ) -#define N_D3 (0x600C + (12 * 3) + 2 ) -#define N_D3S (0x600C + (12 * 3) + 3 ) -#define N_E3F (0x600C + (12 * 3) + 3 ) -#define N_E3 (0x600C + (12 * 3) + 4 ) -#define N_F3 (0x600C + (12 * 3) + 5 ) -#define N_F3S (0x600C + (12 * 3) + 6 ) -#define N_G3F (0x600C + (12 * 3) + 6 ) -#define N_G3 (0x600C + (12 * 3) + 7 ) -#define N_G3S (0x600C + (12 * 3) + 8 ) -#define N_A3F (0x600C + (12 * 3) + 8 ) -#define N_A3 (0x600C + (12 * 3) + 9 ) -#define N_A3S (0x600C + (12 * 3) + 10) -#define N_B3F (0x600C + (12 * 3) + 10) -#define N_B3 (0x600C + (12 * 3) + 11) -#define N_C4 (0x600C + (12 * 4) + 0 ) -#define N_C4S (0x600C + (12 * 4) + 1 ) -#define N_D4F (0x600C + (12 * 4) + 1 ) -#define N_D4 (0x600C + (12 * 4) + 2 ) -#define N_D4S (0x600C + (12 * 4) + 3 ) -#define N_E4F (0x600C + (12 * 4) + 3 ) -#define N_E4 (0x600C + (12 * 4) + 4 ) -#define N_F4 (0x600C + (12 * 4) + 5 ) -#define N_F4S (0x600C + (12 * 4) + 6 ) -#define N_G4F (0x600C + (12 * 4) + 6 ) -#define N_G4 (0x600C + (12 * 4) + 7 ) -#define N_G4S (0x600C + (12 * 4) + 8 ) -#define N_A4F (0x600C + (12 * 4) + 8 ) -#define N_A4 (0x600C + (12 * 4) + 9 ) -#define N_A4S (0x600C + (12 * 4) + 10) -#define N_B4F (0x600C + (12 * 4) + 10) -#define N_B4 (0x600C + (12 * 4) + 11) -#define N_C5 (0x600C + (12 * 5) + 0 ) -#define N_C5S (0x600C + (12 * 5) + 1 ) -#define N_D5F (0x600C + (12 * 5) + 1 ) -#define N_D5 (0x600C + (12 * 5) + 2 ) -#define N_D5S (0x600C + (12 * 5) + 3 ) -#define N_E5F (0x600C + (12 * 5) + 3 ) -#define N_E5 (0x600C + (12 * 5) + 4 ) -#define N_F5 (0x600C + (12 * 5) + 5 ) -#define N_F5S (0x600C + (12 * 5) + 6 ) -#define N_G5F (0x600C + (12 * 5) + 6 ) -#define N_G5 (0x600C + (12 * 5) + 7 ) -#define N_G5S (0x600C + (12 * 5) + 8 ) -#define N_A5F (0x600C + (12 * 5) + 8 ) -#define N_A5 (0x600C + (12 * 5) + 9 ) -#define N_A5S (0x600C + (12 * 5) + 10) -#define N_B5F (0x600C + (12 * 5) + 10) -#define N_B5 (0x600C + (12 * 5) + 11) -#define N_C6 (0x600C + (12 * 6) + 0 ) -#define N_C6S (0x600C + (12 * 6) + 1 ) -#define N_D6F (0x600C + (12 * 6) + 1 ) -#define N_D6 (0x600C + (12 * 6) + 2 ) -#define N_D6S (0x600C + (12 * 6) + 3 ) -#define N_E6F (0x600C + (12 * 6) + 3 ) -#define N_E6 (0x600C + (12 * 6) + 4 ) -#define N_F6 (0x600C + (12 * 6) + 5 ) -#define N_F6S (0x600C + (12 * 6) + 6 ) -#define N_G6F (0x600C + (12 * 6) + 6 ) -#define N_G6 (0x600C + (12 * 6) + 7 ) -#define N_G6S (0x600C + (12 * 6) + 8 ) -#define N_A6F (0x600C + (12 * 6) + 8 ) -#define N_A6 (0x600C + (12 * 6) + 9 ) -#define N_A6S (0x600C + (12 * 6) + 10) -#define N_B6F (0x600C + (12 * 6) + 10) -#define N_B6 (0x600C + (12 * 6) + 11) -#define N_C7 (0x600C + (12 * 7) + 0 ) -#define N_C7S (0x600C + (12 * 7) + 1 ) -#define N_D7F (0x600C + (12 * 7) + 1 ) -#define N_D7 (0x600C + (12 * 7) + 2 ) -#define N_D7S (0x600C + (12 * 7) + 3 ) -#define N_E7F (0x600C + (12 * 7) + 3 ) -#define N_E7 (0x600C + (12 * 7) + 4 ) -#define N_F7 (0x600C + (12 * 7) + 5 ) -#define N_F7S (0x600C + (12 * 7) + 6 ) -#define N_G7F (0x600C + (12 * 7) + 6 ) -#define N_G7 (0x600C + (12 * 7) + 7 ) -#define N_G7S (0x600C + (12 * 7) + 8 ) -#define N_A7F (0x600C + (12 * 7) + 8 ) -#define N_A7 (0x600C + (12 * 7) + 9 ) -#define N_A7S (0x600C + (12 * 7) + 10) -#define N_B7F (0x600C + (12 * 7) + 10) -#define N_B7 (0x600C + (12 * 7) + 11) -#define N_C8 (0x600C + (12 * 8) + 0 ) -#define N_C8S (0x600C + (12 * 8) + 1 ) -#define N_D8F (0x600C + (12 * 8) + 1 ) -#define N_D8 (0x600C + (12 * 8) + 2 ) -#define N_D8S (0x600C + (12 * 8) + 3 ) -#define N_E8F (0x600C + (12 * 8) + 3 ) -#define N_E8 (0x600C + (12 * 8) + 4 ) -#define N_F8 (0x600C + (12 * 8) + 5 ) -#define N_F8S (0x600C + (12 * 8) + 6 ) -#define N_G8F (0x600C + (12 * 8) + 6 ) -#define N_G8 (0x600C + (12 * 8) + 7 ) -#define N_G8S (0x600C + (12 * 8) + 8 ) -#define N_A8F (0x600C + (12 * 8) + 8 ) -#define N_A8 (0x600C + (12 * 8) + 9 ) -#define N_A8S (0x600C + (12 * 8) + 10) -#define N_B8F (0x600C + (12 * 8) + 10) -#define N_B8 (0x600C + (12 * 8) + 11) -#define N_C8 (0x600C + (12 * 8) + 0 ) -#define N_C8S (0x600C + (12 * 8) + 1 ) -#define N_D8F (0x600C + (12 * 8) + 1 ) -#define N_D8 (0x600C + (12 * 8) + 2 ) -#define N_D8S (0x600C + (12 * 8) + 3 ) -#define N_E8F (0x600C + (12 * 8) + 3 ) -#define N_E8 (0x600C + (12 * 8) + 4 ) -#define N_F8 (0x600C + (12 * 8) + 5 ) -#define N_F8S (0x600C + (12 * 8) + 6 ) -#define N_G8F (0x600C + (12 * 8) + 6 ) -#define N_G8 (0x600C + (12 * 8) + 7 ) -#define N_G8S (0x600C + (12 * 8) + 8 ) -#define N_A8F (0x600C + (12 * 8) + 8 ) -#define N_A8 (0x600C + (12 * 8) + 9 ) -#define N_A8S (0x600C + (12 * 8) + 10) -#define N_B8F (0x600C + (12 * 8) + 10) -#define N_B8 (0x600C + (12 * 8) + 11) - -#endif \ No newline at end of file diff --git a/keyboard/preonic/keymaps/default/README.md b/keyboard/preonic/keymaps/default/README.md new file mode 100644 index 0000000000..e911968dd9 --- /dev/null +++ b/keyboard/preonic/keymaps/default/README.md @@ -0,0 +1 @@ +# The default Preonic layout - largely based on the Planck's \ No newline at end of file diff --git a/keyboard/preonic/keymaps/default/keymap.c b/keyboard/preonic/keymaps/default/keymap.c new file mode 100644 index 0000000000..c52d8472f4 --- /dev/null +++ b/keyboard/preonic/keymaps/default/keymap.c @@ -0,0 +1,288 @@ +#include "preonic.h" +#include "action_layer.h" +#ifdef AUDIO_ENABLE + #include "audio.h" +#endif + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +#define _QW 0 +#define _CM 1 +#define _DV 2 +#define _LW 3 +#define _RS 4 +#define _AD 5 + +// Macro name shortcuts +#define QWERTY M(_QW) +#define COLEMAK M(_CM) +#define DVORAK M(_DV) +#define LOWER M(_LW) +#define RAISE M(_RS) +#define M_BL 5 +#ifdef AUDIO_ENABLE + #define AUD_OFF M(6) + #define AUD_ON M(7) +#endif + +// Fillers to make layering more clear +#define _______ KC_TRNS +#define XXXXXXX KC_NO + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* Qwerty + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Tab | Q | W | E | R | T | Y | U | I | O | P | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | S | D | F | G | H | J | K | L | ; | " | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_QW] = { + {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, + {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL}, + {KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, + {M(M_BL), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, + +/* Colemak + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | R | S | T | D | H | N | E | I | O | " | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | K | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_CM] = { + {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, + {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_DEL}, + {KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, + {M(M_BL), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, + +/* Dvorak + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Tab | " | , | . | P | Y | F | G | C | R | L | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | O | E | U | I | D | H | T | N | S | / | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_DV] = { + {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, + {KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_DEL}, + {KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH}, + {KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT }, + {M(M_BL), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, + +/* Lower + * ,-----------------------------------------------------------------------------------. + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | F12 | | | | |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ +[_LW] = { + {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC}, + {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL}, + {KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE}, + {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} +}, + +/* Raise + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | F12 | | | | |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ +[_RS] = { + {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, + {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL}, + {KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, + {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} +}, + +/* Adjust (Lower + Raise) + * ,-----------------------------------------------------------------------------------. + * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | Reset| | | | | | | | | | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | | |Audoff|Aud on| | |Qwerty|Colemk|Dvorak| | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | | | | | | | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | + * `-----------------------------------------------------------------------------------' + */ +[_AD] = { + {KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12}, + {_______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL}, + {_______, _______, _______, AUD_ON, AUD_OFF, _______, _______, QWERTY, COLEMAK, DVORAK, _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} +} +}; + +const uint16_t PROGMEM fn_actions[] = { + +}; + +#ifdef AUDIO_ENABLE +float start_up[][2] = { + {440.0*pow(2.0,(55)/12.0), 12}, + {0, 2}, + {440.0*pow(2.0,(67)/12.0), 8}, + {440.0*pow(2.0,(64)/12.0), 8}, + {440.0*pow(2.0,(55)/12.0), 8}, + {440.0*pow(2.0,(67)/12.0), 12}, + {0, 2}, + {440.0*pow(2.0,(67)/12.0), 12} +}; + +float tone_qw[][2] = { + {440.0*pow(2.0,(59)/12.0), 8}, + {440.0*pow(2.0,(60)/12.0), 8}, + {0, 4}, + {440.0*pow(2.0,(67)/12.0), 16} +}; + +float tone_cm[][2] = { + {440.0*pow(2.0,(59)/12.0), 8}, + {440.0*pow(2.0,(60)/12.0), 8}, + {0, 4}, + {440.0*pow(2.0,(67)/12.0), 12}, + {0, 4}, + {440.0*pow(2.0,(71)/12.0), 12} +}; + +float tone_dv[][2] = { + {440.0*pow(2.0,(59)/12.0), 8}, + {440.0*pow(2.0,(60)/12.0), 8}, + {0, 4}, + {440.0*pow(2.0,(67)/12.0), 8}, + {0, 4}, + {440.0*pow(2.0,(69)/12.0), 8}, + {0, 4}, + {440.0*pow(2.0,(67)/12.0), 8} +}; +#endif + + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch(id) { + case _QW: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + play_notes(&tone_qw, 4, false); + #endif + default_layer_set(1UL<<_QW); + } + break; + case _CM: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + play_notes(&tone_cm, 6, false); + #endif + default_layer_set(1UL<<_CM); + } + break; + case _DV: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + play_notes(&tone_dv, 8, false); + #endif + default_layer_set(1UL<<_DV); + } + break; + case _LW: + if (record->event.pressed) { + layer_on(_LW); + update_tri_layer(_LW, _RS, _AD); + } else { + layer_off(_LW); + update_tri_layer(_LW, _RS, _AD); + } + break; + case _RS: + if (record->event.pressed) { + layer_on(_RS); + update_tri_layer(_LW, _RS, _AD); + } else { + layer_off(_RS); + update_tri_layer(_LW, _RS, _AD); + } + break; + case M_BL: + if (record->event.pressed) { + register_code(KC_RSFT); + #ifdef BACKLIGHT_ENABLE + backlight_step(); + #endif + } else { + unregister_code(KC_RSFT); + } + break; + case 6: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + audio_off(); + #endif + } + break; + case 7: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + audio_on(); + play_notes(&start_up, 7, false); + #endif + } + break; + } + return MACRO_NONE; +}; + +void matrix_init_user(void) { + #ifdef AUDIO_ENABLE + init_notes(); + play_notes(&start_up, 7, false); + #endif +} diff --git a/keyboard/preonic/keymaps/default/makefile.mk b/keyboard/preonic/keymaps/default/makefile.mk new file mode 100644 index 0000000000..628167ff66 --- /dev/null +++ b/keyboard/preonic/keymaps/default/makefile.mk @@ -0,0 +1 @@ +AUDIO_ENABLE = yes \ No newline at end of file diff --git a/keyboard/preonic/keymaps/lock/README.md b/keyboard/preonic/keymaps/lock/README.md new file mode 100644 index 0000000000..d21cb990b0 --- /dev/null +++ b/keyboard/preonic/keymaps/lock/README.md @@ -0,0 +1,3 @@ +# Lock layout + +This layout is designed for having a lock switch in the lower-left-hand corner, and for experimenting with MIDI/audio features. It's constantly in development, so don't expect anything to work/be documented correctly! \ No newline at end of file diff --git a/quantum/template/keymaps/keymap_default.c b/keyboard/preonic/keymaps/lock/keymap.c similarity index 71% rename from quantum/template/keymaps/keymap_default.c rename to keyboard/preonic/keymaps/lock/keymap.c index 1e6684da7b..cfb7f08035 100644 --- a/quantum/template/keymaps/keymap_default.c +++ b/keyboard/preonic/keymaps/lock/keymap.c @@ -1,7 +1,11 @@ // This is the canonical layout file for the Quantum project. If you want to add another keyboard, // this is the style you want to emulate. -#include "%KEYBOARD%.h" +#include "preonic.h" +#ifdef BACKLIGHT_ENABLE + #include "backlight.h" +#endif +#include "action_layer.h" // Each layer gets a name for readability, which is then used in the keymap matrix below. // The underscores don't mean anything - you can have a layer called STUFF or any other name. @@ -12,37 +16,50 @@ #define _DV 2 #define _LW 3 #define _RS 4 +#define _MI 5 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_QW] = { /* Qwerty */ + {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, {KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, {M(0), KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} }, [_CM] = { /* Colemak */ + {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, {KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, {M(0), KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} }, [_DV] = { /* Dvorak */ + {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, {KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC}, {KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH}, {KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT }, {M(0), KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} }, [_RS] = { /* RAISE */ + {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, {KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, DF(_QW), DF(_CM), DF(_DV), RESET, KC_TRNS}, {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} }, [_LW] = { /* LOWER */ + {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC}, {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE}, {KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, DF(_QW), DF(_CM), DF(_DV), RESET, KC_TRNS}, {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} +}, +[_MI] = { /* MIDI */ + {MIDI12}, + {MIDI12}, + {MIDI12}, + {MIDI12}, + {M(0), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MIDI, MIDI, MIDI, MIDI} } }; @@ -50,6 +67,18 @@ const uint16_t PROGMEM fn_actions[] = { }; +float start_up[][2] = { + {440.0*pow(2.0,(67)/12.0), 600}, + {0, 50}, + {440.0*pow(2.0,(64)/12.0), 400}, + {0, 50}, + {440.0*pow(2.0,(55)/12.0), 400}, + {0, 50}, + {440.0*pow(2.0,(60)/12.0), 400}, + {0, 50}, + {440.0*pow(2.0,(64)/12.0), 1000}, +}; + const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { // MACRODOWN only works in this function @@ -57,10 +86,20 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) case 0: if (record->event.pressed) { register_code(KC_RSFT); + #ifdef BACKLIGHT_ENABLE + backlight_step(); + #endif + default_layer_state = 1<<5; } else { unregister_code(KC_RSFT); + default_layer_state = 1<<0; } break; } return MACRO_NONE; }; + +void matrix_init_user(void) { + init_notes(); + play_notes(&start_up, 9, false); +} diff --git a/keyboard/preonic/keymaps/nerdgasm/README.md b/keyboard/preonic/keymaps/nerdgasm/README.md new file mode 100644 index 0000000000..d2f43bbdb8 --- /dev/null +++ b/keyboard/preonic/keymaps/nerdgasm/README.md @@ -0,0 +1,34 @@ +# The Default Planck Layout + + const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_QW] = { /* Qwerty */ + {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, + {KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, + {M(0), KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} + }, + [_CM] = { /* Colemak */ + {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, + {KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, + {M(0), KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} + }, + [_DV] = { /* Dvorak */ + {KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC}, + {KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH}, + {KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT }, + {M(0), KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} + }, + [_RS] = { /* RAISE */ + {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, + {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, + {KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, DF(_QW), DF(_CM), DF(_DV), RESET, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} + }, + [_LW] = { /* LOWER */ + {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC}, + {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE}, + {KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, DF(_QW), DF(_CM), DF(_DV), RESET, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} + } + }; \ No newline at end of file diff --git a/keyboard/preonic/keymaps/nerdgasm/keymap.c b/keyboard/preonic/keymaps/nerdgasm/keymap.c new file mode 100644 index 0000000000..818102fbdc --- /dev/null +++ b/keyboard/preonic/keymaps/nerdgasm/keymap.c @@ -0,0 +1,117 @@ +// This is the canonical layout file for the Quantum project. If you want to add another keyboard, +// this is the style you want to emulate. + +#include "preonic.h" +#ifdef BACKLIGHT_ENABLE + #include "backlight.h" +#endif + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +#define _QW 0 +#define _CM 1 +#define _DV 2 +#define _LW 3 +#define _RS 4 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[_QW] = { /* Qwerty */ + {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, + {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, + {KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, + {M(0), KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, +[_CM] = { /* Colemak */ + {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, + {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, + {KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, + {M(0), KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, +[_DV] = { /* Dvorak */ + {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, + {KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC}, + {KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH}, + {KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT }, + {M(0), KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, +[_RS] = { /* RAISE */ + {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, + {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, + {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, + {KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, DF(_QW), DF(_CM), DF(_DV), RESET, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} +}, +[_LW] = { /* LOWER */ + {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, + {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC}, + {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE}, + {KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, DF(_QW), DF(_CM), DF(_DV), RESET, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} +} +}; + +const uint16_t PROGMEM fn_actions[] = { + +}; + +// Guitar Notes +#define N_E 13180.5 +#define N_B 9870.8 +#define N_G 15680.0 +#define N_D 11740.7 +#define N_E 13180.5 + +float start_up[][2] = { + { N_E, 500 }, + { 0, 50 }, + { N_E, 500 }, + { 0, 50 }, + { N_E, 500 }, + { 0, 50 }, + { N_B, 500 }, + { 0, 50 }, + { N_E, 1000 }, + { 0, 50 }, + { N_G, 1500 }, + { 0, 50 }, +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch(id) { + case 0: + if (record->event.pressed) { + register_code(KC_RSFT); + #ifdef BACKLIGHT_ENABLE + backlight_step(); + #endif + } else { + unregister_code(KC_RSFT); + } + break; + } + return MACRO_NONE; +}; + +void matrix_init_user(void) { +#ifdef AUDIO_ENABLE + init_notes(); + play_notes(&start_up, 12, false); +#endif +} + +void process_action_user(keyrecord_t *record) { +#ifdef AUDIO_ENABLE + if (record->event.pressed) { + float keypress[][2] = { + {440.0*pow(2.0,(record->event.key.col*7)/12.0), 600} + }; + play_notes(&keypress, 1, false); + } +#endif +} diff --git a/keyboard/preonic/led.c b/keyboard/preonic/led.c deleted file mode 100644 index 2c05746607..0000000000 --- a/keyboard/preonic/led.c +++ /dev/null @@ -1,38 +0,0 @@ -/* -Copyright 2012 Jun Wako - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ - -#include -#include "stdint.h" -#include "led.h" - - -void led_set(uint8_t usb_led) -{ - // // Using PE6 Caps Lock LED - // if (usb_led & (1<. -*/ - -/* - * scan matrix - */ -#include -#include -#include -#include -#include "print.h" -#include "debug.h" -#include "util.h" -#include "matrix.h" - -#ifndef DEBOUNCE -# define DEBOUNCE 10 -#endif -static uint8_t debouncing = DEBOUNCE; - -/* matrix state(1:on, 0:off) */ -static matrix_row_t matrix[MATRIX_ROWS]; -static matrix_row_t matrix_debouncing[MATRIX_ROWS]; - -static matrix_row_t read_cols(void); -static void init_cols(void); -static void unselect_rows(void); -static void select_row(uint8_t row); - -inline -uint8_t matrix_rows(void) -{ - return MATRIX_ROWS; -} - -inline -uint8_t matrix_cols(void) -{ - return MATRIX_COLS; -} - -void matrix_init(void) -{ - // To use PORTF disable JTAG with writing JTD bit twice within four cycles. - MCUCR |= (1< +#ifdef MIDI_ENABLE + #include +#endif + +#define PREONIC_MIT( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, \ + k40, k41, k42, k43, k44, k45, k47, k48, k49, k4a, k4b \ +) \ +{ \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b }, \ + { k30, k31, k32, k33, k34, k35, k35, k37, k38, k39, k3a, k3b }, \ + { k40, k41, k42, k43, k44, k45, k45, k47, k48, k49, k4a, k4b } \ +} + +#define PREONIC_GRID( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, \ + k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b \ +) \ +{ \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b }, \ + { k30, k31, k32, k33, k34, k35, k35, k37, k38, k39, k3a, k3b }, \ + { k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b } \ +} + +void matrix_init_user(void); +void matrix_scan_user(void); +void process_action_kb(keyrecord_t *record); + +#endif diff --git a/keyboard/preonic/preonic_music.hex b/keyboard/preonic/preonic_music.hex new file mode 100644 index 0000000000..603693bffb --- /dev/null +++ b/keyboard/preonic/preonic_music.hex @@ -0,0 +1,1713 @@ +:100000000C9410030C9454030C9454030C94540358 +:100010000C9454030C9454030C9454030C94540304 +:100020000C9454030C9454030C9410170C94E21782 +:100030000C94BD290C9454030C9454030C94540355 +:100040000C9454030C9454030C9454030C945403D4 +:100050000C9454030C942A2A0C9454030C945403C7 +:100060000C9454030C9454030C9454030C945403B4 +:100070000C9454030C9454030C9454030C945403A4 +:100080000C94440E0C9454030C9454030C94540399 +:100090000C9454030C9454030C9454030C94540384 +:1000A0000C9454030C9454030C9454030763423689 +:1000B000B79BD8A71A39685618AEBAAB558C1D3CF9 +:1000C000B7CC5763BD6DEDFD753EF6177231BF00BD +:1000D0000000803F08000000BE922449123EABAAF7 +:1000E000AA2ABECDCCCC4C3E00000080BEABAAAA52 +:1000F000AA3E00000000BF000000803F000000009A +:1001000000084178D3BB4387D1133D190E3CC3BDD2 +:100110004282AD2B3E68EC8276BED98FE1A93E4C7F +:1001200080EFFFBE01C4FF7F3F00000000003500EC +:100130001E001F00200021002200230024002500B3 +:10014000260027002A002B0014001A0008001500C2 +:1001500017001C0018000C00120013002A002900D0 +:1001600004001600070009000A000B000D000E0035 +:100170000F0033003400E1001D001B0006001900D1 +:10018000050011001000360037003800280000304C +:10019000E000E200E30003522C002C000452500067 +:1001A000510052004F0035001E001F0020002100AA +:1001B0002200230024002500260027002A002B000F +:1001C00014001A00090013000A000D000F001800A7 +:1001D0001C0033002A002900040015001600170037 +:1001E00007000B00110008000C0012003400E100B1 +:1001F0001D001B000600190005000E00100036004F +:100200003700380028000030E000E200E30003522D +:100210002C002C0004525000510052004F003500B9 +:100220001E001F00200021002200230024002500C2 +:10023000260027002A002B00340036003700130068 +:100240001C0009000A00060015000F002A00290002 +:1002500004001200080018000C0007000B00170033 +:10026000110016003800E100330014000D000E00EC +:100270001B00050010001A0019001D0028000030A6 +:10028000E000E200E30003522C002C000452500076 +:10029000510052004F0035001E001F0020002100B9 +:1002A0002200230024002500260027002A00350212 +:1002B0001E021F0220022102220223022402250222 +:1002C000260227022A0001003A003B003C003D00C4 +:1002D0003E003F002D022E022F02300231020100AB +:1002E00040004100420043004400450000530153D8 +:1002F0000253005001000100010001000100010053 +:10030000010001000100AB00AA00A900AE00350009 +:100310001E001F00200021002200230024002500D1 +:10032000260027002A0035001E001F0020002100A3 +:100330002200230024002500260027002A000100B7 +:100340003A003B003C003D003E003F002D002E00E7 +:100350002F00300031000100400041004200430006 +:1003600044004500005301530253005001000100B6 +:100370000100010001000100010001000100AB00CB +:10038000AA00A900AE00006000600060006000608C +:10039000006000600060006000600060006000605D +:1003A000006000600060006000600060006000604D +:1003B000006000600060006000600060006000603D +:1003C000006000600060006000600060006000602D +:1003D000006000600060006000600060006000601D +:1003E00000600060006000300100010001000100B9 +:1003F00001000100010000600060006000602A034D +:1004000054006800650020005000720065006F0015 +:100410006E006900630020004B00650079006200F7 +:100420006F0061007200640000002C034F00720036 +:10043000740068006F006C0069006E006500610068 +:10044000720020004B006500790062006F006100BF +:100450007200640073000000040309040902D00064 +:10046000060100A0FA0904000001030101000921AE +:1004700011010001223F000705810308000A090459 +:1004800001000103010200092111010001224D00B8 +:100490000705820308000A090402000103000000A6 +:1004A0000921110100012236000705830308000A13 +:1004B00009040300020300000009211101000122C8 +:1004C0002000070584032000010705040320000124 +:1004D00009040400000101000009240100010900D1 +:1004E00001050904050002010300000724010001C1 +:1004F0004100062402010100062402020200092430 +:1005000003010301020100092403020401010100A7 +:100510000905060240000500000525010101090545 +:1005200085024000050000052501010312011001AC +:1005300000000008EDFE61600100010200010631CB +:10054000FF0974A1010975150025FF952075088123 +:10055000020976150025FF952075089102C0050156 +:100560000980A101850216010026B7001A01002AA0 +:10057000B700751095018100C0050C0901A1018526 +:1005800003160100269C021A01002A9C0275109590 +:10059000018100C005010902A1010901A1000509AD +:1005A000190129051500250195057501810295019F +:1005B000750381010501093009311581257F9502F7 +:1005C0007508810609381581257F95017508810612 +:1005D000050C0A38021581257F950175088106C032 +:1005E000C005010906A101050719E029E715002545 +:1005F00001950875018102950175088101050819A9 +:100600000129059505750191029501750391010573 +:1006100007190029FF150025FF950675088100C000 +:1006200011241FBECFEFDAE0DEBFCDBF04B603FE5C +:1006300024C08091050490910604A0910704B09114 +:1006400008048730904BA740B04BB9F410920504D2 +:1006500010920604109207041092080414BE84B786 +:10066000877F84BF88E10FB6F89480936000109272 +:1006700060000FBEE0E0F8E3099512E0A0E0B1E011 +:10068000E6ECF9E602C005900D92A832B107D9F761 +:1006900014E0A8E2B2E001C01D92A530B107E1F775 +:1006A0000E94C8130C94E1340C94000061111DC029 +:1006B000FC018281882351F085EE0E94901E0E94E9 +:1006C000BC3080E290E0A0E0B0E007C085EE0E9480 +:1006D000581F81E090E0A0E0B0E08093E1029093A9 +:1006E000E202A093E302B093E40280E090E0089578 +:1006F0000E94370E40E050E069E070E080E091E059 +:100700000C94880F08950E948B036E9A769A0C942D +:1007100078030C948203279A2F988FEF9FEF909382 +:100720008700809386008AE08093800089E180932F +:1007300081000C94653081110BC080918000877F0F +:100740008093800010928D0010928C002F98089555 +:100750002F98833041F480918000886080938000DE +:100760008FEF9FEF12C0909180009860909380006F +:1007700023E030E0281B3109220F331F8FEF9FEF5A +:1007800002C0969587952A95E2F790938D00809305 +:100790008C0008958B3B910568F4883A910530F5FB +:1007A000853A9105C0F48430910598F4019709F0D9 +:1007B0006FC071C0803E910508F46AC0883E910503 +:1007C00040F09C01205F31092031310508F060C004 +:1007D0005CC09C01A1C0853A910509F45FC0863ACE +:1007E000910509F45EC023E830E496C0883A91058B +:1007F00009F45AC0893A910509F459C08A3A910519 +:1008000009F458C08B3A910509F457C08C3A910508 +:1008100009F456C08D3A910509F455C0803B910505 +:1008200009F454C08E3A910509F453C08F3A9105EA +:1008300009F452C0813B910509F451C0823B9105F6 +:1008400009F450C0833B910509F44FC0843B9105E6 +:1008500009F44EC0853B910509F44DC0863B9105D6 +:1008600009F44CC0873B910509F44BC0883B9105C6 +:1008700009F44AC0893B910509F449C08A3B9105B6 +:1008800009F048C02AE236E447C09C01306544C004 +:1008900020E030E041C021E030E03EC021E830E41B +:1008A0003BC022E830E438C022EE34E435C029EE03 +:1008B00034E432C02AEE34E42FC025EB34E42CC0FB +:1008C00026EB34E429C027EB34E426C02CEC34E4D6 +:1008D00023C02DEC34E420C023E835E41DC02AE811 +:1008E00035E41AC022E935E417C024E935E414C020 +:1008F00021E236E411C023E236E40EC024E236E4FD +:100900000BC025E236E408C026E236E405C027E243 +:1009100036E402C020E034E4C90108959CE0799FE8 +:10092000F00111249CE3899FE00DF11D1124E60FD5 +:10093000F11DEE0FFF1FE25DFE4F25913491C901BD +:100940000895880F991F82559040FC01259134919C +:10095000C9010895880F991F825D9E4FFC01259162 +:100960003491C90108950E948E049C019A958115C5 +:100970009F4110F4C9010895C90190528115904119 +:1009800028F4C9019F700E94AA040895C9019053D8 +:100990008115904120F4C9019927906C0895C901EF +:1009A0009054409728F4C9018F709927946D089549 +:1009B000203180E4380719F480E091ED0895213169 +:1009C00090E4390719F480E090ED0895223140E475 +:1009D000340719F480E092ED0895233180E438075C +:1009E00019F480E093ED0895211590E53907A1F4FD +:1009F0000E948B2340E065E088E491E00E94880F2C +:100A00002FEF44E38CE0215040408040E1F700C0EC +:100A100000000E944F2A1EC1213090E5390731F4B1 +:100A20008091F10281608093F10214C1C901905557 +:100A30008115904108F062C0432F55274F7055270C +:100A400041305105F9F4C90174E0880F991F7A9576 +:100A5000E1F788279370B901E3E0660F771FEA9505 +:100A6000E1F760767727862B972B9C6823703327D6 +:100A700002C0440F551F2A95E2F74F715527842B6A +:100A8000952B08954230510529F4922F8827816FC4 +:100A9000906A089543305105B9F4C90153E0880FB5 +:100AA000991F5A95E1F7807E97702370332741E0B4 +:100AB00050E002C0440F551F2A95E2F74F715527A9 +:100AC000842B952B9C6808954430510589F5C90104 +:100AD00043E0880F991F4A95E1F7807E9770237055 +:100AE000332741E050E002C0440F551F2A95E2F73A +:100AF0004F715527842B952B9A680895C9019056FC +:100B00008115904118F4C901906F0895C90190575B +:100B10008115904120F4C9019F7090620895C90128 +:100B200090588115904120F4C9019F70906A0895F2 +:100B3000203E3105E0F4203C310568F521333105D4 +:100B400009F475C048F42932310509F46BC02A3222 +:100B5000310509F07BC075C02933310501F1223818 +:100B60003105E9F02533310509F070C051C0233E4D +:100B70003105B1F140F4203E3105D1F0223E31057E +:100B800009F064C01CC0263E310579F1273E3105CD +:100B900009F05CC038C0C9010E94A1040895809189 +:100BA000020380FD02C081FF51C080EE90E04FC083 +:100BB0008091020380FFF9CF89E390E048C08091E3 +:100BC000020382FF0AC08091020384FF03C080E019 +:100BD00090E03DC083EE90E03AC082EE90E037C0F6 +:100BE0008091020382FFEFCFF8CF8091020383FF51 +:100BF00007C08091020384FDEACF87EE90E027C012 +:100C000086EE90E024C08091020383FFF2CFF8CFFC +:100C10008091020385FF03C089E290E018C085E35C +:100C200090E015C08091020385FDF9CFF5CF80914A +:100C3000020386FF03C08AE290E009C081E390E0EE +:100C400006C08091020386FDF9CFF5CFC9010E944D +:100C5000CA030895089508950C942B065F926F922D +:100C60007F928F929F92AF92BF92CF92DF92EF923C +:100C7000FF920F931F93CF93DF93CDB7DEB72A97E1 +:100C80000FB6F894DEBF0FBECDBF9E012F5F3F4F62 +:100C90004E018BE0880E911C60E070E000E010E0F7 +:100CA000E12CF12CC12CD12CA12CB12C8AE0782E76 +:100CB000622E532E41E050E0E3E9F1E0A62DB52D80 +:100CC000872D01900D928A95E1F7F901819191911B +:100CD0009F01FC01E07FFF27E032F10559F48F709E +:100CE0009927FA0102C0EE0FFF1F8A95E2F7AE2A9C +:100CF000BF2A37C0E033F10559F48F709927FA0104 +:100D000002C0EE0FFF1F8A95E2F7CE2ADF2A29C024 +:100D1000E034F10559F48F709927FA0102C0EE0F03 +:100D2000FF1F8A95E2F7EE2AFF2A1BC0E035F10586 +:100D300059F48F709927FA0102C0EE0FFF1F8A95B0 +:100D4000E2F70E2B1F2B0DC0E036F10551F48F702A +:100D50009927FA0102C0EE0FFF1F8A95E2F76E2B6A +:100D60007F2B2815390509F0A7CF94B18A2D8095DE +:100D7000892384B985B18A2985B997B18C2D80954D +:100D8000892387B988B18C2988B99AB18E2D80952D +:100D900089238AB98BB18E298BB99DB1802F80951B +:100DA00089238DB98EB1802B8EB990B3862F809513 +:100DB000892380BB81B3862B81BB2A960FB6F8941A +:100DC000DEBF0FBECDBFDF91CF911F910F91FF907E +:100DD000EF90DF90CF90BF90AF909F908F907F90DB +:100DE0006F905F9008955F926F927F928F929F9223 +:100DF000AF92BF92CF92DF92EF92FF920F931F9329 +:100E0000CF93DF93CDB7DEB768970FB6F894DEBF08 +:100E10000FBECDBF85B7806885BF85B7806885BFA9 +:100E20000E942E069E012F5F3F4F4E0189E1880EE2 +:100E3000911C60E070E000E010E0E12CF12CC12C8E +:100E4000D12CA12CB12C98E1792E622E532E41E0A9 +:100E500050E0EDE9F1E0A62DB52D872D01900D9222 +:100E60008A95E1F7F901819191919F01FC01E07F61 +:100E7000FF27E032F10559F48F709927FA0102C07B +:100E8000EE0FFF1F8A95E2F7AE2ABF2A37C0E03384 +:100E9000F10559F48F709927FA0102C0EE0FFF1F78 +:100EA0008A95E2F7CE2ADF2A29C0E034F10559F409 +:100EB0008F709927FA0102C0EE0FFF1F8A95E2F7A3 +:100EC000EE2AFF2A1BC0E035F10559F48F709927EF +:100ED000FA0102C0EE0FFF1F8A95E2F70E2B1F2BBF +:100EE0000DC0E036F10551F48F709927FA0102C068 +:100EF000EE0FFF1F8A95E2F76E2B7F2B2815390521 +:100F000009F0A7CF94B18A2D8095892384B985B142 +:100F10008A2985B997B18C2D8095892387B988B1A5 +:100F20008C2988B99AB18E2D809589238AB98BB185 +:100F30008E298BB99DB1802F809589238DB98EB173 +:100F4000802B8EB990B3862F8095892380BB81B387 +:100F5000862B81BB10922902109228021092330234 +:100F60001092320210922B0210922A021092350235 +:100F70001092340210922D0210922C02109237021D +:100F80001092360210922F0210922E021092390205 +:100F900010923802109231021092300210923B02ED +:100FA00010923A0268960FB6F894DEBF0FBECDBF1E +:100FB000DF91CF911F910F91FF90EF90DF90CF9035 +:100FC000BF90AF909F908F907F906F905F900C94A8 +:100FD00083035F926F927F928F929F92AF92BF92A4 +:100FE000CF92DF92EF92FF920F931F93CF93DF93F5 +:100FF000CDB7DEB7A2970FB6F894DEBF0FBECDBF58 +:101000007E0149E1E40EF11C22E3C22E22E0D22E41 +:101010005E0153E2A50EB11C3AE0532E470101E0F8 +:1010200010E048E1642E55E0752EE3E9F1E0D401CB +:10103000852D01900D928A95E1F7F70181919191AB +:101040007F019C01207F33272032310589F424B1B0 +:101050008F709927A80102C0440F551F8A95E2F7A7 +:10106000CA01242B24B995B18095892385B94FC035 +:101070002033310589F427B18F709927F80102C018 +:10108000EE0FFF1F8A95E2F7CF012E2B27B998B1FB +:101090008095892388B93BC02034310589F42AB171 +:1010A0008F709927A80102C0440F551F8A95E2F757 +:1010B000CA01242B2AB99BB1809589238BB927C0FB +:1010C0002035310589F42DB18F709927F80102C0C0 +:1010D000EE0FFF1F8A95E2F7CF012E2B2DB99EB19F +:1010E000809589238EB913C02036310581F420B351 +:1010F0008F709927A80102C0440F551F8A95E2F707 +:10110000CA01242B20BB91B38095892381BB50EA6F +:101110005A95F1F7BE016F5F7F4F80E090E020E0CD +:1011200030E0EDE9F1E0DE011196462D01900D92DF +:101130004A95E1F7FB0141915191BF01FA01E07F2E +:10114000FF27E032F10511F4E3B113C0E033F105FC +:1011500011F4E6B10EC0E034F10511F4E9B109C0B3 +:10116000E035F10511F4ECB104C0E036F105B9F455 +:10117000EFB1F0E04F70552702C0F595E7954A951D +:10118000E2F7E0FD08C0A801022E02C0440F551F7F +:101190000A94E2F702C040E050E0842B952B2F5FC9 +:1011A0003F4F2C30310509F0BCCFF6012081318151 +:1011B0002817390721F091838083709270010E9473 +:1011C0002E06F2E0CF0ED11CEA14FB0409F02DCF5D +:1011D000809170018823A1F1815080937001882350 +:1011E00039F08FE99FE00197F1F700C0000028C0B7 +:1011F00080913202909133029093290280932802C9 +:10120000809134029091350290932B0280932A02B0 +:10121000809136029091370290932D0280932C0298 +:10122000809138029091390290932F0280932E0280 +:1012300080913A0290913B02909331028093300268 +:101240000E94890381E0A2960FB6F894DEBF0FBE1C +:10125000CDBFDF91CF911F910F91FF90EF90DF9065 +:10126000CF90BF90AF909F908F907F906F905F9046 +:101270000895E82FF0E0EE0FFF1FE85DFD4F80813D +:10128000918108950895CF92DF92EF92FF920F938C +:101290001F93CF93DF93CDB7DEB7CC5BD2400FB6B1 +:1012A000F894DEBF0FBECDBF8C01862F642F88233C +:1012B00079F0F80192812FE7482F992329F084E0F3 +:1012C00093E00E94EC1904C084E093E00E94FC19B2 +:1012D000F80180818B3091F59181943009F0A8C29A +:1012E0009281809173019923B1F08F5F8093730194 +:1012F00096E4E5EBF1E0DE01A958BD4F01900D92B7 +:101300009A95E1F7E0917101F0917201EE0FFF1FE4 +:1013100027E732E036C096E4E5EBF1E0DE01AF5CB2 +:10132000BD4F01900D929A95E1F7E0917101F09116 +:101330007201EE0FFF1F21E332E093C08A3009F003 +:10134000CBC0F8019181943009F072C292818091F2 +:101350007301992309F473C081508093730196E45B +:10136000E5EBF1E0DE01A551BE4F01900D929A959B +:10137000E1F7E0917101F0917201EE0FFF1F2BEE8A +:1013800031E02C0F3D1FE20FF31F60817181680F68 +:10139000711D882777FD8095982F0E94003220E0EC +:1013A00030E040E451E40E94653120E030E040E864 +:1013B00050E40E94FD309B01AC0160E070E080E0F1 +:1013C00090E40E94173321E230ED42E053E40E94A2 +:1013D000B4324CE050E00E94E30F20E04BE760E0C5 +:1013E00084E093E00E94DC1920E04BE761E084E0B8 +:1013F00093E00E94DC1920E04BE762E084E093E098 +:101400000E94DC1920E04BE763E084E093E00E9457 +:10141000DC1920E04BE764E084E093E0C454DD4F46 +:101420000FB6F894DEBF0FBECDBFDF91CF911F91F5 +:101430000F91FF90EF90DF90CF900C94DC1996E421 +:10144000E5EBF1E0DE01AB55BE4F01900D929A95B0 +:10145000E1F7E0917101F0917201EE0FFF1F25EAB3 +:1014600031E02C0F3D1FE20FF31F60817181680F87 +:10147000711D882777FD8095982F0E94003220E00B +:1014800030E040E451E40E94653120E030E040E883 +:1014900050E40E94FD309B01AC0160E070E080E010 +:1014A00090E40E94173321E230ED42E053E40E94C1 +:1014B000B4320E94130DC454DD4F0FB6F894DEBF52 +:1014C0000FBECDBFDF91CF911F910F91FF90EF9095 +:1014D000DF90CF900C94E60C893009F0D3C0F8016E +:1014E0009181943009F0A4C19281992309F4A0C19B +:1014F0008091710190917201019690937201809395 +:10150000710120E04BE760E084E093E00E94DC1989 +:1015100020E04BE761E084E093E00E94DC1920E0EA +:101520004BE762E084E093E00E94DC1920E04BE7A7 +:1015300063E084E093E00E94DC1920E04BE764E084 +:1015400084E093E00E94DC190E94E60C00E010E0C9 +:10155000E6E4FE2E80917301E5EBF1E0DE01A15A95 +:10156000BE4F9F2D01900D929A95E1F7E091710188 +:10157000F0917201E00FF11FEE0FFF1F2FE531E038 +:101580002C0F3D1FE20FF31F60817181680F711DE9 +:10159000882777FD8095982F0E94003220E030E068 +:1015A00040E451E40E94653120E030E040E850E43E +:1015B0000E94FD309B01AC0160E070E080E090E4AF +:1015C0000E94173321E230ED42E053E40E94B4322E +:1015D0004CE050E00E94E30F3FEF87EE93E0315084 +:1015E00080409040E1F700C0000080917301E5EB7E +:1015F000F1E0DE01A75EBE4F9F2D01900D929A95FE +:10160000E1F7E0917101F0917201E00FF11FEE0F2F +:10161000FF1F29E131E02C0F3D1FE20FF31F608116 +:101620007181680F711D882777FD8095982F0E9422 +:10163000003220E030E040E451E40E94653120E0D7 +:1016400030E040E850E40E94FD309B01AC0160E0D6 +:1016500070E080E090E40E94173321E230ED42E038 +:1016600053E40E94B4320E94130D8FEF9CE7019760 +:10167000F1F700C000000F5F1F4F0830110509F09F +:1016800069CF94C1883009F0D3C0F80191819430BA +:1016900009F0CEC09281992309F4CAC080917101EA +:1016A000909172010197909372018093710120E0F3 +:1016B0004BE760E084E093E00E94DC1920E04BE718 +:1016C00061E084E093E00E94DC1920E04BE762E0F7 +:1016D00084E093E00E94DC1920E04BE763E084E0C3 +:1016E00093E00E94DC1920E04BE764E084E093E0A3 +:1016F0000E94DC190E94E60C00E010E056E4F52E92 +:1017000080917301E5EBF1E0DE01AD52BF4F9F2DFB +:1017100001900D929A95E1F7E0917101F0917201BB +:10172000E00FF11FEE0FFF1F23ED30E02C0F3D1FE8 +:10173000E20FF31F60817181680F711D882777FDAB +:101740008095982F0E94003220E030E040E451E480 +:101750000E94653120E030E040E850E40E94FD3016 +:101760009B01AC0160E070E080E090E40E941733E0 +:1017700021E230ED42E053E40E94B4324CE050E00C +:101780000E94E30F3FEF87EE93E03150804090409E +:10179000E1F700C0000080917301E5EBF1E0DE01AC +:1017A000A357BF4F9F2D01900D929A95E1F7E091BD +:1017B0007101F0917201E00FF11FEE0FFF1F2DE894 +:1017C00030E02C0F3D1FE20FF31F60817181680F25 +:1017D000711D882777FD8095982F0E94003220E0A8 +:1017E00030E040E451E40E94653120E030E040E820 +:1017F00050E40E94FD309B01AC0160E070E080E0AD +:1018000090E40E94173321E230ED42E053E40E945D +:10181000B4320E94130D8FEF9CE70197F1F700C0DF +:1018200000000F5F1F4F0830110509F069CFBEC0DF +:10183000F801228190917301222309F45DC026E40E +:10184000E5EBF1E0DE01A95BBF4F01900D922A9517 +:10185000E1F7E0917101F0917201E80FF11DEE0FD7 +:10186000FF1F27E430E02C0F3D1FE20FF31F6081C4 +:101870007181690F711D882777FD8095982F0E94CF +:10188000003220E030E040E451E40E9465316B0119 +:101890007C01F801818165E070E0681B710988278F +:1018A00077FD8095982F0E9400329B01AC01C70103 +:1018B000B6010E94FD309B01AC0160E070E080E069 +:1018C00090E40E94173321E230ED42E053E40E949D +:1018D000B4324FE050E0C454DD4F0FB6F894DEBF91 +:1018E0000FBECDBFDF91CF911F910F91FF90EF9071 +:1018F000DF90CF900C94E30F26E4E5EBF1E0DE01FE +:10190000119601900D922A95E1F7E0917101F09105 +:101910007201E80FF11DEE0FFF1F21E030E02C0FE8 +:101920003D1FE20FF31F60817181690F711D8827D0 +:1019300077FD8095982F0E94003220E030E040E44F +:1019400051E40E9465316B017C01F801818165E001 +:1019500070E0681B7109882777FD8095982F0E9499 +:1019600000329B01AC01C701B6010E94FD309B0112 +:10197000AC0160E070E080E090E40E94173321E267 +:1019800030ED42E053E40E94B432C454DD4F0FB650 +:10199000F894DEBF0FBECDBFDF91CF911F910F91A5 +:1019A000FF90EF90DF90CF900C94130DC454DD4F57 +:1019B0000FB6F894DEBF0FBECDBFDF91CF911F9160 +:1019C0000F91FF90EF90DF90CF90089510928702D3 +:1019D00010928602809171008D7F809371008091BA +:1019E00090008F77809390001092480210924702E7 +:1019F0001092800210928102109282021092830251 +:101A000010927F0210927E02EEE5F2E0AEE4B2E0C8 +:101A100011921192119211921D921D9282E0EE3755 +:101A2000F807B1F708956F927F928F929F92AF92CD +:101A3000BF92CF92DF92EF92FF920F931F93CF93BB +:101A4000DF936B017C010EE712E04CE5A42E42E02F +:101A5000B42EC7E0D0E0A7019601F80192918291DF +:101A6000729162918F010E946131882349F0219720 +:101A7000F2E0AF1AB108CF3F8FEFD80761F734C05B +:101A8000F8011082118212821382F50111821082F4 +:101A9000FE01EE0FFF1FEE0FFF1FE25AFD4FDE01AA +:101AA000AA0FBB1FA25BBD4FCE011AC00196448195 +:101AB0005581668177814083518362837383148269 +:101AC00015821682178212962D913C9113971196CA +:101AD0003C932E9313961C921E9212973496129654 +:101AE0008730910519F7C3CF8091860290918702C4 +:101AF000019797FD05C0909387028093860204C0EA +:101B00001092870210928602E0918602F09187027D +:101B10003097C9F4809171008D7F8093710080911E +:101B200090008F7780939000109280021092810233 +:101B3000109282021092830210927F0210927E0213 +:101B40001092470285C03197DF01AA0FBB1FAA0F71 +:101B5000BB1FA25ABD4FCD90DD90ED90FC90EE0FD3 +:101B6000FF1FE25BFD4FC081D181609080027090C9 +:101B700081028090820290908302A7019601662DD7 +:101B8000772D882D992D0E94613187FF25C0262D44 +:101B9000372D482D592DC701B6010E94FC3020E099 +:101BA00030E04AEF54E40E9465315B018C012A2D3C +:101BB0003B2D402F512F662D772D882D992D0E947A +:101BC000FD303B014C01A7019601772D992D0E9414 +:101BD0006131181664F72EC0A7019601662D772D86 +:101BE000882D992D0E94B032181634F5A701960160 +:101BF000662D772D882D992D0E94FC3020E030E055 +:101C00004AEF54E40E9465315B018C012A2D3B2D83 +:101C1000402F512F662D772D882D992D0E94FC3055 +:101C20003B014C01A7019601772D992D0E94B032FE +:101C300087FFECCF10924D02C0928002D0928102B9 +:101C4000E0928202F0928302D0937F02C0937E02E0 +:101C5000DF91CF911F910F91FF90EF90DF90CF9088 +:101C6000BF90AF909F908F907F906F9008953E9A15 +:101C7000E1E7F0E080818D7F808382E080939000B7 +:101C80008AE18093910008951F920F920FB60F92F0 +:101C90001124CF92DF92EF92FF922F933F934F93B5 +:101CA0005F936F937F938F939F93AF93BF93CF93E4 +:101CB000DF93EF93FF9380914702882309F479C063 +:101CC00020E030E0A9016091800270918102809152 +:101CD0008202909183020E94B03218160CF069C003 +:101CE00020E030E040E251E46091490270914A0204 +:101CF00080914B0290914C020E94B0321816BCF4B5 +:101D00008091840290918502019660918602709183 +:101D100087020E949C3490938502809384021092E3 +:101D2000490210924A0210924B0210924C02C0914A +:101D30008402D0918502CC0FDD1FCC0FDD1FC25A6B +:101D4000DD4F288139814A815B8160E074E284E75C +:101D50009BE40E9465310E94CD317093970060939F +:101D60009600288139814A815B8160E074E284E7D2 +:101D70009BE40E9465310E94CD3175956795709303 +:101D800099006093980020E030E040E85FE36091C4 +:101D9000490270914A0280914B0290914C020E943C +:101DA000FD306093490270934A0280934B029093F6 +:101DB0004C0280914802882309F493C0C0904302EA +:101DC000D0904402E0904502F090460220E030E0DE +:101DD000A901C701B6010E94B0321816F4F4A70198 +:101DE000960160E074E284E79BE40E9465310E9402 +:101DF000CD317093970060939600A701960160E043 +:101E000074E284E79BE40E9465310E94CD317595B0 +:101E10006795709399006093980060913D0270916E +:101E20003E026F5F7F4F70933E0260933D0280E001 +:101E300090E00E94FE3120913F023091400240919B +:101E40004102509142020E94B03287FD4AC0809107 +:101E50003C028F5F80933C029091F1038917A0F0C0 +:101E60008091F603882319F010923C020DC08091F6 +:101E700071008D7F80937100809190008F778093A7 +:101E80009000109248022DC0E091F203F091F3030C +:101E900080913C0298E0899FE00DF11D1124808122 +:101EA0009181A281B3818093430290934402A093D5 +:101EB0004502B093460220E030E040E85EE36481F2 +:101EC0007581868197810E94B43260933F0270933E +:101ED0004002809341029093420210923E0210927F +:101EE0003D02FF91EF91DF91CF91BF91AF919F9113 +:101EF0008F917F916F915F914F913F912F91FF90C3 +:101F0000EF90DF90CF900F900FBE0F901F9018951D +:101F10000F931F93CF93DF9300D0CDB7DEB78C0123 +:101F200080914702882331F04A8369830E94E60C3E +:101F300069814A8181E0809348021093F303009302 +:101F4000F2036093F1034093F6031092490210925A +:101F50004A0210924B0210924C0210923C02F8017D +:101F600040815181628173814093430250934402C6 +:101F7000609345027093460220E030E040E85EE363 +:101F800064817581868197810E94B43260933F029B +:101F900070934002809341029093420210923E025D +:101FA00010923D0280917100826080937100809157 +:101FB00090008068809390000F900F90DF91CF91F8 +:101FC0001F910F9108956F927F928F929F92AF927F +:101FD000BF92CF92DF92EF92FF920F931F93CF9316 +:101FE000DF936B017C01EA018091480281110E941C +:101FF000E60C81E08093470220E030E0A901C701B0 +:10200000B6010E94B03218160CF09AC0609080029F +:1020100070908102809082029090830220E030E0F4 +:10202000A901662D772D882D992D0E94613181118E +:1020300028C0C0928002D0928102E0928202F09287 +:102040008302D0937F02C0937E028091860290919A +:102050008702FC01EE0FFF1FEE0FFF1FE25AFD4F3C +:10206000C082D182E282F382FC01EE0FFF1FE25BAD +:10207000FD4FD183C083019690938702809386029F +:102080005FC0A7019601662D772D882D992D0E949E +:10209000613187FF25C0262D372D482D592DC701C9 +:1020A000B6010E94FC3020E030E04AEF54E40E9488 +:1020B00065315B018C012A2D3B2D402F512F662D60 +:1020C000772D882D992D0E94FD303B014C01A701F1 +:1020D0009601772D992D0E946131181664F7A9CFCA +:1020E000A7019601662D772D882D992D0E94B0327B +:1020F00018160CF09ECFA7019601662D772D882D1E +:10210000992D0E94FC3020E030E04AEF54E40E9418 +:1021100065315B018C012A2D3B2D402F512F662DFF +:10212000772D882D992D0E94FC303B014C01A70191 +:102130009601772D992D0E94B03287FFECCF79CF91 +:10214000809171008260809371008091900080681E +:1021500080939000DF91CF911F910F91FF90EF90AE +:10216000DF90CF90BF90AF909F908F907F906F90B7 +:102170000895809191020895CF93DF9300D01F922C +:10218000CDB7DEB72091FB03243021F523E029836E +:102190009B838A832093E9008FEF06C095ED9A9583 +:1021A000F1F70000882329F09091E800815095FF15 +:1021B000F5CF8091E80085FF0DC040E050E063E07E +:1021C00070E0CE0101960E94A6148091E8008E77FF +:1021D0008093E8000F900F900F90DF91CF910895BA +:1021E000CF93DF9300D01F92CDB7DEB72091FB03D2 +:1021F000243029F522E029839B838A8383E080931E +:10220000E9008FEF06C095ED9A95F1F7000088235D +:1022100029F09091E800815095FFF5CF8091E8007A +:1022200085FF0DC040E050E063E070E0CE01019614 +:102230000E94A6148091E8008E778093E8000F90AA +:102240000F900F90DF91CF9108952091FB032430E0 +:10225000F9F422E02093E9002FEF06C035ED3A951E +:10226000F1F70000222329F03091E800215035FFDA +:10227000F5CF2091E80025FF0BC040E050E065E07D +:1022800070E00E94A6148091E8008E778093E800A9 +:102290000895CF93DF93EC018091FB03843041F5E7 +:1022A00081E08093E9008FEF06C095ED9A95F1F7F4 +:1022B0000000882329F09091E800815095FFF5CF28 +:1022C0008091E80085FF14C040E050E068E070E0D5 +:1022D000CE010E94A6148091E8008E778093E800DA +:1022E00088E0FE01A9E8B2E001900D928A95E1F73D +:1022F000DF91CF910895BF92CF92DF92EF92FF923C +:102300000F931F93CF93DF937C01B62EE90100E07A +:1023100010E0C42ED12C0BC04991202F2B0D2F770C +:102320004F776FE0C7010E94DC190F5F1F4F0C153C +:102330001D0594F3DF91CF911F910F91FF90EF90C6 +:10234000DF90CF90BF90089570E06F5F7F4F6F7008 +:1023500077270C94DC190F931F93CF93C42F63300E +:10236000710509F04AC0842F807F803849F1803997 +:1023700009F043C0622F6F7770E080E090E00E9428 +:10238000003220E030E040E451E40E9465319B01DE +:10239000AC0160E070E080E090E40E9417330F77BA +:1023A00010E023E0159507952A95E1F72DEC3CEC1C +:1023B00042E053E40E94B432A8010E94E30F1DC022 +:1023C000622F6F7770E080E090E00E94003220E0A2 +:1023D00030E040E451E40E9465319B01AC0160E0D3 +:1023E00070E080E090E40E9417332DEC3CEC42E07A +:1023F00053E40E94B4320E94130DCC3F29F4CF91D4 +:102400001F910F910C94E60CCF911F910F9108959D +:102410000F931F93CF93DF93CDB7DEB727970FB6F8 +:10242000F894DEBF0FBECDBF8C0114C08A810E941C +:10243000B6199A819D839B819E839C819F83811184 +:102440001EC089818430B1F08730A1F08630A1F0C0 +:102450008530A1F0BE016F5F7F4F84E791E00E945D +:10246000231D8111E3CF84E791E00E94141D0E9497 +:102470008F190DC083E003C082E001C081E0AE018E +:102480004B5F5F4F682FC8010E94491AE3CF279620 +:102490000FB6F894DEBF0FBECDBFDF91CF911F9175 +:1024A0000F910895EF92FF920F93CF93DF9300D097 +:1024B00000D000D0CDB7DEB77B014A832B830C83DD +:1024C000842F2E834D830E94B6192E814D81811158 +:1024D0001BC082E0E816F10479F083E0E816F1040D +:1024E00021F0EA94EF2821F50BC0073F11F487E0B3 +:1024F00001C084E089830BC0273FD9F786E0FACF7B +:10250000473FB9F785E0F6CF42954F704983BE014A +:102510006F5F7F4F84E791E00E94D91C84E791E0D0 +:102520000E94F71C84E791E00E94141D0E948F19FD +:1025300026960FB6F894DEBF0FBECDBFDF91CF91C8 +:102540000F91FF90EF9008958091FA03811109C0D7 +:102550000E9495160E94F2168091E200846080939A +:10256000E20008951092FA030895089508950C94D6 +:10257000B229809192028F5F8093920262E30E945F +:102580007C34911135C0109292028091930288237D +:1025900079F18091FB03843049F58091E9008F70D7 +:1025A0009091EC0090FF02C090E801C090E0982B61 +:1025B00084E08093E9008091EB0080FF14C080915B +:1025C000EE0087FD03C00FC01092F1008091E8007B +:1025D00085FDFACF8091E80080FF05C08091E8007A +:1025E0008E778093E8009F709093E9001092930299 +:1025F000089542E061EC81E00E940B1642E061EC3C +:1026000082E00E940B1642E061EC83E00E940B1610 +:1026100042E261EC84E00E940B1642E361E885E04F +:102620000E940B1642E360E886E00C940B16809142 +:10263000FD03833009F454C030F4813071F08230EE +:1026400009F0A5C08CC08A3009F479C08B3009F438 +:102650005FC0893009F09BC020C08091FC03813AA3 +:1026600009F095C08091E800877F8093E800809111 +:10267000000490910104892B21F060E080E090E05B +:1026800003C068E089E892E070E00E944415809100 +:10269000E8008B778093E80008958091FC038132F5 +:1026A00009F075C08091000490910104892B09F014 +:1026B0006EC08091E800877F8093E80005C080911C +:1026C000FB03882309F463C08091E80082FFF7CF01 +:1026D0008091F100809391028091E8008B7753C044 +:1026E0008091FC03813A09F052C0809100049091DE +:1026F0000104892B09F04BC08091E800877F80930B +:10270000E8008091E80080FFFCCF80918A0136C00C +:102710008091FC038132D9F58091000490910104ED +:10272000892BA9F58091E800877F8093E8000E94BB +:1027300042168091FE0380938A010C948B23809132 +:10274000FC03813221F58091E800877F8093E800C7 +:102750000E9442168091FF03809388020895809121 +:10276000FC03813AA1F48091E800877F8093E80020 +:102770008091E80080FFFCCF809188028093F10077 +:102780008091E8008E778093E8000C9442160895BB +:1027900084E093E00E94181A62E572E184E093E01D +:1027A0000E946E1A68E072E184E093E00E94721A5F +:1027B00084B7877F84BF88E10FB6F8948093600068 +:1027C000109260000FBE90E080E80FB6F8948093FE +:1027D0006100909361000FBE0E949C1D0E9495169F +:1027E0000E94F2168091E20084608093E200789467 +:1027F0006BEA71E184E093E00E94141A64EA71E1EB +:1028000084E093E00E940C1A6BE771E184E093E0AE +:102810000E94101A0E94370E0E948F190E949E1D5E +:1028200080E891E00E94481D0BC00E946C298091B5 +:10283000F903882329F00E949A2981110E9490149B +:102840008091FB03853089F384E093E00E94211C92 +:102850000E94A81DF5CF292F332723303105B1F071 +:102860004CF42130310509F44DC02230310509F016 +:102870004EC007C02132310541F12232310591F1BC +:1028800046C0E0EDF0E08CE594E045C0992781304A +:10289000910569F08230910589F0892B09F037C0E4 +:1028A000E8E5F4E0E491F0E088E594E034C0EAE2A1 +:1028B000F4E0E491F0E08AE294E02DC0EEEFF3E082 +:1028C000E491F0E08EEF93E026C0643000F5E62F4F +:1028D000F0E0EE0FFF1FE550FE4F80819181E9E0AF +:1028E000F0E019C0643098F4E62FF0E0DF01AA0FA1 +:1028F000BB1FAD5FBD4F8D919C91E55FFD4FE081AA +:10290000F0E009C0E2E1F0E08CE295E004C0E0E034 +:10291000F0E080E090E0DA018D939C93CF01089580 +:1029200080E189BD82E189BD09B400FEFDCF8091BF +:10293000D8008F7D8093D8008091E00082608093E2 +:10294000E0008091E00081FDFCCF0895BF92CF921E +:10295000DF92EF92FF920F931F93CF93DF937C014F +:102960008B01EA010E946316B82E811133C02097B3 +:1029700031F028813981021B130BE20EF31EC12CAA +:10298000D12C23C08091E80085FD15C08091E8001E +:102990008E778093E800209749F0888199818C0D8B +:1029A0009D1D9983888325E0B22E14C00E94631672 +:1029B000882359F00EC0F70181917F018093F100C7 +:1029C00001501109FFEFCF1ADF0A01151105D1F6E9 +:1029D00001C0B82E8B2DDF91CF911F910F91FF90E9 +:1029E000EF90DF90CF90BF900895BF92CF92DF928B +:1029F000EF92FF920F931F93CF93DF937C018B0194 +:102A0000EA010E946316B82E811133C0209731F07D +:102A100028813981021B130BE20EF31EC12CD12C2D +:102A200023C08091E80085FD15C08091E8008B7778 +:102A30008093E800209749F0888199818C0D9D1D35 +:102A40009983888345E0B42E14C00E9463168823BE +:102A500059F00EC08091F100F70181937F01015080 +:102A60001109FFEFCF1ADF0A01151105D1F601C0D8 +:102A7000B82E8B2DDF91CF911F910F91FF90EF908A +:102A8000DF90CF90BF9008954091020450910304CD +:102A90004617570748F06115710539F44091E80071 +:102AA0004E774093E80001C0BA01FC0140E033C01A +:102AB0008091FB03882309F444C0853009F443C0A6 +:102AC0008091E80083FD41C08091E80082FD33C021 +:102AD0008091E80080FF1FC09091F3008091F20088 +:102AE000392F20E0A901482BCA0106C0419140932B +:102AF000F1006150710901966115710519F0883076 +:102B00009105A0F341E0089709F040E08091E800CA +:102B10008E778093E8006115710551F64111C8CF99 +:102B20000AC08091FB03882361F0853061F08091B9 +:102B3000E80083FD0AC08091E80082FFF2CF80E0C8 +:102B4000089582E0089583E0089581E0089540911A +:102B50000204509103044617570748F061157105A8 +:102B600039F44091E8004E774093E80001C0BA0183 +:102B7000FC0140E034C08091FB03882309F445C088 +:102B8000853009F444C08091E80083FD42C0809103 +:102B9000E80082FD34C08091E80080FF20C0909161 +:102BA000F3008091F200392F20E0A901482BCA01DF +:102BB00007C044914093F10031966150710901962C +:102BC0006115710519F08830910598F341E0089777 +:102BD00009F040E08091E8008E778093E80061156D +:102BE000710549F64111C7CF0AC08091FB038823C4 +:102BF00061F0853061F08091E80083FD0AC080912A +:102C0000E80082FFF2CF80E0089582E0089583E03B +:102C1000089581E00895982F2CC09093E9009817AB +:102C200039F07091EC002091ED005091F00003C05C +:102C3000242F762F50E021FD02C09F5F1AC03091F3 +:102C4000EB003E7F3093EB003091ED003D7F309301 +:102C5000ED003091EB0031603093EB007093EC00AD +:102C60002093ED005093F0002091EE0027FDE5CF7A +:102C700007C0973090F28F708093E90081E008954B +:102C800080E008958091FC0387FD05C08091E800F5 +:102C900080FF0EC012C08091E80082FD05C08091C7 +:102CA000FB038111F8CF08958091E8008B7708C06D +:102CB0008091FB038111EACF08958091E8008E771F +:102CC0008093E80008958091E4009091E50045E646 +:102CD0002091EC0020FD1FC023C02091FB03222384 +:102CE00091F0253091F02091EB0025FD10C020914E +:102CF000E4003091E5002817390751F34150C9012C +:102D000039F784E0089582E0089583E0089581E032 +:102D1000089580E008952091E80020FFDECFF9CFEC +:102D20002091E80022FFD9CFF4CF0E9403170E9420 +:102D30000B17E0EEF0E0808181608083E8EDF0E049 +:102D400080818F77808319BCA7EDB0E08C918E7F56 +:102D50008C9380818F7E80831092FA0308950F9365 +:102D60001F93CF93DF930E9403170E940B17C8EDA8 +:102D7000D0E088818F778883888180688883888184 +:102D80008F7D888319BC1092FB031092F703109279 +:102D9000F9031092F80300EE10E0F80180818B7FB8 +:102DA000808388818160888342E060E080E00E94C7 +:102DB0000B16E1EEF0E080818E7F8083E2EEF0E0A2 +:102DC000808181608083808188608083F801808138 +:102DD0008E7F8083888180618883DF91CF911F916E +:102DE0000F910895E8EDF0E080818F7E8083E7ED1C +:102DF000F0E080818160808384E082BF81E0809305 +:102E0000FA030C94AF16E8EDF0E080818E7F8083AA +:102E10001092E20008951092DA001092E1000895F5 +:102E20001F920F920FB60F9211242F933F934F933F +:102E30005F936F937F938F939F93AF93BF93EF9322 +:102E4000FF938091E10082FF0BC08091E20082FF3E +:102E500007C08091E1008B7F8093E1000E94B9124E +:102E60008091DA0080FF1FC08091D80080FF1BC0D6 +:102E70008091DA008E7F8093DA008091D90080FF04 +:102E80000DC080E189BD82E189BD09B400FEFDCF9E +:102E900081E08093FB030E94A41205C019BC10922C +:102EA000FB030E94B2128091E10080FF19C0809163 +:102EB000E20080FF15C08091E2008E7F8093E200E7 +:102EC0008091E20080618093E2008091D80080626E +:102ED0008093D80019BC85E08093FB030E94B61252 +:102EE0008091E10084FF30C08091E20084FF2CC01B +:102EF00080E189BD82E189BD09B400FEFDCF8091EA +:102F0000D8008F7D8093D8008091E1008F7E8093E0 +:102F1000E1008091E2008F7E8093E2008091E200E8 +:102F200081608093E2008091F703882311F084E0B0 +:102F300007C08091E30087FF02C083E001C081E009 +:102F40008093FB030E94B7128091E10083FF29C0A8 +:102F50008091E20083FF25C08091E100877F80930C +:102F6000E10082E08093FB031092F7038091E1007F +:102F70008E7F8093E1008091E2008E7F8093E2005B +:102F80008091E20080618093E20042E060E080E0B6 +:102F90000E940B168091F00088608093F0000E94E0 +:102FA000B512FF91EF91BF91AF919F918F917F915A +:102FB0006F915F914F913F912F910F900FBE0F90A6 +:102FC0001F9018951F920F920FB60F9211242F93F6 +:102FD0003F934F935F936F937F938F939F93AF93A1 +:102FE000BF93CF93EF93FF938091E9008F709091FF +:102FF000EC0090FF02C090E801C090E0C92FC82B00 +:103000001092E9008091F000877F8093F00078941F +:103010000E9426181092E9008091F0008860809349 +:10302000F000CF70C093E900FF91EF91CF91BF9175 +:10303000AF919F918F917F916F915F914F913F9150 +:103040002F910F900FBE0F901F9018951F93CF9345 +:10305000DF93CDB7DEB7AC970FB6F894DEBF0FBEE7 +:10306000CDBFECEFF3E08091F100819324E0E430F8 +:10307000F207C9F70E9417138091E80083FF37C158 +:103080008091FC039091FD03953009F488C038F4D9 +:103090009130B1F170F0933009F029C131C098300E +:1030A00009F4F8C0993009F404C1963009F01FC141 +:1030B0009DC0803821F0823809F019C108C0809184 +:1030C000F8039091F903992389F082600FC08091F1 +:1030D0000004909101048F7099278093E9008091FA +:1030E000EB0085FB882780F91092E9009091E800B9 +:1030F000977F9093E8008093F1001092F100D5C083 +:10310000882319F0823009F0F2C08F7121F08230EB +:1031100009F0EDC00BC08091FE03813009F0E7C0DB +:10312000933009F080E08093F9032FC08091FE0373 +:1031300081112BC080910004909101048F70992718 +:10314000009709F4D4C08093E9002091EB0020FFA0 +:103150001CC02091FD03233021F48091EB0080629C +:1031600012C09091EB0090619093EB0021E030E071 +:1031700001C0220F8A95EAF72093EA001092EA0034 +:103180008091EB0088608093EB001092E9008091C1 +:10319000E800877F8093E8000E944216A8C0811152 +:1031A000A6C08091FE039091FF038F779927182F77 +:1031B0009091E3009078982B9093E3008091E80041 +:1031C000877F8093E8000E9442168091E80080FF8C +:1031D000FCCF8091E30080688093E300112311F01D +:1031E00083E001C082E08093FB0381C0805882307D +:1031F00008F07DC08091FE039091FF038C3D23E099 +:10320000920779F583E08A838AE289834FB7F8943D +:10321000DE01139620E03EE051E2E32FF0E0509310 +:103220005700E49120FF03C0E295EF703F5FEF701D +:103230008E2F90E0EA3010F0C79601C0C0968D93B3 +:103240009D932F5F243149F74FBF8091E800877F1E +:103250008093E8006AE270E0CE0101960E94441576 +:1032600013C0AE01455D5F4F609100040E942B14B6 +:103270000097E9F12091E800277F2093E800BC0146 +:103280008BA59CA50E94A7158091E8008B77809361 +:10329000E8002DC0803859F58091E800877F809341 +:1032A000E8008091F7038093F1008091E8008E7729 +:1032B00071CF81111CC09091FE039230C0F48091B7 +:1032C000E800877F8093E8009093F7030E944216FE +:1032D0008091F703811104C08091E30087FF02C051 +:1032E00084E001C081E08093FB030E94F912809189 +:1032F000E80083FF0AC08091E800877F8093E800A0 +:103300008091EB0080628093EB00AC960FB6F8944E +:10331000DEBF0FBECDBFDF91CF911F910895CF9338 +:103320008091FB038823B1F08091E9008F70909128 +:10333000EC0090FF02C090E801C090E0C92FC82BBC +:103340001092E9008091E80083FD0E942618CF705A +:10335000C093E900CF910895881F8827881F08959A +:1033600091E0883F08F490E0892F0895982F907F8E +:10337000903B99F038F4903981F0903A71F09038A0 +:10338000C9F40BC0903DA1F018F4903C99F410C022 +:10339000903E19F0903F71F402C083E00895E82F49 +:1033A000E15FEF3038F4F0E0E15FFD4F8081089598 +:1033B00082E0089580E008950F932F774F776F7024 +:1033C000606BDC01ED91FC91022F242F462F63E00E +:1033D00070E009950F9108950F932F774F776F70D5 +:1033E0006069DC01ED91FC91022F242F462F63E0F0 +:1033F00070E009950F9108950F932F774F776F70B5 +:103400006068DC01ED91FC91022F242F462F63E0D0 +:1034100070E009950F910895FC017383628308950C +:10342000FC01738F628F0895FC01758F648F08957E +:10343000CF93DF93EC011DA21FA21EA2BC01685D09 +:103440007F4F40EC88519F4F0E94551C1B821A826F +:103450001D821C821F821E82198618861B861A8670 +:103460001D861C861F861E86198A188A1B8A1A8A40 +:103470001D8A1C8A1F8A1E8A198E188E1B8E1A8E10 +:103480001D8E1C8E1F8E1E8E19A218A2DF91CF9149 +:103490000895CF92DF92FF920F931F93CF93DF9304 +:1034A0001F92CDB7DEB7F62E6A018C0108511F4F6F +:1034B00008C0F60161916F01C80149830E945C1C3C +:1034C00049818C2D841B8F15A0F30F90DF91CF9134 +:1034D0001F910F91FF90DF90CF900895FC017183B1 +:1034E00060830895FC0171A360A30895AF92BF9219 +:1034F000CF92DF92EF92FF920F931F93CF93DF93C0 +:1035000000D01F92CDB7DEB77C016B01142FB22E15 +:10351000A02EDC0195968C9195978430F1F45A9603 +:10352000ED91FC915B97309709F4D8C0CB010197DE +:1035300063E070E00E948834DB01AA0FBB1FA60F76 +:10354000B71F49832A830B834C2D4A1B9E012F5F93 +:103550003F4FBD01C7010995B1C06230710509F443 +:1035600053C06330710529F06130710509F09CC0CA +:1035700083C0842F807F803A01F130F48038B9F025 +:10358000803909F0ABC00DC0803EE9F0803F09F101 +:10359000803B09F0A3C0D7011296ED91FC911397DF +:1035A00023C0D7011496ED91FC9115971DC0D7014A +:1035B0001696ED91FC91179717C0D7011896ED91CB +:1035C000FC91199711C0D7011A96ED91FC911B97A8 +:1035D0000BC0423F09F082C0D7011C96ED91FC91CF +:1035E0001D97309731F47AC0309709F477C0123FB5 +:1035F00021F42A2D4B2D62EF04C0612F6F702A2D0C +:103600004B2DC70109955AC0842F807F803D59F00A +:10361000803F79F0803C09F061C0D7011E96ED91A2 +:10362000FC911F9719C0D7015096ED91FC915197CD +:1036300013C0433F31F4D7015296ED91FC9153975B +:1036400008C0413F09F04AC0D7015496ED91FC9162 +:103650005597309741F442C0309709F43FC0133F6B +:1036600011F0113F19F44B2D612F03C0612F6F70C2 +:103670004B2DC701099522C0842F0E94B0198823C1 +:1036800031F0D7015696ED91FC91579707C0163F40 +:1036900029F5D7015896ED91FC9159973097F1F0A3 +:1036A000612FC70109950AC064307105A8F416C0DE +:1036B0000A2D2B2D412FB601C7010995D7015E9622 +:1036C000ED91FC915F97309789F00A2D2B2D412FBA +:1036D000B601C70109950AC0C12CD12CD7015C964F +:1036E000ED91FC915D97309719F7E8CF0F900F900F +:1036F0000F90DF91CF911F910F91FF90EF90DF908E +:10370000CF90BF90AF900895EF92FF920F931F93C9 +:10371000CF93DF93EC01162F862F0E94B0198823D8 +:1037200069F0FDA081E08DA300E020E0412F61E081 +:1037300070E0CE010E94761AFDA27CC0812F0E940B +:10374000AC194DA1882309F440C0443029F01AA3D4 +:1037500021E030E03FA32EA3812F0E94B6198130D3 +:1037600031F070F0823051F0833059F507C08DA3ED +:1037700000E020E0412F61E070E01EC08DA35AC040 +:10378000103F19F0173FE9F404C084E08DA31AA399 +:103790003FC02EA13FA1C90163E070E00E948834C0 +:1037A0008C0F9D1FFC0112A3B9016F5F7F4F7FA398 +:1037B0006EA30CA12BA14AA1CE010E94761A1DA2D4 +:1037C00039C01DA21FA21EA235C0442399F12EA10B +:1037D0003FA1C90163E070E00E9488347C01FE01D2 +:1037E000E80FF91F12A3B9016F5F7F4F7FA36EA38C +:1037F0008130910591F082E0E816F104D9F40CA132 +:103800002BA14AA1CE010E94761A8DA1843091F09D +:1038100081E090E09FA38EA30DC0423059F400E0F8 +:103820002BA14AA1CE010E94761A8DA1843011F0FD +:10383000FFA2EEA2DF91CF911F910F91FF90EF9029 +:103840000895CF92DF92EF92FF920F931F93CF9341 +:10385000DF93EC01E8A1F9A1309709F009958E01F9 +:1038600008511F4FC8010E948E1CE12CF12CC82E5C +:10387000D12C0FC060E0C8010E94A21C682FCE01AD +:103880000E94841B61E0C8010E94B31C8FEFE81AFC +:10389000F80AEC14FD0470F3DF91CF911F910F91A2 +:1038A000FF90EF90DF90CF900895FC0142837483E6 +:1038B00063831182108208950F931F93CF93DF9338 +:1038C000EC01062F0E94D41C182F298130E0C90179 +:1038D00001966A8170E00E949C34488150E0841710 +:1038E000950729F4812F0E94D71C80E012C0EB813C +:1038F000FC81E20FF31F00832981822F90E0019663 +:103900006A8170E00E949C348983812F0E94D71CB9 +:1039100081E0DF91CF911F910F910895CF93DF93B5 +:10392000EC010E94D41C29819881291710F0C22F24 +:1039300002C0CA81C20FC91B0E94D71C8C2FDF9105 +:10394000CF910895FC012081862F90E0820F911D78 +:10395000628170E00E949C340380F481E02DE80FC6 +:10396000F91F808108950F931F93CF93DF931F92C8 +:10397000CDB7DEB78C0169830E94D41C482FF801B3 +:1039800080816981262F30E0280F311D6281C901B5 +:1039900070E00E949C348083842F0F90DF91CF9140 +:1039A0001F910F910C94D71C8FB7F89408958FBF77 +:1039B0000895FC01CB012091FB032430B1F4218157 +:1039C0002F702093E90040E050E064E070E00E9436 +:1039D000A61481110BC09091E80095FD07C090914D +:1039E000E8009E779093E800089582E00895209182 +:1039F000FB032430A9F4FC0181818F708093E900DE +:103A00003091F3002091F200932F80E0822B892BDC +:103A100049F08091E8008E778093E8000C9463165B +:103A200082E0089580E008952091FB03243051F452 +:103A3000FC0121812F702093E9002091E80020FDF6 +:103A40000C94F71C0895FC01CB012091FB0324305A +:103A500011F080E0089526812F702093E9002091D5 +:103A6000E80022FFF6CF2091E80025FFF2CF40E0EA +:103A700050E064E070E00E94F5148091E80085FD5C +:103A800005C08091E8008B778093E80081E008957D +:103A900090939502809394020895E0919402F0919E +:103AA0009502309721F00190F081E02D099480E09B +:103AB0000895E0919402F0919502309721F00280F0 +:103AC000F381E02D09940895E0919402F09195021C +:103AD000309721F00480F581E02D0994089520911C +:103AE0009602309197028217930771F09093970294 +:103AF00080939602E0919402F0919502309721F024 +:103B00000680F781E02D0994089520919802309164 +:103B100099028217930771F090939902809398020B +:103B2000E0919402F0919502309721F00084F185A4 +:103B3000E02D0994089508950C949B1D0E94E62998 +:103B40000E94F3060E94BA2A0C9465300C942C064D +:103B50005F926F927F928F929F92AF92BF92CF921D +:103B6000DF92EF92FF920F931F93CF93DF93CDB726 +:103B7000DEB72A970FB6F894DEBF0FBECDBF0E9406 +:103B8000E9079AE9C92E92E0D92E00E010E0AA24B4 +:103B9000A394B12C502E802F0E9439093C01F601CC +:103BA000E190F1906F01E826F926E114F10431F477 +:103BB0000F5F1F4F0530110569F73AC08091F10280 +:103BC00081FD0E94420920E030E04501022E02C042 +:103BD000880C991C0A94E2F7C4018E219F21892B3D +:103BE00009F12E835F826820792081E0672809F43B +:103BF00080E088870E94EF298160782F9A878987E3 +:103C00004E815F8168858A850E94611EF801EE0FF2 +:103C1000FF1FE656FD4F808191818825992591836C +:103C2000808316C02F5F3F4F2C30310571F6C0CF17 +:103C30008FEF89838A831B820E94EF298160782F0E +:103C40009D838C8349815A816B818D810E94611E85 +:103C50000E94A72D1091A4020E944D1D1817D9F0A3 +:103C60000E944D1D8093A4022A960FB6F894DEBFE1 +:103C70000FBECDBFDF91CF911F910F91FF90EF90BD +:103C8000DF90CF90BF90AF909F908F907F906F907C +:103C90005F900C94A61D2A960FB6F894DEBF0FBE57 +:103CA000CDBFDF91CF911F910F91FF90EF90DF90EB +:103CB000CF90BF90AF909F908F907F906F905F90CC +:103CC0000895CF93DF93CDB7DEB72B970FB6F89457 +:103CD000DEBF0FBECDBF4F83588769877A878B873A +:103CE000DE01119686E0FD0111928A95E9F785E0E3 +:103CF000FE01379601900D928A95E1F749815A812C +:103D00006B817C818D819E810E944A262B960FB605 +:103D1000F894DEBF0FBECDBFDF91CF910895089517 +:103D2000CF93C82F882309F4C1C0823859F40E9468 +:103D30004D1D81FDBBC089E30E94B1280E943D2931 +:103D400089E30CC0833879F40E944D1D80FDAEC01C +:103D500083E50E94B1280E943D2983E50E94D32873 +:103D6000CF910C943D29843859F40E944D1D82FD59 +:103D70009DC087E40E94B1280E943D2987E4EECFD0 +:103D80008450813A48F48C2F0E94C72F81118EC035 +:103D90008C2F0E94B128E4CF8C2F805E883050F4A5 +:103DA000C77081E090E001C0880FCA95EAF70E94D1 +:103DB000F428D6CF8C2F855A833078F4C53A29F071 +:103DC000C63A31F482E890E005C081E890E002C094 +:103DD00083E890E0CF910C946F1D8C2F885A83312B +:103DE00008F064C0C83A39F1C93A41F1CA3A49F118 +:103DF000CB3A51F1CC3A59F1CD3A61F1C03B69F17E +:103E0000CE3A71F1CF3A79F1C13B81F1C23B89F1F0 +:103E1000C33B91F1C43B99F1C53BA1F1C63BA9F16C +:103E2000C73BB1F1C83BB9F1C93BC1F1CA3BC9F5C8 +:103E30008AE292E038C082EE90E035C089EE90E0F0 +:103E400032C08AEE90E02FC085EB90E02CC086EB6C +:103E500090E029C087EB90E026C08CEC90E023C076 +:103E60008DEC90E020C083E891E01DC08AE891E0ED +:103E70001AC082E991E017C084E991E014C081E2A0 +:103E800092E011C083E292E00EC084E292E00BC0A7 +:103E900085E292E008C086E292E005C087E292E007 +:103EA00002C080E090E0CF910C94851DCF910895E1 +:103EB000882309F44DC0823859F40E944D1D81FFBA +:103EC00047C089E30E94B1280E943D2989E30CC0C4 +:103ED000833871F40E944D1D80FF3AC083E50E9433 +:103EE000B1280E943D2983E50E94D3280C943D29E6 +:103EF000843859F40E944D1D82FF2AC087E40E9435 +:103F0000B1280E943D2987E4EFCF982F9450913A31 +:103F100008F4EACF982F905E983058F4282F277035 +:103F200081E090E001C0880F2A95EAF70E94FA2804 +:103F3000DDCF982F955A933020F480E090E00C94D8 +:103F40006F1D885A833120F480E090E00C94851D29 +:103F50000895882321F00E94F4280C943D290895A7 +:103F6000882321F00E94FA280C943D290895BF92DD +:103F7000CF92DF92EF92FF920F931F93CF93DF9335 +:103F8000CDB7DEB727970FB6F894DEBF0FBECDBF13 +:103F90008C0185E0F801DE01119601900D928A9561 +:103FA000E1F7F801D080E180F280558152955F7091 +:103FB00083819481892B41F0FFEFEF1208C081E0EB +:103FC00090E0DF1631F003C081E090E002C080E0B5 +:103FD00090E080FD7CC3C8015E830E948F1ED98261 +:103FE000EA8289819A810E946E28B92E8F830E946D +:103FF0006D280E9495275E816F81FF2021F00E942D +:1040000011296F815E812B2D22952F7030E0253094 +:10401000310509F4E6C06CF4243031050CF0A2C07F +:104020004B2D407F8B2D8F70223031050CF045C019 +:1040300017C02C3031054CF42A3031050CF0E7C1A3 +:104040002830310509F043C3E5C02D30310509F4AE +:10405000BAC20CF4A2C22F30310509F038C323C311 +:10406000182F411101C002C01295107FFF2059F096 +:10407000112309F46BC2812F6F830E9404290E94CF +:104080003D296F8163C2862F0E94581F112309F4B6 +:104090001EC3812F0E940A2927960FB6F894DEBF0F +:1040A0000FBECDBFDF91CF911F910F91FF90EF9089 +:1040B000DF90CF90BF900C943D29403211F0829553 +:1040C000807F662319F0613071F523C0FF20B1F0C5 +:1040D000511101C032C0513081F527960FB6F894C6 +:1040E000DEBF0FBECDBFDF91CF911F910F91FF902B +:1040F000EF90DF90CF90BF900C942429511101C014 +:1041000003C0513009F4E3C28E830E9427298E81B7 +:104110009AC1FF2021F0563008F0D9C20EC05530A8 +:1041200008F0D5C290C1FF20C9F0552331F0F80145 +:10413000958190FF0BC29F70958327960FB6F894D8 +:10414000DEBF0FBECDBFDF91CF911F910F91FF90CA +:10415000EF90DF90CF90BF900C94A91F552309F4E6 +:1041600072C109C22B2D26952695237030E02115AA +:10417000310529F02130310509F0A9C219C0FF200D +:1041800021F0862F9B2D937002C080E090E027964F +:104190000FB6F894DEBF0FBECDBFDF91CF911F9158 +:1041A0000F91FF90EF90DF90CF90BF900C946F1D18 +:1041B000FF2021F0862F9B2D937002C080E090E0BD +:1041C00027960FB6F894DEBF0FBECDBFDF91CF911B +:1041D0001F910F91FF90EF90DF90CF90BF900C94C4 +:1041E000851D862FFF2019F00E94AD2C02C00E9471 +:1041F000152D27960FB6F894DEBF0FBECDBFDF9109 +:10420000CF911F910F91FF90EF90DF90CF90BF90D3 +:104210000C949C2D8B2D837009F079C0F11057C23E +:10422000262F229526952770220F220F862F8F701A +:10423000C82ED12CE12CF12C022E04C0CC0CDD1C9C +:10424000EE1CFF1C0A94D2F764FF10C06FE070E010 +:1042500080E090E004C0660F771F881F991F2A95A1 +:10426000D2F7609570958095909503C060E070E0FE +:10427000CB012B2D269526952370422F50E04230FE +:104280005105D9F04330510569F16C297D298E29FA +:104290009F294130510551F127960FB6F894DEBFA2 +:1042A0000FBECDBFDF91CF911F910F91FF90EF9087 +:1042B000DF90CF90BF900C94AA276C297D298E297E +:1042C0009F2927960FB6F894DEBF0FBECDBFDF91B2 +:1042D000CF911F910F91FF90EF90DF90CF90BF9003 +:1042E0000C94BC270E94AA27C701B60127960FB6D7 +:1042F000F894DEBF0FBECDBFDF91CF911F910F911C +:10430000FF90EF90DF90CF90BF900C949827FF2004 +:1043100019F08B2D817001C08695882309F4D7C1CF +:10432000262F229526952770220F220F862F8F7019 +:10433000C82ED12CE12CF12C022E04C0CC0CDD1C9B +:10434000EE1CFF1C0A94D2F764FF10C06FE070E00F +:1043500080E090E004C0660F771F881F991F2A95A0 +:10436000D2F7609570958095909503C060E070E0FD +:10437000CB012B2D269526952370422F50E04230FD +:104380005105D9F04330510569F16C297D298E29F9 +:104390009F294130510551F127960FB6F894DEBFA1 +:1043A0000FBECDBFDF91CF911F910F91FF90EF9086 +:1043B000DF90CF90BF900C9449286C297D298E29DD +:1043C0009F2927960FB6F894DEBF0FBECDBFDF91B1 +:1043D000CF911F910F91FF90EF90DF90CF90BF9002 +:1043E0000C945B280E944928C701B60127960FB696 +:1043F000F894DEBF0FBECDBFDF91CF911F910F911B +:10440000FF90EF90DF90CF90BF900C943728603FE3 +:1044100059F120F4603E08F494C008C0623F09F4EA +:1044200067C0F0F1633F09F08CC065C0162F1F70A4 +:104430008B2D8F71FF2021F00E94E227812F7DCEEE +:104440000E94FD27812F27960FB6F894DEBF0FBE7E +:10445000CDBFDF91CF911F910F91FF90EF90DF9033 +:10446000CF90BF900C94B01FFF20B1F0553008F0F2 +:104470002EC18B2D8F7127960FB6F894DEBF0FBE1D +:10448000CDBFDF91CF911F910F91FF90EF90DF9003 +:10449000CF90BF900C941C28563008F018C1E9CF7B +:1044A000FF2099F08B2D8F7127960FB6F894DEBF01 +:1044B0000FBECDBFDF91CF911F910F91FF90EF9075 +:1044C000DF90CF90BF900C94E2278B2D8F712796B1 +:1044D0000FB6F894DEBF0FBECDBFDF91CF911F9115 +:1044E0000F91FF90EF90DF90CF90BF900C94FD273D +:1044F000F110EBCFD7CFFF2099F08B2D8F7127963E +:104500000FB6F894DEBF0FBECDBFDF91CF911F91E4 +:104510000F91FF90EF90DF90CF90BF900C94D32736 +:1045200027960FB6F894DEBF0FBECDBFDF91CF91B7 +:104530001F910F91FF90EF90DF90CF90BF900C9460 +:10454000CE27FF20A9F0552309F4ACCF862F27965C +:104550000FB6F894DEBF0FBECDBFDF91CF911F9194 +:104560000F91FF90EF90DF90CF90BF900C94901E32 +:10457000552309F4AACF862F27960FB6F894DEBFED +:104580000FBECDBFDF91CF911F910F91FF90EF90A4 +:10459000DF90CF90BF900C94581F4B2D4F70C801E7 +:1045A0000E94560327960FB6F894DEBF0FBECDBF0C +:1045B000DF91CF911F910F91FF90EF90DF90CF90FF +:1045C000BF900C940027F11082C09B2D9F70492F43 +:1045D00050E04230510599F144F44115510569F01C +:1045E0004130510509F073C019C043305105C1F184 +:1045F0004430510509F06BC044C027960FB6F894BB +:10460000DEBF0FBECDBFDF91CF911F910F91FF9005 +:10461000EF90DF90CF90BF900C94763027960FB636 +:10462000F894DEBF0FBECDBFDF91CF911F910F91E8 +:10463000FF90EF90DF90CF90BF900C948D30279635 +:104640000FB6F894DEBF0FBECDBFDF91CF911F91A3 +:104650000F91FF90EF90DF90CF90BF900C94A93016 +:1046600027960FB6F894DEBF0FBECDBFDF91CF9176 +:104670001F910F91FF90EF90DF90CF90BF900C941F +:10468000BC30862F27960FB6F894DEBF0FBECDBF85 +:10469000DF91CF911F910F91FF90EF90DF90CF901E +:1046A000BF900C94E0304B2D4F70C80127960FB689 +:1046B000F894DEBF0FBECDBFDF91CF911F910F9158 +:1046C000FF90EF90DF90CF90BF900C944309279616 +:1046D0000FB6F894DEBF0FBECDBFDF91CF911F9113 +:1046E0000F91FF90EF90DF90CF90BF9008950E94C0 +:1046F00011290E9421290E94E6280E943D290E943A +:10470000482E0E949C2D80E090E00E946F1D80E06A +:1047100090E00C94851D0E9401290C9477230E943F +:104720006E28292F22952F7030E02C3031054CF463 +:104730002A3031056CF4225031092230310590F4D1 +:1047400007C02C30310551F02F30310559F406C027 +:10475000803E10F0803F31F481E0089593FB88277C +:1047600080F9089580E00895CF93DF9300D000D0C2 +:104770001F92CDB7DEB70F900F900F900F900F9054 +:10478000DF91CF910895CF93DF9300D000D000D078 +:10479000CDB7DEB726960FB6F894DEBF0FBECDBFFD +:1047A000DF91CF9108951F93CF93DF93C091DB02E8 +:1047B00016E012C0D0E01C9FF0011D9FF00D1124E7 +:1047C000E555FD4F408151816281738184819581DE +:1047D0000E94C3232196C7708091DC02C813EACFE0 +:1047E000DF91CF911F9108954091A5025091A602AB +:1047F0006091A7027091A8028091A9029091AA02EB +:104800000C94C3230F931F93CF93DF938091AA023D +:1048100082958F7009F069C08091A702882309F4FE +:1048200064C0A091DB02D091DC02B091A502C091DE +:10483000A6028091A8029091A90221E030E0BF3F3A +:1048400011F020E030E0122FBC016095709506E079 +:104850004AC0009721F0CF3F29F4212F05C021E065 +:1048600030E002C020E030E020FD3BC04A2F50E0A5 +:10487000049FF001059FF00D1124E555FD4F2181A6 +:10488000C2132FC02081B2132CC02281211129C054 +:10489000238134812817390718F0281B390B02C0EF +:1048A000260F371F283C3105E0F48091AA028F7053 +:1048B00080618093AA0286E0849FF001859FF00DBD +:1048C0001124E055FD4F80818F708061808385EADF +:1048D00092E00E94B71FDF91CF911F910F910C942E +:1048E000D323AF5FA770AD13B4CFDF91CF911F91EA +:1048F0000F910895EF92FF920F931F93CF93DF9341 +:10490000CDB7DEB762970FB6F894DEBF0FBECDBF4E +:104910008C0185E0F801DE011D9601900D928A95CB +:10492000E1F7D8014C9111965C91119712966C9118 +:1049300012971396ED90FC9014977091A502E09158 +:10494000A6028091A8029091A902009739F0EF3F4A +:1049500041F421E030E07F3F31F003C021E030E05E +:1049600002C020E030E020FD5CC12091A70222239C +:1049700009F4F1C0E816F90628F09701281B390B55 +:10498000C90104C0809590958E0D9F1D883C9105AE +:1049900008F098C08091AA02982F907F09F064C017 +:1049A000E51314C0741312C0611110C08F708061C0 +:1049B0008093AA020E94F42385EA92E00E94B71F26 +:1049C0008091AA02D80115968C9343C1EF2839F043 +:1049D0005F3F41F481E090E04F3F31F003C081E060 +:1049E00090E002C080E090E080FD03C081E0862777 +:1049F00002C080E090E080FF2EC08091DB02209119 +:104A0000DC0236E013C090E0389FF001399FF00DD2 +:104A10001124E555FD4F7181571306C0708147136E +:104A200003C07281671317C0019687708213EBCFA2 +:104A300012C19F7059F0882309F40BC107C09F7001 +:104A400029F0F8019581907F09F403C1805E8830D8 +:104A500008F4FFC0D2C0662309F4FBC08091AA020B +:104A600081608093AA02F5C0E51308C0741306C0E4 +:104A7000611104C0D80115968C939DC04D875E8747 +:104A80008D859E856A8B0E948F236A89882309F40D +:104A9000B4C0662309F4B1C02091AA02822F829586 +:104AA0008F7090E002970CF4C6C08091A50290919F +:104AB000A60298878F831986FB86EA862C87CE010B +:104AC000079646C08091AA02982F907F59F47E2DB8 +:104AD000F98AE88A89890E94B42385EA92E00E94D3 +:104AE000B71F95C0E51311C074130FC061110DC03D +:104AF000F8018583C8010E94B71FE5EAF2E086E06D +:104B0000DF011D928A95E9F7A2C04D875E878D85EA +:104B10009E856A8B0E948F236A89882309F46DC061 +:104B2000662309F46AC02091AA02822F82958F70B1 +:104B300090E002970CF47FC08091A5029091A602AC +:104B40009A8389831B82FD82EC822E83CE0101969B +:104B50000E94B71F70C0E816F90628F09701281BBD +:104B6000390BC90104C0809590958E0D9F1D883C1E +:104B7000910508F046C0662309F43FC0E51330C034 +:104B800074132EC02091AA0220FD21C0322F32952D +:104B90003F70832F90E00097D1F0D80115962C93A9 +:104BA00015970F9741F0832F8F5F8295807F2F702D +:104BB000282B15962C93C8010E94B71F86E0F80198 +:104BC000A5EAB2E001900D928A95E1F73EC086E039 +:104BD000F801A5EAB2E001900D928A95E1F737C09D +:104BE0004D875E878D859E850E948F23811123C00E +:104BF0008091AA0281608093AA02C8010E94B71F17 +:104C000026C07E2DF98AE88A89890E94B423E5EAC4 +:104C1000F2E086E0DF011D928A95E9F70E94F42315 +:104C200018C0662351F34D875E878D859E850E944F +:104C30008F23882311F386E0F801A5EAB2E0019002 +:104C40000D928A95E1F70E9402240E94F42381E0EC +:104C500014C080E012C04D875E878D859E850E94BE +:104C60006E28292F22952F7030E0223031050CF468 +:104C7000E0CE243031050CF6E2CE62960FB6F89401 +:104C8000DEBF0FBECDBFDF91CF911F910F91FF907F +:104C9000EF9008951F93CF93DF93CDB7DEB72C9796 +:104CA0000FB6F894DEBF0FBECDBF4F83588769871C +:104CB0007A878B879C87CE0107960E947A24882367 +:104CC000D9F02F8138858A859B85892B39F03F3F24 +:104CD00019F080E090E004C02F3FD9F781E090E028 +:104CE000892B09F06DC04F81588569857A858B8540 +:104CF0009C850E94C32364C086E0FE013796DE01D6 +:104D0000119601900D928A95E1F7FF81E8854A8519 +:104D10005B854115510539F0EF3F41F481E090E0AA +:104D2000FF3F31F003C081E090E002C080E090E0FE +:104D300080FD46C02091DC0230E0C90101968770F9 +:104D400099276091DB0270E08617970709F440C04D +:104D5000F983EA835D834C8396E0929FD001939F11 +:104D6000B00D1124A555BD4FFE01319601900D9255 +:104D70009A95E1F78093DC020E94D32321C0189F0B +:104D8000C001112485559D4F0E947A24882371F11A +:104D9000E091DB021E9FF0011124E555FD4F40819B +:104DA000518162817381848195810E94C3238091A6 +:104DB000DB0290E00196877099278093DB0201C0A7 +:104DC00016E08091DB029091DC028913D8CF0EC0EF +:104DD0000E948B231092DC021092DB02E5EAF2E0E3 +:104DE00086E0DF011D928A95E9F7EACF2C960FB68F +:104DF000F894DEBF0FBECDBFDF91CF911F91089514 +:104E0000DF92EF92FF920F931F93CF93DF93EC010A +:104E1000009709F46EC0D12CEE24E394F12C8E019E +:104E20000F5F1F4FFE018491843748F4843008F0EF +:104E30004CC0813071F0823009F05BC01EC08537F4 +:104E400009F43FC080F1982F9458903708F051C072 +:104E50003FC02296F8018491982F905E983050F4CC +:104E60008770FE2D01C0FF0F8A95EAF78F2F0E94F1 +:104E7000142913C00E94901E2FC02296F80184911D +:104E8000982F905E983060F48770FE2D01C0FF0F60 +:104E90008A95EAF78F2F0E941A290E943D291CC08B +:104EA0000E94581F19C02296F801049107C08FE98B +:104EB0009FE00197F1F700C0000001500111F7CF0A +:104EC0000BC02296F801D49007C00E94901E03C028 +:104ED0008F770E94581FE8018D2D07C08150EFE9A0 +:104EE000FFE03197F1F700C00000882309F497CF65 +:104EF000F5CFDF91CF911F910F91FF90EF90DF9051 +:104F000008956093E1027093E2028093E30290932C +:104F1000E4020C9477236093DD027093DE028093A9 +:104F2000DF029093E0020C94772308950C9481277C +:104F30000F931F930091E1021091E2022091E3028E +:104F40003091E402602B712B822B932B1F910F91D8 +:104F50000C9481270F931F930091E1021091E202BC +:104F60002091E3023091E402602371238223932392 +:104F70001F910F910C9481270F931F930091E102D1 +:104F80001091E2022091E3023091E4026027712740 +:104F9000822793271F910F910C94812760E070E086 +:104FA000CB010C948B2741E050E060E070E004C03E +:104FB000440F551F661F771F8A95D2F7CB01BA01A0 +:104FC0000C948B2741E050E060E070E004C0440F97 +:104FD000551F661F771F8A95D2F78091DD02909149 +:104FE000DE02A091DF02B091E002482B592B6A2B20 +:104FF0007B2BCB01BA010C948B2741E050E060E0A1 +:1050000070E004C0440F551F661F771F8A95D2F7C2 +:1050100040955095609570958091DD029091DE02EB +:10502000A091DF02B091E002482359236A237B2339 +:10503000CB01BA010C948B2741E050E060E070E0B6 +:1050400004C0440F551F661F771F8A95D2F78091C1 +:10505000DD029091DE02A091DF02B091E0024827CC +:1050600059276A277B27CB01BA010C948B270F9312 +:105070001F930091DD021091DE022091DF0230913A +:10508000E002602B712B822B932B1F910F910C94BC +:105090008B270F931F930091DD021091DE02209168 +:1050A000DF023091E00260237123822393231F915A +:1050B0000F910C948B270F931F930091DD02109199 +:1050C000DE022091DF023091E00260277127822703 +:1050D00093271F910F910C948B270895CF92DF9205 +:1050E000EF92FF920F931F93CF93DF93EC01C09049 +:1050F000E102D090E202E090E302F090E4028091BD +:10510000DD029091DE02A091DF02B091E002C82A98 +:10511000D92AEA2AFB2A0FE110E0B701A601002EE6 +:1051200004C076956795579547950A94D2F740FF46 +:1051300008C0BE01802F0E94B3048130910509F0A0 +:1051400007C00150110948F7BE0180E00E94B30476 +:10515000DF91CF911F910F91FF90EF90DF90CF9053 +:10516000089540918B0150918C0120E030E09FEF39 +:10517000FA01E20FF31F62816817A1F09F3F19F453 +:10518000611101C0922F2F5F3F4F2630310581F70B +:1051900007C0FA01E90FF11D97FDFA958283089582 +:1051A0009F3FB9F7089540918B0150918C0120E009 +:1051B00030E0FA01E20FF31F9281981301C01282CE +:1051C0002F5F3F4F26303105A1F7089581E090E031 +:1051D000E0918B01F0918C01E80FF91F108201968C +:1051E00088309105A9F708959091E502982B909346 +:1051F000E502089580959091E50298239093E50249 +:1052000008951092E50208959091E602982B9093EC +:10521000E602089580959091E60298239093E60225 +:1052200008951092E60208959091E702982B9093CA +:10523000E702089580959091E70298239093E70202 +:1052400008951092E70208958093E802089510925D +:10525000E802089540918B0150918C0120E030E0EC +:1052600080E0FA01E20FF31F918191118F5F2F5FB0 +:105270003F4F27303105A9F70895E0918B01F09158 +:105280008C018091E5028083E0918B01F0918C018B +:1052900080819091E602892B8083E0918B01F091CF +:1052A0008C0180819091E702892B80839091E802A4 +:1052B000992361F0E0918B01F0918C018081892B21 +:1052C00080830E942A2981110E94272980918B01C5 +:1052D00090918C010C94591D8091FB03843039F11D +:1052E0001092F20220E488E190E00FB6F894A895BD +:1052F000809360000FBE2093600080E00E949B03BB +:1053000080E00E942C0683B7817F846083BF83B7CF +:10531000816083BF7894889583B78E7F83BF88E14F +:105320000FB6F89480936000109260000FBE08954D +:1053300008950895CF9380E00E949B030E949829CE +:105340000E94E9070E949929C0E08C2F0E94390928 +:10535000892B29F4CF5FC530C1F780E001C081E01F +:10536000CF9108950E948B2380E00E949B030E94AE +:1053700065300E944D1D0C942C061F920F920FB6A3 +:105380000F9211248F939F93AF93BF938091F2025A +:10539000811113C08091F3029091F402A091F50263 +:1053A000B091F6024196A11DB11D8093F302909336 +:1053B000F402A093F502B093F602BF91AF919F91D2 +:1053C0008F910F900FBE0F901F90189582E084BDB3 +:1053D00093E095BD9AEF97BD80936E0008958FB7C7 +:1053E000F8944091F3025091F4026091F5027091AB +:1053F000F6028FBFCA010895CF92DF92EF92FF921B +:105400000F931F932FB7F8944091F3025091F40239 +:105410006091F5027091F6022FBF6A017B01EE24C4 +:10542000FF248C0120E030E0C016D106E206F3062E +:1054300020F09A01281B390B05C09C01209530955E +:10544000240F351FC9011F910F91FF90EF90DF903E +:10545000CF9008951F920F920FB60F9211248F9341 +:105460009F93AF93BF938091F3029091F402A09128 +:10547000F502B091F6020196A11DB11D8093F302D1 +:105480009093F402A093F502B093F602BF91AF910E +:105490009F918F910F900FBE0F901F9018950E94B3 +:1054A0009516F8942FEF87EA91E6215080409040BE +:1054B000E1F700C0000087E090EBDC018093050479 +:1054C00090930604A0930704B09308042CE088E1AD +:1054D00090E00FB6F894A895809360000FBE2093DB +:1054E0006000FFCFCF92DF92EF92FF920F931F9356 +:1054F000CF93DF93C82ED12C01E010E08D2D0E94B8 +:1055000039097C01C0E0D0E098010C2E02C0220FC6 +:10551000331F0A94E2F72E213F21232B29F42196F1 +:10552000CC30D10589F708C06C2F7D2D80E00E941A +:105530008E04C812F4CF06C0D39485E0D812DECF13 +:1055400080E001C081E0DF91CF911F910F91FF902A +:10555000EF90DF90CF900895CF93C82F8CE20E94F8 +:10556000722A882321F08C2FCF910C94722A80E02C +:10557000CF910895CF930E94FD2B811102C00E940C +:10558000DE2BC5E608C00E94E9078FE39CE901977E +:10559000F1F700C00000C150B1F789E20E94AC2AC7 +:1055A00081110AC18AE20E94AC2A81110E94DE2B7D +:1055B00085E00E94AC2A81110E944F2A0E94082C8B +:1055C0008093F10287E00E94AC2A882399F18BE155 +:1055D0000E94AC2A882351F09091F10291FB882718 +:1055E00080F921E0822780FB91F922C08EE00E94A1 +:1055F000AC2A882351F09091F10292FB882780F920 +:1056000021E0822780FB92F913C080E10E94AC2A3E +:105610009091F102882341F093FB882780F921E0E3 +:10562000822780FB93F904C0892F809580FB90F935 +:105630009093F1028091F1020E940C2C0E941A2C8E +:105640008093020380EE0E94AC2A882341F080916F +:105650000203982F909590FB80F98093020389E3D1 +:105660000E94AC2A882359F09091020391FB88276D +:1056700080F921E0822780FB91F99093020382EE6A +:105680000E94AC2A882359F09091020392FB88274C +:1056900080F921E0822780FB92F99093020386EE45 +:1056A0000E94AC2A882359F09091020393FB88272B +:1056B00080F921E0822780FB93F99093020383EE27 +:1056C0000E94AC2A882359F09091020394FB88270A +:1056D00080F921E0822780FB94F99093020385E30F +:1056E0000E94AC2A882359F09091020395FB8827E9 +:1056F00080F921E0822780FB95F99093020381E3F2 +:105700000E94AC2A882359F09091020396FB8827C7 +:1057100080F921E0822780FB96F99093020381E1D2 +:105720000E94AC2A882359F09091020397FB8827A6 +:1057300080F921E0822780FB97F990930203809102 +:1057400002030E941E2C87E20E94AC2AC82F8EE121 +:105750000E94AC2A8111C2608FE10E94AC2A8111A3 +:10576000C46080E20E94AC2A8111C86081E20E947C +:10577000AC2A8111C06182E20E94AC2A8111C06210 +:1057800083E20E94AC2A8111C06484E20E94AC2AA8 +:10579000882311F0C06802C0CC2329F08C2F0E940E +:1057A000152C6C2F03C00E94112C682F70E080E034 +:1057B00090E0CF910C949627CF9108956DEE7EEFF7 +:1057C00080E090E00E94CC3460E082E090E00E94B3 +:1057D000BE3460E083E090E00E94BE3460E084E08C +:1057E00090E00E94BE3460E085E090E00E94BE340C +:1057F00060E086E090E00C94BE3480E090E00E948F +:10580000B83421E08D3E9E4F09F020E0822F0895AC +:1058100082E090E00C94B034682F82E090E00C9429 +:10582000BE3483E090E00C94B034682F83E090E0C5 +:105830000C94BE3484E090E00C94B034682F84E083 +:1058400090E00C94BE3486E090E00C94B034682F65 +:1058500086E090E00C94BE348091FF0280FF0BC084 +:105860006091900185E0689FB0011124759567955E +:10587000759567952AC081FF09C06091900185E008 +:10588000689FB0011124759567951FC082FF07C0FE +:105890006091900185E0689FB001112416C040918D +:1058A000F9024423C9F060918F01461788F72091CF +:1058B000900185E0289F90011124429FC001439FE1 +:1058C000900D112470E00E949C346038710540F402 +:1058D0006115710539F002C065E070E0862F08950A +:1058E0008FE7089581E008958091FF0280FF08C04E +:1058F00060918E0170E0759567957595679521C0EB +:1059000081FF06C060918E0170E07595679519C0A2 +:1059100082FF04C060918E0170E010C08091F90296 +:105920008823C1F060918D018617A0F790918E01B8 +:10593000989FC001112470E00E949C34603871056A +:1059400028F46115710521F0862F08958FE70895D9 +:1059500081E0089561E070E0F4CF803F21F40E947F +:105960002C2C819504C0813F29F40E942C2C80931B +:10597000FC020895823F21F40E942C2C819504C0E2 +:10598000833F29F40E942C2C8093FB020895893FC9 +:1059900019F40E94742C05C08A3F31F40E94742CC3 +:1059A00081958093FD0208958B3F21F40E94742C11 +:1059B000819504C08C3F29F40E94742C8093FE02D0 +:1059C0000895843F21F48091FA02816017C0853FD9 +:1059D00021F48091FA02826011C0863F21F4809107 +:1059E000FA0284600BC0873F21F48091FA0288603C +:1059F00005C0883F31F48091FA0280618093FA02F9 +:105A000008958D3F21F48091FF0281600BC08E3F8D +:105A100021F48091FF02826005C08F3F29F48091BC +:105A2000FF0284608093FF020895803F29F48091F3 +:105A3000FC0287FF6EC007C0813F41F48091FC02E9 +:105A400018160CF066C01092FC0263C09091FB0225 +:105A5000823F19F497FF5DC005C0833F31F41916EA +:105A60000CF057C01092FB0254C0893F31F4809172 +:105A7000FD0218160CF04DC006C08A3F39F4809123 +:105A8000FD0287FF46C01092FD0243C08B3F29F400 +:105A90008091FE0287FF3DC006C08C3F39F48091A3 +:105AA000FE021816B4F51092FE0233C0843F21F4B2 +:105AB0008091FA028E7F05C0853F31F48091FA0211 +:105AC0008D7F8093FA0225C0863F21F48091FA02EF +:105AD0008B7FF7CF873F21F48091FA02877FF1CF48 +:105AE000883F21F48091FA028F7EEBCF8D3F21F425 +:105AF0008091FF028E7F0BC08E3F21F48091FF02C8 +:105B00008D7F05C08F3F29F48091FF028B7F8093AA +:105B1000FF028091FB0281110EC08091FC02811175 +:105B20000AC08091FD02811106C08091FE028111A0 +:105B300002C01092F90208958AEF92E00E94641D5B +:105B40000E94EF299093F8028093F7020895CF9373 +:105B50008091F7029091F8020E94FC294091F9028D +:105B6000442321F02091910130E006C02091920160 +:105B70005AE0259F900111248217930708F486C0EC +:105B80008091FB0281110DC09091FC02911109C01E +:105B90009091FD02911105C09091FE02992309F4A4 +:105BA00075C04F3F19F04F5F4093F902181624F467 +:105BB0000E942C2C8093FB028091FB0287FF05C082 +:105BC0000E942C2C81958093FB028091FC02181678 +:105BD00024F40E942C2C8093FC028091FC0287FF0D +:105BE00005C00E942C2C81958093FC026091FB02E1 +:105BF000662339F1C091FC02CC2319F1772767FDA8 +:105C00007095872F972F0E94003223E333E343E3FD +:105C10005FE30E94B4320E94CD316093FB026C2F8F +:105C2000772767FD7095872F972F0E94003223E317 +:105C300033E343E35FE30E94B4320E94CD316093CB +:105C4000FC028091FD02181624F40E94742C8093AB +:105C5000FD028091FD0287FF05C00E94742C819592 +:105C60008093FD028091FE02181624F40E94742C89 +:105C70008093FE028091FE0287FF05C00E94742C73 +:105C800081958093FE02CF910C949C2DCF91089525 +:105C9000EAEFF2E085E0DF011D928A95E9F71092C4 +:105CA000F9021092FF020895833089F130F48130B7 +:105CB00061F0823009F06EC019C0853009F449C026 +:105CC000B8F1863009F066C055C020919201862F48 +:105CD00090E0820F911D8F3F910520F4620F609339 +:105CE000920108958FEF8093920108952091910180 +:105CF000862F90E0820F911D8F3F910520F4620F57 +:105D00006093910108958FEF809391010895209100 +:105D10009001862F90E0820F911D8F3F910520F416 +:105D2000620F6093900108958FEF80939001089522 +:105D300020918F01862F90E0820F911D8F3F91055A +:105D400020F4620F60938F0108958FEF80938F018D +:105D5000089520918E01862F90E0820F911D8F3F34 +:105D6000910520F4620F60938E0108958FEF809368 +:105D70008E01089520918D01862F90E0820F911D54 +:105D80008F3F910520F4620F60938D0108958FEF8E +:105D900080938D010895833021F130F4813059F0E2 +:105DA000823009F049C012C0853089F128F186306F +:105DB00009F042C037C080919201681720F4861B19 +:105DC000809392010895109292010895809191011B +:105DD000681720F4861B8093910108951092910119 +:105DE000089580919001681720F4861B809390019C +:105DF000089510929001089580918F01681720F402 +:105E0000861B80938F01089510928F0108958091D1 +:105E10008E01681720F4861B80938E0108951092DE +:105E20008E01089580918D01681720F4861B809360 +:105E30008D01089510928D01089541E050E060E0D9 +:105E400070E004C0440F551F661F771F8A95D2F774 +:105E5000CB01BA010E9496270C948B23873200F560 +:105E60008E3108F089C08E3009F469C060F4873043 +:105E700009F44DC018F4863049F531C0883041F13D +:105E80008B3021F57EC0863109F47BC018F4803157 +:105E9000E9F45FC0893109F474C08B31B9F445C0AD +:105EA000883309F46EC048F4893209F467C0853339 +:105EB00009F464C0873251F461C0833409F45EC0D0 +:105EC00018F48A3318F056C0883499F080E00895A9 +:105ED0000E94082C0E941A2C0E94232C52C08091F0 +:105EE000F102817F8E7F8093F10281E08093000335 +:105EF00008950E948B232FEF83ED90E32150804083 +:105F00009040E1F700C000000E944F2A3AC09091F3 +:105F1000F102892F8095817080FB90F919F09660CD +:105F2000986025C0997F977F22C09091F10291FBE4 +:105F3000882780F921E0822780FB91F913C0909196 +:105F4000F10292FB882780F921E0822780FB92F9F9 +:105F500009C09091F10293FB882780F921E0822704 +:105F600080FB93F99093F102882359F0916090930C +:105F7000F10207C0895303C08D5101C080E00E9427 +:105F80001D2F81E0089580E0089580E00895CF936B +:105F9000C82F80910003813071F020F0823009F029 +:105FA00089C037C0A0918B01B0918C018C91823255 +:105FB00009F082C007C0A0918B01B0918C018C9137 +:105FC000823249F48C2F0E94C32F81111EC08C2F66 +:105FD0000E942E2F1CC08C2F0E94C52F811115C02E +:105FE000C43169F030F4CB3081F0C03109F068C0C1 +:105FF00009C0C93221F0C83309F062C006C010924E +:1060000000035EC082E08093000381E090E0817035 +:106010005AC0C932C9F060F4C431B1F020F4C730BD +:1060200009F04CC034C0CE51C63008F047C017C08C +:10603000CE3439F120F4CB3409F040C01CC0C13556 +:10604000C1F0C235D9F513C080910103882319F03E +:106050001092010333C081E08093000334C0EC2F21 +:10606000F0E0E25EFD4F80818093010327C061E094 +:1060700003C061E007C06AE0809101030E94542ED2 +:106080001DC06AE0809101030E94CB2E17C08EE1F3 +:106090008093920182E3809391018AE08093900142 +:1060A00084E180938F0188E080938E0188E2809361 +:1060B0008D0104C01092000380E005C081E003C0A0 +:1060C00080E090E0A4CFCF9108950E94FD2B811134 +:1060D00002C00E94DE2B0E94232C8093040480FFC8 +:1060E00002C0869501C080E00C949B03809104045B +:1060F000982F9695292F30E0233031054CF49F5F7F +:10610000990F8170892B8160809304040E94272C51 +:106110008091040486950C949B0380910404982F2D +:10612000969591F09158990F8170892B8093040472 +:106130008E7F91E009F490E08091040490FB80F957 +:10614000809304040E94272C8091040486950C946B +:106150009B0380910404982F909590FB80F9809385 +:1061600004040E94272C8091040480FF02C08695BD +:1061700001C080E00C949B0330910404232F2695EA +:106180002F5F2F77822F90E0317004972CF4220F2D +:10619000232B2093040402C0309304048091040450 +:1061A000282F2E7F91E009F490E090FB80F98093F6 +:1061B00004040E94272C8091040486950C949B0370 +:1061C00020910404922F96959827990F822F817021 +:1061D000892B809304048E7F91E009F490E08091F4 +:1061E000040490FB80F9809304040E94272C809182 +:1061F000040486950C949B035058BB27AA270ED005 +:1062000075C166D130F06BD120F031F49F3F11F4AD +:106210001EF45BC10EF4E095E7FB51C1E92F77D185 +:1062200080F3BA17620773078407950718F071F4B3 +:106230009EF58FC10EF4E0950B2EBA2FA02D0B0109 +:10624000B90190010C01CA01A0011124FF27591BBB +:1062500099F0593F50F4503E68F11A16F040A22FC1 +:10626000232F342F4427585FF3CF46953795279532 +:10627000A795F0405395C9F77EF41F16BA0B620B31 +:10628000730B840BBAF09150A1F0FF0FBB1F661F78 +:10629000771F881FC2F70EC0BA0F621F731F841FBB +:1062A00048F4879577956795B795F7959E3F08F0E1 +:1062B000B3CF9395880F08F09927EE0F97958795A0 +:1062C0000895D9D008F481E008950CD00FC107D10A +:1062D00040F0FED030F021F45F3F19F0F0C05111D2 +:1062E00039C1F3C014D198F39923C9F35523B1F3FD +:1062F000951B550BBB27AA2762177307840738F035 +:106300009F5F5F4F220F331F441FAA1FA9F333D093 +:106310000E2E3AF0E0E830D091505040E695001C47 +:10632000CAF729D0FE2F27D0660F771F881FBB1F03 +:10633000261737074807AB07B0E809F0BB0B802DDD +:10634000BF01FF2793585F4F2AF09E3F510568F029 +:10635000B6C000C15F3FECF3983EDCF386957795BD +:106360006795B795F7959F5FC9F7880F911D96952B +:10637000879597F90895E1E0660F771F881FBB1F87 +:10638000621773078407BA0720F0621B730B840B34 +:10639000BA0BEE1F88F7E095089504D06894B11108 +:1063A000D9C00895BCD088F09F5790F0B92F992795 +:1063B000B751A0F0D1F0660F771F881F991F1AF010 +:1063C000BA95C9F712C0B13081F0C3D0B1E00895D9 +:1063D000C0C0672F782F8827B85F39F0B93FCCF35A +:1063E000869577956795B395D9F73EF49095809506 +:1063F000709561957F4F8F4F9F4F0895E89409C026 +:1064000097FB3EF490958095709561957F4F8F4FE7 +:106410009F4F9923A9F0F92F96E9BB279395F695FD +:10642000879577956795B795F111F8CFFAF4BB0F7B +:1064300011F460FF1BC06F5F7F4F8F4F9F4F16C0DF +:10644000882311F096E911C0772321F09EE8872F69 +:10645000762F05C0662371F096E8862F70E060E025 +:106460002AF09A95660F771F881FDAF7880F96959E +:10647000879597F90895990F0008550FAA0BE0E842 +:10648000FEEF16161706E807F907C0F012161306F6 +:10649000E407F50798F0621B730B840B950B39F436 +:1064A0000A2661F0232B242B252B21F408950A269C +:1064B00009F4A140A6958FEF811D811D089597F9DC +:1064C0009F6780E870E060E008959FEF80EC08959A +:1064D00000240A94161617061806090608950024C3 +:1064E0000A9412161306140605060895092E03943D +:1064F000000C11F4882352F0BB0F40F4BF2B11F4B1 +:1065000060FF04C06F5F7F4F8F4F9F4F089557FD0F +:106510009058440F551F59F05F3F71F04795880F11 +:1065200097FB991F61F09F3F79F0879508951216A8 +:1065300013061406551FF2CF4695F1DF08C0161654 +:1065400017061806991FF1CF869571056105089405 +:106550000895E894BB2766277727CB0197F908951C +:106560008ADF08F48FEF08950BD0C0CFB1DF28F099 +:10657000B6DF18F0952309F0A2CFA7CF1124EACFF8 +:10658000C6DFA0F3959FD1F3950F50E0551F629F92 +:10659000F001729FBB27F00DB11D639FAA27F00D7C +:1065A000B11DAA1F649F6627B00DA11D661F829FA3 +:1065B0002227B00DA11D621F739FB00DA11D621F88 +:1065C000839FA00D611D221F749F3327A00D611DA5 +:1065D000231F849F600D211D822F762F6A2F112487 +:1065E0009F5750408AF0E1F088234AF0EE0FFF1FDA +:1065F000BB1F661F771F881F91505040A9F79E3F11 +:10660000510570F05CCFA6CF5F3FECF3983EDCF312 +:10661000869577956795B795F795E7959F5FC1F74D +:10662000FE2B880F911D9695879597F90895FA018D +:10663000EE0FFF1F30962105310599F161157105A7 +:1066400061F48038BFE39B0749F168949038810575 +:1066500061F08038BFEF9B0741F0992342F5FF3F7F +:10666000E1053105210511F1E8940894E795D90178 +:10667000AA2329F4AB2FBE2FF85FD0F310C0FF5F21 +:1066800070F4A695E0F7F73950F019F0FF3A38F4B6 +:106690009F779F930CD00F9007FC905808953EF081 +:1066A00014CF60E070E080E89FE308954FE79F77A4 +:1066B0005F934F933F932F939ED02F913F914F9194 +:1066C0005F9152DF05C019F40EF0F9CE42CFFDCE36 +:1066D00026DFC8F39638C0F707F80F92E8942BE34B +:1066E0003AEA48EB5FE74EDF0F920F920F924DB7F9 +:1066F0005EB70F92C0D0ECEAF0E016D04F915F91F8 +:10670000EF91FF91E595EE1FFF1F49F0FE57E068FE +:106710004427EE0F441FFA95E1F74195550B32D00F +:106720000F9007FE26C00895DF93CF931F930F931A +:10673000FF92EF92DF927B018C01689405C0DA2E04 +:10674000EF011EDFFE01E894A59125913591459159 +:106750005591AEF3EF0162DDFE019701A801DA94D5 +:1067600079F7DF90EF90FF900F911F91CF91DF911C +:1067700008959B01AC0160E070E080E89FE3A5CD47 +:106780009ECEACC0CCDEE8F39923D9F3940F511D13 +:10679000BBF39150504094F059F0882332F0660FCB +:1067A000771F881F91505040C1F79E3F510544F715 +:1067B000880F911D9695879597F908955F3FACF0E6 +:1067C000983E9CF0BB27869577956795B79508F41A +:1067D000B1609395C1F7BB0F58F711F460FFE8CF94 +:1067E0006F5F7F4F8F4F9F4FE3CFB4CE0EF076C0D9 +:1067F0006CCE689464CE93DEC8F39923D1F3C6F3CC +:10680000DF93CF931F930F93FF92C92FDD27882328 +:106810002AF02197660F771F881FDAF720E030E013 +:1068200040E85FEB9FE3883920F0803E30F021960E +:106830008F77E3DCE4EDF0E003C0DFDCE1E0F1E0E2 +:1068400073DF8B01BE01EC01FB2E6F57710975954B +:10685000771F880B990BD4DD28E132E741E35FE332 +:106860008FDEAF2D9801AE01FF900F911F91CF9158 +:10687000DF91D4DC3BCEFA01DC01AA0FBB1F9B01E8 +:10688000AC01BF5728F422273327442750781FC074 +:10689000B75188F4AB2F0024469537952795011CF6 +:1068A000A395D2F3002069F0220F331F441FB39544 +:1068B000DAF30DD0A1CC61307105A0E88A07B946A2 +:1068C00030F49B01AC0166277727882790783096B3 +:1068D00021F0208331834283538308959F3F31F019 +:1068E000915020F4879577956795B795880F911DFE +:1068F0009695879597F90895991B79E004C0991F9B +:10690000961708F0961B881F7A95C9F78095089509 +:10691000AA1BBB1B51E107C0AA1FBB1FA617B707C5 +:1069200010F0A61BB70B881F991F5A95A9F78095E1 +:106930009095BC01CD01089597FB072E16F40094A5 +:1069400007D077FD09D00E94883407FC05D03EF4BB +:10695000909581959F4F0895709561957F4F08950B +:10696000F999FECF92BD81BDF89A992780B5089517 +:10697000A8E1B0E042E050E00C94D334262FF9991E +:10698000FECF1FBA92BD81BD20BD0FB6F894FA9A12 +:10699000F99A0FBE019608950E94BE34272F0C94D9 +:1069A000BF34DC01CB01FC01F999FECF06C0F2BD7A +:1069B000E1BDF89A319600B40D9241505040B8F7BD +:0669C0000895F894FFCFDA +:1069C60055D0A446000016440000000000004842CE +:1069D60061978A460000C843000000000000484254 +:1069E60055D024460000C84300000000000048427D +:1069F60000005C460000C84300000000000048425A +:106A060061978A4600007A4455D0A4460000C843E0 +:106A1600000000000000484200005C460000C84339 +:106A2600000000000000484255D0244600001644ED +:106A36000507000C05854000000106400000010026 +:106A4600B91049112511F010BC1001E902280814EB +:106A56000A321E4200450025002600430061006000 +:106A660000200037006400650066006700440046A9 +:106A7600002400470000000200040005000700098A +:106A8600000B000C000E001000110013001500177B +:106A96000018001A001C001D001F002100230024FE +:106AA600002600280029002B002D002F0030003280 +:106AB6000034003500370039003B006E048704A01F +:106AC60004B904E10594055E053E053F4D362002F6 +:106AD60003020000010001010101010001010102A0 +:086AE60003040506070809007E +:00000001FF diff --git a/keyboard/preonic/preonic_pcb.hex b/keyboard/preonic/preonic_pcb.hex new file mode 100644 index 0000000000..5bdc190e1d --- /dev/null +++ b/keyboard/preonic/preonic_pcb.hex @@ -0,0 +1,1702 @@ +:100000000C94D4020C9418030C9418030C94180349 +:100010000C9418030C9418030C9418030C941803F4 +:100020000C9418030C9418030C94E8160C94BA174B +:100030000C946C290C9418030C9418030C9418035A +:100040000C9418030C9418030C9418030C941803C4 +:100050000C9418030C94D9290C9418030C941803CD +:100060000C9418030C9418030C9418030C941803A4 +:100070000C9418030C9418030C9418030C94180394 +:100080000C941C0E0C9418030C9418030C94180375 +:100090000C9418030C9418030C9418030C94180374 +:1000A0000C9418030C9418030C941803076342363D +:1000B000B79BD8A71A39685618AEBAAB558C1D3CF9 +:1000C000B7CC5763BD6DEDFD753EF6177231BF00BD +:1000D0000000803F08000000BE922449123EABAAF7 +:1000E000AA2ABECDCCCC4C3E00000080BEABAAAA52 +:1000F000AA3E00000000BF000000803F000000009A +:1001000000084178D3BB4387D1133D190E3CC3BDD2 +:100110004282AD2B3E68EC8276BED98FE1A93E4C7F +:1001200080EFFFBE01C4FF7F3F00000000003500EC +:100130001E001F00200021002200230024002500B3 +:10014000260027002A002B0014001A0008001500C2 +:1001500017001C0018000C00120013002A002900D0 +:1001600004001600070009000A000B000D000E0035 +:100170000F0033003400E1001D001B0006001900D1 +:10018000050011001000360037003800280000304C +:10019000E000E200E30003522C002C000452500067 +:1001A000510052004F0035001E001F0020002100AA +:1001B0002200230024002500260027002A002B000F +:1001C00014001A00090013000A000D000F001800A7 +:1001D0001C0033002A002900040015001600170037 +:1001E00007000B00110008000C0012003400E100B1 +:1001F0001D001B000600190005000E00100036004F +:100200003700380028000030E000E200E30003522D +:100210002C002C0004525000510052004F003500B9 +:100220001E001F00200021002200230024002500C2 +:10023000260027002A002B00340036003700130068 +:100240001C0009000A00060015000F002A00290002 +:1002500004001200080018000C0007000B00170033 +:10026000110016003800E100330014000D000E00EC +:100270001B00050010001A0019001D0028000030A6 +:10028000E000E200E30003522C002C000452500076 +:10029000510052004F0035001E001F0020002100B9 +:1002A0002200230024002500260027002A00350212 +:1002B0001E021F0220022102220223022402250222 +:1002C000260227022A0001003A003B003C003D00C4 +:1002D0003E003F002D022E022F02300231020100AB +:1002E00040004100420043004400450000530153D8 +:1002F0000253005001000100010001000100010053 +:10030000010001000100AB00AA00A900AE00350009 +:100310001E001F00200021002200230024002500D1 +:10032000260027002A0035001E001F0020002100A3 +:100330002200230024002500260027002A000100B7 +:100340003A003B003C003D003E003F002D002E00E7 +:100350002F00300031000100400041004200430006 +:1003600044004500005301530253005001000100B6 +:100370000100010001000100010001000100AB00CB +:10038000AA00A900AE002A035400680065002000FE +:100390005000720065006F006E006900630020006D +:1003A0004B006500790062006F006100720064001C +:1003B00000002C034F007200740068006F006C0096 +:1003C00069006E0065006100720020004B0065004E +:1003D000790062006F006100720064007300000029 +:1003E000040309040902D000060100A0FA09040070 +:1003F000000103010100092111010001223F000752 +:1004000005810308000A0904010001030102000933 +:100410002111010001224D000705820308000A098D +:10042000040200010300000009211101000122362D +:10043000000705830308000A090403000203000003 +:10044000000921110100012220000705840320007A +:100450000107050403200001090404000001010054 +:100460000009240100010900010509040500020139 +:1004700003000007240100014100062402010100DD +:1004800006240202020009240301030102010009FB +:1004900024030204010101000905060240000500D1 +:1004A0000005250101010905850240000500000540 +:1004B000250101031201100100000008EDFE61603A +:1004C0000100010200010631FF0974A1010975153F +:1004D0000025FF9520750881020976150025FF95F6 +:1004E0002075089102C005010980A101850216014D +:1004F0000026B7001A01002AB70075109501810087 +:10050000C0050C0901A1018503160100269C021AF1 +:1005100001002A9C02751095018100C005010902A5 +:10052000A1010901A10005091901290515002501ED +:100530009505750181029501750381010501093059 +:1005400009311581257F95027508810609381581C5 +:10055000257F950175088106050C0A38021581254D +:100560007F950175088106C0C005010906A1010536 +:100570000719E029E7150025019508750181029505 +:100580000175088101050819012905950575019175 +:10059000029501750391010507190029FF15002532 +:1005A000FF950675088100C011241FBECFEFDAE069 +:1005B000DEBFCDBF04B603FE24C080910404909139 +:1005C0000504A0910604B09107048730904BA74022 +:1005D000B04BB9F410920404109205041092060472 +:1005E0001092070414BE84B7877F84BF88E10FB6DA +:1005F000F89480936000109260000FBEE0E0F8E392 +:10060000099512E0A0E0B1E0EEE1F9E602C0059044 +:100610000D92A832B107D9F714E0A8E2B2E001C008 +:100620001D92A430B107E1F70E94A0130C948D3401 +:100630000C94000061110DC0FC018281882331F00F +:1006400085EE0E94671E0E94683003C085EE0E94FE +:100650002F1F80E090E008950E940F0E40E050E0D0 +:1006600069E070E080E091E00C94600F08950E94D2 +:1006700049036E9A769A8CE293E0892B11F00C94E0 +:100680002C03089586E393E0892B11F00C94360334 +:100690000895279A2F988FEF9FEF9093870080936C +:1006A00086008AE08093800089E1809381000C9429 +:1006B000113081110BC080918000877F8093800072 +:1006C00010928D0010928C002F9808952F988330EF +:1006D00041F4809180008860809380008FEF9FEFCD +:1006E00012C09091800098609093800023E030E0E9 +:1006F000281B3109220F331F8FEF9FEF02C0969501 +:1007000087952A95E2F790938D0080938C00089549 +:100710008B3B910568F4883A910530F5853A91054F +:10072000C0F48430910598F4019709F06FC071C04E +:10073000803E910508F46AC0883E910540F09C0116 +:10074000205F31092031310508F060C05CC09C0198 +:10075000A1C0853A910509F45FC0863A910509F474 +:100760005EC023E830E496C0883A910509F45AC087 +:10077000893A910509F459C08A3A910509F458C09B +:100780008B3A910509F457C08C3A910509F456C08B +:100790008D3A910509F455C0803B910509F454C088 +:1007A0008E3A910509F453C08F3A910509F452C06D +:1007B000813B910509F451C0823B910509F450C079 +:1007C000833B910509F44FC0843B910509F44EC069 +:1007D000853B910509F44DC0863B910509F44CC059 +:1007E000873B910509F44BC0883B910509F44AC049 +:1007F000893B910509F449C08A3B910509F048C03D +:100800002AE236E447C09C01306544C020E030E075 +:1008100041C021E030E03EC021E830E43BC022E8A6 +:1008200030E438C022EE34E435C029EE34E432C07E +:100830002AEE34E42FC025EB34E42CC026EB34E45C +:1008400029C027EB34E426C02CEC34E423C02DEC83 +:1008500034E420C023E835E41DC02AE835E41AC09A +:1008600022E935E417C024E935E414C021E236E476 +:1008700011C023E236E40EC024E236E40BC025E2C8 +:1008800036E408C026E236E405C027E236E402C0BA +:1008900020E034E4C90108959CE0799FF00111241F +:1008A0009CE3899FE00DF11D1124E60FF11DEE0F71 +:1008B000FF1FE25DFE4F25913491C9010895880F15 +:1008C000991F82559040FC0125913491C9010895EA +:1008D000880F991F825D9E4FFC0125913491C901BB +:1008E00008950E944C049C019A9581159F4110F433 +:1008F000C9010895C90190528115904128F4C90198 +:100900009F700E9468040895C90190538115904119 +:1009100020F4C9019927906C0895C901905440971B +:1009200028F4C9018F709927946D0895203180E4CF +:10093000380719F480E091ED0895213190E43907EA +:1009400019F480E090ED0895223140E4340719F461 +:1009500080E092ED0895233180E4380719F480E0B7 +:1009600093ED0895211590E5390799F40E945623D7 +:1009700040E065E088E491E00E94600F2FEF44E3DF +:100980008CE0215040408040E1F700C000000C9412 +:10099000FE29213090E5390731F48091F002816021 +:1009A0008093F0020895C90190558115904108F097 +:1009B00062C0432F55274F70552741305105F9F438 +:1009C000C90174E0880F991F7A95E1F78827937021 +:1009D000B901E3E0660F771FEA95E1F760767727C4 +:1009E000862B972B9C682370332702C0440F551F1A +:1009F0002A95E2F74F715527842B952B08954230A5 +:100A0000510529F4922F8827816F906A0895433009 +:100A10005105B9F4C90153E0880F991F5A95E1F7C0 +:100A2000807E97702370332741E050E002C0440F6E +:100A3000551F2A95E2F74F715527842B952B9C68FB +:100A400008954430510589F5C90143E0880F991F85 +:100A50004A95E1F7807E97702370332741E050E09C +:100A600002C0440F551F2A95E2F74F715527842B7A +:100A7000952B9A680895C90190568115904118F4F4 +:100A8000C901906F0895C90190578115904120F4D4 +:100A9000C9019F7090620895C901905881159041D5 +:100AA00020F4C9019F70906A0895203E3105E0F45A +:100AB000203C310568F52133310509F475C048F44F +:100AC0002932310509F46BC02A32310509F07BC0A7 +:100AD00075C02933310501F122383105E9F025339C +:100AE000310509F070C051C0233E3105B1F140F429 +:100AF000203E3105D1F0223E310509F064C01CC012 +:100B0000263E310579F1273E310509F05CC038C039 +:100B1000C9010E945F0408958091010380FD02C015 +:100B200081FF51C080EE90E04FC08091010380FFB3 +:100B3000F9CF89E390E048C08091010382FF0AC0A9 +:100B40008091010384FF03C080E090E03DC083EE0C +:100B500090E03AC082EE90E037C08091010382FFBE +:100B6000EFCFF8CF8091010383FF07C0809101038D +:100B700084FDEACF87EE90E027C086EE90E024C0A7 +:100B80008091010383FFF2CFF8CF8091010385FFAD +:100B900003C089E290E018C085E390E015C0809121 +:100BA000010385FDF9CFF5CF8091010386FF03C0D6 +:100BB0008AE290E009C081E390E006C080910103E1 +:100BC00086FDF9CFF5CFC9010E94880308950895E5 +:100BD0005F926F927F928F929F92AF92BF92CF92CD +:100BE000DF92EF92FF920F931F93CF93DF93CDB7D6 +:100BF000DEB72A970FB6F894DEBF0FBECDBF9E01B9 +:100C00002F5F3F4F4E018BE0880E911C60E070E03B +:100C100000E010E0E12CF12CC12CD12CA12CB12C46 +:100C20008AE0782E622E532E41E050E0E3E9F1E0B5 +:100C3000A62DB52D872D01900D928A95E1F7F9012A +:100C4000819191919F01FC01E07FFF27E032F10546 +:100C500059F48F709927FA0102C0EE0FFF1F8A9591 +:100C6000E2F7AE2ABF2A37C0E033F10559F48F709E +:100C70009927FA0102C0EE0FFF1F8A95E2F7CE2AEC +:100C8000DF2A29C0E034F10559F48F709927FA0161 +:100C900002C0EE0FFF1F8A95E2F7EE2AFF2A1BC063 +:100CA000E035F10559F48F709927FA0102C0EE0F73 +:100CB000FF1F8A95E2F70E2B1F2B0DC0E036F105C2 +:100CC00051F48F709927FA0102C0EE0FFF1F8A9529 +:100CD000E2F76E2B7F2B2815390509F0A7CF94B1C9 +:100CE0008A2D8095892384B985B18A2985B997B1E0 +:100CF0008C2D8095892387B988B18C2988B99AB1C0 +:100D00008E2D809589238AB98BB18E298BB99DB19F +:100D1000802F809589238DB98EB1802B8EB990B3A9 +:100D2000862F8095892380BB81B3862B81BB2A9631 +:100D30000FB6F894DEBF0FBECDBFDF91CF911F91EC +:100D40000F91FF90EF90DF90CF90BF90AF909F906A +:100D50008F907F906F905F9008955F926F927F92D7 +:100D60008F929F92AF92BF92CF92DF92EF92FF92BB +:100D70000F931F93CF93DF93CDB7DEB768970FB66E +:100D8000F894DEBF0FBECDBF85B7806885BF85B73D +:100D9000806885BF0E94E8059E012F5F3F4F4E018E +:100DA00089E1880E911C60E070E000E010E0E12C29 +:100DB000F12CC12CD12CA12CB12C98E1792E622ED2 +:100DC000532E41E050E0EDE9F1E0A62DB52D872D41 +:100DD00001900D928A95E1F7F901819191919F011E +:100DE000FC01E07FFF27E032F10559F48F7099276D +:100DF000FA0102C0EE0FFF1F8A95E2F7AE2ABF2A62 +:100E000037C0E033F10559F48F709927FA0102C019 +:100E1000EE0FFF1F8A95E2F7CE2ADF2A29C0E034C1 +:100E2000F10559F48F709927FA0102C0EE0FFF1FE8 +:100E30008A95E2F7EE2AFF2A1BC0E035F10559F446 +:100E40008F709927FA0102C0EE0FFF1F8A95E2F713 +:100E50000E2B1F2B0DC0E036F10551F48F70992732 +:100E6000FA0102C0EE0FFF1F8A95E2F76E2B7F2B6F +:100E70002815390509F0A7CF94B18A2D80958923CB +:100E800084B985B18A2985B997B18C2D809589233C +:100E900087B988B18C2988B99AB18E2D809589231C +:100EA0008AB98BB18E298BB99DB1802F809589230A +:100EB0008DB98EB1802B8EB990B3862F8095892302 +:100EC00080BB81B3862B81BB10922902109228022D +:100ED000109233021092320210922B0210922A02C8 +:100EE000109235021092340210922D0210922C02B0 +:100EF000109237021092360210922F0210922E0298 +:100F0000109239021092380210923102109230027F +:100F100010923B0210923A0287E393E0892BB9F0DA +:100F200068960FB6F894DEBF0FBECDBFDF91CF91AC +:100F30001F910F91FF90EF90DF90CF90BF90AF90F7 +:100F40009F908F907F906F905F900C94370368967E +:100F50000FB6F894DEBF0FBECDBFDF91CF911F91CA +:100F60000F91FF90EF90DF90CF90BF90AF909F9048 +:100F70008F907F906F905F9008955F926F927F92B5 +:100F80008F929F92AF92BF92CF92DF92EF92FF9299 +:100F90000F931F93CF93DF93CDB7DEB7A2970FB612 +:100FA000F894DEBF0FBECDBF7E0149E1E40EF11C17 +:100FB00022E3C22E22E0D22E5E0153E2A50EB11C26 +:100FC0003AE0532E470101E010E048E1642E55E07D +:100FD000752EE3E9F1E0D401852D01900D928A95FB +:100FE000E1F7F701819191917F019C01207F3327E7 +:100FF0002032310589F424B18F709927A80102C0ED +:10100000440F551F8A95E2F7CA01242B24B995B1E4 +:101010008095892385B94FC02033310589F427B1E4 +:101020008F709927F80102C0EE0FFF1F8A95E2F733 +:10103000CF012E2B27B998B18095892388B93BC061 +:101040002034310589F42AB18F709927A80102C094 +:10105000440F551F8A95E2F7CA01242B2AB99BB188 +:10106000809589238BB927C02035310589F42DB1AE +:101070008F709927F80102C0EE0FFF1F8A95E2F7E3 +:10108000CF012E2B2DB99EB1809589238EB913C027 +:101090002036310581F420B38F709927A80102C052 +:1010A000440F551F8A95E2F7CA01242B20BB91B348 +:1010B0008095892381BB50EA5A95F1F7BE016F5F95 +:1010C0007F4F80E090E020E030E0EDE9F1E0DE01EC +:1010D0001196462D01900D924A95E1F7FB01419141 +:1010E0005191BF01FA01E07FFF27E032F10511F4D1 +:1010F000E3B113C0E033F10511F4E6B10EC0E03402 +:10110000F10511F4E9B109C0E035F10511F4ECB1D4 +:1011100004C0E036F105B9F4EFB1F0E04F705527A7 +:1011200002C0F595E7954A95E2F7E0FD08C0A801F1 +:10113000022E02C0440F551F0A94E2F702C040E09D +:1011400050E0842B952B2F5F3F4F2C30310509F059 +:10115000BCCFF601208131812817390721F0918316 +:101160008083709270010E94E805F2E0CF0ED11CDE +:10117000EA14FB0409F02DCF809170018823A1F1BE +:10118000815080937001882339F08FE99FE00197A7 +:10119000F1F700C0000028C0809132029091330224 +:1011A0009093290280932802809134029091350215 +:1011B00090932B0280932A028091360290913702FD +:1011C00090932D0280932C028091380290913902E5 +:1011D00090932F0280932E0280913A0290913B02CD +:1011E000909331028093300282E493E0892B11F0D6 +:1011F0000E94420381E0A2960FB6F894DEBF0FBEB4 +:10120000CDBFDF91CF911F910F91FF90EF90DF90B5 +:10121000CF90BF90AF909F908F907F906F905F9096 +:101220000895E82FF0E0EE0FFF1FE85DFD4F80818D +:10123000918108950895CF92DF92EF92FF920F93DC +:101240001F93CF93DF93CDB7DEB7CC5BD2400FB601 +:10125000F894DEBF0FBECDBF8C01862F642F88238C +:1012600079F0F80192812FE7482F992329F083E044 +:1012700093E00E94C41904C083E093E00E94D41953 +:10128000F80180818B3091F59181943009F0A8C2EA +:101290009281809173019923B1F08F5F80937301E4 +:1012A00096E4E5EBF1E0DE01A958BD4F01900D9207 +:1012B0009A95E1F7E0917101F0917201EE0FFF1F35 +:1012C00027E732E036C096E4E5EBF1E0DE01AF5C03 +:1012D000BD4F01900D929A95E1F7E0917101F09167 +:1012E0007201EE0FFF1F21E332E093C08A3009F054 +:1012F000CBC0F8019181943009F072C29281809143 +:101300007301992309F473C081508093730196E4AB +:10131000E5EBF1E0DE01A551BE4F01900D929A95EB +:10132000E1F7E0917101F0917201EE0FFF1F2BEEDA +:1013300031E02C0F3D1FE20FF31F60817181680FB8 +:10134000711D882777FD8095982F0E94AC3120E091 +:1013500030E040E451E40E94113120E030E040E808 +:1013600050E40E94A9309B01AC0160E070E080E095 +:1013700090E40E94C33221E230ED42E053E40E9447 +:1013800060324CE050E00E94BB0F20E04BE760E091 +:1013900083E093E00E94B41920E04BE761E083E032 +:1013A00093E00E94B41920E04BE762E083E093E011 +:1013B0000E94B41920E04BE763E083E093E00E94D1 +:1013C000B41920E04BE764E083E093E0C454DD4FC0 +:1013D0000FB6F894DEBF0FBECDBFDF91CF911F9146 +:1013E0000F91FF90EF90DF90CF900C94B41996E49A +:1013F000E5EBF1E0DE01AB55BE4F01900D929A9501 +:10140000E1F7E0917101F0917201EE0FFF1F25EA03 +:1014100031E02C0F3D1FE20FF31F60817181680FD7 +:10142000711D882777FD8095982F0E94AC3120E0B0 +:1014300030E040E451E40E94113120E030E040E827 +:1014400050E40E94A9309B01AC0160E070E080E0B4 +:1014500090E40E94C33221E230ED42E053E40E9466 +:1014600060320E94EB0CC454DD4F0FB6F894DEBF1F +:101470000FBECDBFDF91CF911F910F91FF90EF90E5 +:10148000DF90CF900C94BE0C893009F0D3C0F801E6 +:101490009181943009F0A4C19281992309F4A0C1EB +:1014A00080917101909172010196909372018093E5 +:1014B000710120E04BE760E083E093E00E94B41903 +:1014C00020E04BE761E083E093E00E94B41920E064 +:1014D0004BE762E083E093E00E94B41920E04BE721 +:1014E00063E083E093E00E94B41920E04BE764E0FE +:1014F00083E093E00E94B4190E94BE0C00E010E06B +:10150000E6E4FE2E80917301E5EBF1E0DE01A15AE5 +:10151000BE4F9F2D01900D929A95E1F7E0917101D8 +:10152000F0917201E00FF11FEE0FFF1F2FE531E088 +:101530002C0F3D1FE20FF31F60817181680F711D39 +:10154000882777FD8095982F0E94AC3120E030E00D +:1015500040E451E40E94113120E030E040E850E4E2 +:101560000E94A9309B01AC0160E070E080E090E453 +:101570000E94C33221E230ED42E053E40E94603227 +:101580004CE050E00E94BB0F3FEF87EE93E03150FC +:1015900080409040E1F700C0000080917301E5EBCE +:1015A000F1E0DE01A75EBE4F9F2D01900D929A954E +:1015B000E1F7E0917101F0917201E00FF11FEE0F80 +:1015C000FF1F29E131E02C0F3D1FE20FF31F608167 +:1015D0007181680F711D882777FD8095982F0E9473 +:1015E000AC3120E030E040E451E40E94113120E0D1 +:1015F00030E040E850E40E94A9309B01AC0160E07B +:1016000070E080E090E40E94C33221E230ED42E0DD +:1016100053E40E9460320E94EB0C8FEF9CE701972D +:10162000F1F700C000000F5F1F4F0830110509F0EF +:1016300069CF94C1883009F0D3C0F801918194300A +:1016400009F0CEC09281992309F4CAC0809171013A +:10165000909172010197909372018093710120E043 +:101660004BE760E083E093E00E94B41920E04BE791 +:1016700061E083E093E00E94B41920E04BE762E070 +:1016800083E093E00E94B41920E04BE763E083E03D +:1016900093E00E94B41920E04BE764E083E093E01C +:1016A0000E94B4190E94BE0C00E010E056E4F52E32 +:1016B00080917301E5EBF1E0DE01AD52BF4F9F2D4C +:1016C00001900D929A95E1F7E0917101F09172010C +:1016D000E00FF11FEE0FFF1F23ED30E02C0F3D1F39 +:1016E000E20FF31F60817181680F711D882777FDFC +:1016F0008095982F0E94AC3120E030E040E451E426 +:101700000E94113120E030E040E850E40E94A9300E +:101710009B01AC0160E070E080E090E40E94C33285 +:1017200021E230ED42E053E40E9460324CE050E0B0 +:101730000E94BB0F3FEF87EE93E031508040904016 +:10174000E1F700C0000080917301E5EBF1E0DE01FC +:10175000A357BF4F9F2D01900D929A95E1F7E0910D +:101760007101F0917201E00FF11FEE0FFF1F2DE8E4 +:1017700030E02C0F3D1FE20FF31F60817181680F75 +:10178000711D882777FD8095982F0E94AC3120E04D +:1017900030E040E451E40E94113120E030E040E8C4 +:1017A00050E40E94A9309B01AC0160E070E080E051 +:1017B00090E40E94C33221E230ED42E053E40E9403 +:1017C00060320E94EB0C8FEF9CE70197F1F700C0AD +:1017D00000000F5F1F4F0830110509F069CFBEC030 +:1017E000F801228190917301222309F45DC026E45F +:1017F000E5EBF1E0DE01A95BBF4F01900D922A9568 +:10180000E1F7E0917101F0917201E80FF11DEE0F27 +:10181000FF1F27E430E02C0F3D1FE20FF31F608114 +:101820007181690F711D882777FD8095982F0E941F +:10183000AC3120E030E040E451E40E9411316B0112 +:101840007C01F801818165E070E0681B71098827DF +:1018500077FD8095982F0E94AC319B01AC01C701A8 +:10186000B6010E94A9309B01AC0160E070E080E00D +:1018700090E40E94C33221E230ED42E053E40E9442 +:1018800060324FE050E0C454DD4F0FB6F894DEBF35 +:101890000FBECDBFDF91CF911F910F91FF90EF90C1 +:1018A000DF90CF900C94BB0F26E4E5EBF1E0DE0176 +:1018B000119601900D922A95E1F7E0917101F09156 +:1018C0007201E80FF11DEE0FFF1F21E030E02C0F39 +:1018D0003D1FE20FF31F60817181690F711D882721 +:1018E00077FD8095982F0E94AC3120E030E040E4F5 +:1018F00051E40E9411316B017C01F801818165E0A6 +:1019000070E0681B7109882777FD8095982F0E94E9 +:10191000AC319B01AC01C701B6010E94A9309B010B +:10192000AC0160E070E080E090E40E94C33221E20C +:1019300030ED42E053E40E946032C454DD4F0FB6F4 +:10194000F894DEBF0FBECDBFDF91CF911F910F91F5 +:10195000FF90EF90DF90CF900C94EB0CC454DD4FD0 +:101960000FB6F894DEBF0FBECDBFDF91CF911F91B0 +:101970000F91FF90EF90DF90CF9008951092870223 +:1019800010928602809171008D7F8093710080910A +:1019900090008F7780939000109248021092470237 +:1019A00010928002109281021092820210928302A1 +:1019B00010927F0210927E02EEE5F2E0AEE4B2E019 +:1019C00011921192119211921D921D9282E0EE37A6 +:1019D000F807B1F708956F927F928F929F92AF921E +:1019E000BF92CF92DF92EF92FF920F931F93CF930C +:1019F000DF936B017C010EE712E04CE5A42E42E080 +:101A0000B42EC7E0D0E0A7019601F801929182912F +:101A1000729162918F010E940D31882349F02197C4 +:101A2000F2E0AF1AB108CF3F8FEFD80761F734C0AB +:101A3000F8011082118212821382F5011182108244 +:101A4000FE01EE0FFF1FEE0FFF1FE25AFD4FDE01FA +:101A5000AA0FBB1FA25BBD4FCE011AC001964481E5 +:101A600055816681778140835183628373831482B9 +:101A700015821682178212962D913C91139711961A +:101A80003C932E9313961C921E92129734961296A4 +:101A90008730910519F7C3CF809186029091870214 +:101AA000019797FD05C0909387028093860204C03A +:101AB0001092870210928602E0918602F0918702CE +:101AC0003097C9F4809171008D7F8093710080916F +:101AD00090008F7780939000109280021092810284 +:101AE000109282021092830210927F0210927E0264 +:101AF0001092470285C03197DF01AA0FBB1FAA0FC2 +:101B0000BB1FA25ABD4FCD90DD90ED90FC90EE0F23 +:101B1000FF1FE25BFD4FC081D18160908002709019 +:101B200081028090820290908302A7019601662D27 +:101B3000772D882D992D0E940D3187FF25C0262DE8 +:101B4000372D482D592DC701B6010E94A83020E03D +:101B500030E04AEF54E40E9411315B018C012A2DE0 +:101B60003B2D402F512F662D772D882D992D0E94CA +:101B7000A9303B014C01A7019601772D992D0E94B8 +:101B80000D31181664F72EC0A7019601662D772D2A +:101B9000882D992D0E945C32181634F5A701960104 +:101BA000662D772D882D992D0E94A83020E030E0F9 +:101BB0004AEF54E40E9411315B018C012A2D3B2D28 +:101BC000402F512F662D772D882D992D0E94A830FA +:101BD0003B014C01A7019601772D992D0E945C32A3 +:101BE00087FFECCF10924D02C0928002D09281020A +:101BF000E0928202F0928302D0937F02C0937E0231 +:101C0000DF91CF911F910F91FF90EF90DF90CF90D8 +:101C1000BF90AF909F908F907F906F9008953E9A65 +:101C2000E1E7F0E080818D7F808382E08093900007 +:101C30008AE18093910008951F920F920FB60F9240 +:101C40001124CF92DF92EF92FF922F933F934F9305 +:101C50005F936F937F938F939F93AF93BF93CF9334 +:101C6000DF93EF93FF9380914702882309F479C0B3 +:101C700020E030E0A90160918002709181028091A2 +:101C80008202909183020E945C3218160CF069C0A7 +:101C900020E030E040E251E46091490270914A0254 +:101CA00080914B0290914C020E945C321816BCF459 +:101CB00080918402909185020196609186027091D4 +:101CC00087020E9448349093850280938402109288 +:101CD000490210924A0210924B0210924C02C0919B +:101CE0008402D0918502CC0FDD1FCC0FDD1FC25ABC +:101CF000DD4F288139814A815B8160E074E284E7AD +:101D00009BE40E9411310E94793170939700609397 +:101D10009600288139814A815B8160E074E284E722 +:101D20009BE40E9411310E947931759567957093FB +:101D300099006093980020E030E040E85FE3609114 +:101D4000490270914A0280914B0290914C020E948C +:101D5000A9306093490270934A0280934B0290939A +:101D60004C0280914802882309F493C0C09043023A +:101D7000D0904402E0904502F090460220E030E02E +:101D8000A901C701B6010E945C321816F4F4A7013C +:101D9000960160E074E284E79BE40E9411310E94A6 +:101DA00079317093970060939600A701960160E0E7 +:101DB00074E284E79BE40E9411310E9479317595A9 +:101DC0006795709399006093980060913D027091BF +:101DD0003E026F5F7F4F70933E0260933D0280E052 +:101DE00090E00E94AA3120913F0230914002409140 +:101DF0004102509142020E945C3287FD4AC08091AC +:101E00003C028F5F80933C029091F0038917A0F011 +:101E10008091F503882319F010923C020DC0809147 +:101E200071008D7F80937100809190008F778093F7 +:101E30009000109248022DC0E091F103F091F2035E +:101E400080913C0298E0899FE00DF11D1124808172 +:101E50009181A281B3818093430290934402A09325 +:101E60004502B093460220E030E040E85EE3648142 +:101E70007581868197810E94603260933F027093E2 +:101E80004002809341029093420210923E021092CF +:101E90003D02FF91EF91DF91CF91BF91AF919F9163 +:101EA0008F917F916F915F914F913F912F91FF9013 +:101EB000EF90DF90CF900F900FBE0F901F9018956E +:101EC0000F931F93CF93DF9300D0CDB7DEB78C0174 +:101ED00080914702882331F04A8369830E94BE0CB7 +:101EE00069814A8181E0809348021093F203009354 +:101EF000F1036093F0034093F503109249021092AE +:101F00004A0210924B0210924C0210923C02F801CD +:101F10004081518162817381409343025093440216 +:101F2000609345027093460220E030E040E85EE3B3 +:101F300064817581868197810E94603260933F023F +:101F400070934002809341029093420210923E02AD +:101F500010923D02809171008260809371008091A7 +:101F600090008068809390000F900F90DF91CF9148 +:101F70001F910F9108956F927F928F929F92AF92CF +:101F8000BF92CF92DF92EF92FF920F931F93CF9366 +:101F9000DF936B017C01EA018091480281110E946C +:101FA000BE0C81E08093470220E030E0A901C70128 +:101FB000B6010E945C3218160CF09AC06090800244 +:101FC00070908102809082029090830220E030E045 +:101FD000A901662D772D882D992D0E940D31811133 +:101FE00028C0C0928002D0928102E0928202F092D8 +:101FF0008302D0937F02C0937E02809186029091EB +:102000008702FC01EE0FFF1FEE0FFF1FE25AFD4F8C +:10201000C082D182E282F382FC01EE0FFF1FE25BFD +:10202000FD4FD183C08301969093870280938602EF +:102030005FC0A7019601662D772D882D992D0E94EE +:102040000D3187FF25C0262D372D482D592DC7016D +:10205000B6010E94A83020E030E04AEF54E40E942C +:1020600011315B018C012A2D3B2D402F512F662D04 +:10207000772D882D992D0E94A9303B014C01A70195 +:102080009601772D992D0E940D31181664F7A9CF6E +:10209000A7019601662D772D882D992D0E945C321F +:1020A00018160CF09ECFA7019601662D772D882D6E +:1020B000992D0E94A83020E030E04AEF54E40E94BD +:1020C00011315B018C012A2D3B2D402F512F662DA4 +:1020D000772D882D992D0E94A8303B014C01A70136 +:1020E0009601772D992D0E945C3287FFECCF79CF36 +:1020F000809171008260809371008091900080686F +:1021000080939000DF91CF911F910F91FF90EF90FE +:10211000DF90CF90BF90AF909F908F907F906F9007 +:102120000895809191020895CF93DF9300D01F927C +:10213000CDB7DEB72091FA03243021F523E02983BF +:102140009B838A832093E9008FEF06C095ED9A95D3 +:10215000F1F70000882329F09091E800815095FF65 +:10216000F5CF8091E80085FF0DC040E050E063E0CE +:1021700070E0CE0101960E947E148091E8008E7777 +:102180008093E8000F900F900F90DF91CF9108950A +:10219000CF93DF9300D01F92CDB7DEB72091FA0323 +:1021A000243029F522E029839B838A8383E080936E +:1021B000E9008FEF06C095ED9A95F1F700008823AE +:1021C00029F09091E800815095FFF5CF8091E800CB +:1021D00085FF0DC040E050E063E070E0CE01019665 +:1021E0000E947E148091E8008E778093E8000F9023 +:1021F0000F900F90DF91CF9108952091FA03243032 +:10220000F9F422E02093E9002FEF06C035ED3A956E +:10221000F1F70000222329F03091E800215035FF2A +:10222000F5CF2091E80025FF0BC040E050E065E0CD +:1022300070E00E947E148091E8008E778093E80021 +:102240000895CF93DF93EC018091FA03843041F538 +:1022500081E08093E9008FEF06C095ED9A95F1F744 +:102260000000882329F09091E800815095FFF5CF78 +:102270008091E80085FF14C040E050E068E070E025 +:10228000CE010E947E148091E8008E778093E80052 +:1022900088E0FE01A9E8B2E001900D928A95E1F78D +:1022A000DF91CF910895BF92CF92DF92EF92FF928C +:1022B0000F931F93CF93DF937C01B62EE90100E0CB +:1022C00010E0C42ED12C0BC04991202F2B0D2F775D +:1022D0004F776FE0C7010E94B4190F5F1F4F0C15B5 +:1022E0001D0594F3DF91CF911F910F91FF90EF9017 +:1022F000DF90CF90BF90089570E06F5F7F4F6F7059 +:1023000077270C94B4190F931F93CF93C42F633086 +:10231000710509F04AC0842F807F803849F18039E7 +:1023200009F043C0622F6F7770E080E090E00E9478 +:10233000AC3120E030E040E451E40E9411319B01D7 +:10234000AC0160E070E080E090E40E94C3320F775F +:1023500010E023E0159507952A95E1F72DEC3CEC6C +:1023600042E053E40E946032A8010E94BB0F1DC0EE +:10237000622F6F7770E080E090E00E94AC3120E047 +:1023800030E040E451E40E9411319B01AC0160E077 +:1023900070E080E090E40E94C3322DEC3CEC42E01F +:1023A00053E40E9460320E94EB0CCC3F29F4CF91A1 +:1023B0001F910F910C94BE0CCF911F910F91089516 +:1023C0000F931F93CF93DF93CDB7DEB727970FB649 +:1023D000F894DEBF0FBECDBF8C0114C08A810E946D +:1023E0008E199A819D839B819E839C819F838111FD +:1023F0001EC089818430B1F08730A1F08630A1F011 +:102400008530A1F0BE016F5F7F4F84E791E00E94AD +:10241000FB1C8111E3CF84E791E00E94EC1C0E9439 +:1024200067190DC083E003C082E001C081E0AE0106 +:102430004B5F5F4F682FC8010E94211AE3CF279698 +:102440000FB6F894DEBF0FBECDBFDF91CF911F91C5 +:102450000F910895EF92FF920F93CF93DF9300D0E7 +:1024600000D000D0CDB7DEB77B014A832B830C832D +:10247000842F2E834D830E948E192E814D818111D0 +:102480001BC082E0E816F10479F083E0E816F1045D +:1024900021F0EA94EF2821F50BC0073F11F487E003 +:1024A00001C084E089830BC0273FD9F786E0FACFCB +:1024B000473FB9F785E0F6CF42954F704983BE019B +:1024C0006F5F7F4F84E791E00E94B11C84E791E049 +:1024D0000E94CF1C84E791E00E94EC1C0E946719C7 +:1024E00026960FB6F894DEBF0FBECDBFDF91CF9119 +:1024F0000F91FF90EF9008958091F903811109C029 +:102500000E946D160E94CA168091E200846080933A +:10251000E20008951092F9030895089508950C9427 +:102520006129809192028F5F8093920262E30E9400 +:102530002834911135C01092920280919302882321 +:1025400079F18091FA03843049F58091E9008F7028 +:102550009091EC0090FF02C090E801C090E0982BB1 +:1025600084E08093E9008091EB0080FF14C08091AB +:10257000EE0087FD03C00FC01092F1008091E800CB +:1025800085FDFACF8091E80080FF05C08091E800CA +:102590008E778093E8009F709093E90010929302E9 +:1025A000089542E061EC81E00E94E31542E061ECB5 +:1025B00082E00E94E31542E061EC83E00E94E315B3 +:1025C00042E261EC84E00E94E31542E361E885E0C9 +:1025D0000E94E31542E360E886E00C94E3158091E5 +:1025E000FC03833009F454C030F4813071F0823040 +:1025F00009F0A5C08CC08A3009F479C08B3009F489 +:102600005FC0893009F09BC020C08091FB03813AF4 +:1026100009F095C08091E800877F8093E800809161 +:10262000FF0390910004892B21F060E080E090E0AE +:1026300003C068E089E892E070E00E941C15809178 +:10264000E8008B778093E80008958091FB03813246 +:1026500009F075C08091FF0390910004892B09F067 +:102660006EC08091E800877F8093E80005C080916C +:10267000FA03882309F463C08091E80082FFF7CF52 +:102680008091F100809391028091E8008B7753C094 +:102690008091FB03813A09F052C08091FF03909131 +:1026A0000004892B09F04BC08091E800877F80935C +:1026B000E8008091E80080FFFCCF80918A0136C05D +:1026C0008091FB038132D9F58091FF039091000442 +:1026D000892BA9F58091E800877F8093E8000E940C +:1026E0001A168091FD0380938A010C9456238091E1 +:1026F000FB03813221F58091E800877F8093E80019 +:102700000E941A168091FE0380938802089580919A +:10271000FB03813AA1F48091E800877F8093E80071 +:102720008091E80080FFFCCF809188028093F100C7 +:102730008091E8008E778093E8000C941A16089533 +:1027400083E093E00E94F0196AE272E183E093E093 +:102750000E94461A60EE71E183E093E00E944A1AFB +:1027600084B7877F84BF88E10FB6F89480936000B8 +:10277000109260000FBE90E080E80FB6F89480934E +:102780006100909361000FBE0E94741D0E946D163F +:102790000E94CA168091E20084608093E2007894DF +:1027A00063E871E183E093E00E94EC196CE771E16A +:1027B00083E093E00E94E41963E571E183E093E034 +:1027C0000E94E8190E940F0E0E9467190E94761D50 +:1027D00080E891E00E94201D0BC00E941E2980917C +:1027E000F803882329F00E94492981110E94681466 +:1027F0008091FA03853089F383E093E00E94F91B0E +:102800000E94801DF5CF292F332723303105B1F0E9 +:102810004CF42130310509F44DC02230310509F066 +:102820004EC007C02132310541F12232310591F10C +:1028300046C0E0EDF0E084EE93E045C0992781309A +:10284000910569F08230910589F0892B09F037C034 +:10285000E0EEF3E0E491F0E080EE93E034C0E2EBF0 +:10286000F3E0E491F0E082EB93E02DC0E6E8F3E0E2 +:10287000E491F0E086E893E026C0643000F5E62FAE +:10288000F0E0EE0FFF1FE550FE4F80819181E9E0FF +:10289000F0E019C0643098F4E62FF0E0DF01AA0FF1 +:1028A000BB1FAD5FBD4F8D919C91E55FFD4FE081FA +:1028B000F0E009C0E2E1F0E084EB94E004C0E0E085 +:1028C000F0E080E090E0DA018D939C93CF010895D1 +:1028D00080E189BD82E189BD09B400FEFDCF809110 +:1028E000D8008F7D8093D8008091E0008260809333 +:1028F000E0008091E00081FDFCCF0895BF92CF926F +:10290000DF92EF92FF920F931F93CF93DF937C019F +:102910008B01EA010E943B16B82E811133C020972B +:1029200031F028813981021B130BE20EF31EC12CFA +:10293000D12C23C08091E80085FD15C08091E8006E +:102940008E778093E800209749F0888199818C0DDB +:102950009D1D9983888325E0B22E14C00E943B16EA +:10296000882359F00EC0F70181917F018093F10017 +:1029700001501109FFEFCF1ADF0A01151105D1F639 +:1029800001C0B82E8B2DDF91CF911F910F91FF9039 +:10299000EF90DF90CF90BF900895BF92CF92DF92DB +:1029A000EF92FF920F931F93CF93DF937C018B01E4 +:1029B000EA010E943B16B82E811133C0209731F0F6 +:1029C00028813981021B130BE20EF31EC12CD12C7E +:1029D00023C08091E80085FD15C08091E8008B77C9 +:1029E0008093E800209749F0888199818C0D9D1D86 +:1029F0009983888345E0B42E14C00E943B16882337 +:102A000059F00EC08091F100F70181937F010150D0 +:102A10001109FFEFCF1ADF0A01151105D1F601C028 +:102A2000B82E8B2DDF91CF911F910F91FF90EF90DA +:102A3000DF90CF90BF90089540910104509102041F +:102A40004617570748F06115710539F44091E800C1 +:102A50004E774093E80001C0BA01FC0140E033C06A +:102A60008091FA03882309F444C0853009F443C0F7 +:102A70008091E80083FD41C08091E80082FD33C071 +:102A80008091E80080FF1FC09091F3008091F200D8 +:102A9000392F20E0A901482BCA0106C0419140937B +:102AA000F1006150710901966115710519F08830C6 +:102AB0009105A0F341E0089709F040E08091E8001B +:102AC0008E778093E8006115710551F64111C8CFEA +:102AD0000AC08091FA03882361F0853061F080910B +:102AE000E80083FD0AC08091E80082FFF2CF80E019 +:102AF000089582E0089583E0089581E0089540916B +:102B00000104509102044617570748F061157105FA +:102B100039F44091E8004E774093E80001C0BA01D3 +:102B2000FC0140E034C08091FA03882309F445C0D9 +:102B3000853009F444C08091E80083FD42C0809153 +:102B4000E80082FD34C08091E80080FF20C09091B1 +:102B5000F3008091F200392F20E0A901482BCA012F +:102B600007C044914093F10031966150710901967C +:102B70006115710519F08830910598F341E00897C7 +:102B800009F040E08091E8008E778093E8006115BD +:102B9000710549F64111C7CF0AC08091FA03882315 +:102BA00061F0853061F08091E80083FD0AC080917A +:102BB000E80082FFF2CF80E0089582E0089583E08C +:102BC000089581E00895982F2CC09093E9009817FC +:102BD00039F07091EC002091ED005091F00003C0AD +:102BE000242F762F50E021FD02C09F5F1AC0309144 +:102BF000EB003E7F3093EB003091ED003D7F309352 +:102C0000ED003091EB0031603093EB007093EC00FD +:102C10002093ED005093F0002091EE0027FDE5CFCA +:102C200007C0973090F28F708093E90081E008959B +:102C300080E008958091FB0387FD05C08091E80046 +:102C400080FF0EC012C08091E80082FD05C0809117 +:102C5000FA038111F8CF08958091E8008B7708C0BE +:102C60008091FA038111EACF08958091E8008E7770 +:102C70008093E80008958091E4009091E50045E696 +:102C80002091EC0020FD1FC023C02091FA032223D5 +:102C900091F0253091F02091EB0025FD10C020919E +:102CA000E4003091E5002817390751F34150C9017C +:102CB00039F784E0089582E0089583E0089581E083 +:102CC000089580E008952091E80020FFDECFF9CF3D +:102CD0002091E80022FFD9CFF4CF0E94DB160E949A +:102CE000E316E0EEF0E0808181608083E8EDF0E0C3 +:102CF00080818F77808319BCA7EDB0E08C918E7FA7 +:102D00008C9380818F7E80831092F90308950F93B6 +:102D10001F93CF93DF930E94DB160E94E316C8ED4A +:102D2000D0E088818F7788838881806888838881D4 +:102D30008F7D888319BC1092FA031092F6031092CB +:102D4000F8031092F70300EE10E0F80180818B7F0A +:102D5000808388818160888342E060E080E00E9417 +:102D6000E315E1EEF0E080818E7F8083E2EEF0E01B +:102D7000808181608083808188608083F801808188 +:102D80008E7F8083888180618883DF91CF911F91BE +:102D90000F910895E8EDF0E080818F7E8083E7ED6C +:102DA000F0E080818160808384E082BF81E0809355 +:102DB000F9030C948716E8EDF0E080818E7F808324 +:102DC0001092E20008951092DA001092E100089546 +:102DD0001F920F920FB60F9211242F933F934F9390 +:102DE0005F936F937F938F939F93AF93BF93EF9373 +:102DF000FF938091E10082FF0BC08091E20082FF8F +:102E000007C08091E1008B7F8093E1000E949112C6 +:102E10008091DA0080FF1FC08091D80080FF1BC026 +:102E20008091DA008E7F8093DA008091D90080FF54 +:102E30000DC080E189BD82E189BD09B400FEFDCFEE +:102E400081E08093FA030E947C1205C019BC1092A5 +:102E5000FA030E948A128091E10080FF19C08091DC +:102E6000E20080FF15C08091E2008E7F8093E20037 +:102E70008091E20080618093E2008091D8008062BE +:102E80008093D80019BC85E08093FA030E948E12CB +:102E90008091E10084FF30C08091E20084FF2CC06B +:102EA00080E189BD82E189BD09B400FEFDCF80913A +:102EB000D8008F7D8093D8008091E1008F7E809331 +:102EC000E1008091E2008F7E8093E2008091E20039 +:102ED00081608093E2008091F603882311F084E002 +:102EE00007C08091E30087FF02C083E001C081E05A +:102EF0008093FA030E948F128091E10083FF29C022 +:102F00008091E20083FF25C08091E100877F80935C +:102F1000E10082E08093FA031092F6038091E100D1 +:102F20008E7F8093E1008091E2008E7F8093E200AB +:102F30008091E20080618093E20042E060E080E006 +:102F40000E94E3158091F00088608093F0000E9459 +:102F50008D12FF91EF91BF91AF919F918F917F91D2 +:102F60006F915F914F913F912F910F900FBE0F90F6 +:102F70001F9018951F920F920FB60F9211242F9346 +:102F80003F934F935F936F937F938F939F93AF93F1 +:102F9000BF93CF93EF93FF938091E9008F7090914F +:102FA000EC0090FF02C090E801C090E0C92FC82B50 +:102FB0001092E9008091F000877F8093F000789470 +:102FC0000E94FE171092E9008091F00088608093C3 +:102FD000F000CF70C093E900FF91EF91CF91BF91C6 +:102FE000AF919F918F917F916F915F914F913F91A1 +:102FF0002F910F900FBE0F901F9018951F93CF9396 +:10300000DF93CDB7DEB7AC970FB6F894DEBF0FBE37 +:10301000CDBFEBEFF3E08091F100819324E0E3304A +:10302000F207C9F70E94EF128091E80083FF37C1D1 +:103030008091FB039091FC03953009F488C038F42B +:103040009130B1F170F0933009F029C131C098305E +:1030500009F4F8C0993009F404C1963009F01FC191 +:103060009DC0803821F0823809F019C108C08091D4 +:10307000F7039091F803992389F082600FC0809143 +:10308000FF03909100048F7099278093E90080914D +:10309000EB0085FB882780F91092E9009091E80009 +:1030A000977F9093E8008093F1001092F100D5C0D3 +:1030B000882319F0823009F0F2C08F7121F082303C +:1030C00009F0EDC00BC08091FD03813009F0E7C02D +:1030D000933009F080E08093F8032FC08091FD03C6 +:1030E00081112BC08091FF03909100048F7099276C +:1030F000009709F4D4C08093E9002091EB0020FFF1 +:103100001CC02091FC03233021F48091EB008062ED +:1031100012C09091EB0090619093EB0021E030E0C1 +:1031200001C0220F8A95EAF72093EA001092EA0084 +:103130008091EB0088608093EB001092E900809111 +:10314000E800877F8093E8000E941A16A8C08111CA +:10315000A6C08091FD039091FE038F779927182FC9 +:103160009091E3009078982B9093E3008091E80091 +:10317000877F8093E8000E941A168091E80080FF04 +:10318000FCCF8091E30080688093E300112311F06D +:1031900083E001C082E08093FA0381C080588230CE +:1031A00008F07DC08091FD039091FE038C3D23E0EB +:1031B000920779F583E08A838AE289834FB7F8948E +:1031C000DE01139620E03EE051E2E32FF0E0509361 +:1031D0005700E49120FF03C0E295EF703F5FEF706E +:1031E0008E2F90E0EA3010F0C79601C0C0968D9304 +:1031F0009D932F5F243149F74FBF8091E800877F6F +:103200008093E8006AE270E0CE0101960E941C15EE +:1032100013C0AE01455D5F4F6091FF030E94031430 +:103220000097E9F12091E800277F2093E800BC0196 +:103230008BA59CA50E947F158091E8008B778093D9 +:10324000E8002DC0803859F58091E800877F809391 +:10325000E8008091F6038093F1008091E8008E777A +:1032600071CF81111CC09091FD039230C0F4809108 +:10327000E800877F8093E8009093F6030E941A1677 +:103280008091F603811104C08091E30087FF02C0A2 +:1032900084E001C081E08093FA030E94D112809102 +:1032A000E80083FF0AC08091E800877F8093E800F0 +:1032B0008091EB0080628093EB00AC960FB6F8949F +:1032C000DEBF0FBECDBFDF91CF911F910895CF9389 +:1032D0008091FA038823B1F08091E9008F7090917A +:1032E000EC0090FF02C090E801C090E0C92FC82B0D +:1032F0001092E9008091E80083FD0E94FE17CF70D4 +:10330000C093E900CF910895881F8827881F0895EA +:1033100091E0883F08F490E0892F0895982F907FDE +:10332000903B99F038F4903981F0903A71F09038F0 +:10333000C9F40BC0903DA1F018F4903C99F410C072 +:10334000903E19F0903F71F402C083E00895E82F99 +:10335000E15FEF3038F4F0E0E15FFD4F80810895E8 +:1033600082E0089580E008950F932F774F776F7074 +:10337000606BDC01ED91FC91022F242F462F63E05E +:1033800070E009950F9108950F932F774F776F7025 +:103390006069DC01ED91FC91022F242F462F63E040 +:1033A00070E009950F9108950F932F774F776F7005 +:1033B0006068DC01ED91FC91022F242F462F63E021 +:1033C00070E009950F910895FC017383628308955D +:1033D000FC01738F628F0895FC01758F648F0895CF +:1033E000CF93DF93EC011DA21FA21EA2BC01685D5A +:1033F0007F4F40EC88519F4F0E942D1C1B821A82E8 +:103400001D821C821F821E82198618861B861A86C0 +:103410001D861C861F861E86198A188A1B8A1A8A90 +:103420001D8A1C8A1F8A1E8A198E188E1B8E1A8E60 +:103430001D8E1C8E1F8E1E8E19A218A2DF91CF9199 +:103440000895CF92DF92FF920F931F93CF93DF9354 +:103450001F92CDB7DEB7F62E6A018C0108511F4FBF +:1034600008C0F60161916F01C80149830E94341CB4 +:1034700049818C2D841B8F15A0F30F90DF91CF9184 +:103480001F910F91FF90DF90CF900895FC01718301 +:1034900060830895FC0171A360A30895AF92BF9269 +:1034A000CF92DF92EF92FF920F931F93CF93DF9310 +:1034B00000D01F92CDB7DEB77C016B01142FB22E66 +:1034C000A02EDC0195968C9195978430F1F45A9654 +:1034D000ED91FC915B97309709F4D8C0CB0101972F +:1034E00063E070E00E943434DB01AA0FBB1FA60F1B +:1034F000B71F49832A830B834C2D4A1B9E012F5FE4 +:103500003F4FBD01C7010995B1C06230710509F493 +:1035100053C06330710529F06130710509F09CC01A +:1035200083C0842F807F803A01F130F48038B9F075 +:10353000803909F0ABC00DC0803EE9F0803F09F151 +:10354000803B09F0A3C0D7011296ED91FC9113972F +:1035500023C0D7011496ED91FC9115971DC0D7019A +:103560001696ED91FC91179717C0D7011896ED911B +:10357000FC91199711C0D7011A96ED91FC911B97F8 +:103580000BC0423F09F082C0D7011C96ED91FC911F +:103590001D97309731F47AC0309709F477C0123F05 +:1035A00021F42A2D4B2D62EF04C0612F6F702A2D5C +:1035B0004B2DC70109955AC0842F807F803D59F05B +:1035C000803F79F0803C09F061C0D7011E96ED91F3 +:1035D000FC911F9719C0D7015096ED91FC9151971E +:1035E00013C0433F31F4D7015296ED91FC915397AC +:1035F00008C0413F09F04AC0D7015496ED91FC91B3 +:103600005597309741F442C0309709F43FC0133FBB +:1036100011F0113F19F44B2D612F03C0612F6F7012 +:103620004B2DC701099522C0842F0E948819882339 +:1036300031F0D7015696ED91FC91579707C0163F90 +:1036400029F5D7015896ED91FC9159973097F1F0F3 +:10365000612FC70109950AC064307105A8F416C02E +:103660000A2D2B2D412FB601C7010995D7015E9672 +:10367000ED91FC915F97309789F00A2D2B2D412F0A +:10368000B601C70109950AC0C12CD12CD7015C969F +:10369000ED91FC915D97309719F7E8CF0F900F905F +:1036A0000F90DF91CF911F910F91FF90EF90DF90DE +:1036B000CF90BF90AF900895EF92FF920F931F931A +:1036C000CF93DF93EC01162F862F0E948819882351 +:1036D00069F0FDA081E08DA300E020E0412F61E0D2 +:1036E00070E0CE010E944E1AFDA27CC0812F0E9484 +:1036F00084194DA1882309F440C0443029F01AA34D +:1037000021E030E03FA32EA3812F0E948E1981304B +:1037100031F070F0823051F0833059F507C08DA33D +:1037200000E020E0412F61E070E01EC08DA35AC090 +:10373000103F19F0173FE9F404C084E08DA31AA3E9 +:103740003FC02EA13FA1C90163E070E00E94343464 +:103750008C0F9D1FFC0112A3B9016F5F7F4F7FA3E8 +:103760006EA30CA12BA14AA1CE010E944E1A1DA24C +:1037700039C01DA21FA21EA235C0442399F12EA15B +:103780003FA1C90163E070E00E9434347C01FE0176 +:10379000E80FF91F12A3B9016F5F7F4F7FA36EA3DC +:1037A0008130910591F082E0E816F104D9F40CA182 +:1037B0002BA14AA1CE010E944E1A8DA1843091F016 +:1037C00081E090E09FA38EA30DC0423059F400E049 +:1037D0002BA14AA1CE010E944E1A8DA1843011F076 +:1037E000FFA2EEA2DF91CF911F910F91FF90EF907A +:1037F0000895CF92DF92EF92FF920F931F93CF9392 +:10380000DF93EC01E8A1F9A1309709F009958E0149 +:1038100008511F4FC8010E94661CE12CF12CC82ED4 +:10382000D12C0FC060E0C8010E947A1C682FCE0125 +:103830000E945C1B61E0C8010E948B1C8FEFE81A9C +:10384000F80AEC14FD0470F3DF91CF911F910F91F2 +:10385000FF90EF90DF90CF900895FC014283748336 +:1038600063831182108208950F931F93CF93DF9388 +:10387000EC01062F0E94AC1C182F298130E0C901F1 +:1038800001966A8170E00E944834488150E08417B4 +:10389000950729F4812F0E94AF1C80E012C0EB81B4 +:1038A000FC81E20FF31F00832981822F90E00196B3 +:1038B0006A8170E00E9448348983812F0E94AF1C86 +:1038C00081E0DF91CF911F910F910895CF93DF9306 +:1038D000EC010E94AC1C29819881291710F0C22F9D +:1038E00002C0CA81C20FC91B0E94AF1C8C2FDF917E +:1038F000CF910895FC012081862F90E0820F911DC9 +:10390000628170E00E9448340380F481E02DE80F6A +:10391000F91F808108950F931F93CF93DF931F9218 +:10392000CDB7DEB78C0169830E94AC1C482FF8012B +:1039300080816981262F30E0280F311D6281C90105 +:1039400070E00E9448348083842F0F90DF91CF91E4 +:103950001F910F910C94AF1C8FB7F89408958FBFEF +:103960000895FC01CB012091FA032430B1F42181A8 +:103970002F702093E90040E050E064E070E00E9486 +:103980007E1481110BC09091E80095FD07C09091C5 +:10399000E8009E779093E800089582E008952091D2 +:1039A000FA032430A9F4FC0181818F708093E9002F +:1039B0003091F3002091F200932F80E0822B892B2D +:1039C00049F08091E8008E778093E8000C943B16D4 +:1039D00082E0089580E008952091FA03243051F4A4 +:1039E000FC0121812F702093E9002091E80020FD47 +:1039F0000C94CF1C0895FC01CB012091FA032430D4 +:103A000011F080E0089526812F702093E900209125 +:103A1000E80022FFF6CF2091E80025FFF2CF40E03A +:103A200050E064E070E00E94CD148091E80085FDD4 +:103A300005C08091E8008B778093E80081E00895CD +:103A400090939502809394020895E0919402F091EE +:103A50009502309721F00190F081E02D099480E0EB +:103A60000895E0919402F0919502309721F0028040 +:103A7000F381E02D09940895E0919402F09195026C +:103A8000309721F00480F581E02D0994089520916C +:103A90009602309197028217930771F090939702E4 +:103AA00080939602E0919402F0919502309721F074 +:103AB0000680F781E02D09940895209198023091B5 +:103AC00099028217930771F090939902809398025C +:103AD000E0919402F0919502309721F00084F185F5 +:103AE000E02D0994089508950C94731D0E94952962 +:103AF0000E94AD060E94692A0C9411300C94E705CF +:103B00005F926F927F928F929F92AF92BF92CF926D +:103B1000DF92EF92FF920F931F93CF93DF93CDB776 +:103B2000DEB72A970FB6F894DEBF0FBECDBF0E9456 +:103B3000BD079AE9C92E92E0D92E00E010E0AA2430 +:103B4000A394B12C502E802F0E9411093C01F60144 +:103B5000E190F1906F01E826F926E114F10431F4C7 +:103B60000F5F1F4F0530110569F73AC08091F002D1 +:103B700081FD0E941A0920E030E04501022E02C0BA +:103B8000880C991C0A94E2F7C4018E219F21892B8D +:103B900009F12E835F826820792081E0672809F48B +:103BA00080E088870E949E298160782F9A87898784 +:103BB0004E815F8168858A850E94391EF801EE0F6B +:103BC000FF1FE656FD4F80819181882599259183BD +:103BD000808316C02F5F3F4F2C30310571F6C0CF68 +:103BE0008FEF89838A831B820E949E298160782FB0 +:103BF0009D838C8349815A816B818D810E94391EFE +:103C00000E94562D1091A4020E94251D1817D9F06C +:103C10000E94251D8093A4022A960FB6F894DEBF59 +:103C20000FBECDBFDF91CF911F910F91FF90EF900D +:103C3000DF90CF90BF90AF909F908F907F906F90CC +:103C40005F900C947E1D2A960FB6F894DEBF0FBECF +:103C5000CDBFDF91CF911F910F91FF90EF90DF903B +:103C6000CF90BF90AF909F908F907F906F905F901C +:103C70000895CF93DF93CDB7DEB72B970FB6F894A7 +:103C8000DEBF0FBECDBF4F83588769877A878B878A +:103C9000DE01119686E0FD0111928A95E9F785E033 +:103CA000FE01379601900D928A95E1F749815A817C +:103CB0006B817C818D819E810E9415262B960FB68B +:103CC000F894DEBF0FBECDBFDF91CF910895CF93A3 +:103CD000C82F882309F4C1C0823859F40E94251DD9 +:103CE00081FDBBC089E30E947C280E94F82889E3FB +:103CF0000CC0833879F40E94251D80FDAEC083E599 +:103D00000E947C280E94F82883E50E949E28CF917B +:103D10000C94F828843859F40E94251D82FD9DC01A +:103D200087E40E947C280E94F82887E4EECF845024 +:103D3000813A48F48C2F0E94732F81118EC08C2FF2 +:103D40000E947C28E4CF8C2F805E883050F4C770AE +:103D500081E090E001C0880FCA95EAF70E94BF2871 +:103D6000D6CF8C2F855A833078F4C53A29F0C63ADD +:103D700031F482E890E005C081E890E002C083E879 +:103D800090E0CF910C94471D8C2F885A833108F016 +:103D900064C0C83A39F1C93A41F1CA3A49F1CB3A5B +:103DA00051F1CC3A59F1CD3A61F1C03B69F1CE3ACB +:103DB00071F1CF3A79F1C13B81F1C23B89F1C33B4B +:103DC00091F1C43B99F1C53BA1F1C63BA9F1C73BB9 +:103DD000B1F1C83BB9F1C93BC1F1CA3BC9F58AE2AF +:103DE00092E038C082EE90E035C089EE90E032C0BB +:103DF0008AEE90E02FC085EB90E02CC086EB90E03F +:103E000029C087EB90E026C08CEC90E023C08DECBD +:103E100090E020C083E891E01DC08AE891E01AC0DC +:103E200082E991E017C084E991E014C081E292E058 +:103E300011C083E292E00EC084E292E00BC085E202 +:103E400092E008C086E292E005C087E292E002C0FC +:103E500080E090E0CF910C945D1DCF910895882370 +:103E600009F44DC0823859F40E94251D81FF47C0D6 +:103E700089E30E947C280E94F82889E30CC08338DB +:103E800071F40E94251D80FF3AC083E50E947C28C2 +:103E90000E94F82883E50E949E280C94F828843814 +:103EA00059F40E94251D82FF2AC087E40E947C28C5 +:103EB0000E94F82887E4EFCF982F9450913A08F4A5 +:103EC000EACF982F905E983058F4282F277081E021 +:103ED00090E001C0880F2A95EAF70E94C528DDCF3F +:103EE000982F955A933020F480E090E00C94471D71 +:103EF000885A833120F480E090E00C945D1D089591 +:103F0000882321F00E94BF280C94F8280895882364 +:103F100021F00E94C5280C94F8280895BF92CF92F2 +:103F2000DF92EF92FF920F931F93CF93DF93CDB762 +:103F3000DEB727970FB6F894DEBF0FBECDBF8C015A +:103F400085E0F801DE01119601900D928A95E1F766 +:103F5000F80130812181F280558152955F70838113 +:103F60009481892B39F02F3F41F481E090E03F3F6D +:103F700031F003C081E090E002C080E090E080FD7D +:103F800073C339832A8389819A815E830E94392889 +:103F9000B92E8F830E9438280E9460272B2D2295EE +:103FA0002F7030E05E816F812530310509F4E6C065 +:103FB0006CF4243031050CF0A2C04B2D407F8B2DCA +:103FC0008F70223031050CF045C017C02C30310500 +:103FD0004CF42A3031050CF0E7C12830310509F0E6 +:103FE00043C3E5C02D30310509F4BAC20CF4A2C2B6 +:103FF0002F30310509F038C323C3182F411101C0F8 +:1040000002C01295107FFF2059F0112309F46BC2F2 +:10401000812F6F830E94CF280E94F8286F8163C28E +:10402000862F0E942F1F112309F41EC3812F0E9487 +:10403000D52827960FB6F894DEBF0FBECDBFDF910F +:10404000CF911F910F91FF90EF90DF90CF90BF9095 +:104050000C94F828403211F08295807F662319F085 +:10406000613071F523C0FF20B1F0511101C032C0A1 +:10407000513081F527960FB6F894DEBF0FBECDBF45 +:10408000DF91CF911F910F91FF90EF90DF90CF9034 +:10409000BF900C94DF28511101C003C0513009F4C6 +:1040A000E3C28E830E94E2288E819AC1FF2021F014 +:1040B000563008F0D9C20EC0553008F0D5C290C1B4 +:1040C000FF20C9F0552331F0F801958190FF0BC214 +:1040D0009F70958327960FB6F894DEBF0FBECDBFB5 +:1040E000DF91CF911F910F91FF90EF90DF90CF90D4 +:1040F000BF900C94801F552309F472C109C22B2D67 +:1041000026952695237030E02115310529F02130C0 +:10411000310509F0A9C219C0FF2021F0862F9B2D7F +:10412000937002C080E090E027960FB6F894DEBF4F +:104130000FBECDBFDF91CF911F910F91FF90EF90F8 +:10414000DF90CF90BF900C94471DFF2021F0862F69 +:104150009B2D937002C080E090E027960FB6F894F4 +:10416000DEBF0FBECDBFDF91CF911F910F91FF90AA +:10417000EF90DF90CF90BF900C945D1D862FFF20B5 +:1041800019F00E945C2C02C00E94C42C27960FB626 +:10419000F894DEBF0FBECDBFDF91CF911F910F917D +:1041A000FF90EF90DF90CF90BF900C944B2D8B2D14 +:1041B000837009F079C0F11057C2262F22952695F9 +:1041C0002770220F220F862F8F70C82ED12CE12C42 +:1041D000F12C022E04C0CC0CDD1CEE1CFF1C0A943A +:1041E000D2F764FF10C06FE070E080E090E004C0A0 +:1041F000660F771F881F991F2A95D2F760957095D3 +:104200008095909503C060E070E0CB012B2D269542 +:1042100026952370422F50E042305105D9F04330AB +:10422000510569F16C297D298E299F29413051055D +:1042300051F127960FB6F894DEBF0FBECDBFDF91C8 +:10424000CF911F910F91FF90EF90DF90CF90BF9093 +:104250000C9475276C297D298E299F2927960FB6E6 +:10426000F894DEBF0FBECDBFDF91CF911F910F91AC +:10427000FF90EF90DF90CF90BF900C9487270E9423 +:104280007527C701B60127960FB6F894DEBF0FBE9B +:10429000CDBFDF91CF911F910F91FF90EF90DF90F5 +:1042A000CF90BF900C946327FF2019F08B2D817065 +:1042B00001C08695882309F4D7C1262F229526951B +:1042C0002770220F220F862F8F70C82ED12CE12C41 +:1042D000F12C022E04C0CC0CDD1CEE1CFF1C0A9439 +:1042E000D2F764FF10C06FE070E080E090E004C09F +:1042F000660F771F881F991F2A95D2F760957095D2 +:104300008095909503C060E070E0CB012B2D269541 +:1043100026952370422F50E042305105D9F04330AA +:10432000510569F16C297D298E299F29413051055C +:1043300051F127960FB6F894DEBF0FBECDBFDF91C7 +:10434000CF911F910F91FF90EF90DF90CF90BF9092 +:104350000C9414286C297D298E299F2927960FB645 +:10436000F894DEBF0FBECDBFDF91CF911F910F91AB +:10437000FF90EF90DF90CF90BF900C9426280E9482 +:104380001428C701B60127960FB6F894DEBF0FBEFA +:10439000CDBFDF91CF911F910F91FF90EF90DF90F4 +:1043A000CF90BF900C940228603F59F120F4603EFA +:1043B00008F494C008C0623F09F467C0F0F1633F9D +:1043C00009F08CC065C0162F1F708B2D8F71FF20D8 +:1043D00021F00E94AD27812F7DCE0E94C827812F1A +:1043E00027960FB6F894DEBF0FBECDBFDF91CF91F9 +:1043F0001F910F91FF90EF90DF90CF90BF900C94A2 +:10440000871FFF20B1F0553008F02EC18B2D8F7122 +:1044100027960FB6F894DEBF0FBECDBFDF91CF91C8 +:104420001F910F91FF90EF90DF90CF90BF900C9471 +:10443000E727563008F018C1E9CFFF2099F08B2DFF +:104440008F7127960FB6F894DEBF0FBECDBFDF91F8 +:10445000CF911F910F91FF90EF90DF90CF90BF9081 +:104460000C94AD278B2D8F7127960FB6F894DEBF75 +:104470000FBECDBFDF91CF911F910F91FF90EF90B5 +:10448000DF90CF90BF900C94C827F110EBCFD7CF1F +:10449000FF2099F08B2D8F7127960FB6F894DEBF11 +:1044A0000FBECDBFDF91CF911F910F91FF90EF9085 +:1044B000DF90CF90BF900C949E2727960FB6F8946C +:1044C000DEBF0FBECDBFDF91CF911F910F91FF9047 +:1044D000EF90DF90CF90BF900C949927FF20A9F028 +:1044E000552309F4ACCF862F27960FB6F894DEBF7C +:1044F0000FBECDBFDF91CF911F910F91FF90EF9035 +:10450000DF90CF90BF900C94671E552309F4AACF7B +:10451000862F27960FB6F894DEBF0FBECDBFDF9172 +:10452000CF911F910F91FF90EF90DF90CF90BF90B0 +:104530000C942F1F4B2D4F70C8010E941A03279611 +:104540000FB6F894DEBF0FBECDBFDF91CF911F91A4 +:104550000F91FF90EF90DF90CF90BF900C94CB26FF +:10456000F11082C09B2D9F70492F50E042305105C1 +:1045700099F144F44115510569F04130510509F0B4 +:1045800073C019C043305105C1F14430510509F0E1 +:104590006BC044C027960FB6F894DEBF0FBECDBFE8 +:1045A000DF91CF911F910F91FF90EF90DF90CF900F +:1045B000BF900C94223027960FB6F894DEBF0FBE42 +:1045C000CDBFDF91CF911F910F91FF90EF90DF90C2 +:1045D000CF90BF900C94393027960FB6F894DEBF79 +:1045E0000FBECDBFDF91CF911F910F91FF90EF9044 +:1045F000DF90CF90BF900C94553027960FB6F8946B +:10460000DEBF0FBECDBFDF91CF911F910F91FF9005 +:10461000EF90DF90CF90BF900C946830862F279654 +:104620000FB6F894DEBF0FBECDBFDF91CF911F91C3 +:104630000F91FF90EF90DF90CF90BF900C948C3053 +:104640004B2D4F70C80127960FB6F894DEBF0FBEF2 +:10465000CDBFDF91CF911F910F91FF90EF90DF9031 +:10466000CF90BF900C941B0927960FB6F894DEBF2D +:104670000FBECDBFDF91CF911F910F91FF90EF90B3 +:10468000DF90CF90BF9008950E94DC280E94B1284F +:104690000E94F8280E94F72D0E944B2D80E090E0A8 +:1046A0000E94471D80E090E00C945D1D0E94CC2884 +:1046B0000C9444230E943928292F22952F7030E032 +:1046C0002C3031054CF42A3031056CF4225031097C +:1046D0002230310590F407C02C30310551F02F30D5 +:1046E000310559F406C0803E10F0803F31F481E07E +:1046F000089593FB882780F9089580E00895CF936B +:10470000DF9300D000D01F92CDB7DEB70F900F908F +:104710000F900F900F90DF91CF910895CF93DF937B +:1047200000D000D000D0CDB7DEB726960FB6F894F3 +:10473000DEBF0FBECDBFDF91CF9108951F93CF9302 +:10474000DF93C091DB0216E012C0D0E01C9FF001A5 +:104750001D9FF00D1124E555FD4F4081518162816F +:104760007381848195810E948E232196C7708091E8 +:10477000DC02C813EACFDF91CF911F9108954091D9 +:10478000A5025091A6026091A7027091A8028091A3 +:10479000A9029091AA020C948E230F931F93CF939A +:1047A000DF938091AA0282958F7009F069C0809191 +:1047B000A702882309F464C0A091DB02D091DC0237 +:1047C000B091A502C091A6028091A8029091A90281 +:1047D00021E030E0BF3F11F020E030E0122FBC01BB +:1047E0006095709506E04AC0009721F0CF3F29F40C +:1047F000212F05C021E030E002C020E030E020FDA4 +:104800003BC04A2F50E0049FF001059FF00D11249A +:10481000E555FD4F2181C2132FC02081B2132CC05A +:104820002281211129C0238134812817390718F0EA +:10483000281B390B02C0260F371F283C3105E0F436 +:104840008091AA028F7080618093AA0286E0849F83 +:10485000F001859FF00D1124E055FD4F80818F7090 +:104860008061808385EA92E00E948E1FDF91CF9164 +:104870001F910F910C949E23AF5FA770AD13B4CF1F +:10488000DF91CF911F910F910895EF92FF920F93B7 +:104890001F93CF93DF93CDB7DEB762970FB6F8942F +:1048A000DEBF0FBECDBF8C0185E0F801DE011D9695 +:1048B00001900D928A95E1F7D8014C9111965C9187 +:1048C000119712966C9112971396ED90FC90149795 +:1048D0007091A502E091A6028091A8029091A90290 +:1048E000009739F0EF3F41F421E030E07F3F31F0B5 +:1048F00003C021E030E002C020E030E020FD5CC1D8 +:104900002091A702222309F4F1C0E816F90628F045 +:104910009701281B390BC90104C0809590958E0D15 +:104920009F1D883C910508F098C08091AA02982F9D +:10493000907F09F064C0E51314C0741312C06111B4 +:1049400010C08F7080618093AA020E94BF2385EA05 +:1049500092E00E948E1F8091AA02D80115968C9336 +:1049600043C1EF2839F05F3F41F481E090E04F3FD1 +:1049700031F003C081E090E002C080E090E080FD73 +:1049800003C081E0862702C080E090E080FF2EC057 +:104990008091DB022091DC0236E013C090E0389F6A +:1049A000F001399FF00D1124E555FD4F718157132A +:1049B00006C07081471303C07281671317C0019648 +:1049C00087708213EBCF12C19F7059F0882309F4CE +:1049D0000BC107C09F7029F0F8019581907F09F401 +:1049E00003C1805E883008F4FFC0D2C0662309F49A +:1049F000FBC08091AA0281608093AA02F5C0E513F2 +:104A000008C0741306C0611104C0D80115968C93B8 +:104A10009DC04D875E878D859E856A8B0E945A2337 +:104A20006A89882309F4B4C0662309F4B1C02091CF +:104A3000AA02822F82958F7090E002970CF4C6C074 +:104A40008091A5029091A60298878F831986FB8694 +:104A5000EA862C87CE01079646C08091AA02982F3D +:104A6000907F59F47E2DF98AE88A89890E947F23F4 +:104A700085EA92E00E948E1F95C0E51311C0741361 +:104A80000FC061110DC0F8018583C8010E948E1FFF +:104A9000E5EAF2E086E0DF011D928A95E9F7A2C01F +:104AA0004D875E878D859E856A8B0E945A236A8911 +:104AB000882309F46DC0662309F46AC02091AA0214 +:104AC000822F82958F7090E002970CF47FC08091C6 +:104AD000A5029091A6029A8389831B82FD82EC82B3 +:104AE0002E83CE0101960E948E1F70C0E816F90633 +:104AF00028F09701281B390BC90104C080959095B7 +:104B00008E0D9F1D883C910508F046C0662309F470 +:104B10003FC0E51330C074132EC02091AA0220FDBF +:104B200021C0322F32953F70832F90E00097D1F053 +:104B3000D80115962C9315970F9741F0832F8F5F0F +:104B40008295807F2F70282B15962C93C8010E9488 +:104B50008E1F86E0F801A5EAB2E001900D928A95D9 +:104B6000E1F73EC086E0F801A5EAB2E001900D92BF +:104B70008A95E1F737C04D875E878D859E850E94B7 +:104B80005A23811123C08091AA0281608093AA02D6 +:104B9000C8010E948E1F26C07E2DF98AE88A898965 +:104BA0000E947F23E5EAF2E086E0DF011D928A950C +:104BB000E9F70E94BF2318C0662351F34D875E8733 +:104BC0008D859E850E945A23882311F386E0F80183 +:104BD000A5EAB2E001900D928A95E1F70E94CD23FB +:104BE0000E94BF2381E014C080E012C04D875E8721 +:104BF0008D859E850E943928292F22952F7030E0BF +:104C0000223031050CF4E0CE243031050CF6E2CE32 +:104C100062960FB6F894DEBF0FBECDBFDF91CF9185 +:104C20001F910F91FF90EF9008951F93CF93DF9303 +:104C3000CDB7DEB72C970FB6F894DEBF0FBECDBF51 +:104C40004F83588769877A878B879C87CE01079621 +:104C50000E9445248823D9F02F8138858A859B8539 +:104C6000892B39F03F3F19F080E090E004C02F3FDE +:104C7000D9F781E090E0892B09F06DC04F8158850C +:104C800069857A858B859C850E948E2364C086E029 +:104C9000FE013796DE01119601900D928A95E1F79B +:104CA000FF81E8854A855B854115510539F0EF3F65 +:104CB00041F481E090E0FF3F31F003C081E090E0FB +:104CC00002C080E090E080FD46C02091DC0230E030 +:104CD000C9010196877099276091DB0270E0861701 +:104CE000970709F440C0F983EA835D834C8396E01B +:104CF000929FD001939FB00D1124A555BD4FFE0189 +:104D0000319601900D929A95E1F78093DC020E9412 +:104D10009E2321C0189FC001112485559D4F0E94DC +:104D20004524882371F1E091DB021E9FF0011124DC +:104D3000E555FD4F40815181628173818481958168 +:104D40000E948E238091DB0290E001968770992764 +:104D50008093DB0201C016E08091DB029091DC02BF +:104D60008913D8CF0EC00E9456231092DC021092F5 +:104D7000DB02E5EAF2E086E0DF011D928A95E9F7C1 +:104D8000EACF2C960FB6F894DEBF0FBECDBFDF91F1 +:104D9000CF911F910895DF92EF92FF920F931F938F +:104DA000CF93DF93EC01009709F46EC0D12CEE2471 +:104DB000E394F12C8E010F5F1F4FFE018491843725 +:104DC00048F4843008F04CC0813071F0823009F032 +:104DD0005BC01EC0853709F43FC080F1982F9458FE +:104DE000903708F051C03FC02296F8018491982F67 +:104DF000905E983050F48770FE2D01C0FF0F8A95A9 +:104E0000EAF78F2F0E94CF2813C00E94671E2FC081 +:104E10002296F8018491982F905E983060F4877004 +:104E2000FE2D01C0FF0F8A95EAF78F2F0E94D5282B +:104E30000E94F8281CC00E942F1F19C02296F8015A +:104E4000049107C08FE99FE00197F1F700C00000CF +:104E500001500111F7CF0BC02296F801D49007C082 +:104E60000E94671E03C08F770E942F1FE8018D2DBF +:104E700007C08150EFE9FFE03197F1F700C0000073 +:104E8000882309F497CFF5CFDF91CF911F910F9130 +:104E9000FF90EF90DF9008956093E1027093E2023B +:104EA0008093E3029093E4020C9444236093DD0228 +:104EB0007093DE028093DF029093E0020C9444230F +:104EC00008950C944C270F931F930091E1021091C9 +:104ED000E2022091E3023091E402602B712B822BDD +:104EE000932B1F910F910C944C270F931F930091BC +:104EF000E1021091E2022091E3023091E40260238A +:104F00007123822393231F910F910C944C270F93AD +:104F10001F930091E1021091E2022091E30230918F +:104F2000E40260277127822793271F910F910C9429 +:104F30004C2760E070E0CB010C94562741E050E034 +:104F400060E070E004C0440F551F661F771F8A950C +:104F5000D2F7CB01BA010C94562741E050E060E053 +:104F600070E004C0440F551F661F771F8A95D2F763 +:104F70008091DD029091DE02A091DF02B091E0020B +:104F8000482B592B6A2B7B2BCB01BA010C9456274B +:104F900041E050E060E070E004C0440F551F661F20 +:104FA000771F8A95D2F740955095609570958091BE +:104FB000DD029091DE02A091DF02B091E002482371 +:104FC00059236A237B23CB01BA010C94562741E075 +:104FD00050E060E070E004C0440F551F661F771F6B +:104FE0008A95D2F78091DD029091DE02A091DF02D6 +:104FF000B091E002482759276A277B27CB01BA01E5 +:105000000C9456270F931F930091DD021091DE023E +:105010002091DF023091E002602B712B822B932BC9 +:105020001F910F910C9456270F931F930091DD024F +:105030001091DE022091DF023091E00260237123A3 +:10504000822393231F910F910C9456270F931F9344 +:105050000091DD021091DE022091DF023091E0022A +:1050600060277127822793271F910F910C94562751 +:105070000895CF92DF92EF92FF920F931F93CF93F9 +:10508000DF93EC01C090E102D090E202E090E302F5 +:10509000F090E4028091DD029091DE02A091DF02A7 +:1050A000B091E002C82AD92AEA2AFB2A0FE110E0CF +:1050B000B701A601002E04C07695679557954795D0 +:1050C0000A94D2F740FF08C0BE01802F0E947104ED +:1050D0008130910509F007C00150110948F7BE0160 +:1050E00080E00E947104DF91CF911F910F91FF909A +:1050F000EF90DF90CF90089540918B0150918C01FB +:1051000020E030E09FEFFA01E20FF31F62816817A1 +:10511000A1F09F3F19F4611101C0922F2F5F3F4F03 +:105120002630310581F707C0FA01E90FF11D97FD1F +:10513000FA95828308959F3FB9F7089540918B01B6 +:1051400050918C0120E030E0FA01E20FF31F9281D0 +:10515000981301C012822F5F3F4F26303105A1F70F +:10516000089581E090E0E0918B01F0918C01E80FCF +:10517000F91F1082019688309105A9F70895909142 +:10518000E502982B9093E502089580959091E502B1 +:1051900098239093E50208951092E5020895909166 +:1051A000E602982B9093E602089580959091E6028E +:1051B00098239093E60208951092E6020895809352 +:1051C000E70208951092E702089540918B015091F3 +:1051D0008C0120E030E080E0FA01E20FF31F9181C2 +:1051E00091118F5F2F5F3F4F27303105A9F7089549 +:1051F000E0918B01F0918C018091E5028083E09138 +:105200008B01F0918C0180819091E602892B808343 +:105210009091E702992361F0E0918B01F0918C016C +:105220008081892B80830E94E52881110E94E228D9 +:1052300080918B0190918C010C94311D8091FA0327 +:10524000843021F11092F10220E488E190E00FB661 +:10525000F894A895809360000FBE2093600080E0D2 +:105260000E94590383B7817F846083BF83B78160C5 +:1052700083BF7894889583B78E7F83BF88E10FB60C +:10528000F89480936000109260000FBE0895089516 +:105290000895CF9380E00E9459030E9447290E94FD +:1052A000BD070E944829C0E08C2F0E941109892B5C +:1052B00029F4CF5FC530C1F780E001C081E0CF9114 +:1052C00008950E94562380E00E9459030E941130E5 +:1052D0000E94251D0C94E7051F920F920FB60F92A6 +:1052E00011248F939F93AF93BF938091F10281110B +:1052F00013C08091F2029091F302A091F402B09158 +:10530000F5024196A11DB11D8093F2029093F30224 +:10531000A093F402B093F502BF91AF919F918F914A +:105320000F900FBE0F901F90189582E084BD93E000 +:1053300095BD9AEF97BD80936E0008958FB7F8944E +:105340004091F2025091F3026091F4027091F502E3 +:105350008FBFCA010895CF92DF92EF92FF920F9311 +:105360001F932FB7F8944091F2025091F30260918D +:10537000F4027091F5022FBF6A017B01EE24FF2435 +:105380008C0120E030E0C016D106E206F30620F0E2 +:105390009A01281B390B05C09C0120953095240FDC +:1053A000351FC9011F910F91FF90EF90DF90CF90B3 +:1053B00008951F920F920FB60F9211248F939F930F +:1053C000AF93BF938091F2029091F302A091F40207 +:1053D000B091F5020196A11DB11D8093F202909348 +:1053E000F302A093F402B093F502BF91AF919F91A5 +:1053F0008F910F900FBE0F901F9018950E946D1601 +:10540000F8942FEF87EA91E6215080409040E1F731 +:1054100000C0000087E090EBDC01809304049093CF +:105420000504A0930604B09307042CE088E190E003 +:105430000FB6F894A895809360000FBE209360008B +:10544000FFCFCF92DF92EF92FF920F931F93CF93F4 +:10545000DF93C82ED12C01E010E08D2D0E941109A0 +:105460007C01C0E0D0E098010C2E02C0220F331F57 +:105470000A94E2F72E213F21232B29F42196CC30E8 +:10548000D10589F708C06C2F7D2D80E00E944C0467 +:10549000C812F4CF06C0D39485E0D812DECF80E0E6 +:1054A00001C081E0DF91CF911F910F91FF90EF90AC +:1054B000DF90CF900895CF93C82F8CE20E94212ACD +:1054C000882321F08C2FCF910C94212A80E0CF915A +:1054D0000895CF930E94AC2B811102C00E948D2BA6 +:1054E000C5E608C00E94BD078FE39CE90197F1F76C +:1054F00000C00000C150B1F789E20E945B2A81110F +:105500000AC18AE20E945B2A81110E948D2B85E0EC +:105510000E945B2A81110E94FE290E94B72B809372 +:10552000F00287E00E945B2A882399F18BE10E94B8 +:105530005B2A882351F09091F00291FB882780F933 +:1055400021E0822780FB91F922C08EE00E945B2A35 +:10555000882351F09091F00292FB882780F921E096 +:10556000822780FB92F913C080E10E945B2A909110 +:10557000F002882341F093FB882780F921E08227FD +:1055800080FB93F904C0892F809580FB90F990935C +:10559000F0028091F0020E94BB2B0E94C92B8093E5 +:1055A000010380EE0E945B2A882341F08091010371 +:1055B000982F909590FB80F98093010389E30E94D6 +:1055C0005B2A882359F09091010391FB882780F989 +:1055D00021E0822780FB91F99093010382EE0E94E3 +:1055E0005B2A882359F09091010392FB882780F968 +:1055F00021E0822780FB92F99093010386EE0E94BE +:105600005B2A882359F09091010393FB882780F946 +:1056100021E0822780FB93F99093010383EE0E949F +:105620005B2A882359F09091010394FB882780F925 +:1056300021E0822780FB94F99093010385E30E9487 +:105640005B2A882359F09091010395FB882780F904 +:1056500021E0822780FB95F99093010381E30E946A +:105660005B2A882359F09091010396FB882780F9E3 +:1056700021E0822780FB96F99093010381E10E944B +:105680005B2A882359F09091010397FB882780F9C2 +:1056900021E0822780FB97F9909301038091010319 +:1056A0000E94CD2B87E20E945B2AC82F8EE10E94C8 +:1056B0005B2A8111C2608FE10E945B2A8111C46064 +:1056C00080E20E945B2A8111C86081E20E945B2A0D +:1056D0008111C06182E20E945B2A8111C06283E273 +:1056E0000E945B2A8111C06484E20E945B2A8823A5 +:1056F00011F0C06802C0CC2329F08C2F0E94C42B6B +:105700006C2F03C00E94C02B682F70E080E090E0F7 +:10571000CF910C946127CF9108956DEE7EEF80E0DC +:1057200090E00E94783460E082E090E00E946A3469 +:1057300060E083E090E00E946A3460E084E090E002 +:105740000E946A3460E085E090E00E946A3460E084 +:1057500086E090E00C946A3480E090E00E9464342B +:1057600021E08D3E9E4F09F020E0822F089582E0D7 +:1057700090E00C945C34682F82E090E00C946A34E2 +:1057800083E090E00C945C34682F83E090E00C940C +:105790006A3484E090E00C945C34682F84E090E0FC +:1057A0000C946A3486E090E00C945C34682F86E0B8 +:1057B00090E00C946A348091FE0280FF0BC06091EF +:1057C000900185E0689FB0011124759567957595E6 +:1057D00067952AC081FF09C06091900185E0689FAC +:1057E000B0011124759567951FC082FF07C06091B5 +:1057F000900185E0689FB001112416C04091F80225 +:105800004423C9F060918F01461788F720919001D9 +:1058100085E0289F90011124429FC001439F900D75 +:10582000112470E00E9448346038710540F461151D +:10583000710539F002C065E070E0862F08958FE7AA +:10584000089581E008958091FE0280FF08C0609174 +:105850008E0170E0759567957595679521C081FFFC +:1058600006C060918E0170E07595679519C082FF42 +:1058700004C060918E0170E010C08091F80288230E +:10588000C1F060918D018617A0F790918E01989FCD +:10589000C001112470E00E9448346038710528F47A +:1058A0006115710521F0862F08958FE7089581E035 +:1058B000089561E070E0F4CF803F21F40E94DB2B7B +:1058C000819504C0813F29F40E94DB2B8093FB0269 +:1058D0000895823F21F40E94DB2B819504C0833F11 +:1058E00029F40E94DB2B8093FA020895893F19F472 +:1058F0000E94232C05C08A3F31F40E94232C8195FD +:105900008093FC0208958B3F21F40E94232C819503 +:1059100004C08C3F29F40E94232C8093FD0208953B +:10592000843F21F48091F902816017C0853F21F402 +:105930008091F902826011C0863F21F48091F902C2 +:1059400084600BC0873F21F48091F902886005C014 +:10595000883F31F48091F90280618093F9020895C3 +:105960008D3F21F48091FE0281600BC08E3F21F4B7 +:105970008091FE02826005C08F3F29F48091FE0273 +:1059800084608093FE020895803F29F48091FB0299 +:1059900087FF6EC007C0813F41F48091FB0218165B +:1059A0000CF066C01092FB0263C09091FA02823F35 +:1059B00019F497FF5DC005C0833F31F419160CF050 +:1059C00057C01092FA0254C0893F31F48091FC0212 +:1059D00018160CF04DC006C08A3F39F48091FC02C5 +:1059E00087FF46C01092FC0243C08B3F29F4809190 +:1059F000FD0287FF3DC006C08C3F39F48091FD0257 +:105A00001816B4F51092FD0233C0843F21F4809142 +:105A1000F9028E7F05C0853F31F48091F9028D7FB8 +:105A20008093F90225C0863F21F48091F9028B7F93 +:105A3000F7CF873F21F48091F902877FF1CF883F2C +:105A400021F48091F9028F7EEBCF8D3F21F480917C +:105A5000FE028E7F0BC08E3F21F48091FE028D7F6F +:105A600005C08F3F29F48091FE028B7F8093FE0258 +:105A70008091FA0281110EC08091FB0281110AC04F +:105A80008091FC02811106C08091FD02811102C04B +:105A90001092F802089589EF92E00E943C1D0E9446 +:105AA0009E299093F7028093F6020895CF938091F8 +:105AB000F6029091F7020E94AB294091F80244232C +:105AC00021F02091910130E006C0209192015AE02E +:105AD000259F900111248217930708F486C08091B6 +:105AE000FA0281110DC09091FB02911109C09091B1 +:105AF000FC02911105C09091FD02992309F475C033 +:105B00004F3F19F04F5F4093F802181624F40E949B +:105B1000DB2B8093FA028091FA0287FF05C00E9476 +:105B2000DB2B81958093FA028091FB02181624F4F6 +:105B30000E94DB2B8093FB028091FB0287FF05C054 +:105B40000E94DB2B81958093FB026091FA02662311 +:105B500039F1C091FB02CC2319F1772767FD7095CD +:105B6000872F972F0E94AC3123E333E343E35FE3B6 +:105B70000E9460320E9479316093FA026C2F77277D +:105B800067FD7095872F972F0E94AC3123E333E395 +:105B900043E35FE30E9460320E9479316093FB022D +:105BA0008091FC02181624F40E94232C8093FC029E +:105BB0008091FC0287FF05C00E94232C8195809371 +:105BC000FC028091FD02181624F40E94232C80937D +:105BD000FD028091FD0287FF05C00E94232C819564 +:105BE0008093FD02CF910C944B2DCF910895E9EF56 +:105BF000F2E085E0DF011D928A95E9F71092F80244 +:105C00001092FE020895833089F130F4813061F002 +:105C1000823009F06EC019C0853009F449C0B8F16E +:105C2000863009F066C055C020919201862F90E021 +:105C3000820F911D8F3F910520F4620F60939201B6 +:105C400008958FEF80939201089520919101862FFE +:105C500090E0820F911D8F3F910520F4620F6093B9 +:105C6000910108958FEF8093910108952091900103 +:105C7000862F90E0820F911D8F3F910520F4620FD7 +:105C80006093900108958FEF809390010895209183 +:105C90008F01862F90E0820F911D8F3F910520F498 +:105CA000620F60938F0108958FEF80938F010895A5 +:105CB00020918E01862F90E0820F911D8F3F9105DC +:105CC00020F4620F60938E0108958FEF80938E0110 +:105CD000089520918D01862F90E0820F911D8F3FB6 +:105CE000910520F4620F60938D0108958FEF8093EA +:105CF0008D010895833021F130F4813059F08230E4 +:105D000009F049C012C0853089F128F1863009F0C8 +:105D100042C037C080919201681720F4861B80939F +:105D2000920108951092920108958091910168174F +:105D300020F4861B8093910108951092910108959B +:105D400080919001681720F4861B8093900108953C +:105D500010929001089580918F01681720F4861B9E +:105D600080938F01089510928F01089580918E0184 +:105D7000681720F4861B80938E01089510928E017F +:105D8000089580918D01681720F4861B80938D0102 +:105D9000089510928D01089541E050E060E070E0B8 +:105DA00004C0440F551F661F771F8A95D2F7CB0199 +:105DB000BA010E9461270C945623873200F58E3178 +:105DC00008F086C08E3009F466C060F4873009F4AC +:105DD0004DC018F4863049F531C0883041F18B3020 +:105DE00021F57BC0863109F478C018F48031E9F4DC +:105DF0005CC0893109F471C08B31B9F442C0883379 +:105E000009F46BC048F4893209F460C0853309F4A1 +:105E10005DC0873251F45AC0833409F457C018F476 +:105E20008A3318F057C0883499F080E008950E94B2 +:105E3000B72B0E94C92B0E94D22B4FC08091F00239 +:105E4000817F8E7F8093F00281E08093FF0208952E +:105E50000E9456232FEF83ED90E321508040904025 +:105E6000E1F700C000000E94FE2937C08091F002D7 +:105E700080FF03C0817F8E7F01C081608093F0022C +:105E80002CC09091F00291FB882780F921E08227B5 +:105E900080FB91F913C09091F00292FB882780F962 +:105EA00021E0822780FB92F909C09091F00293FBD8 +:105EB000882780F921E0822780FB93F99093F002F4 +:105EC000882359F091609093F00207C080E003C0EE +:105ED0008D5101C089530E94CC2E81E0089580E04D +:105EE000089580E00895CF93C82F8091FF028130FC +:105EF00071F020F0823009F089C037C0A0918B0189 +:105F0000B0918C018C91823209F082C007C0A091BF +:105F10008B01B0918C018C91823249F48C2F0E94BC +:105F20006F2F81111EC08C2F0E94DD2E1CC08C2F64 +:105F30000E94712F811115C0C43169F030F4CB304B +:105F400081F0C03109F068C009C0C93221F0C833FE +:105F500009F062C006C01092FF025EC082E080932A +:105F6000FF0281E090E081705AC0C932C9F060F44C +:105F7000C431B1F020F4C73009F04CC034C0CE5168 +:105F8000C63008F047C017C0CE3439F120F4CB3406 +:105F900009F040C01CC0C135C1F0C235D9F513C0ED +:105FA00080910003882319F01092000333C081E030 +:105FB0008093FF0234C0EC2FF0E0E25EFD4F808161 +:105FC0008093000327C061E003C061E007C06AE07E +:105FD000809100030E94032E1DC06AE0809100039F +:105FE0000E947A2E17C08EE18093920182E3809303 +:105FF00091018AE08093900184E180938F0188E091 +:1060000080938E0188E280938D0104C01092FF027C +:1060100080E005C081E003C080E090E0A4CFCF9194 +:1060200008950E94AC2B811102C00E948D2B0E940A +:10603000D22B8093030480FF02C0869501C080E0CC +:106040000C94590380910304982F9695292F30E0E2 +:10605000233031054CF49F5F990F8170892B81604B +:10606000809303040E94D62B8091030486950C94A0 +:10607000590380910304982F969591F09158990FA8 +:106080008170892B809303048E7F91E009F490E066 +:106090008091030490FB80F9809303040E94D62B27 +:1060A0008091030486950C94590380910304982FE2 +:1060B000909590FB80F9809303040E94D62B8091E9 +:1060C000030480FF02C0869501C080E00C94590350 +:1060D00030910304232F26952F5F2F77822F90E096 +:1060E000317004972CF4220F232B2093030402C059 +:1060F0003093030480910304282F2E7F91E009F44C +:1061000090E090FB80F9809303040E94D62B80914D +:10611000030486950C94590320910304922F9695BD +:106120009827990F822F8170892B809303048E7F8B +:1061300091E009F490E08091030490FB80F9809352 +:1061400003040E94D62B8091030486950C94590376 +:106150005058BB27AA270ED075C166D130F06BD13D +:1061600020F031F49F3F11F41EF45BC10EF4E09572 +:10617000E7FB51C1E92F77D180F3BA1762077307A4 +:106180008407950718F071F49EF58FC10EF4E09521 +:106190000B2EBA2FA02D0B01B90190010C01CA01E1 +:1061A000A0011124FF27591B99F0593F50F4503E8C +:1061B00068F11A16F040A22F232F342F4427585F7E +:1061C000F3CF469537952795A795F0405395C9F796 +:1061D0007EF41F16BA0B620B730B840BBAF091504E +:1061E000A1F0FF0FBB1F661F771F881FC2F70EC0ED +:1061F000BA0F621F731F841F48F4879577956795C0 +:10620000B795F7959E3F08F0B3CF9395880F08F0A8 +:106210009927EE0F979587950895D9D008F481E0D6 +:1062200008950CD00FC107D140F0FED030F021F41A +:106230005F3F19F0F0C0511139C1F3C014D198F388 +:106240009923C9F35523B1F3951B550BBB27AA27F7 +:1062500062177307840738F09F5F5F4F220F331F69 +:10626000441FAA1FA9F333D00E2E3AF0E0E830D035 +:1062700091505040E695001CCAF729D0FE2F27D038 +:10628000660F771F881FBB1F261737074807AB0706 +:10629000B0E809F0BB0B802DBF01FF2793585F4F7B +:1062A0002AF09E3F510568F0B6C000C15F3FECF395 +:1062B000983EDCF3869577956795B795F7959F5F40 +:1062C000C9F7880F911D9695879597F90895E1E094 +:1062D000660F771F881FBB1F621773078407BA07F3 +:1062E00020F0621B730B840BBA0BEE1F88F7E0954E +:1062F000089504D06894B111D9C00895BCD088F035 +:106300009F5790F0B92F9927B751A0F0D1F0660FA1 +:10631000771F881F991F1AF0BA95C9F712C0B130BC +:1063200081F0C3D0B1E00895C0C0672F782F8827CF +:10633000B85F39F0B93FCCF3869577956795B395FB +:10634000D9F73EF490958095709561957F4F8F4F6A +:106350009F4F0895E89409C097FB3EF4909580956F +:10636000709561957F4F8F4F9F4F9923A9F0F92F1B +:1063700096E9BB279395F695879577956795B79599 +:10638000F111F8CFFAF4BB0F11F460FF1BC06F5F7F +:106390007F4F8F4F9F4F16C0882311F096E911C091 +:1063A000772321F09EE8872F762F05C0662371F0B2 +:1063B00096E8862F70E060E02AF09A95660F771FC6 +:1063C000881FDAF7880F9695879597F90895990FA2 +:1063D0000008550FAA0BE0E8FEEF16161706E807AF +:1063E000F907C0F012161306E407F50798F0621BD0 +:1063F000730B840B950B39F40A2661F0232B242BA5 +:10640000252B21F408950A2609F4A140A6958FEFC3 +:10641000811D811D089597F99F6780E870E060E015 +:1064200008959FEF80EC089500240A94161617062D +:1064300018060906089500240A9412161306140675 +:1064400005060895092E0394000C11F4882352F0D8 +:10645000BB0F40F4BF2B11F460FF04C06F5F7F4F90 +:106460008F4F9F4F089557FD9058440F551F59F077 +:106470005F3F71F04795880F97FB991F61F09F3F31 +:1064800079F087950895121613061406551FF2CF5A +:106490004695F1DF08C0161617061806991FF1CFAA +:1064A00086957105610508940895E894BB276627D1 +:1064B0007727CB0197F908958ADF08F48FEF0895C5 +:1064C0000BD0C0CFB1DF28F0B6DF18F0952309F06C +:1064D000A2CFA7CF1124EACFC6DFA0F3959FD1F3B7 +:1064E000950F50E0551F629FF001729FBB27F00D82 +:1064F000B11D639FAA27F00DB11DAA1F649F6627D7 +:10650000B00DA11D661F829F2227B00DA11D621F25 +:10651000739FB00DA11D621F839FA00D611D221FDF +:10652000749F3327A00D611D231F849F600D211DC3 +:10653000822F762F6A2F11249F5750408AF0E1F066 +:1065400088234AF0EE0FFF1FBB1F661F771F881FAF +:1065500091505040A9F79E3F510570F05CCFA6CFF7 +:106560005F3FECF3983EDCF3869577956795B7959A +:10657000F795E7959F5FC1F7FE2B880F911D9695C4 +:10658000879597F90895FA01EE0FFF1F30962105C0 +:10659000310599F16115710561F48038BFE39B07FE +:1065A00049F168949038810561F08038BFEF9B070E +:1065B00041F0992342F5FF3FE1053105210511F135 +:1065C000E8940894E795D901AA2329F4AB2FBE2FAC +:1065D000F85FD0F310C0FF5F70F4A695E0F7F739CD +:1065E00050F019F0FF3A38F49F779F930CD00F903A +:1065F00007FC905808953EF014CF60E070E080E80A +:106600009FE308954FE79F775F934F933F932F93B7 +:106610009ED02F913F914F915F9152DF05C019F4A9 +:106620000EF0F9CE42CFFDCE26DFC8F39638C0F784 +:1066300007F80F92E8942BE33AEA48EB5FE74EDF66 +:106640000F920F920F924DB75EB70F92C0D0ECEA47 +:10665000F0E016D04F915F91EF91FF91E595EE1F1D +:10666000FF1F49F0FE57E0684427EE0F441FFA95DC +:10667000E1F74195550B32D00F9007FE26C00895E3 +:10668000DF93CF931F930F93FF92EF92DF927B01E3 +:106690008C01689405C0DA2EEF011EDFFE01E8943C +:1066A000A5912591359145915591AEF3EF0162DDAC +:1066B000FE019701A801DA9479F7DF90EF90FF903F +:1066C0000F911F91CF91DF9108959B01AC0160E084 +:1066D00070E080E89FE3A5CD9ECEACC0CCDEE8F3B1 +:1066E0009923D9F3940F511DBBF39150504094F06E +:1066F00059F0882332F0660F771F881F9150504061 +:10670000C1F79E3F510544F7880F911D96958795D7 +:1067100097F908955F3FACF0983E9CF0BB278695B3 +:1067200077956795B79508F4B1609395C1F7BB0F5E +:1067300058F711F460FFE8CF6F5F7F4F8F4F9F4F87 +:10674000E3CFB4CE0EF076C06CCE689464CE93DE08 +:10675000C8F39923D1F3C6F3DF93CF931F930F931D +:10676000FF92C92FDD2788232AF02197660F771F14 +:10677000881FDAF720E030E040E85FEB9FE38839DC +:1067800020F0803E30F021968F77E3DCE4EDF0E0FE +:1067900003C0DFDCE1E0F1E073DF8B01BE01EC015F +:1067A000FB2E6F5771097595771F880B990BD4DDF8 +:1067B00028E132E741E35FE38FDEAF2D9801AE01C0 +:1067C000FF900F911F91CF91DF91D4DC3BCEFA0166 +:1067D000DC01AA0FBB1F9B01AC01BF5728F4222785 +:1067E0003327442750781FC0B75188F4AB2F0024BB +:1067F000469537952795011CA395D2F3002069F0A3 +:10680000220F331F441FB395DAF30DD0A1CC6130B2 +:106810007105A0E88A07B94630F49B01AC016627F0 +:10682000772788279078309621F020833183428320 +:10683000538308959F3F31F0915020F487957795C9 +:106840006795B795880F911D9695879597F9089547 +:10685000991B79E004C0991F961708F0961B881FB2 +:106860007A95C9F780950895AA1BBB1B51E107C013 +:10687000AA1FBB1FA617B70710F0A61BB70B881FD0 +:10688000991F5A95A9F780959095BC01CD0108955F +:1068900097FB072E16F4009407D077FD09D00E94CD +:1068A000343407FC05D03EF4909581959F4F0895B0 +:1068B000709561957F4F0895F999FECF92BD81BD86 +:1068C000F89A992780B50895A8E1B0E042E050E039 +:1068D0000C947F34262FF999FECF1FBA92BD81BD4B +:1068E00020BD0FB6F894FA9AF99A0FBE0196089552 +:1068F0000E946A34272F0C946B34DC01CB01FC011D +:10690000F999FECF06C0F2BDE1BDF89A319600B408 +:0E6910000D9241505040B8F70895F894FFCF13 +:10691E0055D0A44600001644000000000000484276 +:10692E0061978A460000C8430000000000004842FC +:10693E0055D024460000C843000000000000484225 +:10694E0000005C460000C843000000000000484202 +:10695E0061978A4600007A4455D0A4460000C84389 +:10696E00000000000000484200005C460000C843E2 +:10697E00000000000000484255D024460000164496 +:10698E000507000C058540000001064000000100CF +:10699E0091102111FD10C810941001E8022808145E +:1069AE000A321E42004500250026004300610060A9 +:1069BE000020003700640065006600670044004652 +:1069CE000024004700000002000400050007000933 +:1069DE00000B000C000E0010001100130015001724 +:1069EE000018001A001C001D001F002100230024A7 +:1069FE00002600280029002B002D002F0030003229 +:106A0E000034003500370039003B00F6030F042830 +:106A1E0004410469051C05E604C6043F4D362002F8 +:106A2E000302000001000101010101000101010248 +:086A3E00030405060708090026 +:00000001FF diff --git a/keyboard/preonic/preonic_pcb_silent.hex b/keyboard/preonic/preonic_pcb_silent.hex new file mode 100644 index 0000000000..cc59d3fe8d --- /dev/null +++ b/keyboard/preonic/preonic_pcb_silent.hex @@ -0,0 +1,1189 @@ +:100000000C9465020C94A9020C94A9020C94A90208 +:100010000C94A9020C94A9020C94A9020C94A902B4 +:100020000C94A9020C94A9020C94430D0C94150E87 +:100030000C942B1C0C94A9020C94A9020C94A902F8 +:100040000C94A9020C94A9020C94A9020C94A90284 +:100050000C94A9020C94981C0C94A9020C94A9026B +:100060000C94A9020C94A9020C94A9020C94A90264 +:100070000C94A9020C94A9020C94A9020C94A90254 +:100080000C94A9020C94A9020C94A9020C94A90244 +:100090000C94A9020C94A9020C94A9020C94A90234 +:1000A0000C94A9020C94A9020C94A90235001E001C +:1000B0001F0020002100220023002400250026002C +:1000C00027002A002B0014001A0008001500170052 +:1000D0001C0018000C00120013002A002900040064 +:1000E0001600070009000A000B000D000E000F00AB +:1000F00033003400E1001D001B000600190005005C +:100100001100100036003700380028000030E000F1 +:10011000E200E30003522C002C0004525000510076 +:1001200052004F0035001E001F0020002100220059 +:10013000230024002500260027002A002B0014009D +:100140001A00090013000A000D000F0018001C001F +:1001500033002A00290004001500160017000700CC +:100160000B00110008000C0012003400E1001D001B +:100170001B000600190005000E00100036003700B5 +:10018000380028000030E000E200E30003522C00B9 +:100190002C0004525000510052004F0035001E0048 +:1001A0001F0020002100220023002400250026003B +:1001B00027002A002B0034003600370013001C00F3 +:1001C00009000A00060015000F002A00290004009B +:1001D0001200080018000C0007000B0017001100A7 +:1001E00016003800E100330014000D000E001B0063 +:1001F000050010001A0019001D0028000030E00062 +:10020000E200E30003522C002C0004525000510085 +:1002100052004F0035001E001F0020002100220068 +:10022000230024002500260027002A0035021E0294 +:100230001F0220022102220223022402250226029A +:1002400027022A0001003A003B003C003D003E002E +:100250003F002D022E022F02300231020100400029 +:100260004100420043004400450000530153025343 +:100270000050010001000100010001000100010027 +:1002800001000100AB00AA00A900AE0035001E006D +:100290001F0020002100220023002400250026004A +:1002A00027002A0035001E001F0020002100220028 +:1002B000230024002500260027002A0001003A0020 +:1002C0003B003C003D003E003F002D002E002F0073 +:1002D0003000310001004000410042004300440072 +:1002E000450000530153025300500100010001007A +:1002F000010001000100010001000100AB00AA00A3 +:10030000A900AE002A0354006800650020005000D8 +:10031000720065006F006E006900630020004B00F2 +:100320006500790062006F006100720064000000E7 +:100330002C034F007200740068006F006C006900AD +:100340006E0065006100720020004B0065007900BE +:1003500062006F006100720064007300000004031B +:10036000090409027400040100A0FA090400000154 +:1003700003010100092111010001223F000705814D +:100380000308000A09040100010301020009211108 +:10039000010001224D000705820308000A0904023A +:1003A00000010300000009211101000122360007AD +:1003B00005830308000A0904030002030000000982 +:1003C00021110100012220000705840320000107FC +:1003D0000504032000011201100100000008EDFED9 +:1003E00061600100010200010631FF0974A10109E9 +:1003F00075150025FF9520750881020976150025E1 +:10040000FF952075089102C005010980A1018502B0 +:1004100016010026B7001A01002AB70075109501D1 +:100420008100C0050C0901A1018503160100269C6D +:10043000021A01002A9C02751095018100C0050175 +:100440000902A1010901A1000509190129051500E9 +:10045000250195057501810295017503810105014D +:10046000093009311581257F950275088106093803 +:100470001581257F950175088106050C0A3802153E +:1004800081257F950175088106C0C005010906A177 +:1004900001050719E029E715002501950875018177 +:1004A0000295017508810105081901290595057551 +:1004B0000191029501750391010507190029FF15A6 +:1004C0000025FF950675088100C011241FBECFEFDF +:1004D000DAE0DEBFCDBF04B603FE24C08091F10197 +:1004E0009091F201A091F301B091F4018730904B0B +:1004F000A740B04BB9F41092F1011092F2011092A2 +:10050000F3011092F40114BE84B7877F84BF88E1A1 +:100510000FB6F89480936000109260000FBEE0E088 +:10052000F8E3099511E0A0E0B1E0E0EEF9E402C0E3 +:1005300005900D92A435B107D9F711E0A4E5B1E01B +:1005400001C01D92A13FB107E1F70E94720A0C940D +:10055000EE240C94000061110DC0FC0182818823FF +:1005600031F085EE0E9426110E94272303C085EEFC +:100570000E94EE1180E090E00895089508950E9491 +:10058000D1026E9A769A8DEB92E0892B11F00C9441 +:10059000BD0208958EEB92E0892B11F00C94BE02FF +:1005A0000895279A2F988FEF9FEF9093870080935D +:1005B00086008AE08093800089E1809381000C941A +:1005C000D02281110BC080918000877F80938000B2 +:1005D00010928D0010928C002F9808952F988330E0 +:1005E00041F4809180008860809380008FEF9FEFBE +:1005F00012C09091800098609093800023E030E0DA +:10060000281B3109220F331F8FEF9FEF02C09695F1 +:1006100087952A95E2F790938D0080938C0008953A +:100620008B3B910568F4883A910530F5853A910540 +:10063000C0F48430910598F4019709F06FC071C03F +:10064000803E910508F46AC0883E910540F09C0107 +:10065000205F31092031310508F060C05CC09C0189 +:10066000A1C0853A910509F45FC0863A910509F465 +:100670005EC023E830E496C0883A910509F45AC078 +:10068000893A910509F459C08A3A910509F458C08C +:100690008B3A910509F457C08C3A910509F456C07C +:1006A0008D3A910509F455C0803B910509F454C079 +:1006B0008E3A910509F453C08F3A910509F452C05E +:1006C000813B910509F451C0823B910509F450C06A +:1006D000833B910509F44FC0843B910509F44EC05A +:1006E000853B910509F44DC0863B910509F44CC04A +:1006F000873B910509F44BC0883B910509F44AC03A +:10070000893B910509F449C08A3B910509F048C02D +:100710002AE236E447C09C01306544C020E030E066 +:1007200041C021E030E03EC021E830E43BC022E897 +:1007300030E438C022EE34E435C029EE34E432C06F +:100740002AEE34E42FC025EB34E42CC026EB34E44D +:1007500029C027EB34E426C02CEC34E423C02DEC74 +:1007600034E420C023E835E41DC02AE835E41AC08B +:1007700022E935E417C024E935E414C021E236E467 +:1007800011C023E236E40EC024E236E40BC025E2B9 +:1007900036E408C026E236E405C027E236E402C0AB +:1007A00020E034E4C901089508959CE0799FF001A8 +:1007B00011249CE3899FE00DF11D1124E60FF11D2A +:1007C000EE0FFF1FE455FF4F25913491C9010895A5 +:1007D000880F991F845D9040FC0125913491C901D7 +:1007E0000895880F991F84559F4FFC0125913491DE +:1007F000C90108950E94D5039C019A9581159F41D6 +:1008000010F4C9010895C90190528115904128F44E +:10081000C9019F700E94F1030895C9019053811589 +:10082000904120F4C9019927906C0895C901905412 +:10083000409728F4C9018F709927946D089520314D +:1008400080E4380719F480E091ED0895213190E4B7 +:10085000390719F480E090ED0895223140E434071F +:1008600019F480E092ED0895233180E4380719F4FB +:1008700080E093ED0895211590E5390769F40E9411 +:1008800015162FEF44E38CE0215040408040E1F703 +:1008900000C000000C94BD1C213090E5390731F4F4 +:1008A0008091D00181608093D0010895C901905555 +:1008B0008115904108F062C0432F55274F7055278E +:1008C00041305105F9F4C90174E0880F991F7A95F8 +:1008D000E1F788279370B901E3E0660F771FEA9587 +:1008E000E1F760767727862B972B9C682370332758 +:1008F00002C0440F551F2A95E2F74F715527842BEC +:10090000952B08954230510529F4922F8827816F45 +:10091000906A089543305105B9F4C90153E0880F36 +:10092000991F5A95E1F7807E97702370332741E035 +:1009300050E002C0440F551F2A95E2F74F7155272A +:10094000842B952B9C6808954430510549F5C901C5 +:1009500043E0880F991F4A95E1F7807E97702370D6 +:10096000332741E050E002C0440F551F2A95E2F7BB +:100970004F715527842B952B9A680895C90190577C +:100980008115904120F4C9019F7090620895C901BA +:1009900090588115904120F4C9019F70906A089584 +:1009A000203E3105E0F4203C310568F52133310566 +:1009B00009F475C048F42932310509F46BC02A32B4 +:1009C000310509F07BC075C02933310501F12238AA +:1009D0003105E9F02533310509F070C051C0233EDF +:1009E0003105B1F140F4203E3105D1F0223E310510 +:1009F00009F064C01CC0263E310579F1273E31055F +:100A000009F05CC038C0C9010E94E80308958091D4 +:100A1000E10180FD02C081FF51C080EE90E04FC037 +:100A20008091E10180FFF9CF89E390E048C0809197 +:100A3000E10182FF0AC08091E10184FF03C080E0F0 +:100A400090E03DC083EE90E03AC082EE90E037C087 +:100A50008091E10182FFEFCFF8CF8091E10183FF28 +:100A600007C08091E10184FDEACF87EE90E027C0C6 +:100A700086EE90E024C08091E10183FFF2CFF8CFB1 +:100A80008091E10185FF03C089E290E018C085E311 +:100A900090E015C08091E10185FDF9CFF5CF8091FF +:100AA000E10186FF03C08AE290E009C081E390E0A3 +:100AB00006C08091E10186FDF9CFF5CFC9010E9402 +:100AC0001003089508955F926F927F928F929F9284 +:100AD000AF92BF92CF92DF92EF92FF920F931F934C +:100AE000CF93DF93CDB7DEB72A970FB6F894DEBF6A +:100AF0000FBECDBF9E012F5F3F4F4E018BE0880E92 +:100B0000911C60E070E000E010E0E12CF12CC12CC1 +:100B1000D12CA12CB12C8AE0782E622E532E41E0EC +:100B200050E0E4E1F1E0A62DB52D872D01900D9266 +:100B30008A95E1F7F901819191919F01FC01E07F94 +:100B4000FF27E032F10559F48F709927FA0102C0AE +:100B5000EE0FFF1F8A95E2F7AE2ABF2A37C0E033B7 +:100B6000F10559F48F709927FA0102C0EE0FFF1FAB +:100B70008A95E2F7CE2ADF2A29C0E034F10559F43C +:100B80008F709927FA0102C0EE0FFF1F8A95E2F7D6 +:100B9000EE2AFF2A1BC0E035F10559F48F70992722 +:100BA000FA0102C0EE0FFF1F8A95E2F70E2B1F2BF2 +:100BB0000DC0E036F10551F48F709927FA0102C09B +:100BC000EE0FFF1F8A95E2F76E2B7F2B2815390554 +:100BD00009F0A7CF94B18A2D8095892384B985B176 +:100BE0008A2985B997B18C2D8095892387B988B1D9 +:100BF0008C2988B99AB18E2D809589238AB98BB1B9 +:100C00008E298BB99DB1802F809589238DB98EB1A6 +:100C1000802B8EB990B3862F8095892380BB81B3BA +:100C2000862B81BB2A960FB6F894DEBF0FBECDBFD0 +:100C3000DF91CF911F910F91FF90EF90DF90CF90B8 +:100C4000BF90AF909F908F907F906F905F9008952E +:100C50005F926F927F928F929F92AF92BF92CF924C +:100C6000DF92EF92FF920F931F93CF93DF93CDB755 +:100C7000DEB768970FB6F894DEBF0FBECDBF85B75D +:100C8000806885BF85B7806885BF0E9463059E0127 +:100C90002F5F3F4F4E0189E1880E911C60E070E0AC +:100CA00000E010E0E12CF12CC12CD12CA12CB12CB6 +:100CB00098E1792E622E532E41E050E0EEE1F1E012 +:100CC000A62DB52D872D01900D928A95E1F7F9019A +:100CD000819191919F01FC01E07FFF27E032F105B6 +:100CE00059F48F709927FA0102C0EE0FFF1F8A9501 +:100CF000E2F7AE2ABF2A37C0E033F10559F48F700E +:100D00009927FA0102C0EE0FFF1F8A95E2F7CE2A5B +:100D1000DF2A29C0E034F10559F48F709927FA01D0 +:100D200002C0EE0FFF1F8A95E2F7EE2AFF2A1BC0D2 +:100D3000E035F10559F48F709927FA0102C0EE0FE2 +:100D4000FF1F8A95E2F70E2B1F2B0DC0E036F10531 +:100D500051F48F709927FA0102C0EE0FFF1F8A9598 +:100D6000E2F76E2B7F2B2815390509F0A7CF94B138 +:100D70008A2D8095892384B985B18A2985B997B14F +:100D80008C2D8095892387B988B18C2988B99AB12F +:100D90008E2D809589238AB98BB18E298BB99DB10F +:100DA000802F809589238DB98EB1802B8EB990B319 +:100DB000862F8095892380BB81B3862B81BB1092BF +:100DC00055011092540110925F0110925E01109231 +:100DD0005701109256011092610110926001109219 +:100DE0005901109258011092630110926201109201 +:100DF0005B0110925A0110926501109264011092E9 +:100E00005D0110925C0110926701109266018FEBF8 +:100E100092E0892BB9F068960FB6F894DEBF0FBE4A +:100E2000CDBFDF91CF911F910F91FF90EF90DF9099 +:100E3000CF90BF90AF909F908F907F906F905F907A +:100E40000C94BF0268960FB6F894DEBF0FBECDBFFC +:100E5000DF91CF911F910F91FF90EF90DF90CF9096 +:100E6000BF90AF909F908F907F906F905F9008950C +:100E70005F926F927F928F929F92AF92BF92CF922A +:100E8000DF92EF92FF920F931F93CF93DF93CDB733 +:100E9000DEB7A2970FB6F894DEBF0FBECDBF7E01BE +:100EA00049E1E40EF11C2EE5C22E21E0D22E5E01B6 +:100EB00053E2A50EB11C3AE0532E470101E010E0C9 +:100EC00048E1642E55E0752EE4E1F1E0D401852D72 +:100ED00001900D928A95E1F7F701819191917F013F +:100EE0009C01207F33272032310589F424B18F7093 +:100EF0009927A80102C0440F551F8A95E2F7CA013D +:100F0000242B24B995B18095892385B94FC020330E +:100F1000310589F427B18F709927F80102C0EE0FCF +:100F2000FF1F8A95E2F7CF012E2B27B998B1809544 +:100F3000892388B93BC02034310589F42AB18F70E8 +:100F40009927A80102C0440F551F8A95E2F7CA01EC +:100F5000242B2AB99BB1809589238BB927C02035D2 +:100F6000310589F42DB18F709927F80102C0EE0F79 +:100F7000FF1F8A95E2F7CF012E2B2DB99EB18095E8 +:100F800089238EB913C02036310581F420B38F70C8 +:100F90009927A80102C0440F551F8A95E2F7CA019C +:100FA000242B20BB91B38095892381BB50EA5A95AD +:100FB000F1F7BE016F5F7F4F80E090E020E030E00E +:100FC000EEE1F1E0DE011196462D01900D924A9579 +:100FD000E1F7FB0141915191BF01FA01E07FFF2749 +:100FE000E032F10511F4E3B113C0E033F10511F47F +:100FF000E6B10EC0E034F10511F4E9B109C0E03505 +:10100000F10511F4ECB104C0E036F105B9F4EFB12B +:10101000F0E04F70552702C0F595E7954A95E2F745 +:10102000E0FD08C0A801022E02C0440F551F0A941B +:10103000E2F702C040E050E0842B952B2F5F3F4F3A +:101040002C30310509F0BCCFF60120813181281701 +:10105000390721F091838083709200010E9463051B +:10106000F2E0CF0ED11CEA14FB0409F02DCF8091E1 +:1010700000018823A1F1815080930001882339F079 +:101080008FE99FE00197F1F700C0000028C0809130 +:101090005E0190915F01909355018093540180917E +:1010A0006001909161019093570180935601809166 +:1010B000620190916301909359018093580180914E +:1010C00064019091650190935B0180935A01809136 +:1010D00066019091670190935D0180935C018AECB9 +:1010E00092E0892B11F00E94CA0281E0A2960FB60D +:1010F000F894DEBF0FBECDBFDF91CF911F910F914E +:10110000FF90EF90DF90CF90BF90AF909F908F9027 +:101110007F906F905F900895E82FF0E0EE0FFF1F33 +:10112000EC5AFE4F8081918108950895809171015C +:101130000895CF93DF9300D01F92CDB7DEB72091F3 +:10114000E701243021F523E029839B838A832093C0 +:10115000E9008FEF06C095ED9A95F1F7000088231E +:1011600029F09091E800815095FFF5CF8091E8003B +:1011700085FF0DC040E050E063E070E0CE010196D5 +:101180000E94280B8091E8008E778093E8000F90F2 +:101190000F900F90DF91CF910895CF93DF9300D000 +:1011A0001F92CDB7DEB72091E701243029F522E068 +:1011B00029839B838A8383E08093E9008FEF06C0B5 +:1011C00095ED9A95F1F70000882329F09091E800B9 +:1011D000815095FFF5CF8091E80085FF0DC040E07C +:1011E00050E063E070E0CE0101960E94280B8091F0 +:1011F000E8008E778093E8000F900F900F90DF91BA +:10120000CF9108952091E7012430F9F422E0209352 +:10121000E9002FEF06C035ED3A95F1F700002223E3 +:1012200029F03091E800215035FFF5CF2091E800FA +:1012300025FF0BC040E050E065E070E00E94280B05 +:101240008091E8008E778093E8000895CF93DF9334 +:10125000EC018091E701843041F581E08093E90061 +:101260008FEF06C095ED9A95F1F70000882329F0DD +:101270009091E800815095FFF5CF8091E80085FFBF +:1012800014C040E050E068E070E0CE010E94280BFE +:101290008091E8008E778093E80088E0FE01A9E65F +:1012A000B1E001900D928A95E1F7DF91CF91089519 +:1012B0008091E601811109C00E94C80C0E94250D91 +:1012C0008091E20084608093E20008951092E6012C +:1012D0000895089508950C94201C809172018F5FE9 +:1012E0008093720162E30E948924911135C01092AB +:1012F000720180917301882379F18091E701843034 +:1013000049F58091E9008F709091EC0090FF02C048 +:1013100090E801C090E0982B84E08093E9008091F0 +:10132000EB0080FF14C08091EE0087FD03C00FC06A +:101330001092F1008091E80085FDFACF8091E800DD +:1013400080FF05C08091E8008E778093E8009F7051 +:101350009093E90010927301089542E061EC81E0FE +:101360000E943E0C42E061EC82E00E943E0C42E0B2 +:1013700061EC83E00E943E0C42E261EC84E00C945C +:101380003E0C8091E901833009F454C030F481307F +:1013900071F0823009F0A5C08CC08A3009F479C0A0 +:1013A0008B3009F45FC0893009F09BC020C0809168 +:1013B000E801813A09F095C08091E800877F809329 +:1013C000E8008091EC019091ED01892B21F060E023 +:1013D00080E090E003C068E089E691E070E00E9460 +:1013E000770B8091E8008B778093E80008958091D7 +:1013F000E801813209F075C08091EC019091ED0116 +:10140000892B09F06EC08091E800877F8093E80007 +:1014100005C08091E701882309F463C08091E8004A +:1014200082FFF7CF8091F100809371018091E800F5 +:101430008B7753C08091E801813A09F052C08091C6 +:10144000EC019091ED01892B09F04BC08091E800EF +:10145000877F8093E8008091E80080FFFCCF809137 +:101460000B0136C08091E8018132D9F58091EC0101 +:101470009091ED01892BA9F58091E800877F8093F9 +:10148000E8000E94750C8091EA0180930B010C9496 +:1014900015168091E801813221F58091E800877F5F +:1014A0008093E8000E94750C8091EB0180936801A5 +:1014B00008958091E801813AA1F48091E800877F46 +:1014C0008093E8008091E80080FFFCCF8091680164 +:1014D0008093F1008091E8008E778093E8000C946F +:1014E000750C089584B7877F84BF88E10FB6F894A0 +:1014F00080936000109260000FBE90E080E80FB60D +:10150000F89480936100909361000FBE0E943310A5 +:101510000E94C80C0E94250D8091E2008460809397 +:10152000E20078940E94C20F0E94351081E091E0A1 +:101530000E94DF0F0BC00E94DD1B8091E501882314 +:1015400029F00E94081C81110E94120B8091E70172 +:10155000853089F30E943F10F9CF292F332723309C +:101560003105B1F04CF42130310509F44DC0223081 +:10157000310509F04EC007C02132310541F1223258 +:10158000310591F146C0E4E7F0E082E693E045C022 +:1015900099278130910569F08230910589F0892B76 +:1015A00009F037C0EEE5F3E0E491F0E08EE593E07A +:1015B00034C0E0E3F3E0E491F0E080E393E02DC099 +:1015C000E4E0F3E0E491F0E084E093E026C06430EE +:1015D00000F5E62FF0E0EE0FFF1FEA5CFE4F808182 +:1015E0009181E9E0F0E019C0643098F4E62FF0E072 +:1015F000DF01AA0FBB1FA25CBE4F8D919C91EA5BDD +:10160000FE4FE081F0E009C0E2E1F0E086ED93E01A +:1016100004C0E0E0F0E080E090E0DA018D939C937C +:10162000CF01089580E189BD82E189BD09B400FE42 +:10163000FDCF8091D8008F7D8093D8008091E0000D +:1016400082608093E0008091E00081FDFCCF0895EE +:10165000BF92CF92DF92EF92FF920F931F93CF939F +:10166000DF937C018B01EA010E94960CB82E811158 +:1016700033C0209731F028813981021B130BE20E11 +:10168000F31EC12CD12C23C08091E80085FD15C02C +:101690008091E8008E778093E800209749F0888158 +:1016A00099818C0D9D1D9983888325E0B22E14C0ED +:1016B0000E94960C882359F00EC0F70181917F019A +:1016C0008093F10001501109FFEFCF1ADF0A0115D5 +:1016D0001105D1F601C0B82E8B2DDF91CF911F914E +:1016E0000F91FF90EF90DF90CF90BF9008954091C1 +:1016F000EE015091EF014617570748F0611571054B +:1017000039F44091E8004E774093E80001C0BA01F7 +:10171000FC0140E033C08091E701882309F444C014 +:10172000853009F443C08091E80083FD41C0809179 +:10173000E80082FD33C08091E80080FF1FC09091D7 +:10174000F3008091F200392F20E0A901482BCA0153 +:1017500006C041914093F1006150710901966115F5 +:10176000710519F088309105A0F341E0089709F060 +:1017700040E08091E8008E778093E8006115710564 +:1017800051F64111C8CF0AC08091E701882361F06A +:10179000853061F08091E80083FD0AC08091E80007 +:1017A00082FFF2CF80E0089582E0089583E00895FB +:1017B00081E008954091EE015091EF0146175707DF +:1017C00048F06115710539F44091E8004E77409377 +:1017D000E80001C0BA01FC0140E034C08091E7019B +:1017E000882309F445C0853009F444C08091E8009D +:1017F00083FD42C08091E80082FD34C08091E80002 +:1018000080FF20C09091F3008091F200392F20E0FA +:10181000A901482BCA0107C044914093F1003196B9 +:101820006150710901966115710519F088309105B3 +:1018300098F341E0089709F040E08091E8008E7746 +:101840008093E8006115710549F64111C7CF0AC0C0 +:101850008091E701882361F0853061F08091E80094 +:1018600083FD0AC08091E80082FFF2CF80E00895F6 +:1018700082E0089583E0089581E00895982F2CC0B8 +:101880009093E900981739F07091EC002091ED00E9 +:101890005091F00003C0242F762F50E021FD02C0AC +:1018A0009F5F1AC03091EB003E7F3093EB00309188 +:1018B000ED003D7F3093ED003091EB0031603093CF +:1018C000EB007093EC002093ED005093F00020911A +:1018D000EE0027FDE5CF07C0973090F28F70809320 +:1018E000E90081E0089580E008958091E80187FD96 +:1018F00005C08091E80080FF0EC012C08091E80012 +:1019000082FD05C08091E7018111F8CF0895809193 +:10191000E8008B7708C08091E7018111EACF089534 +:101920008091E8008E778093E80008958091E4002C +:101930009091E50045E62091EC0020FD1FC023C0FA +:101940002091E701222391F0253091F02091EB00C6 +:1019500025FD10C02091E4003091E50028173907DB +:1019600051F34150C90139F784E0089582E00895A8 +:1019700083E0089581E0089580E008952091E800D3 +:1019800020FFDECFF9CF2091E80022FFD9CFF4CF9E +:101990000E94360D0E943E0DE0EEF0E080818160F5 +:1019A0008083E8EDF0E080818F77808319BCA7ED1C +:1019B000B0E08C918E7F8C9380818F7E808310929B +:1019C000E60108950F931F93CF93DF930E94360D86 +:1019D0000E943E0DC8EDD0E088818F778883888192 +:1019E0008068888388818F7D888319BC1092E70185 +:1019F0001092E3011092E5011092E40100EE10E074 +:101A0000F80180818B7F808388818160888342E0B8 +:101A100060E080E00E943E0CE1EEF0E080818E7F8D +:101A20008083E2EEF0E08081816080838081886045 +:101A30008083F80180818E7F8083888180618883A4 +:101A4000DF91CF911F910F910895E8EDF0E0808133 +:101A50008F7E8083E7EDF0E080818160808384E089 +:101A600082BF81E08093E6010C94E20CE8EDF0E0A7 +:101A700080818E7F80831092E20008951092DA00B8 +:101A80001092E10008951F920F920FB60F92112449 +:101A90002F933F934F935F936F937F938F939F9376 +:101AA000AF93BF93EF93FF938091E10082FF0BC050 +:101AB0008091E20082FF07C08091E1008B7F8093DC +:101AC000E1000E946D098091DA0080FF1FC08091C3 +:101AD000D80080FF1BC08091DA008E7F8093DA00EF +:101AE0008091D90080FF0DC080E189BD82E189BD70 +:101AF00009B400FEFDCF81E08093E7010E94580900 +:101B000005C019BC1092E7010E9466098091E100AE +:101B100080FF19C08091E20080FF15C08091E20033 +:101B20008E7F8093E2008091E20080618093E200EA +:101B30008091D80080628093D80019BC85E08093A2 +:101B4000E7010E946A098091E10084FF30C0809122 +:101B5000E20084FF2CC080E189BD82E189BD09B427 +:101B600000FEFDCF8091D8008F7D8093D8008091BA +:101B7000E1008F7E8093E1008091E2008F7E809370 +:101B8000E2008091E20081608093E2008091E301B5 +:101B9000882311F084E007C08091E30087FF02C032 +:101BA00083E001C081E08093E7010E946B0980918E +:101BB000E10083FF29C08091E20083FF25C080916E +:101BC000E100877F8093E10082E08093E70110923B +:101BD000E3018091E1008E7F8093E1008091E2003B +:101BE0008E7F8093E2008091E20080618093E2002A +:101BF00042E060E080E00E943E0C8091F00088604E +:101C00008093F0000E946909FF91EF91BF91AF911D +:101C10009F918F917F916F915F914F913F912F9104 +:101C20000F900FBE0F901F9018951F920F920FB636 +:101C30000F9211242F933F934F935F936F937F9352 +:101C40008F939F93AF93BF93CF93EF93FF93809125 +:101C5000E9008F709091EC0090FF02C090E801C005 +:101C600090E0C92FC82B1092E9008091F000877F87 +:101C70008093F00078940E94590E1092E9008091B0 +:101C8000F00088608093F000CF70C093E900FF916E +:101C9000EF91CF91BF91AF919F918F917F916F9174 +:101CA0005F914F913F912F910F900FBE0F901F901A +:101CB00018951F93CF93DF93CDB7DEB7AC970FB6D0 +:101CC000F894DEBF0FBECDBFE8EEF1E08091F100E9 +:101CD000819321E0E03FF207C9F70E94C10980919A +:101CE000E80083FF37C18091E8019091E9019530C8 +:101CF00009F488C038F49130B1F170F0933009F0F4 +:101D000029C131C0983009F4F8C0993009F404C1F0 +:101D1000963009F01FC19DC0803821F0823809F04B +:101D200019C108C08091E4019091E501992389F0DF +:101D300082600FC08091EC019091ED018F70992726 +:101D40008093E9008091EB0085FB882780F9109251 +:101D5000E9009091E800977F9093E8008093F1006C +:101D60001092F100D5C0882319F0823009F0F2C03A +:101D70008F7121F0823009F0EDC00BC08091EA0133 +:101D8000813009F0E7C0933009F080E08093E501ED +:101D90002FC08091EA0181112BC08091EC019091BC +:101DA000ED018F709927009709F4D4C08093E90062 +:101DB0002091EB0020FF1CC02091E901233021F489 +:101DC0008091EB00806212C09091EB009061909343 +:101DD000EB0021E030E001C0220F8A95EAF7209362 +:101DE000EA001092EA008091EB0088608093EB009B +:101DF0001092E9008091E800877F8093E8000E94BC +:101E0000750CA8C08111A6C08091EA019091EB01E8 +:101E10008F779927182F9091E3009078982B9093C3 +:101E2000E3008091E800877F8093E8000E94750CB2 +:101E30008091E80080FFFCCF8091E3008068809370 +:101E4000E300112311F083E001C082E08093E701F9 +:101E500081C08058823008F07DC08091EA01909165 +:101E6000EB018C3D23E0920779F583E08A838AE2D7 +:101E700089834FB7F894DE01139620E03EE051E2EB +:101E8000E32FF0E050935700E49120FF03C0E29568 +:101E9000EF703F5FEF708E2F90E0EA3010F0C79642 +:101EA00001C0C0968D939D932F5F243149F74FBF9A +:101EB0008091E800877F8093E8006AE270E0CE01BD +:101EC00001960E94770B13C0AE01455D5F4F609194 +:101ED000EC010E94AD0A0097E9F12091E800277F0C +:101EE0002093E800BC018BA59CA50E94DA0B809191 +:101EF000E8008B778093E8002DC0803859F58091F9 +:101F0000E800877F8093E8008091E3018093F100EF +:101F10008091E8008E7771CF81111CC09091EA0109 +:101F20009230C0F48091E800877F8093E80090931E +:101F3000E3010E94750C8091E301811104C080913E +:101F4000E30087FF02C084E001C081E08093E701E5 +:101F50000E94AD098091E80083FF0AC08091E800EB +:101F6000877F8093E8008091EB0080628093EB0094 +:101F7000AC960FB6F894DEBF0FBECDBFDF91CF9108 +:101F80001F910895CF938091E7018823B1F080914C +:101F9000E9008F709091EC0090FF02C090E801C0C2 +:101FA00090E0C92FC82B1092E9008091E80083FDD2 +:101FB0000E94590ECF70C093E900CF91089590937D +:101FC0007501809374010895E0917401F091750199 +:101FD000309721F00190F081E02D099480E0089580 +:101FE000E0917401F0917501309721F00280F38146 +:101FF000E02D09940895E0917401F09175013097F6 +:1020000021F00480F581E02D099408952091760156 +:10201000309177018217930771F090937701809345 +:102020007601E0917401F0917501309721F00680FE +:10203000F781E02D0994089520917801309179017C +:102040008217930771F09093790180937801E09162 +:102050007401F0917501309721F00084F185E02D35 +:102060000994089508950C9432100E94541C0E9403 +:1020700028060E94281D0C94D0220C9462055F92C1 +:102080006F927F928F929F92AF92BF92CF92DF9288 +:10209000EF92FF920F931F93CF93DF93CDB7DEB7ED +:1020A0002A970FB6F894DEBF0FBECDBF0E94380747 +:1020B0009AE7C92E91E0D92E00E010E0AA24A3945B +:1020C000B12C502E802F0E948C083C01F601E1902B +:1020D000F1906F01E826F926E114F10431F40F5F65 +:1020E0001F4F0530110569F73AC08091D00181FD7D +:1020F0000E94950820E030E04501022E02C0880CC5 +:10210000991C0A94E2F7C4018E219F21892B09F1C1 +:102110002E835F826820792081E0672809F480E0BF +:1021200088870E945D1C8160782F9A8789874E81FD +:102130005F8168858A850E94F810F801EE0FFF1F05 +:10214000E658FE4F8081918188259925918380836F +:1021500016C02F5F3F4F2C30310571F6C0CF8FEF87 +:1021600089838A831B820E945D1C8160782F9D83F6 +:102170008C8349815A816B818D810E94F8100E9465 +:102180001520109184010E94E40F1817D9F00E94C5 +:10219000E40F809384012A960FB6F894DEBF0FBE39 +:1021A000CDBFDF91CF911F910F91FF90EF90DF9006 +:1021B000CF90BF90AF909F908F907F906F905F90E7 +:1021C0000C943D102A960FB6F894DEBF0FBECDBF1B +:1021D000DF91CF911F910F91FF90EF90DF90CF9003 +:1021E000BF90AF909F908F907F906F905F90089579 +:1021F000CF93DF93CDB7DEB72B970FB6F894DEBF42 +:102200000FBECDBF4F83588769877A878B87DE01E2 +:10221000119686E0FD0111928A95E9F785E0FE01AD +:10222000379601900D928A95E1F749815A816B8129 +:102230007C818D819E810E94D4182B960FB6F894D4 +:10224000DEBF0FBECDBFDF91CF910895CF93C82FD2 +:10225000882309F4C1C0823859F40E94E40F81FD3B +:10226000BBC089E30E943B1B0E94B71B89E30CC0E3 +:10227000833879F40E94E40F80FDAEC083E50E94AC +:102280003B1B0E94B71B83E50E945D1BCF910C9402 +:10229000B71B843859F40E94E40F82FD9DC087E487 +:1022A0000E943B1B0E94B71B87E4EECF8450813A0B +:1022B00048F48C2F0E94322281118EC08C2F0E94F4 +:1022C0003B1BE4CF8C2F805E883050F4C77081E0D8 +:1022D00090E001C0880FCA95EAF70E947E1BD6CF16 +:1022E0008C2F855A833078F4C53A29F0C63A31F4F8 +:1022F00082E890E005C081E890E002C083E890E0C9 +:10230000CF910C9406108C2F885A833108F064C04A +:10231000C83A39F1C93A41F1CA3A49F1CB3A51F1D7 +:10232000CC3A59F1CD3A61F1C03B69F1CE3A71F145 +:10233000CF3A79F1C13B81F1C23B89F1C33B91F1C5 +:10234000C43B99F1C53BA1F1C63BA9F1C73BB1F133 +:10235000C83BB9F1C93BC1F1CA3BC9F58AE292E079 +:1023600038C082EE90E035C089EE90E032C08AEE4F +:1023700090E02FC085EB90E02CC086EB90E029C068 +:1023800087EB90E026C08CEC90E023C08DEC90E0D1 +:1023900020C083E891E01DC08AE891E01AC082E97C +:1023A00091E017C084E991E014C081E292E011C08D +:1023B00083E292E00EC084E292E00BC085E292E0FC +:1023C00008C086E292E005C087E292E002C080E0A9 +:1023D00090E0CF910C941C10CF910895882309F4BC +:1023E0004DC0823859F40E94E40F81FF47C089E351 +:1023F0000E943B1B0E94B71B89E30CC0833871F419 +:102400000E94E40F80FF3AC083E50E943B1B0E94BC +:10241000B71B83E50E945D1B0C94B71B843859F4ED +:102420000E94E40F82FF2AC087E40E943B1B0E94A7 +:10243000B71B87E4EFCF982F9450913A08F4EACF76 +:10244000982F905E983058F4282F277081E090E004 +:1024500001C0880F2A95EAF70E94841BDDCF982FD0 +:10246000955A933020F480E090E00C940610885A3E +:10247000833120F480E090E00C941C1008958823B0 +:1024800021F00E947E1B0C94B71B0895882321F035 +:102490000E94841B0C94B71B0895BF92CF92DF92C9 +:1024A000EF92FF920F931F93CF93DF93CDB7DEB7D9 +:1024B00027970FB6F894DEBF0FBECDBF8C0185E025 +:1024C000F801DE01119601900D928A95E1F7F8016D +:1024D00030812181F280558152955F708381948192 +:1024E000892B39F02F3F41F481E090E03F3F31F0FC +:1024F00003C081E090E002C080E090E080FD73C303 +:1025000039832A8389819A815E830E94F81AB92EC1 +:102510008F830E94F71A0E941F1A2B2D22952F706D +:1025200030E05E816F812530310509F4E6C06CF43E +:10253000243031050CF0A2C04B2D407F8B2D8F70C5 +:10254000223031050CF045C017C02C3031054CF459 +:102550002A3031050CF0E7C12830310509F043C3BA +:10256000E5C02D30310509F4BAC20CF4A2C22F30F7 +:10257000310509F038C323C3182F411101C002C02F +:102580001295107FFF2059F0112309F46BC2812F9F +:102590006F830E948E1B0E94B71B6F8163C2862FC0 +:1025A0000E94EE11112309F41EC3812F0E94941B77 +:1025B00027960FB6F894DEBF0FBECDBFDF91CF9147 +:1025C0001F910F91FF90EF90DF90CF90BF900C94F0 +:1025D000B71B403211F08295807F662319F061307D +:1025E00071F523C0FF20B1F0511101C032C051304C +:1025F00081F527960FB6F894DEBF0FBECDBFDF91F1 +:10260000CF911F910F91FF90EF90DF90CF90BF90EF +:102610000C949E1B511101C003C0513009F4E3C258 +:102620008E830E94A11B8E819AC1FF2021F056301B +:1026300008F0D9C20EC0553008F0D5C290C1FF20B5 +:10264000C9F0552331F0F801958190FF0BC29F70BE +:10265000958327960FB6F894DEBF0FBECDBFDF91EE +:10266000CF911F910F91FF90EF90DF90CF90BF908F +:102670000C943F12552309F472C109C22B2D2695E3 +:102680002695237030E02115310529F021303105E0 +:1026900009F0A9C219C0FF2021F0862F9B2D93704D +:1026A00002C080E090E027960FB6F894DEBF0FBE20 +:1026B000CDBFDF91CF911F910F91FF90EF90DF90F1 +:1026C000CF90BF900C940610FF2021F0862F9B2DF9 +:1026D000937002C080E090E027960FB6F894DEBFBA +:1026E0000FBECDBFDF91CF911F910F91FF90EF9063 +:1026F000DF90CF90BF900C941C10862FFF2019F014 +:102700000E941B1F02C00E94831F27960FB6F894D9 +:10271000DEBF0FBECDBFDF91CF911F910F91FF9014 +:10272000EF90DF90CF90BF900C940A208B2D837098 +:1027300009F079C0F11057C2262F229526952770EF +:10274000220F220F862F8F70C82ED12CE12CF12C56 +:10275000022E04C0CC0CDD1CEE1CFF1C0A94D2F728 +:1027600064FF10C06FE070E080E090E004C0660F8E +:10277000771F881F991F2A95D2F7609570958095CD +:10278000909503C060E070E0CB012B2D2695269537 +:102790002370422F50E042305105D9F043305105AB +:1027A00069F16C297D298E299F294130510551F10C +:1027B00027960FB6F894DEBF0FBECDBFDF91CF9145 +:1027C0001F910F91FF90EF90DF90CF90BF900C94EE +:1027D000341A6C297D298E299F2927960FB6F894E3 +:1027E000DEBF0FBECDBFDF91CF911F910F91FF9044 +:1027F000EF90DF90CF90BF900C94461A0E94341A4D +:10280000C701B60127960FB6F894DEBF0FBECDBF45 +:10281000DF91CF911F910F91FF90EF90DF90CF90BC +:10282000BF900C94221AFF2019F08B2D817001C0EB +:102830008695882309F4D7C1262F229526952770DF +:10284000220F220F862F8F70C82ED12CE12CF12C55 +:10285000022E04C0CC0CDD1CEE1CFF1C0A94D2F727 +:1028600064FF10C06FE070E080E090E004C0660F8D +:10287000771F881F991F2A95D2F7609570958095CC +:10288000909503C060E070E0CB012B2D2695269536 +:102890002370422F50E042305105D9F043305105AA +:1028A00069F16C297D298E299F294130510551F10B +:1028B00027960FB6F894DEBF0FBECDBFDF91CF9144 +:1028C0001F910F91FF90EF90DF90CF90BF900C94ED +:1028D000D31A6C297D298E299F2927960FB6F89443 +:1028E000DEBF0FBECDBFDF91CF911F910F91FF9043 +:1028F000EF90DF90CF90BF900C94E51A0E94D31A0E +:10290000C701B60127960FB6F894DEBF0FBECDBF44 +:10291000DF91CF911F910F91FF90EF90DF90CF90BB +:10292000BF900C94C11A603F59F120F4603E08F446 +:1029300094C008C0623F09F467C0F0F1633F09F03A +:102940008CC065C0162F1F708B2D8F71FF2021F05A +:102950000E946C1A812F7DCE0E94871A812F2796A4 +:102960000FB6F894DEBF0FBECDBFDF91CF911F91A0 +:102970000F91FF90EF90DF90CF90BF900C94461294 +:10298000FF20B1F0553008F02EC18B2D8F712796A6 +:102990000FB6F894DEBF0FBECDBFDF91CF911F9170 +:1029A0000F91FF90EF90DF90CF90BF900C94A61AFC +:1029B000563008F018C1E9CFFF2099F08B2D8F71A8 +:1029C00027960FB6F894DEBF0FBECDBFDF91CF9133 +:1029D0001F910F91FF90EF90DF90CF90BF900C94DC +:1029E0006C1A8B2D8F7127960FB6F894DEBF0FBE31 +:1029F000CDBFDF91CF911F910F91FF90EF90DF90AE +:102A0000CF90BF900C94871AF110EBCFD7CFFF2057 +:102A100099F08B2D8F7127960FB6F894DEBF0FBEFD +:102A2000CDBFDF91CF911F910F91FF90EF90DF907D +:102A3000CF90BF900C945D1A27960FB6F894DEBF26 +:102A40000FBECDBFDF91CF911F910F91FF90EF90FF +:102A5000DF90CF90BF900C94581AFF20A9F0552317 +:102A600009F4ACCF862F27960FB6F894DEBF0FBEC1 +:102A7000CDBFDF91CF911F910F91FF90EF90DF902D +:102A8000CF90BF900C942611552309F4AACF862F1E +:102A900027960FB6F894DEBF0FBECDBFDF91CF9162 +:102AA0001F910F91FF90EF90DF90CF90BF900C940B +:102AB000EE114B2D4F70C8010E94AB0227960FB646 +:102AC000F894DEBF0FBECDBFDF91CF911F910F9164 +:102AD000FF90EF90DF90CF90BF900C948A19F11087 +:102AE00082C09B2D9F70492F50E04230510599F1D3 +:102AF00044F44115510569F04130510509F073C0A6 +:102B000019C043305105C1F14430510509F06BC083 +:102B100044C027960FB6F894DEBF0FBECDBFDF913D +:102B2000CF911F910F91FF90EF90DF90CF90BF90CA +:102B30000C94E12227960FB6F894DEBF0FBECDBFEE +:102B4000DF91CF911F910F91FF90EF90DF90CF9089 +:102B5000BF900C94F82227960FB6F894DEBF0FBEF4 +:102B6000CDBFDF91CF911F910F91FF90EF90DF903C +:102B7000CF90BF900C94142327960FB6F894DEBF25 +:102B80000FBECDBFDF91CF911F910F91FF90EF90BE +:102B9000DF90CF90BF900C942723862F27960FB6F7 +:102BA000F894DEBF0FBECDBFDF91CF911F910F9183 +:102BB000FF90EF90DF90CF90BF900C944B234B2D64 +:102BC0004F70C80127960FB6F894DEBF0FBECDBF79 +:102BD000DF91CF911F910F91FF90EF90DF90CF90F9 +:102BE000BF900C94D40327960FB6F894DEBF0FBEA7 +:102BF000CDBFDF91CF911F910F91FF90EF90DF90AC +:102C0000CF90BF9008950E949B1B0E94701B0E9452 +:102C1000B71B0E94B6200E940A2080E090E00E942C +:102C2000061080E090E00C941C100E948B1B0C940A +:102C300003160E94F81A292F22952F7030E02C30AD +:102C400031054CF42A3031056CF422503109223020 +:102C5000310590F407C02C30310551F02F3031058B +:102C600059F406C0803E10F0803F31F481E00895B1 +:102C700093FB882780F9089580E00895CF93DF9330 +:102C800000D000D01F92CDB7DEB70F900F900F90FD +:102C90000F900F90DF91CF910895CF93DF9300D0E5 +:102CA00000D000D0CDB7DEB726960FB6F894DEBFC1 +:102CB0000FBECDBFDF91CF9108951F93CF93DF93C8 +:102CC000C091BB0116E012C0D0E01C9FF0011D9F17 +:102CD000F00D1124E557FE4F4081518162817381CF +:102CE000848195810E944D162196C7708091BC0108 +:102CF000C813EACFDF91CF911F91089540918501CC +:102D000050918601609187017091880180918901BD +:102D100090918A010C944D160F931F93CF93DF93DC +:102D200080918A0182958F7009F069C08091870136 +:102D3000882309F464C0A091BB01D091BC01B0917B +:102D40008501C0918601809188019091890121E0DF +:102D500030E0BF3F11F020E030E0122FBC01609561 +:102D6000709506E04AC0009721F0CF3F29F4212F4B +:102D700005C021E030E002C020E030E020FD3BC093 +:102D80004A2F50E0049FF001059FF00D1124E557F4 +:102D9000FE4F2181C2132FC02081B2132CC022818B +:102DA000211129C0238134812817390718F0281BE5 +:102DB000390B02C0260F371F283C3105E0F4809103 +:102DC0008A018F70806180938A0186E0849FF00180 +:102DD000859FF00D1124E057FE4F80818F70806138 +:102DE000808385E891E00E944D12DF91CF911F9181 +:102DF0000F910C945D16AF5FA770AD13B4CFDF9148 +:102E0000CF911F910F910895EF92FF920F931F930F +:102E1000CF93DF93CDB7DEB762970FB6F894DEBFDE +:102E20000FBECDBF8C0185E0F801DE011D9601903B +:102E30000D928A95E1F7D8014C9111965C9111970A +:102E400012966C9112971396ED90FC9014977091D6 +:102E50008501E09186018091880190918901009718 +:102E600039F0EF3F41F421E030E07F3F31F003C023 +:102E700021E030E002C020E030E020FD5CC1209184 +:102E80008701222309F4F1C0E816F90628F097011A +:102E9000281B390BC90104C0809590958E0D9F1D8C +:102EA000883C910508F098C080918A01982F907F06 +:102EB00009F064C0E51314C0741312C0611110C08E +:102EC0008F70806180938A010E947E1685E891E070 +:102ED0000E944D1280918A01D80115968C9343C1AE +:102EE000EF2839F05F3F41F481E090E04F3F31F04F +:102EF00003C081E090E002C080E090E080FD03C06C +:102F000081E0862702C080E090E080FF2EC08091A3 +:102F1000BB012091BC0136E013C090E0389FF00166 +:102F2000399FF00D1124E557FE4F7181571306C0EC +:102F30007081471303C07281671317C001968770B1 +:102F40008213EBCF12C19F7059F0882309F40BC193 +:102F500007C09F7029F0F8019581907F09F403C1A3 +:102F6000805E883008F4FFC0D2C0662309F4FBC03D +:102F700080918A01816080938A01F5C0E51308C0C1 +:102F8000741306C0611104C0D80115968C939DC0BE +:102F90004D875E878D859E856A8B0E9419166A898A +:102FA000882309F4B4C0662309F4B1C020918A01D2 +:102FB000822F82958F7090E002970CF4C6C08091AA +:102FC00085019091860198878F831986FB86EA8612 +:102FD0002C87CE01079646C080918A01982F907F5A +:102FE00059F47E2DF98AE88A89890E943E1685E87F +:102FF00091E00E944D1295C0E51311C074130FC0EB +:1030000061110DC0F8018583C8010E944D12E5E8E9 +:10301000F1E086E0DF011D928A95E9F7A2C04D87B5 +:103020005E878D859E856A8B0E9419166A89882322 +:1030300009F46DC0662309F46AC020918A01822FC9 +:1030400082958F7090E002970CF47FC0809185018B +:10305000909186019A8389831B82FD82EC822E8364 +:10306000CE0101960E944D1270C0E816F90628F0B4 +:103070009701281B390BC90104C0809590958E0DCE +:103080009F1D883C910508F046C0662309F43FC0A7 +:10309000E51330C074132EC020918A0120FD21C099 +:1030A000322F32953F70832F90E00097D1F0D801F6 +:1030B00015962C9315970F9741F0832F8F5F82956C +:1030C000807F2F70282B15962C93C8010E944D12DB +:1030D00086E0F801A5E8B1E001900D928A95E1F74C +:1030E0003EC086E0F801A5E8B1E001900D928A9516 +:1030F000E1F737C04D875E878D859E850E94191642 +:10310000811123C080918A01816080938A01C80166 +:103110000E944D1226C07E2DF98AE88A89890E9474 +:103120003E16E5E8F1E086E0DF011D928A95E9F7B9 +:103130000E947E1618C0662351F34D875E878D85E9 +:103140009E850E941916882311F386E0F801A5E8F0 +:10315000B1E001900D928A95E1F70E948C160E94D1 +:103160007E1681E014C080E012C04D875E878D8599 +:103170009E850E94F81A292F22952F7030E0223068 +:1031800031050CF4E0CE243031050CF6E2CE629627 +:103190000FB6F894DEBF0FBECDBFDF91CF911F9168 +:1031A0000F91FF90EF9008951F93CF93DF93CDB7CA +:1031B000DEB72C970FB6F894DEBF0FBECDBF4F839E +:1031C000588769877A878B879C87CE0107960E94EC +:1031D00004178823D9F02F8138858A859B85892B10 +:1031E00039F03F3F19F080E090E004C02F3FD9F75D +:1031F00081E090E0892B09F06DC04F815885698589 +:103200007A858B859C850E944D1664C086E0FE0100 +:103210003796DE01119601900D928A95E1F7FF81B4 +:10322000E8854A855B854115510539F0EF3F41F44A +:1032300081E090E0FF3F31F003C081E090E002C008 +:1032400080E090E080FD46C02091BC0130E0C901E3 +:103250000196877099276091BB0170E086179707E8 +:1032600009F440C0F983EA835D834C8396E0929F22 +:10327000D001939FB00D1124A557BE4FFE0131968A +:1032800001900D929A95E1F78093BC010E945D1622 +:1032900021C0189FC001112485579E4F0E9404171A +:1032A000882371F1E091BB011E9FF0011124E557C5 +:1032B000FE4F4081518162817381848195810E949A +:1032C0004D168091BB0190E00196877099278093FD +:1032D000BB0101C016E08091BB019091BC01891334 +:1032E000D8CF0EC00E9415161092BC011092BB01DF +:1032F000E5E8F1E086E0DF011D928A95E9F7EACF83 +:103300002C960FB6F894DEBF0FBECDBFDF91CF91E4 +:103310001F910895DF92EF92FF920F931F93CF9327 +:10332000DF93EC01009709F46EC0D12CEE24E394F6 +:10333000F12C8E010F5F1F4FFE018491843748F4FA +:10334000843008F04CC0813071F0823009F05BC0ED +:103350001EC0853709F43FC080F1982F94589037EC +:1033600008F051C03FC02296F8018491982F905EDA +:10337000983050F48770FE2D01C0FF0F8A95EAF750 +:103380008F2F0E948E1B13C00E9426112FC02296E1 +:10339000F8018491982F905E983060F48770FE2D2C +:1033A00001C0FF0F8A95EAF78F2F0E94941B0E949D +:1033B000B71B1CC00E94EE1119C02296F80104919F +:1033C00007C08FE99FE00197F1F700C000000150AE +:1033D0000111F7CF0BC02296F801D49007C00E94CC +:1033E000261103C08F770E94EE11E8018D2D07C0D2 +:1033F0008150EFE9FFE03197F1F700C0000088232A +:1034000009F497CFF5CFDF91CF911F910F91FF90E6 +:10341000EF90DF9008956093C1017093C201809393 +:10342000C3019093C4010C9403166093BD01709383 +:10343000BE018093BF019093C0010C9403160895C0 +:103440000C940B1A0F931F930091C1011091C201AC +:103450002091C3013091C401602B712B822B932BDF +:103460001F910F910C940B1A0F931F930091C101A0 +:103470001091C2012091C3013091C40160237123D6 +:10348000822393231F910F910C940B1A0F931F9378 +:103490000091C1011091C2012091C3013091C4017A +:1034A00060277127822793271F910F910C940B1A85 +:1034B00060E070E0CB010C94151A41E050E060E050 +:1034C00070E004C0440F551F661F771F8A95D2F71E +:1034D000CB01BA010C94151A41E050E060E070E0B5 +:1034E00004C0440F551F661F771F8A95D2F780913D +:1034F000BD019091BE01A091BF01B091C001482BC8 +:10350000592B6A2B7B2BCB01BA010C94151A41E085 +:1035100050E060E070E004C0440F551F661F771F45 +:103520008A95D2F740955095609570958091BD0130 +:103530009091BE01A091BF01B091C00148235923D1 +:103540006A237B23CB01BA010C94151A41E050E0A9 +:1035500060E070E004C0440F551F661F771F8A9516 +:10356000D2F78091BD019091BE01A091BF01B091B1 +:10357000C001482759276A277B27CB01BA010C9441 +:10358000151A0F931F930091BD011091BE01209158 +:10359000BF013091C001602B712B822B932B1F91A7 +:1035A0000F910C94151A0F931F930091BD01109168 +:1035B000BE012091BF013091C0016023712382239D +:1035C00093231F910F910C94151A0F931F93009141 +:1035D000BD011091BE012091BF013091C001602753 +:1035E0007127822793271F910F910C94151A089524 +:1035F000CF92DF92EF92FF920F931F93CF93DF93BF +:10360000EC01C090C101D090C201E090C301F090E4 +:10361000C4018091BD019091BE01A091BF01B09104 +:10362000C001C82AD92AEA2AFB2A0FE110E0B70113 +:10363000A601002E04C076956795579547950A9484 +:10364000D2F740FF08C0BE01802F0E94FA038130EC +:10365000910509F007C00150110948F7BE0180E04B +:103660000E94FA03DF91CF911F910F91FF90EF908D +:10367000DF90CF90089540910C0150910D0120E012 +:1036800030E09FEFFA01E20FF31F62816817A1F0AB +:103690009F3F19F4611101C0922F2F5F3F4F2630D9 +:1036A000310581F707C0FA01E90FF11D97FDFA9581 +:1036B000828308959F3FB9F7089540910C0150917E +:1036C0000D0120E030E0FA01E20FF31F9281981320 +:1036D00001C012822F5F3F4F26303105A1F70895B8 +:1036E00081E090E0E0910C01F0910D01E80FF91FED +:1036F0001082019688309105A9F708959091C5012F +:10370000982B9093C501089580959091C5019823B9 +:103710009093C50108951092C50108959091C60136 +:10372000982B9093C601089580959091C601982397 +:103730009093C60108951092C60108958093C70121 +:1037400008951092C701089540910C0150910D0108 +:1037500020E030E080E0FA01E20FF31F9181911147 +:103760008F5F2F5F3F4F27303105A9F70895E09114 +:103770000C01F0910D018091C5018083E0910C0155 +:10378000F0910D0180819091C601892B80839091E9 +:10379000C701992361F0E0910C01F0910D01808146 +:1037A000892B80830E94A41B81110E94A11B809100 +:1037B0000C0190910D010C94F00F8091E701843081 +:1037C00021F11092D10120E488E190E00FB6F89445 +:1037D000A895809360000FBE2093600080E00E9457 +:1037E000E10283B7817F846083BF83B7816083BF39 +:1037F0007894889583B78E7F83BF88E10FB6F8945D +:1038000080936000109260000FBE0895089508959F +:10381000CF9380E00E94E1020E94061C0E943807BC +:103820000E94071CC0E08C2F0E948C08892B29F471 +:10383000CF5FC530C1F780E001C081E0CF9108952E +:103840000E94151680E00E94E1020E94D0220E9490 +:10385000E40F0C9462051F920F920FB60F92112481 +:103860008F939F93AF93BF938091D101811113C028 +:103870008091D2019091D301A091D401B091D50152 +:103880004196A11DB11D8093D2019093D301A093C5 +:10389000D401B093D501BF91AF919F918F910F90BB +:1038A0000FBE0F901F90189582E084BD93E095BDE8 +:1038B0009AEF97BD80936E0008958FB7F89440916A +:1038C000D2015091D3016091D4017091D5018FBF85 +:1038D000CA010895CF92DF92EF92FF920F931F9348 +:1038E0002FB7F8944091D2015091D3016091D40147 +:1038F0007091D5012FBF6A017B01EE24FF248C015A +:1039000020E030E0C016D106E206F30620F09A016E +:10391000281B390B05C09C0120953095240F351FBD +:10392000C9011F910F91FF90EF90DF90CF90089504 +:103930001F920F920FB60F9211248F939F93AF9304 +:10394000BF938091D2019091D301A091D401B09105 +:10395000D5010196A11DB11D8093D2019093D30191 +:10396000A093D401B093D501BF91AF919F918F9156 +:103970000F900FBE0F901F9018950E94C80CF894DE +:103980002FEF87EA91E6215080409040E1F700C098 +:10399000000087E090EBDC018093F1019093F2014D +:1039A000A093F301B093F4012CE088E190E00FB60E +:1039B000F894A895809360000FBE20936000FFCF1D +:1039C000CF92DF92EF92FF920F931F93CF93DF93EB +:1039D000C82ED12C01E010E08D2D0E948C087C01B6 +:1039E000C0E0D0E098010C2E02C0220F331F0A94D1 +:1039F000E2F72E213F21232B29F42196CC30D1054B +:103A000089F708C06C2F7D2D80E00E94D503C81275 +:103A1000F4CF06C0D39485E0D812DECF80E001C099 +:103A200081E0DF91CF911F910F91FF90EF90DF9098 +:103A3000CF900895CF93C82F8CE20E94E01C88237A +:103A400021F08C2FCF910C94E01C80E0CF91089551 +:103A5000CF930E946B1E811102C00E944C1EC5E6CE +:103A600008C00E9438078FE39CE90197F1F700C076 +:103A70000000C150B1F789E20E941A1D81110AC1EC +:103A80008AE20E941A1D81110E944C1E85E00E944C +:103A90001A1D81110E94BD1C0E94761E8093D001C8 +:103AA00087E00E941A1D882399F18BE10E941A1D5C +:103AB000882351F09091D00191FB882780F921E073 +:103AC000822780FB91F922C08EE00E941A1D882374 +:103AD00051F09091D00192FB882780F921E0822754 +:103AE00080FB92F913C080E10E941A1D9091D001D1 +:103AF000882341F093FB882780F921E0822780FB0F +:103B000093F904C0892F809580FB90F99093D001A0 +:103B10008091D0010E947A1E0E94881E8093E1014C +:103B200080EE0E941A1D882341F08091E101982FB8 +:103B3000909590FB80F98093E10189E30E941A1D22 +:103B4000882359F09091E10191FB882780F921E0C9 +:103B5000822780FB91F99093E10182EE0E941A1D69 +:103B6000882359F09091E10192FB882780F921E0A8 +:103B7000822780FB92F99093E10186EE0E941A1D44 +:103B8000882359F09091E10193FB882780F921E087 +:103B9000822780FB93F99093E10183EE0E941A1D26 +:103BA000882359F09091E10194FB882780F921E066 +:103BB000822780FB94F99093E10185E30E941A1D0E +:103BC000882359F09091E10195FB882780F921E045 +:103BD000822780FB95F99093E10181E30E941A1DF1 +:103BE000882359F09091E10196FB882780F921E024 +:103BF000822780FB96F99093E10181E10E941A1DD2 +:103C0000882359F09091E10197FB882780F921E002 +:103C1000822780FB97F99093E1018091E1010E9456 +:103C20008C1E87E20E941A1DC82F8EE10E941A1D69 +:103C30008111C2608FE10E941A1D8111C46080E26F +:103C40000E941A1D8111C86081E20E941A1D811113 +:103C5000C06182E20E941A1D8111C06283E20E944B +:103C60001A1D8111C06484E20E941A1D882311F07C +:103C7000C06802C0CC2329F08C2F0E94831E6C2FB9 +:103C800003C00E947F1E682F70E080E090E0CF911B +:103C90000C94201ACF9108956DEE7EEF80E090E0B5 +:103CA0000E94D92460E082E090E00E94CB2460E092 +:103CB00083E090E00E94CB2460E084E090E00E94EA +:103CC000CB2460E085E090E00E94CB2460E086E0B9 +:103CD00090E00C94CB2480E090E00E94C52421E089 +:103CE0008D3E9E4F09F020E0822F089582E090E003 +:103CF0000C94BD24682F82E090E00C94CB2483E0E8 +:103D000090E00C94BD24682F83E090E00C94CB24C9 +:103D100084E090E00C94BD24682F84E090E00C9443 +:103D2000CB2486E090E00C94BD24682F86E090E0E0 +:103D30000C94CB248091DE0180FF0BC060911101B7 +:103D400085E0689FB0011124759567957595679515 +:103D50002AC081FF09C06091110185E0689FB00110 +:103D60001124759567951FC082FF07C060911101EE +:103D700085E0689FB001112416C04091D80144230A +:103D8000C9F060911001461788F72091110185E074 +:103D9000289F90011124429FC001439F900D112440 +:103DA00070E00E9495246038710540F4611571053A +:103DB00039F002C065E070E0862F08958FE708951E +:103DC00081E008958091DE0180FF08C060910F01BD +:103DD00070E0759567957595679521C081FF06C060 +:103DE00060910F0170E07595679519C082FF04C05E +:103DF00060910F0170E010C08091D8018823C1F05C +:103E000060910E018617A0F790910F01989FC00155 +:103E1000112470E00E9495246038710528F4611522 +:103E2000710521F0862F08958FE7089581E00895A8 +:103E300061E070E0F4CF803F21F40E949A1E8195EA +:103E400004C0813F29F40E949A1E8093DB010895EB +:103E5000823F21F40E949A1E819504C0833F29F479 +:103E60000E949A1E8093DA010895893F19F40E94F6 +:103E7000E21E05C08A3F31F40E94E21E81958093C4 +:103E8000DC0108958B3F21F40E94E21E819504C05D +:103E90008C3F29F40E94E21E8093DD010895843F47 +:103EA00021F48091D901816017C0853F21F4809170 +:103EB000D901826011C0863F21F48091D9018460CC +:103EC0000BC0873F21F48091D901886005C0883FED +:103ED00031F48091D90180618093D90108958D3F9B +:103EE00021F48091DE0181600BC08E3F21F480912E +:103EF000DE01826005C08F3F29F48091DE0184607D +:103F00008093DE010895803F29F48091DB0187FFD3 +:103F10006EC007C0813F41F48091DB0118160CF0A0 +:103F200066C01092DB0163C09091DA01823F19F400 +:103F300097FF5DC005C0833F31F419160CF057C0E0 +:103F40001092DA0154C0893F31F48091DC011816D7 +:103F50000CF04DC006C08A3F39F48091DC0187FF28 +:103F600046C01092DC0143C08B3F29F48091DD01F3 +:103F700087FF3DC006C08C3F39F48091DD011816E3 +:103F8000B4F51092DD0133C0843F21F48091D90152 +:103F90008E7F05C0853F31F48091D9018D7F80935C +:103FA000D90125C0863F21F48091D9018B7FF7CFBD +:103FB000873F21F48091D901877FF1CF883F21F499 +:103FC0008091D9018F7EEBCF8D3F21F48091DE016E +:103FD0008E7F0BC08E3F21F48091DE018D7F05C066 +:103FE0008F3F29F48091DE018B7F8093DE018091E9 +:103FF000DA0181110EC08091DB0181110AC080912C +:10400000DC01811106C08091DD01811102C0109296 +:10401000D801089589ED91E00E94FB0F0E945D1C7C +:104020009093D7018093D6010895CF938091D601C4 +:104030009091D7010E946A1C4091D801442321F03D +:104040002091120130E006C0209113015AE0259F13 +:10405000900111248217930708F486C08091DA0139 +:1040600081110DC09091DB01911109C09091DC018B +:10407000911105C09091DD01992309F475C04F3F5E +:1040800019F04F5F4093D801181624F40E949A1E2D +:104090008093DA018091DA0187FF05C00E949A1EA1 +:1040A00081958093DA018091DB01181624F40E9437 +:1040B0009A1E8093DB018091DB0187FF05C00E947F +:1040C0009A1E81958093DB016091DA01662339F1B4 +:1040D000C091DB01CC2319F1772767FD7095872FFD +:1040E000972F0E949A2323E333E343E35FE30E9485 +:1040F000FE230E9467236093DA016C2F772767FD08 +:104100007095872F972F0E949A2323E333E343E38D +:104110005FE30E94FE230E9467236093DB0180918E +:10412000DC01181624F40E94E21E8093DC018091C9 +:10413000DC0187FF05C00E94E21E81958093DC01AF +:104140008091DD01181624F40E94E21E8093DD01A7 +:104150008091DD0187FF05C00E94E21E819580935A +:10416000DD01CF910C940A20CF910895E9EDF1E0A3 +:1041700085E0DF011D928A95E9F71092D80110922F +:10418000DE010895833089F130F4813061F08230AE +:1041900009F06EC019C0853009F449C0B8F1863005 +:1041A00009F066C055C020911301862F90E0820F60 +:1041B000911D8F3F910520F4620F609313010895C4 +:1041C0008FEF80931301089520911201862F90E0C4 +:1041D000820F911D8F3F910520F4620F60931201B1 +:1041E00008958FEF80931201089520911101862F79 +:1041F00090E0820F911D8F3F910520F4620F609334 +:10420000110108958FEF80931101089520911001FD +:10421000862F90E0820F911D8F3F910520F4620F51 +:104220006093100108958FEF8093100108952091FD +:104230000F01862F90E0820F911D8F3F910520F492 +:10424000620F60930F0108958FEF80930F0108951F +:1042500020910E01862F90E0820F911D8F3F9105D6 +:1042600020F4620F60930E0108958FEF80930E018A +:104270000895833021F130F4813059F0823009F013 +:1042800049C012C0853089F128F1863009F042C05A +:1042900037C080911301681720F4861B80931301A7 +:1042A000089510921301089580911201681720F467 +:1042B000861B809312010895109212010895809137 +:1042C0001101681720F4861B809311010895109244 +:1042D0001101089580911001681720F4861B8093C6 +:1042E0001001089510921001089580910F01681730 +:1042F00020F4861B80930F01089510920F010895FA +:1043000080910E01681720F4861B80930E0108959A +:1043100010920E01089541E050E060E070E004C0AA +:10432000440F551F661F771F8A95D2F7CB01BA013C +:104330000E94201A0C941516873200F58E3108F071 +:1043400086C08E3009F466C060F4873009F44DC031 +:1043500018F4863049F531C0883041F18B3021F5B1 +:104360007BC0863109F478C018F48031E9F45CC070 +:10437000893109F471C08B31B9F442C0883309F432 +:104380006BC048F4893209F460C0853309F45DC01C +:10439000873251F45AC0833409F457C018F48A3371 +:1043A00018F057C0883499F080E008950E94761E76 +:1043B0000E94881E0E94911E4FC08091D001817F73 +:1043C0008E7F8093D00181E08093DF0108950E9469 +:1043D00015162FEF83ED90E3215080409040E1F7D8 +:1043E00000C000000E94BD1C37C08091D00180FF3A +:1043F00003C0817F8E7F01C081608093D0012CC07B +:104400009091D00191FB882780F921E0822780FBE1 +:1044100091F913C09091D00192FB882780F921E097 +:10442000822780FB92F909C09091D00193FB8827E5 +:1044300080F921E0822780FB93F99093D0018823B3 +:1044400059F091609093D00107C080E003C08D5176 +:1044500001C089530E948B2181E0089580E0089576 +:1044600080E00895CF93C82F8091DF01813071F0F3 +:1044700020F0823009F089C037C0A0910C01B091C2 +:104480000D018C91823209F082C007C0A0910C010D +:10449000B0910D018C91823249F48C2F0E942E2212 +:1044A00081111EC08C2F0E949C211CC08C2F0E9449 +:1044B0003022811115C0C43169F030F4CB3081F065 +:1044C000C03109F068C009C0C93221F0C83309F011 +:1044D00062C006C01092DF015EC082E08093DF01FF +:1044E00081E090E081705AC0C932C9F060F4C431F3 +:1044F000B1F020F4C73009F04CC034C0CE51C63002 +:1045000008F047C017C0CE3439F120F4CB3409F09D +:1045100040C01CC0C135C1F0C235D9F513C080916F +:10452000E001882319F01092E00133C081E080930C +:10453000DF0134C0EC2FF0E0E65BFE4F808180931A +:10454000E00127C061E003C061E007C06AE080913C +:10455000E0010E94C2201DC06AE08091E0010E943B +:10456000392117C08EE18093130182E380931201F9 +:104570008AE08093110184E18093100188E08093A8 +:104580000F0188E280930E0104C01092DF0180E0E9 +:1045900005C081E003C080E090E0A4CFCF910895F2 +:1045A0000E946B1E811102C00E944C1E0E94911E2F +:1045B0008093F00180FF02C0869501C080E00C94DA +:1045C000E1028091F001982F9695292F30E0233059 +:1045D00031054CF49F5F990F8170892B8160809326 +:1045E000F0010E94951E8091F00186950C94E102E5 +:1045F0008091F001982F969591F09158990F8170C4 +:10460000892B8093F0018E7F91E009F490E08091F6 +:10461000F00190FB80F98093F0010E94951E80913B +:10462000F00186950C94E1028091F001982F90950D +:1046300090FB80F98093F0010E94951E8091F0011B +:1046400080FF02C0869501C080E00C94E1023091A9 +:10465000F001232F26952F5F2F77822F90E0317066 +:1046600004972CF4220F232B2093F00102C03093E7 +:10467000F0018091F001282F2E7F91E009F490E065 +:1046800090FB80F98093F0010E94951E8091F001CB +:1046900086950C94E1022091F001922F969598272F +:1046A000990F822F8170892B8093F0018E7F91E08A +:1046B00009F490E08091F00190FB80F98093F00183 +:1046C0000E94951E8091F00186950C94E10204D021 +:1046D0006894B1118DC0089570D088F09F5790F004 +:1046E000B92F9927B751A0F0D1F0660F771F881F17 +:1046F000991F1AF0BA95C9F712C0B13081F077D07E +:10470000B1E0089574C0672F782F8827B85F39F01B +:10471000B93FCCF3869577956795B395D9F73EF475 +:1047200090958095709561957F4F8F4F9F4F08951D +:10473000E89409C097FB3EF490958095709561953B +:104740007F4F8F4F9F4F9923A9F0F92F96E9BB27F1 +:104750009395F695879577956795B795F111F8CF6D +:10476000FAF4BB0F11F460FF1BC06F5F7F4F8F4FD8 +:104770009F4F16C0882311F096E911C0772321F0CE +:104780009EE8872F762F05C0662371F096E8862F66 +:1047900070E060E02AF09A95660F771F881FDAF7BD +:1047A000880F9695879597F9089557FD9058440F6F +:1047B000551F59F05F3F71F04795880F97FB991F80 +:1047C00061F09F3F79F0879508951216130614063D +:1047D000551FF2CF4695F1DF08C0161617061806CA +:1047E000991FF1CF86957105610508940895E894A5 +:1047F000BB2766277727CB0197F908950BD078C0A0 +:1048000069D028F06ED018F0952309F05AC05FC027 +:104810001124EECFCADFA0F3959FD1F3950F50E09E +:10482000551F629FF001729FBB27F00DB11D639F62 +:10483000AA27F00DB11DAA1F649F6627B00DA11D08 +:10484000661F829F2227B00DA11D621F739FB00DAE +:10485000A11D621F839FA00D611D221F749F33271E +:10486000A00D611D231F849F600D211D822F762FB7 +:104870006A2F11249F5750408AF0E1F088234AF0B4 +:10488000EE0FFF1FBB1F661F771F881F9150504000 +:10489000A9F79E3F510570F014C0AACF5F3FECF31B +:1048A000983EDCF3869577956795B795F795E795EC +:1048B0009F5FC1F7FE2B880F911D9695879597F9FD +:1048C000089597F99F6780E870E060E008959FEF92 +:1048D00080EC089500240A94161617061806090697 +:1048E000089500240A941216130614060506089566 +:1048F000092E0394000C11F4882352F0BB0F40F4EE +:10490000BF2B11F460FF04C06F5F7F4F8F4F9F4F2D +:104910000895991B79E004C0991F961708F0961B1B +:10492000881F7A95C9F78095089597FB072E16F48E +:10493000009407D077FD09D00E94A92407FC05D078 +:104940003EF4909581959F4F0895709561957F4FA6 +:104950000895AA1BBB1B51E107C0AA1FBB1FA617C6 +:10496000B70710F0A61BB70B881F991F5A95A9F718 +:1049700080959095BC01CD010895F999FECF92BD27 +:1049800081BDF89A992780B50895A8E1B0E042E08A +:1049900050E00C94E024262FF999FECF1FBA92BD67 +:1049A00081BD20BD0FB6F894FA9AF99A0FBE019610 +:1049B00008950E94CB24272F0C94CC24DC01CB013A +:1049C000FC01F999FECF06C0F2BDE1BDF89A31961F +:1049D00000B40D9241505040B8F70895F894FFCFBD +:1049E00005960826090209CD08990801C80128087A +:1049F000140A321E420045002500260043006100D3 +:104A00006000200037006400650066006700440015 +:104A100046002400470074038D03A603BF038B04E4 +:104A20003E040804E8033F4D362001020304050656 +:044A3000070809006A +:00000001FF diff --git a/keyboard/retro_refit/Makefile b/keyboard/retro_refit/Makefile new file mode 100644 index 0000000000..918b430719 --- /dev/null +++ b/keyboard/retro_refit/Makefile @@ -0,0 +1,140 @@ +#---------------------------------------------------------------------------- +# On command line: +# +# make all = Make software. +# +# make clean = Clean out built project files. +# +# make coff = Convert ELF to AVR COFF. +# +# make extcoff = Convert ELF to AVR Extended COFF. +# +# make program = Download the hex file to the device. +# Please customize your programmer settings(PROGRAM_CMD) +# +# make teensy = Download the hex file to the device, using teensy_loader_cli. +# (must have teensy_loader_cli installed). +# +# make dfu = Download the hex file to the device, using dfu-programmer (must +# have dfu-programmer installed). +# +# make flip = Download the hex file to the device, using Atmel FLIP (must +# have Atmel FLIP installed). +# +# make dfu-ee = Download the eeprom file to the device, using dfu-programmer +# (must have dfu-programmer installed). +# +# make flip-ee = Download the eeprom file to the device, using Atmel FLIP +# (must have Atmel FLIP installed). +# +# make debug = Start either simulavr or avarice as specified for debugging, +# with avr-gdb or avr-insight as the front end for debugging. +# +# make filename.s = Just compile filename.c into the assembler code only. +# +# make filename.i = Create a preprocessed source file for use in submitting +# bug reports to the GCC project. +# +# To rebuild project do "make clean" then "make all". +#---------------------------------------------------------------------------- + +# Target file name (without extension). +TARGET = retro_refit + + +# Directory common source filess exist +TOP_DIR = ../.. +TMK_DIR = ../../tmk_core + +# Directory keyboard dependent files exist +TARGET_DIR = . + +# # project specific files +SRC = retro_refit.c + +ifdef KEYMAP + SRC := keymaps/$(KEYMAP).c $(SRC) +else + SRC := keymaps/default.c $(SRC) +endif + +CONFIG_H = config.h + +# MCU name +#MCU = at90usb1287 +MCU = atmega32u4 + +# Processor frequency. +# This will define a symbol, F_CPU, in all source code files equal to the +# processor frequency in Hz. You can then use this symbol in your source code to +# calculate timings. Do NOT tack on a 'UL' at the end, this will be done +# automatically to create a 32-bit value in your source code. +# +# This will be an integer division of F_USB below, as it is sourced by +# F_USB after it has run through any CPU prescalers. Note that this value +# does not *change* the processor frequency - it should merely be updated to +# reflect the processor speed set externally so that the code can use accurate +# software delays. +F_CPU = 16000000 + + +# +# LUFA specific +# +# Target architecture (see library "Board Types" documentation). +ARCH = AVR8 + +# Input clock frequency. +# This will define a symbol, F_USB, in all source code files equal to the +# input clock frequency (before any prescaling is performed) in Hz. This value may +# differ from F_CPU if prescaling is used on the latter, and is required as the +# raw input clock is fed directly to the PLL sections of the AVR for high speed +# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' +# at the end, this will be done automatically to create a 32-bit value in your +# source code. +# +# If no clock division is performed on the input clock inside the AVR (via the +# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. +F_USB = $(F_CPU) + +# Interrupt driven control endpoint task(+60) +OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT + + +# Boot Section Size in *bytes* +# Teensy halfKay 512 +# Teensy++ halfKay 1024 +# Atmel DFU loader 4096 +# LUFA bootloader 4096 +# USBaspLoader 2048 +OPT_DEFS += -DBOOTLOADER_SIZE=512 + + +# Build Options +# comment out to disable the options. +# +BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = yes # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = yes # Console for debug(+400) +COMMAND_ENABLE = yes # Commands for debug and configuration +KEYBOARD_LOCK_ENABLE = yes # Allow locking of keyboard via magic key +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +# SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend +NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +# BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +# MIDI_ENABLE = YES # MIDI controls +# UNICODE_ENABLE = YES # Unicode +# BLUETOOTH_ENABLE = yes # Enable Bluetooth with the Adafruit EZ-Key HID + + +# Optimize size but this may cause error "relocation truncated to fit" +#EXTRALDFLAGS = -Wl,--relax + +# Search Path +VPATH += $(TARGET_DIR) +VPATH += $(TOP_DIR) +VPATH += $(TMK_DIR) + +include $(TOP_DIR)/quantum/quantum.mk + diff --git a/keyboard/retro_refit/README.md b/keyboard/retro_refit/README.md new file mode 100644 index 0000000000..d3c9d4197d --- /dev/null +++ b/keyboard/retro_refit/README.md @@ -0,0 +1,24 @@ +retro_refit keyboard firmware +====================== + +## Quantum MK Firmware + +For the full Quantum feature list, see [the parent README.md](/README.md). + +## Building + +Download or clone the whole firmware and navigate to the keyboard/retro_refit folder. Once your dev env is setup, you'll be able to type `make` to generate your .hex - you can then use the Teensy Loader to program your .hex file. + +Depending on which keymap you would like to use, you will have to compile slightly differently. + +### Default +To build with the default keymap, simply run `make`. + +### Other Keymaps +Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create file named `.c` and see keymap document (you can find in top README.md) and existent keymap files. + +To build the firmware binary hex file with a keymap just do `make` with `KEYMAP` option like: +``` +$ make KEYMAP=[default|jack|] +``` +Keymaps follow the format **__\.c__** and are stored in the `keymaps` folder. \ No newline at end of file diff --git a/keyboard/retro_refit/config.h b/keyboard/retro_refit/config.h new file mode 100644 index 0000000000..05fceb92b2 --- /dev/null +++ b/keyboard/retro_refit/config.h @@ -0,0 +1,122 @@ +/* +Copyright 2012 Jun Wako + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#ifndef CONFIG_H +#define CONFIG_H + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x6060 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Nobody +#define PRODUCT retro_refit +#define DESCRIPTION Retro Refit + +/* key matrix size */ +#define MATRIX_ROWS 11 +#define MATRIX_COLS 8 + +// See note in retro_refit.h for an explanation of how this matrix is wired up +#define COLS (int []){ B0, B1, B2, B3, D2, D3, C7, D5 } +#define ROWS (int []){ D4, D7, B4, B5, B6, F7, F6, F5, F4, F1, F0 } + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* define if matrix has ghost */ +//#define MATRIX_HAS_GHOST + +/* number of backlight levels */ +#define BACKLIGHT_LEVELS 0 + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + + +/* Force NKRO Mode - If forced on, must be disabled via magic key (default = LShift+RShift+N) */ +#define FORCE_NKRO + +/* + * Magic key options + * These options allow the magic key functionality to be changed. This is useful + * if your keyboard/keypad is missing keys and you want magic key support. + */ + +/* key combination for magic key command */ +#define IS_COMMAND() ( \ + keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ +) + +/* control how magic key switches layers */ +//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true +//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true +//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false + +/* remap magic keys */ +//#define MAGIC_KEY_HELP1 H +//#define MAGIC_KEY_HELP2 SLASH +//#define MAGIC_KEY_DEBUG D +//#define MAGIC_KEY_DEBUG_MATRIX X +//#define MAGIC_KEY_DEBUG_KBD K +//#define MAGIC_KEY_DEBUG_MOUSE M +//#define MAGIC_KEY_VERSION V +//#define MAGIC_KEY_STATUS S +//#define MAGIC_KEY_CONSOLE C +//#define MAGIC_KEY_LAYER0_ALT1 ESC +//#define MAGIC_KEY_LAYER0_ALT2 GRAVE +//#define MAGIC_KEY_LAYER0 0 +//#define MAGIC_KEY_LAYER1 1 +//#define MAGIC_KEY_LAYER2 2 +//#define MAGIC_KEY_LAYER3 3 +//#define MAGIC_KEY_LAYER4 4 +//#define MAGIC_KEY_LAYER5 5 +//#define MAGIC_KEY_LAYER6 6 +//#define MAGIC_KEY_LAYER7 7 +//#define MAGIC_KEY_LAYER8 8 +//#define MAGIC_KEY_LAYER9 9 +//#define MAGIC_KEY_BOOTLOADER PAUSE +#define MAGIC_KEY_LOCK BSLS +//#define MAGIC_KEY_EEPROM E +//#define MAGIC_KEY_NKRO N +//#define MAGIC_KEY_SLEEP_LED Z + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION + +#endif \ No newline at end of file diff --git a/keyboard/retro_refit/keymaps/default.c b/keyboard/retro_refit/keymaps/default.c new file mode 100644 index 0000000000..405402d5e3 --- /dev/null +++ b/keyboard/retro_refit/keymaps/default.c @@ -0,0 +1,33 @@ +// This is the canonical layout file for the Quantum project. If you want to add another keyboard, +// this is the style you want to emulate. + +#include "retro_refit.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[0] = + KEYMAP( ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, NLCK, SLCK, PSCR, PAUS, \ + GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS, EQL, BSPC, HOME, \ + TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC, RBRC, PGUP, \ + BSLS, A, S, D, F, G, H, J, K, L, SCLN, QUOT, ENT, PGDN, \ + LSFT, Z, X, C, V, B, N, M, COMM, DOT, SLSH, RSFT, UP, END, \ + LCTL, LGUI, LALT, SPC, INS, DEL, LEFT, DOWN, RGHT), +}; + +const uint16_t PROGMEM fn_actions[] = { + +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch(id) { + case 0: + if (record->event.pressed) { + register_code(KC_RSFT); + } else { + unregister_code(KC_RSFT); + } + break; + } + return MACRO_NONE; +}; diff --git a/keyboard/retro_refit/retro_refit.c b/keyboard/retro_refit/retro_refit.c new file mode 100644 index 0000000000..0b13eb8301 --- /dev/null +++ b/keyboard/retro_refit/retro_refit.c @@ -0,0 +1,68 @@ +#include "retro_refit.h" + +__attribute__ ((weak)) +void matrix_init_user(void) { + // leave this function blank - it can be defined in a keymap file +}; + +__attribute__ ((weak)) +void matrix_scan_user(void) { + // leave this function blank - it can be defined in a keymap file +}; + +__attribute__ ((weak)) +void led_set_user(uint8_t usb_led) { + // leave this function blank - it can be defined in a keymap file +}; + +void matrix_init_kb(void) { + // put your keyboard start-up code here + // runs once when the firmware starts up + + // Disable status LED on KB, enable status LED on Teensy (KB_STATUS = !TEENSY_STATUS) + DDRD |= (1<<6); + PORTD |= (1<<6); + + matrix_init_user(); +}; + +void amatrix_scan_kb(void) { + // put your looping keyboard code here + // runs every cycle (a lot) + + matrix_scan_user(); +}; + +void led_set_kb(uint8_t usb_led) { + // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here + + if (usb_led & (1< + +// This macro is an example of using a non-standard row-column matrix. The +// keyboard in question had 11 rows and 8 columns, but the rows were not all +// horizontal, and the columns were not all vertical. For example, row 2 +// contained "Print Screen", "N", "M", ",", ".", "/", "Right Shift", and +// "Left Alt". Column 0 contained "F6", "7", "O", "'", "Q", "D", "B", +// "Left Alt", "Up Arrow", and "Down Arrow". +// +// The macro makes programming the keys easier and in a more straight-forward +// manner because it realigns the keys into a 6x15 sensible keyboard layout +// instead of the obtuse 11x8 matrix. + +#define KEYMAP( \ + K77, K05, K04, K03, K02, K01, K00, KA7, KA6, KA5, KA4, KA3, KA2, K11, K94, \ + K27, K76, K75, K74, K73, K72, K71, K70, K67, K66, K65, K64, K63, K62, KA1, \ + K61, K60, K57, K56, K55, K54, K53, K52, K51, K50, K47, K46, K45, K97, \ + K43, K42, K41, K40, K37, K36, K35, K34, K33, K32, K31, K30, K44, K87, \ + K26, K24, K23, K22, K21, K20, K17, K16, K15, K14, K13, K12, KA0, K91, \ + K10, K06, K25, K07, K86, K85, K95, K90, K93 \ +) { \ +{ KC_##K00, KC_##K01, KC_##K02, KC_##K03, KC_##K04, KC_##K05, KC_##K06, KC_##K07, }, \ +{ KC_##K10, KC_##K11, KC_##K12, KC_##K13, KC_##K14, KC_##K15, KC_##K16, KC_##K17, }, \ +{ KC_##K20, KC_##K21, KC_##K22, KC_##K23, KC_##K24, KC_##K25, KC_##K26, KC_##K27, }, \ +{ KC_##K30, KC_##K31, KC_##K32, KC_##K33, KC_##K34, KC_##K35, KC_##K36, KC_##K37, }, \ +{ KC_##K40, KC_##K41, KC_##K42, KC_##K43, KC_##K44, KC_##K45, KC_##K46, KC_##K47, }, \ +{ KC_##K50, KC_##K51, KC_##K52, KC_##K53, KC_##K54, KC_##K55, KC_##K56, KC_##K57, }, \ +{ KC_##K60, KC_##K61, KC_##K62, KC_##K63, KC_##K64, KC_##K65, KC_##K66, KC_##K67, }, \ +{ KC_##K70, KC_##K71, KC_##K72, KC_##K73, KC_##K74, KC_##K75, KC_##K76, KC_##K77, }, \ +{ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_##K85, KC_##K86, KC_##K87, }, \ +{ KC_##K90, KC_##K91, KC_NO, KC_##K93, KC_##K94, KC_##K95, KC_NO, KC_##K97, }, \ +{ KC_##KA0, KC_##KA1, KC_##KA2, KC_##KA3, KC_##KA4, KC_##KA5, KC_##KA6, KC_##KA7, } \ +} + +void matrix_init_user(void); +void matrix_scan_user(void); +void led_set_user(uint8_t usb_led); + +#endif \ No newline at end of file diff --git a/new_project.sh b/new_project.sh index 86ecf692f4..28de9c2f9f 100755 --- a/new_project.sh +++ b/new_project.sh @@ -12,11 +12,10 @@ sed -e "s;%KEYBOARD%;$KEYBOARD;g" quantum/template/template.c > keyboard/$KEYBOA sed -e "s;%KEYBOARD%;$KEYBOARD;g" quantum/template/config.h > keyboard/$KEYBOARD/config.h sed -e "s;%KEYBOARD%;$KEYBOARD;g" quantum/template/README.md > keyboard/$KEYBOARD/README.md sed -e "s;%KEYBOARD%;$KEYBOARD;g" quantum/template/Makefile > keyboard/$KEYBOARD/Makefile -sed -e "s;%KEYBOARD%;$KEYBOARD;g" quantum/template/keymaps/keymap_default.c > keyboard/$KEYBOARD/keymaps/keymap_default.c -cp quantum/template/bootloader.hex keyboard/$KEYBOARD/bootloader.hex +sed -e "s;%KEYBOARD%;$KEYBOARD;g" quantum/template/keymaps/default.c > keyboard/$KEYBOARD/keymaps/default.c echo "######################################################" echo "# keyboard/$KEYBOARD project created. To start" echo "# working on things, use the following command:" echo "# cd keyboard/$KEYBOARD" -echo "######################################################" \ No newline at end of file +echo "######################################################" diff --git a/quantum/audio.c b/quantum/audio.c new file mode 100644 index 0000000000..73985479cc --- /dev/null +++ b/quantum/audio.c @@ -0,0 +1,416 @@ +#include +#include +#include +#include +#include +#include + +#include "audio.h" +#include "keymap_common.h" + +#include "eeconfig.h" + +#define PI 3.14159265 + +// #define PWM_AUDIO + +#ifdef PWM_AUDIO + #include "wave.h" + #define SAMPLE_DIVIDER 39 + #define SAMPLE_RATE (2000000.0/SAMPLE_DIVIDER/2048) + // Resistor value of 1/ (2 * PI * 10nF * (2000000 hertz / SAMPLE_DIVIDER / 10)) for 10nF cap +#endif + +void delay_us(int count) { + while(count--) { + _delay_us(1); + } +} + +int voices = 0; +int voice_place = 0; +double frequency = 0; +int volume = 0; +long position = 0; + +double frequencies[8] = {0, 0, 0, 0, 0, 0, 0, 0}; +int volumes[8] = {0, 0, 0, 0, 0, 0, 0, 0}; +bool sliding = false; + +int max = 0xFF; +float sum = 0; +int value = 128; +float place = 0; +float places[8] = {0, 0, 0, 0, 0, 0, 0, 0}; + +uint16_t place_int = 0; +bool repeat = true; +uint8_t * sample; +uint16_t sample_length = 0; + + +bool notes = false; +bool note = false; +float note_frequency = 0; +float note_length = 0; +uint16_t note_position = 0; +float (* notes_pointer)[][2]; +uint8_t notes_length; +bool notes_repeat; +uint8_t current_note = 0; + +audio_config_t audio_config; + + +void audio_toggle(void) { + audio_config.enable ^= 1; + eeconfig_write_audio(audio_config.raw); +} + +void audio_on(void) { + audio_config.enable = 1; + eeconfig_write_audio(audio_config.raw); +} + +void audio_off(void) { + audio_config.enable = 0; + eeconfig_write_audio(audio_config.raw); +} + + +void stop_all_notes() { + voices = 0; + #ifdef PWM_AUDIO + TIMSK3 &= ~_BV(OCIE3A); + #else + TIMSK3 &= ~_BV(OCIE3A); + TCCR3A &= ~_BV(COM3A1); + #endif + notes = false; + note = false; + frequency = 0; + volume = 0; + + for (int i = 0; i < 8; i++) { + frequencies[i] = 0; + volumes[i] = 0; + } +} + +void stop_note(double freq) { + #ifdef PWM_AUDIO + freq = freq / SAMPLE_RATE; + #endif + for (int i = 7; i >= 0; i--) { + if (frequencies[i] == freq) { + frequencies[i] = 0; + volumes[i] = 0; + for (int j = i; (j < 7); j++) { + frequencies[j] = frequencies[j+1]; + frequencies[j+1] = 0; + volumes[j] = volumes[j+1]; + volumes[j+1] = 0; + } + } + } + voices--; + if (voices < 0) + voices = 0; + if (voices == 0) { + #ifdef PWM_AUDIO + TIMSK3 &= ~_BV(OCIE3A); + #else + TIMSK3 &= ~_BV(OCIE3A); + TCCR3A &= ~_BV(COM3A1); + #endif + frequency = 0; + volume = 0; + note = false; + } else { + double freq = frequencies[voices - 1]; + int vol = volumes[voices - 1]; + double starting_f = frequency; + if (frequency < freq) { + sliding = true; + for (double f = starting_f; f <= freq; f += ((freq - starting_f) / 2000.0)) { + frequency = f; + } + sliding = false; + } else if (frequency > freq) { + sliding = true; + for (double f = starting_f; f >= freq; f -= ((starting_f - freq) / 2000.0)) { + frequency = f; + } + sliding = false; + } + frequency = freq; + volume = vol; + } +} + +void init_notes() { + + /* check signature */ + if (!eeconfig_is_enabled()) { + eeconfig_init(); + } + audio_config.raw = eeconfig_read_audio(); + + #ifdef PWM_AUDIO + PLLFRQ = _BV(PDIV2); + PLLCSR = _BV(PLLE); + while(!(PLLCSR & _BV(PLOCK))); + PLLFRQ |= _BV(PLLTM0); /* PCK 48MHz */ + + /* Init a fast PWM on Timer4 */ + TCCR4A = _BV(COM4A0) | _BV(PWM4A); /* Clear OC4A on Compare Match */ + TCCR4B = _BV(CS40); /* No prescaling => f = PCK/256 = 187500Hz */ + OCR4A = 0; + + /* Enable the OC4A output */ + DDRC |= _BV(PORTC6); + + TIMSK3 &= ~_BV(OCIE3A); // Turn off 3A interputs + + TCCR3A = 0x0; // Options not needed + TCCR3B = _BV(CS31) | _BV(CS30) | _BV(WGM32); // 64th prescaling and CTC + OCR3A = SAMPLE_DIVIDER - 1; // Correct count/compare, related to sample playback + #else + DDRC |= _BV(PORTC6); + + TIMSK3 &= ~_BV(OCIE3A); // Turn off 3A interputs + + TCCR3A = (0 << COM3A1) | (0 << COM3A0) | (1 << WGM31) | (0 << WGM30); + TCCR3B = (1 << WGM33) | (1 << WGM32) | (0 << CS32) | (1 << CS31) | (0 << CS30); + #endif +} + + +ISR(TIMER3_COMPA_vect) { + if (note) { + #ifdef PWM_AUDIO + if (voices == 1) { + // SINE + OCR4A = pgm_read_byte(&sinewave[(uint16_t)place]) >> 2; + + // SQUARE + // if (((int)place) >= 1024){ + // OCR4A = 0xFF >> 2; + // } else { + // OCR4A = 0x00; + // } + + // SAWTOOTH + // OCR4A = (int)place / 4; + + // TRIANGLE + // if (((int)place) >= 1024) { + // OCR4A = (int)place / 2; + // } else { + // OCR4A = 2048 - (int)place / 2; + // } + + place += frequency; + + if (place >= SINE_LENGTH) + place -= SINE_LENGTH; + + } else { + int sum = 0; + for (int i = 0; i < voices; i++) { + // SINE + sum += pgm_read_byte(&sinewave[(uint16_t)places[i]]) >> 2; + + // SQUARE + // if (((int)places[i]) >= 1024){ + // sum += 0xFF >> 2; + // } else { + // sum += 0x00; + // } + + places[i] += frequencies[i]; + + if (places[i] >= SINE_LENGTH) + places[i] -= SINE_LENGTH; + } + OCR4A = sum; + } + #else + if (frequency > 0) { + // ICR3 = (int)(((double)F_CPU) / frequency); // Set max to the period + // OCR3A = (int)(((double)F_CPU) / frequency) >> 1; // Set compare to half the period + if (place > 10) { + voice_place = (voice_place + 1) % voices; + place = 0.0; + } + ICR3 = (int)(((double)F_CPU) / frequencies[voice_place]); // Set max to the period + OCR3A = (int)(((double)F_CPU) / frequencies[voice_place]) >> 1; // Set compare to half the period + place++; + } + #endif + } + + // SAMPLE + // OCR4A = pgm_read_byte(&sample[(uint16_t)place_int]); + + // place_int++; + + // if (place_int >= sample_length) + // if (repeat) + // place_int -= sample_length; + // else + // TIMSK3 &= ~_BV(OCIE3A); + + + if (notes) { + #ifdef PWM_AUDIO + OCR4A = pgm_read_byte(&sinewave[(uint16_t)place]) >> 0; + + place += note_frequency; + if (place >= SINE_LENGTH) + place -= SINE_LENGTH; + #else + if (note_frequency > 0) { + ICR3 = (int)(((double)F_CPU) / note_frequency); // Set max to the period + OCR3A = (int)(((double)F_CPU) / note_frequency) >> 1; // Set compare to half the period + } else { + ICR3 = 0; + OCR3A = 0; + } + #endif + + + note_position++; + bool end_of_note = false; + if (ICR3 > 0) + end_of_note = (note_position >= (note_length / ICR3 * 0xFFFF)); + else + end_of_note = (note_position >= (note_length * 0x7FF)); + if (end_of_note) { + current_note++; + if (current_note >= notes_length) { + if (notes_repeat) { + current_note = 0; + } else { + #ifdef PWM_AUDIO + TIMSK3 &= ~_BV(OCIE3A); + #else + TIMSK3 &= ~_BV(OCIE3A); + TCCR3A &= ~_BV(COM3A1); + #endif + notes = false; + return; + } + } + #ifdef PWM_AUDIO + note_frequency = (*notes_pointer)[current_note][0] / SAMPLE_RATE; + note_length = (*notes_pointer)[current_note][1]; + #else + note_frequency = (*notes_pointer)[current_note][0]; + note_length = (*notes_pointer)[current_note][1] / 4; + #endif + note_position = 0; + } + + } + + if (!audio_config.enable) { + notes = false; + note = false; + } +} + +void play_notes(float (*np)[][2], uint8_t n_length, bool n_repeat) { + +if (audio_config.enable) { + + if (note) + stop_all_notes(); + notes = true; + + notes_pointer = np; + notes_length = n_length; + notes_repeat = n_repeat; + + place = 0; + current_note = 0; + #ifdef PWM_AUDIO + note_frequency = (*notes_pointer)[current_note][0] / SAMPLE_RATE; + note_length = (*notes_pointer)[current_note][1]; + #else + note_frequency = (*notes_pointer)[current_note][0]; + note_length = (*notes_pointer)[current_note][1] / 4; + #endif + note_position = 0; + + + #ifdef PWM_AUDIO + TIMSK3 |= _BV(OCIE3A); + #else + TIMSK3 |= _BV(OCIE3A); + TCCR3A |= _BV(COM3A1); + #endif +} + +} + +void play_sample(uint8_t * s, uint16_t l, bool r) { + +if (audio_config.enable) { + + stop_all_notes(); + place_int = 0; + sample = s; + sample_length = l; + repeat = r; + + #ifdef PWM_AUDIO + TIMSK3 |= _BV(OCIE3A); + #else + #endif + +} + +} + +void play_note(double freq, int vol) { + +if (audio_config.enable) { + + if (notes) + stop_all_notes(); + note = true; + #ifdef PWM_AUDIO + freq = freq / SAMPLE_RATE; + #endif + if (freq > 0) { + if (frequency != 0) { + double starting_f = frequency; + if (frequency < freq) { + for (double f = starting_f; f <= freq; f += ((freq - starting_f) / 2000.0)) { + frequency = f; + } + } else if (frequency > freq) { + for (double f = starting_f; f >= freq; f -= ((starting_f - freq) / 2000.0)) { + frequency = f; + } + } + } + frequency = freq; + volume = vol; + + frequencies[voices] = frequency; + volumes[voices] = volume; + voices++; + } + + #ifdef PWM_AUDIO + TIMSK3 |= _BV(OCIE3A); + #else + TIMSK3 |= _BV(OCIE3A); + TCCR3A |= _BV(COM3A1); + #endif + +} + +} \ No newline at end of file diff --git a/quantum/audio.h b/quantum/audio.h new file mode 100644 index 0000000000..58270015df --- /dev/null +++ b/quantum/audio.h @@ -0,0 +1,23 @@ +#include +#include +#include +#include + +typedef union { + uint8_t raw; + struct { + bool enable :1; + uint8_t level :7; + }; +} audio_config_t; + +void audio_toggle(void); +void audio_on(void); +void audio_off(void); + +void play_sample(uint8_t * s, uint16_t l, bool r); +void play_note(double freq, int vol); +void stop_note(double freq); +void stop_all_notes(); +void init_notes(); +void play_notes(float (*np)[][2], uint8_t n_length, bool n_repeat); diff --git a/quantum/beeps.c b/quantum/beeps.c deleted file mode 100644 index 8d1f81f210..0000000000 --- a/quantum/beeps.c +++ /dev/null @@ -1,246 +0,0 @@ -#include "beeps.h" -#include -#include -#include -#include - -#define PI 3.14159265 - -void delay_us(int count) { - while(count--) { - _delay_us(1); - } -} - -int voices = 0; -double frequency = 0; -int volume = 0; -int position = 0; - -double frequencies[8] = {0, 0, 0, 0, 0, 0, 0, 0}; -int volumes[8] = {0, 0, 0, 0, 0, 0, 0, 0}; -bool sliding = false; -#define RANGE 1000 -volatile int i=0; //elements of the wave - - -void beeps() { - play_notes(); -} - -void send_freq(double freq, int vol) { - int duty = (((double)F_CPU) / freq); - ICR3 = duty; // Set max to the period - OCR3A = duty >> (0x10 - vol); // Set compare to half the period -} - -void stop_all_notes() { - voices = 0; - TCCR3A = 0; - TCCR3B = 0; - frequency = 0; - volume = 0; - - for (int i = 0; i < 8; i++) { - frequencies[i] = 0; - volumes[i] = 0; - } -} - -void stop_note(double freq) { - for (int i = 7; i >= 0; i--) { - if (frequencies[i] == freq) { - frequencies[i] = 0; - volumes[i] = 0; - for (int j = i; (j < 7); j++) { - frequencies[j] = frequencies[j+1]; - frequencies[j+1] = 0; - volumes[j] = volumes[j+1]; - volumes[j+1] = 0; - } - } - } - voices--; - if (voices < 0) - voices = 0; - if (voices == 0) { - TCCR3A = 0; - TCCR3B = 0; - frequency = 0; - volume = 0; - } else { - double freq = frequencies[voices - 1]; - int vol = volumes[voices - 1]; - if (frequency < freq) { - sliding = true; - for (double f = frequency; f <= freq; f += ((freq - frequency) / 500.0)) { - send_freq(f, vol); - } - sliding = false; - } else if (frequency > freq) { - sliding = true; - for (double f = frequency; f >= freq; f -= ((frequency - freq) / 500.0)) { - send_freq(f, vol); - } - sliding = false; - } - send_freq(freq, vol); - frequency = freq; - volume = vol; - } -} - -void init_notes() { - // TCCR1A = (1 << COM1A1) | (0 << COM1A0) | (1 << WGM11) | (1 << WGM10); - // TCCR1B = (1 << COM1B1) | (0 << COM1A0) | (1 << WGM13) | (1 << WGM12) | (0 << CS12) | (0 << CS11) | (1 << CS10); - - // DDRC |= (1<<6); - - // TCCR3A = (1 << COM3A1) | (0 << COM3A0) | (1 << WGM31) | (0 << WGM30); - // TCCR3B = (1 << WGM33) | (1 << WGM32) | (0 << CS32) | (0 << CS31) | (1 << CS30); - - // ICR3 = 0xFFFF; - // OCR3A = (int)((float)wave[i]*ICR3/RANGE); //go to next array element - - - // cli(); - - // /* Enable interrupt on timer2 == 127, with clk/8 prescaler. At 16MHz, - // this gives a timer interrupt at 15625Hz. */ - // TIMSK3 = (1 << OCIE3A); - - // /* clear/reset timer on match */ - // // TCCR3A = 1<> 8) & 0x00FF) -// #define lowByte(c) (c & 0x00FF) - -ISR(TIMER3_COMPA_vect) { - - if (ICR3 > 0 && !sliding) { - switch (position) { - case 0: { - int duty = (((double)F_CPU) / (frequency)); - ICR3 = duty; // Set max to the period - OCR3A = duty >> 1; // Set compare to half the period - break; - } - case 1: { - int duty = (((double)F_CPU) / (frequency*2)); - ICR3 = duty; // Set max to the period - OCR3A = duty >> 1; // Set compare to half the period - break; - } - case 2: { - int duty = (((double)F_CPU) / (frequency*3)); - ICR3 = duty; // Set max to the period - OCR3A = duty >> 1; // Set compare to half the period - break; - } - } - position = (position + 1) % 3; - } -// /* OCR2A has been cleared, per TCCR2A above */ -// // OCR3A = 127; - -// // pos1 += incr1; -// // pos2 += incr2; -// // pos3 += incr3; - -// // sample = sinewave[highByte(pos1)] + sinewave[highByte(pos2)] + sinewave[highByte(pos3)]; - -// // OCR3A = sample; - - -// OCR3A=pgm_read_byte(&sinewave[pos1]); -// pos1++; -// // PORTC &= ~(1<<6); - -// /* buffered, 1x gain, active mode */ -// // SPDR = highByte(sample) | 0x70; -// // while (!(SPSR & (1< 0) { - DDRC |= (1<<6); - - TCCR3A = (1 << COM3A1) | (0 << COM3A0) | (1 << WGM31) | (0 << WGM30); - TCCR3B = (1 << WGM33) | (1 << WGM32) | (0 << CS32) | (1 << CS31) | (0 << CS30); - - if (frequency != 0) { - if (frequency < freq) { - for (double f = frequency; f <= freq; f += ((freq - frequency) / 500.0)) { - send_freq(f, vol); - } - } else if (frequency > freq) { - for (double f = frequency; f >= freq; f -= ((frequency - freq) / 500.0)) { - send_freq(f, vol); - } - } - } - send_freq(freq, vol); - frequency = freq; - volume = vol; - - frequencies[voices] = frequency; - volumes[voices] = volume; - voices++; - } - // ICR3 = 0xFFFF; - // for (int i = 0; i < 10000; i++) { - // OCR3A = round((sin(i*freq)*.5)+.5)*0xFFFF; - // // _delay_us(50); - // } - - // TCCR3A = 0; - // TCCR3B = 0; -} - -// void note(int x, float length) { -// DDRC |= (1<<6); -// int t = (int)(440*pow(2,-x/12.0)); // starting note -// for (int y = 0; y < length*1000/t; y++) { // note length -// PORTC |= (1<<6); -// delay_us(t); -// PORTC &= ~(1<<6); -// delay_us(t); -// } -// PORTC &= ~(1<<6); -// } - -// void true_note(float x, float y, float length) { -// for (uint32_t i = 0; i < length * 50; i++) { -// uint32_t v = (uint32_t) (round(sin(PI*2*i*640000*pow(2, x/12.0))*.5+1 + sin(PI*2*i*640000*pow(2, y/12.0))*.5+1) / 2 * pow(2, 8)); -// for (int u = 0; u < 8; u++) { -// if (v & (1 << u) && !(PORTC&(1<<6))) -// PORTC |= (1<<6); -// else if (PORTC&(1<<6)) -// PORTC &= ~(1<<6); -// } -// } -// PORTC &= ~(1<<6); -// } \ No newline at end of file diff --git a/quantum/beeps.h b/quantum/beeps.h deleted file mode 100644 index 378983c605..0000000000 --- a/quantum/beeps.h +++ /dev/null @@ -1,12 +0,0 @@ -#include -#include -#include -#include - -void note(int x, float length); -void beeps(); -void true_note(float x, float y, float length); -void play_note(double freq, int vol); -void stop_note(double freq); -void stop_all_notes(); -void init_notes(); \ No newline at end of file diff --git a/quantum/keymap_common.c b/quantum/keymap_common.c index 6cc7adf51f..3a00d36f08 100644 --- a/quantum/keymap_common.c +++ b/quantum/keymap_common.c @@ -25,6 +25,19 @@ along with this program. If not, see . #include "debug.h" #include "backlight.h" #include "keymap_midi.h" +#include "bootloader.h" + +#include +#include +#ifdef AUDIO_ENABLE + #include "audio.h" + + float goodbye[][2] = { + {440.0*pow(2.0,(67)/12.0), 8}, + {440.0*pow(2.0,(60)/12.0), 8}, + {440.0*pow(2.0,(55)/12.0), 12}, + }; +#endif static action_t keycode_to_action(uint16_t keycode); @@ -50,7 +63,7 @@ action_t action_for_key(uint8_t layer, keypos_t key) action.code = ACTION_MACRO(keycode & 0xFF); return action; #ifdef BACKLIGHT_ENABLE - } else if (keycode >= BL_0 & keycode <= BL_15) { + } else if (keycode >= BL_0 && keycode <= BL_15) { action_t action; action.code = ACTION_BACKLIGHT_LEVEL(keycode & 0x000F); return action; @@ -72,15 +85,23 @@ action_t action_for_key(uint8_t layer, keypos_t key) return action; #endif } else if (keycode == RESET) { // RESET is 0x5000, which is why this is here + action_t action; clear_keyboard(); + #ifdef AUDIO_ENABLE + play_notes(&goodbye, 3, false); + #endif _delay_ms(250); + #ifdef ATREUS_ASTAR + *(uint16_t *)0x0800 = 0x7777; // these two are a-star-specific + #endif bootloader_jump(); - return; + return action; } else if (keycode == DEBUG) { // DEBUG is 0x5001 // TODO: Does this actually work? + action_t action; print("\nDEBUG: enabled.\n"); debug_enable = true; - return; + return action; } else if (keycode >= 0x5000 && keycode < 0x6000) { // Layer movement shortcuts // See .h to see constraints/usage @@ -270,3 +291,11 @@ action_t keymap_func_to_action(uint16_t keycode) // For FUNC without 8bit limit return (action_t){ .code = pgm_read_word(&fn_actions[(int)keycode]) }; } + +void update_tri_layer(uint8_t layer1, uint8_t layer2, uint8_t layer3) { + if (IS_LAYER_ON(layer1) && IS_LAYER_ON(layer2)) { + layer_on(layer3); + } else { + layer_off(layer3); + } +} diff --git a/quantum/keymap_common.h b/quantum/keymap_common.h index 2d8b29c777..7452a1ff3f 100644 --- a/quantum/keymap_common.h +++ b/quantum/keymap_common.h @@ -68,6 +68,7 @@ extern const uint16_t fn_actions[]; #define LGUI(kc) kc | 0x0800 #define HYPR(kc) kc | 0x0F00 #define MEH(kc) kc | 0x0700 +#define LCAG(kc) kc | 0x0D00 // Modifier Ctrl Alt and GUI #define RCTL(kc) kc | 0x1100 #define RSFT(kc) kc | 0x1200 @@ -183,8 +184,6 @@ extern const uint16_t fn_actions[]; // Toggle to layer - 256 layer max #define TG(layer) (layer | 0x5400) -#define MIDI(n) (n | 0x6000) - // M-od, T-ap - 256 keycode max #define MT(mod, kc) (kc | 0x7000 | ((mod & 0xF) << 8)) #define CTL_T(kc) MT(0x1, kc) @@ -193,6 +192,7 @@ extern const uint16_t fn_actions[]; #define GUI_T(kc) MT(0x8, kc) #define C_S_T(kc) MT(0x3, kc) // Control + Shift e.g. for gnome-terminal #define MEH_T(kc) MT(0x7, kc) // Meh is a less hyper version of the Hyper key -- doesn't include Win or Cmd, so just alt+shift+ctrl +#define LCAG_T(kc) MT(0xD, kc) // Left control alt and gui #define ALL_T(kc) MT(0xF, kc) // see http://brettterpstra.com/2012/12/08/a-useful-caps-lock-key/ // Dedicated keycode versions for Hyper and Meh, if you want to use them as standalone keys rather than mod-tap @@ -208,5 +208,9 @@ extern const uint16_t fn_actions[]; #define UNICODE(n) (n | 0x8000) #define UC(n) UNICODE(n) +// For tri-layer +void update_tri_layer(uint8_t layer1, uint8_t layer2, uint8_t layer3); +#define IS_LAYER_ON(layer) ((layer_state) & (1UL<<(layer))) +#define IS_LAYER_OFF(layer) ((!layer_state) & (1UL<<(layer))) #endif diff --git a/quantum/keymap_extras/keymap_bepo.h b/quantum/keymap_extras/keymap_bepo.h new file mode 100644 index 0000000000..1ab2d63ddd --- /dev/null +++ b/quantum/keymap_extras/keymap_bepo.h @@ -0,0 +1,311 @@ +/* Keymap macros for the French BÉPO layout - http://bepo.fr */ +#ifndef KEYMAP_BEPO_H +#define KEYMAP_BEPO_H + +#include "keymap_common.h" + +// Alt gr +#ifndef ALTGR +#define ALTGR(kc) RALT(kc) +#endif +#ifndef ALGR +#define ALGR(kc) ALTGR(kc) +#endif +#define BP_ALGR KC_RALT + +// Normal characters +// First row (on usual keyboards) +#define BP_DOLLAR KC_GRAVE // $ +#define BP_DLR BP_DOLLAR +#define BP_DOUBLE_QUOTE KC_1 // " +#define BP_DQOT BP_DOUBLE_QUOTE +#define BP_LEFT_GUILLEMET KC_2 // « +#define BP_LGIL BP_LEFT_GUILLEMET +#define BP_RIGHT_GUILLEMET KC_3 // » +#define BP_RGIL BP_RIGHT_GUILLEMET +#define BP_LEFT_PAREN KC_4 // ( +#define BP_LPRN BP_LEFT_PAREN +#define BP_RIGHT_PAREN KC_5 // ) +#define BP_RPRN BP_RIGHT_PAREN +#define BP_AT KC_6 // @ +#define BP_PLUS KC_7 // + +#define BP_MINUS KC_8 // - +#define BP_MINS BP_MINUS +#define BP_SLASH KC_9 // / +#define BP_SLSH BP_SLASH +#define BP_ASTERISK KC_0 // * +#define BP_ASTR BP_ASTERISK +#define BP_EQUAL KC_MINUS // = +#define BP_EQL BP_EQUAL +#define BP_PERCENT KC_EQUAL // % +#define BP_PERC BP_PERCENT + +// Second row +#define BP_B KC_Q +#define BP_E_ACUTE KC_W // é +#define BP_ECUT BP_E_ACUTE +#define BP_P KC_E +#define BP_O KC_R +#define BP_E_GRAVE KC_T // è +#define BP_EGRV BP_E_GRAVE +#define BP_DEAD_CIRCUMFLEX KC_Y // dead ^ +#define BP_DCRC BP_DEAD_CIRCUMFLEX +#define BP_V KC_U +#define BP_D KC_I +#define BP_L KC_O +#define BP_J KC_P +#define BP_Z KC_LBRACKET +#define BP_W KC_RBRACKET + +// Third row +#define BP_A KC_A +#define BP_U KC_S +#define BP_I KC_D +#define BP_E KC_F +#define BP_COMMA KC_G // , +#define BP_COMM BP_COMMA +#define BP_C KC_H +#define BP_T KC_J +#define BP_S KC_K +#define BP_R KC_L +#define BP_N KC_SCOLON +#define BP_M KC_QUOTE +#define BP_C_CEDILLA KC_BSLASH // ç +#define BP_CCED BP_C_CEDILLA + +// Fourth row +#define BP_E_CIRCUMFLEX KC_NONUS_BSLASH // ê +#define BP_ECRC BP_E_CIRCUMFLEX +#define BP_A_GRAVE KC_Z // à +#define BP_AGRV BP_A_GRAVE +#define BP_Y KC_X +#define BP_X KC_C +#define BP_DOT KC_V // . +#define BP_K KC_B +#define BP_APOSTROPHE KC_N +#define BP_APOS BP_APOSTROPHE // ' +#define BP_Q KC_M +#define BP_G KC_COMMA +#define BP_H KC_DOT +#define BP_F KC_SLASH + +// Shifted characters +// First row +#define BP_HASH LSFT(BP_DOLLAR) // # +#define BP_1 LSFT(KC_1) +#define BP_2 LSFT(KC_2) +#define BP_3 LSFT(KC_3) +#define BP_4 LSFT(KC_4) +#define BP_5 LSFT(KC_5) +#define BP_6 LSFT(KC_6) +#define BP_7 LSFT(KC_7) +#define BP_8 LSFT(KC_8) +#define BP_9 LSFT(KC_9) +#define BP_0 LSFT(KC_0) +#define BP_DEGREE LSFT(BP_EQUAL) // ° +#define BP_DEGR BP_DEGREE +#define BP_GRAVE LSFT(BP_PERCENT) // ` +#define BP_GRV BP_GRAVE + +// Second row +#define BP_EXCLAIM LSFT(BP_DEAD_CIRCUMFLEX) // ! +#define BP_EXLM BP_EXCLAIM + +// Third row +#define BP_SCOLON LSFT(BP_COMMA) // ; +#define BP_SCLN BP_SCOLON + +// Fourth row +#define BP_COLON LSFT(BP_DOT) // : +#define BP_COLN BP_COLON +#define BP_QUESTION LSFT(BP_QUOTE) // ? +#define BP_QEST BP_QUESTION + +// Space bar +#define BP_NON_BREAKING_SPACE LSFT(KC_SPACE) +#define BP_NBSP BP_NON_BREAKING_SPACE + +// AltGr-ed characters +// First row +#define BP_EN_DASH ALTGR(BP_DOLLAR) // – +#define BP_NDSH BP_EN_DASH +#define BP_EM_DASH ALTGR(KC_1) // — +#define BP_MDSH BP_EM_DASH +#define BP_LESS ALTGR(KC_2) // < +#define BP_GREATER ALTGR(KC_3) // > +#define BP_GRTR BP_GREATER +#define BP_LBRACKET ALTGR(KC_4) // [ +#define BP_LBRC BP_LBRACKET +#define BP_RBRACKET ALTGR(KC_5) // ] +#define BP_RBRC BP_RBRACKET +#define BP_CIRCUMFLEX ALTGR(KC_6) // ^ +#define BP_CIRC BP_CIRCUMFLEX +#define BP_PLUS_MINUS ALTGR(KC_7) // ± +#define BP_PSMS BP_PLUS_MINUS +#define BP_MATH_MINUS ALTGR(KC_8) // − +#define BP_MMNS BP_MATH_MINUS +#define BP_OBELUS ALTGR(KC_9) // ÷ +#define BP_OBEL BP_OBELUS +// more conventional name of the symbol +#define BP_DIVISION_SIGN BP_OBELUS +#define BP_DVSN BP_DIVISION_SIGN +#define BP_TIMES ALTGR(KC_0) // × +#define BP_TIMS BP_TIMES +#define BP_DIFFERENT ALTGR(BP_EQUAL) // ≠ +#define BP_DIFF BP_DIFFERENT +#define BP_PERMILLE ALTGR(BP_PERCENT) // ‰ +#define BP_PMIL BP_PERMILLE + +// Second row +#define BP_PIPE ALTGR(BP_B) // | +#define BP_DEAD_ACUTE ALTGR(BP_E_ACUTE) // dead ´ +#define BP_DACT BP_DEAD_ACUTE +#define BP_AMPERSAND ALTGR(BP_P) // & +#define BP_AMPR BP_AMPERSAND +#define BP_OE_LIGATURE ALTGR(BP_O) // œ +#define BP_OE BP_OE_LIGATURE +#define BP_DEAD_GRAVE ALTGR(BP_E_GRAVE) // ` +#define BP_DGRV BP_DEAD_GRAVE +#define BP_INVERTED_EXCLAIM ALTGR(BP_DEAD_CIRCUMFLEX) // ¡ +#define BP_IXLM BP_INVERTED_EXCLAIM +#define BP_DEAD_CARON ALTGR(BP_V) // dead ˇ +#define BP_DCAR BP_DEAD_CARON +#define BP_ETH ALTGR(BP_D) // ð +#define BP_DEAD_SLASH ALTGR(BP_L) // dead / +#define BP_DSLH BP_DEAD_SLASH +#define BP_IJ_LIGATURE ALTGR(BP_J) // ij +#define BP_IJ BP_IJ_LIGATURE +#define BP_SCHWA ALTGR(BP_Z) // ə +#define BP_SCWA BP_SCHWA +#define BP_DEAD_BREVE ALTGR(BP_W) // dead ˘ +#define BP_DBRV BP_DEAD_BREVE + +// Third row +#define BP_AE_LIGATURE ALTGR(BP_A) // æ +#define BP_AE BP_AE_LIGATURE +#define BP_U_GRAVE AGR(BP_U) // ù +#define BP_UGRV BP_U_GRAVE +#define BP_DEAD_TREMA ALTGR(BP_I) // dead ¨ (trema/umlaut/diaresis) +#define BP_DTRM BP_DEAD_TREMA +#define BP_EURO ALTGR(BP_E) // € +#define BP_TYPOGRAPHICAL_APOSTROPHE ALTGR(BP_COMMMA) // ’ +#define BP_TAPO BP_TYPOGRAPHICAL_APOSTROPHE +#define BP_COPYRIGHT ALTGR(BP_C) // © +#define BP_CPRT BP_COPYRIGHT +#define BP_THORN ALTGR(BP_T) // þ +#define BP_THRN BP_THORN +#define BP_SHARP_S ALTGR(BP_S) // ß +#define BP_SRPS BP_SHARP_S +#define BP_REGISTERED_TRADEMARK ALTGR(BP_R) // ® +#define BP_RTM BP_REGISTERED_TRADEMARK +#define BP_DEAD_TILDE ALTGR(BP_N) // dead ~ +#define BP_DTLD BP_DEAD_TILDE +#define BP_DEAD_MACRON ALTGR(BP_M) // dead ¯ +#define BP_DMCR BP_DEAD_MACRON +#define BP_DEAD_CEDILLA ALTGR(BP_C_CEDILLA) // dead ¸ +#define BP_DCED BP_DEAD_CEDILLA + +// Fourth row +#define BP_NONUS_SLASH ALTGR(BP_E_CIRCUMFLEX) // / on non-us backslash key (102nd key, ê in bépo) +#define BP_NUSL BP_NONUS_SLASH +#define BP_BACKSLASH ALTGR(BP_A_GRAVE) /* \ */ +#define BP_BSLS BP_BACKSLASH +#define BP_LEFT_CURLY_BRACE ALTGR(BP_Y) // { +#define BP_LCBR BP_LEFT_CURLY_BRACE +#define BP_RIGHT_CURLY_BRACE ALTGR(BP_X) // } +#define BP_RCBR BP_RIGHT_CURLY_BRACE +#define BP_ELLIPSIS ALTGR(BP_DOT) // … +#define BP_ELPS BP_ELLIPSIS +#define BP_TILDE ALTGR(BP_K) // ~ +#define BP_TILD BP_TILDE +#define BP_INVERTED_QUESTION ALTGR(BP_QUESTION) // ¿ +#define BP_IQST BP_INVERTED_QUESTION +#define BP_DEAD_RING ALTGR(BP_Q) // dead ° +#define BP_DRNG BP_DEAD_RING +#define BP_DEAD_GREEK ALTGR(BP_G) // dead Greek key (following key will make a Greek letter) +#define BP_DGRK BP_DEAD_GREEK +#define BP_DAGGER ALTGR(BP_H) // † +#define BP_DAGR BP_DAGGER +#define BP_DEAD_OGONEK ALTGR(BP_F) // dead ˛ +#define BP_DOGO BP_DEAD_OGONEK + +// Space bar +#define BP_UNDERSCORE ALTGR(KC_SPACE) // _ +#define BP_UNDS BP_UNDERSCORE + +// AltGr-Shifted characters (different from capitalised AltGr-ed characters) +// First row +#define BP_PARAGRAPH ALTGR(BP_HASH) // ¶ +#define BP_PARG BP_PARAGRAPH +#define BP_LOW_DOUBLE_QUOTE ALTGR(BP_1) // „ +#define BP_LWQT BP_LOW_DOUBLE_QUOTE +#define BP_LEFT_DOUBLE_QUOTE ALTGR(BP_2) // “ +#define BP_LDQT BP_LEFT_DOUBLE_QUOTE +#define BP_RIGHT_DOUBLE_QUOTE ALTGR(BP_3) // ” +#define BP_RDQT BP_RIGHT_DOUBLE_QUOTE +#define BP_LESS_OR_EQUAL ALTGR(BP_4) // ≤ +#define BP_LEQL BP_LESS_OR_EQUAL +#define BP_GREATER_OR_EQUAL ALTGR(BP_5) // ≥ +#define BP_GEQL BP_GREATER_OR_EQUAL +// nothing on ALTGR(BP_6) +#define BP_NEGATION ALTGR(BP_7) // ¬ +#define BP_NEGT BP_NEGATION +#define BP_ONE_QUARTER ALTGR(BP_8) // ¼ +#define BP_1QRT BP_ONE_QUARTER +#define BP_ONE_HALF ALTGR(BP_9) // ½ +#define BP_1HLF BP_ONE_HALF +#define BP_THREE_QUARTERS ALTGR(BP_0) // ¾ +#define BP_3QRT BP_THREE_QUARTERS +#define BP_MINUTES ALTGR(BP_DEGREE) // ′ +#define BP_MNUT BP_MINUTES +#define BP_SECONDS ALTGR(BP_GRAVE) // ″ +#define BP_SCND BP_SECONDS + +// Second row +#define BP_BROKEN_PIPE LSFT(BP_PIPE) // ¦ +#define BP_BPIP BP_BROKEN_PIPE +#define BP_DEAD_DOUBLE_ACUTE LSFT(BP_DEAD_ACUTE) // ˝ +#define BP_DDCT BP_DEAD_DOUBLE_ACUTE +#define BP_SECTION ALTGR(LSFT(BP_P)) // § +#define BP_SECT BP_SECTION +// LSFT(BP_DEAD_GRAVE) is actually the same character as LSFT(BP_PERCENT) +#define BP_GRAVE_BIS LSFT(BP_DEAD_GRAVE) // ` +#define BP_GRVB BP_GRAVE_BIS + +// Third row +#define BP_DEAD_DOT_ABOVE LSFT(BP_DEAD_TREMA) // dead ˙ +#define BP_DDTA BP_DEAD_DOT_ABOVE +#define BP_DEAD_CURRENCY LSFT(BP_EURO) // dead ¤ (next key will generate a currency code like ¥ or £) +#define BP_DCUR BP_DEAD_CURRENCY +#define BP_DEAD_HORN LSFT(ALTGR(BP_COMMA)) // dead ̛ +#define BP_DHRN BP_DEAD_HORN +#define BP_LONG_S LSFT(ALTGR(BP_C)) // ſ +#define BP_LNGS BP_LONG_S +#define BP_TRADEMARK LSFT(BP_REGISTERED_TRADEMARK) // ™ +#define BP_TM BP_TRADEMARK +#define BP_ORDINAL_INDICATOR_O LSFT(ALTGR(BP_M)) // º +#define BP_ORDO BP_ORDINAL_INDICATOR_O +#define BP_DEAD_COMMA LSFT(BP_DEAD_CEDILLA) // dead ˛ +#define BP_DCOM BP_DEAD_COMMA + +// Fourth row +#define BP_LEFT_QUOTE LSFT(ALTGR(BP_Y)) // ‘ +#define BP_LQOT BP_LEFT_QUOTE +#define BP_RIGHT_QUOTE LSFT(ALTGR(BP_X)) // ’ +#define BP_RQOT BP_RIGHT_QUOTE +#define BP_INTERPUNCT LSFT(ALTGR(BP_DOT)) // · +#define BP_IPCT BP_INTERPUNCT +#define BP_DEAD_HOOK_ABOVE LSFT(ALTGR(BP_QUESTION)) // dead ̉ +#define BP_DHKA BP_DEAD_HOOK_ABOVE +#define BP_DEAD_UNDERDOT LSFT(BP_DEAD_RING) // dead ̣ +#define BP_DUDT BP_DEAD_UNDERDOT +#define BP_DOUBLE_DAGGER LSFT(BP_DAGGER) // ‡ +#define BP_DDGR BP_DOUBLE_DAGGER +#define BP_ORDINAL_INDICATOR_A LSFT(ALTGR(BP_F)) // ª +#define BP_ORDA BP_ORDINAL_INDICATOR_A + +// Space bar +#define BP_NARROW_NON_BREAKING_SPACE ALTGR(BP_NON_BREAKING_SPACE) +#define BP_NNBS BP_NARROW_NON_BREAKING_SPACE + +#endif diff --git a/quantum/keymap_extras/keymap_colemak.h b/quantum/keymap_extras/keymap_colemak.h index 87df01ab58..8a418c6159 100644 --- a/quantum/keymap_extras/keymap_colemak.h +++ b/quantum/keymap_extras/keymap_colemak.h @@ -24,7 +24,7 @@ #define CM_E KC_K #define CM_I KC_L #define CM_O KC_SCLN -#define CM_SCLN LSFT(CM_SCLN) +#define CM_COLN LSFT(CM_SCLN) #define CM_Z KC_Z #define CM_X KC_X @@ -39,37 +39,37 @@ // Make it easy to support these in macros // TODO: change macro implementation so these aren't needed -#define KC_CM_Q CM_Q -#define KC_CM_W CM_W -#define KC_CM_F CM_F -#define KC_CM_P CM_P -#define KC_CM_G CM_G -#define KC_CM_J CM_J -#define KC_CM_L CM_L -#define KC_CM_U CM_U -#define KC_CM_Y CM_Y -#define KC_CM_SCLN CM_SCLN +#define KC_CM_Q CM_Q +#define KC_CM_W CM_W +#define KC_CM_F CM_F +#define KC_CM_P CM_P +#define KC_CM_G CM_G +#define KC_CM_J CM_J +#define KC_CM_L CM_L +#define KC_CM_U CM_U +#define KC_CM_Y CM_Y +#define KC_CM_SCLN CM_SCLN -#define KC_CM_A CM_A -#define KC_CM_R CM_R -#define KC_CM_S CM_S -#define KC_CM_T CM_T -#define KC_CM_D CM_D -#define KC_CM_H CM_H -#define KC_CM_N CM_N -#define KC_CM_E CM_E -#define KC_CM_I CM_I -#define KC_CM_O CM_O +#define KC_CM_A CM_A +#define KC_CM_R CM_R +#define KC_CM_S CM_S +#define KC_CM_T CM_T +#define KC_CM_D CM_D +#define KC_CM_H CM_H +#define KC_CM_N CM_N +#define KC_CM_E CM_E +#define KC_CM_I CM_I +#define KC_CM_O CM_O -#define KC_CM_Z CM_Z -#define KC_CM_X CM_X -#define KC_CM_C CM_C -#define KC_CM_V CM_V -#define KC_CM_B CM_B -#define KC_CM_K CM_K -#define KC_CM_M CM_M -#define KC_CM_COMM CM_COMM -#define KC_CM_DOT CM_DOT -#define KC_CM_SLSH CM_SLSH +#define KC_CM_Z CM_Z +#define KC_CM_X CM_X +#define KC_CM_C CM_C +#define KC_CM_V CM_V +#define KC_CM_B CM_B +#define KC_CM_K CM_K +#define KC_CM_M CM_M +#define KC_CM_COMM CM_COMM +#define KC_CM_DOT CM_DOT +#define KC_CM_SLSH CM_SLSH #endif diff --git a/quantum/keymap_extras/keymap_dvorak.h b/quantum/keymap_extras/keymap_dvorak.h index d172e0019b..93e355bf91 100644 --- a/quantum/keymap_extras/keymap_dvorak.h +++ b/quantum/keymap_extras/keymap_dvorak.h @@ -68,5 +68,7 @@ #define DV_RPRN LSFT(DV_0) #define DV_LCBR LSFT(DV_LBRC) #define DV_RCBR LSFT(DV_RBRC) +#define DV_UNDS LSFT(DV_MINS) +#define DV_PLUS LSFT(DV_EQL) -#endif \ No newline at end of file +#endif diff --git a/quantum/keymap_extras/keymap_fr_ch.h b/quantum/keymap_extras/keymap_fr_ch.h new file mode 100644 index 0000000000..d3884c19a1 --- /dev/null +++ b/quantum/keymap_extras/keymap_fr_ch.h @@ -0,0 +1,98 @@ +#ifndef KEYMAP_FR_CH +#define KEYMAP_FR_CH + +#include "keymap_common.h" + +// Alt gr +#define ALGR(kc) kc | 0x1400 +#define FR_CH_ALGR KC_RALT + +// normal characters +#define FR_CH_Z KC_Y +#define FR_CH_Y KC_Z + +#define FR_CH_A KC_A +#define FR_CH_B KC_B +#define FR_CH_C KC_C +#define FR_CH_D KC_D +#define FR_CH_E KC_E +#define FR_CH_F KC_F +#define FR_CH_G KC_G +#define FR_CH_H KC_H +#define FR_CH_I KC_I +#define FR_CH_J KC_J +#define FR_CH_K KC_K +#define FR_CH_L KC_L +#define FR_CH_M KC_M +#define FR_CH_N KC_N +#define FR_CH_O KC_O +#define FR_CH_P KC_P +#define FR_CH_Q KC_Q +#define FR_CH_R KC_R +#define FR_CH_S KC_S +#define FR_CH_T KC_T +#define FR_CH_U KC_U +#define FR_CH_V KC_V +#define FR_CH_W KC_W +#define FR_CH_X KC_X + +#define FR_CH_0 KC_0 +#define FR_CH_1 KC_1 +#define FR_CH_2 KC_2 +#define FR_CH_3 KC_3 +#define FR_CH_4 KC_4 +#define FR_CH_5 KC_5 +#define FR_CH_6 KC_6 +#define FR_CH_7 KC_7 +#define FR_CH_8 KC_8 +#define FR_CH_9 KC_9 + +#define FR_CH_DOT KC_DOT +#define FR_CH_COMM KC_COMM + +#define FR_CH_QUOT KC_MINS +#define FR_CH_AE KC_QUOT +#define FR_CH_UE KC_LBRC +#define FR_CH_OE KC_SCLN + +#define FR_CH_CIRC KC_EQL // accent circumflex ^ and grave ` and ~ +#define FR_CH_LESS KC_NUBS // < and > and backslash +#define FR_CH_MINS KC_SLSH // - and _ +#define FR_CH_DLR KC_BSLS // $, £ and } +#define FR_CH_PARA KC_GRV // § and ring ° +#define FR_CH_DIAE KC_RBRC // accent ¨ + +// shifted characters +#define FR_CH_RING LSFT(KC_GRV) // ° +#define FR_CH_EXLM LSFT(KC_RBRC) // ! +#define FR_CH_PLUS LSFT(KC_1) // + +#define FR_CH_DQOT LSFT(KC_2) // " +#define FR_CH_ASTR LSFT(KC_3) // * +#define FR_CH_PERC LSFT(KC_5) // % +#define FR_CH_AMPR LSFT(KC_6) // & +#define FR_CH_SLSH LSFT(KC_7) // / +#define FR_CH_LPRN LSFT(KC_8) // ( +#define FR_CH_RPRN LSFT(KC_9) // ) +#define FR_CH_EQL LSFT(KC_0) // = +#define FR_CH_QST LSFT(FR_CH_QUOT) // ? +#define FR_CH_MORE LSFT(FR_CH_LESS) // > +#define FR_CH_COLN LSFT(KC_DOT) // : +#define FR_CH_SCLN LSFT(KC_COMM) // ; +#define FR_CH_UNDS LSFT(FR_CH_MINS) // _ +#define FR_CH_CCED LSFT(KC_4) // ç +#define FR_CH_GRV LSFT(FR_CH_CIRC) // accent grave ` + +// Alt Gr-ed characters +#define FR_CH_LCBR ALGR(KC_QUOT) // { +#define FR_CH_LBRC ALGR(KC_LBRC) // [ +#define FR_CH_RBRC ALGR(KC_9) // ] +#define FR_CH_RCBR ALGR(KC_0) // } +#define FR_CH_BSLS ALGR(FR_CH_LESS) // backslash +#define FR_CH_AT ALGR(KC_2) // @ +#define FR_CH_EURO ALGR(KC_E) // € +#define FR_CH_TILD ALGR(FR_CH_CIRC) // ~ +#define FR_CH_PIPE ALGR(KC_1) // | +#define FR_CH_HASH ALGR(KC_3) // # +#define FR_CH_ACUT ALGR(FR_CH_QUOT) // accent acute ´ + +#endif diff --git a/quantum/keymap_extras/keymap_french.h b/quantum/keymap_extras/keymap_french.h index ccfaed8f07..e03a121a2b 100644 --- a/quantum/keymap_extras/keymap_french.h +++ b/quantum/keymap_extras/keymap_french.h @@ -75,7 +75,7 @@ #define FR_CIRC ALGR(KC_9) #define FR_AT ALGR(KC_0) #define FR_RBRC ALGR(FR_RPRN) -#define FR_LCBR ALGR(FR_EQL) +#define FR_RCBR ALGR(FR_EQL) #define FR_EURO ALGR(KC_E) #define FR_BULT ALGR(FR_DLR) diff --git a/quantum/keymap_extras/keymap_german.h b/quantum/keymap_extras/keymap_german.h index bea82f0226..dbad26f8a6 100644 --- a/quantum/keymap_extras/keymap_german.h +++ b/quantum/keymap_extras/keymap_german.h @@ -11,6 +11,45 @@ #define DE_Z KC_Y #define DE_Y KC_Z +#define DE_A KC_A +#define DE_B KC_B +#define DE_C KC_C +#define DE_D KC_D +#define DE_E KC_E +#define DE_F KC_F +#define DE_G KC_G +#define DE_H KC_H +#define DE_I KC_I +#define DE_J KC_J +#define DE_K KC_K +#define DE_L KC_L +#define DE_M KC_M +#define DE_N KC_N +#define DE_O KC_O +#define DE_P KC_P +#define DE_Q KC_Q +#define DE_R KC_R +#define DE_S KC_S +#define DE_T KC_T +#define DE_U KC_U +#define DE_V KC_V +#define DE_W KC_W +#define DE_X KC_X + +#define DE_0 KC_0 +#define DE_1 KC_1 +#define DE_2 KC_2 +#define DE_3 KC_3 +#define DE_4 KC_4 +#define DE_5 KC_5 +#define DE_6 KC_6 +#define DE_7 KC_7 +#define DE_8 KC_8 +#define DE_9 KC_9 + +#define DE_DOT KC_DOT +#define DE_COMM KC_COMM + #define DE_SS KC_MINS #define DE_AE KC_QUOT #define DE_UE KC_LBRC diff --git a/quantum/keymap_extras/keymap_german_osx.h b/quantum/keymap_extras/keymap_german_osx.h index b011561e2f..d0b77fb803 100644 --- a/quantum/keymap_extras/keymap_german_osx.h +++ b/quantum/keymap_extras/keymap_german_osx.h @@ -9,92 +9,92 @@ // Alt gr // normal characters -#define DE_Z KC_Y -#define DE_Y KC_Z +#define DE_OSX_Z KC_Y +#define DE_OSX_Y KC_Z -#define DE_A KC_A -#define DE_B KC_B -#define DE_C KC_C -#define DE_D KC_D -#define DE_E KC_E -#define DE_F KC_F -#define DE_G KC_G -#define DE_H KC_H -#define DE_I KC_I -#define DE_J KC_J -#define DE_K KC_K -#define DE_L KC_L -#define DE_M KC_M -#define DE_N KC_N -#define DE_O KC_O -#define DE_P KC_P -#define DE_Q KC_Q -#define DE_R KC_R -#define DE_S KC_S -#define DE_T KC_T -#define DE_U KC_U -#define DE_V KC_V -#define DE_W KC_W -#define DE_X KC_X +#define DE_OSX_A KC_A +#define DE_OSX_B KC_B +#define DE_OSX_C KC_C +#define DE_OSX_D KC_D +#define DE_OSX_E KC_E +#define DE_OSX_F KC_F +#define DE_OSX_G KC_G +#define DE_OSX_H KC_H +#define DE_OSX_I KC_I +#define DE_OSX_J KC_J +#define DE_OSX_K KC_K +#define DE_OSX_L KC_L +#define DE_OSX_M KC_M +#define DE_OSX_N KC_N +#define DE_OSX_O KC_O +#define DE_OSX_P KC_P +#define DE_OSX_Q KC_Q +#define DE_OSX_R KC_R +#define DE_OSX_S KC_S +#define DE_OSX_T KC_T +#define DE_OSX_U KC_U +#define DE_OSX_V KC_V +#define DE_OSX_W KC_W +#define DE_OSX_X KC_X -#define DE_0 KC_0 -#define DE_1 KC_1 -#define DE_2 KC_2 -#define DE_3 KC_3 -#define DE_4 KC_4 -#define DE_5 KC_5 -#define DE_6 KC_6 -#define DE_7 KC_7 -#define DE_8 KC_8 -#define DE_9 KC_9 +#define DE_OSX_0 KC_0 +#define DE_OSX_1 KC_1 +#define DE_OSX_2 KC_2 +#define DE_OSX_3 KC_3 +#define DE_OSX_4 KC_4 +#define DE_OSX_5 KC_5 +#define DE_OSX_6 KC_6 +#define DE_OSX_7 KC_7 +#define DE_OSX_8 KC_8 +#define DE_OSX_9 KC_9 -#define DE_DOT KC_DOT -#define DE_COMM KC_COMM +#define DE_OSX_DOT KC_DOT +#define DE_OSX_COMM KC_COMM -#define DE_SS KC_MINS -#define DE_AE KC_QUOT -#define DE_UE KC_LBRC -#define DE_OE KC_SCLN +#define DE_OSX_SS KC_MINS +#define DE_OSX_AE KC_QUOT +#define DE_OSX_UE KC_LBRC +#define DE_OSX_OE KC_SCLN -#define DE_CIRC KC_NUBS // accent circumflex ^ and ring ° -#define DE_ACUT KC_EQL // accent acute ´ and grave ` -#define DE_PLUS KC_RBRC // + and * and ~ -#define DE_HASH KC_BSLS // # and ' -#define DE_LESS KC_GRV // < and > and | -#define DE_MINS KC_SLSH // - and _ +#define DE_OSX_CIRC KC_NUBS // accent circumflex ^ and ring ° +#define DE_OSX_ACUT KC_EQL // accent acute ´ and grave ` +#define DE_OSX_PLUS KC_RBRC // + and * and ~ +#define DE_OSX_HASH KC_BSLS // # and ' +#define DE_OSX_LESS KC_GRV // < and > and | +#define DE_OSX_MINS KC_SLSH // - and _ // shifted characters -#define DE_RING LSFT(DE_CIRC) // ° -#define DE_EXLM LSFT(KC_1) // ! -#define DE_DQOT LSFT(KC_2) // " -#define DE_PARA LSFT(KC_3) // § -#define DE_DLR LSFT(KC_4) // $ -#define DE_PERC LSFT(KC_5) // % -#define DE_AMPR LSFT(KC_6) // & -#define DE_SLSH LSFT(KC_7) // / -#define DE_LPRN LSFT(KC_8) // ( -#define DE_RPRN LSFT(KC_9) // ) -#define DE_EQL LSFT(KC_0) // = -#define DE_QST LSFT(DE_SS) // ? -#define DE_GRV LSFT(DE_ACUT) // ` -#define DE_ASTR LSFT(DE_PLUS) // * -#define DE_QUOT LSFT(DE_HASH) // ' -#define DE_MORE LSFT(DE_LESS) // > -#define DE_COLN LSFT(KC_DOT) // : -#define DE_SCLN LSFT(KC_COMM) // ; -#define DE_UNDS LSFT(DE_MINS) // _ +#define DE_OSX_RING LSFT(DE_OSX_CIRC) // ° +#define DE_OSX_EXLM LSFT(KC_1) // ! +#define DE_OSX_DQOT LSFT(KC_2) // " +#define DE_OSX_PARA LSFT(KC_3) // § +#define DE_OSX_DLR LSFT(KC_4) // $ +#define DE_OSX_PERC LSFT(KC_5) // % +#define DE_OSX_AMPR LSFT(KC_6) // & +#define DE_OSX_SLSH LSFT(KC_7) // / +#define DE_OSX_LPRN LSFT(KC_8) // ( +#define DE_OSX_RPRN LSFT(KC_9) // ) +#define DE_OSX_EQL LSFT(KC_0) // = +#define DE_OSX_QST LSFT(DE_OSX_SS) // ? +#define DE_OSX_GRV LSFT(DE_OSX_ACUT) // ` +#define DE_OSX_ASTR LSFT(DE_OSX_PLUS) // * +#define DE_OSX_QUOT LSFT(DE_OSX_HASH) // ' +#define DE_OSX_MORE LSFT(DE_OSX_LESS) // > +#define DE_OSX_COLN LSFT(KC_DOT) // : +#define DE_OSX_SCLN LSFT(KC_COMM) // ; +#define DE_OSX_UNDS LSFT(DE_OSX_MINS) // _ // Alt-ed characters -#define DE_SQ2 LALT(KC_2) // ² -#define DE_SQ3 LALT(KC_3) // ³ -#define DE_LCBR LALT(KC_7) // { -#define DE_LBRC LALT(KC_5) // [ -#define DE_RBRC LALT(KC_6) // ] -#define DE_RCBR LALT(KC_9) // } -#define DE_BSLS LALT(LSFT(KC_7)) // backslash -#define DE_AT LALT(DE_L) // @ -#define DE_EURO LALT(KC_E) // € -#define DE_TILD LALT(DE_N) // ~ -#define DE_PIPE LALT(DE_7) // | +#define DE_OSX_SQ2 LALT(KC_2) // ² +#define DE_OSX_SQ3 LALT(KC_3) // ³ +#define DE_OSX_LCBR LALT(KC_8) // { +#define DE_OSX_LBRC LALT(KC_5) // [ +#define DE_OSX_RBRC LALT(KC_6) // ] +#define DE_OSX_RCBR LALT(KC_9) // } +#define DE_OSX_BSLS LALT(LSFT(KC_7)) // backslash +#define DE_OSX_AT LALT(DE_OSX_L) // @ +#define DE_OSX_EURO LALT(KC_E) // € +#define DE_OSX_TILD LALT(DE_OSX_N) // ~ +#define DE_OSX_PIPE LALT(DE_OSX_7) // | #endif diff --git a/quantum/keymap_extras/keymap_neo2.h b/quantum/keymap_extras/keymap_neo2.h index 055d7d0d1e..a35ba55a55 100644 --- a/quantum/keymap_extras/keymap_neo2.h +++ b/quantum/keymap_extras/keymap_neo2.h @@ -35,6 +35,25 @@ #define NEO_UE DE_Y #define NEO_SS DE_UE +#define NEO_DOT DE_DOT +#define NEO_COMM DE_COMM + +#define NEO_1 DE_1 +#define NEO_2 DE_2 +#define NEO_3 DE_3 +#define NEO_4 DE_4 +#define NEO_5 DE_5 +#define NEO_6 DE_6 +#define NEO_7 DE_7 +#define NEO_8 DE_8 +#define NEO_9 DE_9 +#define NEO_0 DE_0 +#define NEO_MINS DE_SS + +#define NEO_ACUT DE_PLUS +#define NEO_GRV DE_ACUT +#define NEO_CIRC DE_CIRC + #define NEO_L1_L KC_CAPS #define NEO_L1_R DE_HASH diff --git a/quantum/keymap_extras/keymap_nordic.h b/quantum/keymap_extras/keymap_nordic.h index 02a704216a..7ef41fb791 100644 --- a/quantum/keymap_extras/keymap_nordic.h +++ b/quantum/keymap_extras/keymap_nordic.h @@ -48,12 +48,12 @@ #define NO_LBRC ALGR(KC_8) #define NO_RBRC ALGR(KC_9) #define NO_RCBR ALGR(KC_0) -#define NO_PIPE ALGR(NO_ACUT) +#define NO_PIPE ALGR(KC_NUBS) #define NO_EURO ALGR(KC_E) #define NO_TILD ALGR(NO_QUOT) -#define NO_BSLS ALGR(NO_LESS) +#define NO_BSLS ALGR(KC_MINS) #define NO_MU ALGR(KC_M) -#endif \ No newline at end of file +#endif diff --git a/quantum/keymap_extras/keymap_norwegian.c b/quantum/keymap_extras/keymap_norwegian.c new file mode 100644 index 0000000000..018bfeae59 --- /dev/null +++ b/quantum/keymap_extras/keymap_norwegian.c @@ -0,0 +1,41 @@ +#ifndef KEYMAP_NORWEGIAN_H +#define KEYMAP_NORWEGIAN_H + +#include "keymap_nordic.h" + +// There are slight differrences in the keyboards in the nordic contries + +// Norwegian redifinitions from the nordic keyset +#undef NO_ACUT +#define NO_ACUT ALGR(NO_BSLS) // ´ +#undef NO_AE +#define NO_AE KC_QUOT // æ +#undef NO_BSLS +#define NO_BSLS KC_EQL // '\' +#undef NO_CIRC +#define NO_CIRC LSFT(C_RBRC) // ^ +#undef NO_GRV +#define NO_GRV LSFT(NO_BSLS) // +#undef NO_OSLH +#define NO_OSLH KC_SCLN // ø +#undef NO_PIPE +#define NO_PIPE KC_GRV // | + +// Additional norwegian keys not defined in the nordic keyset +#define NO_AA KC_LBRC // å +#define NO_ASTR LSFT(KC_BSLS) // * + +// Norwegian unique MAC characters +#define NO_ACUT_MAC KC_EQL // = +#define NO_APOS_MAC KC_NUBS // ' +#define NO_AT_MAC KC_BSLS // @ +#define NO_BSLS_MAC ALGR(LSFT(KC_7)) // '\' +#define NO_DLR_MAC LSFT(KC_4) // $ +#define NO_GRV_MAC ALGR(NO_BSLS) // ` +#define NO_GRTR_MAC LSFT(KC_GRV) // > +#define NO_LCBR_MAC ALGR(LSFT(KC_8)) // } +#define NO_LESS_MAC KC_GRV // > +#define NO_PIPE_MAC ALGR(KC_7) // | +#define NO_RCBR_MAC ALGR(LSFT(KC_9)) // } + +#endif diff --git a/quantum/keymap_midi.c b/quantum/keymap_midi.c index b7eba3ab76..ac45d25892 100644 --- a/quantum/keymap_midi.c +++ b/quantum/keymap_midi.c @@ -17,7 +17,6 @@ along with this program. If not, see . #include "keymap_common.h" #include "keymap_midi.h" -#include uint8_t starting_note = 0x0C; int offset = 7; @@ -35,7 +34,7 @@ void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) if (record->event.key.col == (MATRIX_COLS - 1) && record->event.key.row == (MATRIX_ROWS - 1)) { if (record->event.pressed) { starting_note++; - play_note(((double)261.6)*pow(2.0, -1.0)*pow(2.0,(starting_note + SCALE[0 + offset])/12.0+(MATRIX_ROWS - 1)), 0xC); + play_note(((double)261.626)*pow(2.0, -1.0)*pow(2.0,(starting_note + SCALE[0 + offset])/12.0+(MATRIX_ROWS - 1)), 0xC); midi_send_cc(&midi_device, 0, 0x7B, 0); midi_send_cc(&midi_device, 1, 0x7B, 0); midi_send_cc(&midi_device, 2, 0x7B, 0); @@ -43,7 +42,7 @@ void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) midi_send_cc(&midi_device, 4, 0x7B, 0); return; } else { - stop_note(((double)261.6)*pow(2.0, -1.0)*pow(2.0,(starting_note + SCALE[0 + offset])/12.0+(MATRIX_ROWS - 1))); + stop_note(((double)261.626)*pow(2.0, -1.0)*pow(2.0,(starting_note + SCALE[0 + offset])/12.0+(MATRIX_ROWS - 1))); stop_all_notes(); return; } @@ -51,7 +50,7 @@ void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) if (record->event.key.col == (MATRIX_COLS - 2) && record->event.key.row == (MATRIX_ROWS - 1)) { if (record->event.pressed) { starting_note--; - play_note(((double)261.6)*pow(2.0, -1.0)*pow(2.0,(starting_note + SCALE[0 + offset])/12.0+(MATRIX_ROWS - 1)), 0xC); + play_note(((double)261.626)*pow(2.0, -1.0)*pow(2.0,(starting_note + SCALE[0 + offset])/12.0+(MATRIX_ROWS - 1)), 0xC); midi_send_cc(&midi_device, 0, 0x7B, 0); midi_send_cc(&midi_device, 1, 0x7B, 0); midi_send_cc(&midi_device, 2, 0x7B, 0); @@ -59,7 +58,7 @@ void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) midi_send_cc(&midi_device, 4, 0x7B, 0); return; } else { - stop_note(((double)261.6)*pow(2.0, -1.0)*pow(2.0,(starting_note + SCALE[0 + offset])/12.0+(MATRIX_ROWS - 1))); + stop_note(((double)261.626)*pow(2.0, -1.0)*pow(2.0,(starting_note + SCALE[0 + offset])/12.0+(MATRIX_ROWS - 1))); stop_all_notes(); return; } @@ -74,9 +73,9 @@ void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) midi_send_cc(&midi_device, 4, 0x7B, 0); stop_all_notes(); for (int i = 0; i <= 7; i++) { - play_note(((double)261.6)*pow(2.0, -1.0)*pow(2.0,(starting_note + SCALE[i + offset])/12.0+(MATRIX_ROWS - 1)), 0xC); + play_note(((double)261.626)*pow(2.0, -1.0)*pow(2.0,(starting_note + SCALE[i + offset])/12.0+(MATRIX_ROWS - 1)), 0xC); _delay_us(80000); - stop_note(((double)261.6)*pow(2.0, -1.0)*pow(2.0,(starting_note + SCALE[i + offset])/12.0+(MATRIX_ROWS - 1))); + stop_note(((double)261.626)*pow(2.0, -1.0)*pow(2.0,(starting_note + SCALE[i + offset])/12.0+(MATRIX_ROWS - 1))); _delay_us(8000); } return; @@ -90,9 +89,9 @@ void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) midi_send_cc(&midi_device, 4, 0x7B, 0); stop_all_notes(); for (int i = 0; i <= 7; i++) { - play_note(((double)261.6)*pow(2.0, -1.0)*pow(2.0,(starting_note + SCALE[i + offset])/12.0+(MATRIX_ROWS - 1)), 0xC); + play_note(((double)261.626)*pow(2.0, -1.0)*pow(2.0,(starting_note + SCALE[i + offset])/12.0+(MATRIX_ROWS - 1)), 0xC); _delay_us(80000); - stop_note(((double)261.6)*pow(2.0, -1.0)*pow(2.0,(starting_note + SCALE[i + offset])/12.0+(MATRIX_ROWS - 1))); + stop_note(((double)261.626)*pow(2.0, -1.0)*pow(2.0,(starting_note + SCALE[i + offset])/12.0+(MATRIX_ROWS - 1))); _delay_us(8000); } return; @@ -100,11 +99,11 @@ void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) if (record->event.pressed) { // midi_send_noteon(&midi_device, record->event.key.row, starting_note + SCALE[record->event.key.col], 127); - midi_send_noteon(&midi_device, 0, (starting_note + SCALE[record->event.key.col + offset])+12*(MATRIX_ROWS - record->event.key.row), 127); - play_note(((double)261.6)*pow(2.0, -1.0)*pow(2.0,(starting_note + SCALE[record->event.key.col + offset])/12.0+(MATRIX_ROWS - record->event.key.row)), 0xF); + // midi_send_noteon(&midi_device, 0, (starting_note + SCALE[record->event.key.col + offset])+12*(MATRIX_ROWS - record->event.key.row), 127); + play_note(((double)261.626)*pow(2.0, -1.0)*pow(2.0,(starting_note + SCALE[record->event.key.col + offset])/12.0+(MATRIX_ROWS - record->event.key.row)), 0xF); } else { // midi_send_noteoff(&midi_device, record->event.key.row, starting_note + SCALE[record->event.key.col], 127); - midi_send_noteoff(&midi_device, 0, (starting_note + SCALE[record->event.key.col + offset])+12*(MATRIX_ROWS - record->event.key.row), 127); - stop_note(((double)261.6)*pow(2.0, -1.0)*pow(2.0,(starting_note + SCALE[record->event.key.col + offset])/12.0+(MATRIX_ROWS - record->event.key.row))); + // midi_send_noteoff(&midi_device, 0, (starting_note + SCALE[record->event.key.col + offset])+12*(MATRIX_ROWS - record->event.key.row), 127); + stop_note(((double)261.626)*pow(2.0, -1.0)*pow(2.0,(starting_note + SCALE[record->event.key.col + offset])/12.0+(MATRIX_ROWS - record->event.key.row))); } } \ No newline at end of file diff --git a/quantum/keymap_midi.h b/quantum/keymap_midi.h index c5917f884e..795f26380e 100644 --- a/quantum/keymap_midi.h +++ b/quantum/keymap_midi.h @@ -18,7 +18,9 @@ along with this program. If not, see . #ifndef KEYMAP_MIDI_H #define KEYMAP_MIDI_H -#define MIDI 0x6000 +#include + +#define MIDI(n) ((n) | 0x6000) #define MIDI12 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000 #define CHNL(note, channel) (note + (channel << 8)) diff --git a/quantum/keymap_unicode.c b/quantum/keymap_unicode.c index a9357edec7..a44965e611 100644 --- a/quantum/keymap_unicode.c +++ b/quantum/keymap_unicode.c @@ -30,6 +30,8 @@ uint16_t hextokeycode(int hex) { void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { + // For more info on how this works per OS, see here: https://en.wikipedia.org/wiki/Unicode_input#Hexadecimal_code_input + if (record->event.pressed) { uint16_t unicode = (opt << 8) | id; register_code(KC_LALT); diff --git a/quantum/led.c b/quantum/led.c index 2c05746607..9cdb8a5c20 100644 --- a/quantum/led.c +++ b/quantum/led.c @@ -19,9 +19,16 @@ along with this program. If not, see . #include "stdint.h" #include "led.h" +__attribute__ ((weak)) +void led_set_kb(uint8_t usb_led) { + +} void led_set(uint8_t usb_led) { + + // Example LED Code + // // // Using PE6 Caps Lock LED // if (usb_led & (1< +#include +#include +#include "debug.h" + +// Setleds for standard RGB +void inline ws2812_setleds(struct cRGB *ledarray, uint16_t leds) +{ + ws2812_setleds_pin(ledarray,leds, _BV(ws2812_pin)); +} + +void inline ws2812_setleds_pin(struct cRGB *ledarray, uint16_t leds, uint8_t pinmask) +{ + ws2812_DDRREG |= pinmask; // Enable DDR + ws2812_sendarray_mask((uint8_t*)ledarray,leds+leds+leds,pinmask); + _delay_us(50); +} + +// Setleds for SK6812RGBW +void inline ws2812_setleds_rgbw(struct cRGBW *ledarray, uint16_t leds) +{ + ws2812_DDRREG |= _BV(ws2812_pin); // Enable DDR + ws2812_sendarray_mask((uint8_t*)ledarray,leds<<2,_BV(ws2812_pin)); + _delay_us(80); +} + +void ws2812_sendarray(uint8_t *data,uint16_t datlen) +{ + ws2812_sendarray_mask(data,datlen,_BV(ws2812_pin)); +} + +/* + This routine writes an array of bytes with RGB values to the Dataout pin + using the fast 800kHz clockless WS2811/2812 protocol. +*/ + +// Timing in ns +#define w_zeropulse 350 +#define w_onepulse 900 +#define w_totalperiod 1250 + +// Fixed cycles used by the inner loop +#define w_fixedlow 2 +#define w_fixedhigh 4 +#define w_fixedtotal 8 + +// Insert NOPs to match the timing, if possible +#define w_zerocycles (((F_CPU/1000)*w_zeropulse )/1000000) +#define w_onecycles (((F_CPU/1000)*w_onepulse +500000)/1000000) +#define w_totalcycles (((F_CPU/1000)*w_totalperiod +500000)/1000000) + +// w1 - nops between rising edge and falling edge - low +#define w1 (w_zerocycles-w_fixedlow) +// w2 nops between fe low and fe high +#define w2 (w_onecycles-w_fixedhigh-w1) +// w3 nops to complete loop +#define w3 (w_totalcycles-w_fixedtotal-w1-w2) + +#if w1>0 + #define w1_nops w1 +#else + #define w1_nops 0 +#endif + +// The only critical timing parameter is the minimum pulse length of the "0" +// Warn or throw error if this timing can not be met with current F_CPU settings. +#define w_lowtime ((w1_nops+w_fixedlow)*1000000)/(F_CPU/1000) +#if w_lowtime>550 + #error "Light_ws2812: Sorry, the clock speed is too low. Did you set F_CPU correctly?" +#elif w_lowtime>450 + #warning "Light_ws2812: The timing is critical and may only work on WS2812B, not on WS2812(S)." + #warning "Please consider a higher clockspeed, if possible" +#endif + +#if w2>0 +#define w2_nops w2 +#else +#define w2_nops 0 +#endif + +#if w3>0 +#define w3_nops w3 +#else +#define w3_nops 0 +#endif + +#define w_nop1 "nop \n\t" +#define w_nop2 "rjmp .+0 \n\t" +#define w_nop4 w_nop2 w_nop2 +#define w_nop8 w_nop4 w_nop4 +#define w_nop16 w_nop8 w_nop8 + +void inline ws2812_sendarray_mask(uint8_t *data,uint16_t datlen,uint8_t maskhi) +{ + uint8_t curbyte,ctr,masklo; + uint8_t sreg_prev; + + masklo =~maskhi&ws2812_PORTREG; + maskhi |= ws2812_PORTREG; + sreg_prev=SREG; + cli(); + + while (datlen--) { + curbyte=*data++; + + asm volatile( + " ldi %0,8 \n\t" + "loop%=: \n\t" + " out %2,%3 \n\t" // '1' [01] '0' [01] - re +#if (w1_nops&1) +w_nop1 +#endif +#if (w1_nops&2) +w_nop2 +#endif +#if (w1_nops&4) +w_nop4 +#endif +#if (w1_nops&8) +w_nop8 +#endif +#if (w1_nops&16) +w_nop16 +#endif + " sbrs %1,7 \n\t" // '1' [03] '0' [02] + " out %2,%4 \n\t" // '1' [--] '0' [03] - fe-low + " lsl %1 \n\t" // '1' [04] '0' [04] +#if (w2_nops&1) + w_nop1 +#endif +#if (w2_nops&2) + w_nop2 +#endif +#if (w2_nops&4) + w_nop4 +#endif +#if (w2_nops&8) + w_nop8 +#endif +#if (w2_nops&16) + w_nop16 +#endif + " out %2,%4 \n\t" // '1' [+1] '0' [+1] - fe-high +#if (w3_nops&1) +w_nop1 +#endif +#if (w3_nops&2) +w_nop2 +#endif +#if (w3_nops&4) +w_nop4 +#endif +#if (w3_nops&8) +w_nop8 +#endif +#if (w3_nops&16) +w_nop16 +#endif + + " dec %0 \n\t" // '1' [+2] '0' [+2] + " brne loop%=\n\t" // '1' [+3] '0' [+4] + : "=&d" (ctr) + : "r" (curbyte), "I" (_SFR_IO_ADDR(ws2812_PORTREG)), "r" (maskhi), "r" (masklo) + ); + } + + SREG=sreg_prev; +} diff --git a/quantum/light_ws2812.h b/quantum/light_ws2812.h new file mode 100755 index 0000000000..54eef22d9e --- /dev/null +++ b/quantum/light_ws2812.h @@ -0,0 +1,73 @@ +/* + * light weight WS2812 lib include + * + * Version 2.3 - Nev 29th 2015 + * Author: Tim (cpldcpu@gmail.com) + * + * Please do not change this file! All configuration is handled in "ws2812_config.h" + * + * License: GNU GPL v2 (see License.txt) + + + */ + +#ifndef LIGHT_WS2812_H_ +#define LIGHT_WS2812_H_ + +#include +#include +//#include "ws2812_config.h" + +/* + * Structure of the LED array + * + * cRGB: RGB for WS2812S/B/C/D, SK6812, SK6812Mini, SK6812WWA, APA104, APA106 + * cRGBW: RGBW for SK6812RGBW + */ + +struct cRGB { uint8_t g; uint8_t r; uint8_t b; }; +struct cRGBW { uint8_t g; uint8_t r; uint8_t b; uint8_t w;}; + + + +/* User Interface + * + * Input: + * ledarray: An array of GRB data describing the LED colors + * number_of_leds: The number of LEDs to write + * pinmask (optional): Bitmask describing the output bin. e.g. _BV(PB0) + * + * The functions will perform the following actions: + * - Set the data-out pin as output + * - Send out the LED data + * - Wait 50�s to reset the LEDs + */ + +void ws2812_setleds (struct cRGB *ledarray, uint16_t number_of_leds); +void ws2812_setleds_pin (struct cRGB *ledarray, uint16_t number_of_leds,uint8_t pinmask); +void ws2812_setleds_rgbw(struct cRGBW *ledarray, uint16_t number_of_leds); + +/* + * Old interface / Internal functions + * + * The functions take a byte-array and send to the data output as WS2812 bitstream. + * The length is the number of bytes to send - three per LED. + */ + +void ws2812_sendarray (uint8_t *array,uint16_t length); +void ws2812_sendarray_mask(uint8_t *array,uint16_t length, uint8_t pinmask); + + +/* + * Internal defines + */ +#ifndef CONCAT +#define CONCAT(a, b) a ## b +#endif +#ifndef CONCAT_EXP +#define CONCAT_EXP(a, b) CONCAT(a, b) +#endif + +// #define ws2812_PORTREG CONCAT_EXP(PORT,ws2812_port) +// #define ws2812_DDRREG CONCAT_EXP(DDR,ws2812_port) + +#endif /* LIGHT_WS2812_H_ */ diff --git a/quantum/matrix.c b/quantum/matrix.c index 95bf4c0973..2dab6ae941 100644 --- a/quantum/matrix.c +++ b/quantum/matrix.c @@ -48,14 +48,14 @@ static void unselect_rows(void); static void select_row(uint8_t row); __attribute__ ((weak)) -void * matrix_init_kb(void) { +void matrix_init_kb(void) { -}; +} __attribute__ ((weak)) -void * matrix_scan_kb(void) { +void matrix_scan_kb(void) { -}; +} inline uint8_t matrix_rows(void) @@ -86,9 +86,7 @@ void matrix_init(void) matrix_debouncing[i] = 0; } - if (matrix_init_kb) { - (*matrix_init_kb)(); - } + matrix_init_kb(); } @@ -152,9 +150,7 @@ uint8_t matrix_scan(void) } #endif - if (matrix_scan_kb) { - (*matrix_scan_kb)(); - } + matrix_scan_kb(); return 1; } diff --git a/quantum/quantum.mk b/quantum/quantum.mk index c82e478725..1fe7390eba 100644 --- a/quantum/quantum.mk +++ b/quantum/quantum.mk @@ -2,29 +2,53 @@ QUANTUM_DIR = quantum # # project specific files SRC += $(QUANTUM_DIR)/keymap_common.c \ - $(QUANTUM_DIR)/led.c + $(QUANTUM_DIR)/led.c + +# ifdef KEYMAP_FILE +# ifneq (,$(shell grep USING_MIDI '$(KEYMAP_FILE)')) +# MIDI_ENABLE=yes +# $(info * Overriding MIDI_ENABLE setting - $(KEYMAP_FILE) requires it) +# endif +# ifneq (,$(shell grep USING_UNICODE '$(KEYMAP_FILE)')) +# UNICODE_ENABLE=yes +# $(info * Overriding UNICODE_ENABLE setting - $(KEYMAP_FILE) requires it) +# endif +# ifneq (,$(shell grep USING_BACKLIGHT '$(KEYMAP_FILE)')) +# BACKLIGHT_ENABLE=yes +# $(info * Overriding BACKLIGHT_ENABLE setting - $(KEYMAP_FILE) requires it) +# endif +# endif ifndef CUSTOM_MATRIX SRC += $(QUANTUM_DIR)/matrix.c endif -ifdef MIDI_ENABLE - SRC += $(QUANTUM_DIR)/keymap_midi.c \ - $(QUANTUM_DIR)/beeps.c +ifeq ($(strip $(MIDI_ENABLE)), yes) + SRC += $(QUANTUM_DIR)/keymap_midi.c endif -ifdef UNICODE_ENABLE +ifeq ($(strip $(AUDIO_ENABLE)), yes) + SRC += $(QUANTUM_DIR)/audio.c +endif + +ifeq ($(strip $(UNICODE_ENABLE)), yes) SRC += $(QUANTUM_DIR)/keymap_unicode.c endif +ifeq ($(strip $(RGBLIGHT_ENABLE)), yes) + SRC += $(QUANTUM_DIR)/light_ws2812.c + SRC += $(QUANTUM_DIR)/rgblight.c + OPT_DEFS += -DRGBLIGHT_ENABLE +endif + # Optimize size but this may cause error "relocation truncated to fit" #EXTRALDFLAGS = -Wl,--relax # Search Path VPATH += $(TOP_DIR)/$(QUANTUM_DIR) +VPATH += $(TOP_DIR)/$(QUANTUM_DIR)/keymap_extras include $(TMK_DIR)/protocol/lufa.mk include $(TMK_DIR)/common.mk include $(TMK_DIR)/rules.mk - diff --git a/quantum/rgblight.c b/quantum/rgblight.c new file mode 100644 index 0000000000..2215cf5cdf --- /dev/null +++ b/quantum/rgblight.c @@ -0,0 +1,505 @@ +#include +#include +#include +#include "progmem.h" +#include "timer.h" +#include "rgblight.h" +#include "debug.h" + +const uint8_t DIM_CURVE[] PROGMEM = { + 0, 1, 1, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, + 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, + 8, 8, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 11, 11, 11, + 11, 11, 12, 12, 12, 12, 12, 13, 13, 13, 13, 14, 14, 14, 14, 15, + 15, 15, 16, 16, 16, 16, 17, 17, 17, 18, 18, 18, 19, 19, 19, 20, + 20, 20, 21, 21, 22, 22, 22, 23, 23, 24, 24, 25, 25, 25, 26, 26, + 27, 27, 28, 28, 29, 29, 30, 30, 31, 32, 32, 33, 33, 34, 35, 35, + 36, 36, 37, 38, 38, 39, 40, 40, 41, 42, 43, 43, 44, 45, 46, 47, + 48, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, + 63, 64, 65, 66, 68, 69, 70, 71, 73, 74, 75, 76, 78, 79, 81, 82, + 83, 85, 86, 88, 90, 91, 93, 94, 96, 98, 99, 101, 103, 105, 107, 109, + 110, 112, 114, 116, 118, 121, 123, 125, 127, 129, 132, 134, 136, 139, 141, 144, + 146, 149, 151, 154, 157, 159, 162, 165, 168, 171, 174, 177, 180, 183, 186, 190, + 193, 196, 200, 203, 207, 211, 214, 218, 222, 226, 230, 234, 238, 242, 248, 255, +}; +const uint8_t RGBLED_BREATHING_TABLE[] PROGMEM = {0,0,0,0,1,1,1,2,2,3,4,5,5,6,7,9,10,11,12,14,15,17,18,20,21,23,25,27,29,31,33,35,37,40,42,44,47,49,52,54,57,59,62,65,67,70,73,76,79,82,85,88,90,93,97,100,103,106,109,112,115,118,121,124,127,131,134,137,140,143,146,149,152,155,158,162,165,167,170,173,176,179,182,185,188,190,193,196,198,201,203,206,208,211,213,215,218,220,222,224,226,228,230,232,234,235,237,238,240,241,243,244,245,246,248,249,250,250,251,252,253,253,254,254,254,255,255,255,255,255,255,255,254,254,254,253,253,252,251,250,250,249,248,246,245,244,243,241,240,238,237,235,234,232,230,228,226,224,222,220,218,215,213,211,208,206,203,201,198,196,193,190,188,185,182,179,176,173,170,167,165,162,158,155,152,149,146,143,140,137,134,131,128,124,121,118,115,112,109,106,103,100,97,93,90,88,85,82,79,76,73,70,67,65,62,59,57,54,52,49,47,44,42,40,37,35,33,31,29,27,25,23,21,20,18,17,15,14,12,11,10,9,7,6,5,5,4,3,2,2,1,1,1,0,0,0}; +const uint8_t RGBLED_BREATHING_INTERVALS[] PROGMEM = {30, 20, 10, 5}; +const uint8_t RGBLED_RAINBOW_MOOD_INTERVALS[] PROGMEM = {120, 60, 30}; +const uint8_t RGBLED_RAINBOW_SWIRL_INTERVALS[] PROGMEM = {100, 50, 20}; +const uint8_t RGBLED_SNAKE_INTERVALS[] PROGMEM = {100, 50, 20}; +const uint8_t RGBLED_KNIGHT_INTERVALS[] PROGMEM = {100, 50, 20}; + +rgblight_config_t rgblight_config; +rgblight_config_t inmem_config; +struct cRGB led[RGBLED_NUM]; +uint8_t rgblight_inited = 0; + + +void sethsv(uint16_t hue, uint8_t sat, uint8_t val, struct cRGB *led1) { + /* convert hue, saturation and brightness ( HSB/HSV ) to RGB + The DIM_CURVE is used only on brightness/value and on saturation (inverted). + This looks the most natural. + */ + uint8_t r, g, b; + + val = pgm_read_byte(&DIM_CURVE[val]); + sat = 255 - pgm_read_byte(&DIM_CURVE[255 - sat]); + + uint8_t base; + + if (sat == 0) { // Acromatic color (gray). Hue doesn't mind. + r = val; + g = val; + b = val; + } else { + base = ((255 - sat) * val) >> 8; + + switch (hue / 60) { + case 0: + r = val; + g = (((val - base)*hue) / 60) + base; + b = base; + break; + + case 1: + r = (((val - base)*(60 - (hue % 60))) / 60) + base; + g = val; + b = base; + break; + + case 2: + r = base; + g = val; + b = (((val - base)*(hue % 60)) / 60) + base; + break; + + case 3: + r = base; + g = (((val - base)*(60 - (hue % 60))) / 60) + base; + b = val; + break; + + case 4: + r = (((val - base)*(hue % 60)) / 60) + base; + g = base; + b = val; + break; + + case 5: + r = val; + g = base; + b = (((val - base)*(60 - (hue % 60))) / 60) + base; + break; + } + } + setrgb(r,g,b, led1); +} + +void setrgb(uint8_t r, uint8_t g, uint8_t b, struct cRGB *led1) { + (*led1).r = r; + (*led1).g = g; + (*led1).b = b; +} + + +uint32_t eeconfig_read_rgblight(void) { + return eeprom_read_dword(EECONFIG_RGBLIGHT); +} +void eeconfig_write_rgblight(uint32_t val) { + eeprom_write_dword(EECONFIG_RGBLIGHT, val); +} +void eeconfig_write_rgblight_default(void) { + dprintf("eeconfig_write_rgblight_default\n"); + rgblight_config.enable = 1; + rgblight_config.mode = 1; + rgblight_config.hue = 200; + rgblight_config.sat = 204; + rgblight_config.val = 204; + eeconfig_write_rgblight(rgblight_config.raw); +} +void eeconfig_debug_rgblight(void) { + dprintf("rgblight_config eprom\n"); + dprintf("rgblight_config.enable = %d\n", rgblight_config.enable); + dprintf("rghlight_config.mode = %d\n", rgblight_config.mode); + dprintf("rgblight_config.hue = %d\n", rgblight_config.hue); + dprintf("rgblight_config.sat = %d\n", rgblight_config.sat); + dprintf("rgblight_config.val = %d\n", rgblight_config.val); +} + +void rgblight_init(void) { + debug_enable = 1; // Debug ON! + dprintf("rgblight_init called.\n"); + rgblight_inited = 1; + dprintf("rgblight_init start!\n"); + if (!eeconfig_is_enabled()) { + dprintf("rgblight_init eeconfig is not enabled.\n"); + eeconfig_init(); + eeconfig_write_rgblight_default(); + } + rgblight_config.raw = eeconfig_read_rgblight(); + if (!rgblight_config.mode) { + dprintf("rgblight_init rgblight_config.mode = 0. Write default values to EEPROM.\n"); + eeconfig_write_rgblight_default(); + rgblight_config.raw = eeconfig_read_rgblight(); + } + eeconfig_debug_rgblight(); // display current eeprom values + + rgblight_timer_init(); // setup the timer + + if (rgblight_config.enable) { + rgblight_mode(rgblight_config.mode); + } +} + +void rgblight_increase(void) { + uint8_t mode; + if (rgblight_config.mode < RGBLIGHT_MODES) { + mode = rgblight_config.mode + 1; + } + rgblight_mode(mode); +} + +void rgblight_decrease(void) { + uint8_t mode; + if (rgblight_config.mode > 1) { //mode will never < 1, if mode is less than 1, eeprom need to be initialized. + mode = rgblight_config.mode-1; + } + rgblight_mode(mode); +} + +void rgblight_step(void) { + uint8_t mode; + mode = rgblight_config.mode + 1; + if (mode > RGBLIGHT_MODES) { + mode = 1; + } + rgblight_mode(mode); +} + +void rgblight_mode(uint8_t mode) { + if (!rgblight_config.enable) { + return; + } + if (mode<1) { + rgblight_config.mode = 1; + } else if (mode > RGBLIGHT_MODES) { + rgblight_config.mode = RGBLIGHT_MODES; + } else { + rgblight_config.mode = mode; + } + eeconfig_write_rgblight(rgblight_config.raw); + dprintf("rgblight mode: %u\n", rgblight_config.mode); + if (rgblight_config.mode == 1) { + rgblight_timer_disable(); + } else if (rgblight_config.mode >=2 && rgblight_config.mode <=23) { + // MODE 2-5, breathing + // MODE 6-8, rainbow mood + // MODE 9-14, rainbow swirl + // MODE 15-20, snake + // MODE 21-23, knight + rgblight_timer_enable(); + } + rgblight_sethsv(rgblight_config.hue, rgblight_config.sat, rgblight_config.val); +} + +void rgblight_toggle(void) { + rgblight_config.enable ^= 1; + eeconfig_write_rgblight(rgblight_config.raw); + dprintf("rgblight toggle: rgblight_config.enable = %u\n", rgblight_config.enable); + if (rgblight_config.enable) { + rgblight_mode(rgblight_config.mode); + } else { + rgblight_timer_disable(); + _delay_ms(50); + rgblight_set(); + } +} + + +void rgblight_increase_hue(void){ + uint16_t hue; + hue = (rgblight_config.hue+RGBLIGHT_HUE_STEP) % 360; + rgblight_sethsv(hue, rgblight_config.sat, rgblight_config.val); +} +void rgblight_decrease_hue(void){ + uint16_t hue; + if (rgblight_config.hue-RGBLIGHT_HUE_STEP <0 ) { + hue = (rgblight_config.hue+360-RGBLIGHT_HUE_STEP) % 360; + } else { + hue = (rgblight_config.hue-RGBLIGHT_HUE_STEP) % 360; + } + rgblight_sethsv(hue, rgblight_config.sat, rgblight_config.val); +} +void rgblight_increase_sat(void) { + uint8_t sat; + if (rgblight_config.sat + RGBLIGHT_SAT_STEP > 255) { + sat = 255; + } else { + sat = rgblight_config.sat+RGBLIGHT_SAT_STEP; + } + rgblight_sethsv(rgblight_config.hue, sat, rgblight_config.val); +} +void rgblight_decrease_sat(void){ + uint8_t sat; + if (rgblight_config.sat - RGBLIGHT_SAT_STEP < 0) { + sat = 0; + } else { + sat = rgblight_config.sat-RGBLIGHT_SAT_STEP; + } + rgblight_sethsv(rgblight_config.hue, sat, rgblight_config.val); +} +void rgblight_increase_val(void){ + uint8_t val; + if (rgblight_config.val + RGBLIGHT_VAL_STEP > 255) { + val = 255; + } else { + val = rgblight_config.val+RGBLIGHT_VAL_STEP; + } + rgblight_sethsv(rgblight_config.hue, rgblight_config.sat, val); +} +void rgblight_decrease_val(void) { + uint8_t val; + if (rgblight_config.val - RGBLIGHT_VAL_STEP < 0) { + val = 0; + } else { + val = rgblight_config.val-RGBLIGHT_VAL_STEP; + } + rgblight_sethsv(rgblight_config.hue, rgblight_config.sat, val); +} + +void rgblight_sethsv_noeeprom(uint16_t hue, uint8_t sat, uint8_t val){ + inmem_config.raw = rgblight_config.raw; + if (rgblight_config.enable) { + struct cRGB tmp_led; + sethsv(hue, sat, val, &tmp_led); + inmem_config.hue = hue; + inmem_config.sat = sat; + inmem_config.val = val; + // dprintf("rgblight set hue [MEMORY]: %u,%u,%u\n", inmem_config.hue, inmem_config.sat, inmem_config.val); + rgblight_setrgb(tmp_led.r, tmp_led.g, tmp_led.b); + } +} +void rgblight_sethsv(uint16_t hue, uint8_t sat, uint8_t val){ + if (rgblight_config.enable) { + if (rgblight_config.mode == 1) { + // same static color + rgblight_sethsv_noeeprom(hue, sat, val); + } else { + // all LEDs in same color + if (rgblight_config.mode >= 2 && rgblight_config.mode <= 5) { + // breathing mode, ignore the change of val, use in memory value instead + val = rgblight_config.val; + } else if (rgblight_config.mode >= 6 && rgblight_config.mode <= 14) { + // rainbow mood and rainbow swirl, ignore the change of hue + hue = rgblight_config.hue; + } + } + rgblight_config.hue = hue; + rgblight_config.sat = sat; + rgblight_config.val = val; + eeconfig_write_rgblight(rgblight_config.raw); + dprintf("rgblight set hsv [EEPROM]: %u,%u,%u\n", rgblight_config.hue, rgblight_config.sat, rgblight_config.val); + } +} + +void rgblight_setrgb(uint8_t r, uint8_t g, uint8_t b){ + // dprintf("rgblight set rgb: %u,%u,%u\n", r,g,b); + for (uint8_t i=0;i>8)&0xff; + OCR3AL = RGBLED_TIMER_TOP&0xff; + SREG = sreg; +} +void rgblight_timer_enable(void) { + TIMSK3 |= _BV(OCIE3A); + dprintf("TIMER3 enabled.\n"); +} +void rgblight_timer_disable(void) { + TIMSK3 &= ~_BV(OCIE3A); + dprintf("TIMER3 disabled.\n"); +} +void rgblight_timer_toggle(void) { + TIMSK3 ^= _BV(OCIE3A); + dprintf("TIMER3 toggled.\n"); +} + +ISR(TIMER3_COMPA_vect) { + // Mode = 1, static light, do nothing here + if (rgblight_config.mode>=2 && rgblight_config.mode<=5) { + // mode = 2 to 5, breathing mode + rgblight_effect_breathing(rgblight_config.mode-2); + + } else if (rgblight_config.mode>=6 && rgblight_config.mode<=8) { + rgblight_effect_rainbow_mood(rgblight_config.mode-6); + } else if (rgblight_config.mode>=9 && rgblight_config.mode<=14) { + rgblight_effect_rainbow_swirl(rgblight_config.mode-9); + } else if (rgblight_config.mode>=15 && rgblight_config.mode<=20) { + rgblight_effect_snake(rgblight_config.mode-15); + } else if (rgblight_config.mode>=21 && rgblight_config.mode<=23) { + rgblight_effect_knight(rgblight_config.mode-21); + } +} + +// effects +void rgblight_effect_breathing(uint8_t interval) { + static uint8_t pos = 0; + static uint16_t last_timer = 0; + + if (timer_elapsed(last_timer)=RGBLED_NUM) k=RGBLED_NUM-1; + if (i==k) { + sethsv(rgblight_config.hue, rgblight_config.sat, rgblight_config.val, &preled[i]); + } + } + } + if (RGBLIGHT_EFFECT_KNIGHT_OFFSET) { + for (i=0;iRGBLED_NUM+RGBLIGHT_EFFECT_KNIGHT_LENGTH) { + pos = RGBLED_NUM+RGBLIGHT_EFFECT_KNIGHT_LENGTH-1; + increament = 1; + } else { + pos += 1; + } + } + +} diff --git a/quantum/rgblight.h b/quantum/rgblight.h new file mode 100644 index 0000000000..9e1562328f --- /dev/null +++ b/quantum/rgblight.h @@ -0,0 +1,87 @@ +#ifndef RGBLIGHT_H +#define RGBLIGHT_H + +#ifndef RGBLIGHT_MODES +#define RGBLIGHT_MODES 23 +#endif + +#ifndef RGBLIGHT_EFFECT_SNAKE_LENGTH +#define RGBLIGHT_EFFECT_SNAKE_LENGTH 7 +#endif + +#ifndef RGBLIGHT_EFFECT_KNIGHT_LENGTH +#define RGBLIGHT_EFFECT_KNIGHT_LENGTH 7 +#endif +#ifndef RGBLIGHT_EFFECT_KNIGHT_OFFSET +#define RGBLIGHT_EFFECT_KNIGHT_OFFSET 9 +#endif + +#ifndef RGBLIGHT_EFFECT_DUALKNIGHT_LENGTH +#define RGBLIGHT_EFFECT_DUALKNIGHT_LENGTH 4 +#endif + +#ifndef RGBLIGHT_HUE_STEP +#define RGBLIGHT_HUE_STEP 10 +#endif +#ifndef RGBLIGHT_SAT_STEP +#define RGBLIGHT_SAT_STEP 17 +#endif +#ifndef RGBLIGHT_VAL_STEP +#define RGBLIGHT_VAL_STEP 17 +#endif + +#define RGBLED_TIMER_TOP F_CPU/(256*64) + +#include +#include +#include "eeconfig.h" +#include "light_ws2812.h" + +typedef union { + uint32_t raw; + struct { + bool enable :1; + uint8_t mode :6; + uint16_t hue :9; + uint8_t sat :8; + uint8_t val :8; + }; +} rgblight_config_t; + +void rgblight_init(void); +void rgblight_increase(void); +void rgblight_decrease(void); +void rgblight_toggle(void); +void rgblight_step(void); +void rgblight_mode(uint8_t mode); +void rgblight_set(void); +void rgblight_increase_hue(void); +void rgblight_decrease_hue(void); +void rgblight_increase_sat(void); +void rgblight_decrease_sat(void); +void rgblight_increase_val(void); +void rgblight_decrease_val(void); +void rgblight_sethsv(uint16_t hue, uint8_t sat, uint8_t val); +void rgblight_setrgb(uint8_t r, uint8_t g, uint8_t b); + +#define EECONFIG_RGBLIGHT (uint8_t *)7 +uint32_t eeconfig_read_rgblight(void); +void eeconfig_write_rgblight(uint32_t val); +void eeconfig_write_rgblight_default(void); +void eeconfig_debug_rgblight(void); + +void sethsv(uint16_t hue, uint8_t sat, uint8_t val, struct cRGB *led1); +void setrgb(uint8_t r, uint8_t g, uint8_t b, struct cRGB *led1); +void rgblight_sethsv_noeeprom(uint16_t hue, uint8_t sat, uint8_t val); + +void rgblight_timer_init(void); +void rgblight_timer_enable(void); +void rgblight_timer_disable(void); +void rgblight_timer_toggle(void); +void rgblight_effect_breathing(uint8_t interval); +void rgblight_effect_rainbow_mood(uint8_t interval); +void rgblight_effect_rainbow_swirl(uint8_t interval); +void rgblight_effect_snake(uint8_t interval); +void rgblight_effect_knight(uint8_t interval); + +#endif diff --git a/quantum/template/Makefile b/quantum/template/Makefile index 99c97a62cf..4fa195468d 100644 --- a/quantum/template/Makefile +++ b/quantum/template/Makefile @@ -53,9 +53,9 @@ TARGET_DIR = . SRC = %KEYBOARD%.c ifdef KEYMAP - SRC := keymaps/keymap_$(KEYMAP).c $(SRC) + SRC := keymaps/$(KEYMAP).c $(SRC) else - SRC := keymaps/keymap_default.c $(SRC) + SRC := keymaps/default.c $(SRC) endif CONFIG_H = config.h @@ -107,24 +107,25 @@ OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT # Atmel DFU loader 4096 # LUFA bootloader 4096 # USBaspLoader 2048 -OPT_DEFS += -DBOOTLOADER_SIZE=4096 +OPT_DEFS += -DBOOTLOADER_SIZE=512 # Build Options # comment out to disable the options. # -BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000) -MOUSEKEY_ENABLE = yes # Mouse keys(+4700) -EXTRAKEY_ENABLE = yes # Audio control and System control(+450) -CONSOLE_ENABLE = yes # Console for debug(+400) -COMMAND_ENABLE = yes # Commands for debug and configuration +BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = yes # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = yes # Console for debug(+400) +COMMAND_ENABLE = yes # Commands for debug and configuration +KEYBOARD_LOCK_ENABLE = yes # Allow locking of keyboard via magic key # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE -# SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend -# NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work -# BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality -# MIDI_ENABLE = YES # MIDI controls -# UNICODE_ENABLE = YES # Unicode -# BLUETOOTH_ENABLE = yes # Enable Bluetooth with the Adafruit EZ-Key HID +# SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend +#NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +# BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +# MIDI_ENABLE = YES # MIDI controls +# UNICODE_ENABLE = YES # Unicode +# BLUETOOTH_ENABLE = yes # Enable Bluetooth with the Adafruit EZ-Key HID # Optimize size but this may cause error "relocation truncated to fit" diff --git a/quantum/template/README.md b/quantum/template/README.md index ecea7dd698..39f9f59d10 100644 --- a/quantum/template/README.md +++ b/quantum/template/README.md @@ -3,167 +3,11 @@ ## Quantum MK Firmware -You have access to a bunch of goodies! Check out the Makefile to enable/disable some of the features. Uncomment the `#` to enable them. Setting them to `no` does nothing and will only confuse future you. - - BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality - MIDI_ENABLE = yes # MIDI controls - # UNICODE_ENABLE = yes # Unicode support - this is commented out, just as an example. You have to use #, not // - BLUETOOTH_ENABLE = yes # Enable Bluetooth with the Adafruit EZ-Key HID - -## Quick aliases to common actions - -Your keymap can include shortcuts to common operations (called "function actions" in tmk). - -### Switching and toggling layers - -`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. - -`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). - -`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. - -### Fun with modifier keys - -* `LSFT(kc)` - applies left Shift to *kc* (keycode) - `S(kc)` is an alias -* `RSFT(kc)` - applies right Shift to *kc* -* `LCTL(kc)` - applies left Control to *kc* -* `RCTL(kc)` - applies right Control to *kc* -* `LALT(kc)` - applies left Alt to *kc* -* `RALT(kc)` - applies right Alt to *kc* -* `LGUI(kc)` - applies left GUI (command/win) to *kc* -* `RGUI(kc)` - applies right GUI (command/win) to *kc* - -You can also chain these, like this: - - LALT(LCTL(KC_DEL)) -- this makes a key that sends Alt, Control, and Delete in a single keypress. - -The following shortcuts automatically add `LSFT()` to keycodes to get commonly used symbols. Their long names are also available and documented in `/quantum/keymap_common.h`. - - KC_TILD ~ - KC_EXLM ! - KC_AT @ - KC_HASH # - KC_DLR $ - KC_PERC % - KC_CIRC ^ - KC_AMPR & - KC_ASTR * - KC_LPRN ( - KC_RPRN ) - KC_UNDS _ - KC_PLUS + - KC_LCBR { - KC_RCBR } - KC_PIPE | - KC_COLN : - -`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. - -These are the values you can use for the `mod` in `MT()` (right-hand modifiers are not available): - - * MOD_LCTL - * MOD_LSFT - * MOD_LALT - * MOD_LGUI - -These 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. - -We've added shortcuts to make common modifier/tap (mod-tap) mappings more compact: - - * `CTL_T(kc)` - is LCTL when held and *kc* when tapped - * `SFT_T(kc)` - is LSFT when held and *kc* when tapped - * `ALT_T(kc)` - is LALT when held and *kc* when tapped - * `GUI_T(kc)` - is LGUI when held and *kc* when tapped - * `ALL_T(kc)` - is Hyper (all mods) when held and *kc* when tapped. To read more about what you can do with a Hyper key, see [this blog post by Brett Terpstra](http://brettterpstra.com/2012/12/08/a-useful-caps-lock-key/) - -### 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. - -### Remember: These are just aliases - -These functions work the same way that their `ACTION_*` functions do - they're just quick aliases. To dig into all of the tmk ACTION_* functions, please see the [TMK documentation](https://github.com/jackhumbert/qmk_firmware/blob/master/tmk_core/doc/keymap.md#2-action). - -Instead of using `FNx` when defining `ACTION_*` functions, you can use `F(x)` - the benefit here is being able to use more than 32 function actions (up to 4096), if you happen to need them. - -## Macro shortcuts: Send a whole string when pressing just one key - -Instead of using the `ACTION_MACRO` function, you can simply use `M(n)` to access macro *n* - *n* will get passed into the `action_get_macro` as the `id`, and you can use a switch statement to trigger it. This gets called on the keydown and keyup, so you'll need to use an if statement testing `record->event.pressed` (see keymap_default.c). - -```c -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) // this is the function signature -- just copy/paste it into your keymap file as it is. -{ - switch(id) { - case 0: // this would trigger when you hit a key mapped as M(0) - if (record->event.pressed) { - return MACRO( I(255), T(H), T(E), T(L), T(L), W(255), T(O), END ); // this sends the string 'hello' when the macro executes - } - break; - } - return MACRO_NONE; -}; -``` -A macro can include the following commands: - -* I() change interval of stroke in milliseconds. -* D() press key. -* U() release key. -* T() type key(press and release). -* W() wait (milliseconds). -* END end mark. - -So above you can see the stroke interval changed to 255ms between each keystroke, then a bunch of keys being typed, waits a while, then the macro ends. - -Note: Using macros to have your keyboard send passwords for you is a bad idea. - -### Additional keycode aliases for software-implemented layouts (Colemak, Dvorak, etc) - -Everything is assuming you're in Qwerty (in software) by default, but there is built-in support for using a Colemak or Dvorak layout by including this at the top of your keymap: - - #include "keymap_.h" - -Where is "colemak" or "dvorak". After including this line, you will get access to: - - * `CM_*` for all of the Colemak-equivalent characters - * `DV_*` for all of the Dvorak-equivalent characters - -These implementations assume you're using Colemak or Dvorak on your OS, not on your keyboard - this is referred to as a software-implemented layout. If your computer is in Qwerty and your keymap is in Colemak or Dvorak, this is referred to as a firmware-implemented layout, and you won't need these features. - -To give an example, if you're using software-implemented Colemak, and want to get an `F`, you would use `CM_F` - `KC_F` under these same circumstances would result in `T`. - -## Additional language support - -In `quantum/keymap_extras/`, you'll see various language files - these work the same way as the alternative layout ones do. Most are defined by their two letter country/language code followed by an underscore and a 4-letter abbreviation of its name. `FR_UGRV` which will result in a `ù` when using a software-implemented AZERTY layout. It's currently difficult to send such characters in just the firmware (but it's being worked on - see Unicode support). - -## Unicode support - -You can currently send 4 hex digits with your OS-specific modifier key (RALT for OSX with the "Unicode Hex Input" layout) - this is currently limited to supporting one OS at a time, and requires a recompile for switching. 8 digit hex codes are being worked on. The keycode function is `UC(n)`, where *n* is a 4 digit hexidecimal. Enable from the Makefile. - -## Other firmware shortcut keycodes - -* `RESET` - puts the MCU in DFU mode for flashing new firmware (with `make dfu`) -* `DEBUG` - the firmware into debug mode - you'll need hid_listen to see things -* `BL_ON` - turns the backlight on -* `BL_OFF` - turns the backlight off -* `BL_` - sets the backlight to level *n* -* `BL_INC` - increments the backlight level by one -* `BL_DEC` - decrements the backlight level by one -* `BL_TOGG` - toggles the backlight -* `BL_STEP` - steps through the backlight levels - -Enable the backlight from the Makefile. - -## MIDI functionalty - -This is still a WIP, but check out `quantum/keymap_midi.c` to see what's happening. Enable from the Makefile. - -## Bluetooth functionality - -This requires [some hardware changes](https://www.reddit.com/r/MechanicalKeyboards/comments/3psx0q/the_planck_keyboard_with_bluetooth_guide_and/?ref=search_posts), but can be enabled via the Makefile. The firmware will still output characters via USB, so be aware of this when charging via a computer. It would make sense to have a switch on the Bluefruit to turn it off at will. +For the full Quantum feature list, see [the parent README.md](/README.md). ## Building -Download or clone the whole firmware and navigate to the keyboard/planck folder. Once your dev env is setup, you'll be able to type `make` to generate your .hex - you can then use `make dfu` to program your PCB once you hit the reset button. +Download or clone the whole firmware and navigate to the keyboard/%KEYBOARD% folder. Once your dev env is setup, you'll be able to type `make` to generate your .hex - you can then use the Teensy Loader to program your .hex file. Depending on which keymap you would like to use, you will have to compile slightly differently. @@ -171,10 +15,10 @@ Depending on which keymap you would like to use, you will have to compile slight To build with the default keymap, simply run `make`. ### Other Keymaps -Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create file named `keymap_.c` and see keymap document (you can find in top README.md) and existent keymap files. +Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create file named `.c` in the keymaps folder, and see keymap document (you can find in top README.md) and existent keymap files. To build the firmware binary hex file with a keymap just do `make` with `KEYMAP` option like: ``` $ make KEYMAP=[default|jack|] ``` -Keymaps follow the format **__keymap\_\.c__** and are stored in the `keymaps` folder. \ No newline at end of file +Keymaps follow the format **__\.c__** and are stored in the `keymaps` folder. \ No newline at end of file diff --git a/quantum/template/config.h b/quantum/template/config.h index 9afedbcc07..e6fb7866c6 100644 --- a/quantum/template/config.h +++ b/quantum/template/config.h @@ -29,37 +29,113 @@ along with this program. If not, see . #define DESCRIPTION A custom keyboard /* key matrix size */ -#define MATRIX_ROWS 4 -#define MATRIX_COLS 12 +#define MATRIX_ROWS 2 +#define MATRIX_COLS 3 -// Planck PCB default pin-out -// Change this to how you wired your keyboard -// COLS: Left to right, ROWS: Top to bottom -#define COLS (int []){ F1, F0, B0, C7, F4, F5, F6, F7, D4, D6, B4, D7 } -#define ROWS (int []){ D0, D5, B5, B6 } +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * +*/ +#define COLS (int []){ F1, F0, B0 } +#define ROWS (int []){ D0, D5 } /* COL2ROW or ROW2COL */ #define DIODE_DIRECTION COL2ROW -/* define if matrix has ghost */ +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* define if matrix has ghost (lacks anti-ghosting diodes) */ //#define MATRIX_HAS_GHOST /* number of backlight levels */ #define BACKLIGHT_LEVELS 3 -/* Set 0 if debouncing isn't needed */ -#define DEBOUNCE 5 - /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -/* key combination for command */ +/* + * Force NKRO + * + * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved + * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the + * makefile for this to work.) + * + * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) + * until the next keyboard reset. + * + * NKRO may prevent your keystrokes from being detected in the BIOS, but it is + * fully operational during normal computer usage. + * + * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) + * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by + * bootmagic, NKRO mode will always be enabled until it is toggled again during a + * power-up. + * + */ +//#define FORCE_NKRO + +/* + * Magic Key Options + * + * Magic keys are hotkey commands that allow control over firmware functions of + * the keyboard. They are best used in combination with the HID Listen program, + * found here: https://www.pjrc.com/teensy/hid_listen.html + * + * The options below allow the magic key functionality to be changed. This is + * useful if your keyboard/keypad is missing keys and you want magic key support. + * + */ + +/* key combination for magic key command */ #define IS_COMMAND() ( \ keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ ) +/* control how magic key switches layers */ +//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true +//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true +//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false + +/* override magic key keymap */ +//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS +//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS +//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM +//#define MAGIC_KEY_HELP1 H +//#define MAGIC_KEY_HELP2 SLASH +//#define MAGIC_KEY_DEBUG D +//#define MAGIC_KEY_DEBUG_MATRIX X +//#define MAGIC_KEY_DEBUG_KBD K +//#define MAGIC_KEY_DEBUG_MOUSE M +//#define MAGIC_KEY_VERSION V +//#define MAGIC_KEY_STATUS S +//#define MAGIC_KEY_CONSOLE C +//#define MAGIC_KEY_LAYER0_ALT1 ESC +//#define MAGIC_KEY_LAYER0_ALT2 GRAVE +//#define MAGIC_KEY_LAYER0 0 +//#define MAGIC_KEY_LAYER1 1 +//#define MAGIC_KEY_LAYER2 2 +//#define MAGIC_KEY_LAYER3 3 +//#define MAGIC_KEY_LAYER4 4 +//#define MAGIC_KEY_LAYER5 5 +//#define MAGIC_KEY_LAYER6 6 +//#define MAGIC_KEY_LAYER7 7 +//#define MAGIC_KEY_LAYER8 8 +//#define MAGIC_KEY_LAYER9 9 +//#define MAGIC_KEY_BOOTLOADER PAUSE +//#define MAGIC_KEY_LOCK CAPS +//#define MAGIC_KEY_EEPROM E +//#define MAGIC_KEY_NKRO N +//#define MAGIC_KEY_SLEEP_LED Z + /* * Feature disable options * These options are also useful to firmware size reduction. diff --git a/quantum/template/keymaps/default.c b/quantum/template/keymaps/default.c new file mode 100644 index 0000000000..4121fd860c --- /dev/null +++ b/quantum/template/keymaps/default.c @@ -0,0 +1,30 @@ +// This is the canonical layout file for the Quantum project. If you want to add another keyboard, +// this is the style you want to emulate. + +#include "%KEYBOARD%.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[0] = KEYMAP( /* Base */ + KC_A, KC_1, KC_H, \ + KC_TAB, KC_SPC \ +), +}; + +const uint16_t PROGMEM fn_actions[] = { + +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch(id) { + case 0: + if (record->event.pressed) { + register_code(KC_RSFT); + } else { + unregister_code(KC_RSFT); + } + break; + } + return MACRO_NONE; +}; diff --git a/quantum/template/template.c b/quantum/template/template.c index 7be7dfc3d1..cc52e496ff 100644 --- a/quantum/template/template.c +++ b/quantum/template/template.c @@ -1,29 +1,48 @@ #include "%KEYBOARD%.h" __attribute__ ((weak)) -void * matrix_init_user(void) { - // leave these blank +void matrix_init_user(void) { + // leave this function blank - it can be defined in a keymap file }; __attribute__ ((weak)) -void * matrix_scan_user(void) { - // leave these blank -}; +void matrix_scan_user(void) { + // leave this function blank - it can be defined in a keymap file +} -void * matrix_init_kb(void) { +__attribute__ ((weak)) +void process_action_user(keyrecord_t *record) { + // leave this function blank - it can be defined in a keymap file +} + +__attribute__ ((weak)) +void led_set_user(uint8_t usb_led) { + // leave this function blank - it can be defined in a keymap file +} + +void matrix_init_kb(void) { // put your keyboard start-up code here // runs once when the firmware starts up - if (matrix_init_user) { - (*matrix_init_user)(); - } -}; + matrix_init_user(); +} -void * matrix_scan_kb(void) { +void matrix_scan_kb(void) { // put your looping keyboard code here // runs every cycle (a lot) - if (matrix_scan_user) { - (*matrix_scan_user)(); - } -}; \ No newline at end of file + matrix_scan_user(); +} + +void process_action_kb(keyrecord_t *record) { + // put your per-action keyboard code here + // runs for every action, just before processing by the firmware + + process_action_user(record); +} + +void led_set_kb(uint8_t usb_led) { + // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here + + led_set_user(usb_led); +} diff --git a/quantum/template/template.h b/quantum/template/template.h index de3edf3242..b1c34d3cbe 100644 --- a/quantum/template/template.h +++ b/quantum/template/template.h @@ -11,19 +11,17 @@ // The first section contains all of the arguements // The second converts the arguments into a two-dimensional array #define KEYMAP( \ - k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \ - k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \ - k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \ - k30, k31, k32, k33, k34, k35, k37, k38, k39, k3a, k3b \ + k00, k01, k02, \ + k10, k11 \ ) \ { \ - { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b }, \ - { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b }, \ - { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b }, \ - { k30, k31, k32, k33, k34, k35, k35, k37, k38, k39, k3a, k3b } \ -} + { k00, k01, k02 }, \ + { k10, KC_NO, k11 }, \ +} -void * matrix_init_user(void); -void * matrix_scan_user(void); +void matrix_init_user(void); +void matrix_scan_user(void); +void process_action_user(keyrecord_t *record); +void led_set_user(uint8_t usb_led); -#endif \ No newline at end of file +#endif diff --git a/quantum/tools/README.md b/quantum/tools/README.md new file mode 100644 index 0000000000..0702144238 --- /dev/null +++ b/quantum/tools/README.md @@ -0,0 +1,6 @@ +`eeprom_reset.hex` is to reset the eeprom on the Atmega32u4, like this: + + dfu-programmer atmega32u4 erase + dfu-programmer atmega32u4 flash --eeprom eeprom-reset.bin + + 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 diff --git a/quantum/tools/eeprom_reset.hex b/quantum/tools/eeprom_reset.hex new file mode 100644 index 0000000000..a8a75389fe --- /dev/null +++ b/quantum/tools/eeprom_reset.hex @@ -0,0 +1,9 @@ +:10000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 +:10001000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0 +:10002000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0 +:10003000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD0 +:10004000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0 +:10005000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB0 +:10006000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA0 +:10007000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF90 +:00000001FF diff --git a/quantum/wave.h b/quantum/wave.h new file mode 100644 index 0000000000..6ebc348519 --- /dev/null +++ b/quantum/wave.h @@ -0,0 +1,265 @@ +#include +#include +#include + +#define SINE_LENGTH 2048 + +const uint8_t sinewave[] PROGMEM= //2048 values +{ +0x80,0x80,0x80,0x81,0x81,0x81,0x82,0x82, +0x83,0x83,0x83,0x84,0x84,0x85,0x85,0x85, +0x86,0x86,0x87,0x87,0x87,0x88,0x88,0x88, +0x89,0x89,0x8a,0x8a,0x8a,0x8b,0x8b,0x8c, +0x8c,0x8c,0x8d,0x8d,0x8e,0x8e,0x8e,0x8f, +0x8f,0x8f,0x90,0x90,0x91,0x91,0x91,0x92, +0x92,0x93,0x93,0x93,0x94,0x94,0x95,0x95, +0x95,0x96,0x96,0x96,0x97,0x97,0x98,0x98, +0x98,0x99,0x99,0x9a,0x9a,0x9a,0x9b,0x9b, +0x9b,0x9c,0x9c,0x9d,0x9d,0x9d,0x9e,0x9e, +0x9e,0x9f,0x9f,0xa0,0xa0,0xa0,0xa1,0xa1, +0xa2,0xa2,0xa2,0xa3,0xa3,0xa3,0xa4,0xa4, +0xa5,0xa5,0xa5,0xa6,0xa6,0xa6,0xa7,0xa7, +0xa7,0xa8,0xa8,0xa9,0xa9,0xa9,0xaa,0xaa, +0xaa,0xab,0xab,0xac,0xac,0xac,0xad,0xad, +0xad,0xae,0xae,0xae,0xaf,0xaf,0xb0,0xb0, +0xb0,0xb1,0xb1,0xb1,0xb2,0xb2,0xb2,0xb3, +0xb3,0xb4,0xb4,0xb4,0xb5,0xb5,0xb5,0xb6, +0xb6,0xb6,0xb7,0xb7,0xb7,0xb8,0xb8,0xb8, +0xb9,0xb9,0xba,0xba,0xba,0xbb,0xbb,0xbb, +0xbc,0xbc,0xbc,0xbd,0xbd,0xbd,0xbe,0xbe, +0xbe,0xbf,0xbf,0xbf,0xc0,0xc0,0xc0,0xc1, +0xc1,0xc1,0xc2,0xc2,0xc2,0xc3,0xc3,0xc3, +0xc4,0xc4,0xc4,0xc5,0xc5,0xc5,0xc6,0xc6, +0xc6,0xc7,0xc7,0xc7,0xc8,0xc8,0xc8,0xc9, +0xc9,0xc9,0xca,0xca,0xca,0xcb,0xcb,0xcb, +0xcb,0xcc,0xcc,0xcc,0xcd,0xcd,0xcd,0xce, +0xce,0xce,0xcf,0xcf,0xcf,0xcf,0xd0,0xd0, +0xd0,0xd1,0xd1,0xd1,0xd2,0xd2,0xd2,0xd2, +0xd3,0xd3,0xd3,0xd4,0xd4,0xd4,0xd5,0xd5, +0xd5,0xd5,0xd6,0xd6,0xd6,0xd7,0xd7,0xd7, +0xd7,0xd8,0xd8,0xd8,0xd9,0xd9,0xd9,0xd9, +0xda,0xda,0xda,0xda,0xdb,0xdb,0xdb,0xdc, +0xdc,0xdc,0xdc,0xdd,0xdd,0xdd,0xdd,0xde, +0xde,0xde,0xde,0xdf,0xdf,0xdf,0xe0,0xe0, +0xe0,0xe0,0xe1,0xe1,0xe1,0xe1,0xe2,0xe2, +0xe2,0xe2,0xe3,0xe3,0xe3,0xe3,0xe4,0xe4, +0xe4,0xe4,0xe4,0xe5,0xe5,0xe5,0xe5,0xe6, +0xe6,0xe6,0xe6,0xe7,0xe7,0xe7,0xe7,0xe8, +0xe8,0xe8,0xe8,0xe8,0xe9,0xe9,0xe9,0xe9, +0xea,0xea,0xea,0xea,0xea,0xeb,0xeb,0xeb, +0xeb,0xeb,0xec,0xec,0xec,0xec,0xec,0xed, +0xed,0xed,0xed,0xed,0xee,0xee,0xee,0xee, +0xee,0xef,0xef,0xef,0xef,0xef,0xf0,0xf0, +0xf0,0xf0,0xf0,0xf0,0xf1,0xf1,0xf1,0xf1, +0xf1,0xf2,0xf2,0xf2,0xf2,0xf2,0xf2,0xf3, +0xf3,0xf3,0xf3,0xf3,0xf3,0xf4,0xf4,0xf4, +0xf4,0xf4,0xf4,0xf5,0xf5,0xf5,0xf5,0xf5, +0xf5,0xf5,0xf6,0xf6,0xf6,0xf6,0xf6,0xf6, +0xf6,0xf7,0xf7,0xf7,0xf7,0xf7,0xf7,0xf7, +0xf8,0xf8,0xf8,0xf8,0xf8,0xf8,0xf8,0xf8, +0xf9,0xf9,0xf9,0xf9,0xf9,0xf9,0xf9,0xf9, +0xfa,0xfa,0xfa,0xfa,0xfa,0xfa,0xfa,0xfa, +0xfa,0xfa,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb, +0xfb,0xfb,0xfb,0xfb,0xfc,0xfc,0xfc,0xfc, +0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc, +0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,0xfd, +0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,0xfe,0xfe, +0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe, +0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe, +0xfe,0xfe,0xfe,0xfe,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +0xff,0xff,0xff,0xff,0xff,0xfe,0xfe,0xfe, +0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe, +0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe, +0xfe,0xfe,0xfe,0xfd,0xfd,0xfd,0xfd,0xfd, +0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,0xfd, +0xfd,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc, +0xfc,0xfc,0xfc,0xfc,0xfc,0xfb,0xfb,0xfb, +0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfa, +0xfa,0xfa,0xfa,0xfa,0xfa,0xfa,0xfa,0xfa, +0xfa,0xf9,0xf9,0xf9,0xf9,0xf9,0xf9,0xf9, +0xf9,0xf8,0xf8,0xf8,0xf8,0xf8,0xf8,0xf8, +0xf8,0xf7,0xf7,0xf7,0xf7,0xf7,0xf7,0xf7, +0xf6,0xf6,0xf6,0xf6,0xf6,0xf6,0xf6,0xf5, +0xf5,0xf5,0xf5,0xf5,0xf5,0xf5,0xf4,0xf4, +0xf4,0xf4,0xf4,0xf4,0xf3,0xf3,0xf3,0xf3, +0xf3,0xf3,0xf2,0xf2,0xf2,0xf2,0xf2,0xf2, +0xf1,0xf1,0xf1,0xf1,0xf1,0xf0,0xf0,0xf0, +0xf0,0xf0,0xf0,0xef,0xef,0xef,0xef,0xef, +0xee,0xee,0xee,0xee,0xee,0xed,0xed,0xed, +0xed,0xed,0xec,0xec,0xec,0xec,0xec,0xeb, +0xeb,0xeb,0xeb,0xeb,0xea,0xea,0xea,0xea, +0xea,0xe9,0xe9,0xe9,0xe9,0xe8,0xe8,0xe8, +0xe8,0xe8,0xe7,0xe7,0xe7,0xe7,0xe6,0xe6, +0xe6,0xe6,0xe5,0xe5,0xe5,0xe5,0xe4,0xe4, +0xe4,0xe4,0xe4,0xe3,0xe3,0xe3,0xe3,0xe2, +0xe2,0xe2,0xe2,0xe1,0xe1,0xe1,0xe1,0xe0, +0xe0,0xe0,0xe0,0xdf,0xdf,0xdf,0xde,0xde, +0xde,0xde,0xdd,0xdd,0xdd,0xdd,0xdc,0xdc, +0xdc,0xdc,0xdb,0xdb,0xdb,0xda,0xda,0xda, +0xda,0xd9,0xd9,0xd9,0xd9,0xd8,0xd8,0xd8, +0xd7,0xd7,0xd7,0xd7,0xd6,0xd6,0xd6,0xd5, +0xd5,0xd5,0xd5,0xd4,0xd4,0xd4,0xd3,0xd3, +0xd3,0xd2,0xd2,0xd2,0xd2,0xd1,0xd1,0xd1, +0xd0,0xd0,0xd0,0xcf,0xcf,0xcf,0xcf,0xce, +0xce,0xce,0xcd,0xcd,0xcd,0xcc,0xcc,0xcc, +0xcb,0xcb,0xcb,0xcb,0xca,0xca,0xca,0xc9, +0xc9,0xc9,0xc8,0xc8,0xc8,0xc7,0xc7,0xc7, +0xc6,0xc6,0xc6,0xc5,0xc5,0xc5,0xc4,0xc4, +0xc4,0xc3,0xc3,0xc3,0xc2,0xc2,0xc2,0xc1, +0xc1,0xc1,0xc0,0xc0,0xc0,0xbf,0xbf,0xbf, +0xbe,0xbe,0xbe,0xbd,0xbd,0xbd,0xbc,0xbc, +0xbc,0xbb,0xbb,0xbb,0xba,0xba,0xba,0xb9, +0xb9,0xb8,0xb8,0xb8,0xb7,0xb7,0xb7,0xb6, +0xb6,0xb6,0xb5,0xb5,0xb5,0xb4,0xb4,0xb4, +0xb3,0xb3,0xb2,0xb2,0xb2,0xb1,0xb1,0xb1, +0xb0,0xb0,0xb0,0xaf,0xaf,0xae,0xae,0xae, +0xad,0xad,0xad,0xac,0xac,0xac,0xab,0xab, +0xaa,0xaa,0xaa,0xa9,0xa9,0xa9,0xa8,0xa8, +0xa7,0xa7,0xa7,0xa6,0xa6,0xa6,0xa5,0xa5, +0xa5,0xa4,0xa4,0xa3,0xa3,0xa3,0xa2,0xa2, +0xa2,0xa1,0xa1,0xa0,0xa0,0xa0,0x9f,0x9f, +0x9e,0x9e,0x9e,0x9d,0x9d,0x9d,0x9c,0x9c, +0x9b,0x9b,0x9b,0x9a,0x9a,0x9a,0x99,0x99, +0x98,0x98,0x98,0x97,0x97,0x96,0x96,0x96, +0x95,0x95,0x95,0x94,0x94,0x93,0x93,0x93, +0x92,0x92,0x91,0x91,0x91,0x90,0x90,0x8f, +0x8f,0x8f,0x8e,0x8e,0x8e,0x8d,0x8d,0x8c, +0x8c,0x8c,0x8b,0x8b,0x8a,0x8a,0x8a,0x89, +0x89,0x88,0x88,0x88,0x87,0x87,0x87,0x86, +0x86,0x85,0x85,0x85,0x84,0x84,0x83,0x83, +0x83,0x82,0x82,0x81,0x81,0x81,0x80,0x80, +0x80,0x7f,0x7f,0x7e,0x7e,0x7e,0x7d,0x7d, +0x7c,0x7c,0x7c,0x7b,0x7b,0x7a,0x7a,0x7a, +0x79,0x79,0x78,0x78,0x78,0x77,0x77,0x77, +0x76,0x76,0x75,0x75,0x75,0x74,0x74,0x73, +0x73,0x73,0x72,0x72,0x71,0x71,0x71,0x70, +0x70,0x70,0x6f,0x6f,0x6e,0x6e,0x6e,0x6d, +0x6d,0x6c,0x6c,0x6c,0x6b,0x6b,0x6a,0x6a, +0x6a,0x69,0x69,0x69,0x68,0x68,0x67,0x67, +0x67,0x66,0x66,0x65,0x65,0x65,0x64,0x64, +0x64,0x63,0x63,0x62,0x62,0x62,0x61,0x61, +0x61,0x60,0x60,0x5f,0x5f,0x5f,0x5e,0x5e, +0x5d,0x5d,0x5d,0x5c,0x5c,0x5c,0x5b,0x5b, +0x5a,0x5a,0x5a,0x59,0x59,0x59,0x58,0x58, +0x58,0x57,0x57,0x56,0x56,0x56,0x55,0x55, +0x55,0x54,0x54,0x53,0x53,0x53,0x52,0x52, +0x52,0x51,0x51,0x51,0x50,0x50,0x4f,0x4f, +0x4f,0x4e,0x4e,0x4e,0x4d,0x4d,0x4d,0x4c, +0x4c,0x4b,0x4b,0x4b,0x4a,0x4a,0x4a,0x49, +0x49,0x49,0x48,0x48,0x48,0x47,0x47,0x47, +0x46,0x46,0x45,0x45,0x45,0x44,0x44,0x44, +0x43,0x43,0x43,0x42,0x42,0x42,0x41,0x41, +0x41,0x40,0x40,0x40,0x3f,0x3f,0x3f,0x3e, +0x3e,0x3e,0x3d,0x3d,0x3d,0x3c,0x3c,0x3c, +0x3b,0x3b,0x3b,0x3a,0x3a,0x3a,0x39,0x39, +0x39,0x38,0x38,0x38,0x37,0x37,0x37,0x36, +0x36,0x36,0x35,0x35,0x35,0x34,0x34,0x34, +0x34,0x33,0x33,0x33,0x32,0x32,0x32,0x31, +0x31,0x31,0x30,0x30,0x30,0x30,0x2f,0x2f, +0x2f,0x2e,0x2e,0x2e,0x2d,0x2d,0x2d,0x2d, +0x2c,0x2c,0x2c,0x2b,0x2b,0x2b,0x2a,0x2a, +0x2a,0x2a,0x29,0x29,0x29,0x28,0x28,0x28, +0x28,0x27,0x27,0x27,0x26,0x26,0x26,0x26, +0x25,0x25,0x25,0x25,0x24,0x24,0x24,0x23, +0x23,0x23,0x23,0x22,0x22,0x22,0x22,0x21, +0x21,0x21,0x21,0x20,0x20,0x20,0x1f,0x1f, +0x1f,0x1f,0x1e,0x1e,0x1e,0x1e,0x1d,0x1d, +0x1d,0x1d,0x1c,0x1c,0x1c,0x1c,0x1b,0x1b, +0x1b,0x1b,0x1b,0x1a,0x1a,0x1a,0x1a,0x19, +0x19,0x19,0x19,0x18,0x18,0x18,0x18,0x17, +0x17,0x17,0x17,0x17,0x16,0x16,0x16,0x16, +0x15,0x15,0x15,0x15,0x15,0x14,0x14,0x14, +0x14,0x14,0x13,0x13,0x13,0x13,0x13,0x12, +0x12,0x12,0x12,0x12,0x11,0x11,0x11,0x11, +0x11,0x10,0x10,0x10,0x10,0x10,0xf,0xf, +0xf,0xf,0xf,0xf,0xe,0xe,0xe,0xe, +0xe,0xd,0xd,0xd,0xd,0xd,0xd,0xc, +0xc,0xc,0xc,0xc,0xc,0xb,0xb,0xb, +0xb,0xb,0xb,0xa,0xa,0xa,0xa,0xa, +0xa,0xa,0x9,0x9,0x9,0x9,0x9,0x9, +0x9,0x8,0x8,0x8,0x8,0x8,0x8,0x8, +0x7,0x7,0x7,0x7,0x7,0x7,0x7,0x7, +0x6,0x6,0x6,0x6,0x6,0x6,0x6,0x6, +0x5,0x5,0x5,0x5,0x5,0x5,0x5,0x5, +0x5,0x5,0x4,0x4,0x4,0x4,0x4,0x4, +0x4,0x4,0x4,0x4,0x3,0x3,0x3,0x3, +0x3,0x3,0x3,0x3,0x3,0x3,0x3,0x3, +0x2,0x2,0x2,0x2,0x2,0x2,0x2,0x2, +0x2,0x2,0x2,0x2,0x2,0x2,0x1,0x1, +0x1,0x1,0x1,0x1,0x1,0x1,0x1,0x1, +0x1,0x1,0x1,0x1,0x1,0x1,0x1,0x1, +0x1,0x1,0x1,0x1,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, +0x0,0x0,0x0,0x0,0x0,0x1,0x1,0x1, +0x1,0x1,0x1,0x1,0x1,0x1,0x1,0x1, +0x1,0x1,0x1,0x1,0x1,0x1,0x1,0x1, +0x1,0x1,0x1,0x2,0x2,0x2,0x2,0x2, +0x2,0x2,0x2,0x2,0x2,0x2,0x2,0x2, +0x2,0x3,0x3,0x3,0x3,0x3,0x3,0x3, +0x3,0x3,0x3,0x3,0x3,0x4,0x4,0x4, +0x4,0x4,0x4,0x4,0x4,0x4,0x4,0x5, +0x5,0x5,0x5,0x5,0x5,0x5,0x5,0x5, +0x5,0x6,0x6,0x6,0x6,0x6,0x6,0x6, +0x6,0x7,0x7,0x7,0x7,0x7,0x7,0x7, +0x7,0x8,0x8,0x8,0x8,0x8,0x8,0x8, +0x9,0x9,0x9,0x9,0x9,0x9,0x9,0xa, +0xa,0xa,0xa,0xa,0xa,0xa,0xb,0xb, +0xb,0xb,0xb,0xb,0xc,0xc,0xc,0xc, +0xc,0xc,0xd,0xd,0xd,0xd,0xd,0xd, +0xe,0xe,0xe,0xe,0xe,0xf,0xf,0xf, +0xf,0xf,0xf,0x10,0x10,0x10,0x10,0x10, +0x11,0x11,0x11,0x11,0x11,0x12,0x12,0x12, +0x12,0x12,0x13,0x13,0x13,0x13,0x13,0x14, +0x14,0x14,0x14,0x14,0x15,0x15,0x15,0x15, +0x15,0x16,0x16,0x16,0x16,0x17,0x17,0x17, +0x17,0x17,0x18,0x18,0x18,0x18,0x19,0x19, +0x19,0x19,0x1a,0x1a,0x1a,0x1a,0x1b,0x1b, +0x1b,0x1b,0x1b,0x1c,0x1c,0x1c,0x1c,0x1d, +0x1d,0x1d,0x1d,0x1e,0x1e,0x1e,0x1e,0x1f, +0x1f,0x1f,0x1f,0x20,0x20,0x20,0x21,0x21, +0x21,0x21,0x22,0x22,0x22,0x22,0x23,0x23, +0x23,0x23,0x24,0x24,0x24,0x25,0x25,0x25, +0x25,0x26,0x26,0x26,0x26,0x27,0x27,0x27, +0x28,0x28,0x28,0x28,0x29,0x29,0x29,0x2a, +0x2a,0x2a,0x2a,0x2b,0x2b,0x2b,0x2c,0x2c, +0x2c,0x2d,0x2d,0x2d,0x2d,0x2e,0x2e,0x2e, +0x2f,0x2f,0x2f,0x30,0x30,0x30,0x30,0x31, +0x31,0x31,0x32,0x32,0x32,0x33,0x33,0x33, +0x34,0x34,0x34,0x34,0x35,0x35,0x35,0x36, +0x36,0x36,0x37,0x37,0x37,0x38,0x38,0x38, +0x39,0x39,0x39,0x3a,0x3a,0x3a,0x3b,0x3b, +0x3b,0x3c,0x3c,0x3c,0x3d,0x3d,0x3d,0x3e, +0x3e,0x3e,0x3f,0x3f,0x3f,0x40,0x40,0x40, +0x41,0x41,0x41,0x42,0x42,0x42,0x43,0x43, +0x43,0x44,0x44,0x44,0x45,0x45,0x45,0x46, +0x46,0x47,0x47,0x47,0x48,0x48,0x48,0x49, +0x49,0x49,0x4a,0x4a,0x4a,0x4b,0x4b,0x4b, +0x4c,0x4c,0x4d,0x4d,0x4d,0x4e,0x4e,0x4e, +0x4f,0x4f,0x4f,0x50,0x50,0x51,0x51,0x51, +0x52,0x52,0x52,0x53,0x53,0x53,0x54,0x54, +0x55,0x55,0x55,0x56,0x56,0x56,0x57,0x57, +0x58,0x58,0x58,0x59,0x59,0x59,0x5a,0x5a, +0x5a,0x5b,0x5b,0x5c,0x5c,0x5c,0x5d,0x5d, +0x5d,0x5e,0x5e,0x5f,0x5f,0x5f,0x60,0x60, +0x61,0x61,0x61,0x62,0x62,0x62,0x63,0x63, +0x64,0x64,0x64,0x65,0x65,0x65,0x66,0x66, +0x67,0x67,0x67,0x68,0x68,0x69,0x69,0x69, +0x6a,0x6a,0x6a,0x6b,0x6b,0x6c,0x6c,0x6c, +0x6d,0x6d,0x6e,0x6e,0x6e,0x6f,0x6f,0x70, +0x70,0x70,0x71,0x71,0x71,0x72,0x72,0x73, +0x73,0x73,0x74,0x74,0x75,0x75,0x75,0x76, +0x76,0x77,0x77,0x77,0x78,0x78,0x78,0x79, +0x79,0x7a,0x7a,0x7a,0x7b,0x7b,0x7c,0x7c, +0x7c,0x7d,0x7d,0x7e,0x7e,0x7e,0x7f,0x7f +}; \ No newline at end of file diff --git a/teensy-sdk b/teensy-sdk deleted file mode 160000 index 19892c1968..0000000000 --- a/teensy-sdk +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 19892c196894e6676fa69c732e05a03a68d5cb07 diff --git a/tmk_core/common.mk b/tmk_core/common.mk index edbcc282a5..f8006c6708 100644 --- a/tmk_core/common.mk +++ b/tmk_core/common.mk @@ -17,63 +17,67 @@ SRC += $(COMMON_DIR)/host.c \ # Option modules -ifdef BOOTMAGIC_ENABLE +ifeq ($(strip $(BOOTMAGIC_ENABLE)), yes) SRC += $(COMMON_DIR)/bootmagic.c SRC += $(COMMON_DIR)/avr/eeconfig.c OPT_DEFS += -DBOOTMAGIC_ENABLE endif -ifdef MOUSEKEY_ENABLE +ifeq ($(strip $(MOUSEKEY_ENABLE)), yes) SRC += $(COMMON_DIR)/mousekey.c OPT_DEFS += -DMOUSEKEY_ENABLE OPT_DEFS += -DMOUSE_ENABLE endif -ifdef EXTRAKEY_ENABLE +ifeq ($(strip $(EXTRAKEY_ENABLE)), yes) OPT_DEFS += -DEXTRAKEY_ENABLE endif -ifdef CONSOLE_ENABLE +ifeq ($(strip $(CONSOLE_ENABLE)), yes) OPT_DEFS += -DCONSOLE_ENABLE else OPT_DEFS += -DNO_PRINT OPT_DEFS += -DNO_DEBUG endif -ifdef COMMAND_ENABLE +ifeq ($(strip $(COMMAND_ENABLE)), yes) SRC += $(COMMON_DIR)/command.c OPT_DEFS += -DCOMMAND_ENABLE endif -ifdef NKRO_ENABLE +ifeq ($(strip $(NKRO_ENABLE)), yes) OPT_DEFS += -DNKRO_ENABLE endif -ifdef MIDI_ENABLE +ifeq ($(strip $(MIDI_ENABLE)), yes) OPT_DEFS += -DMIDI_ENABLE endif +ifeq ($(strip $(AUDIO_ENABLE)), yes) + OPT_DEFS += -DAUDIO_ENABLE +endif -ifdef USB_6KRO_ENABLE +ifeq ($(strip $(USB_6KRO_ENABLE)), yes) OPT_DEFS += -DUSB_6KRO_ENABLE endif -ifdef SLEEP_LED_ENABLE +ifeq ($(strip $(SLEEP_LED_ENABLE)), yes) SRC += $(COMMON_DIR)/sleep_led.c OPT_DEFS += -DSLEEP_LED_ENABLE OPT_DEFS += -DNO_SUSPEND_POWER_DOWN endif -ifdef BACKLIGHT_ENABLE +ifeq ($(strip $(BACKLIGHT_ENABLE)), yes) SRC += $(COMMON_DIR)/backlight.c + SRC += $(COMMON_DIR)/avr/eeconfig.c OPT_DEFS += -DBACKLIGHT_ENABLE endif -ifdef BLUETOOTH_ENABLE +ifeq ($(strip $(BLUETOOTH_ENABLE)), yes) OPT_DEFS += -DBLUETOOTH_ENABLE endif -ifdef KEYMAP_SECTION_ENABLE +ifeq ($(strip $(KEYMAP_SECTION_ENABLE)), yes) OPT_DEFS += -DKEYMAP_SECTION_ENABLE ifeq ($(strip $(MCU)),atmega32u2) diff --git a/tmk_core/common/action.c b/tmk_core/common/action.c index 77ea39e942..f9e6c17dc3 100644 --- a/tmk_core/common/action.c +++ b/tmk_core/common/action.c @@ -53,6 +53,25 @@ void action_exec(keyevent_t event) #endif } +#if !defined(NO_ACTION_LAYER) && defined(PREVENT_STUCK_MODIFIERS) +bool disable_action_cache = false; + +void process_action_nocache(keyrecord_t *record) +{ + disable_action_cache = true; + process_action(record); + disable_action_cache = false; +} +#else +void process_action_nocache(keyrecord_t *record) +{ + process_action(record); +} +#endif + +__attribute__ ((weak)) +void process_action_kb(keyrecord_t *record) {} + void process_action(keyrecord_t *record) { keyevent_t event = record->event; @@ -62,7 +81,9 @@ void process_action(keyrecord_t *record) if (IS_NOEVENT(event)) { return; } - action_t action = layer_switch_get_action(event.key); + process_action_kb(record); + + action_t action = store_or_get_action(event.pressed, event.key); dprint("ACTION: "); debug_action(action); #ifndef NO_ACTION_LAYER dprint(" layer_state: "); layer_debug(); @@ -70,6 +91,10 @@ void process_action(keyrecord_t *record) #endif dprintln(); + if (event.pressed) { + // clear the potential weak mods left by previously pressed keys + clear_weak_mods(); + } switch (action.kind.id) { /* Key and Mods */ case ACT_LMODS: @@ -79,14 +104,24 @@ void process_action(keyrecord_t *record) action.key.mods<<4; if (event.pressed) { if (mods) { - add_weak_mods(mods); + if (IS_MOD(action.key.code)) { + // e.g. LSFT(KC_LGUI): we don't want the LSFT to be weak as it would make it useless. + // this also makes LSFT(KC_LGUI) behave exactly the same as LGUI(KC_LSFT) + add_mods(mods); + } else { + add_weak_mods(mods); + } send_keyboard_report(); } register_code(action.key.code); } else { unregister_code(action.key.code); if (mods) { - del_weak_mods(mods); + if (IS_MOD(action.key.code)) { + del_mods(mods); + } else { + del_weak_mods(mods); + } send_keyboard_report(); } } @@ -500,6 +535,7 @@ void clear_keyboard(void) void clear_keyboard_but_mods(void) { clear_weak_mods(); + clear_macro_mods(); clear_keys(); send_keyboard_report(); #ifdef MOUSEKEY_ENABLE diff --git a/tmk_core/common/action.h b/tmk_core/common/action.h index 8a4736d7bc..44ec3047ba 100644 --- a/tmk_core/common/action.h +++ b/tmk_core/common/action.h @@ -58,7 +58,14 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt); /* user defined special function */ void action_function(keyrecord_t *record, uint8_t id, uint8_t opt); +/* keyboard-specific key event (pre)processing */ +void process_action_kb(keyrecord_t *record); + /* Utilities for actions. */ +#if !defined(NO_ACTION_LAYER) && defined(PREVENT_STUCK_MODIFIERS) +extern bool disable_action_cache; +#endif +void process_action_nocache(keyrecord_t *record); void process_action(keyrecord_t *record); void register_code(uint8_t code); void unregister_code(uint8_t code); diff --git a/tmk_core/common/action_code.h b/tmk_core/common/action_code.h index 4fe9c1d581..2b0b0b077e 100644 --- a/tmk_core/common/action_code.h +++ b/tmk_core/common/action_code.h @@ -301,7 +301,7 @@ enum backlight_opt { #define ACTION_BACKLIGHT_DECREASE() ACTION(ACT_BACKLIGHT, BACKLIGHT_DECREASE << 8) #define ACTION_BACKLIGHT_TOGGLE() ACTION(ACT_BACKLIGHT, BACKLIGHT_TOGGLE << 8) #define ACTION_BACKLIGHT_STEP() ACTION(ACT_BACKLIGHT, BACKLIGHT_STEP << 8) -#define ACTION_BACKLIGHT_LEVEL(level) ACTION(ACT_BACKLIGHT, BACKLIGHT_LEVEL << 8 | level) +#define ACTION_BACKLIGHT_LEVEL(level) ACTION(ACT_BACKLIGHT, BACKLIGHT_LEVEL << 8 | (level)) /* Command */ #define ACTION_COMMAND(id, opt) ACTION(ACT_COMMAND, (opt)<<8 | (addr)) /* Function */ diff --git a/tmk_core/common/action_layer.c b/tmk_core/common/action_layer.c index c535615f44..e817c0d515 100644 --- a/tmk_core/common/action_layer.c +++ b/tmk_core/common/action_layer.c @@ -110,9 +110,71 @@ void layer_debug(void) } #endif +#if !defined(NO_ACTION_LAYER) && defined(PREVENT_STUCK_MODIFIERS) +uint8_t source_layers_cache[(MATRIX_ROWS * MATRIX_COLS + 7) / 8][MAX_LAYER_BITS] = {0}; + +void update_source_layers_cache(keypos_t key, uint8_t layer) +{ + const uint8_t key_number = key.col + (key.row * MATRIX_COLS); + const uint8_t storage_row = key_number / 8; + const uint8_t storage_bit = key_number % 8; + + for (uint8_t bit_number = 0; bit_number < MAX_LAYER_BITS; bit_number++) { + source_layers_cache[storage_row][bit_number] ^= + (-((layer & (1U << bit_number)) != 0) + ^ source_layers_cache[storage_row][bit_number]) + & (1U << storage_bit); + } +} + +uint8_t read_source_layers_cache(keypos_t key) +{ + const uint8_t key_number = key.col + (key.row * MATRIX_COLS); + const uint8_t storage_row = key_number / 8; + const uint8_t storage_bit = key_number % 8; + uint8_t layer = 0; + + for (uint8_t bit_number = 0; bit_number < MAX_LAYER_BITS; bit_number++) { + layer |= + ((source_layers_cache[storage_row][bit_number] + & (1U << storage_bit)) != 0) + << bit_number; + } + + return layer; +} +#endif + +/* + * Make sure the action triggered when the key is released is the same + * one as the one triggered on press. It's important for the mod keys + * when the layer is switched after the down event but before the up + * event as they may get stuck otherwise. + */ +action_t store_or_get_action(bool pressed, keypos_t key) +{ +#if !defined(NO_ACTION_LAYER) && defined(PREVENT_STUCK_MODIFIERS) + if (disable_action_cache) { + return layer_switch_get_action(key); + } + + uint8_t layer; + + if (pressed) { + layer = layer_switch_get_layer(key); + update_source_layers_cache(key, layer); + } + else { + layer = read_source_layers_cache(key); + } + return action_for_key(layer, key); +#else + return layer_switch_get_action(key); +#endif +} -action_t layer_switch_get_action(keypos_t key) +int8_t layer_switch_get_layer(keypos_t key) { action_t action; action.code = ACTION_TRANSPARENT; @@ -124,15 +186,18 @@ action_t layer_switch_get_action(keypos_t key) if (layers & (1UL<mods = real_mods; keyboard_report->mods |= weak_mods; + keyboard_report->mods |= macro_mods; #ifndef NO_ACTION_ONESHOT if (oneshot_mods) { #if (defined(ONESHOT_TIMEOUT) && (ONESHOT_TIMEOUT > 0)) @@ -118,6 +120,13 @@ void del_weak_mods(uint8_t mods) { weak_mods &= ~mods; } void set_weak_mods(uint8_t mods) { weak_mods = mods; } void clear_weak_mods(void) { weak_mods = 0; } +/* macro modifier */ +uint8_t get_macro_mods(void) { return macro_mods; } +void add_macro_mods(uint8_t mods) { macro_mods |= mods; } +void del_macro_mods(uint8_t mods) { macro_mods &= ~mods; } +void set_macro_mods(uint8_t mods) { macro_mods = mods; } +void clear_macro_mods(void) { macro_mods = 0; } + /* Oneshot modifier */ #ifndef NO_ACTION_ONESHOT void set_oneshot_mods(uint8_t mods) diff --git a/tmk_core/common/action_util.h b/tmk_core/common/action_util.h index a955638b46..1a95cec10e 100644 --- a/tmk_core/common/action_util.h +++ b/tmk_core/common/action_util.h @@ -47,6 +47,13 @@ void del_weak_mods(uint8_t mods); void set_weak_mods(uint8_t mods); void clear_weak_mods(void); +/* macro modifier */ +uint8_t get_macro_mods(void); +void add_macro_mods(uint8_t mods); +void del_macro_mods(uint8_t mods); +void set_macro_mods(uint8_t mods); +void clear_macro_mods(void); + /* oneshot modifier */ void set_oneshot_mods(uint8_t mods); void clear_oneshot_mods(void); diff --git a/tmk_core/common/avr/eeconfig.c b/tmk_core/common/avr/eeconfig.c index 5bd47dc6ad..25bb9e849c 100644 --- a/tmk_core/common/avr/eeconfig.c +++ b/tmk_core/common/avr/eeconfig.c @@ -13,6 +13,9 @@ void eeconfig_init(void) #ifdef BACKLIGHT_ENABLE eeprom_write_byte(EECONFIG_BACKLIGHT, 0); #endif +#ifdef AUDIO_ENABLE + eeprom_write_byte(EECONFIG_AUDIO, 0xFF); // On by default +#endif } void eeconfig_enable(void) @@ -43,3 +46,8 @@ void eeconfig_write_keymap(uint8_t val) { eeprom_write_byte(EECONFIG_KEYMAP, val uint8_t eeconfig_read_backlight(void) { return eeprom_read_byte(EECONFIG_BACKLIGHT); } void eeconfig_write_backlight(uint8_t val) { eeprom_write_byte(EECONFIG_BACKLIGHT, val); } #endif + +#ifdef AUDIO_ENABLE +uint8_t eeconfig_read_audio(void) { return eeprom_read_byte(EECONFIG_AUDIO); } +void eeconfig_write_audio(uint8_t val) { eeprom_write_byte(EECONFIG_AUDIO, val); } +#endif \ No newline at end of file diff --git a/tmk_core/common/avr/suspend.c b/tmk_core/common/avr/suspend.c index af99f52b5e..c07c2801d5 100644 --- a/tmk_core/common/avr/suspend.c +++ b/tmk_core/common/avr/suspend.c @@ -8,6 +8,7 @@ #include "suspend_avr.h" #include "suspend.h" #include "timer.h" +#include "led.h" #ifdef PROTOCOL_LUFA #include "lufa.h" #endif @@ -64,6 +65,13 @@ static void power_down(uint8_t wdto) // Watchdog Interrupt Mode wdt_intr_enable(wdto); +#ifdef BACKLIGHT_ENABLE + backlight_set(0); +#endif + + // Turn off LED indicators + led_set(0); + // TODO: more power saving // See PicoPower application note // - I/O port input with pullup @@ -89,6 +97,9 @@ __attribute__ ((weak)) void matrix_power_up(void) {} __attribute__ ((weak)) void matrix_power_down(void) {} bool suspend_wakeup_condition(void) { +#ifdef BACKLIGHT_ENABLE + backlight_set(0); +#endif matrix_power_up(); matrix_scan(); matrix_power_down(); @@ -104,8 +115,10 @@ void suspend_wakeup_init(void) // clear keyboard state clear_keyboard(); #ifdef BACKLIGHT_ENABLE + backlight_set(0); backlight_init(); #endif +led_set(host_keyboard_leds()); } #ifndef NO_SUSPEND_POWER_DOWN @@ -122,3 +135,4 @@ ISR(WDT_vect) } } #endif + diff --git a/tmk_core/common/command.c b/tmk_core/common/command.c index d59bb01bbc..b4cd3ca56b 100644 --- a/tmk_core/common/command.c +++ b/tmk_core/common/command.c @@ -52,6 +52,8 @@ along with this program. If not, see . static bool command_common(uint8_t code); static void command_common_help(void); +static void print_version(void); +static void print_status(void); static bool command_console(uint8_t code); static void command_console_help(void); #ifdef MOUSEKEY_ENABLE @@ -112,35 +114,140 @@ bool command_console_extra(uint8_t code) ***********************************************************/ static void command_common_help(void) { - print("\n\t- Magic -\n" - "d: debug\n" - "x: debug matrix\n" - "k: debug keyboard\n" - "m: debug mouse\n" - "v: version\n" - "s: status\n" - "c: console mode\n" - "0-4: layer0-4(F10-F4)\n" - "Paus: bootloader\n" + print( "\n\t- Magic -\n" + STR(MAGIC_KEY_DEBUG ) ": Debug Message Toggle\n" + STR(MAGIC_KEY_DEBUG_MATRIX) ": Matrix Debug Mode Toggle - Show keypresses in matrix grid\n" + STR(MAGIC_KEY_DEBUG_KBD ) ": Keyboard Debug Toggle - Show keypress report\n" + STR(MAGIC_KEY_DEBUG_MOUSE ) ": Debug Mouse Toggle\n" + STR(MAGIC_KEY_VERSION ) ": Version\n" + STR(MAGIC_KEY_STATUS ) ": Status\n" + STR(MAGIC_KEY_CONSOLE ) ": Activate Console Mode\n" + +#if MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM + STR(MAGIC_KEY_LAYER0 ) ": Switch to Layer 0\n" + STR(MAGIC_KEY_LAYER1 ) ": Switch to Layer 1\n" + STR(MAGIC_KEY_LAYER2 ) ": Switch to Layer 2\n" + STR(MAGIC_KEY_LAYER3 ) ": Switch to Layer 3\n" + STR(MAGIC_KEY_LAYER4 ) ": Switch to Layer 4\n" + STR(MAGIC_KEY_LAYER5 ) ": Switch to Layer 5\n" + STR(MAGIC_KEY_LAYER6 ) ": Switch to Layer 6\n" + STR(MAGIC_KEY_LAYER7 ) ": Switch to Layer 7\n" + STR(MAGIC_KEY_LAYER8 ) ": Switch to Layer 8\n" + STR(MAGIC_KEY_LAYER9 ) ": Switch to Layer 9\n" +#endif + +#if MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS + "F1-F10: Switch to Layer 0-9 (F10 = L0)\n" +#endif + +#if MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS + "0-9: Switch to Layer 0-9\n" +#endif + + STR(MAGIC_KEY_LAYER0_ALT1 ) ": Switch to Layer 0 (alternate key 1)\n" + STR(MAGIC_KEY_LAYER0_ALT2 ) ": Switch to Layer 0 (alternate key 2)\n" + STR(MAGIC_KEY_BOOTLOADER ) ": Jump to Bootloader (Reset)\n" #ifdef KEYBOARD_LOCK_ENABLE - "Caps: Lock\n" + STR(MAGIC_KEY_LOCK ) ": Lock\n" #endif #ifdef BOOTMAGIC_ENABLE - "e: eeprom\n" + STR(MAGIC_KEY_EEPROM ) ": Print EEPROM Settings\n" #endif #ifdef NKRO_ENABLE - "n: NKRO\n" + STR(MAGIC_KEY_NKRO ) ": NKRO Toggle\n" #endif #ifdef SLEEP_LED_ENABLE - "z: sleep LED test\n" + STR(MAGIC_KEY_SLEEP_LED ) ": Sleep LED Test\n" #endif ); } +static void print_version(void) +{ + // print version & information + print("\n\t- Version -\n"); + print("DESC: " STR(DESCRIPTION) "\n"); + print("VID: " STR(VENDOR_ID) "(" STR(MANUFACTURER) ") " + "PID: " STR(PRODUCT_ID) "(" STR(PRODUCT) ") " + "VER: " STR(DEVICE_VER) "\n"); + print("BUILD: " STR(VERSION) " (" __TIME__ " " __DATE__ ")\n"); + + /* build options */ + print("OPTIONS:" + +#ifdef PROTOCOL_PJRC + " PJRC" +#endif +#ifdef PROTOCOL_LUFA + " LUFA" +#endif +#ifdef PROTOCOL_VUSB + " VUSB" +#endif +#ifdef BOOTMAGIC_ENABLE + " BOOTMAGIC" +#endif +#ifdef MOUSEKEY_ENABLE + " MOUSEKEY" +#endif +#ifdef EXTRAKEY_ENABLE + " EXTRAKEY" +#endif +#ifdef CONSOLE_ENABLE + " CONSOLE" +#endif +#ifdef COMMAND_ENABLE + " COMMAND" +#endif +#ifdef NKRO_ENABLE + " NKRO" +#endif +#ifdef KEYMAP_SECTION_ENABLE + " KEYMAP_SECTION" +#endif + + " " STR(BOOTLOADER_SIZE) "\n"); + + print("GCC: " STR(__GNUC__) "." STR(__GNUC_MINOR__) "." STR(__GNUC_PATCHLEVEL__) + " AVR-LIBC: " __AVR_LIBC_VERSION_STRING__ + " AVR_ARCH: avr" STR(__AVR_ARCH__) "\n"); + + return; +} + +static void print_status(void) +{ + + print("\n\t- Status -\n"); + + print_val_hex8(host_keyboard_leds()); + print_val_hex8(keyboard_protocol); + print_val_hex8(keyboard_idle); +#ifdef NKRO_ENABLE + print_val_hex8(keyboard_nkro); +#endif + print_val_hex32(timer_count); + +#ifdef PROTOCOL_PJRC + print_val_hex8(UDCON); + print_val_hex8(UDIEN); + print_val_hex8(UDINT); + print_val_hex8(usb_keyboard_leds); + print_val_hex8(usb_keyboard_idle_count); +#endif + +#ifdef PROTOCOL_PJRC +# if USB_COUNT_SOF + print_val_hex8(usbSofCount); +# endif +#endif + return; +} + #ifdef BOOTMAGIC_ENABLE static void print_eeconfig(void) { @@ -178,24 +285,36 @@ static void print_eeconfig(void) static bool command_common(uint8_t code) { + +#ifdef KEYBOARD_LOCK_ENABLE static host_driver_t *host_driver = 0; +#endif + switch (code) { + #ifdef SLEEP_LED_ENABLE - case KC_Z: - // test breathing sleep LED - print("Sleep LED test\n"); + + // test breathing sleep LED + case MAGIC_KC(MAGIC_KEY_SLEEP_LED): + print("Sleep LED Test\n"); sleep_led_toggle(); led_set(host_keyboard_leds()); break; #endif + #ifdef BOOTMAGIC_ENABLE - case KC_E: + + // print stored eeprom config + case MAGIC_KC(MAGIC_KEY_EEPROM): print("eeconfig:\n"); print_eeconfig(); break; #endif + #ifdef KEYBOARD_LOCK_ENABLE - case KC_CAPSLOCK: + + // lock/unlock keyboard + case MAGIC_KC(MAGIC_KEY_LOCK): if (host_get_driver()) { host_driver = host_get_driver(); clear_keyboard(); @@ -207,11 +326,15 @@ static bool command_common(uint8_t code) } break; #endif - case KC_H: - case KC_SLASH: /* ? */ + + // print help + case MAGIC_KC(MAGIC_KEY_HELP1): + case MAGIC_KC(MAGIC_KEY_HELP2): command_common_help(); break; - case KC_C: + + // activate console + case MAGIC_KC(MAGIC_KEY_CONSOLE): debug_matrix = false; debug_keyboard = false; debug_mouse = false; @@ -220,25 +343,33 @@ static bool command_common(uint8_t code) print("C> "); command_state = CONSOLE; break; - case KC_PAUSE: - clear_keyboard(); - print("\n\nbootloader... "); + + // jump to bootloader + case MAGIC_KC(MAGIC_KEY_BOOTLOADER): + clear_keyboard(); // clear to prevent stuck keys + print("\n\nJumping to bootloader... "); _delay_ms(1000); bootloader_jump(); // not return break; - case KC_D: + + // debug toggle + case MAGIC_KC(MAGIC_KEY_DEBUG): + debug_enable = !debug_enable; if (debug_enable) { + print("\ndebug: on\n"); + debug_matrix = true; + debug_keyboard = true; + debug_mouse = true; + } else { print("\ndebug: off\n"); debug_matrix = false; debug_keyboard = false; debug_mouse = false; - debug_enable = false; - } else { - print("\ndebug: on\n"); - debug_enable = true; } break; - case KC_X: // debug matrix toggle + + // debug matrix toggle + case MAGIC_KC(MAGIC_KEY_DEBUG_MATRIX): debug_matrix = !debug_matrix; if (debug_matrix) { print("\nmatrix: on\n"); @@ -247,7 +378,9 @@ static bool command_common(uint8_t code) print("\nmatrix: off\n"); } break; - case KC_K: // debug keyboard toggle + + // debug keyboard toggle + case MAGIC_KC(MAGIC_KEY_DEBUG_KBD): debug_keyboard = !debug_keyboard; if (debug_keyboard) { print("\nkeyboard: on\n"); @@ -256,87 +389,33 @@ static bool command_common(uint8_t code) print("\nkeyboard: off\n"); } break; - case KC_M: // debug mouse toggle + + // debug mouse toggle + case MAGIC_KC(MAGIC_KEY_DEBUG_MOUSE): debug_mouse = !debug_mouse; if (debug_mouse) { print("\nmouse: on\n"); debug_enable = true; } else { - print("\nmouse: off\n"); + print("\nmouse: off\n"); } break; - case KC_V: // print version & information - print("\n\t- Version -\n"); - print("DESC: " STR(DESCRIPTION) "\n"); - print("VID: " STR(VENDOR_ID) "(" STR(MANUFACTURER) ") " - "PID: " STR(PRODUCT_ID) "(" STR(PRODUCT) ") " - "VER: " STR(DEVICE_VER) "\n"); - print("BUILD: " STR(VERSION) " (" __TIME__ " " __DATE__ ")\n"); - /* build options */ - print("OPTIONS:" -#ifdef PROTOCOL_PJRC - " PJRC" -#endif -#ifdef PROTOCOL_LUFA - " LUFA" -#endif -#ifdef PROTOCOL_VUSB - " VUSB" -#endif -#ifdef BOOTMAGIC_ENABLE - " BOOTMAGIC" -#endif -#ifdef MOUSEKEY_ENABLE - " MOUSEKEY" -#endif -#ifdef EXTRAKEY_ENABLE - " EXTRAKEY" -#endif -#ifdef CONSOLE_ENABLE - " CONSOLE" -#endif -#ifdef COMMAND_ENABLE - " COMMAND" -#endif -#ifdef NKRO_ENABLE - " NKRO" -#endif -#ifdef KEYMAP_SECTION_ENABLE - " KEYMAP_SECTION" -#endif - " " STR(BOOTLOADER_SIZE) "\n"); - print("GCC: " STR(__GNUC__) "." STR(__GNUC_MINOR__) "." STR(__GNUC_PATCHLEVEL__) - " AVR-LIBC: " __AVR_LIBC_VERSION_STRING__ - " AVR_ARCH: avr" STR(__AVR_ARCH__) "\n"); + // print version + case MAGIC_KC(MAGIC_KEY_VERSION): + print_version(); + break; + + // print status + case MAGIC_KC(MAGIC_KEY_STATUS): + print_status(); break; - case KC_S: - print("\n\t- Status -\n"); - print_val_hex8(host_keyboard_leds()); - print_val_hex8(keyboard_protocol); - print_val_hex8(keyboard_idle); -#ifdef NKRO_ENABLE - print_val_hex8(keyboard_nkro); -#endif - print_val_hex32(timer_count); -#ifdef PROTOCOL_PJRC - print_val_hex8(UDCON); - print_val_hex8(UDIEN); - print_val_hex8(UDINT); - print_val_hex8(usb_keyboard_leds); - print_val_hex8(usb_keyboard_idle_count); -#endif - -#ifdef PROTOCOL_PJRC -# if USB_COUNT_SOF - print_val_hex8(usbSofCount); -# endif -#endif - break; #ifdef NKRO_ENABLE - case KC_N: - clear_keyboard(); //Prevents stuck keys. + + // NKRO toggle + case MAGIC_KC(MAGIC_KEY_NKRO): + clear_keyboard(); // clear to prevent stuck keys keyboard_nkro = !keyboard_nkro; if (keyboard_nkro) print("NKRO: on\n"); @@ -344,18 +423,78 @@ static bool command_common(uint8_t code) print("NKRO: off\n"); break; #endif - case KC_ESC: - case KC_GRV: - case KC_0: - case KC_F10: + + // switch layers + + case MAGIC_KC(MAGIC_KEY_LAYER0_ALT1): + case MAGIC_KC(MAGIC_KEY_LAYER0_ALT2): switch_default_layer(0); break; - case KC_1 ... KC_9: - switch_default_layer((code - KC_1) + 1); + +#if MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM + + case MAGIC_KC(MAGIC_KEY_LAYER0): + switch_default_layer(0); break; + + case MAGIC_KC(MAGIC_KEY_LAYER1): + switch_default_layer(1); + break; + + case MAGIC_KC(MAGIC_KEY_LAYER2): + switch_default_layer(2); + break; + + case MAGIC_KC(MAGIC_KEY_LAYER3): + switch_default_layer(3); + break; + + case MAGIC_KC(MAGIC_KEY_LAYER4): + switch_default_layer(4); + break; + + case MAGIC_KC(MAGIC_KEY_LAYER5): + switch_default_layer(5); + break; + + case MAGIC_KC(MAGIC_KEY_LAYER6): + switch_default_layer(6); + break; + + case MAGIC_KC(MAGIC_KEY_LAYER7): + switch_default_layer(7); + break; + + case MAGIC_KC(MAGIC_KEY_LAYER8): + switch_default_layer(8); + break; + + case MAGIC_KC(MAGIC_KEY_LAYER9): + switch_default_layer(9); + break; +#endif + + +#if MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS + case KC_F1 ... KC_F9: switch_default_layer((code - KC_F1) + 1); break; + case KC_F10: + switch_default_layer(0); + break; +#endif + +#if MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS + + case KC_1 ... KC_9: + switch_default_layer((code - KC_1) + 1); + break; + case KC_0: + switch_default_layer(0); + break; +#endif + default: print("?"); return false; diff --git a/tmk_core/common/command.h b/tmk_core/common/command.h index b57a6c1ced..92b18849bf 100644 --- a/tmk_core/common/command.h +++ b/tmk_core/common/command.h @@ -32,4 +32,125 @@ bool command_proc(uint8_t code); #define command_proc(code) false #endif + +#ifndef MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS +#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true #endif + +#ifndef MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS +#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true +#endif + +#ifndef MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM +#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false +#endif + +#ifndef MAGIC_KEY_HELP1 +#define MAGIC_KEY_HELP1 H +#endif + +#ifndef MAGIC_KEY_HELP2 +#define MAGIC_KEY_HELP2 SLASH +#endif + +#ifndef MAGIC_KEY_DEBUG +#define MAGIC_KEY_DEBUG D +#endif + +#ifndef MAGIC_KEY_DEBUG_MATRIX +#define MAGIC_KEY_DEBUG_MATRIX X +#endif + +#ifndef MAGIC_KEY_DEBUG_KBD +#define MAGIC_KEY_DEBUG_KBD K +#endif + +#ifndef MAGIC_KEY_DEBUG_MOUSE +#define MAGIC_KEY_DEBUG_MOUSE M +#endif + +#ifndef MAGIC_KEY_VERSION +#define MAGIC_KEY_VERSION V +#endif + +#ifndef MAGIC_KEY_STATUS +#define MAGIC_KEY_STATUS S +#endif + +#ifndef MAGIC_KEY_CONSOLE +#define MAGIC_KEY_CONSOLE C +#endif + +#ifndef MAGIC_KEY_LAYER0_ALT1 +#define MAGIC_KEY_LAYER0_ALT1 ESC +#endif + +#ifndef MAGIC_KEY_LAYER0_ALT2 +#define MAGIC_KEY_LAYER0_ALT2 GRAVE +#endif + +#ifndef MAGIC_KEY_LAYER0 +#define MAGIC_KEY_LAYER0 0 +#endif + +#ifndef MAGIC_KEY_LAYER1 +#define MAGIC_KEY_LAYER1 1 +#endif + +#ifndef MAGIC_KEY_LAYER2 +#define MAGIC_KEY_LAYER2 2 +#endif + +#ifndef MAGIC_KEY_LAYER3 +#define MAGIC_KEY_LAYER3 3 +#endif + +#ifndef MAGIC_KEY_LAYER4 +#define MAGIC_KEY_LAYER4 4 +#endif + +#ifndef MAGIC_KEY_LAYER5 +#define MAGIC_KEY_LAYER5 5 +#endif + +#ifndef MAGIC_KEY_LAYER6 +#define MAGIC_KEY_LAYER6 6 +#endif + +#ifndef MAGIC_KEY_LAYER7 +#define MAGIC_KEY_LAYER7 7 +#endif + +#ifndef MAGIC_KEY_LAYER8 +#define MAGIC_KEY_LAYER8 8 +#endif + +#ifndef MAGIC_KEY_LAYER9 +#define MAGIC_KEY_LAYER9 9 +#endif + +#ifndef MAGIC_KEY_BOOTLOADER +#define MAGIC_KEY_BOOTLOADER PAUSE +#endif + +#ifndef MAGIC_KEY_LOCK +#define MAGIC_KEY_LOCK CAPS +#endif + +#ifndef MAGIC_KEY_EEPROM +#define MAGIC_KEY_EEPROM E +#endif + +#ifndef MAGIC_KEY_NKRO +#define MAGIC_KEY_NKRO N +#endif + +#ifndef MAGIC_KEY_SLEEP_LED +#define MAGIC_KEY_SLEEP_LED Z + +#endif + +#define XMAGIC_KC(key) KC_##key +#define MAGIC_KC(key) XMAGIC_KC(key) + +#endif \ No newline at end of file diff --git a/tmk_core/common/eeconfig.h b/tmk_core/common/eeconfig.h index 3cd1a174f6..ddefca1347 100644 --- a/tmk_core/common/eeconfig.h +++ b/tmk_core/common/eeconfig.h @@ -31,6 +31,7 @@ along with this program. If not, see . #define EECONFIG_KEYMAP (uint8_t *)4 #define EECONFIG_MOUSEKEY_ACCEL (uint8_t *)5 #define EECONFIG_BACKLIGHT (uint8_t *)6 +#define EECONFIG_AUDIO (uint8_t *)7 /* debug bit */ @@ -72,4 +73,9 @@ uint8_t eeconfig_read_backlight(void); void eeconfig_write_backlight(uint8_t val); #endif +#ifdef AUDIO_ENABLE +uint8_t eeconfig_read_audio(void); +void eeconfig_write_audio(uint8_t val); +#endif + #endif diff --git a/tmk_core/common/keyboard.c b/tmk_core/common/keyboard.c index eb7b096bed..302b3ec87c 100644 --- a/tmk_core/common/keyboard.c +++ b/tmk_core/common/keyboard.c @@ -70,6 +70,7 @@ void keyboard_setup(void) void keyboard_init(void) { + timer_init(); matrix_init(); #ifdef PS2_MOUSE_ENABLE @@ -90,6 +91,11 @@ void keyboard_init(void) #ifdef BACKLIGHT_ENABLE backlight_init(); #endif + +#if defined(NKRO_ENABLE) && defined(FORCE_NKRO) + keyboard_nkro = true; +#endif + } /* diff --git a/tmk_core/common/keymap.c b/tmk_core/common/keymap.c index 11f4aa8aaa..8955fc710d 100644 --- a/tmk_core/common/keymap.c +++ b/tmk_core/common/keymap.c @@ -22,7 +22,7 @@ along with this program. If not, see . #include "action_macro.h" #include "wait.h" #include "debug.h" - +#include "bootloader.h" static action_t keycode_to_action(uint8_t keycode); @@ -143,6 +143,7 @@ static action_t keycode_to_action(uint8_t keycode) action.code = ACTION_TRANSPARENT; break; case KC_BOOTLOADER: + action.code = ACTION_NO; clear_keyboard(); wait_ms(50); bootloader_jump(); // not return diff --git a/tmk_core/common/led.h b/tmk_core/common/led.h index d5fc051bf5..2e18dc2afa 100644 --- a/tmk_core/common/led.h +++ b/tmk_core/common/led.h @@ -34,8 +34,11 @@ extern "C" { void led_set(uint8_t usb_led); +/* keyboard-specific LED functionality */ +void led_set_kb(uint8_t usb_led); + #ifdef __cplusplus } #endif -#endif +#endif \ No newline at end of file diff --git a/tmk_core/common/matrix.h b/tmk_core/common/matrix.h index 85415df719..0b013fc989 100644 --- a/tmk_core/common/matrix.h +++ b/tmk_core/common/matrix.h @@ -64,8 +64,8 @@ void matrix_power_up(void); void matrix_power_down(void); /* keyboard-specific setup/loop functionality */ -void * matrix_init_kb(void); -void * matrix_scan_kb(void); +void matrix_init_kb(void); +void matrix_scan_kb(void); #ifdef __cplusplus } diff --git a/tmk_core/doc/build.md b/tmk_core/doc/build.md index 20702e94c9..2846f1d0fb 100644 --- a/tmk_core/doc/build.md +++ b/tmk_core/doc/build.md @@ -6,7 +6,7 @@ Download and Install -------------------- ### 1. Install Tools -1. **Toolchain** On Windows install [MHV AVR Tools][mhv] for AVR GCC compiler and [Cygwin][cygwin](or [MinGW][mingw]) for shell terminal. On Mac you can use [CrossPack][crosspack]. On Linux you can install AVR GCC with your favorite package manager. +1. **Toolchain** On Windows install [MHV AVR Tools][mhv] for AVR GCC compiler and [Cygwin][cygwin](or [MinGW][mingw]) for shell terminal. On Mac you can use [CrossPack][crosspack]. On Linux you can install AVR GCC (and avr-libc) with your favorite package manager or run the avr_setup.sh script in the root of this repository. 2. **Programmer** On Windows install [Atmel FLIP][flip]. On Mac and Linux install [dfu-programmer][dfu-prog]. diff --git a/tmk_core/protocol/lufa.mk b/tmk_core/protocol/lufa.mk index 4905760bb4..9ac6298f11 100644 --- a/tmk_core/protocol/lufa.mk +++ b/tmk_core/protocol/lufa.mk @@ -17,7 +17,7 @@ LUFA_SRC = $(LUFA_DIR)/lufa.c \ $(LUFA_DIR)/descriptor.c \ $(LUFA_SRC_USB) -ifdef MIDI_ENABLE +ifeq ($(strip $(MIDI_ENABLE)), yes) LUFA_SRC += $(LUFA_DIR)/midi/midi.c \ $(LUFA_DIR)/midi/midi_device.c \ $(LUFA_DIR)/midi/bytequeue/bytequeue.c \ @@ -25,7 +25,7 @@ ifdef MIDI_ENABLE $(LUFA_SRC_USBCLASS) endif -ifdef BLUETOOTH_ENABLE +ifeq ($(strip $(BLUETOOTH_ENABLE)), yes) LUFA_SRC += $(LUFA_DIR)/bluetooth.c \ $(TMK_DIR)/protocol/serial_uart.c endif diff --git a/tmk_core/protocol/lufa/lufa.c b/tmk_core/protocol/lufa/lufa.c index f04790f4e8..5d40dcf7b2 100644 --- a/tmk_core/protocol/lufa/lufa.c +++ b/tmk_core/protocol/lufa/lufa.c @@ -52,8 +52,8 @@ #include "descriptor.h" #include "lufa.h" -#ifdef MIDI_ENABLE - #include +#ifdef AUDIO_ENABLE + #include #endif #ifdef BLUETOOTH_ENABLE @@ -946,6 +946,8 @@ int main(void) #ifdef MIDI_ENABLE void fallthrough_callback(MidiDevice * device, uint16_t cnt, uint8_t byte0, uint8_t byte1, uint8_t byte2){ + +#ifdef AUDIO_ENABLE if (cnt == 3) { switch (byte0 & 0xF0) { case MIDI_NOTEON: @@ -959,6 +961,7 @@ void fallthrough_callback(MidiDevice * device, if (byte0 == MIDI_STOP) { stop_all_notes(); } +#endif } void cc_callback(MidiDevice * device,