diff --git a/.vscode/extensions.json b/.vscode/extensions.json index 0254035d..ca9b77ca 100644 --- a/.vscode/extensions.json +++ b/.vscode/extensions.json @@ -1,8 +1,14 @@ { "recommendations": [ - "ms-pyright.pyright", + "ms-python.vscode-pylance", "ms-python.python", "sonarsource.sonarlint-vscode", - "davidanson.vscode-markdownlint" + "davidanson.vscode-markdownlint", + "shardulm94.trailing-spaces", + "eamodio.gitlens" + ], + "unwantedRecommendations": [ + "ms-pyright.pyright", + "esbenp.prettier-vscode" ] } diff --git a/.vscode/settings.json b/.vscode/settings.json index c9c340c1..5cbde4f7 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -18,21 +18,13 @@ 120, ] }, - "[py]": { - "editor.tabSize": 4, - "editor.rulers": [ - 72, - 79, - 120, - ] - }, - "//1": "Keeping autoformat to false for now to keep minimal changes", + // Keeping autoformat to false for now to keep minimal changes "editor.formatOnSave": false, "editor.codeActionsOnSave": { "source.fixAll": false, }, "python.linting.pylintEnabled": false, - "//2": "Using flake8 as other linters are incomplete or have too many false positives last I tried", + // Using flake8 as other linters are incomplete or have too many false positives last I tried "python.linting.flake8Enabled": true, "python.linting.enabled": true, "python.linting.pycodestyleEnabled": false, @@ -43,6 +35,15 @@ "python.formatting.autopep8Args": [ "--max-line-length=120" ], - "python.pythonPath": "", "files.insertFinalNewline": true, + "trailing-spaces.deleteModifiedLinesOnly": true, + "trailing-spaces.includeEmptyLines": true, + "trailing-spaces.trimOnSave": true, + "trailing-spaces.syntaxIgnore": [ + "markdown" + ], + "files.associations": { + "*.qrc": "xml", + "*.ui": "xml" + }, } diff --git a/README.md b/README.md index 2c54f4dc..978ff543 100644 --- a/README.md +++ b/README.md @@ -1,34 +1,44 @@ -# LiveSplit AutoSplit +# LiveSplit AutoSplit -This program compares split images to a capture region of any window (OBS, xsplit, etc.) and automatically hits your split hotkey when there is a match. It can be used in tandem with any speedrun timer that accepts hotkeys (LiveSplit, wsplit, etc.). The purpose of this program is to remove the need to manually press your split hotkey and also increase the accuracy of your splits. +This program compares split images to a capture region of any window (OBS, xsplit, etc.) and automatically hits your split hotkey when there is a match. It can be used in tandem with any speedrun timer that accepts hotkeys (LiveSplit, wsplit, etc.). The purpose of this program is to remove the need to manually press your split hotkey and also increase the accuracy of your splits. -

- -

+![Example](res/example1.5.0.gif) # TUTORIAL ## DOWNLOAD AND OPEN ### Compatability -- Windows 7, 10, and 11 + +- Windows 7, 10, and 11. ### Opening the program -- Download the [latest version](https://github.com/austinryan/Auto-Split/releases) + +- Download the [latest version](/../../releases) - Extract the file and open AutoSplit.exe. ### Building -- Read [requirements.txt](/requirements.txt) for information on how to run/build the python code (this is not required for normal use). + +(This is not required for normal use) + +- Microsoft Visual C++ 14.0 or greater may be required. Get it with [Microsoft C++ Build Tools](https://visualstudio.microsoft.com/visual-cpp-build-tools/) +- Read [requirements.txt](/scripts/requirements.txt) for information on how to run/build the python code + - Run `.\scripts\install.bat` to install all dependencies + - Run the app directly with `py .\src\AutoSplit.py` + - Run `.\scripts\build.bat` to build an executable +- Recompile resources after modifications by running `.\scripts\compile_resources.bat` ## Split Image Folder + - Supported image file types: .png, .jpg, .jpeg, .bmp, and [more](https://docs.opencv.org/3.0-beta/modules/imgcodecs/doc/reading_and_writing_images.html#imread). - Images can be any size. - Images are matched in alphanumerical order. -- Recommended filenaming convention: `001_SplitName.png, 002_SplitName.png, 003_SplitName.png`... -- Custom split image settings are handled in the filename. See how [here](https://github.com/Toufool/Auto-Split#custom-split-image-settings). +- Recommended filenaming convention: `001_SplitName.png, 002_SplitName.png, 003_SplitName.png`... +- Custom split image settings are handled in the filename. See how [here](#custom-split-image-settings). - Images can be created using Print Screen, [Snipping Tool](https://support.microsoft.com/en-us/help/4027213/windows-10-open-snipping-tool-and-take-a-screenshot), or AutoSplit's Take Screenshot button. ## Capture Region + - This is the region that your split images are compared to. Usually, this is going to be the full game screen. - Click "Select Region" - Click and drag to form a rectangle over the region you want to capture. @@ -39,11 +49,13 @@ This program compares split images to a capture region of any window (OBS, xspli - You can save a screenshot of the capture region to your split image folder using the Take Screenshot button. ## Max FPS - - Calculates the maximum comparison rate of the capture region to split images. This value will likely be much higher than needed, so it is highly recommended to limit your FPS depending on the frame rate of the game you are capturing. + +- Calculates the maximum comparison rate of the capture region to split images. This value will likely be much higher than needed, so it is highly recommended to limit your FPS depending on the frame rate of the game you are capturing. ## OPTIONS ### Comparison Method + - There are three comparison methods to choose from: L2 Norm, Histograms, and pHash. - L2 Norm: This method finds the difference between each pixel, squares it, and sums it over the entire image and takes the square root. This is very fast but is a problem if your image is high frequency. Any translational movement or rotation can cause similarity to be very different. - Histograms: An explanation on Histograms comparison can be found [here](https://mpatacchiola.github.io/blog/2016/11/12/the-simplest-classifier-histogram-intersection.html). This is a great method to use if you are using several masked images. @@ -51,59 +63,72 @@ This program compares split images to a capture region of any window (OBS, xspli - Note: v1.0 used L2 Norm. ### Show Live Similarity + - Displays the live similarity between the capture region and the current split image. This number is between 0 and 1, with 1 being a perfect match. ### Show Highest Similarity + - Shows the highest similarity between the capture region and current split image. ### Similarity Threshold + - When the live similarity goes above this value, the program hits your split hotkey and moves to the next split image. ### Pause Time + - Time in seconds that the program stops comparison after a split. Useful for if you have two of the same split images in a row and want to avoid double-splitting. Also useful for reducing CPU usage. ### Delay Time + - Time in milliseconds that the program waits before hitting the split hotkey for that specific split. ### Custom Split Image Settings + - Each split image can have different thresholds, pause times, delay split times, loop amounts, and can be flagged. -- These settings are handled in the image's filename. -- Custom thresholds are place between parenthesis `()` in the filename and the custom thresholds checkbox must be checked. All images must have a custom threshold if the box is checked. -- Custom pause times are placed between square brackets `[]` in the filename and the custom pause times checkbox must be checked. All images must have a custom threshold if the box is checked. +- These settings are handled in the image's filename. +- Custom thresholds are place between parenthesis `()` in the filename. This value will override the default threshold. +- Custom pause times are placed between square brackets `[]` in the filename. This value will override the default pause time. - Custom delay times are placed between hash signs `##` in the filename. Note that these are in milliseconds. For example, a 10 second split delay would be `#10000#`. You cannot skip or undo splits during split delays. - Image loop amounts are placed between at symbols `@@` in the filename. For example, a specific image that you want to split 5 times in a row would be `@5@`. The current loop # is conveniently located beneath the current split image. - Flags are placed between curly brackets `{}` in the filename. Multiple flags are placed in the same set of curly brackets. Current available flags: - {d} dummy split image. When matched, it moves to the next image without hitting your split hotkey. - {b} split when similarity goes below the threshold rather than above. When a split image filename has this flag, the split image similarity will go above the threshold, do nothing, and then split the next time the similarity goes below the threshold. - - {m} masked split image. This allows you to customize what you want compared in your split image by using transparency. Transparent pixels in the split image are ignored when comparing. This is useful if only a certain part of the capture region is consistent (for example, consistent text on the screen, but the background is always different). These images MUST be .png and contain transparency. For more on this, see [How to Create a Masked Image](https://github.com/Toufool/Auto-Split/blob/master/README.md#how-to-create-a-masked-image). Histogram or L2 norm comparison is recommended if you use any masked images. It is highly recommended that you do NOT use pHash comparison if you use any masked images, as it is very inaccurate - {p} pause flag. When a split image filename has this flag, it will hit your pause hotkey rather than your split hokey. - A pause flag and a dummy flag `{pd}` cannot be used together -- Filename examples: +- Filename examples: - `001_SplitName_(0.9)_[10].png` is a split image with a threshold of 0.9 and a pause time of 10 seconds. - `002_SplitName_(0.9)_[10]_{d}.png` is the second split image with a threshold of 0.9, pause time of 10, and is a dummy split. - - `003_SplitName_(0.85)_[20]_#3500#_{m}.png` is the third split image with a threshold of 0.85, pause time of 20, delay split time of 3.5 seconds and it is a masked image. + - `003_SplitName_(0.85)_[20]_#3500#.png` is the third split image with a threshold of 0.85, pause time of 20 and has a delay split time of 3.5 seconds. - `004_SplitName(0.9)_[10]_#3500#_@3@_{b}.png` is the fourth split image with a threshold of 0.9, pause time of 10 seconds, delay split time of 3.5 seconds, will loop 3 times, and will split when similarity is below the threshold rather than above. ### How to Create a Masked Image -The best way to create a masked image is to set your capture region as the entire game screen, take a screenshot, and use a program like [paint.net](https://www.getpaint.net/) to "erase" (make transparent) everything you don't want the program to compare. More on how to creating images with transparency using paint.net can be found in [this tutorial](https://www.youtube.com/watch?v=v53kkUYFVn8). The last thing you need to do is add {m} to the filename. For visualization, here is what the capture region compared to a masked split image looks like if you would want to split on "Shine Get!" text in Super Mario Sunshine: -

- -

+Masked images are very useful if only a certain part of the capture region is consistent (for example, consistent text on the screen, but the background is always different). Histogram or L2 norm comparison is recommended if you use any masked images. It is highly recommended that you do NOT use pHash comparison if you use any masked images, as it is very inaccurate. + +The best way to create a masked image is to set your capture region as the entire game screen, take a screenshot, and use a program like [paint.net](https://www.getpaint.net/) to "erase" (make transparent) everything you don't want the program to compare. More on how to creating images with transparency using paint.net can be found in [this tutorial](https://www.youtube.com/watch?v=v53kkUYFVn8). For visualization, here is what the capture region compared to a masked split image looks like if you would want to split on "Shine Get!" text in Super Mario Sunshine: + +![Mask Example](res/mask_example_image.PNG) ### Reset image -You can have one (and only one) image with the keyword `reset` in its name. AutoSplit will press the reset button when it finds this image. This image will only be used for resets and it will not be tied to any split. You can set a probability and pause time for it. A custom threshold MUST be applied to this image. The pause time is the amount of seconds AutoSplit will wait before checking for the reset image once the run starts. Also the image can be masked, for example: `Reset_(0.95)_[10]_{m}.png`. + +You can have one (and only one) image with the keyword `reset` in its name. AutoSplit will press the reset button when it finds this image. This image will only be used for resets and it will not be tied to any split. You can set a probability and pause time for it. The pause time is the amount of seconds AutoSplit will wait before checking for the reset image once the run starts. For example: `Reset_(0.95)_[10].png`. + +### Start image + +The start image is similar to the reset image. You can only have one start image with the keyword `start_auto_splitter`.You can reload the image using the "`Reload Start Image`" button. The pause time is the amount of seconds AutoSplit will wait before checking for the start image once a run ends/is reset. ### Timer Global Hotkeys + - Click "Set Hotkey" on each hotkey to set the hotkeys to AutoSplit. The Start / Split hotkey and Pause hotkey must be the same as the one used in your preferred timer program in order for the splitting/pausing to work properly. - Make sure that Global Hotkeys are enabled in your speedrun timer. - All of these actions can also be handled by their corresponding buttons. - Note that pressing your Pause Hotkey does not serve any function in AutoSplit itself and is strictly used for the Pause flag. ### Group dummy splits when undoing / skipping + If this option is disabled, AutoSplit will not account for dummy splits when undoing/skipping. Meaning it will cycle through ths splits normally even if they are dummy splits (this was the normal behavior in versions 1.2.0 and older). -If it is enabled, AutoSplit will group dummy splits together with a real split when undoing/skipping. This basically allows you to tie one or more dummy splits to a real split to keep it in sync with LiveSplit/wsplit. +If it is enabled, AutoSplit will group dummy splits together with a real split when undoing/skipping. This basically allows you to tie one or more dummy splits to a real split to keep it in sync with LiveSplit/wsplit. Examples: Given these splits: 1 dummy, 2 normal, 3 dummy, 4 dummy, 5 normal, 6 normal. @@ -118,11 +143,13 @@ In this situation you would have only 3 splits in LiveSplit/wsplit (even though Please note this option cannot currently be used if you have any loop parameter `@@` greater than 1 in any image. ### Loop Split Images + If this option is enabled, when the last split meets the threshold and splits, AutoSplit will loop back to the first split image and continue comparisons. If this option is disabled, when the last split meets the threshold and splits, AutoSplit will stop running comparisons. This option does not loop single, specific images. See the Custom Split Image Settings section above for this feature. ### Auto Start On Reset + If this option is enabled, when the reset hotkey is hit, the reset button is pressed, or the reset split image meets its threshold, AutoSplit will reset and automatically start again back at the first split image. If this option is disabled, when the reset hotkey is hit, the reset button is pressed, or the reset split image meets its threshold, AutoSplit will stop running comparisons. @@ -133,28 +160,31 @@ If this option is disabled, when the reset hotkey is hit, the reset button is pr - The settings in the settings file include split image directory, capture region, capture region dimensions, fps limit, threshold and pause time settings, all hotkeys, "Group dummy splits when undoing/skipping" check box, "Loop Split Images" check box, and "Auto Start On Reset" check box. - If you are upgrading to Windows 11, it's possible that save files may not transfer perfectly. You may need to readjust or reselect your Capture Region, for example. +## LiveSplit integration + +There is a LiveSplit Component available that will directly connect AutoSplit with LiveSplit. You can get it [here](/KaDiWa4/LiveSplit.AutoSplitIntegration). + ## Known Limitations + - For many games, it will be difficult to find a split image for the last split of the run. - The window of the capture region cannot be minimized. -## Known Issues -- Using numpad number keys when numlock is on does not split correctly. Either avoid using numpad or turn numlock off to avoid this issue. -- LiveSplit and wsplit will not split correctly if you are holding shift, ctrl, or alt when a match occurs. -- Numlock on keys are linked to numlock-off keys. For example, if you set your reset hotkey to 2, you can hit arrow down and it will reset and vice versa. - ## Resources -- Still need help? [Open an issue](https://github.com/Toufool/Auto-Split/issues) -- Join the [AutoSplit Discord](https://discord.gg/Qcbxv9y) +- Still need help? [Open an issue](../../issues) +- Join the [AutoSplit Discord](https://discord.gg/Qcbxv9y) ## Credits -- https://github.com/harupy/ for the snipping tool code that I used to integrate into the autosplitter. + +- [Harutaka Kawamura](https://github.com/harupy/) for the snipping tool code that I used to integrate into the autosplitter. - [amaringos](https://twitter.com/amaringos) for the icon. - [ZanasoBayncuh](https://twitter.com/ZanasoBayncuh) for motivating me to start this project back up and for all of the time spent testing and suggesting improvements. - [Avasam](https://twitter.com/Avasam06) for their continued work on making an incredible amount of improvements and changes to AutoSplit while I have not had the time/motivation to do so. +- [KaDiWa](https://github.com/KaDiWa4) for the LiveSplit integration. - Created by [Toufool](https://twitter.com/Toufool) and [Faschz](https://twitter.com/faschz). ## Donate + If you enjoy using the program, please consider donating. Thank you! [![paypal](https://www.paypalobjects.com/en_US/i/btn/btn_donateCC_LG.gif)](https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=BYRHQG69YRHBA&item_name=AutoSplit+development¤cy_code=USD&source=url) diff --git a/requirements.txt b/requirements.txt deleted file mode 100644 index b9c87383..00000000 --- a/requirements.txt +++ /dev/null @@ -1,22 +0,0 @@ -# Requirements file for AutoSplit -# -# Python: CPython 3.7 (not 3.8 as there is no cp38 wheel for PyQt4) -# -# Usage: pip install -r requirements.txt -# -# Creating AutoSplit.exe with PyInstaller: pyinstaller -w -F src\AutoSplit.py -# -# You can find other wheels here: https://www.lfd.uci.edu/~gohlke/pythonlibs/#pyqt4 -# If you use 32-bit installation of Python, use the the 2nd URL instead. -https://download.lfd.uci.edu/pythonlibs/w4tscw6k/PyQt4-4.11.4-cp37-cp37m-win_amd64.whl -# https://download.lfd.uci.edu/pythonlibs/w4tscw6k/PyQt4-4.11.4-cp37-cp37m-win32.whl -# -# Comment this out if you don't want to create AutoSplit.exe: -PyInstaller -# -# Other dependencies: -opencv-python -Pillow -ImageHash -pywin32 -keyboard diff --git a/res/about.ui b/res/about.ui index d247f2c3..99884aa2 100644 --- a/res/about.ui +++ b/res/about.ui @@ -6,20 +6,20 @@ 0 0 - 276 - 249 + 264 + 250 - 276 - 249 + 264 + 250 - 276 - 249 + 264 + 250 @@ -32,10 +32,10 @@ - 190 + 180 220 - 71 - 21 + 75 + 24 @@ -47,12 +47,12 @@ 10 44 - 151 - 16 + 161 + 32 - <html><head/><body><p>Created by <a href="https://twitter.com/toufool"><span style=" text-decoration: underline; color:#0000ff;">Toufool</span></a> and <a href="https://twitter.com/faschz"><span style=" text-decoration: underline; color:#0000ff;">Faschz</span></a></p></body></html> + <html><head/><body><p>Created by <a href="https://twitter.com/toufool"><span style=" text-decoration: underline; color:#0000ff;">Toufool</span></a> and <a href="https://twitter.com/faschz"><span style=" text-decoration: underline; color:#0000ff;">Faschz</span></a><br/>Maintained by <a href="https://twitter.com/Avasam06"><span style=" text-decoration: underline; color:#0000ff;">Avasam</span></a></p></body></html> @@ -60,39 +60,42 @@ 10 21 - 71 + 161 16 - Version: 1.2.0 + Version: - 46 + 30 95 - 191 - 41 + 204 + 32 If you enjoy using this program, please - consider donating. Thank you! +consider donating. Thank you! + + + Qt::AlignCenter - 52 - 127 - 171 - 91 + 60 + 150 + 147 + 47 - <html><head/><body><p><a href="https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=BYRHQG69YRHBA&item_name=AutoSplit+development&currency_code=USD&source=url"><img src=":/resources/donatebutton.png"/></p></body></html> + <html><head/><body><p><a href="https://www.paypal.com/cgi-bin/webscr?cmd=_donations&amp;business=BYRHQG69YRHBA&amp;item_name=AutoSplit+development&amp;currency_code=USD&amp;source=url"><img src=":/resources/btn_donateCC_LG.png"/></a></p></body></html> Qt::AlignCenter diff --git a/res/btn_donateCC_LG.png b/res/btn_donateCC_LG.png new file mode 100644 index 00000000..3abf57ad Binary files /dev/null and b/res/btn_donateCC_LG.png differ diff --git a/res/design.ui b/res/design.ui index 72e473cf..880603ec 100644 --- a/res/design.ui +++ b/res/design.ui @@ -6,7 +6,7 @@ 0 0 - 619 + 632 490 @@ -18,13 +18,13 @@ - 619 + 632 490 - 619 + 632 490 @@ -32,8 +32,8 @@ AutoSplit - - ../../../../VideoAutoSplitter/icon.ico../../../../VideoAutoSplitter/icon.ico + + :/resources/icon.ico:/resources/icon.ico @@ -45,9 +45,9 @@ - 90 - 13 - 91 + 20 + 12 + 98 16 @@ -58,10 +58,10 @@ - 187 - 11 - 247 - 20 + 130 + 10 + 411 + 22 @@ -71,7 +71,7 @@ - 443 + 539 9 75 24 @@ -103,10 +103,10 @@ - 125 + 120 253 - 121 - 17 + 129 + 20 @@ -139,20 +139,21 @@ 10 - 378 - 91 - 16 + 380 + 102 + 32 - Similarity threshold + Similarity threshold +Default value - 160 - 383 + 150 + 390 64 22 @@ -170,9 +171,9 @@ - 505 + 500 425 - 101 + 121 31 @@ -186,9 +187,9 @@ - 505 + 500 385 - 101 + 121 31 @@ -202,10 +203,10 @@ - 477 + 480 250 - 61 - 21 + 71 + 24 @@ -218,10 +219,10 @@ - 541 + 560 250 61 - 21 + 24 @@ -236,12 +237,13 @@ 10 420 - 111 - 16 + 112 + 32 - Pause time (seconds) + Pause time (seconds) +Default value @@ -249,7 +251,7 @@ 5 225 - 51 + 53 21 @@ -281,8 +283,8 @@ 10 330 - 111 - 17 + 124 + 20 @@ -303,8 +305,8 @@ 10 351 - 131 - 17 + 145 + 20 @@ -323,7 +325,7 @@ 160 332 46 - 13 + 16 @@ -336,7 +338,7 @@ 160 353 46 - 13 + 16 @@ -346,9 +348,9 @@ - 249 + 230 317 - 61 + 58 16 @@ -359,9 +361,9 @@ - 249 + 230 341 - 61 + 28 16 @@ -372,9 +374,9 @@ - 250 + 230 367 - 50 + 48 16 @@ -385,9 +387,9 @@ - 249 + 230 393 - 61 + 55 16 @@ -398,7 +400,7 @@ - 316 + 300 314 81 20 @@ -411,7 +413,7 @@ - 316 + 300 391 81 20 @@ -427,7 +429,7 @@ - 316 + 300 365 81 20 @@ -440,7 +442,7 @@ - 316 + 300 339 81 20 @@ -453,7 +455,7 @@ - 410 + 390 314 71 21 @@ -469,7 +471,7 @@ - 410 + 390 339 71 21 @@ -485,7 +487,7 @@ - 410 + 390 365 71 21 @@ -501,7 +503,7 @@ - 410 + 390 391 71 21 @@ -514,67 +516,10 @@ Set Hotkey - - - - 111 - 247 - 240 - 2 - - - - QFrame::Plain - - - 1 - - - Qt::Horizontal - - - - - - 111 - 68 - 240 - 2 - - - - QFrame::Plain - - - 1 - - - Qt::Horizontal - - - - - - 349 - 69 - 2 - 180 - - - - QFrame::Plain - - - 1 - - - Qt::Vertical - - - 234 + 220 296 2 163 @@ -590,108 +535,13 @@ Qt::Vertical - - - - 110 - 69 - 2 - 180 - - - - QFrame::Plain - - - 1 - - - Qt::Vertical - - - - - - 360 - 69 - 2 - 180 - - - - QFrame::Plain - - - 1 - - - Qt::Vertical - - - - - - 599 - 69 - 2 - 180 - - - - QFrame::Plain - - - 1 - - - Qt::Vertical - - - - - - 361 - 68 - 240 - 2 - - - - QFrame::Plain - - - 1 - - - Qt::Horizontal - - - - - - 361 - 247 - 240 - 2 - - - - QFrame::Plain - - - 1 - - - Qt::Horizontal - - - 313 + 300 293 - 101 - 20 + 113 + 16 @@ -701,7 +551,7 @@ - 489 + 490 296 2 163 @@ -720,12 +570,15 @@ - 111 + 120 69 240 180 + + QFrame::Box + @@ -733,12 +586,15 @@ - 361 + 380 69 240 180 + + QFrame::Box + @@ -746,9 +602,9 @@ - 430 + 450 50 - 101 + 102 16 @@ -836,9 +692,9 @@ - 192 + 200 50 - 81 + 82 16 @@ -890,9 +746,9 @@ - 362 - 271 - 237 + 380 + 270 + 241 20 @@ -908,8 +764,8 @@ 250 251 - 91 - 21 + 92 + 24 @@ -988,7 +844,7 @@ - 143 + 133 299 81 22 @@ -1013,8 +869,8 @@ - 160 - 425 + 150 + 430 64 22 @@ -1029,62 +885,12 @@ 10.000000000000000 - - - true - - - - 10 - 435 - 121 - 17 - - - - - - - Custom pause times - - - false - - - false - - - - - true - - - - 10 - 394 - 111 - 17 - - - - - - - Custom thresholds - - - false - - - false - - 10 - 300 - 101 + 303 + 110 16 @@ -1111,10 +917,10 @@ - 252 + 230 443 - 230 - 17 + 261 + 20 @@ -1140,11 +946,11 @@ Select Window - + - 362 - 251 + 380 + 252 108 20 @@ -1156,9 +962,9 @@ - 250 + 230 418 - 61 + 31 16 @@ -1169,9 +975,9 @@ - 316 + 300 416 - 82 + 81 20 @@ -1185,7 +991,7 @@ - 410 + 390 416 71 21 @@ -1205,9 +1011,9 @@ 500 - 314 - 121 - 17 + 340 + 117 + 20 @@ -1220,16 +1026,13 @@ false - - - true - + 500 - 344 - 121 - 17 + 360 + 126 + 20 @@ -1242,6 +1045,35 @@ false + + + + 500 + 300 + 121 + 31 + + + + Qt::NoFocus + + + Reload Start Image + + + + + + 120 + 270 + 241 + 16 + + + + Start image: + + splitimagefolderLabel splitimagefolderLineEdit browseButton @@ -1273,15 +1105,7 @@ setresethotkeyButton setskipsplithotkeyButton setundosplithotkeyButton - line_live_bottom - line_live_top - line_live_right line_left - line_live_left - line_split_left - line_split_right - line_split_top - line_split_bottom timerglobalhotkeysLabel line_right currentsplitimageLabel @@ -1302,26 +1126,26 @@ yLabel comparisonmethodComboBox pauseDoubleSpinBox - custompausetimesCheckBox - customthresholdsCheckBox comparisonmethodLabel alignregionButton groupDummySplitsCheckBox selectwindowButton - currentsplitimageLabel_2 + imageloopLabel pausehotkeyLabel pausehotkeyLineEdit setpausehotkeyButton loopCheckBox - loopCheckBox_2 + autostartonresetCheckBox + startImageReloadButton + startImageLabel 0 0 - 619 - 21 + 632 + 22 @@ -1389,9 +1213,7 @@ comparisonmethodComboBox showlivesimilarityCheckBox showhighestsimilarityCheckBox - customthresholdsCheckBox similaritythresholdDoubleSpinBox - custompausetimesCheckBox pauseDoubleSpinBox splitLineEdit resetLineEdit @@ -1399,6 +1221,8 @@ undosplitLineEdit groupDummySplitsCheckBox - + + + diff --git a/example1.5.0.gif b/res/example1.5.0.gif similarity index 100% rename from example1.5.0.gif rename to res/example1.5.0.gif diff --git a/icon.ico b/res/icon.ico similarity index 100% rename from icon.ico rename to res/icon.ico diff --git a/mask_example_image.PNG b/res/mask_example_image.PNG similarity index 100% rename from mask_example_image.PNG rename to res/mask_example_image.PNG diff --git a/res/resources.qrc b/res/resources.qrc index bd6e4665..69844bab 100644 --- a/res/resources.qrc +++ b/res/resources.qrc @@ -1,6 +1,6 @@ - donatebutton.png + btn_donateCC_LG.png icon.ico diff --git a/scripts/Qt Designer.lnk b/scripts/Qt Designer.lnk new file mode 100644 index 00000000..32ad191e Binary files /dev/null and b/scripts/Qt Designer.lnk differ diff --git a/scripts/build.bat b/scripts/build.bat new file mode 100644 index 00000000..7cf3fb64 --- /dev/null +++ b/scripts/build.bat @@ -0,0 +1 @@ +pyinstaller -w -F --icon=res/icon.ico "%~p0/../src/AutoSplit.py" diff --git a/scripts/compile_resources.bat b/scripts/compile_resources.bat new file mode 100644 index 00000000..3d08a734 --- /dev/null +++ b/scripts/compile_resources.bat @@ -0,0 +1,4 @@ +cd "%~dp0.." +pyuic6 "./res/about.ui" -o "./src/about.py" +pyuic6 "./res/design.ui" -o "./src/design.py" +pyside6-rcc "./res/resources.qrc" -o "./src/resources_rc.py" diff --git a/scripts/install.bat b/scripts/install.bat new file mode 100644 index 00000000..664c75b5 --- /dev/null +++ b/scripts/install.bat @@ -0,0 +1 @@ +pip3.9 install -r "%~p0/requirements.txt" diff --git a/scripts/requirements.txt b/scripts/requirements.txt new file mode 100644 index 00000000..645a1c3e --- /dev/null +++ b/scripts/requirements.txt @@ -0,0 +1,27 @@ +# Requirements file for AutoSplit +# +# Python: CPython 3.9+ +# +# Usage: ./scripts/install.bat +# +# If you're having issues with the libraries, you might want to first run: +# pip3.9 uninstall -r requirements.txt +# +# Creating AutoSplit.exe with PyInstaller: ./build.bat +# +# Dependencies: +wheel +PyQt6 +opencv-python +Pillow +ImageHash +pywin32 +keyboard +pyautogui +PySide6 +# +# Comment this out if you don't want to create AutoSplit.exe: +PyInstaller +# +# Comment this out if you don't want to install the PyQt designer +PyQt6-tools diff --git a/src/AutoSplit.py b/src/AutoSplit.py index daed4516..1fa1f47c 100644 --- a/src/AutoSplit.py +++ b/src/AutoSplit.py @@ -1,32 +1,33 @@ -from PyQt4 import QtGui, QtCore, QtTest +#!/usr/bin/python3.9 +# -*- coding: utf-8 -*- + +from PyQt6 import QtCore, QtGui, QtTest, QtWidgets +from win32 import win32gui import sys +import signal import os -import win32gui import cv2 -import time import ctypes.wintypes import ctypes -import keyboard -import glob import numpy as np +import threading +import time -import design -import about +from menu_bar import about, VERSION, viewHelp +import error_messages import compare +import design import capture_windows import split_parser -class AutoSplit(QtGui.QMainWindow, design.Ui_MainWindow): - from hotkeys import beforeSettingHotkey, afterSettingHotkey, setSplitHotkey, setResetHotkey, setSkipSplitHotkey, setUndoSplitHotkey, setPauseHotkey - from error_messages import (splitImageDirectoryError, splitImageDirectoryNotFoundError, imageTypeError, regionError, regionSizeError, - splitHotkeyError, customThresholdError, customPauseError, alphaChannelError, alignRegionImageTypeError, alignmentNotMatchedError, - multipleResetImagesError, noResetImageThresholdError, resetHotkeyError, pauseHotkeyError, dummySplitsError, settingsNotFoundError, - invalidSettingsError, oldVersionSettingsFileError, noSettingsFileOnOpenError, tooManySettingsFilesOnOpenError) + +class AutoSplit(QtWidgets.QMainWindow, design.Ui_MainWindow): + from hotkeys import send_command from settings_file import saveSettings, saveSettingsAs, loadSettings, haveSettingsChanged, getSaveSettingsValues from screen_region import selectRegion, selectWindow, alignRegion - from menu_bar import about, viewHelp + from hotkeys import afterSettingHotkey, setSplitHotkey, setResetHotkey, setSkipSplitHotkey, setUndoSplitHotkey, setPauseHotkey - myappid = u'mycompany.myproduct.subproduct.version' + myappid = f'Toufool.AutoSplit.v{VERSION}' ctypes.windll.shell32.SetCurrentProcessExplicitAppUserModelID(myappid) # signals @@ -42,9 +43,12 @@ def __init__(self, parent=None): super(AutoSplit, self).__init__(parent) self.setupUi(self) + # Parse command line args + self.is_auto_controlled = ('--auto-controlled' in sys.argv) + # close all processes when closing window - self.actionView_Help.triggered.connect(self.viewHelp) - self.actionAbout.triggered.connect(self.about) + self.actionView_Help.triggered.connect(viewHelp) + self.actionAbout.triggered.connect(lambda: about(self)) self.actionSave_Settings.triggered.connect(self.saveSettings) self.actionSave_Settings_As.triggered.connect(self.saveSettingsAs) self.actionLoad_Settings.triggered.connect(self.loadSettings) @@ -54,6 +58,57 @@ def __init__(self, parent=None): self.skipsplitButton.setEnabled(False) self.resetButton.setEnabled(False) + if self.is_auto_controlled: + self.setsplithotkeyButton.setEnabled(False) + self.setresethotkeyButton.setEnabled(False) + self.setskipsplithotkeyButton.setEnabled(False) + self.setundosplithotkeyButton.setEnabled(False) + self.setpausehotkeyButton.setEnabled(False) + self.startautosplitterButton.setEnabled(False) + self.splitLineEdit.setEnabled(False) + self.resetLineEdit.setEnabled(False) + self.skipsplitLineEdit.setEnabled(False) + self.undosplitLineEdit.setEnabled(False) + self.pausehotkeyLineEdit.setEnabled(False) + + # Send version and process ID to stdout + print(f"{VERSION}\n{os.getpid()}", flush=True) + + class Worker(QtCore.QObject): + autosplit = None + + def __init__(self, autosplit): + self.autosplit = autosplit + super().__init__() + + def run(self): + while True: + line = input() + # TODO: "AutoSplit Integration" needs to call this and wait instead of outright killing the app. + # TODO: See if we can also get LiveSplit to wait on Exit in "AutoSplit Integration" + # For now this can only used in a Development environment + if line == 'kill': + self.autosplit.closeEvent() + break + elif line == 'start': + self.autosplit.startAutoSplitter() + elif line == 'split' or line == 'skip': + self.autosplit.startSkipSplit() + elif line == 'undo': + self.autosplit.startUndoSplit() + elif line == 'reset': + self.autosplit.startReset() + # TODO: Not yet implemented in AutoSplit Integration + # elif line == 'pause': + # self.startPause() + + # Use and Start the thread that checks for updates from LiveSplit + self.update_auto_control = QtCore.QThread() + worker = Worker(self) + worker.moveToThread(self.update_auto_control) + self.update_auto_control.started.connect(worker.run) + self.update_auto_control.start() + # resize to these width and height so that FPS performance increases self.RESIZE_WIDTH = 320 self.RESIZE_HEIGHT = 240 @@ -77,6 +132,7 @@ def __init__(self, parent=None): self.setpausehotkeyButton.clicked.connect(self.setPauseHotkey) self.alignregionButton.clicked.connect(self.alignRegion) self.selectwindowButton.clicked.connect(self.selectWindow) + self.startImageReloadButton.clicked.connect(lambda: self.loadStartImage(True, False)) # update x, y, width, and height when changing the value of these spinbox's are changed self.xSpinBox.valueChanged.connect(self.updateX) @@ -91,7 +147,6 @@ def __init__(self, parent=None): self.resetSignal.connect(self.reset) self.skipSplitSignal.connect(self.skipSplit) self.undoSplitSignal.connect(self.undoSplit) - #self.pauseSignal.connect(self.pause) # live image checkbox self.liveimageCheckBox.clicked.connect(self.checkLiveImage) @@ -103,7 +158,7 @@ def __init__(self, parent=None): self.hwnd_title = '' self.rect = ctypes.wintypes.RECT() - #last loaded settings and last successful loaded settings file path to None until we try to load them + # Last loaded settings and last successful loaded settings file path to None until we try to load them self.last_loaded_settings = None self.last_successfully_loaded_settings_file_path = None @@ -117,12 +172,24 @@ def __init__(self, parent=None): self.live_image_function_on_open = True + # Automatic timer start + self.timerStartImage = QtCore.QTimer() + self.timerStartImage.timeout.connect(self.startImageFunction) + self.timerStartImage_is_running = False + self.start_image = None + self.highest_similarity = 0.0 + self.check_start_image_timestamp = 0.0 + + # Try to load start image + self.loadStartImage(wait_for_delay=False) + # FUNCTIONS - #TODO add checkbox for going back to image 1 when resetting. + + # TODO add checkbox for going back to image 1 when resetting. def browse(self): # User selects the file with the split images in it. self.split_image_directory = str( - QtGui.QFileDialog.getExistingDirectory(self, "Select Split Image Directory")) + '\\' + QtWidgets.QFileDialog.getExistingDirectory(self, "Select Split Image Directory")) + '\\' # If the user doesn't select a folder, it defaults to \. Set it back to whats in the LineEdit, and return if self.split_image_directory == '\\': @@ -134,7 +201,7 @@ def browse(self): def checkLiveImage(self): if self.liveimageCheckBox.isChecked(): - self.timerLiveImage.start(1000 / 60) + self.timerLiveImage.start(int(1000 / 60)) else: self.timerLiveImage.stop() self.liveImageFunction() @@ -147,7 +214,7 @@ def liveImageFunction(self): return elif win32gui.GetWindowText(self.hwnd) == '' and self.live_image_function_on_open == False: - self.regionError() + error_messages.regionError() self.timerLiveImage.stop() return @@ -159,13 +226,133 @@ def liveImageFunction(self): # Convert to set it on the label qImg = QtGui.QImage(capture, capture.shape[1], capture.shape[0], capture.shape[1] * 3, - QtGui.QImage.Format_RGB888) + QtGui.QImage.Format.Format_RGB888) pix = QtGui.QPixmap(qImg) self.liveImage.setPixmap(pix) except AttributeError: pass + def loadStartImage(self, started_by_button=False, wait_for_delay=True): + self.timerStartImage.stop() + self.currentsplitimagefileLabel.setText(' ') + self.startImageLabel.setText("Start image: not found") + QtWidgets.QApplication.processEvents() + + if self.splitimagefolderLineEdit.text() == 'No Folder Selected' \ + or not os.path.exists(self.split_image_directory): + # Only show error messages if the user clicked the button + if started_by_button: + error_messages.splitImageDirectoryError() + return + if self.hwnd == 0 or win32gui.GetWindowText(self.hwnd) == '': + if started_by_button: + error_messages.regionError() + return + + self.start_image_name = None + for image in os.listdir(self.split_image_directory): + if 'start_auto_splitter' in image.lower(): + if self.start_image_name is None: + self.start_image_name = image + else: + if started_by_button: + error_messages.multipleKeywordImagesError('start_auto_splitter') + return + + if self.start_image_name is None: + if started_by_button: + error_messages.noKeywordImageError('start_auto_splitter') + return + + self.split_image_filenames = os.listdir(self.split_image_directory) + self.split_image_number = 0 + self.loop_number = 1 + self.start_image_mask = None + path = self.split_image_directory + self.start_image_name + + # if image has transparency, create a mask + if compare.checkIfImageHasTransparency(path): + # create mask based on resized, nearest neighbor interpolated split image + self.start_image = cv2.imread(path, cv2.IMREAD_UNCHANGED) + self.start_image = cv2.resize(self.start_image, (self.RESIZE_WIDTH, self.RESIZE_HEIGHT), + interpolation=cv2.INTER_NEAREST) + lower = np.array([0, 0, 0, 1], dtype="uint8") + upper = np.array([255, 255, 255, 255], dtype="uint8") + self.start_image_mask = cv2.inRange(self.start_image, lower, upper) + + # set split image as BGR + self.start_image = cv2.cvtColor(self.start_image, cv2.COLOR_BGRA2BGR) + + # otherwise, open image normally. don't interpolate nearest neighbor here so setups before 1.2.0 still work. + else: + self.start_image = cv2.imread(path, cv2.IMREAD_COLOR) + self.start_image = cv2.resize(self.start_image, (self.RESIZE_WIDTH, self.RESIZE_HEIGHT)) + + start_image_pause = split_parser.pause_from_filename(self.start_image_name) + if wait_for_delay and start_image_pause is not None and start_image_pause > 0: + self.check_start_image_timestamp = time.time() + start_image_pause + self.startImageLabel.setText("Start image: paused") + self.currentSplitImage.setText('none (paused)') + self.currentSplitImage.setAlignment(QtCore.Qt.AlignCenter) + self.highestsimilarityLabel.setText(' ') + else: + self.check_start_image_timestamp = 0.0 + self.startImageLabel.setText("Start image: ready") + self.updateSplitImage(self.start_image_name) + + self.highest_similarity = 0.0 + + self.timerStartImage.start(int(1000 / self.fpslimitSpinBox.value())) + + QtWidgets.QApplication.processEvents() + + def startImageFunction(self): + if time.time() < self.check_start_image_timestamp: + return + + if self.check_start_image_timestamp > 0: + self.check_start_image_timestamp = 0.0 + self.startImageLabel.setText("Start image: ready") + self.updateSplitImage(self.start_image_name) + + start_image_masked = (self.start_image_mask is not None) + capture = self.getCaptureForComparison(start_image_masked) + start_image_similarity = self.compareImage(self.start_image, self.start_image_mask, capture) + start_image_threshold = split_parser.threshold_from_filename(self.start_image_name) \ + or self.similaritythresholdDoubleSpinBox.value() + start_image_split_below_threshold = False + start_image_flags = split_parser.flags_from_filename(self.start_image_name) + start_image_delay = split_parser.delay_from_filename(self.start_image_name) + + if start_image_similarity > self.highest_similarity: + self.highest_similarity = start_image_similarity + + # If the {b} flag is set, let similarity go above threshold first, then split on similarity below threshold + # Otherwise just split when similarity goes above threshold + if start_image_flags & 0x04 == 0x04 \ + and not start_image_split_below_threshold \ + and start_image_similarity >= start_image_threshold: + start_image_split_below_threshold = True + return + if (start_image_flags & 0x04 == 0x04 + and start_image_split_below_threshold + and start_image_similarity < start_image_threshold) \ + or (start_image_similarity >= start_image_threshold and start_image_flags & 0x04 == 0): + def split(): + self.hasSentStart = False + self.send_command("start") + time.sleep(1 / self.fpslimitSpinBox.value()) + self.startAutoSplitter() + + self.timerStartImage.stop() + self.startImageLabel.setText("Start image: started") + + if start_image_delay > 0: + threading.Timer(start_image_delay / 1000, split).start() + else: + split() + # update x, y, width, height when spinbox values are changed def updateX(self): try: @@ -199,13 +386,13 @@ def updateSplitImageGUI(self, qImg): def takeScreenshot(self): # error checks if self.splitimagefolderLineEdit.text() == 'No Folder Selected': - self.splitImageDirectoryError() + error_messages.splitImageDirectoryError() return if os.path.exists(self.splitimagefolderLineEdit.text()) == False: - self.splitImageDirectoryNotFoundError() + error_messages.splitImageDirectoryNotFoundError() return if self.hwnd == 0 or win32gui.GetWindowText(self.hwnd) == '': - self.regionError() + error_messages.regionError() return take_screenshot_filename = '001_SplitImage' @@ -231,23 +418,23 @@ def checkFPS(self): # error checking split_image_directory = self.splitimagefolderLineEdit.text() if split_image_directory == 'No Folder Selected' or split_image_directory is None: - self.splitImageDirectoryError() + error_messages.splitImageDirectoryError() return split_image_filenames = os.listdir(split_image_directory) for image in split_image_filenames: if cv2.imread(self.split_image_directory + image, cv2.IMREAD_COLOR) is None: - self.imageTypeError(image) + error_messages.imageTypeError(image) return else: pass if self.hwnd == 0 or win32gui.GetWindowText(self.hwnd) == '': - self.regionError() + error_messages.regionError() return if self.width == 0 or self.height == 0: - self.regionSizeError() + error_messages.regionSizeError() return # grab first image in the split image folder @@ -283,7 +470,7 @@ def checkFPS(self): # undo split button and hotkey connect to here def undoSplit(self): - if self.undosplitButton.isEnabled() == False: + if self.undosplitButton.isEnabled() == False and not self.is_auto_controlled: return if self.loop_number != 1 and self.groupDummySplitsCheckBox.isChecked() == False: @@ -306,7 +493,7 @@ def undoSplit(self): # skip split button and hotkey connect to here def skipSplit(self): - if self.skipsplitButton.isEnabled() == False: + if self.skipsplitButton.isEnabled() == False and not self.is_auto_controlled: return if self.loop_number < self.split_image_loop_amount[self.split_image_number] and self.groupDummySplitsCheckBox.isChecked() == False: @@ -324,21 +511,28 @@ def skipSplit(self): return - #def pause(self): - #TODO add what to do when you hit pause hotkey, if this even needs to be done + # def pause(self): + # TODO add what to do when you hit pause hotkey, if this even needs to be done def reset(self): - # when the reset button or hotkey is pressed, it will change this text, which will trigger in the autoSplitter function, if running, to abort and change GUI. + # When the reset button or hotkey is pressed, it will change this text, + # which will trigger in the autoSplitter function, if running, to abort and change GUI. self.startautosplitterButton.setText('Start Auto Splitter') return - # functions for the hotkeys to return to the main thread from signals and start their corresponding functions + # Functions for the hotkeys to return to the main thread from signals and start their corresponding functions def startAutoSplitter(self): - # if the auto splitter is already running or the button is disabled, don't emit the signal to start it. - if self.startautosplitterButton.text() == 'Running..' or self.startautosplitterButton.isEnabled() == False: + self.hasSentStart = True + + # If the auto splitter is already running or the button is disabled, don't emit the signal to start it. + if self.startautosplitterButton.text() == 'Running...' or \ + (not self.startautosplitterButton.isEnabled() and not self.is_auto_controlled): return - else: - self.startAutoSplitterSignal.emit() + + if self.startImageLabel.text() == "Start image: ready" or self.startImageLabel.text() == "Start image: paused": + self.startImageLabel.setText("Start image: not ready") + + self.startAutoSplitterSignal.emit() def startReset(self): self.resetSignal.emit() @@ -352,19 +546,28 @@ def startUndoSplit(self): def startPause(self): self.pauseSignal.emit() + def checkForReset(self): + if self.startautosplitterButton.text() == 'Start Auto Splitter': + if self.autostartonresetCheckBox.isChecked(): + self.startAutoSplitterSignal.emit() + else: + self.guiChangesOnReset() + return True + return False + def autoSplitter(self): # error checking: if str(self.splitimagefolderLineEdit.text()) == 'No Folder Selected': self.guiChangesOnReset() - self.splitImageDirectoryError() + error_messages.splitImageDirectoryError() return if os.path.exists(self.splitimagefolderLineEdit.text()) == False: self.guiChangesOnReset() - self.splitImageDirectoryNotFoundError() + error_messages.splitImageDirectoryNotFoundError() return - if self.hwnd == 0 or win32gui.GetWindowText(self.hwnd) == '': + if self.hwnd == 0 or win32gui.GetWindowText(self.hwnd) == '': self.guiChangesOnReset() - self.regionError() + error_messages.regionError() return # get split image filenames @@ -373,57 +576,27 @@ def autoSplitter(self): # Make sure that each of the images follows the guidelines for correct format # according to all of the settings selected by the user. for image in self.split_image_filenames: - - # Check to make sure the file is actually an image format that can be opened - # according to the mask flag - if split_parser.flags_from_filename(image) & 0x02 == 0x02: - source = cv2.imread(self.split_image_directory + image, cv2.IMREAD_UNCHANGED) - - if source is None: - # Opencv couldn't open this file as an image, this isn't a correct - # file format that is supported - self.guiChangesOnReset() - self.imageTypeError(image) - return - - if source.shape[2] != 4: - # Error, this file doesn't have an alpha channel even - # though the flag for masking was added - self.guiChangesOnReset() - self.alphaChannelError(image) - return - - else: - if cv2.imread(self.split_image_directory + image, cv2.IMREAD_COLOR) is None: - # Opencv couldn't open this file as an image, this isn't a correct - # file format that is supported - self.guiChangesOnReset() - self.imageTypeError(image) - return - - #error out if there is a {p} flag but no pause hotkey set. - if self.pausehotkeyLineEdit.text() == '' and split_parser.flags_from_filename(image) & 0x08 == 0x08: - self.guiChangesOnReset() - self.pauseHotkeyError() - return - - if self.custompausetimesCheckBox.isChecked() and split_parser.pause_from_filename(image) is None: - # Error, this file doesn't have a pause, but the checkbox was - # selected for unique pause times + # Test for image without transparency + if (cv2.imread(self.split_image_directory + image, cv2.IMREAD_COLOR) is None + # Test for image with transparency + and cv2.imread(self.split_image_directory + image, cv2.IMREAD_UNCHANGED) is None): + # Opencv couldn't open this file as an image, this isn't a correct + # file format that is supported self.guiChangesOnReset() - self.customPauseError(image) + error_messages.imageTypeError(image) return - if self.customthresholdsCheckBox.isChecked() and split_parser.threshold_from_filename(image) is None: - # Error, this file doesn't have a threshold, but the checkbox - # was selected for unique thresholds + # error out if there is a {p} flag but no pause hotkey set and is not auto controlled. + if (self.pausehotkeyLineEdit.text() == '' + and split_parser.flags_from_filename(image) & 0x08 == 0x08 + and not self.is_auto_controlled): self.guiChangesOnReset() - self.customThresholdError(image) + error_messages.pauseHotkeyError() return - if self.splitLineEdit.text() == '': + if self.splitLineEdit.text() == '' and not self.is_auto_controlled: self.guiChangesOnReset() - self.splitHotkeyError() + error_messages.splitHotkeyError() return # find reset image then remove it from the list @@ -434,19 +607,13 @@ def autoSplitter(self): if split_parser.is_reset_image(image): self.guiChangesOnReset() - self.multipleResetImagesError() + error_messages.multipleKeywordImagesError('reset') return - # if there is no custom threshold for the reset image, throw an error. - if self.reset_image is not None and self.reset_image_threshold is None: + # If there is no reset hotkey set but a reset image is present, and is not auto controlled, throw an error. + if self.resetLineEdit.text() == '' and self.reset_image is not None and not self.is_auto_controlled: self.guiChangesOnReset() - self.noResetImageThresholdError() - return - - # If there is no reset hotkey set but a reset image is present, throw an error. - if self.resetLineEdit.text() == '' and self.reset_image is not None: - self.guiChangesOnReset() - self.resetHotkeyError() + error_messages.resetHotkeyError() return # construct groups of splits if needed @@ -477,7 +644,7 @@ def autoSplitter(self): self.split_image_loop_amount.append(split_parser.loop_from_filename(image)) if any(x > 1 for x in self.split_image_loop_amount) and self.groupDummySplitsCheckBox.isChecked() == True: - self.dummySplitsError() + error_messages.dummySplitsError() return self.guiChangesOnStart() @@ -498,7 +665,7 @@ def autoSplitter(self): if self.waiting_for_split_delay == True: time_millis = int(round(time.time() * 1000)) if time_millis < self.split_time: - QtGui.QApplication.processEvents() + QtWidgets.QApplication.processEvents() continue self.updateSplitImage() @@ -511,41 +678,24 @@ def autoSplitter(self): if win32gui.GetWindowText(self.hwnd) == '': self.reset() - # loop goes into here if start auto splitter text is "Start Auto Splitter" - if self.startautosplitterButton.text() == 'Start Auto Splitter': - if self.autostartonresetCheckBox.isChecked(): - self.startAutoSplitterSignal.emit() - return - else: - self.guiChangesOnReset() - return + if self.checkForReset(): + return # calculate similarity for reset image - reset_masked = None - capture = None + capture = self.getCaptureForComparison() if self.shouldCheckResetImage(): - reset_masked = (self.reset_mask is not None) - capture = self.getCaptureForComparison(reset_masked) - reset_similarity = self.compareImage(self.reset_image, self.reset_mask, capture) if reset_similarity >= self.reset_image_threshold: - keyboard.send(str(self.resetLineEdit.text())) - self.reset() + self.send_command("reset") - # loop goes into here if start auto splitter text is "Start Auto Splitter" - if self.startautosplitterButton.text() == 'Start Auto Splitter': - if self.autostartonresetCheckBox.isChecked(): - self.startAutoSplitterSignal.emit() - return - else: - self.guiChangesOnReset() - return + if self.checkForReset(): + return - # get capture again if needed - masked = (self.flags & 0x02 == 0x02) - if capture is None or masked != reset_masked: - capture = self.getCaptureForComparison(masked) + # TODO: Check is this actually still needed? + # get capture again if current and reset image have different mask flags + if self.imageHasTransparency != (self.reset_mask is not None): + capture = self.getCaptureForComparison() # calculate similarity for split image self.similarity = self.compareImage(self.split_image, self.mask, capture) @@ -566,44 +716,44 @@ def autoSplitter(self): else: self.highestsimilarityLabel.setText(' ') - # if its the last split image and last loop number, disable the skip split button - if (self.split_image_number == self.number_of_split_images - 1 and self.loop_number == self.split_image_loop_amount[self.split_image_number]) or (self.groupDummySplitsCheckBox.isChecked() == True and self.dummy_splits_array[self.split_image_number:].count(False) <= 1): - self.skipsplitButton.setEnabled(False) - else: - self.skipsplitButton.setEnabled(True) + if not self.is_auto_controlled: + # if its the last split image and last loop number, disable the skip split button + if (self.split_image_number == self.number_of_split_images - 1 and self.loop_number == self.split_image_loop_amount[self.split_image_number]) or (self.groupDummySplitsCheckBox.isChecked() == True and self.dummy_splits_array[self.split_image_number:].count(False) <= 1): + self.skipsplitButton.setEnabled(False) + else: + self.skipsplitButton.setEnabled(True) - # if its the first split image and first loop, disable the undo split button - if self.split_image_number == 0 and self.loop_number == 1: - self.undosplitButton.setEnabled(False) - else: - self.undosplitButton.setEnabled(True) + # if its the first split image and first loop, disable the undo split button + if self.split_image_number == 0 and self.loop_number == 1: + self.undosplitButton.setEnabled(False) + else: + self.undosplitButton.setEnabled(True) - # if the b flag is set, let similarity go above threshold first, then split on similarity below threshold. + # if the b flag is set, let similarity go above threshold first, + # then split on similarity below threshold. # if no b flag, just split when similarity goes above threshold. - if self.flags & 0x04 == 0x04 and self.split_below_threshold == False: - if self.waiting_for_split_delay == False and self.similarity >= self.similaritythresholdDoubleSpinBox.value(): - self.split_below_threshold = True - continue - elif self.flags & 0x04 == 0x04 and self.split_below_threshold == True: - if self.waiting_for_split_delay == False and self.similarity < self.similaritythresholdDoubleSpinBox.value(): - self.split_below_threshold = False - break - else: - if self.waiting_for_split_delay == False and self.similarity >= self.similaritythresholdDoubleSpinBox.value(): + if not self.waiting_for_split_delay: + if self.flags & 0x04 == 0x04 and not self.split_below_threshold: + if self.similarity >= self.similarity_threshold: + self.split_below_threshold = True + continue + elif self.flags & 0x04 == 0x04 and self.split_below_threshold: + if self.similarity < self.similarity_threshold: + self.split_below_threshold = False + break + elif self.similarity >= self.similarity_threshold: break # limit the number of time the comparison runs to reduce cpu usage fps_limit = self.fpslimitSpinBox.value() time.sleep((1 / fps_limit) - (time.time() - start) % (1 / fps_limit)) - QtGui.QApplication.processEvents() + QtWidgets.QApplication.processEvents() # comes here when threshold gets met # We need to make sure that this isn't a dummy split before sending # the key press. - if (self.flags & 0x01 == 0x01): - pass - else: + if not (self.flags & 0x01 == 0x01): # If it's a delayed split, check if the delay has passed # Otherwise calculate the split time for the key press if self.split_delay > 0 and self.waiting_for_split_delay == False: @@ -612,32 +762,26 @@ def autoSplitter(self): self.undosplitButton.setEnabled(False) self.skipsplitButton.setEnabled(False) self.currentsplitimagefileLabel.setText(' ') - self.currentSplitImage.setAlignment(QtCore.Qt.AlignCenter) + self.currentSplitImage.setAlignment(QtCore.Qt.AlignmentFlag.AlignCenter) # check for reset while delayed and display a counter of the remaining split delay time delay_start_time = time.time() while time.time() - delay_start_time < (self.split_delay / 1000): - self.delay_time_left = str(round((self.split_delay / 1000) - (time.time() - delay_start_time), 1)) - self.currentSplitImage.setText('Delayed Split: ' + self.delay_time_left + ' sec remaining') + delay_time_left = round((self.split_delay / 1000) - (time.time() - delay_start_time), 1) + self.currentSplitImage.setText(f'Delayed Split: {delay_time_left} sec remaining') # check for reset if win32gui.GetWindowText(self.hwnd) == '': self.reset() - if self.startautosplitterButton.text() == 'Start Auto Splitter': - if self.autostartonresetCheckBox.isChecked(): - self.startAutoSplitterSignal.emit() - return - else: - self.guiChangesOnReset() - return + if self.checkForReset(): + return # calculate similarity for reset image - if self.shouldCheckResetImage() == True: - reset_masked = (self.reset_mask is not None) - capture = self.getCaptureForComparison(reset_masked) + if self.shouldCheckResetImage(): + capture = self.getCaptureForComparison() reset_similarity = self.compareImage(self.reset_image, self.reset_mask, capture) if reset_similarity >= self.reset_image_threshold: - keyboard.send(str(self.resetLineEdit.text())) + self.send_command("reset") self.reset() continue @@ -647,9 +791,9 @@ def autoSplitter(self): # if {p} flag hit pause key, otherwise hit split hotkey if (self.flags & 0x08 == 0x08): - keyboard.send(str(self.pausehotkeyLineEdit.text())) + self.send_command("pause") else: - keyboard.send(str(self.splitLineEdit.text())) + self.send_command("split") # increase loop number if needed, set to 1 if it was the last loop. if self.loop_number < self.split_image_loop_amount[self.split_image_number]: @@ -675,53 +819,48 @@ def autoSplitter(self): if self.number_of_split_images != self.split_image_number: # set current split image to none self.currentsplitimagefileLabel.setText(' ') - self.currentSplitImage.setAlignment(QtCore.Qt.AlignCenter) + self.currentSplitImage.setAlignment(QtCore.Qt.AlignmentFlag.AlignCenter) self.imageloopLabel.setText('Image Loop #: -') - # if its the last split image and last loop number, disable the skip split button - if (self.split_image_number == self.number_of_split_images - 1 and self.loop_number == self.split_image_loop_amount[self.split_image_number]) or (self.groupDummySplitsCheckBox.isChecked() == True and self.dummy_splits_array[self.split_image_number:].count(False) <= 1): - self.skipsplitButton.setEnabled(False) - else: - self.skipsplitButton.setEnabled(True) + if not self.is_auto_controlled: + # if its the last split image and last loop number, disable the skip split button + if (self.split_image_number == self.number_of_split_images - 1 and self.loop_number == self.split_image_loop_amount[self.split_image_number]) or (self.groupDummySplitsCheckBox.isChecked() == True and self.dummy_splits_array[self.split_image_number:].count(False) <= 1): + self.skipsplitButton.setEnabled(False) + else: + self.skipsplitButton.setEnabled(True) - # if its the first split image and first loop, disable the undo split button - if self.split_image_number == 0 and self.loop_number == 1: - self.undosplitButton.setEnabled(False) - else: - self.undosplitButton.setEnabled(True) + # if its the first split image and first loop, disable the undo split button + if self.split_image_number == 0 and self.loop_number == 1: + self.undosplitButton.setEnabled(False) + else: + self.undosplitButton.setEnabled(True) - QtGui.QApplication.processEvents() + QtWidgets.QApplication.processEvents() # I have a pause loop here so that it can check if the user presses skip split, undo split, or reset here. # Also updates the current split image text, counting down the time until the next split image pause_start_time = time.time() - while time.time() - pause_start_time < self.pauseDoubleSpinBox.value(): - self.pause_time_left = str(round((self.pauseDoubleSpinBox.value()) - (time.time() - pause_start_time), 1)) - self.currentSplitImage.setText('None (Paused). ' + self.pause_time_left + ' sec remaining') + while time.time() - pause_start_time < self.pause: + pause_time_left = round(self.pause - (time.time() - pause_start_time), 1) + self.currentSplitImage.setText(f'None (Paused). {pause_time_left} sec remaining') # check for reset if win32gui.GetWindowText(self.hwnd) == '': self.reset() - if self.startautosplitterButton.text() == 'Start Auto Splitter': - if self.autostartonresetCheckBox.isChecked(): - self.startAutoSplitterSignal.emit() - return - else: - self.guiChangesOnReset() - return + if self.checkForReset(): + return # check for skip/undo split: if self.split_image_number != pause_split_image_number or self.loop_number != pause_loop_number: break # calculate similarity for reset image - if self.shouldCheckResetImage() == True: - reset_masked = (self.reset_mask is not None) - capture = self.getCaptureForComparison(reset_masked) + if self.shouldCheckResetImage(): + capture = self.getCaptureForComparison() reset_similarity = self.compareImage(self.reset_image, self.reset_mask, capture) if reset_similarity >= self.reset_image_threshold: - keyboard.send(str(self.resetLineEdit.text())) + self.send_command("reset") self.reset() continue @@ -730,22 +869,27 @@ def autoSplitter(self): # loop breaks to here when the last image splits self.guiChangesOnReset() + def guiChangesOnStart(self): - self.startautosplitterButton.setText('Running..') + self.timerStartImage.stop() + self.startautosplitterButton.setText('Running...') self.browseButton.setEnabled(False) - self.startautosplitterButton.setEnabled(False) - self.resetButton.setEnabled(True) - self.undosplitButton.setEnabled(True) - self.skipsplitButton.setEnabled(True) - self.setsplithotkeyButton.setEnabled(False) - self.setresethotkeyButton.setEnabled(False) - self.setskipsplithotkeyButton.setEnabled(False) - self.setundosplithotkeyButton.setEnabled(False) - self.setpausehotkeyButton.setEnabled(False) - self.custompausetimesCheckBox.setEnabled(False) - self.customthresholdsCheckBox.setEnabled(False) self.groupDummySplitsCheckBox.setEnabled(False) - QtGui.QApplication.processEvents() + self.startImageReloadButton.setEnabled(False) + + if not self.is_auto_controlled: + self.startautosplitterButton.setEnabled(False) + self.resetButton.setEnabled(True) + self.undosplitButton.setEnabled(True) + self.skipsplitButton.setEnabled(True) + self.setsplithotkeyButton.setEnabled(False) + self.setresethotkeyButton.setEnabled(False) + self.setskipsplithotkeyButton.setEnabled(False) + self.setundosplithotkeyButton.setEnabled(False) + self.setpausehotkeyButton.setEnabled(False) + + QtWidgets.QApplication.processEvents() + def guiChangesOnReset(self): self.startautosplitterButton.setText('Start Auto Splitter') @@ -755,19 +899,23 @@ def guiChangesOnReset(self): self.livesimilarityLabel.setText(' ') self.highestsimilarityLabel.setText(' ') self.browseButton.setEnabled(True) - self.startautosplitterButton.setEnabled(True) - self.resetButton.setEnabled(False) - self.undosplitButton.setEnabled(False) - self.skipsplitButton.setEnabled(False) - self.setsplithotkeyButton.setEnabled(True) - self.setresethotkeyButton.setEnabled(True) - self.setskipsplithotkeyButton.setEnabled(True) - self.setundosplithotkeyButton.setEnabled(True) - self.setpausehotkeyButton.setEnabled(True) - self.custompausetimesCheckBox.setEnabled(True) - self.customthresholdsCheckBox.setEnabled(True) self.groupDummySplitsCheckBox.setEnabled(True) - QtGui.QApplication.processEvents() + self.startImageReloadButton.setEnabled(True) + + if not self.is_auto_controlled: + self.startautosplitterButton.setEnabled(True) + self.resetButton.setEnabled(False) + self.undosplitButton.setEnabled(False) + self.skipsplitButton.setEnabled(False) + self.setsplithotkeyButton.setEnabled(True) + self.setresethotkeyButton.setEnabled(True) + self.setskipsplithotkeyButton.setEnabled(True) + self.setundosplithotkeyButton.setEnabled(True) + self.setpausehotkeyButton.setEnabled(True) + + QtWidgets.QApplication.processEvents() + self.loadStartImage(False, False) + def compareImage(self, image, mask, capture): if mask is None: @@ -785,32 +933,20 @@ def compareImage(self, image, mask, capture): elif self.comparisonmethodComboBox.currentIndex() == 2: return compare.compare_phash_masked(image, capture, mask) - def getCaptureForComparison(self, masked): + def getCaptureForComparison(self): # grab screenshot of capture region capture = capture_windows.capture_region(self.hwnd, self.rect) - - # if flagged as a mask, capture with nearest neighbor interpolation. else don't so that - # threshold settings on versions below 1.2.0 aren't messed up - if (masked): - capture = cv2.resize(capture, (self.RESIZE_WIDTH, self.RESIZE_HEIGHT), interpolation=cv2.INTER_NEAREST) - else: - capture = cv2.resize(capture, (self.RESIZE_WIDTH, self.RESIZE_HEIGHT)) - + # Capture with nearest neighbor interpolation + capture = cv2.resize(capture, (self.RESIZE_WIDTH, self.RESIZE_HEIGHT), interpolation=cv2.INTER_NEAREST) # convert to BGR - capture = cv2.cvtColor(capture, cv2.COLOR_BGRA2BGR) - - return capture + return cv2.cvtColor(capture, cv2.COLOR_BGRA2BGR) def shouldCheckResetImage(self): - if self.reset_image is not None and time.time() - self.run_start_time > self.reset_image_pause_time: - return True - - return False + return self.reset_image is not None and time.time() - self.run_start_time > self.reset_image_pause_time def findResetImage(self): self.reset_image = None self.reset_mask = None - self.reset_image_threshold = None reset_image_file = None for i, image in enumerate(self.split_image_filenames): @@ -825,16 +961,15 @@ def findResetImage(self): # create reset image and keep in memory path = self.split_image_directory + reset_image_file - flags = split_parser.flags_from_filename(reset_image_file) - - self.reset_image_threshold = split_parser.threshold_from_filename(reset_image_file) - self.reset_image_pause_time = split_parser.pause_from_filename(reset_image_file) - if self.reset_image_pause_time is None: - self.reset_image_pause_time = 0 + # Override values if they have been specified on the file + self.reset_image_pause_time = split_parser.pause_from_filename(reset_image_file) \ + or self.pauseDoubleSpinBox.value() + self.reset_image_threshold = split_parser.threshold_from_filename(reset_image_file) \ + or self.similaritythresholdDoubleSpinBox.value() - # if theres a mask flag, create a mask - if (flags & 0x02 == 0x02): + # if image has transparency, create a mask + if compare.checkIfImageHasTransparency(path): # create mask based on resized, nearest neighbor interpolated split image self.reset_image = cv2.imread(path, cv2.IMREAD_UNCHANGED) self.reset_image = cv2.resize(self.reset_image, (self.RESIZE_WIDTH, self.RESIZE_HEIGHT), @@ -846,23 +981,23 @@ def findResetImage(self): # set split image as BGR self.reset_image = cv2.cvtColor(self.reset_image, cv2.COLOR_BGRA2BGR) - # else if there is no mask flag, open image normally. don't interpolate nearest neighbor here so setups before 1.2.0 still work. + # otherwise, open image normally. don't interpolate nearest neighbor here so setups before 1.2.0 still work. else: self.reset_image = cv2.imread(path, cv2.IMREAD_COLOR) self.reset_image = cv2.resize(self.reset_image, (self.RESIZE_WIDTH, self.RESIZE_HEIGHT)) - def updateSplitImage(self): - + def updateSplitImage(self, custom_image_file=None): # get split image path - split_image_file = self.split_image_filenames[0 + self.split_image_number] + split_image_file = custom_image_file or self.split_image_filenames[0 + self.split_image_number] self.split_image_path = self.split_image_directory + split_image_file # get flags self.flags = split_parser.flags_from_filename(split_image_file) + self.imageHasTransparency = compare.checkIfImageHasTransparency(self.split_image_path) # set current split image in UI # if flagged as mask, transform transparency into UI's gray BG color - if (self.flags & 0x02 == 0x02): + if (self.imageHasTransparency): self.split_image_display = cv2.imread(self.split_image_path, cv2.IMREAD_UNCHANGED) transparent_mask = self.split_image_display[:, :, 3] == 0 self.split_image_display[transparent_mask] = [240, 240, 240, 255] @@ -876,13 +1011,12 @@ def updateSplitImage(self): qImg = QtGui.QImage(self.split_image_display, self.split_image_display.shape[1], self.split_image_display.shape[0], self.split_image_display.shape[1] * 3, - QtGui.QImage.Format_RGB888) + QtGui.QImage.Format.Format_RGB888) self.updateCurrentSplitImage.emit(qImg) self.currentsplitimagefileLabel.setText(split_image_file) - # if theres a mask flag, create a mask - if (self.flags & 0x02 == 0x02): - + # if image has transparency, create a mask + if (self.imageHasTransparency): # create mask based on resized, nearest neighbor interpolated split image self.split_image = cv2.imread(self.split_image_path, cv2.IMREAD_UNCHANGED) self.split_image = cv2.resize(self.split_image, (self.RESIZE_WIDTH, self.RESIZE_HEIGHT), @@ -894,18 +1028,17 @@ def updateSplitImage(self): # set split image as BGR self.split_image = cv2.cvtColor(self.split_image, cv2.COLOR_BGRA2BGR) - # else if there is no mask flag, open image normally. don't interpolate nearest neighbor here so setups before 1.2.0 still work. + # otherwise, open image normally. don't interpolate nearest neighbor here so setups before 1.2.0 still work. else: split_image = cv2.imread(self.split_image_path, cv2.IMREAD_COLOR) self.split_image = cv2.resize(split_image, (self.RESIZE_WIDTH, self.RESIZE_HEIGHT)) self.mask = None - # If the unique parameters are selected, go ahead and set the spinboxes to those values - if self.custompausetimesCheckBox.isChecked(): - self.pauseDoubleSpinBox.setValue(split_parser.pause_from_filename(split_image_file)) - - if self.customthresholdsCheckBox.isChecked(): - self.similaritythresholdDoubleSpinBox.setValue(split_parser.threshold_from_filename(split_image_file)) + # Override values if they have been specified on the file + self.pause = split_parser.pause_from_filename(split_image_file) \ + or self.pauseDoubleSpinBox.value() + self.similarity_threshold = split_parser.threshold_from_filename(split_image_file) \ + or self.similaritythresholdDoubleSpinBox.value() # Get delay for split, if any self.split_delay = split_parser.delay_from_filename(split_image_file) @@ -920,51 +1053,56 @@ def updateSplitImage(self): self.highest_similarity = 0.001 # exit safely when closing the window - def closeEvent(self, event): - if self.haveSettingsChanged(): - #give a different warning if there was never a settings file that was loaded successfully, and save as instead of save. - if self.last_successfully_loaded_settings_file_path == None: - msgBox = QtGui.QMessageBox - warning = msgBox.warning(self, "AutoSplit","Do you want to save changes made to settings file Untitled?", msgBox.Yes | msgBox.No | msgBox.Cancel) - if warning == msgBox.Yes: - self.saveSettingsAs() - sys.exit() - event.accept() - if warning == msgBox.No: - event.accept() - sys.exit() - pass - if warning == msgBox.Cancel: - event.ignore() - return - else: - msgBox = QtGui.QMessageBox - warning = msgBox.warning(self, "AutoSplit", "Do you want to save the changes made to the settings file " + os.path.basename(self.last_successfully_loaded_settings_file_path) + " ?", msgBox.Yes | msgBox.No | msgBox.Cancel) - if warning == msgBox.Yes: - self.saveSettings() - sys.exit() - event.accept() - if warning == msgBox.No: - event.accept() - sys.exit() - pass - if warning == msgBox.Cancel: - event.ignore() - return - else: - event.accept() + def closeEvent(self, event=None): + def exit(): + if event is not None: + event.accept() + if self.is_auto_controlled: + self.update_auto_control.terminate() + # stop main thread (which is probably blocked reading input) via an interrupt signal + # only available for windows in version 3.2 or higher + os.kill(os.getpid(), signal.SIGINT) sys.exit() + # Simulates LiveSplit quitting without asking. See "TODO" at update_auto_control Worker + # This also more gracefully exits LiveSplit + # Users can still manually save their settings + if event is None: + exit() + if self.haveSettingsChanged(): + # give a different warning if there was never a settings file that was loaded successfully, and save as instead of save. + msgBox = QtWidgets.QMessageBox + settings_file_name = "Untitled" \ + if self.last_successfully_loaded_settings_file_path is None \ + else os.path.basename(self.last_successfully_loaded_settings_file_path) + warning_message = f"Do you want to save changes made to settings file {settings_file_name}?" + + warning = msgBox.warning( + self, + "AutoSplit", + warning_message, + msgBox.StandardButton.Yes | msgBox.StandardButton.No | msgBox.StandardButton.Cancel) + + if warning == msgBox.StandardButton.Yes: + # TODO: Don't close if user cancelled the save + self.saveSettingsAs() + exit() + if warning == msgBox.StandardButton.No: + exit() + if warning == msgBox.StandardButton.Cancel: + event.ignore() + else: + exit() def main(): - app = QtGui.QApplication(sys.argv) - app.setWindowIcon(QtGui.QIcon('icon.ico')) + app = QtWidgets.QApplication(sys.argv) + app.setWindowIcon(QtGui.QIcon(':/resources/icon.ico')) w = AutoSplit() - w.setWindowIcon(QtGui.QIcon('icon.ico')) + w.setWindowIcon(QtGui.QIcon(':/resources/icon.ico')) w.show() - sys.exit(app.exec_()) + sys.exit(app.exec()) if __name__ == '__main__': - main() \ No newline at end of file + main() diff --git a/src/about.py b/src/about.py index 93f90bfe..f4411b7d 100644 --- a/src/about.py +++ b/src/about.py @@ -1,78 +1,55 @@ -# -*- coding: utf-8 -*- - -# Form implementation generated from reading ui file 'about.ui' +# Form implementation generated from reading ui file './res/about.ui' # -# Created by: PyQt4 UI code generator 4.11.4 +# Created by: PyQt6 UI code generator 6.1.0 # -# WARNING! All changes made in this file will be lost! +# WARNING: Any manual changes made to this file will be lost when pyuic6 is +# run again. Do not edit this file unless you know what you are doing. -from PyQt4 import QtCore, QtGui -try: - _fromUtf8 = QtCore.QString.fromUtf8 -except AttributeError: - def _fromUtf8(s): - return s +from PyQt6 import QtCore, QtGui, QtWidgets -try: - _encoding = QtGui.QApplication.UnicodeUTF8 - def _translate(context, text, disambig): - return QtGui.QApplication.translate(context, text, disambig, _encoding) -except AttributeError: - def _translate(context, text, disambig): - return QtGui.QApplication.translate(context, text, disambig) class Ui_aboutAutoSplitWidget(object): def setupUi(self, aboutAutoSplitWidget): - aboutAutoSplitWidget.setObjectName(_fromUtf8("aboutAutoSplitWidget")) - aboutAutoSplitWidget.resize(276, 249) - aboutAutoSplitWidget.setMinimumSize(QtCore.QSize(276, 249)) - aboutAutoSplitWidget.setMaximumSize(QtCore.QSize(276, 249)) + aboutAutoSplitWidget.setObjectName("aboutAutoSplitWidget") + aboutAutoSplitWidget.resize(264, 250) + aboutAutoSplitWidget.setMinimumSize(QtCore.QSize(264, 250)) + aboutAutoSplitWidget.setMaximumSize(QtCore.QSize(264, 250)) icon = QtGui.QIcon() - icon.addPixmap(QtGui.QPixmap(_fromUtf8(":/resources/icon.ico")), QtGui.QIcon.Normal, QtGui.QIcon.Off) + icon.addPixmap(QtGui.QPixmap(":/resources/icon.ico"), QtGui.QIcon.Mode.Normal, QtGui.QIcon.State.Off) aboutAutoSplitWidget.setWindowIcon(icon) - self.okButton = QtGui.QPushButton(aboutAutoSplitWidget) - self.okButton.setGeometry(QtCore.QRect(190, 220, 71, 21)) - self.okButton.setObjectName(_fromUtf8("okButton")) - self.createdbyLabel = QtGui.QLabel(aboutAutoSplitWidget) - self.createdbyLabel.setGeometry(QtCore.QRect(10, 44, 151, 16)) - self.createdbyLabel.setObjectName(_fromUtf8("createdbyLabel")) - self.versionLabel = QtGui.QLabel(aboutAutoSplitWidget) - self.versionLabel.setGeometry(QtCore.QRect(10, 21, 71, 16)) - self.versionLabel.setObjectName(_fromUtf8("versionLabel")) - self.donatetextLabel = QtGui.QLabel(aboutAutoSplitWidget) - self.donatetextLabel.setGeometry(QtCore.QRect(46, 95, 191, 41)) - self.donatetextLabel.setObjectName(_fromUtf8("donatetextLabel")) - self.donatebuttonLabel = QtGui.QLabel(aboutAutoSplitWidget) - self.donatebuttonLabel.setGeometry(QtCore.QRect(52, 127, 171, 91)) - self.donatebuttonLabel.setAlignment(QtCore.Qt.AlignCenter) - self.donatebuttonLabel.setObjectName(_fromUtf8("donatebuttonLabel")) - self.iconLabel = QtGui.QLabel(aboutAutoSplitWidget) + self.okButton = QtWidgets.QPushButton(aboutAutoSplitWidget) + self.okButton.setGeometry(QtCore.QRect(180, 220, 75, 24)) + self.okButton.setObjectName("okButton") + self.createdbyLabel = QtWidgets.QLabel(aboutAutoSplitWidget) + self.createdbyLabel.setGeometry(QtCore.QRect(10, 44, 161, 32)) + self.createdbyLabel.setObjectName("createdbyLabel") + self.versionLabel = QtWidgets.QLabel(aboutAutoSplitWidget) + self.versionLabel.setGeometry(QtCore.QRect(10, 21, 161, 16)) + self.versionLabel.setObjectName("versionLabel") + self.donatetextLabel = QtWidgets.QLabel(aboutAutoSplitWidget) + self.donatetextLabel.setGeometry(QtCore.QRect(30, 95, 204, 32)) + self.donatetextLabel.setAlignment(QtCore.Qt.AlignmentFlag.AlignCenter) + self.donatetextLabel.setObjectName("donatetextLabel") + self.donatebuttonLabel = QtWidgets.QLabel(aboutAutoSplitWidget) + self.donatebuttonLabel.setGeometry(QtCore.QRect(60, 150, 147, 47)) + self.donatebuttonLabel.setAlignment(QtCore.Qt.AlignmentFlag.AlignCenter) + self.donatebuttonLabel.setObjectName("donatebuttonLabel") + self.iconLabel = QtWidgets.QLabel(aboutAutoSplitWidget) self.iconLabel.setGeometry(QtCore.QRect(190, 17, 62, 71)) - self.iconLabel.setObjectName(_fromUtf8("iconLabel")) + self.iconLabel.setObjectName("iconLabel") self.retranslateUi(aboutAutoSplitWidget) - QtCore.QObject.connect(self.okButton, QtCore.SIGNAL(_fromUtf8("clicked()")), aboutAutoSplitWidget.close) + self.okButton.clicked.connect(aboutAutoSplitWidget.close) QtCore.QMetaObject.connectSlotsByName(aboutAutoSplitWidget) def retranslateUi(self, aboutAutoSplitWidget): - aboutAutoSplitWidget.setWindowTitle(_translate("aboutAutoSplitWidget", "About AutoSplit", None)) - self.okButton.setText(_translate("aboutAutoSplitWidget", "OK", None)) - self.createdbyLabel.setText(_translate("aboutAutoSplitWidget", "

Created by Toufool and Faschz

", None)) - self.versionLabel.setText(_translate("aboutAutoSplitWidget", "Version: 1.5.1", None)) + _translate = QtCore.QCoreApplication.translate + aboutAutoSplitWidget.setWindowTitle(_translate("aboutAutoSplitWidget", "About AutoSplit")) + self.okButton.setText(_translate("aboutAutoSplitWidget", "OK")) + self.createdbyLabel.setText(_translate("aboutAutoSplitWidget", "

Created by Toufool and Faschz
Maintained by Avasam

")) + self.versionLabel.setText(_translate("aboutAutoSplitWidget", "Version: ")) self.donatetextLabel.setText(_translate("aboutAutoSplitWidget", "If you enjoy using this program, please\n" -" consider donating. Thank you!", None)) - self.donatebuttonLabel.setText(_translate("aboutAutoSplitWidget", "

", None)) - self.iconLabel.setText(_translate("aboutAutoSplitWidget", "

", None)) - -import resources_rc - -if __name__ == "__main__": - import sys - app = QtGui.QApplication(sys.argv) - aboutAutoSplitWidget = QtGui.QWidget() - ui = Ui_aboutAutoSplitWidget() - ui.setupUi(aboutAutoSplitWidget) - aboutAutoSplitWidget.show() - sys.exit(app.exec_()) - +"consider donating. Thank you!")) + self.donatebuttonLabel.setText(_translate("aboutAutoSplitWidget", "

")) + self.iconLabel.setText(_translate("aboutAutoSplitWidget", "

")) diff --git a/src/compare.py b/src/compare.py index 72b62913..153dd05e 100644 --- a/src/compare.py +++ b/src/compare.py @@ -1,7 +1,6 @@ from PIL import Image import imagehash - -import numpy +import numpy as np import cv2 def compare_histograms(source, capture): @@ -16,10 +15,10 @@ def compare_histograms(source, capture): source_hist = cv2.calcHist([source], [0, 1, 2], None, [8, 8, 8], [0, 256, 0, 256, 0, 256]) capture_hist = cv2.calcHist([capture], [0, 1, 2], None, [8, 8, 8], [0, 256, 0, 256, 0, 256]) - + cv2.normalize(source_hist, source_hist) cv2.normalize(capture_hist, capture_hist) - + return 1 - cv2.compareHist(source_hist, capture_hist, cv2.HISTCMP_BHATTACHARYYA) def compare_histograms_masked(source, capture, mask): @@ -34,10 +33,10 @@ def compare_histograms_masked(source, capture, mask): """ source_hist = cv2.calcHist([source], [0, 1, 2], mask, [8, 8, 8], [0, 256, 0, 256, 0, 256]) capture_hist = cv2.calcHist([capture], [0, 1, 2], mask, [8, 8, 8], [0, 256, 0, 256, 0, 256]) - + cv2.normalize(source_hist, source_hist) cv2.normalize(capture_hist, capture_hist) - + return 1 - cv2.compareHist(source_hist, capture_hist, cv2.HISTCMP_BHATTACHARYYA) def compare_l2_norm(source, capture): @@ -51,10 +50,10 @@ def compare_l2_norm(source, capture): """ error = cv2.norm(source, capture, cv2.NORM_L2) - + # The L2 Error is summed across all pixels, so this normalizes max_error = (source.size ** 0.5) * 255 - + return 1 - (error/max_error) def compare_l2_norm_masked(source, capture, mask): @@ -71,7 +70,7 @@ def compare_l2_norm_masked(source, capture, mask): error = cv2.norm(source, capture, cv2.NORM_L2, mask) # The L2 Error is summed across all pixels, so this normalizes - max_error = (3 * numpy.count_nonzero(mask) * 255 * 255) ** 0.5 + max_error = (3 * np.count_nonzero(mask) * 255 * 255) ** 0.5 return 1 - (error / max_error) @@ -111,13 +110,13 @@ def compare_template_masked(source, capture, mask): result = cv2.matchTemplate(capture, source, cv2.TM_SQDIFF, None, mask) min_val, max_val, min_loc, max_loc = cv2.minMaxLoc(result) - return 1 - (min_val/numpy.count_nonzero(mask)) + return 1 - (min_val/np.count_nonzero(mask)) def compare_phash(source, capture): """ Compares the pHash of the two given images and returns the similarity between the two. - + @param source: Image of any given shape as a numpy array @param capture: Image of any given shape as a numpy array @return: The similarity between the hashes of the image as a number 0 to 1. @@ -135,7 +134,7 @@ def compare_phash_masked(source, capture, mask): """ Compares the pHash of the two given images and returns the similarity between the two. - + @param source: Image of any given shape as a numpy array @param capture: Image of any given shape as a numpy array @param mask: An image matching the dimensions of the source, but 1 channel grayscale @@ -149,7 +148,7 @@ def compare_phash_masked(source, capture, mask): # the same source = cv2.bitwise_and(source, source, mask=mask) capture = cv2.bitwise_and(capture, capture, mask=mask) - + source = Image.fromarray(source) capture = Image.fromarray(capture) @@ -157,3 +156,9 @@ def compare_phash_masked(source, capture, mask): capture_hash = imagehash.phash(capture) return 1 - ((source_hash - capture_hash)/64.0) + + +def checkIfImageHasTransparency(image_path: str): + source = cv2.imread(image_path, cv2.IMREAD_UNCHANGED) + # Check if there's a transparency channel (4th channel) and if at least one pixel is transparent (< 255) + return source.shape[2] == 4 and np.mean(source[:, :, 3]) != 255 diff --git a/src/design.py b/src/design.py index 1d74fd47..98c7f566 100644 --- a/src/design.py +++ b/src/design.py @@ -1,384 +1,315 @@ -# -*- coding: utf-8 -*- - -# Form implementation generated from reading ui file 'design.ui' +# Form implementation generated from reading ui file './res/design.ui' # -# Created by: PyQt4 UI code generator 4.11.4 +# Created by: PyQt6 UI code generator 6.1.0 # -# WARNING! All changes made in this file will be lost! +# WARNING: Any manual changes made to this file will be lost when pyuic6 is +# run again. Do not edit this file unless you know what you are doing. -from PyQt4 import QtCore, QtGui -try: - _fromUtf8 = QtCore.QString.fromUtf8 -except AttributeError: - def _fromUtf8(s): - return s +from PyQt6 import QtCore, QtGui, QtWidgets -try: - _encoding = QtGui.QApplication.UnicodeUTF8 - def _translate(context, text, disambig): - return QtGui.QApplication.translate(context, text, disambig, _encoding) -except AttributeError: - def _translate(context, text, disambig): - return QtGui.QApplication.translate(context, text, disambig) class Ui_MainWindow(object): def setupUi(self, MainWindow): - MainWindow.setObjectName(_fromUtf8("MainWindow")) - MainWindow.resize(612, 490) - sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed) + MainWindow.setObjectName("MainWindow") + MainWindow.resize(632, 490) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Policy.Fixed, QtWidgets.QSizePolicy.Policy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(MainWindow.sizePolicy().hasHeightForWidth()) MainWindow.setSizePolicy(sizePolicy) - MainWindow.setMinimumSize(QtCore.QSize(622, 490)) - MainWindow.setMaximumSize(QtCore.QSize(622, 490)) + MainWindow.setMinimumSize(QtCore.QSize(632, 490)) + MainWindow.setMaximumSize(QtCore.QSize(632, 490)) icon = QtGui.QIcon() - icon.addPixmap(QtGui.QPixmap(_fromUtf8("../../VideoAutoSplitter/icon.ico")), QtGui.QIcon.Normal, QtGui.QIcon.Off) + icon.addPixmap(QtGui.QPixmap(":/resources/icon.ico"), QtGui.QIcon.Mode.Normal, QtGui.QIcon.State.Off) MainWindow.setWindowIcon(icon) - MainWindow.setWhatsThis(_fromUtf8("")) - MainWindow.setLayoutDirection(QtCore.Qt.LeftToRight) - self.centralwidget = QtGui.QWidget(MainWindow) - self.centralwidget.setObjectName(_fromUtf8("centralwidget")) - self.splitimagefolderLabel = QtGui.QLabel(self.centralwidget) - self.splitimagefolderLabel.setGeometry(QtCore.QRect(90, 13, 91, 16)) - self.splitimagefolderLabel.setObjectName(_fromUtf8("splitimagefolderLabel")) - self.splitimagefolderLineEdit = QtGui.QLineEdit(self.centralwidget) - self.splitimagefolderLineEdit.setGeometry(QtCore.QRect(187, 11, 247, 20)) + MainWindow.setWhatsThis("") + MainWindow.setLayoutDirection(QtCore.Qt.LayoutDirection.LeftToRight) + self.centralwidget = QtWidgets.QWidget(MainWindow) + self.centralwidget.setObjectName("centralwidget") + self.splitimagefolderLabel = QtWidgets.QLabel(self.centralwidget) + self.splitimagefolderLabel.setGeometry(QtCore.QRect(20, 12, 98, 16)) + self.splitimagefolderLabel.setObjectName("splitimagefolderLabel") + self.splitimagefolderLineEdit = QtWidgets.QLineEdit(self.centralwidget) + self.splitimagefolderLineEdit.setGeometry(QtCore.QRect(130, 10, 411, 22)) self.splitimagefolderLineEdit.setReadOnly(True) - self.splitimagefolderLineEdit.setObjectName(_fromUtf8("splitimagefolderLineEdit")) - self.browseButton = QtGui.QPushButton(self.centralwidget) - self.browseButton.setGeometry(QtCore.QRect(443, 9, 75, 24)) - self.browseButton.setFocusPolicy(QtCore.Qt.NoFocus) - self.browseButton.setObjectName(_fromUtf8("browseButton")) - self.xLabel = QtGui.QLabel(self.centralwidget) + self.splitimagefolderLineEdit.setObjectName("splitimagefolderLineEdit") + self.browseButton = QtWidgets.QPushButton(self.centralwidget) + self.browseButton.setGeometry(QtCore.QRect(539, 9, 75, 24)) + self.browseButton.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus) + self.browseButton.setObjectName("browseButton") + self.xLabel = QtWidgets.QLabel(self.centralwidget) self.xLabel.setGeometry(QtCore.QRect(25, 139, 7, 16)) - self.xLabel.setObjectName(_fromUtf8("xLabel")) - self.liveimageCheckBox = QtGui.QCheckBox(self.centralwidget) + self.xLabel.setObjectName("xLabel") + self.liveimageCheckBox = QtWidgets.QCheckBox(self.centralwidget) self.liveimageCheckBox.setEnabled(True) - self.liveimageCheckBox.setGeometry(QtCore.QRect(125, 253, 121, 17)) + self.liveimageCheckBox.setGeometry(QtCore.QRect(120, 253, 129, 20)) self.liveimageCheckBox.setChecked(True) self.liveimageCheckBox.setTristate(False) - self.liveimageCheckBox.setObjectName(_fromUtf8("liveimageCheckBox")) - self.loopCheckBox = QtGui.QCheckBox(self.centralwidget) - self.loopCheckBox.setEnabled(True) - self.loopCheckBox.setGeometry(QtCore.QRect(500, 314, 121, 17)) - self.loopCheckBox.setChecked(False) - self.loopCheckBox.setTristate(False) - self.loopCheckBox.setObjectName(_fromUtf8("loopCheckBox")) - self.autostartonresetCheckBox = QtGui.QCheckBox(self.centralwidget) - self.autostartonresetCheckBox.setEnabled(True) - self.autostartonresetCheckBox.setGeometry(QtCore.QRect(500, 344, 121, 17)) - self.autostartonresetCheckBox.setChecked(False) - self.autostartonresetCheckBox.setTristate(False) - self.autostartonresetCheckBox.setObjectName(_fromUtf8("autostartonresetCheckBox")) - self.selectregionButton = QtGui.QPushButton(self.centralwidget) + self.liveimageCheckBox.setObjectName("liveimageCheckBox") + self.selectregionButton = QtWidgets.QPushButton(self.centralwidget) self.selectregionButton.setGeometry(QtCore.QRect(5, 67, 101, 23)) - self.selectregionButton.setFocusPolicy(QtCore.Qt.NoFocus) - self.selectregionButton.setObjectName(_fromUtf8("selectregionButton")) - self.similaritythresholdLabel = QtGui.QLabel(self.centralwidget) - self.similaritythresholdLabel.setGeometry(QtCore.QRect(10, 378, 91, 16)) - self.similaritythresholdLabel.setObjectName(_fromUtf8("similaritythresholdLabel")) - self.similaritythresholdDoubleSpinBox = QtGui.QDoubleSpinBox(self.centralwidget) - self.similaritythresholdDoubleSpinBox.setGeometry(QtCore.QRect(160, 383, 64, 22)) + self.selectregionButton.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus) + self.selectregionButton.setObjectName("selectregionButton") + self.similaritythresholdLabel = QtWidgets.QLabel(self.centralwidget) + self.similaritythresholdLabel.setGeometry(QtCore.QRect(10, 380, 102, 32)) + self.similaritythresholdLabel.setObjectName("similaritythresholdLabel") + self.similaritythresholdDoubleSpinBox = QtWidgets.QDoubleSpinBox(self.centralwidget) + self.similaritythresholdDoubleSpinBox.setGeometry(QtCore.QRect(150, 390, 64, 22)) self.similaritythresholdDoubleSpinBox.setMaximum(1.0) self.similaritythresholdDoubleSpinBox.setSingleStep(0.01) self.similaritythresholdDoubleSpinBox.setProperty("value", 0.9) - self.similaritythresholdDoubleSpinBox.setObjectName(_fromUtf8("similaritythresholdDoubleSpinBox")) - self.startautosplitterButton = QtGui.QPushButton(self.centralwidget) - self.startautosplitterButton.setGeometry(QtCore.QRect(506, 425, 101, 31)) - self.startautosplitterButton.setFocusPolicy(QtCore.Qt.NoFocus) - self.startautosplitterButton.setObjectName(_fromUtf8("startautosplitterButton")) - self.resetButton = QtGui.QPushButton(self.centralwidget) - self.resetButton.setGeometry(QtCore.QRect(506, 385, 101, 31)) - self.resetButton.setFocusPolicy(QtCore.Qt.NoFocus) - self.resetButton.setObjectName(_fromUtf8("resetButton")) - self.undosplitButton = QtGui.QPushButton(self.centralwidget) - self.undosplitButton.setGeometry(QtCore.QRect(477, 251, 61, 21)) - self.undosplitButton.setFocusPolicy(QtCore.Qt.NoFocus) - self.undosplitButton.setObjectName(_fromUtf8("undosplitButton")) - self.skipsplitButton = QtGui.QPushButton(self.centralwidget) - self.skipsplitButton.setGeometry(QtCore.QRect(541, 251, 61, 21)) - self.skipsplitButton.setFocusPolicy(QtCore.Qt.NoFocus) - self.skipsplitButton.setObjectName(_fromUtf8("skipsplitButton")) - self.pauseLabel = QtGui.QLabel(self.centralwidget) - self.pauseLabel.setGeometry(QtCore.QRect(10, 420, 140, 16)) - self.pauseLabel.setObjectName(_fromUtf8("pauseLabel")) - self.checkfpsButton = QtGui.QPushButton(self.centralwidget) - self.checkfpsButton.setGeometry(QtCore.QRect(5, 225, 51, 21)) - self.checkfpsButton.setFocusPolicy(QtCore.Qt.NoFocus) - self.checkfpsButton.setObjectName(_fromUtf8("checkfpsButton")) - self.fpsLabel = QtGui.QLabel(self.centralwidget) + self.similaritythresholdDoubleSpinBox.setObjectName("similaritythresholdDoubleSpinBox") + self.startautosplitterButton = QtWidgets.QPushButton(self.centralwidget) + self.startautosplitterButton.setGeometry(QtCore.QRect(500, 425, 121, 31)) + self.startautosplitterButton.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus) + self.startautosplitterButton.setObjectName("startautosplitterButton") + self.resetButton = QtWidgets.QPushButton(self.centralwidget) + self.resetButton.setGeometry(QtCore.QRect(500, 385, 121, 31)) + self.resetButton.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus) + self.resetButton.setObjectName("resetButton") + self.undosplitButton = QtWidgets.QPushButton(self.centralwidget) + self.undosplitButton.setGeometry(QtCore.QRect(480, 250, 71, 24)) + self.undosplitButton.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus) + self.undosplitButton.setObjectName("undosplitButton") + self.skipsplitButton = QtWidgets.QPushButton(self.centralwidget) + self.skipsplitButton.setGeometry(QtCore.QRect(560, 250, 61, 24)) + self.skipsplitButton.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus) + self.skipsplitButton.setObjectName("skipsplitButton") + self.pauseLabel = QtWidgets.QLabel(self.centralwidget) + self.pauseLabel.setGeometry(QtCore.QRect(10, 420, 112, 32)) + self.pauseLabel.setObjectName("pauseLabel") + self.checkfpsButton = QtWidgets.QPushButton(self.centralwidget) + self.checkfpsButton.setGeometry(QtCore.QRect(5, 225, 53, 21)) + self.checkfpsButton.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus) + self.checkfpsButton.setObjectName("checkfpsButton") + self.fpsLabel = QtWidgets.QLabel(self.centralwidget) self.fpsLabel.setGeometry(QtCore.QRect(87, 225, 20, 20)) - self.fpsLabel.setObjectName(_fromUtf8("fpsLabel")) - self.showlivesimilarityCheckBox = QtGui.QCheckBox(self.centralwidget) + self.fpsLabel.setObjectName("fpsLabel") + self.showlivesimilarityCheckBox = QtWidgets.QCheckBox(self.centralwidget) self.showlivesimilarityCheckBox.setEnabled(True) - self.showlivesimilarityCheckBox.setGeometry(QtCore.QRect(10, 330, 111, 17)) + self.showlivesimilarityCheckBox.setGeometry(QtCore.QRect(10, 330, 124, 20)) self.showlivesimilarityCheckBox.setChecked(True) self.showlivesimilarityCheckBox.setTristate(False) - self.showlivesimilarityCheckBox.setObjectName(_fromUtf8("showlivesimilarityCheckBox")) - self.showhighestsimilarityCheckBox = QtGui.QCheckBox(self.centralwidget) + self.showlivesimilarityCheckBox.setObjectName("showlivesimilarityCheckBox") + self.showhighestsimilarityCheckBox = QtWidgets.QCheckBox(self.centralwidget) self.showhighestsimilarityCheckBox.setEnabled(True) - self.showhighestsimilarityCheckBox.setGeometry(QtCore.QRect(10, 351, 131, 17)) + self.showhighestsimilarityCheckBox.setGeometry(QtCore.QRect(10, 351, 145, 20)) self.showhighestsimilarityCheckBox.setChecked(True) self.showhighestsimilarityCheckBox.setTristate(False) - self.showhighestsimilarityCheckBox.setObjectName(_fromUtf8("showhighestsimilarityCheckBox")) - self.livesimilarityLabel = QtGui.QLabel(self.centralwidget) - self.livesimilarityLabel.setGeometry(QtCore.QRect(160, 332, 46, 13)) - self.livesimilarityLabel.setText(_fromUtf8("")) - self.livesimilarityLabel.setObjectName(_fromUtf8("livesimilarityLabel")) - self.highestsimilarityLabel = QtGui.QLabel(self.centralwidget) - self.highestsimilarityLabel.setGeometry(QtCore.QRect(160, 353, 46, 13)) - self.highestsimilarityLabel.setText(_fromUtf8("")) - self.highestsimilarityLabel.setObjectName(_fromUtf8("highestsimilarityLabel")) - self.splitLabel = QtGui.QLabel(self.centralwidget) - self.splitLabel.setGeometry(QtCore.QRect(249, 317, 61, 16)) - self.splitLabel.setObjectName(_fromUtf8("splitLabel")) - self.resetLabel = QtGui.QLabel(self.centralwidget) - self.resetLabel.setGeometry(QtCore.QRect(249, 341, 61, 16)) - self.resetLabel.setObjectName(_fromUtf8("resetLabel")) - self.skiptsplitLabel = QtGui.QLabel(self.centralwidget) - self.skiptsplitLabel.setGeometry(QtCore.QRect(249, 367, 50, 16)) - self.skiptsplitLabel.setObjectName(_fromUtf8("skiptsplitLabel")) - self.undosplitLabel = QtGui.QLabel(self.centralwidget) - self.undosplitLabel.setGeometry(QtCore.QRect(249, 393, 61, 16)) - self.undosplitLabel.setObjectName(_fromUtf8("undosplitLabel")) - self.pausehotkeyLabel = QtGui.QLabel(self.centralwidget) - self.pausehotkeyLabel.setGeometry(QtCore.QRect(249, 418, 61, 16)) - self.pausehotkeyLabel.setObjectName(_fromUtf8("undosplitLabel")) - self.splitLineEdit = QtGui.QLineEdit(self.centralwidget) - self.splitLineEdit.setGeometry(QtCore.QRect(316, 314, 81, 20)) + self.showhighestsimilarityCheckBox.setObjectName("showhighestsimilarityCheckBox") + self.livesimilarityLabel = QtWidgets.QLabel(self.centralwidget) + self.livesimilarityLabel.setGeometry(QtCore.QRect(160, 332, 46, 16)) + self.livesimilarityLabel.setText("") + self.livesimilarityLabel.setObjectName("livesimilarityLabel") + self.highestsimilarityLabel = QtWidgets.QLabel(self.centralwidget) + self.highestsimilarityLabel.setGeometry(QtCore.QRect(160, 353, 46, 16)) + self.highestsimilarityLabel.setText("") + self.highestsimilarityLabel.setObjectName("highestsimilarityLabel") + self.splitLabel = QtWidgets.QLabel(self.centralwidget) + self.splitLabel.setGeometry(QtCore.QRect(230, 317, 58, 16)) + self.splitLabel.setObjectName("splitLabel") + self.resetLabel = QtWidgets.QLabel(self.centralwidget) + self.resetLabel.setGeometry(QtCore.QRect(230, 341, 28, 16)) + self.resetLabel.setObjectName("resetLabel") + self.skiptsplitLabel = QtWidgets.QLabel(self.centralwidget) + self.skiptsplitLabel.setGeometry(QtCore.QRect(230, 367, 48, 16)) + self.skiptsplitLabel.setObjectName("skiptsplitLabel") + self.undosplitLabel = QtWidgets.QLabel(self.centralwidget) + self.undosplitLabel.setGeometry(QtCore.QRect(230, 393, 55, 16)) + self.undosplitLabel.setObjectName("undosplitLabel") + self.splitLineEdit = QtWidgets.QLineEdit(self.centralwidget) + self.splitLineEdit.setGeometry(QtCore.QRect(300, 314, 81, 20)) self.splitLineEdit.setReadOnly(True) - self.splitLineEdit.setObjectName(_fromUtf8("splitLineEdit")) - self.undosplitLineEdit = QtGui.QLineEdit(self.centralwidget) - self.undosplitLineEdit.setGeometry(QtCore.QRect(316, 391, 81, 20)) - self.undosplitLineEdit.setFocusPolicy(QtCore.Qt.StrongFocus) + self.splitLineEdit.setObjectName("splitLineEdit") + self.undosplitLineEdit = QtWidgets.QLineEdit(self.centralwidget) + self.undosplitLineEdit.setGeometry(QtCore.QRect(300, 391, 81, 20)) + self.undosplitLineEdit.setFocusPolicy(QtCore.Qt.FocusPolicy.StrongFocus) self.undosplitLineEdit.setReadOnly(True) - self.undosplitLineEdit.setObjectName(_fromUtf8("undosplitLineEdit")) - self.skipsplitLineEdit = QtGui.QLineEdit(self.centralwidget) - self.skipsplitLineEdit.setGeometry(QtCore.QRect(316, 365, 81, 20)) + self.undosplitLineEdit.setObjectName("undosplitLineEdit") + self.skipsplitLineEdit = QtWidgets.QLineEdit(self.centralwidget) + self.skipsplitLineEdit.setGeometry(QtCore.QRect(300, 365, 81, 20)) self.skipsplitLineEdit.setReadOnly(True) - self.skipsplitLineEdit.setObjectName(_fromUtf8("skipsplitLineEdit")) - self.resetLineEdit = QtGui.QLineEdit(self.centralwidget) - self.resetLineEdit.setGeometry(QtCore.QRect(316, 339, 81, 20)) + self.skipsplitLineEdit.setObjectName("skipsplitLineEdit") + self.resetLineEdit = QtWidgets.QLineEdit(self.centralwidget) + self.resetLineEdit.setGeometry(QtCore.QRect(300, 339, 81, 20)) self.resetLineEdit.setReadOnly(True) - self.resetLineEdit.setObjectName(_fromUtf8("resetLineEdit")) - self.pausehotkeyLineEdit = QtGui.QLineEdit(self.centralwidget) - self.pausehotkeyLineEdit.setGeometry(QtCore.QRect(316, 416, 81, 20)) - self.pausehotkeyLineEdit.setReadOnly(True) - self.pausehotkeyLineEdit.setObjectName(_fromUtf8("pausehotkeyLineEdit")) - self.setsplithotkeyButton = QtGui.QPushButton(self.centralwidget) - self.setsplithotkeyButton.setGeometry(QtCore.QRect(409, 314, 71, 21)) - self.setsplithotkeyButton.setFocusPolicy(QtCore.Qt.NoFocus) - self.setsplithotkeyButton.setObjectName(_fromUtf8("setsplithotkeyButton")) - self.setresethotkeyButton = QtGui.QPushButton(self.centralwidget) - self.setresethotkeyButton.setGeometry(QtCore.QRect(410, 339, 71, 21)) - self.setresethotkeyButton.setFocusPolicy(QtCore.Qt.NoFocus) - self.setresethotkeyButton.setObjectName(_fromUtf8("setresethotkeyButton")) - self.setskipsplithotkeyButton = QtGui.QPushButton(self.centralwidget) - self.setskipsplithotkeyButton.setGeometry(QtCore.QRect(410, 365, 71, 21)) - self.setskipsplithotkeyButton.setFocusPolicy(QtCore.Qt.NoFocus) - self.setskipsplithotkeyButton.setObjectName(_fromUtf8("setskipsplithotkeyButton")) - self.setundosplithotkeyButton = QtGui.QPushButton(self.centralwidget) - self.setundosplithotkeyButton.setGeometry(QtCore.QRect(410, 391, 71, 21)) - self.setundosplithotkeyButton.setFocusPolicy(QtCore.Qt.NoFocus) - self.setundosplithotkeyButton.setObjectName(_fromUtf8("setundosplithotkeyButton")) - self.setpausehotkeyButton = QtGui.QPushButton(self.centralwidget) - self.setpausehotkeyButton.setGeometry(QtCore.QRect(410, 416, 71, 21)) - self.setpausehotkeyButton.setFocusPolicy(QtCore.Qt.NoFocus) - self.setpausehotkeyButton.setObjectName(_fromUtf8("setpausehotkeyButton")) - self.line_live_bottom = QtGui.QFrame(self.centralwidget) - self.line_live_bottom.setGeometry(QtCore.QRect(111, 247, 240, 2)) - self.line_live_bottom.setFrameShadow(QtGui.QFrame.Plain) - self.line_live_bottom.setLineWidth(1) - self.line_live_bottom.setFrameShape(QtGui.QFrame.HLine) - self.line_live_bottom.setObjectName(_fromUtf8("line_live_bottom")) - self.line_live_top = QtGui.QFrame(self.centralwidget) - self.line_live_top.setGeometry(QtCore.QRect(111, 68, 240, 2)) - self.line_live_top.setFrameShadow(QtGui.QFrame.Plain) - self.line_live_top.setLineWidth(1) - self.line_live_top.setFrameShape(QtGui.QFrame.HLine) - self.line_live_top.setObjectName(_fromUtf8("line_live_top")) - self.line_live_right = QtGui.QFrame(self.centralwidget) - self.line_live_right.setGeometry(QtCore.QRect(349, 69, 2, 180)) - self.line_live_right.setFrameShadow(QtGui.QFrame.Plain) - self.line_live_right.setLineWidth(1) - self.line_live_right.setFrameShape(QtGui.QFrame.VLine) - self.line_live_right.setObjectName(_fromUtf8("line_live_right")) - self.line_left = QtGui.QFrame(self.centralwidget) - self.line_left.setGeometry(QtCore.QRect(234, 296, 2, 163)) - self.line_left.setFrameShadow(QtGui.QFrame.Plain) + self.resetLineEdit.setObjectName("resetLineEdit") + self.setsplithotkeyButton = QtWidgets.QPushButton(self.centralwidget) + self.setsplithotkeyButton.setGeometry(QtCore.QRect(390, 314, 71, 21)) + self.setsplithotkeyButton.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus) + self.setsplithotkeyButton.setObjectName("setsplithotkeyButton") + self.setresethotkeyButton = QtWidgets.QPushButton(self.centralwidget) + self.setresethotkeyButton.setGeometry(QtCore.QRect(390, 339, 71, 21)) + self.setresethotkeyButton.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus) + self.setresethotkeyButton.setObjectName("setresethotkeyButton") + self.setskipsplithotkeyButton = QtWidgets.QPushButton(self.centralwidget) + self.setskipsplithotkeyButton.setGeometry(QtCore.QRect(390, 365, 71, 21)) + self.setskipsplithotkeyButton.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus) + self.setskipsplithotkeyButton.setObjectName("setskipsplithotkeyButton") + self.setundosplithotkeyButton = QtWidgets.QPushButton(self.centralwidget) + self.setundosplithotkeyButton.setGeometry(QtCore.QRect(390, 391, 71, 21)) + self.setundosplithotkeyButton.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus) + self.setundosplithotkeyButton.setObjectName("setundosplithotkeyButton") + self.line_left = QtWidgets.QFrame(self.centralwidget) + self.line_left.setGeometry(QtCore.QRect(220, 296, 2, 163)) + self.line_left.setFrameShadow(QtWidgets.QFrame.Shadow.Plain) self.line_left.setLineWidth(1) - self.line_left.setFrameShape(QtGui.QFrame.VLine) - self.line_left.setObjectName(_fromUtf8("line_left")) - self.line_live_left = QtGui.QFrame(self.centralwidget) - self.line_live_left.setGeometry(QtCore.QRect(110, 69, 2, 180)) - self.line_live_left.setFrameShadow(QtGui.QFrame.Plain) - self.line_live_left.setLineWidth(1) - self.line_live_left.setFrameShape(QtGui.QFrame.VLine) - self.line_live_left.setObjectName(_fromUtf8("line_live_left")) - self.line_split_left = QtGui.QFrame(self.centralwidget) - self.line_split_left.setGeometry(QtCore.QRect(360, 69, 2, 180)) - self.line_split_left.setFrameShadow(QtGui.QFrame.Plain) - self.line_split_left.setLineWidth(1) - self.line_split_left.setFrameShape(QtGui.QFrame.VLine) - self.line_split_left.setObjectName(_fromUtf8("line_split_left")) - self.line_split_right = QtGui.QFrame(self.centralwidget) - self.line_split_right.setGeometry(QtCore.QRect(599, 69, 2, 180)) - self.line_split_right.setFrameShadow(QtGui.QFrame.Plain) - self.line_split_right.setLineWidth(1) - self.line_split_right.setFrameShape(QtGui.QFrame.VLine) - self.line_split_right.setObjectName(_fromUtf8("line_split_right")) - self.line_split_top = QtGui.QFrame(self.centralwidget) - self.line_split_top.setGeometry(QtCore.QRect(361, 68, 240, 2)) - self.line_split_top.setFrameShadow(QtGui.QFrame.Plain) - self.line_split_top.setLineWidth(1) - self.line_split_top.setFrameShape(QtGui.QFrame.HLine) - self.line_split_top.setObjectName(_fromUtf8("line_split_top")) - self.line_split_bottom = QtGui.QFrame(self.centralwidget) - self.line_split_bottom.setGeometry(QtCore.QRect(361, 247, 240, 2)) - self.line_split_bottom.setFrameShadow(QtGui.QFrame.Plain) - self.line_split_bottom.setLineWidth(1) - self.line_split_bottom.setFrameShape(QtGui.QFrame.HLine) - self.line_split_bottom.setObjectName(_fromUtf8("line_split_bottom")) - self.timerglobalhotkeysLabel = QtGui.QLabel(self.centralwidget) - self.timerglobalhotkeysLabel.setGeometry(QtCore.QRect(313, 293, 101, 20)) - self.timerglobalhotkeysLabel.setObjectName(_fromUtf8("timerglobalhotkeysLabel")) - self.line_right = QtGui.QFrame(self.centralwidget) - self.line_right.setGeometry(QtCore.QRect(489, 296, 2, 163)) - self.line_right.setFrameShadow(QtGui.QFrame.Plain) + self.line_left.setFrameShape(QtWidgets.QFrame.Shape.VLine) + self.line_left.setObjectName("line_left") + self.timerglobalhotkeysLabel = QtWidgets.QLabel(self.centralwidget) + self.timerglobalhotkeysLabel.setGeometry(QtCore.QRect(300, 293, 113, 16)) + self.timerglobalhotkeysLabel.setObjectName("timerglobalhotkeysLabel") + self.line_right = QtWidgets.QFrame(self.centralwidget) + self.line_right.setGeometry(QtCore.QRect(490, 296, 2, 163)) + self.line_right.setFrameShadow(QtWidgets.QFrame.Shadow.Plain) self.line_right.setLineWidth(1) - self.line_right.setFrameShape(QtGui.QFrame.VLine) - self.line_right.setObjectName(_fromUtf8("line_right")) - self.liveImage = QtGui.QLabel(self.centralwidget) - self.liveImage.setGeometry(QtCore.QRect(111, 69, 240, 180)) - self.liveImage.setText(_fromUtf8("")) - self.liveImage.setObjectName(_fromUtf8("liveImage")) - self.currentSplitImage = QtGui.QLabel(self.centralwidget) - self.currentSplitImage.setGeometry(QtCore.QRect(361, 69, 240, 180)) - self.currentSplitImage.setText(_fromUtf8("")) - self.currentSplitImage.setObjectName(_fromUtf8("currentSplitImage")) - self.currentsplitimageLabel = QtGui.QLabel(self.centralwidget) - self.currentsplitimageLabel.setAlignment(QtCore.Qt.AlignCenter) - self.currentsplitimageLabel.setGeometry(QtCore.QRect(370, 50, 221, 20)) - self.currentsplitimageLabel.setObjectName(_fromUtf8("currentsplitimageLabel")) - self.imageloopLabel = QtGui.QLabel(self.centralwidget) - self.imageloopLabel.setGeometry(QtCore.QRect(362, 251, 108, 20)) - self.imageloopLabel.setObjectName(_fromUtf8("Image Loop #:")) - self.widthLabel = QtGui.QLabel(self.centralwidget) + self.line_right.setFrameShape(QtWidgets.QFrame.Shape.VLine) + self.line_right.setObjectName("line_right") + self.liveImage = QtWidgets.QLabel(self.centralwidget) + self.liveImage.setGeometry(QtCore.QRect(120, 69, 240, 180)) + self.liveImage.setFrameShape(QtWidgets.QFrame.Shape.Box) + self.liveImage.setText("") + self.liveImage.setObjectName("liveImage") + self.currentSplitImage = QtWidgets.QLabel(self.centralwidget) + self.currentSplitImage.setGeometry(QtCore.QRect(380, 69, 240, 180)) + self.currentSplitImage.setFrameShape(QtWidgets.QFrame.Shape.Box) + self.currentSplitImage.setText("") + self.currentSplitImage.setObjectName("currentSplitImage") + self.currentsplitimageLabel = QtWidgets.QLabel(self.centralwidget) + self.currentsplitimageLabel.setGeometry(QtCore.QRect(450, 50, 102, 16)) + self.currentsplitimageLabel.setObjectName("currentsplitimageLabel") + self.widthLabel = QtWidgets.QLabel(self.centralwidget) self.widthLabel.setGeometry(QtCore.QRect(14, 177, 31, 16)) - self.widthLabel.setObjectName(_fromUtf8("widthLabel")) - self.heightLabel = QtGui.QLabel(self.centralwidget) + self.widthLabel.setObjectName("widthLabel") + self.heightLabel = QtWidgets.QLabel(self.centralwidget) self.heightLabel.setGeometry(QtCore.QRect(68, 177, 31, 16)) - self.heightLabel.setObjectName(_fromUtf8("heightLabel")) - self.fpsvalueLabel = QtGui.QLabel(self.centralwidget) + self.heightLabel.setObjectName("heightLabel") + self.fpsvalueLabel = QtWidgets.QLabel(self.centralwidget) self.fpsvalueLabel.setGeometry(QtCore.QRect(58, 225, 26, 20)) - self.fpsvalueLabel.setText(_fromUtf8("")) - self.fpsvalueLabel.setObjectName(_fromUtf8("fpsvalueLabel")) - self.widthSpinBox = QtGui.QSpinBox(self.centralwidget) + self.fpsvalueLabel.setText("") + self.fpsvalueLabel.setObjectName("fpsvalueLabel") + self.widthSpinBox = QtWidgets.QSpinBox(self.centralwidget) self.widthSpinBox.setGeometry(QtCore.QRect(6, 193, 44, 22)) self.widthSpinBox.setMinimum(1) self.widthSpinBox.setMaximum(10000) self.widthSpinBox.setProperty("value", 640) - self.widthSpinBox.setObjectName(_fromUtf8("widthSpinBox")) - self.heightSpinBox = QtGui.QSpinBox(self.centralwidget) + self.widthSpinBox.setObjectName("widthSpinBox") + self.heightSpinBox = QtWidgets.QSpinBox(self.centralwidget) self.heightSpinBox.setGeometry(QtCore.QRect(62, 193, 44, 22)) self.heightSpinBox.setMinimum(1) self.heightSpinBox.setMaximum(10000) self.heightSpinBox.setProperty("value", 480) - self.heightSpinBox.setObjectName(_fromUtf8("heightSpinBox")) - self.captureregionLabel = QtGui.QLabel(self.centralwidget) - self.captureregionLabel.setGeometry(QtCore.QRect(192, 50, 81, 16)) - self.captureregionLabel.setObjectName(_fromUtf8("captureregionLabel")) - self.fpslimitLabel = QtGui.QLabel(self.centralwidget) + self.heightSpinBox.setObjectName("heightSpinBox") + self.captureregionLabel = QtWidgets.QLabel(self.centralwidget) + self.captureregionLabel.setGeometry(QtCore.QRect(200, 50, 82, 16)) + self.captureregionLabel.setObjectName("captureregionLabel") + self.fpslimitLabel = QtWidgets.QLabel(self.centralwidget) self.fpslimitLabel.setGeometry(QtCore.QRect(8, 251, 51, 16)) - self.fpslimitLabel.setObjectName(_fromUtf8("fpslimitLabel")) - self.fpslimitSpinBox = QtGui.QDoubleSpinBox(self.centralwidget) + self.fpslimitLabel.setObjectName("fpslimitLabel") + self.fpslimitSpinBox = QtWidgets.QDoubleSpinBox(self.centralwidget) self.fpslimitSpinBox.setGeometry(QtCore.QRect(62, 248, 44, 22)) - self.fpslimitSpinBox.setPrefix(_fromUtf8("")) + self.fpslimitSpinBox.setPrefix("") self.fpslimitSpinBox.setDecimals(0) self.fpslimitSpinBox.setMinimum(30.0) self.fpslimitSpinBox.setMaximum(5000.0) self.fpslimitSpinBox.setSingleStep(1.0) self.fpslimitSpinBox.setProperty("value", 60.0) - self.fpslimitSpinBox.setObjectName(_fromUtf8("fpslimitSpinBox")) - self.currentsplitimagefileLabel = QtGui.QLabel(self.centralwidget) - self.currentsplitimagefileLabel.setGeometry(QtCore.QRect(362, 271, 237, 20)) - self.currentsplitimagefileLabel.setText(_fromUtf8("")) - self.currentsplitimagefileLabel.setAlignment(QtCore.Qt.AlignCenter) - self.currentsplitimagefileLabel.setObjectName(_fromUtf8("currentsplitimagefileLabel")) - self.takescreenshotButton = QtGui.QPushButton(self.centralwidget) - self.takescreenshotButton.setGeometry(QtCore.QRect(250, 251, 91, 21)) - self.takescreenshotButton.setFocusPolicy(QtCore.Qt.NoFocus) - self.takescreenshotButton.setObjectName(_fromUtf8("takescreenshotButton")) - self.xSpinBox = QtGui.QSpinBox(self.centralwidget) + self.fpslimitSpinBox.setObjectName("fpslimitSpinBox") + self.currentsplitimagefileLabel = QtWidgets.QLabel(self.centralwidget) + self.currentsplitimagefileLabel.setGeometry(QtCore.QRect(380, 270, 241, 20)) + self.currentsplitimagefileLabel.setText("") + self.currentsplitimagefileLabel.setAlignment(QtCore.Qt.AlignmentFlag.AlignCenter) + self.currentsplitimagefileLabel.setObjectName("currentsplitimagefileLabel") + self.takescreenshotButton = QtWidgets.QPushButton(self.centralwidget) + self.takescreenshotButton.setGeometry(QtCore.QRect(250, 251, 92, 24)) + self.takescreenshotButton.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus) + self.takescreenshotButton.setObjectName("takescreenshotButton") + self.xSpinBox = QtWidgets.QSpinBox(self.centralwidget) self.xSpinBox.setGeometry(QtCore.QRect(6, 154, 44, 22)) self.xSpinBox.setReadOnly(False) - self.xSpinBox.setButtonSymbols(QtGui.QAbstractSpinBox.UpDownArrows) + self.xSpinBox.setButtonSymbols(QtWidgets.QAbstractSpinBox.ButtonSymbols.UpDownArrows) self.xSpinBox.setMinimum(0) self.xSpinBox.setMaximum(999999999) self.xSpinBox.setSingleStep(1) self.xSpinBox.setProperty("value", 0) - self.xSpinBox.setObjectName(_fromUtf8("xSpinBox")) - self.ySpinBox = QtGui.QSpinBox(self.centralwidget) + self.xSpinBox.setObjectName("xSpinBox") + self.ySpinBox = QtWidgets.QSpinBox(self.centralwidget) self.ySpinBox.setGeometry(QtCore.QRect(62, 154, 44, 22)) self.ySpinBox.setReadOnly(False) - self.ySpinBox.setButtonSymbols(QtGui.QAbstractSpinBox.UpDownArrows) + self.ySpinBox.setButtonSymbols(QtWidgets.QAbstractSpinBox.ButtonSymbols.UpDownArrows) self.ySpinBox.setMinimum(0) self.ySpinBox.setMaximum(999999999) self.ySpinBox.setProperty("value", 0) - self.ySpinBox.setObjectName(_fromUtf8("ySpinBox")) - self.yLabel = QtGui.QLabel(self.centralwidget) + self.ySpinBox.setObjectName("ySpinBox") + self.yLabel = QtWidgets.QLabel(self.centralwidget) self.yLabel.setGeometry(QtCore.QRect(81, 139, 7, 16)) - self.yLabel.setObjectName(_fromUtf8("yLabel")) - self.comparisonmethodComboBox = QtGui.QComboBox(self.centralwidget) - self.comparisonmethodComboBox.setGeometry(QtCore.QRect(143, 299, 81, 22)) - self.comparisonmethodComboBox.setObjectName(_fromUtf8("comparisonmethodComboBox")) - self.comparisonmethodComboBox.addItem(_fromUtf8("")) - self.comparisonmethodComboBox.addItem(_fromUtf8("")) - self.comparisonmethodComboBox.addItem(_fromUtf8("")) - self.pauseDoubleSpinBox = QtGui.QDoubleSpinBox(self.centralwidget) - self.pauseDoubleSpinBox.setGeometry(QtCore.QRect(160, 425, 64, 22)) + self.yLabel.setObjectName("yLabel") + self.comparisonmethodComboBox = QtWidgets.QComboBox(self.centralwidget) + self.comparisonmethodComboBox.setGeometry(QtCore.QRect(133, 299, 81, 22)) + self.comparisonmethodComboBox.setObjectName("comparisonmethodComboBox") + self.comparisonmethodComboBox.addItem("") + self.comparisonmethodComboBox.addItem("") + self.comparisonmethodComboBox.addItem("") + self.pauseDoubleSpinBox = QtWidgets.QDoubleSpinBox(self.centralwidget) + self.pauseDoubleSpinBox.setGeometry(QtCore.QRect(150, 430, 64, 22)) self.pauseDoubleSpinBox.setMaximum(999999999.0) self.pauseDoubleSpinBox.setSingleStep(1.0) self.pauseDoubleSpinBox.setProperty("value", 10.0) - self.pauseDoubleSpinBox.setObjectName(_fromUtf8("pauseDoubleSpinBox")) - self.custompausetimesCheckBox = QtGui.QCheckBox(self.centralwidget) - self.custompausetimesCheckBox.setEnabled(True) - self.custompausetimesCheckBox.setGeometry(QtCore.QRect(10, 435, 121, 17)) - self.custompausetimesCheckBox.setWhatsThis(_fromUtf8("")) - self.custompausetimesCheckBox.setChecked(False) - self.custompausetimesCheckBox.setTristate(False) - self.custompausetimesCheckBox.setObjectName(_fromUtf8("custompausetimesCheckBox")) - self.customthresholdsCheckBox = QtGui.QCheckBox(self.centralwidget) - self.customthresholdsCheckBox.setEnabled(True) - self.customthresholdsCheckBox.setGeometry(QtCore.QRect(10, 394, 111, 17)) - self.customthresholdsCheckBox.setWhatsThis(_fromUtf8("")) - self.customthresholdsCheckBox.setChecked(False) - self.customthresholdsCheckBox.setTristate(False) - self.customthresholdsCheckBox.setObjectName(_fromUtf8("customthresholdsCheckBox")) - self.comparisonmethodLabel = QtGui.QLabel(self.centralwidget) - self.comparisonmethodLabel.setGeometry(QtCore.QRect(10, 300, 101, 16)) - self.comparisonmethodLabel.setObjectName(_fromUtf8("comparisonmethodLabel")) - self.alignregionButton = QtGui.QPushButton(self.centralwidget) + self.pauseDoubleSpinBox.setObjectName("pauseDoubleSpinBox") + self.comparisonmethodLabel = QtWidgets.QLabel(self.centralwidget) + self.comparisonmethodLabel.setGeometry(QtCore.QRect(10, 303, 110, 16)) + self.comparisonmethodLabel.setObjectName("comparisonmethodLabel") + self.alignregionButton = QtWidgets.QPushButton(self.centralwidget) self.alignregionButton.setGeometry(QtCore.QRect(5, 92, 101, 23)) - self.alignregionButton.setFocusPolicy(QtCore.Qt.NoFocus) - self.alignregionButton.setObjectName(_fromUtf8("alignregionButton")) - self.groupDummySplitsCheckBox = QtGui.QCheckBox(self.centralwidget) - self.groupDummySplitsCheckBox.setGeometry(QtCore.QRect(252, 440, 230, 17)) + self.alignregionButton.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus) + self.alignregionButton.setObjectName("alignregionButton") + self.groupDummySplitsCheckBox = QtWidgets.QCheckBox(self.centralwidget) + self.groupDummySplitsCheckBox.setGeometry(QtCore.QRect(230, 443, 261, 20)) self.groupDummySplitsCheckBox.setChecked(False) - self.groupDummySplitsCheckBox.setObjectName(_fromUtf8("groupDummySplitsCheckBox")) - self.selectwindowButton = QtGui.QPushButton(self.centralwidget) + self.groupDummySplitsCheckBox.setObjectName("groupDummySplitsCheckBox") + self.selectwindowButton = QtWidgets.QPushButton(self.centralwidget) self.selectwindowButton.setGeometry(QtCore.QRect(5, 117, 101, 23)) - self.selectwindowButton.setFocusPolicy(QtCore.Qt.NoFocus) - self.selectwindowButton.setObjectName(_fromUtf8("selectwindowButton")) + self.selectwindowButton.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus) + self.selectwindowButton.setObjectName("selectwindowButton") + self.imageloopLabel = QtWidgets.QLabel(self.centralwidget) + self.imageloopLabel.setGeometry(QtCore.QRect(380, 252, 108, 20)) + self.imageloopLabel.setObjectName("imageloopLabel") + self.pausehotkeyLabel = QtWidgets.QLabel(self.centralwidget) + self.pausehotkeyLabel.setGeometry(QtCore.QRect(230, 418, 31, 16)) + self.pausehotkeyLabel.setObjectName("pausehotkeyLabel") + self.pausehotkeyLineEdit = QtWidgets.QLineEdit(self.centralwidget) + self.pausehotkeyLineEdit.setGeometry(QtCore.QRect(300, 416, 81, 20)) + self.pausehotkeyLineEdit.setFocusPolicy(QtCore.Qt.FocusPolicy.StrongFocus) + self.pausehotkeyLineEdit.setReadOnly(True) + self.pausehotkeyLineEdit.setObjectName("pausehotkeyLineEdit") + self.setpausehotkeyButton = QtWidgets.QPushButton(self.centralwidget) + self.setpausehotkeyButton.setGeometry(QtCore.QRect(390, 416, 71, 21)) + self.setpausehotkeyButton.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus) + self.setpausehotkeyButton.setObjectName("setpausehotkeyButton") + self.loopCheckBox = QtWidgets.QCheckBox(self.centralwidget) + self.loopCheckBox.setEnabled(True) + self.loopCheckBox.setGeometry(QtCore.QRect(500, 340, 117, 20)) + self.loopCheckBox.setChecked(False) + self.loopCheckBox.setTristate(False) + self.loopCheckBox.setObjectName("loopCheckBox") + self.autostartonresetCheckBox = QtWidgets.QCheckBox(self.centralwidget) + self.autostartonresetCheckBox.setGeometry(QtCore.QRect(500, 360, 126, 20)) + self.autostartonresetCheckBox.setChecked(False) + self.autostartonresetCheckBox.setTristate(False) + self.autostartonresetCheckBox.setObjectName("autostartonresetCheckBox") + self.startImageReloadButton = QtWidgets.QPushButton(self.centralwidget) + self.startImageReloadButton.setGeometry(QtCore.QRect(500, 300, 121, 31)) + self.startImageReloadButton.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus) + self.startImageReloadButton.setObjectName("startImageReloadButton") + self.startImageLabel = QtWidgets.QLabel(self.centralwidget) + self.startImageLabel.setGeometry(QtCore.QRect(120, 270, 241, 16)) + self.startImageLabel.setObjectName("startImageLabel") self.splitimagefolderLabel.raise_() self.splitimagefolderLineEdit.raise_() self.browseButton.raise_() self.xLabel.raise_() self.liveimageCheckBox.raise_() - self.loopCheckBox.raise_() - self.autostartonresetCheckBox.raise_() self.selectregionButton.raise_() self.similaritythresholdLabel.raise_() self.similaritythresholdDoubleSpinBox.raise_() @@ -397,30 +328,18 @@ def setupUi(self, MainWindow): self.resetLabel.raise_() self.skiptsplitLabel.raise_() self.undosplitLabel.raise_() - self.pausehotkeyLabel.raise_() self.splitLineEdit.raise_() self.undosplitLineEdit.raise_() self.skipsplitLineEdit.raise_() self.resetLineEdit.raise_() - self.pausehotkeyLineEdit.raise_() self.setsplithotkeyButton.raise_() self.setresethotkeyButton.raise_() self.setskipsplithotkeyButton.raise_() self.setundosplithotkeyButton.raise_() - self.setpausehotkeyButton.raise_() - self.line_live_bottom.raise_() - self.line_live_top.raise_() - self.line_live_right.raise_() self.line_left.raise_() - self.line_live_left.raise_() - self.line_split_left.raise_() - self.line_split_right.raise_() - self.line_split_top.raise_() - self.line_split_bottom.raise_() self.timerglobalhotkeysLabel.raise_() self.line_right.raise_() self.currentsplitimageLabel.raise_() - self.imageloopLabel.raise_() self.liveImage.raise_() self.currentSplitImage.raise_() self.widthLabel.raise_() @@ -438,34 +357,44 @@ def setupUi(self, MainWindow): self.yLabel.raise_() self.comparisonmethodComboBox.raise_() self.pauseDoubleSpinBox.raise_() - self.custompausetimesCheckBox.raise_() - self.customthresholdsCheckBox.raise_() self.comparisonmethodLabel.raise_() self.alignregionButton.raise_() self.groupDummySplitsCheckBox.raise_() self.selectwindowButton.raise_() + self.imageloopLabel.raise_() + self.pausehotkeyLabel.raise_() + self.pausehotkeyLineEdit.raise_() + self.setpausehotkeyButton.raise_() + self.loopCheckBox.raise_() + self.autostartonresetCheckBox.raise_() + self.startImageReloadButton.raise_() + self.startImageLabel.raise_() MainWindow.setCentralWidget(self.centralwidget) - self.menuBar = QtGui.QMenuBar(MainWindow) - self.menuBar.setGeometry(QtCore.QRect(0, 0, 612, 21)) - self.menuBar.setObjectName(_fromUtf8("menuBar")) - self.menuFile = QtGui.QMenu(self.menuBar) - self.menuFile.setObjectName(_fromUtf8("menuFile")) - self.menuHelp = QtGui.QMenu(self.menuBar) - self.menuHelp.setObjectName(_fromUtf8("menuHelp")) + self.menuBar = QtWidgets.QMenuBar(MainWindow) + self.menuBar.setGeometry(QtCore.QRect(0, 0, 632, 22)) + self.menuBar.setObjectName("menuBar") + self.menuHelp = QtWidgets.QMenu(self.menuBar) + self.menuHelp.setObjectName("menuHelp") + self.menuFile = QtWidgets.QMenu(self.menuBar) + self.menuFile.setObjectName("menuFile") MainWindow.setMenuBar(self.menuBar) self.actionView_Help = QtGui.QAction(MainWindow) - self.actionView_Help.setObjectName(_fromUtf8("actionView_Help")) + self.actionView_Help.setObjectName("actionView_Help") self.actionAbout = QtGui.QAction(MainWindow) - self.actionAbout.setObjectName(_fromUtf8("actionAbout")) + self.actionAbout.setObjectName("actionAbout") + self.actionSplit_Settings = QtGui.QAction(MainWindow) + self.actionSplit_Settings.setObjectName("actionSplit_Settings") self.actionSave_Settings = QtGui.QAction(MainWindow) - self.actionSave_Settings.setObjectName(_fromUtf8("actionSave_Settings")) - self.actionSave_Settings_As = QtGui.QAction(MainWindow) - self.actionSave_Settings_As.setObjectName(_fromUtf8("actionSave_Settings_As")) + self.actionSave_Settings.setObjectName("actionSave_Settings") + self.actionSave_Settings_2 = QtGui.QAction(MainWindow) + self.actionSave_Settings_2.setObjectName("actionSave_Settings_2") self.actionLoad_Settings = QtGui.QAction(MainWindow) - self.actionLoad_Settings.setObjectName(_fromUtf8("actionLoad_Settings")) + self.actionLoad_Settings.setObjectName("actionLoad_Settings") + self.actionSave_Settings_As = QtGui.QAction(MainWindow) + self.actionSave_Settings_As.setObjectName("actionSave_Settings_As") self.menuHelp.addAction(self.actionView_Help) self.menuHelp.addAction(self.actionAbout) - self.menuFile.addAction(self.actionSave_Settings) + self.menuFile.addAction(self.actionSave_Settings_2) self.menuFile.addAction(self.actionSave_Settings_As) self.menuFile.addAction(self.actionLoad_Settings) self.menuBar.addAction(self.menuFile.menuAction()) @@ -482,80 +411,70 @@ def setupUi(self, MainWindow): MainWindow.setTabOrder(self.liveimageCheckBox, self.comparisonmethodComboBox) MainWindow.setTabOrder(self.comparisonmethodComboBox, self.showlivesimilarityCheckBox) MainWindow.setTabOrder(self.showlivesimilarityCheckBox, self.showhighestsimilarityCheckBox) - MainWindow.setTabOrder(self.showhighestsimilarityCheckBox, self.customthresholdsCheckBox) - MainWindow.setTabOrder(self.customthresholdsCheckBox, self.similaritythresholdDoubleSpinBox) - MainWindow.setTabOrder(self.similaritythresholdDoubleSpinBox, self.custompausetimesCheckBox) - MainWindow.setTabOrder(self.custompausetimesCheckBox, self.pauseDoubleSpinBox) + MainWindow.setTabOrder(self.showhighestsimilarityCheckBox, self.similaritythresholdDoubleSpinBox) + MainWindow.setTabOrder(self.similaritythresholdDoubleSpinBox, self.pauseDoubleSpinBox) MainWindow.setTabOrder(self.pauseDoubleSpinBox, self.splitLineEdit) MainWindow.setTabOrder(self.splitLineEdit, self.resetLineEdit) MainWindow.setTabOrder(self.resetLineEdit, self.skipsplitLineEdit) MainWindow.setTabOrder(self.skipsplitLineEdit, self.undosplitLineEdit) - MainWindow.setTabOrder(self.undosplitLineEdit, self.pausehotkeyLineEdit) - MainWindow.setTabOrder(self.pausehotkeyLineEdit, self.groupDummySplitsCheckBox) - MainWindow.setTabOrder(self.groupDummySplitsCheckBox, self.loopCheckBox) - MainWindow.setTabOrder(self.loopCheckBox, self.autostartonresetCheckBox) + MainWindow.setTabOrder(self.undosplitLineEdit, self.groupDummySplitsCheckBox) def retranslateUi(self, MainWindow): - MainWindow.setWindowTitle(_translate("MainWindow", "AutoSplit", None)) - self.splitimagefolderLabel.setText(_translate("MainWindow", "Split Image Folder:", None)) - self.browseButton.setText(_translate("MainWindow", "Browse..", None)) - self.xLabel.setText(_translate("MainWindow", "X", None)) - self.liveimageCheckBox.setText(_translate("MainWindow", "Live Capture Region", None)) - self.loopCheckBox.setText(_translate("MainWindow", "Loop Split Images", None)) - self.autostartonresetCheckBox.setText(_translate("MainWindow", "Auto Start On Reset", None)) - self.selectregionButton.setText(_translate("MainWindow", "Select Region", None)) - self.similaritythresholdLabel.setText(_translate("MainWindow", "Similarity threshold", None)) - self.startautosplitterButton.setText(_translate("MainWindow", "Start Auto Splitter", None)) - self.resetButton.setText(_translate("MainWindow", "Reset", None)) - self.undosplitButton.setText(_translate("MainWindow", "Undo Split", None)) - self.skipsplitButton.setText(_translate("MainWindow", "Skip Split", None)) - self.pauseLabel.setText(_translate("MainWindow", "Pause time after split (sec)", None)) - self.checkfpsButton.setText(_translate("MainWindow", "Max FPS", None)) - self.fpsLabel.setText(_translate("MainWindow", "FPS", None)) - self.showlivesimilarityCheckBox.setText(_translate("MainWindow", "Show live similarity", None)) - self.showhighestsimilarityCheckBox.setText(_translate("MainWindow", "Show highest similarity", None)) - self.splitLabel.setText(_translate("MainWindow", "Start / Split", None)) - self.resetLabel.setText(_translate("MainWindow", "Reset", None)) - self.skiptsplitLabel.setText(_translate("MainWindow", "Skip Split", None)) - self.undosplitLabel.setText(_translate("MainWindow", "Undo Split", None)) - self.pausehotkeyLabel.setText(_translate("MainWindow", "Pause", None)) - self.setsplithotkeyButton.setText(_translate("MainWindow", "Set Hotkey", None)) - self.setresethotkeyButton.setText(_translate("MainWindow", "Set Hotkey", None)) - self.setskipsplithotkeyButton.setText(_translate("MainWindow", "Set Hotkey", None)) - self.setundosplithotkeyButton.setText(_translate("MainWindow", "Set Hotkey", None)) - self.setpausehotkeyButton.setText(_translate("MainWindow", "Set Hotkey", None)) - self.timerglobalhotkeysLabel.setText(_translate("MainWindow", "Timer Global Hotkeys", None)) - self.currentsplitimageLabel.setText(_translate("MainWindow", "Current Split Image", None)) - self.imageloopLabel.setText(_translate("MainWindow", "Image Loop #:", None)) - self.widthLabel.setText(_translate("MainWindow", "Width", None)) - self.heightLabel.setText(_translate("MainWindow", "Height", None)) - self.captureregionLabel.setText(_translate("MainWindow", "Capture Region", None)) - self.fpslimitLabel.setText(_translate("MainWindow", "FPS Limit:", None)) - self.takescreenshotButton.setText(_translate("MainWindow", "Take Screenshot", None)) - self.yLabel.setText(_translate("MainWindow", "Y", None)) - self.comparisonmethodComboBox.setItemText(0, _translate("MainWindow", "L2 Norm", None)) - self.comparisonmethodComboBox.setItemText(1, _translate("MainWindow", "Histograms", None)) - self.comparisonmethodComboBox.setItemText(2, _translate("MainWindow", "pHash", None)) - self.custompausetimesCheckBox.setText(_translate("MainWindow", "Custom pause times", None)) - self.customthresholdsCheckBox.setText(_translate("MainWindow", "Custom thresholds", None)) - self.comparisonmethodLabel.setText(_translate("MainWindow", "Comparison Method", None)) - self.alignregionButton.setText(_translate("MainWindow", "Align Region", None)) - self.groupDummySplitsCheckBox.setText(_translate("MainWindow", "Group dummy splits when undoing/skipping", None)) - self.selectwindowButton.setText(_translate("MainWindow", "Select Window", None)) - self.menuHelp.setTitle(_translate("MainWindow", "Help", None)) - self.menuFile.setTitle(_translate("MainWindow", "File", None)) - self.actionView_Help.setText(_translate("MainWindow", "View Help", None)) - self.actionAbout.setText(_translate("MainWindow", "About", None)) - self.actionSave_Settings.setText(_translate("MainWindow", "Save Settings", None)) - self.actionSave_Settings_As.setText(_translate("MainWindow", "Save Settings As...", None)) - self.actionLoad_Settings.setText(_translate("MainWindow", "Load Settings", None)) - - -if __name__ == "__main__": - import sys - app = QtGui.QApplication(sys.argv) - MainWindow = QtGui.QMainWindow() - ui = Ui_MainWindow() - ui.setupUi(MainWindow) - MainWindow.show() - sys.exit(app.exec_()) + _translate = QtCore.QCoreApplication.translate + MainWindow.setWindowTitle(_translate("MainWindow", "AutoSplit")) + self.splitimagefolderLabel.setText(_translate("MainWindow", "Split Image Folder:")) + self.browseButton.setText(_translate("MainWindow", "Browse..")) + self.xLabel.setText(_translate("MainWindow", "X")) + self.liveimageCheckBox.setText(_translate("MainWindow", "Live Capture Region")) + self.selectregionButton.setText(_translate("MainWindow", "Select Region")) + self.similaritythresholdLabel.setText(_translate("MainWindow", "Similarity threshold\n" +"Default value")) + self.startautosplitterButton.setText(_translate("MainWindow", "Start Auto Splitter")) + self.resetButton.setText(_translate("MainWindow", "Reset")) + self.undosplitButton.setText(_translate("MainWindow", "Undo Split")) + self.skipsplitButton.setText(_translate("MainWindow", "Skip Split")) + self.pauseLabel.setText(_translate("MainWindow", "Pause time (seconds)\n" +"Default value")) + self.checkfpsButton.setText(_translate("MainWindow", "Max FPS")) + self.fpsLabel.setText(_translate("MainWindow", "FPS")) + self.showlivesimilarityCheckBox.setText(_translate("MainWindow", "Show live similarity")) + self.showhighestsimilarityCheckBox.setText(_translate("MainWindow", "Show highest similarity")) + self.splitLabel.setText(_translate("MainWindow", "Start / Split")) + self.resetLabel.setText(_translate("MainWindow", "Reset")) + self.skiptsplitLabel.setText(_translate("MainWindow", "Skip Split")) + self.undosplitLabel.setText(_translate("MainWindow", "Undo Split")) + self.setsplithotkeyButton.setText(_translate("MainWindow", "Set Hotkey")) + self.setresethotkeyButton.setText(_translate("MainWindow", "Set Hotkey")) + self.setskipsplithotkeyButton.setText(_translate("MainWindow", "Set Hotkey")) + self.setundosplithotkeyButton.setText(_translate("MainWindow", "Set Hotkey")) + self.timerglobalhotkeysLabel.setText(_translate("MainWindow", "Timer Global Hotkeys")) + self.currentsplitimageLabel.setText(_translate("MainWindow", "Current Split Image")) + self.widthLabel.setText(_translate("MainWindow", "Width")) + self.heightLabel.setText(_translate("MainWindow", "Height")) + self.captureregionLabel.setText(_translate("MainWindow", "Capture Region")) + self.fpslimitLabel.setText(_translate("MainWindow", "FPS Limit:")) + self.takescreenshotButton.setText(_translate("MainWindow", "Take Screenshot")) + self.yLabel.setText(_translate("MainWindow", "Y")) + self.comparisonmethodComboBox.setItemText(0, _translate("MainWindow", "L2 Norm")) + self.comparisonmethodComboBox.setItemText(1, _translate("MainWindow", "Histograms")) + self.comparisonmethodComboBox.setItemText(2, _translate("MainWindow", "pHash")) + self.comparisonmethodLabel.setText(_translate("MainWindow", "Comparison Method")) + self.alignregionButton.setText(_translate("MainWindow", "Align Region")) + self.groupDummySplitsCheckBox.setText(_translate("MainWindow", "Group dummy splits when undoing/skipping")) + self.selectwindowButton.setText(_translate("MainWindow", "Select Window")) + self.imageloopLabel.setText(_translate("MainWindow", "Image Loop #:")) + self.pausehotkeyLabel.setText(_translate("MainWindow", "Pause")) + self.setpausehotkeyButton.setText(_translate("MainWindow", "Set Hotkey")) + self.loopCheckBox.setText(_translate("MainWindow", "Loop Split Images")) + self.autostartonresetCheckBox.setText(_translate("MainWindow", "Auto Start On Reset")) + self.startImageReloadButton.setText(_translate("MainWindow", "Reload Start Image")) + self.startImageLabel.setText(_translate("MainWindow", "Start image:")) + self.menuHelp.setTitle(_translate("MainWindow", "Help")) + self.menuFile.setTitle(_translate("MainWindow", "File")) + self.actionView_Help.setText(_translate("MainWindow", "View Help")) + self.actionAbout.setText(_translate("MainWindow", "About")) + self.actionSplit_Settings.setText(_translate("MainWindow", "Split Image Settings")) + self.actionSave_Settings.setText(_translate("MainWindow", "Save Settings")) + self.actionSave_Settings_2.setText(_translate("MainWindow", "Save Settings")) + self.actionLoad_Settings.setText(_translate("MainWindow", "Load Settings")) + self.actionSave_Settings_As.setText(_translate("MainWindow", "Save Settings As...")) diff --git a/src/error_messages.py b/src/error_messages.py index 2f55c83f..7b81636e 100644 --- a/src/error_messages.py +++ b/src/error_messages.py @@ -1,142 +1,77 @@ # Error messages -from PyQt4 import QtGui +from PyQt6 import QtWidgets -def splitImageDirectoryError(self): - msgBox = QtGui.QMessageBox() - msgBox.setWindowTitle('Error') - msgBox.setText("No split image folder is selected.") - msgBox.exec_() -def splitImageDirectoryNotFoundError(self): - msgBox = QtGui.QMessageBox() +def setTextMessage(message: str): + msgBox = QtWidgets.QMessageBox() msgBox.setWindowTitle('Error') - msgBox.setText("The Split Image Folder does not exist.") - msgBox.exec_() + msgBox.setText(message) + msgBox.exec() -def imageTypeError(self, image): - msgBox = QtGui.QMessageBox() - msgBox.setWindowTitle('Error') - msgBox.setText( - '"' + image + '" is not a valid image file or the full image file path contains a special character.') - msgBox.exec_() +def splitImageDirectoryError(): + setTextMessage("No split image folder is selected.") -def regionError(self): - msgBox = QtGui.QMessageBox() - msgBox.setWindowTitle('Error') - msgBox.setText("No region is selected or the Capture Region window is not open. Select a region or load settings while the Capture Region window is open.") - msgBox.exec_() +def splitImageDirectoryNotFoundError(): + setTextMessage("The Split Image Folder does not exist.") -def regionSizeError(self): - msgBox = QtGui.QMessageBox() - msgBox.setWindowTitle('Error') - msgBox.setText("Width and height cannot be 0. Please select a larger region.") - msgBox.exec_() +def imageTypeError(image): + setTextMessage('"' + image + '" is not a valid image file or the full image file path contains a special character.') -def splitHotkeyError(self): - msgBox = QtGui.QMessageBox() - msgBox.setWindowTitle('Error') - msgBox.setText("No split hotkey has been set.") - msgBox.exec_() +def regionError(): + setTextMessage("No region is selected or the Capture Region window is not open. Select a region or load settings while the Capture Region window is open.") -def pauseHotkeyError(self): - msgBox = QtGui.QMessageBox() - msgBox.setWindowTitle('Error') - msgBox.setText("Your split image folder contains an image filename with a pause flag {p}, but no pause hotkey is set.") - msgBox.exec_() -def customThresholdError(self, image): - msgBox = QtGui.QMessageBox() - msgBox.setWindowTitle('Error') - msgBox.setText("\"" + image + "\" doesn't have a valid custom threshold.") - msgBox.exec_() +def regionSizeError(): + setTextMessage("Width and height cannot be 0. Please select a larger region.") -def customPauseError(self, image): - msgBox = QtGui.QMessageBox() - msgBox.setWindowTitle('Error') - msgBox.setText("\"" + image + "\" doesn't have a valid custom pause time.") - msgBox.exec_() +def splitHotkeyError(): + setTextMessage("No split hotkey has been set.") -def alphaChannelError(self, image): - msgBox = QtGui.QMessageBox() - msgBox.setWindowTitle('Error') - msgBox.setText("\"" + image + "\" is marked with mask flag but it doesn't have transparency.") - msgBox.exec_() +def pauseHotkeyError(): + setTextMessage("Your split image folder contains an image filename with a pause flag {p}, but no pause hotkey is set.") -def alignRegionImageTypeError(self): - msgBox = QtGui.QMessageBox() - msgBox.setWindowTitle('Error') - msgBox.setText("File not a valid image file") - msgBox.exec_() +def alignRegionImageTypeError(): + setTextMessage("File not a valid image file") -def alignmentNotMatchedError(self): - msgBox = QtGui.QMessageBox() - msgBox.setWindowTitle('Error') - msgBox.setText("No area in capture region matched reference image. Alignment failed.") - msgBox.exec_() +def alignmentNotMatchedError(): + setTextMessage("No area in capture region matched reference image. Alignment failed.") -def multipleResetImagesError(self): - msgBox = QtGui.QMessageBox() - msgBox.setWindowTitle('Error') - msgBox.setText("Only one image with the keyword \"reset\" is allowed.") - msgBox.exec_() +def noKeywordImageError(self, keyword): + setTextMessage(f"Your split image folder does not contain an image with the keyword \"{keyword}\".") -def noResetImageThresholdError(self): - msgBox = QtGui.QMessageBox() - msgBox.setWindowTitle('Error') - msgBox.setText("Reset Image must have a custom threshold. Please set one and check that it is valid") - msgBox.exec_() +def multipleKeywordImagesError(keyword): + setTextMessage(f"Only one image with the keyword \"{keyword}\" is allowed.") -def resetHotkeyError(self): - msgBox = QtGui.QMessageBox() - msgBox.setWindowTitle('Error') - msgBox.setText("Your split image folder contains a reset image, but no reset hotkey is set.") - msgBox.exec_() +def resetHotkeyError(): + setTextMessage("Your split image folder contains a reset image, but no reset hotkey is set.") -def dummySplitsError(self): - msgBox = QtGui.QMessageBox() - msgBox.setWindowTitle('Error') - msgBox.setText( - "Group dummy splits when undoing/skipping cannot be checked if any split image has a loop parameter greater than 1") - msgBox.exec_() +def dummySplitsError(): + setTextMessage("Group dummy splits when undoing/skipping cannot be checked if any split image has a loop parameter greater than 1") -def settingsNotFoundError(self): - msgBox = QtGui.QMessageBox() - msgBox.setWindowTitle('Error') - msgBox.setText("No settings file found. The settings file is saved when the program is closed.") - msgBox.exec_() -def oldVersionSettingsFileError(self): - msgBox = QtGui.QMessageBox() - msgBox.setWindowTitle('Error') - msgBox.setText("Old version settings file detected. This version allows settings files from v1.3 and above.") - msgBox.exec_() +def oldVersionSettingsFileError(): + setTextMessage("Old version settings file detected. This version allows settings files from v1.3 and above.") -def invalidSettingsError(self): - msgBox = QtGui.QMessageBox() - msgBox.setWindowTitle('Error') - msgBox.setText("Invalid settings file.") - msgBox.exec_() -def noSettingsFileOnOpenError(self): - msgBox = QtGui.QMessageBox() - msgBox.setWindowTitle('Error') - msgBox.setText("No settings file found. One can be loaded on open if placed in the same folder as AutoSplit.exe") - msgBox.exec_() +def invalidSettingsError(): + setTextMessage("Invalid settings file.") -def tooManySettingsFilesOnOpenError(self): - msgBox = QtGui.QMessageBox() - msgBox.setWindowTitle('Error') - msgBox.setText("Too many settings files found. Only one can be loaded on open if placed in the same folder as AutoSplit.exe") - msgBox.exec_() \ No newline at end of file + +def noSettingsFileOnOpenError(): + setTextMessage("No settings file found. One can be loaded on open if placed in the same folder as AutoSplit.exe") + + +def tooManySettingsFilesOnOpenError(): + setTextMessage("Too many settings files found. Only one can be loaded on open if placed in the same folder as AutoSplit.exe") diff --git a/src/hotkeys.py b/src/hotkeys.py index eca9a822..32b0e4bb 100644 --- a/src/hotkeys.py +++ b/src/hotkeys.py @@ -1,5 +1,9 @@ import keyboard +import pyautogui import threading +# While not usually recommended, we don't manipulate the mouse, and we don't want the extra delay +pyautogui.FAILSAFE = False + # do all of these after you click "set hotkey" but before you type the hotkey. def beforeSettingHotkey(self): @@ -26,60 +30,138 @@ def afterSettingHotkey(self): self.setundosplithotkeyButton.setEnabled(True) self.setpausehotkeyButton.setEnabled(True) - return -#--------------------HOTKEYS-------------------------- -#Going to comment on one func, and others will be similar. +def is_digit(key): + try: + key_as_num = int(key) + return key_as_num >= 0 and key_as_num <= 9 + except Exception: + return False + + +def send_command(self, command): + if self.is_auto_controlled: + print(command, flush=True) + else: + if command == "split" or command == "start": + _send_hotkey(self.splitLineEdit.text()) + elif command == "pause": + _send_hotkey(self.pausehotkeyLineEdit.text()) + elif command == "reset": + _send_hotkey(self.resetLineEdit.text()) + else: + raise KeyError(f"'{command}' is not a valid LiveSplit.AutoSplitIntegration command") + + +# Supports sending the appropriate scan code for all the special cases +def _send_hotkey(key_or_scan_code): + hotkey_type = type(key_or_scan_code) + + # Deal with regular inputs + if hotkey_type is int: + return keyboard.send(key_or_scan_code) + elif hotkey_type is not str: + raise TypeError(f'key_or_scan_code "{key_or_scan_code}" {hotkey_type} should be an int or str') + if (not (key_or_scan_code.startswith('num ') or key_or_scan_code == 'decimal')): + return keyboard.send(key_or_scan_code) + + # Deal with problematic keys. Even by sending specific scan code 'keyboard' still sends the defautl (wrong) key + # keyboard.send(keyboard.key_to_scan_codes(key_or_scan_code)[1]) + pyautogui.hotkey(key_or_scan_code.replace(' ', '')) + + +def __validate_keypad(expected_key, keyboard_event): + # Prevent "(keypad)delete", "(keypad)./decimal" and "del" from triggering each other + # as well as "." and "(keypad)./decimal" + if keyboard_event.scan_code == 83 or keyboard_event.scan_code == 52: + if expected_key == keyboard_event.name: + return True + else: + # TODO: "del" won't work with "(keypad)delete" if localized in non-english (ie: "suppr" in french) + return False + # Prevent "action keys" from triggering "keypad keys" + if is_digit(keyboard_event.name[-1]): + # Prevent "regular numbers" from activating "keypad numbers" + if expected_key.startswith("num "): + return keyboard_event.is_keypad + # Prevent "keypad numbers" from activating "regular numbers" + else: + return not keyboard_event.is_keypad + else: + # Prevent "keypad action keys" from triggering "regular numbers" and "keypad numbers" + # Still allow the same key that might be localized differently on keypad vs non-keypad + return not is_digit(expected_key[-1]) + + +# NOTE: This is a workaround very specific to numpads. +# Windows reports different physical keys with the same scan code. +# For example, "Home", "Num Home" and "Num 7" are all "71". +# See: https://github.com/boppreh/keyboard/issues/171#issuecomment-390437684 +# +# We're doing the check here instead of saving the key code because it'll +# cause issues with save files and the non-keypad shared keys are localized +# while the keypad ones aren't. +# +# Since we reuse the key string we set to send to LiveSplit, we can't use fake names like "num home". +# We're also trying to achieve the same hotkey behaviour as LiveSplit has. +def _hotkey_action(keyboard_event, key_name, action): + if keyboard_event.event_type == keyboard.KEY_DOWN and __validate_keypad(key_name, keyboard_event): + action() + + +def __get_key_name(keyboard_event): + return f"num {keyboard_event.name}" \ + if keyboard_event.is_keypad and is_digit(keyboard_event.name) \ + else keyboard_event.name + + +def __is_key_already_set(self, key_name): + return key_name == self.splitLineEdit.text() \ + or key_name == self.resetLineEdit.text() \ + or key_name == self.skipsplitLineEdit.text() \ + or key_name == self.undosplitLineEdit.text() \ + or key_name == self.pausehotkeyLineEdit.text() + + +# --------------------HOTKEYS-------------------------- +# TODO: Refactor to de-duplicate all this code, including settings_file.py +# Going to comment on one func, and others will be similar. def setSplitHotkey(self): - self.setsplithotkeyButton.setText('Press a key..') + self.setsplithotkeyButton.setText('Press a key...') # disable some buttons self.beforeSettingHotkey() # new thread points to callback. this thread is needed or GUI will freeze # while the program waits for user input on the hotkey - def callback(): + def callback(hotkey): # try to remove the previously set hotkey if there is one. try: - keyboard.remove_hotkey(self.split_hotkey) - except AttributeError: - pass - #this error was coming up when loading the program and - #the lineEdit area was empty (no hotkey set), then you - #set one, reload the setting once back to blank works, - #but if you click reload settings again, it errors - #we can just have it pass, but don't want to throw in - #generic exception here in case another one of these - #pops up somewhere. - except KeyError: + keyboard.unhook_key(hotkey) + # KeyError was coming up when loading the program and + # the lineEdit area was empty (no hotkey set), then you + # set one, reload the setting once back to blank works, + # but if you click reload settings again, it errors + # we can just have it pass, but don't want to throw in + # generic exception here in case another one of these + # pops up somewhere. + except (AttributeError, KeyError): pass # wait until user presses the hotkey, then keyboard module reads the input - self.split_key = keyboard.read_hotkey(False) - - # If the key the user presses is equal to itself or another hotkey already set, - # this causes issues. so here, it catches that, and will make no changes to the hotkey. + key_name = __get_key_name(keyboard.read_event(True)) try: - if self.split_key == self.splitLineEdit.text() \ - or self.split_key == self.resetLineEdit.text() \ - or self.split_key == self.skipsplitLineEdit.text() \ - or self.split_key == self.undosplitLineEdit.text() \ - or self.split_key == self.pausehotkeyLineEdit.text(): - self.split_hotkey = keyboard.add_hotkey(self.old_split_key, self.startAutoSplitter) - self.afterSettingHotkeySignal.emit() - return - except AttributeError: - self.afterSettingHotkeySignal.emit() - return + # If the key the user presses is equal to itself or another hotkey already set, + # this causes issues. so here, it catches that, and will make no changes to the hotkey. - # keyboard module allows you to hit multiple keys for a hotkey. they are joined - # together by +. If user hits two keys at the same time, make no changes to the - # hotkey. A try and except is needed if a hotkey hasn't been set yet. I'm not - # allowing for these multiple-key hotkeys because it can cause crashes, and - # not many people are going to really use or need this. - try: - if '+' in self.split_key: - self.split_hotkey = keyboard.add_hotkey(self.old_split_key, self.startAutoSplitter) + # or + + # keyboard module allows you to hit multiple keys for a hotkey. they are joined + # together by +. If user hits two keys at the same time, make no changes to the + # hotkey. A try and except is needed if a hotkey hasn't been set yet. I'm not + # allowing for these multiple-key hotkeys because it can cause crashes, and + # not many people are going to really use or need this. + if __is_key_already_set(self, key_name) or '+' in key_name: self.afterSettingHotkeySignal.emit() return except AttributeError: @@ -88,192 +170,131 @@ def callback(): # add the key as the hotkey, set the text into the LineEdit, set it as old_xxx_key, # then emite a signal to re-enable some buttons and change some text in GUI. - self.split_hotkey = keyboard.add_hotkey(self.split_key, self.startAutoSplitter) - self.splitLineEdit.setText(self.split_key) - self.old_split_key = self.split_key + + # We need to inspect the event to know if it comes from numpad because of _canonial_names. + # See: https://github.com/boppreh/keyboard/issues/161#issuecomment-386825737 + # The best way to achieve this is make our own hotkey handling on top of hook + # See: https://github.com/boppreh/keyboard/issues/216#issuecomment-431999553 + self.split_hotkey = keyboard.hook_key(key_name, lambda e: _hotkey_action(e, key_name, self.startAutoSplitter)) + self.splitLineEdit.setText(key_name) + self.split_key = key_name self.afterSettingHotkeySignal.emit() - return - t = threading.Thread(target=callback) + t = threading.Thread(target=callback, args=(self.split_hotkey,)) t.start() - return + def setResetHotkey(self): - self.setresethotkeyButton.setText('Press a key..') + self.setresethotkeyButton.setText('Press a key...') self.beforeSettingHotkey() - def callback(): + def callback(hotkey): try: - keyboard.remove_hotkey(self.reset_hotkey) - except AttributeError: + keyboard.unhook_key(hotkey) + except (AttributeError, KeyError): pass - except KeyError: - pass - self.reset_key = keyboard.read_hotkey(False) - try: - if self.reset_key == self.splitLineEdit.text() \ - or self.reset_key == self.resetLineEdit.text() \ - or self.reset_key == self.skipsplitLineEdit.text() \ - or self.reset_key == self.undosplitLineEdit.text() \ - or self.reset_key == self.pausehotkeyLineEdit.text(): - self.reset_hotkey = keyboard.add_hotkey(self.old_reset_key, self.startReset) - self.afterSettingHotkeySignal.emit() - return - except AttributeError: - self.afterSettingHotkeySignal.emit() - return + + key_name = __get_key_name(keyboard.read_event(True)) + try: - if '+' in self.reset_key: - self.reset_hotkey = keyboard.add_hotkey(self.old_reset_key, self.startReset) + if __is_key_already_set(self, key_name) or '+' in key_name: self.afterSettingHotkeySignal.emit() return except AttributeError: self.afterSettingHotkeySignal.emit() return - self.reset_hotkey = keyboard.add_hotkey(self.reset_key, self.startReset) - self.resetLineEdit.setText(self.reset_key) - self.old_reset_key = self.reset_key + + self.reset_hotkey = keyboard.hook_key(key_name, lambda e: _hotkey_action(e, key_name, self.startReset)) + self.resetLineEdit.setText(key_name) + self.reset_key = key_name self.afterSettingHotkeySignal.emit() - return - t = threading.Thread(target=callback) + t = threading.Thread(target=callback, args=(self.reset_hotkey,)) t.start() - return + def setSkipSplitHotkey(self): - self.setskipsplithotkeyButton.setText('Press a key..') + self.setskipsplithotkeyButton.setText('Press a key...') self.beforeSettingHotkey() - def callback(): + def callback(hotkey): try: - keyboard.remove_hotkey(self.skip_split_hotkey) - except AttributeError: - pass - except KeyError: + keyboard.unhook_key(hotkey) + except (AttributeError, KeyError): pass - self.skip_split_key = keyboard.read_hotkey(False) + key_name = __get_key_name(keyboard.read_event(True)) try: - if self.skip_split_key == self.splitLineEdit.text() \ - or self.skip_split_key == self.resetLineEdit.text() \ - or self.skip_split_key == self.skipsplitLineEdit.text() \ - or self.skip_split_key == self.undosplitLineEdit.text() \ - or self.skip_split_key == self.pausehotkeyLineEdit.text(): - self.skip_split_hotkey = keyboard.add_hotkey(self.old_skip_split_key, self.startSkipSplit) + if __is_key_already_set(self, key_name) or '+' in key_name: self.afterSettingHotkeySignal.emit() return except AttributeError: self.afterSettingHotkeySignal.emit() return - try: - if '+' in self.skip_split_key: - self.skip_split_hotkey = keyboard.add_hotkey(self.old_skip_split_key, self.startSkipSplit) - self.afterSettingHotkeySignal.emit() - return - except AttributeError: - self.afterSettingHotkeySignal.emit() - return - - self.skip_split_hotkey = keyboard.add_hotkey(self.skip_split_key, self.startSkipSplit) - self.skipsplitLineEdit.setText(self.skip_split_key) - self.old_skip_split_key = self.skip_split_key + self.skip_split_hotkey = keyboard.hook_key(key_name, lambda e: _hotkey_action(e, key_name, self.startSkipSplit)) + self.skipsplitLineEdit.setText(key_name) + self.skip_split_key = key_name self.afterSettingHotkeySignal.emit() - return - t = threading.Thread(target=callback) + t = threading.Thread(target=callback, args=(self.skip_split_hotkey,)) t.start() - return + def setUndoSplitHotkey(self): - self.setundosplithotkeyButton.setText('Press a key..') + self.setundosplithotkeyButton.setText('Press a key...') self.beforeSettingHotkey() - def callback(): + def callback(hotkey): try: - keyboard.remove_hotkey(self.undo_split_hotkey) - except AttributeError: - pass - except KeyError: + keyboard.unhook_key(hotkey) + except (AttributeError, KeyError): pass - self.undo_split_key = keyboard.read_hotkey(False) + key_name = __get_key_name(keyboard.read_event(True)) try: - if self.undo_split_key == self.splitLineEdit.text() \ - or self.undo_split_key == self.resetLineEdit.text() \ - or self.undo_split_key == self.skipsplitLineEdit.text() \ - or self.undo_split_key == self.undosplitLineEdit.text() \ - or self.undo_split_key == self.pausehotkeyLineEdit.text(): - self.undo_split_hotkey = keyboard.add_hotkey(self.old_undo_split_key, self.startUndoSplit) + if __is_key_already_set(self, key_name) or '+' in key_name: self.afterSettingHotkeySignal.emit() return except AttributeError: self.afterSettingHotkeySignal.emit() return - try: - if '+' in self.undo_split_key: - self.undo_split_hotkey = keyboard.add_hotkey(self.old_undo_split_key, self.startUndoSplit) - self.afterSettingHotkeySignal.emit() - return - except AttributeError: - self.afterSettingHotkeySignal.emit() - return - - self.undo_split_hotkey = keyboard.add_hotkey(self.undo_split_key, self.startUndoSplit) - self.undosplitLineEdit.setText(self.undo_split_key) - self.old_undo_split_key = self.undo_split_key + self.undo_split_hotkey = keyboard.hook_key(key_name, lambda e: _hotkey_action(e, key_name, self.startUndoSplit)) + self.undosplitLineEdit.setText(key_name) + self.undo_split_key = key_name self.afterSettingHotkeySignal.emit() - return - t = threading.Thread(target=callback) + t = threading.Thread(target=callback, args=(self.undo_split_hotkey,)) t.start() - return + def setPauseHotkey(self): - self.setpausehotkeyButton.setText('Press a key..') + self.setpausehotkeyButton.setText('Press a key...') self.beforeSettingHotkey() - def callback(): + def callback(hotkey): try: - keyboard.remove_hotkey(self.pause_hotkey) - except AttributeError: - pass - except KeyError: + keyboard.unhook_key(hotkey) + except (AttributeError, KeyError): pass - self.pause_key = keyboard.read_hotkey(False) - - try: - if self.pause_key == self.splitLineEdit.text() \ - or self.pause_key == self.resetLineEdit.text() \ - or self.pause_key == self.skipsplitLineEdit.text() \ - or self.pause_key == self.undosplitLineEdit.text() \ - or self.pause_key == self.pausehotkeyLineEdit.text(): - self.pause_hotkey = keyboard.add_hotkey(self.old_pause_key, self.startPause) - self.afterSettingHotkeySignal.emit() - return - except AttributeError: - self.afterSettingHotkeySignal.emit() - return + key_name = __get_key_name(keyboard.read_event(True)) try: - if '+' in self.pause_key: - self.pause_hotkey = keyboard.add_hotkey(self.old_pause_key, self.startPause) + if __is_key_already_set(self, key_name) or '+' in key_name: self.afterSettingHotkeySignal.emit() return except AttributeError: self.afterSettingHotkeySignal.emit() return - self.pause_hotkey = keyboard.add_hotkey(self.pause_key, self.startPause) - self.pausehotkeyLineEdit.setText(self.pause_key) - self.old_pause_key = self.pause_key + self.pause_hotkey = keyboard.hook_key(key_name, lambda e: _hotkey_action(e, key_name, self.startPause)) + self.pausehotkeyLineEdit.setText(key_name) + self.pause_key = key_name self.afterSettingHotkeySignal.emit() - return - t = threading.Thread(target=callback) + t = threading.Thread(target=callback, args=(self.pause_hotkey,)) t.start() - return \ No newline at end of file diff --git a/src/icon.ico b/src/icon.ico deleted file mode 100644 index fae0f994..00000000 Binary files a/src/icon.ico and /dev/null differ diff --git a/src/menu_bar.py b/src/menu_bar.py index 598f8435..94f864c6 100644 --- a/src/menu_bar.py +++ b/src/menu_bar.py @@ -1,19 +1,26 @@ -import os -from PyQt4 import QtGui +from PyQt6 import QtWidgets import about +import os + +import resources_rc # noqa: F401 + +# AutoSplit Version number +VERSION = "1.5.1" + # About Window -class AboutWidget(QtGui.QWidget, about.Ui_aboutAutoSplitWidget): +class AboutWidget(QtWidgets.QWidget, about.Ui_aboutAutoSplitWidget): def __init__(self): super(AboutWidget, self).__init__() self.setupUi(self) self.createdbyLabel.setOpenExternalLinks(True) self.donatebuttonLabel.setOpenExternalLinks(True) + self.versionLabel.setText(f"Version: {VERSION}") self.show() -def viewHelp(self): + +def viewHelp(): os.system("start \"\" https://github.com/Toufool/Auto-Split#tutorial") - return def about(self): diff --git a/src/resources_rc.py b/src/resources_rc.py index 0ded678b..fb3714ff 100644 --- a/src/resources_rc.py +++ b/src/resources_rc.py @@ -1,985 +1,199 @@ -# -*- coding: utf-8 -*- - -# Resource object code -# -# Created by: The Resource Compiler for PyQt4 (Qt v4.8.7) -# +# Resource object code (Python 3) +# Created by: object code +# Created by: The Resource Compiler for Qt version 6.1.2 # WARNING! All changes made in this file will be lost! -from PyQt4 import QtCore +from PySide6 import QtCore qt_resource_data = b"\ -\x00\x00\x3b\x7f\ +\x00\x00\x0a\x8d\ \x89\ -\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ -\x00\x00\xaa\x00\x00\x00\x51\x08\x06\x00\x00\x00\x42\x23\x3d\x58\ -\x00\x00\x00\x01\x73\x52\x47\x42\x00\xae\xce\x1c\xe9\x00\x00\x00\ -\x04\x67\x41\x4d\x41\x00\x00\xb1\x8f\x0b\xfc\x61\x05\x00\x00\x00\ -\x09\x70\x48\x59\x73\x00\x00\x0e\xc3\x00\x00\x0e\xc3\x01\xc7\x6f\ -\xa8\x64\x00\x00\x00\x1a\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\ -\x72\x65\x00\x50\x61\x69\x6e\x74\x2e\x4e\x45\x54\x20\x76\x33\x2e\ -\x35\x2e\x31\x31\x47\xf3\x42\x37\x00\x00\x3a\xee\x49\x44\x41\x54\ -\x78\x5e\xed\x9d\x07\x58\x54\xc7\xfa\xc6\xaf\x08\x48\xb7\xd7\x98\ -\xd8\x3b\x8a\xbd\x25\x31\xd1\x68\x62\xef\xe9\x76\xa5\x28\x2a\x8a\ -\x25\xb1\xc4\x24\xc6\xc4\x2e\x02\x8a\xd8\x7b\x62\x49\xec\x5d\xec\ -\xdd\xd8\xa5\x48\x11\xc5\x4e\xef\xb0\xc0\xee\x79\xff\xef\xcc\xee\ -\x52\x96\x45\x89\xc9\xbd\xe6\xff\x3c\x4c\x9e\xdf\x9d\x39\x33\xdf\ -\xcc\x99\x73\xe6\x9d\x6f\x66\x76\x57\xee\x7f\x8a\x42\x51\x28\x0a\ -\x45\xa1\x28\x14\x85\xa2\x50\x14\x8a\x42\x51\x28\x0a\x45\xa1\x28\ -\xbc\x81\x90\xb5\xae\xa3\xa5\xb2\xe1\xa3\x32\xca\x7e\x97\xcd\x59\ -\x1b\xbb\x6d\x56\x96\x54\xdf\xac\x78\xd6\xd9\x0c\x8f\xda\x9b\xe1\ -\x49\x96\xbe\x26\x9e\xb5\x48\xcd\xbc\x18\xb3\xcb\x07\xeb\x2d\x15\ -\xb6\xb9\x11\x79\x85\xb1\x33\xb4\x31\x86\x91\x7a\x86\xfd\x2c\x74\ -\x5f\x49\xbe\xba\xc6\xfa\xfa\xba\xb0\x2d\xc3\xf6\x8d\xbe\x8b\x7f\ -\x0e\x45\xf7\x7e\x94\xa5\x75\x36\x2b\xab\xda\x6e\xd6\xec\x1d\xb5\ -\x19\xfb\x5d\x9a\x2a\xab\xdb\x5b\x2b\x9b\xbb\xeb\x54\xf3\x3f\x0c\ -\x58\xf3\x6e\x57\x76\xcc\x5d\xb3\xa2\xf9\x0b\x65\x69\x4d\xb0\x83\ -\xc0\xd2\x1a\x50\xbc\xea\x40\x23\xae\x3d\xc5\x75\x6d\xc6\xc6\x10\ -\xe5\xb9\xa9\x45\x0c\x6d\x44\x9e\x21\x06\x36\x6c\x5f\xdc\x23\x3f\ -\xe2\xde\xb9\x29\x8c\x4d\x41\xd4\x34\x40\xe4\x19\x6b\xef\xff\x0b\ -\xf9\x9f\xa9\x50\xef\xba\x90\x70\xa2\xc9\x71\xd1\xea\x81\x6d\x33\ -\x56\xa8\x0b\xac\x68\x06\x78\xd5\xff\x46\xe3\xdb\x6e\xa8\x4e\x42\ -\xff\xbd\x80\xcd\x9d\x4d\xb0\xaa\x6d\x27\x2c\x6b\x74\x5a\xf1\xac\ -\x9f\x08\x9f\xc6\x50\x36\x76\x04\xf6\x0f\x87\x72\x79\x0e\x94\x9b\ -\x5e\x50\x07\xac\x07\x02\xd6\x92\xf5\x50\x02\xd6\x00\xfe\x1b\xf2\ -\x12\x20\x10\x36\xb9\x59\xf7\x2f\x46\x3c\x8b\x21\xc6\xec\x0c\x31\ -\x56\xcf\x18\xaf\x5b\xaf\x10\xf8\x17\x16\x31\x4e\xc6\x58\xfd\x0a\ -\x8c\xd4\xb9\xcb\x7c\xa2\xdc\x5d\x05\xcd\x2d\x6f\xea\xe2\x27\x28\ -\x47\x5c\xa0\x6c\xee\x02\x8d\x2f\xf5\xe2\x55\x2f\x43\xf1\xae\x17\ -\x02\x9f\xa6\x1f\x63\x43\xc7\x92\x3a\x69\xfd\x73\x41\xd9\xd4\xd1\ -\x8e\x9e\xd3\x5d\x59\xd6\x08\x8a\x8f\x3d\x94\xbd\x5f\x41\xb9\xee\ -\x09\x84\x6c\x87\x3a\x62\x3f\x10\xb1\x0f\x8a\x0e\x0d\xaf\x95\x47\ -\x44\x97\x9f\x1f\x91\xff\x1a\x3c\x64\xdd\x87\x7b\xf3\x62\xac\x7d\ -\x69\xf7\x4f\x61\x70\xbf\xc2\xf2\x60\x8f\x11\x44\x7e\x6e\x8c\xd9\ -\x08\x72\x97\xed\xce\x95\xfe\xab\x88\xba\x86\xec\x82\x12\x6e\xc8\ -\xee\x7c\x20\xfc\x8f\x42\xb2\x2b\x0f\xb2\x3d\x79\x0f\xd1\x8e\x48\ -\xff\x01\x0d\xed\x94\x90\xad\x50\x6e\x2d\x85\x72\xd8\x11\xca\xca\ -\xe6\x50\xbc\x1b\xd0\x03\xd7\xd9\xa8\xac\x7f\xbf\xb4\xb2\x6d\x80\ -\x4e\x65\x7f\x33\x60\x4d\x87\x16\xca\xca\x96\xcf\x15\x0f\xba\xf6\ -\x1d\xbd\x81\x3b\xbe\x14\x84\x10\x0f\x5f\xa8\x1c\x18\xed\xa0\x2a\ -\x4c\x6b\x64\x1e\x1f\x54\xe4\x89\x17\x9e\x7b\xf0\x5e\x85\x7c\xb9\ -\x22\xd6\x91\xcf\x86\xe5\xb9\x11\xf6\xe1\xcc\xcf\x4d\x81\x03\x64\ -\x80\x1c\x0c\x03\x0a\x63\x53\x68\xf2\x0e\xa0\x71\x38\x80\x05\xf2\ -\xbb\x8e\x9d\xb9\xd2\x05\x03\xc1\xfd\xc2\xb0\x93\xb6\x79\xd1\xde\ -\x23\x2f\xd2\xee\xfe\x0e\x5d\x9c\x1b\x91\xa7\x67\xbb\x11\x74\xf9\ -\x61\xdb\xb2\xd3\x8a\x48\x13\x45\xa6\x49\x20\x3d\xee\xae\x2f\xa0\ -\xf1\xae\x0f\xc5\xb7\x19\x94\x35\xed\x7a\xe9\xa4\xf6\xfa\x01\x2b\ -\x9b\x3b\xc0\xb3\x5e\xac\xe2\xd3\x08\x38\x32\x06\x1a\x76\x56\x31\ -\x1c\x50\x3d\x85\x1c\x30\xc3\x41\x91\xf9\x9c\x85\xe0\xec\xd3\x5e\ -\xff\x0d\xee\x0b\x8c\x0d\x50\x5e\x8c\x0e\x76\xbe\x41\x29\x88\xdc\ -\x83\xa5\x45\x31\x24\xac\x30\x70\xd0\xc4\xe0\xe5\x43\x0c\x6a\x0e\ -\x72\xd0\x5f\x9b\xdf\x0a\x81\x91\x7a\xa1\x39\xe5\x0a\xd1\x84\xfd\ -\xaa\xcd\x0b\x65\x1c\xb6\x35\x87\xd0\xd7\x43\x09\xd9\x08\xe5\xec\ -\x64\x28\xdc\xbb\xf2\x5c\x93\xac\xac\x68\xf2\xb5\x4e\x72\x7f\x3d\ -\xa8\x7f\xeb\x59\x57\x59\xd9\xe2\x21\xbc\x1b\x42\x73\x62\x12\x3b\ -\x2c\x44\x9a\x6b\x60\xc5\xcc\xcb\x85\xc2\x41\x7c\x5d\xa4\x00\x64\ -\x1b\x1c\x40\x92\x77\x96\xea\x31\x14\x48\x7e\x1b\x31\xd0\x1a\x0a\ -\x20\x37\x42\x10\xc8\x87\x91\xc1\x29\xb4\x5d\xce\x20\x1a\x43\xd1\ -\x0f\xa8\x21\x46\x6c\x8d\xa1\xd0\xd6\x10\x8d\x01\xc6\x06\xff\x75\ -\x51\x42\xb7\x50\x38\x79\x81\x8c\x37\x33\xde\x2c\xe3\x1c\x36\x11\ -\x8a\x4c\x07\x82\xff\x1a\x39\x75\x37\x40\x09\xe6\x79\xe5\xc2\x6c\ -\xed\x56\x72\xb9\x7d\x82\xf2\x6b\xd7\xae\x3a\xe9\xfd\xb5\xc0\x53\ -\xfc\x4f\xf2\x04\xe8\x37\x51\x27\x20\x31\xf0\x62\x86\x89\xc1\x67\ -\x7c\x3f\x2f\xc6\x5e\xba\x76\x16\xbe\x0a\x0e\x06\x67\xac\xd6\x9b\ -\xe4\xf6\x78\x79\x3d\x6f\x3e\xe8\x3d\x8d\xa1\xf5\xaa\x39\xc8\xfc\ -\x7c\x75\x73\xbc\x6b\xb6\x97\x15\xe8\x26\x61\x81\x18\xd4\x29\x88\ -\x42\xb5\x65\x0c\x83\x76\xfe\x0a\x46\xdb\xfb\x5b\x70\x3c\x42\x29\ -\xce\x60\x1e\x8c\x83\x79\xe8\xba\xc7\xc3\x5e\x3e\x44\x3e\x0f\x51\ -\x7f\x89\xb5\xd0\xb0\xae\xb6\xdd\x0d\xd0\x9c\xfd\x06\xca\x32\x7b\ -\xf1\x69\xd1\x7e\x8d\x67\x6d\x13\x9d\xfc\x0a\x17\xb0\xfa\xfd\xa1\ -\xf0\xae\x97\xa9\xd9\xd9\x97\x9d\xd5\x8b\x91\x4b\x51\x18\x67\x9b\ -\x98\x89\x72\xd6\x69\x67\x9c\x96\x4d\xaf\x8f\x98\x69\x02\x31\xb3\ -\x29\x6e\x29\x5a\x19\x17\x82\x42\x2e\x93\x85\xb5\xcb\x0f\x27\x52\ -\xa1\xc8\x65\xaf\x9f\x80\xf9\x6c\x5e\x8d\xb1\x67\x94\xed\x86\xe6\ -\xc5\xb8\x9d\x31\x44\x9f\x5e\x07\xd1\x26\xc7\x21\x98\x82\x0a\x5c\ -\x05\x25\x68\x25\x10\x50\x00\x81\x3c\xb3\x04\xae\xd0\x21\xd2\x06\ -\x04\x68\x63\x45\xb2\x52\x82\x7b\xa2\xcd\x35\x50\x28\x5a\x45\x88\ -\xf6\xd0\x48\x0a\xb5\x0e\xb0\xba\xcd\x62\x9d\x04\x5f\x1d\xb0\xa2\ -\x71\x71\x78\xd7\xbf\x8b\x95\xad\xa0\xdc\xf4\x64\x87\xb9\x3c\x88\ -\x8e\x8b\x25\x47\x88\x32\x54\x08\x4c\xef\xce\xd7\xe7\x82\xb3\xab\ -\xc0\x99\xf7\x2a\x58\x4f\xb4\x29\x26\x00\x67\x71\xde\x49\xf0\x32\ -\xb4\xcb\x54\x36\xc2\x03\xe8\x26\x92\x86\xc2\xd7\xf6\x55\x94\x89\ -\x7c\x71\x2d\x96\x34\x31\x29\xc4\x12\xc6\xfa\xf2\x5a\x2c\x81\xc2\ -\xce\x48\x7b\x7f\x99\x02\xfa\x65\x0c\xfd\x73\x8a\x58\xf4\x47\xf6\ -\x5d\x57\x57\xa4\xf5\x6d\xe9\xf3\xfe\x32\xda\x36\x5e\x1b\x71\x5f\ -\x21\x26\xff\xe5\x50\x02\x96\x03\x8c\x5f\x85\xb0\x33\x24\xa7\xdc\ -\x87\xd7\x2b\x08\x05\x1b\xc4\xf8\x1e\x45\xcb\xf6\xa5\x87\xbd\xeb\ -\x0d\x6c\xfa\x10\xf0\xaa\xfb\x08\xcb\x1b\xd5\xd5\x49\xf1\xe5\x41\ -\x59\xdb\xae\xbf\x46\x7c\x50\x7b\xc8\x91\x4b\x8a\x98\xbd\xda\x3d\ -\x91\x12\x2c\x1e\x40\x88\x93\x7b\x0b\xbd\xb8\xc4\x8d\x82\x56\x33\ -\xad\x43\xa4\x25\x22\x9f\x0f\x29\x66\x63\x3e\xb4\xb3\x2a\x7b\x76\ -\x89\x3c\xce\x58\xed\xec\xca\x2d\x7c\xde\xe3\x55\xe4\x13\x3c\x97\ -\x13\xc6\xca\x3d\xd1\x47\xb6\xc7\x76\xa4\xb7\x96\xb0\x4d\xd1\xbe\ -\x2c\xd3\xe7\xf3\x25\x85\xb0\x5e\xf6\x33\xfd\x53\x88\xf6\x0c\x31\ -\xb4\x59\x2f\x97\x40\x29\x28\x3e\x8b\xe8\x9f\x5a\xdf\x67\xb9\x44\ -\x8a\x7d\x1c\xdf\xb7\xec\xb3\x61\xdd\xff\x01\xe2\x7d\x89\x31\xba\ -\xeb\x45\x28\x24\xa3\x78\x19\x50\x40\x9e\xff\x32\x89\x14\xae\xf0\ -\xbc\xf4\xc4\x62\xec\x35\x3a\xbd\x88\x71\x57\xce\x4c\x11\x1f\x59\ -\x41\xb3\xa2\xe9\x1c\x9d\x14\x0b\x0e\x38\x39\xab\xb4\xda\xb7\xb9\ -\x9f\xb2\xc2\x1e\x10\xde\x54\xbf\x71\x97\xb3\x4c\xe7\x41\x85\x40\ -\xc5\x8b\x94\x37\x59\x95\x0b\x8a\x2e\x37\x52\x84\x06\xcb\x40\x01\ -\x28\x01\x3e\xac\xa3\x13\xb8\x1c\x24\xa6\x5f\x13\x85\x7d\x51\x82\ -\x57\x53\x04\xe2\x05\x68\xfb\x26\x66\xae\x7c\x29\x6c\x5b\x9b\x2f\ -\xec\xc4\xd2\xa3\x87\x65\xba\xc9\x95\x17\x91\xff\xdf\x41\x91\xf0\ -\xf9\xc5\x24\xd5\x4d\x56\x6d\x3e\xaf\xe5\xbd\xf5\x79\xb9\xdf\xf1\ -\xff\x18\xe1\x15\x29\x36\xc9\x1d\xea\xe1\xb5\xd0\x0a\x5d\xa1\x50\ -\x35\xd2\xeb\xfa\x40\x23\x3c\xab\x98\x04\xbc\x87\x12\xa4\x9d\x18\ -\x1a\x7f\x4f\xc0\x9b\x42\xf5\xb6\x0f\xc7\x89\x1f\x6b\xea\x24\x69\ -\x3c\xa8\xb7\x76\x6f\xcd\x93\x3e\x34\x2b\xeb\x01\x97\xa7\x49\x81\ -\x6a\x67\xbc\xd8\x4b\xea\xbd\x82\xf0\xa4\xe2\x65\xf3\x26\xe2\x66\ -\x42\x68\x3a\xb4\xc2\xd3\xef\x57\x84\x9b\x2f\x0c\x3a\xa1\x0a\x61\ -\xeb\xda\x2d\x2c\x7a\xaf\xac\x47\x7a\x00\xd9\xde\x6a\x2c\xfa\xe9\ -\x07\x7c\x33\x65\x3a\xbe\x15\x4c\x9e\x89\xe9\x53\xbf\x85\xd7\xdc\ -\x1f\x70\x63\xbf\x07\x12\xaf\x73\x19\xca\x5d\xcf\x70\xdf\x25\xc8\ -\x55\xfe\x57\xd1\x3e\x8b\x01\xd9\xef\x47\x87\xd8\xbb\xc9\x65\x70\ -\x25\x82\x8f\x7b\xc0\xef\xb7\x79\x38\xbd\x7d\x11\x52\x6e\x72\x30\ -\xe5\xbb\x13\x65\x06\x75\xfe\x47\xe8\xc7\x52\x8a\x8b\x42\xd3\x18\ -\x15\x60\xe1\x10\xcb\xba\x46\x8a\x54\xa0\x17\xa9\xb8\x07\xdf\x15\ -\xc7\x5b\x43\x3d\xa9\x85\xcd\xc1\xae\xd0\xf8\x56\x81\xe2\xdd\x08\ -\xca\xa6\x1e\x2e\x3a\x49\x1a\x0f\xca\xd2\xda\xad\xe5\x77\xf5\xab\ -\xab\x41\xb3\xa3\x21\x34\x57\x67\x72\x69\xe4\x12\x44\xf4\x42\x95\ -\x9e\xc8\x98\x50\xa5\x40\x04\xb9\x45\x98\x1f\x4d\x20\x3b\x9b\x0b\ -\x21\x52\xed\x92\xa0\x6b\x47\x47\xee\x17\x57\x30\x39\x93\x42\x4e\ -\x0c\xb1\xf7\xe1\x3d\x9e\x5e\xf0\x42\xcd\x36\x8e\x28\xdf\x64\x24\ -\xca\x35\x19\x81\xf2\x8d\x47\xa1\x9c\xc3\x08\x32\x0a\x95\x9b\x39\ -\x62\xf8\xa8\x29\x88\xbc\xc8\x59\xce\x36\x64\xbf\x58\xcf\x78\xfb\ -\xff\x3d\xb4\xef\x6a\xb9\x1c\xb8\xa1\x23\x26\xc9\x3e\xb6\xef\xee\ -\x8a\xe7\xe7\xe9\x81\x74\xef\x4a\xa0\x3f\x8c\xfc\x2f\x11\x7d\x83\ -\xb8\xf7\x5d\xf6\x4f\x78\x43\x8a\x55\x7d\xd7\xd3\x08\x22\x3f\x37\ -\xc6\xca\xb4\x42\x55\x07\x10\x9d\x50\x35\x74\x04\x6a\x19\xaf\x61\ -\x1e\x05\x7c\xa8\x37\xd4\x6b\xec\x28\xd4\xb2\x10\xbf\x1d\x51\x2f\ -\xad\xf3\x0a\xa1\xfe\x31\xfc\xa2\x30\xd4\xac\xad\x04\xcd\x26\xb2\ -\xa5\x2a\x94\x4b\x93\x38\xa0\x74\xcd\x42\xa8\x74\xd3\xc2\x55\x6b\ -\x84\x58\x03\xb9\x9f\xa2\x58\x35\x9c\xf5\x1a\xf1\x70\x72\xff\x29\ -\x62\x22\x05\xa3\x4b\x17\x02\x8d\xb4\xcd\xeb\x75\x8c\xd9\x19\x92\ -\xdb\x5e\x8b\x98\x08\x2b\xb0\x77\xed\x2f\x78\xab\xb9\x23\x2a\x34\ -\x1d\x85\x71\xe3\xbe\xc1\x8e\x95\x3f\x63\xe9\x2f\xdf\xa1\xd5\xc7\ -\x63\x29\xde\x11\xa8\x48\xc1\x3a\xba\x4c\x46\xc6\x1d\x0e\x84\xa8\ -\x23\x27\x8b\x0f\xe2\xae\x2e\xc3\xcd\x7d\x8b\x71\xe6\xf7\x05\xb8\ -\xb6\x7f\x01\x62\xaf\x72\x90\x44\x99\x68\xdb\x7f\x15\x32\x29\xac\ -\xb8\x2b\xde\x88\xbc\xe4\x8d\xc4\x6b\xcb\x90\x71\x7b\x39\xee\x1d\ -\x5f\x8c\xb3\x3b\x16\x22\xf4\xa4\x87\x7c\xf9\x42\x5c\xa2\x4d\xf5\ -\x5d\x1f\x44\x9c\xf1\xc2\x8d\x03\x8b\x70\x66\xe7\x02\x9c\xdb\x31\ -\x0f\xb7\x0f\x2e\x46\xfc\x9f\x14\xa2\x9c\xe0\xcb\xa1\xba\xbd\x02\ -\x21\x7e\x8b\xd0\xa2\xf3\x18\x4e\xa8\x91\x18\x36\x6a\x12\x1e\x9f\ -\x5d\x8a\xa8\x4b\xf4\x46\xfe\x6c\x27\x88\x03\xcb\x38\xfc\xd4\x12\ -\x9c\x67\x9f\xce\xec\x9c\x87\x80\xc3\x8b\x91\x7e\x8b\xfd\x66\xbe\ -\x56\xe8\xfa\xc9\x9e\x23\xee\x1c\xf4\x65\x7f\x1d\x75\xd0\x72\xc4\ -\xf3\x59\x33\x85\x47\xbd\x4b\x91\x51\x70\xb9\xd1\x0a\x38\x2f\x9a\ -\x6c\xb4\x9e\x54\xcd\x74\xb6\x50\xb9\xec\xeb\x3d\xaa\x78\x3f\x8a\ -\x10\xeb\xed\xc5\x50\xef\x6e\x87\xcc\x95\x56\xc8\x5a\x69\x8a\xac\ -\x15\x96\xd0\x78\x56\x07\xb6\xf5\x4f\xc3\xb1\xa9\x05\x7f\x54\xa5\ -\xac\x7b\xef\xa6\xf8\x85\x8d\x7a\x6d\x59\x68\xd6\x97\x41\xd6\xfa\ -\xd2\x50\x6f\xaa\x02\xcd\xb1\xcf\x78\xe3\x25\x72\xf3\x2f\x44\xaa\ -\x91\x02\x15\xc2\xd4\x7a\x55\x4d\xf6\x21\x49\x9b\x27\xc5\x4b\xb4\ -\x79\x79\x11\xa2\x34\x46\x7e\x5b\xe3\xf5\x73\x0b\xd5\x18\x59\x77\ -\x7d\xf1\xfd\x8c\x19\xd2\x7b\xd6\x6c\xe3\x84\x53\xdb\xe6\x53\xc0\ -\x3e\xc8\xe2\xc0\x5e\xdd\xb5\x08\xd5\xe8\x69\x85\x77\x7d\xab\xc5\ -\x28\xbc\x10\x5e\x95\x2f\x2c\xf5\xb6\x0f\xb6\x2e\x9f\x83\x9e\x9f\ -\xbb\xc1\xbe\x83\x0b\x6a\xb5\x77\x86\xfd\xfb\xa3\xf1\x49\xbf\xf1\ -\x5c\x8e\x17\xb2\xae\x56\xd0\x4f\xcf\x79\xe1\xeb\x61\x93\xf0\x61\ -\xef\xb1\x18\x3f\xee\x5b\x4c\x9d\x3c\x8d\x22\x73\x45\xed\xb6\x4e\ -\x78\xb7\xfb\x58\x1c\xdd\x3a\x97\x7d\xe0\x20\x90\xdf\x7c\x7f\x46\ -\xbb\xee\x63\xd0\xf8\x03\x17\x96\x3b\xa2\x16\x6d\x1c\x3a\xba\xa0\ -\xe7\xa7\xe3\x71\x6d\xdf\x42\xb6\xe7\x8b\x03\x1b\xe7\xa1\x7d\x37\ -\x57\x54\x69\xe6\x24\x3d\x7f\xc3\x77\x5d\xd0\xb1\xd7\x78\x0c\x77\ -\x9c\x2c\xc5\x12\x76\x72\x29\xb7\x2c\x33\xd0\xf6\x93\x31\xa8\xdb\ -\x5e\xf4\xcb\x09\xcd\x3a\xba\x62\xdc\xf8\x6f\xf0\xec\x02\xc5\xcc\ -\x36\xe4\xa0\x17\xf0\x5e\xb4\xde\xeb\x35\x90\x2b\x1d\xdb\xa5\x40\ -\x35\xf4\x8a\xc6\x84\xaa\x47\x2e\xed\x3a\x84\x30\xb5\xb6\x02\xbe\ -\x33\x4e\x56\xcd\x1d\x8a\x9e\x69\x35\xc7\x45\x4c\x5e\x8d\x3f\xfb\ -\xc6\xeb\xac\x4b\xd3\x90\xb1\xad\x31\x54\x3e\x66\x48\xf7\x31\x85\ -\x6a\x79\x71\x64\x2e\x37\xe3\x81\xea\x1d\x60\x55\x3b\x60\x63\xd7\ -\x97\x08\xd5\xab\x0e\x85\x5a\x83\x6e\xd8\x06\x99\x6b\xac\xa0\x5e\ -\x6d\x2d\xc9\xe2\x75\xd6\xd6\xda\xd0\x9c\x75\xe6\xcc\x10\x2f\x80\ -\x27\xd6\x40\xee\x2f\x84\x28\x65\x2c\xc4\x2a\xd0\xbd\x20\x3d\x46\ -\x04\x69\x88\x9a\x02\x12\x88\x74\x7e\x51\xfe\x75\xc4\xfe\xb3\xdf\ -\x97\x13\x50\x81\x1e\xaa\xc9\x87\x2e\x88\xba\xcc\x3d\x1f\xf7\x81\ -\x7a\x8f\xff\x7e\x0f\x7a\x55\x2e\xb3\xe5\x9b\x0c\xc7\xad\x83\x4b\ -\x90\x7e\xdb\x17\x8b\x7f\xfe\x1e\x95\xe9\x7d\x2b\x35\x1b\x89\xbe\ -\x9f\x4d\xc4\x18\xd7\xa9\xa8\xd3\x8e\xe2\x71\x70\xa4\x17\x1e\x83\ -\xfb\xa7\xb4\xa2\x38\xb9\x7d\x3e\x6a\x31\xbf\x7c\x63\x6e\x23\x9a\ -\x8c\x82\xc3\x87\xa3\xe5\x16\x43\x78\xc3\x0a\xbc\x76\x72\x99\xca\ -\xe7\xa6\xe7\xe5\xf3\x4c\xa0\x27\xef\xd0\x63\x1c\xc6\x8e\x9d\x8a\ -\x29\x14\x74\x87\x9e\x63\x69\xc3\xed\x08\xef\xed\xea\xfa\x2d\xbd\ -\xa9\x2f\xf7\xd1\x33\x29\x60\x17\xe6\x0f\x97\xde\xbf\x79\xa7\x31\ -\x68\xd9\xc5\x15\x53\xbe\xf9\x56\x4e\x8a\x4f\xfa\x8f\x67\x1f\x46\ -\xa2\xe1\x07\xce\x70\x73\xfb\x06\x43\x86\xbb\xcb\x15\xa1\x12\xf3\ -\xe6\x7c\x37\x53\x4e\x32\xb9\xcf\x95\xef\x3a\xaf\xd8\x44\x9e\xb1\ -\xf7\x53\x28\x84\xa3\x11\xe3\x73\x77\x25\xb2\xb8\xea\x08\xd4\x42\ -\x70\x85\x82\xb6\x9c\xf8\xea\x3b\x1c\xdb\x3b\x2b\xe8\x38\xe8\x24\ -\xee\x8a\x15\x46\x38\x11\xe6\xff\x39\x1f\x19\xbb\x3f\x42\x96\x6f\ -\x49\xa8\xbc\x4d\xa0\xf2\x2a\x8e\xf4\x65\xc5\x98\x2e\x0e\xd5\x32\ -\x13\x68\x96\x72\x15\xf7\xaa\x4b\xea\xbf\x44\xa8\x4b\x6b\xdf\x84\ -\x67\x6d\x64\xf8\x9a\x21\xd3\xd7\x92\xb1\xb9\x4c\x67\x31\xce\x64\ -\x9c\xb1\xb2\x04\xd4\x5b\x29\x64\xbf\xaf\xa0\xfc\x39\x47\x2e\x3f\ -\x6a\x9d\xe0\x14\x2e\x8d\x9a\x80\x55\x50\xeb\x66\xa3\x9a\x1e\x41\ -\x2f\xc6\x97\xf1\x4f\x0a\x55\x4c\x96\x87\xa7\xbd\x28\x26\x67\x29\ -\xa6\x2f\x87\xb9\xb3\x5d\x91\xcf\xf6\x45\x39\xd3\xef\x75\x1b\x2b\ -\xbd\x97\x10\x57\xe8\x49\x2f\xf8\x6d\x9b\x8b\xaa\xcd\x47\xa1\x02\ -\xed\x67\x7c\x33\x03\x2a\x0e\x4e\x86\xff\x4a\xac\x5a\x3c\x47\xe6\ -\x09\x61\xec\x5f\x37\x4f\x8a\xc2\x6b\xfe\x0f\xa8\xd8\x58\xec\x7d\ -\x47\xe0\xc8\xd6\x79\x48\xbc\xb9\x0c\x17\xfe\x58\x84\x8a\x14\xa9\ -\xf0\xd2\x8e\xa3\xa7\xc8\x7b\x65\x71\x32\x47\x5d\x5e\x86\x74\x0e\ -\x5c\x12\x0f\x47\x4f\xcf\x2f\xc3\xa1\x4d\xf3\xe8\x5d\x47\xd3\x76\ -\x24\x9c\x5d\xa7\x70\x82\xac\x40\x1a\xb7\x0e\xc2\x7b\x0a\x01\x37\ -\x78\xdf\x99\x9e\x7d\x05\x97\x75\xe6\xdf\xf2\x85\xfb\x84\x69\x52\ -\xfc\xcd\x3b\x8e\xe6\x61\x6b\x29\x07\x79\x25\x92\xaf\x2f\x43\xb7\ -\x01\x13\xf9\x6c\xc3\xf1\xc9\x80\x71\xc8\x92\x02\x15\xfb\xbd\xfc\ -\xef\xf5\xef\x20\xb6\x1d\x62\xeb\x26\x9c\x92\x10\x98\x46\x88\x4e\ -\x37\x4e\x79\xd1\xd9\xe8\x11\xc2\x26\xfa\x38\x93\x4b\xbd\x58\xc9\ -\xd4\x37\x3d\x91\x79\x76\x32\x54\x7b\xbb\x22\xcd\xd7\x0e\x29\xcb\ -\x4c\x91\x46\x61\xa6\x52\xa4\xa9\xde\xda\x74\x1a\x45\x2b\x62\x21\ -\x54\x8d\xfc\x7d\x6b\x9d\x97\x08\xd5\xa3\xe6\x4d\xf1\xb5\x69\xc6\ -\x72\xba\x62\xaa\x5b\x25\xe2\xe5\x26\xbc\x36\xa3\x8b\xd6\xba\x67\ -\x41\x3a\xdd\x75\xe6\x9a\x4a\xc8\xfc\xb5\x11\xb2\xf6\x75\x47\xe6\ -\x89\x91\x50\x9f\x9f\x04\xf5\xe5\x1f\x90\x75\x65\x16\xd4\x57\xbe\ -\x63\xfc\xbd\x4c\xbf\x0c\x35\x6d\xd4\x22\x7d\xf9\x3b\x59\x47\xa4\ -\xff\x16\x3c\xfc\x1d\xdf\x30\x83\x03\x49\x0f\x47\xe1\x2c\x9c\x3e\ -\x1e\x59\xe2\x40\x28\xfa\x72\xf5\x3b\x3c\x3f\x39\x1b\x35\x5b\x6b\ -\x3d\x60\xb3\xf7\x87\x22\xf9\xdc\x2c\x8c\x75\x9d\x40\xe1\x8d\xe4\ -\x52\x3f\x12\xb7\x76\x7e\xa3\x6b\xeb\x3b\xec\xf5\x9d\x22\x85\x52\ -\x81\x1e\x70\x9b\xa7\x3b\xdb\xfe\x1e\xc3\x47\xba\x49\x91\x37\xe9\ -\x30\x0a\xaa\x8b\x33\x99\xf7\x1d\x2e\xfe\x36\x5d\x0a\xad\x82\xc3\ -\x70\xac\x9a\xeb\x26\xeb\xc7\x5f\x98\x83\x43\x1b\xe7\xc2\x85\xc2\ -\xed\xda\x6f\x02\xde\xeb\xe1\x0a\x7b\x7a\xdf\xca\xcd\xe8\x39\x59\ -\xdf\x67\xf6\x44\xd9\xd7\xd4\x0b\xb3\xd0\xb4\x93\x8b\xbc\xff\xf0\ -\xa1\x2e\xba\x7b\xcf\x40\xc2\xb9\x1f\x50\xa7\xbd\xf6\x30\x28\xb6\ -\x15\xdd\x06\x8e\x47\xf7\x81\x6e\xe8\xd6\x7f\x22\x3d\xb0\xf0\xca\ -\x23\x31\xe0\x33\x17\x68\xe4\x7b\x9b\xc5\xe7\xd3\xbf\xbf\xbc\x64\ -\xbd\x2e\x97\xd9\x0f\xb6\x2d\x62\x41\x66\x01\xe8\xcb\x73\xf8\x4e\ -\x5b\x76\x69\x26\xb2\xce\xb8\x21\xf3\xf0\x17\x50\xfd\xf1\x21\xd2\ -\x37\xd4\xa4\x40\x6d\x91\xb6\x4c\x08\x93\xfa\x91\xa2\x34\x65\xda\ -\x44\x92\xce\x74\x8a\x4c\x9b\x42\xed\x55\x09\xf0\xa8\x09\x2c\xa9\ -\xfe\x32\x8f\xca\xa5\xdf\xb3\xa6\xac\xa8\xf2\x12\x0d\x10\x11\xbf\ -\x04\xed\x4c\x60\xda\x08\xfa\xb2\xff\x1a\xf2\xfe\xda\xd9\x98\x2e\ -\xe3\xe2\xf8\x69\x48\x4b\x39\xc0\x55\x9a\x0d\xc3\xe1\x6f\xde\x41\ -\x2a\x27\x9c\xe8\x4b\xb2\xb7\x19\x16\x8d\x6c\x81\x4a\x4d\xc5\x32\ -\x3b\x02\xd3\xbe\x6e\x8b\x67\x8b\x6c\xd0\xf9\xa3\x3e\x14\xcf\x48\ -\xf4\xf8\xa4\x27\x9e\x2e\xb4\xe2\xcb\x14\x6d\x9a\xc2\xdb\xa9\x89\ -\x5c\x76\xab\x52\x5c\x27\x67\x54\x96\x6d\xd7\x6b\x3d\x98\x42\x1d\ -\x85\x11\x7d\x3b\x49\x6f\xa0\xa2\xdd\x52\xc7\x26\xd2\xc3\xd6\x69\ -\xfd\x15\x4e\xcf\x78\x0b\x71\x4b\x4b\x60\xd2\x17\xef\xa1\x2a\x85\ -\xfb\x56\xf3\xe1\x18\xd8\xbd\x1b\x66\x0e\x6e\x87\xcf\x7b\x7e\x22\ -\xfb\x55\xc9\x61\x18\xae\xcc\xaa\x28\xdb\xf3\xff\xa9\xac\xac\x2b\ -\xf2\x97\x3a\xdb\xb3\x9f\xc2\xbb\x98\xe0\xee\x8f\xe5\xe4\x64\x12\ -\x65\x1f\x74\xec\xcf\xba\x1f\xe3\xb3\x1e\x5d\x25\x32\x4d\xd6\x8e\ -\x6d\x28\xdb\x10\xcb\x67\x9a\x97\x69\xf6\x3b\xff\x27\xc8\xf3\x8e\ -\xff\x26\xc6\xda\x37\x86\x78\x16\x31\x86\x2a\x6f\x4b\x7a\x53\x1e\ -\xa8\x3c\xeb\xbe\x44\xa8\x2b\x9a\x71\x8f\x5a\x5b\xaa\x3e\xb7\x08\ -\x5e\x17\xd1\xce\x7f\x13\xad\xa8\xc4\x83\x8a\xeb\x62\x88\x5d\x6a\ -\x86\x9e\x9f\xf4\xe0\x00\x8f\x42\xdb\xf7\x07\x22\x70\x4e\x29\x0a\ -\xb5\x38\x62\x16\x5b\x61\xf5\x98\x86\xa8\xd1\x72\xb0\x14\x45\x27\ -\x8a\xf3\xc1\x02\x2b\x3c\x59\x68\x83\x0f\x3b\xf6\x93\x82\xe8\xc5\ -\x7a\x4f\x16\x59\xf2\xb9\xcd\x11\x31\xdf\x06\x1d\x69\x23\xf2\x3f\ -\xe9\xd2\x07\x11\x0b\x6c\xf0\xe7\xac\x0a\x52\xe4\x95\x98\xe7\x45\ -\x11\xa7\x88\x76\x3d\xcc\x31\xa4\x6f\x17\xda\x39\xe2\xbd\x0f\x06\ -\xe0\xe9\x22\x2b\x1c\x98\xf2\x0e\x6a\xb6\x18\x22\xbd\xb1\x87\xa3\ -\x03\x92\x3c\xe9\x2d\xbc\xcc\xf0\x75\xaf\xce\xf2\xde\xf5\x5a\x0f\ -\x92\x4b\x9f\xe8\xbf\x8f\x4b\x23\x69\x57\xa7\xd5\x60\x9c\xfa\xf6\ -\xad\xec\xe7\xba\xf5\x53\x19\x94\xe5\x24\x29\x47\xcf\x39\x6b\x48\ -\x2b\xa4\x78\x9a\x71\x62\x98\x48\xaf\x93\xe4\x69\x8e\x3b\xb3\x4b\ -\x23\x7a\x49\x09\x3e\x1b\xdb\x96\x5e\x4a\xdb\xde\xff\x5f\x38\x8e\ -\x7c\x8e\x14\xb1\x5f\xf5\xb2\x84\x7a\x45\x23\x9e\x8d\xda\x15\x2c\ -\x54\x6c\xe9\x29\x85\x9a\xe6\x6d\x2e\x5f\x4a\x8a\x78\x01\xf2\x05\ -\xb1\x91\x5c\xe8\x6f\x90\x27\x9f\x37\xc9\x07\xeb\xff\x77\x11\x62\ -\x35\xa3\xb7\x2c\x2e\x3d\xe6\xad\xd9\xe5\xd0\xea\xbd\x81\x72\x79\ -\xad\xd7\xfa\x6b\x0c\xee\xd3\x05\x43\xfb\x7d\x84\x0f\x3f\xec\x87\ -\x6a\xcd\x85\x78\x46\xe2\x23\x0a\xf0\xdc\xcc\x2a\xb2\xff\x89\x14\ -\xd1\x20\xda\x88\xfc\x9a\x2d\x06\xc3\xd3\xb9\x89\xf4\x9e\x83\x7a\ -\x77\x91\xcb\x74\xb5\xe6\xc3\xb0\xc3\xbd\x16\x92\xf8\x2c\xcb\x9c\ -\x1b\xa3\x22\xb7\x13\xb5\x29\xaa\x63\xd3\xaa\x22\x99\x5e\xec\xfe\ -\xdc\x92\x78\xbf\x63\x5f\xb9\x3f\xfd\xba\x77\x67\xbe\xb7\xe2\x58\ -\x33\xae\xbe\xfc\xf8\xab\x2c\x3d\xea\xd4\x2f\xda\xe1\xcc\x8c\x2a\ -\x58\x3c\xaa\x29\xaa\xb5\x18\x4a\xa1\x8e\xc2\x20\x0a\x36\x99\x7d\ -\x17\xf7\x1f\xf7\xd9\xfb\x72\x32\xbc\xdd\x7c\x28\x45\xdd\x04\x87\ -\xbe\xa9\x8e\x6b\x3f\x94\x47\xb4\x87\x05\xda\x75\x18\xc0\xfd\xf0\ -\x08\xd4\xe2\xe4\x9a\x31\xa8\x0d\x36\xbb\xd5\xc1\xea\xd1\x8d\x30\ -\xac\xef\x47\xf8\xa2\x67\x57\x7a\x7f\x4b\xd9\x8e\x1c\x27\x8e\x51\ -\x32\xfb\xf8\x4f\x61\xfc\x5d\xbf\x1e\xc6\xda\x37\x44\x68\x25\x99\ -\xcf\x21\xde\x49\x1a\x85\xaa\xd9\xd8\x11\xca\xef\x5f\xbd\x44\xa8\ -\xdb\xfb\xba\x0b\xa1\xa6\x7b\xd9\xca\x06\x92\xe4\x4b\xc8\xdf\xb0\ -\x21\x49\x42\x28\x46\xf2\xff\xdb\x88\x41\x12\x0f\x98\x24\x3c\x8b\ -\xa7\x09\xf6\x4f\xad\xce\xe5\x96\x82\xa0\x37\x12\x87\x16\x21\x40\ -\x21\x04\x71\xaa\x16\x03\x3e\x6e\x60\x07\xdc\xfe\xb9\x8c\x7c\xae\ -\x44\xce\xe0\x64\x22\x84\xd9\xb8\xed\x17\xdc\x63\x6a\xbf\x1c\x10\ -\x22\x17\xfb\xdb\xfa\xf4\x7c\xcb\x46\xdb\xcb\xfb\xc4\xd0\x8b\x39\ -\xf7\xef\x28\x05\xd9\xfa\xbd\xcf\x70\x7f\x81\x35\xeb\x9a\xe0\xf2\ -\xac\xf2\x78\x9b\x5b\x8c\xf2\x0e\x4e\x14\x5a\x63\xd9\x9f\xd3\x33\ -\x2b\xa3\x01\xb7\x01\xa2\x0f\xe5\x78\xdf\x2a\x4d\x87\xe1\x83\x4e\ -\x7d\x29\x3a\xd1\x27\xe1\x8d\xed\x69\x27\x26\x97\x29\x7e\x19\xd1\ -\x54\x8a\x5a\x6c\x27\x84\x57\x16\xcb\xbd\x1f\x85\x9d\xc8\x49\xf0\ -\xc7\xe4\x5a\x68\xd0\xe6\x4b\x59\x26\xfb\x24\x9e\x85\xf7\x2f\xef\ -\x30\x14\xce\x9f\x7e\xc0\xfb\x17\x63\x3b\x62\x90\x29\x86\x37\xf4\ -\xfe\xff\x51\xa4\xa8\x79\x1e\xf2\x2a\x29\xfe\x2d\xde\x16\xe5\xc4\ -\xb4\x62\x3a\x59\xe6\x0f\x8a\x4f\xa3\xd6\xf0\xae\x87\x4c\xcf\x0a\ -\xac\x64\xca\x01\x2d\xf6\x4a\x11\x8a\xf2\x37\x87\xe8\x23\x85\x2a\ -\xfa\xc2\xeb\x3b\x73\xca\x60\xef\x94\xb7\xb1\x67\x4a\x75\xc6\xd5\ -\xb1\x6f\x6a\x35\x99\xbe\x41\x4f\x1b\xcd\x6d\x41\x22\x6d\x84\xf7\ -\x49\x92\xcf\xc6\xfa\xb2\xff\xa6\x78\xc8\xbd\xe9\x0a\x7a\xab\xc9\ -\x5f\xb5\xc3\x84\xcf\xdf\xc7\x3a\x7a\x45\x91\x27\x26\x41\x22\x6d\ -\x62\x97\x9a\x73\xff\x59\x09\x7b\xd9\xde\x89\x99\x95\xa4\xa7\x48\ -\x62\x3b\x61\xf3\x6d\xe5\x7d\x44\xbe\xb0\x4f\xf5\x2a\xc1\x09\x60\ -\x82\xf3\xdc\x26\x4c\xff\xba\x1d\x66\x0e\x6a\x2b\xbd\x6f\xc8\x3c\ -\xda\xd1\xe6\x00\xf7\xcc\x0f\x16\x5a\xb3\x1f\xda\xf7\x1a\xc3\xfd\ -\xec\x9a\xb1\xf5\x31\xf9\x8b\xf6\x98\xf8\xf9\x7b\x58\xc6\xad\xc0\ -\x53\x6e\x3f\x64\xdf\x38\x89\x1e\x72\x6b\xb2\x4e\x94\x7f\xd5\x16\ -\x13\xb8\xef\x9d\x3b\xac\xb9\x9c\x8c\x62\x8b\x93\xc8\x95\x44\x3c\ -\x87\x18\xe0\x44\xf1\x0e\x44\x9d\xff\xe7\x24\x73\x8b\xa4\xf2\x2e\ -\x0f\x65\x59\xa3\x97\x7f\x33\x95\x75\x64\x7c\x43\xcd\xda\x77\x23\ -\xd5\x9e\xef\xb0\xa2\xb9\x56\x88\xe2\x65\x08\x21\xe8\x30\x76\x03\ -\x89\xde\x46\xcc\x0c\x29\xa0\x42\x42\x6f\x98\x07\x63\x36\xff\x76\ -\xfe\x3f\xf7\xbd\x00\xb2\xc7\xf0\x7f\xf6\x5c\xd4\xd0\xb2\x12\x50\ -\xad\xa8\x96\x82\xfd\xa3\xfb\xe9\x24\x59\x70\x80\x4f\x13\x5f\xf1\ -\xef\xb1\x53\xbd\x4b\x72\x79\x31\x47\xd2\x72\xc2\x06\x04\x89\xcb\ -\xb5\x24\x09\x74\x79\x22\x9d\xbc\xdc\x02\x49\x3e\xf4\x04\x79\xb0\ -\x22\xd6\xf9\x59\x61\x88\x6d\x0e\xbe\x36\xb9\xf2\xff\x29\x44\xdb\ -\x76\x06\xe4\xba\xa7\x1e\x5f\x23\x18\xd4\x4b\x2e\x08\x5f\x01\xb7\ -\x4b\xba\x67\x4c\x34\xfa\x9c\xaf\x4b\xfe\x7e\xe4\xeb\xbb\xc0\xb0\ -\xef\x86\x88\x7e\x16\x92\xa4\x15\x39\xe3\x90\x98\xa7\x2f\xaf\x42\ -\x7b\x9f\x3c\x18\xed\x8b\x9e\xdc\x76\x76\x48\xf5\x29\x05\xb5\x4f\ -\xcd\xab\x3a\x29\xbe\x3c\x28\x5e\x8d\x4c\x15\xcf\xfa\x50\x7b\x57\ -\x43\xf2\x4a\x2e\x73\xab\xab\x20\x79\x75\x65\x52\x09\x49\x6b\x2a\ -\xe7\x65\x6d\x15\xc6\x2c\x5f\xfb\x96\x01\x6f\xeb\xe0\xa1\x63\x5d\ -\x55\xa4\x90\xe4\xf5\xbc\x5e\xff\x8e\x11\x78\x9f\xf5\x35\x74\x54\ -\xa3\x2d\xf3\x0a\x8b\xd1\xb6\x8c\x91\xd7\x2e\x85\x79\x29\xeb\xab\ -\x1b\x50\xe3\x95\x88\x3e\x26\x6d\xc8\x4b\xb2\x88\x65\x59\x75\x5d\ -\xbf\xf8\x9c\x12\x91\x7e\x05\x86\xfd\x62\x9e\x31\xf2\xd9\xc9\xfe\ -\x1b\x62\xbc\xcf\xb9\x31\xd6\x7f\xe3\xf0\x9d\x89\xfb\xea\x9e\x43\ -\xf6\xc1\x18\x06\xfd\x32\xc6\x2b\xdf\xed\x3a\x6d\x79\xea\xfa\x9a\ -\xc8\xf4\xa9\x49\xdd\xd5\x69\xad\x93\xe2\xcb\x03\x96\x37\x2d\xa6\ -\xf8\xd8\xcf\x16\x3f\x62\x55\xad\xaa\x87\xe4\x2d\x3c\x50\x90\x94\ -\x2d\x8d\x19\x93\xad\x0e\xd9\xa4\xfc\x4a\x44\xbc\xb5\x29\x92\x7f\ -\x6d\xca\x6b\x41\x33\xd2\x9c\xd7\xe4\x37\x41\x0b\x49\x8a\x60\x5b\ -\x4b\x1d\xad\x73\xd8\x2e\x68\x83\xd4\xed\x6d\x91\x2a\xf3\x5a\xd1\ -\x96\x36\x86\x64\xd7\xcd\x4d\xae\x76\xf4\x75\x0d\xd1\xb5\xff\xf7\ -\x68\x4b\xda\x19\x67\x47\x3b\x24\xcb\xb8\x2d\x9f\x53\xdc\x53\xd7\ -\xb7\x02\xfb\xac\x47\xd8\x1a\xf6\xdf\x08\x7f\xbb\xff\xa2\xef\xb9\ -\x31\xe8\xbf\x31\x76\xb0\x9e\x78\x96\xec\x77\xaf\x7f\x2e\x11\xeb\ -\x31\xe8\xe7\x6b\xf5\x95\x63\xbe\xbd\x3d\x52\x7f\x6b\x8b\xac\x95\ -\x0d\xa0\x2c\xaf\xff\x7b\xd6\xf2\x7a\x96\x3a\x29\xbe\x3a\xa8\x37\ -\x75\xaf\x03\xcf\xba\xc1\x1a\xaf\x9a\x6c\xe8\x3d\xa4\xec\xea\x8c\ -\xd4\x5d\x1f\x23\x79\x77\x17\xa4\xee\xfe\x04\x29\xbb\x79\xbd\xe7\ -\x63\xc6\x4c\xef\x11\x74\x43\xca\xde\xae\x44\xc4\xdd\x49\x0f\x49\ -\x9a\x8e\xd4\x7d\x3d\x49\x2f\xa4\xed\xeb\x8d\xb4\xfd\xbd\x91\x2a\ -\xe9\x23\x49\xdb\xdf\x17\x69\x07\xb4\x88\xeb\x14\xda\x09\x84\x7d\ -\x3e\xb2\xeb\xbe\x0c\x6d\xbb\x2f\x47\xdc\x2b\x17\xba\xfb\xbf\x9c\ -\x7e\x05\xd0\x9f\x6d\xf4\xe7\x73\xf4\x43\xea\x5e\x23\x7d\x96\xfd\ -\x36\x7c\xf6\xc2\x60\xac\xdf\x05\x93\xaf\xaf\xa2\x3f\x79\xf2\x0a\ -\x42\xf7\x1c\xf2\x19\xb4\xa4\x30\x3f\x95\xfd\xd5\x62\x30\x1e\x46\ -\xfb\xaa\xc7\x48\xbf\xd8\x0f\x39\xc6\x22\xad\xbb\x67\x3a\xdf\x59\ -\xee\xb4\xea\xd7\x0e\xd0\x78\xd5\x4d\xc7\x86\x2e\xed\x74\x12\x2c\ -\x7c\xd0\xac\x6e\xdb\x56\xf1\x6e\x0c\xb5\xaf\x3d\x32\xf6\x7d\x81\ -\x34\xbf\x61\xc8\x38\x36\x82\xf1\x08\xa4\x93\x34\x3f\x47\xc6\xa3\ -\xa0\xf2\x73\x82\xea\xb8\x23\xd2\x4e\x38\x21\xf5\xa4\x13\xd2\x4e\ -\x3a\x13\x17\x1d\xa3\x73\x38\xe5\xaa\xe5\x74\x2e\x4e\x8d\x63\x3c\ -\x5e\x92\x2e\x63\x5e\x9f\x1a\x23\x49\x7f\x29\xae\xb4\x1f\x9b\xd3\ -\x4e\x1e\x44\x7e\x2e\x4e\x8d\xa5\xfd\x38\x9d\x3d\xd3\xbc\x47\xf6\ -\xbd\xf2\x20\xfa\xe0\x96\x87\x34\x43\xce\xe4\xe2\xec\x04\x32\x91\ -\xe9\x09\x48\x3d\x4b\xfb\x33\x6c\xf3\xd4\x68\xa4\x9e\x12\xcf\xcd\ -\x67\x10\xb0\x9f\xa9\x3a\x64\x9f\x4f\x6a\xd3\xfa\x77\xa1\x7d\x0e\ -\x5d\x2c\xfb\xa9\xed\x6f\x0e\xe2\x7d\xe4\xba\xce\xfd\x5c\x7a\xce\ -\xd0\x46\xa0\x7b\x86\xdc\xa4\x8a\x3e\x9f\xca\xfb\x3c\xa9\xec\xa7\ -\x20\x8d\x7d\x16\xa4\xf3\x59\xb2\xc9\x7e\x07\x7c\x47\x1c\x33\x6d\ -\xdf\xb4\xef\x5b\xc5\xfb\xeb\xfb\x28\x91\xf7\xe7\x33\x4a\xf4\xef\ -\x5d\x3c\x8f\x78\xbf\x82\x9c\xb1\x90\xcf\xc5\x7b\x8a\x77\x24\xeb\ -\x89\xfb\x8b\xfb\x9c\x9d\x84\x8c\xdf\xfb\x40\xe3\xdb\x14\xca\x9a\ -\xd6\x63\x74\xd2\xfb\x6b\x41\xbd\xb3\xbf\x45\xe6\xea\x96\x3f\x89\ -\x3f\x64\xa6\x59\xdd\x9a\x22\x75\x81\xea\xf2\x0f\xc8\x20\xaa\x2b\ -\x3f\xca\xb4\xea\x0a\xb9\xfc\x23\x32\xae\xfe\xc4\xf4\x6c\xa8\x44\ -\x7c\x75\x8e\x8e\x9f\x91\xf1\xe7\x2f\xb9\x98\x0b\xd5\x9f\xf3\xb4\ -\x5c\x9b\xaf\x63\x81\x8e\x85\x50\x5d\x27\x4c\x0b\x5b\x55\x2e\xdb\ -\xf4\xec\x3a\xb9\xd1\xd6\xd7\x96\xe9\xdb\xca\x8d\xbe\x5d\x2d\x19\ -\xfa\xf4\x75\x2d\x19\xe2\x5e\xba\x74\xba\x24\xe7\x3a\xa7\x5c\x9f\ -\xa7\x4d\x8b\xbc\x3c\xdc\x58\x44\x16\xb3\x4c\x0f\xed\xd8\x6f\xed\ -\xb3\x8a\x7e\x69\x11\x7d\x94\xfd\x14\xfd\xd2\xa7\xf5\xd7\xb9\x9e\ -\x45\xdb\xcf\xf9\xc8\x34\x20\xbb\xef\xb9\x10\x76\xf9\xf3\x17\x11\ -\xf6\x21\x57\x9e\xf6\xd9\x98\x16\x7d\xd3\x73\x43\x4b\x86\x84\x75\ -\xae\x0b\xf4\xcf\xa0\xbf\x26\x7c\x96\x74\xf6\x2f\x7b\xdc\x78\xcf\ -\xfc\x88\x7c\x81\xf6\x7e\xa2\x4f\x39\xfd\x12\xe5\x22\x5e\xc4\x76\ -\x16\x21\x53\xd7\x0f\xf1\xae\x33\x6e\xb0\xce\x9f\x0b\x90\x75\x70\ -\x04\x97\xfb\xc6\xd0\xac\x70\xd8\xa5\xec\xe8\xfb\xfa\x7f\x8b\x0a\ -\xde\x8d\x4d\xb0\xbc\xc9\x72\xc5\xbb\xbe\x5a\x59\xe1\x80\xcc\x53\ -\x53\x91\x71\x7b\x05\x32\xfc\xd7\x21\xeb\xee\x1a\x64\x06\xac\x41\ -\x46\xc0\x7a\xa8\x02\xd7\x41\x15\xb0\x0e\x19\x81\xeb\xc9\x06\xb2\ -\x11\x99\x41\x7a\x36\xe9\xd8\x22\xc9\x10\xf1\xbd\xad\x39\x04\xff\ -\x4a\x7e\x43\x46\xf0\x36\x64\xdc\xfb\x55\x96\x1b\x23\xf3\x9e\x9e\ -\x9c\xba\x19\xb9\xd2\x79\x08\xde\x8a\x2c\xb6\x2b\xc8\x64\x9b\xa2\ -\xfd\x6c\xee\x69\xe3\x2c\xc9\x36\x64\x86\x08\xb6\x33\x8f\xb1\x21\ -\x21\xb4\xd5\x97\x17\xc8\x0e\xda\x0a\x98\x16\xf7\xe2\xfd\xb3\x64\ -\x9c\x8b\x20\xd1\x2f\x83\x3c\x41\xee\x7e\x15\x88\xe8\x0b\xdb\xce\ -\x8d\xec\x93\xbe\x5f\xbc\xb7\x88\x43\x8d\x20\xcb\xb4\x64\x84\xec\ -\xd4\xa6\x43\x19\xeb\xc8\xca\x95\xd6\x22\xca\xb5\xf6\xe2\x19\xc4\ -\x98\x68\xfb\xca\x7e\xe8\xde\x9b\xfe\xdd\x64\xe4\xe9\xa3\xb8\xd7\ -\x76\x64\x65\xf7\x47\xa0\x4d\x8b\x3c\x55\x18\xef\xc5\xfb\x67\x30\ -\xad\xbe\xb7\x0d\x59\x77\x56\x41\xb3\x9f\x22\xf5\x71\x10\xec\x87\ -\x4f\xe3\x32\x3a\xc9\xfd\xbd\xa0\x6c\x1b\x30\x5f\x59\xd5\x46\xfe\ -\x4e\x50\xb3\x73\x20\x34\xd7\x97\x23\xf3\xe1\x71\xa8\x1f\x1d\x41\ -\xe6\x23\x3f\x68\x22\x98\x96\xf8\x31\xef\x84\x8e\x93\xc8\x7a\xac\ -\xe7\x14\xd4\x8f\x4f\xe7\xf0\xe4\x34\xb2\x9e\x9c\x41\xd6\xd3\xb3\ -\x06\x9c\x83\xfa\xe9\x79\xa8\x9f\x5d\x24\x97\x90\xa5\xe7\xf9\x65\ -\xa8\x9f\x5f\xd2\x21\xd2\x3a\x5e\x5c\x35\xc2\x9f\x50\x47\x5e\x83\ -\x26\xf2\xba\x96\xa8\xeb\x50\x47\xdd\xc8\x46\x13\x75\x53\xa2\x8e\ -\xba\x05\x75\xf4\xed\x1c\x62\xee\xe8\xb8\x9b\x8d\x26\xd6\x9f\x04\ -\x40\x13\x13\xa8\x25\x36\x08\x6a\x3d\x71\xb9\x88\x0f\xce\x46\x13\ -\x1f\xc2\x58\x8b\x26\x21\x14\x8a\x0e\x4d\xfc\x7d\x5e\xeb\x48\x0c\ -\xcf\xc5\x83\x1c\x92\x1e\x40\x49\x7a\x48\x22\xc8\x23\x89\x46\x4f\ -\xb2\xe0\xb1\x44\x49\x7e\xaa\x25\x45\xf0\x4c\xa2\x49\x7b\x0e\x4d\ -\x6a\x5e\x94\x14\x22\xe2\xd4\x17\x2c\x27\xa9\x51\x24\x9a\xd7\x3a\ -\xd2\x62\xa0\xa4\x47\x43\xa3\x43\x49\x17\xd7\x31\xd0\xa8\x44\x4c\ -\x5b\x55\x1c\xf3\x99\x66\xac\xa8\xe2\xa1\x64\xc4\x43\xa3\x43\x51\ -\x25\x02\xaa\x84\x5c\xf0\x3a\x43\x90\x44\x3b\x92\x99\xa8\x43\xa4\ -\x53\x00\xc6\x9a\x28\xbe\xcf\xd3\x3f\x40\x59\xd6\x50\xa2\xd9\x36\ -\xe0\x28\xb6\xf5\x2b\xae\x93\xd9\xdf\x0f\x38\xbf\xa0\x84\xb2\xa5\ -\x7b\x4d\xc5\xb7\xf9\x21\xc5\xb3\x4e\xb2\xb2\xdc\x9e\x37\xe9\x0b\ -\xcd\xd9\x9f\xa0\x0e\xda\x01\x8d\x10\x5f\x24\x05\x22\x06\x55\x22\ -\x06\x35\x90\x83\x28\xd0\x0e\xa6\x26\xee\x9e\x16\x39\x98\x24\x8e\ -\x83\x47\x94\x78\x31\x90\x61\x06\xdc\x27\xe1\xd9\x40\x0e\xe4\x43\ -\x23\x44\x70\x10\x89\x1c\xc4\xbc\x28\x62\x40\x53\x04\x4f\xa0\xe1\ -\x80\xe6\x85\x03\x5b\xd0\xa0\x8a\x01\xd5\xa1\x4e\x8b\xca\x83\x26\ -\x4d\x0c\x28\x07\x32\x17\x8a\x18\x54\x39\x90\x7a\xe2\x39\x68\xc6\ -\x10\x03\xab\x1f\x4c\x2d\x39\x03\xa9\x27\x99\xa4\x68\xc9\x12\xa4\ -\xe6\x8a\xf5\xa4\x01\x3a\x94\xac\x74\x28\xea\x74\x40\xa2\x32\x42\ -\x46\x3e\x14\x4d\xa6\x01\x59\xf9\x60\xa3\xf9\x50\x8c\x00\x68\xf2\ -\xa1\x68\x88\xa2\x81\x46\xf4\x2f\x25\x12\xa0\x38\x95\x80\x1d\x50\ -\xf6\x39\x43\x59\x2d\x9c\x5d\x3d\x60\xb9\xfd\x11\xac\x7d\xf7\x43\ -\xf5\xf9\x85\xb6\x3a\x89\xfd\xf3\x01\xde\x0d\x3b\x52\xb0\xbb\x15\ -\x8f\x9a\xcf\x29\xda\x2c\x70\x4b\xa0\x6c\xe9\x01\x65\x7b\x7f\xa8\ -\x77\x0f\x05\x76\x0f\x81\x86\x60\xd7\x60\x28\x8c\x15\xe6\xe5\x45\ -\xe4\xe9\x11\xf6\xc3\x0a\x60\x78\x1e\x94\x3d\x5a\x34\xba\x38\x87\ -\x11\x00\x11\xb1\x44\xd8\x4a\xf4\xf9\x23\xa1\xec\x35\x40\xe4\x19\ -\x62\x68\x23\x19\xf5\x4a\x20\x71\x7c\x35\xfb\xf2\xa3\xec\x27\xfb\ -\x9c\xb2\x41\x1e\x9c\x75\x18\x5e\x93\xbd\x3a\xe4\xb5\x8b\x96\xfd\ -\xb4\xc9\x4d\xee\xb2\x97\x22\x6c\x0d\xfb\x66\x58\x97\xd7\xec\x6b\ -\x5e\x44\xbd\xdc\x36\x2e\x5a\x31\xee\x17\x31\x9f\x6b\x17\xc7\xfa\ -\xb7\xfe\x3c\x24\xbd\x2b\x7e\xad\x0f\x78\xd4\x7a\xce\x65\xfe\x3a\ -\xbc\x6b\xf7\xc1\xf2\x7a\x05\xff\xe0\xe4\xbf\x11\xb0\xee\x43\x57\ -\x78\xd5\xff\x59\xd9\xd4\x1d\xca\xca\xd6\x10\xff\xde\x4a\xfe\x95\ -\x61\x8f\xda\xa4\x96\xfc\x0b\xc4\xf2\xaf\x1c\x8b\x58\x4f\xbe\x6b\ -\xfd\x5f\x43\xae\xa3\x43\xf7\x97\x91\x0d\x6d\x45\xda\xf0\xda\x30\ -\x5f\xa6\xf5\xed\xfd\x45\x78\x68\xcc\xcf\xeb\xb6\x9f\xab\x4e\x41\ -\x14\xd0\x96\xf6\x2f\x37\xe7\x90\xf7\xaf\x3a\xf3\xdd\xca\xba\x39\ -\xf6\x2f\x25\xfb\x3e\x3a\xf4\xf7\xd6\x53\x40\x1f\xf2\xd9\x33\x2d\ -\xff\x92\x74\x01\xfd\xc9\xee\x97\xb4\x15\x7f\x69\x9a\x6d\x2c\xa7\ -\x03\xdb\xd8\x19\xca\xaa\x56\xeb\x94\xd5\xed\xbe\x57\x36\x77\x37\ -\xd5\xc9\xe6\xcd\x04\x9c\x98\x59\x0c\x87\xdd\x2b\x69\xb6\x74\xab\ -\xc4\x07\xaa\xc4\x07\xa8\xa4\xf1\xa8\x5d\x89\x42\xe5\x75\x6d\x03\ -\x98\xe7\x59\xd3\x00\x23\x76\x22\x2f\x9f\x5d\x61\x30\x76\xcf\x42\ -\x62\xac\x3d\x63\x76\xaf\xe4\x2f\xf4\xdd\xa0\x2e\x27\x79\x25\x0d\ -\xf3\x15\x43\x3b\x43\x0c\xea\x19\xa7\x90\xfd\x10\x76\x86\x75\x8d\ -\xda\x19\xd8\x18\x6b\x5f\xe6\x71\xfc\x3d\xeb\x56\xc2\x9a\xf7\x2a\ -\x29\x7b\x9d\x2a\xa9\xfd\xbe\x37\xd7\x49\xa5\x28\x14\x85\xa2\x50\ -\x14\x8a\x42\x51\x28\x0a\x45\xa1\x28\x14\x85\xa2\x50\x14\x8a\x42\ -\x51\x28\x0a\x45\xa1\x28\x14\x85\xa2\x50\x14\x8a\x42\x51\x28\x0a\ -\x45\xe1\x35\x83\xff\x83\xc4\x72\x57\x42\xd3\x1d\x2e\x84\x65\x39\ -\x5c\x0d\x55\x3b\x5c\x09\x53\x3b\x5c\x0e\xcd\x72\xb8\x16\xae\x71\ -\xb8\xf9\x50\xa0\x76\xb8\x7a\x9f\x65\x44\x94\x09\x2e\x85\x64\x39\ -\x5c\x08\xce\x94\x9c\xbf\x97\xe1\x70\x2e\x48\xe5\x70\xe1\x9e\x8a\ -\xf5\x33\x1c\xfe\x0c\xcb\x74\xb8\xc8\xeb\x73\x01\x19\x0e\xe7\xc9\ -\xb9\xa0\x4c\x87\xe0\x67\x59\x0e\xa9\x99\x8a\x9d\xee\x96\x45\xe1\ -\x2f\x06\x55\x46\x56\xf5\x88\x88\xe7\x0e\xa1\xe1\xcf\x1d\x42\xc2\ -\x5e\x30\x8e\x94\xe9\xe0\xb0\xa7\x92\x90\xfb\xcf\x1c\x82\x42\x9f\ -\x92\x67\x0e\x81\x21\xcf\x1c\xee\x04\x3e\x72\xb8\x1d\x10\x21\xd1\ -\xa7\x45\x2c\xb8\x75\xf7\x91\xc3\xcd\x3b\x11\x0e\x37\x6e\x3f\xcc\ -\xe6\x16\xaf\xef\xf8\x3f\x76\xb8\xcd\x32\x91\x16\xb1\x40\xe4\xf9\ -\x07\x3e\x25\x8f\x1d\xee\x05\x3f\x71\x08\x0d\x7d\x5c\x4e\xd7\xa5\ -\xff\x7d\x58\xb2\xeb\xa1\xdb\x84\x35\x09\x70\x5d\x9b\x04\xb7\x75\ -\x69\x18\xbf\x26\x15\xe3\x56\x26\xc3\x7d\x2d\x59\x97\x8a\xc9\xeb\ -\x52\xe0\xb6\x36\x85\xf9\x82\x54\x8c\x5f\x4b\x56\xd3\x66\x55\x0a\ -\x49\xc6\xf8\x55\x49\x98\x28\x49\xc4\x94\x35\xc9\xf8\x86\x76\xee\ -\x2b\x93\x30\x61\x45\x22\xdc\x7c\x12\x31\xd6\x37\x01\xab\x8e\xa4\ -\x20\x32\x51\x63\xf4\xff\x82\xb0\x4d\xfb\x39\xae\x8d\x5a\x7c\xef\ -\xe3\xd0\xf2\x47\x9f\xa6\xad\x67\xfb\xb4\x68\x41\x5a\xfd\xe4\xd3\ -\xbc\xe5\x6c\x1f\xfb\x16\x73\x7c\x1a\x35\xff\xd1\xa7\x7e\xab\x5f\ -\x7c\x1c\x9a\xcf\xf7\x69\xd4\x72\xae\x4f\x83\x16\x3f\xfb\x34\x6d\ -\xf9\xb3\x4f\x63\xa6\xed\x99\x16\x34\x6e\x3e\xc7\xc7\xa1\xd5\x5c\ -\x9f\xe6\x6d\x17\xf8\x34\x6f\xb5\x88\xe9\x79\x3e\xcd\x5b\x2f\xf4\ -\x69\xd4\x6c\x21\xcb\xe6\xfa\x34\x6c\x3a\xc7\xc7\xbe\xd9\x5c\xb6\ -\xc5\xf6\x1c\xe6\xf8\x34\x68\x32\xdb\xa7\x41\x53\xd1\xce\x5c\x9f\ -\x66\xb4\x6d\xd9\x66\x89\xcf\x07\x9d\x7d\xde\xd7\x75\x49\x06\x00\ -\xef\x11\x9f\x37\x48\x33\x5d\x57\xfe\xe3\x1f\x10\xbc\x6b\xc1\x82\ -\x25\xf0\x58\xea\x8d\xc5\x4b\xbc\xb0\xc4\xc3\x13\x8b\x3d\x3c\xb0\ -\x70\xf1\x12\x2c\x5a\xec\xa1\xbd\x66\xfe\xe2\xc5\x5e\xbc\xf6\xc4\ -\xbc\xf9\x1e\x98\x3f\xdf\x13\x8b\x16\x2d\xc3\x52\x4f\x5f\xe6\x2d\ -\x97\x2c\x5c\xe8\x8d\x85\xf3\xd9\xc6\x82\xe5\x58\xb2\xd0\x87\x2c\ -\x67\x7a\x19\x16\x49\x68\xc3\x58\x94\x2f\x64\xbc\x60\xfe\x32\x2c\ -\x59\xe4\x03\x8f\x25\xbe\x58\xea\xe1\x0b\x2f\x2f\xc6\x4b\xbd\xdd\ -\x74\x5d\xfa\xdf\x87\x2f\x7f\xb9\xed\xd6\xd0\x25\x12\xb5\x9d\x62\ -\x51\xdf\x39\x19\xf5\x9c\xe2\x50\x6f\x54\x0c\xe3\x58\xd4\x73\x8e\ -\x63\x5e\xbc\x2e\x4d\x58\x56\xd7\x91\xe5\x4e\x22\x8f\x65\xcc\x6f\ -\x44\xec\x9d\x62\xd0\xd8\x29\x1a\x8d\x1d\xa3\xd1\x44\xc6\x51\x68\ -\x39\x2a\x12\xcd\x19\xdb\x3b\x45\x61\xcc\xf2\x24\x84\x47\x1a\x17\ -\xaa\x5d\x99\x2f\x0f\x9a\x59\xf4\x83\xa9\x79\x5f\x14\x37\xeb\x0d\ -\x93\x12\x3d\x48\x2f\x98\x59\x7f\x0e\x53\xab\xbe\x28\x65\xd9\x05\ -\x75\x2c\xde\x45\x4b\xcb\x56\x68\x69\xd1\x06\x75\x2d\xda\xa3\xb4\ -\xe5\xc7\x28\x6e\xdd\x07\xe6\x56\x03\x61\x61\xf5\x05\xcc\x6c\xbf\ -\x84\xb9\xdd\x60\xe6\x7d\x85\x12\x36\xfd\xf0\x4e\xb9\xae\x68\x57\ -\xb3\x03\x3a\xd6\x6b\x87\xf6\xb5\xde\x45\x9d\xca\x5d\x60\x61\xdd\ -\x17\x16\xb6\x83\xc9\x10\x58\xda\x0d\x82\x55\xc9\xc1\xb0\xb2\x1b\ -\xc2\x78\x28\x6c\x4a\x0d\x45\x95\x6a\x13\xf2\xfc\xb1\x04\x0a\xc5\ -\x89\xbc\xc9\x90\xfd\xff\x82\x7b\xe4\xd8\xd1\x5d\x17\x2e\x9e\x87\ -\xf8\x39\x9f\x46\x21\x9a\x0c\xc6\x44\xa3\xd2\xa5\x33\xa1\x28\x59\ -\xda\x32\x59\x2e\x50\x67\x23\x7f\xae\xa7\xbf\x66\x5a\x5c\xcb\xbc\ -\x5c\x69\x2d\xb4\x95\x3f\x11\xd4\xd5\xd3\xd5\x15\xa8\x54\xe9\xb8\ -\x7f\xff\xfe\x9b\x13\xea\xd0\xf9\x77\xdd\xec\xc7\x44\xa1\x2e\x05\ -\xd6\xc0\x25\x1e\x0d\x47\xc7\xa1\x11\xa9\xef\x92\x88\x06\xa3\xe3\ -\x19\x0b\x41\xc6\x48\x51\xd6\x73\x8c\x41\x5d\x8a\xb8\x3e\x05\xdc\ -\x60\x54\x34\xea\x8f\x8a\x92\x71\x23\x0a\xb4\x31\x63\xfb\x91\x14\ -\xe6\xc8\x48\x38\x90\xd6\xce\x51\x68\x37\x3e\x16\xcd\xc7\xc6\x63\ -\xf4\xb2\x14\x04\x3d\x33\x2e\xd4\xb2\x15\x06\x1f\xb4\xb4\xf9\x1c\ -\x25\x28\xbc\x12\x56\xbd\x29\xa8\x3e\xb0\xb4\xe9\x8d\x1a\xd6\xed\ -\xe1\x68\x59\x0d\x1b\xcd\xca\xe0\xb8\x99\x1d\xce\x14\x2f\x89\x73\ -\x26\xb6\xf0\x2b\x5e\x1a\x5b\xcc\x4b\xc3\xc5\xe2\x1d\xd4\xb3\x6d\ -\x0b\xdb\x52\x9f\xc2\xa6\xe4\xe7\x28\x5d\xa6\x0f\x3e\xaa\xdf\x12\ -\x1b\x06\x55\x40\xc0\x24\x4b\x3c\xf9\xde\x02\x91\xb3\x4a\xe0\xd9\ -\xf7\x66\x08\x99\x6e\x89\x1d\xc3\xca\xe2\xf3\x96\x8d\x51\xb1\x5c\ -\x4f\xda\x0f\x83\x5d\xe9\x61\x28\x55\x6e\x24\xec\xca\x0e\x26\x8e\ -\xa8\x5e\x73\xd2\xbf\x56\xa8\xc7\xfd\x4e\xed\xba\x7c\xe5\x2a\xb3\ -\x14\x59\xa0\x28\xda\x58\x7b\xad\x4f\x17\x1c\x72\xec\x19\xf4\x55\ -\x0a\x51\x35\x77\xbd\x8c\x8c\x0c\x84\x87\x87\xbf\x39\xa1\x3a\x2d\ -\x09\x70\x73\x18\x4b\x0f\x4a\xb1\x35\xa4\x30\xed\xc7\x24\xa0\x11\ -\xb1\x1f\x93\x08\x7b\x57\x0a\xd7\x59\x5b\x26\x44\xaa\xa7\x01\xbd\ -\x6b\x43\x61\x2f\xd0\x09\xb5\x21\xc5\xd9\x70\xe4\x0b\x34\xa2\x27\ -\xb5\x1f\xf1\x02\x2d\x46\xc7\xa0\xed\xf8\x78\xb4\x21\x8e\x9e\xc9\ -\xb8\x19\xae\x36\x2a\xd4\x0a\x14\xaa\x85\x8d\xf0\x8c\x7d\x61\x69\ -\x3d\x10\x36\x76\xbd\xd1\xcf\xaa\x2e\xf6\x98\x97\x82\xbf\xa9\x0d\ -\x82\x89\xbf\xa9\x15\xee\x14\xb3\xc6\xdd\x62\x16\xb8\x53\xdc\x12\ -\x01\xcc\x0b\x2a\x6e\x87\x23\xa6\xa5\x30\xc8\xa2\x16\x6a\x55\x7a\ -\x17\xcb\x07\x56\x46\xe4\xb4\xe2\x48\x9d\x56\x0c\xc9\x93\x4d\x10\ -\x3f\xbe\x18\x62\xc7\x30\x1e\x6b\x82\xa4\x89\x26\x48\x9d\x55\x0c\ -\xf1\x3f\x14\xc7\x3e\xa7\x52\xa8\x5f\xb5\x03\xac\x4b\x7d\x45\x81\ -\x8e\x20\x14\x6d\xf9\x11\xa8\x56\x6b\xfc\xbf\x56\xa8\x7e\x27\x4e\ -\xed\xba\x72\xf5\x4f\xa1\x1c\x5d\x51\x61\x82\x92\x57\xa0\xd9\x41\ -\xaf\xd0\xbf\xd2\x16\x90\x99\x99\xf9\x66\x85\xea\xec\x15\xe8\xd6\ -\x62\x42\x3c\xc5\xa7\x5d\xca\x1b\xd2\x7b\x36\x64\xdc\xc0\x85\x82\ -\x64\x2c\xbc\x69\x1e\x91\x3a\x72\xb9\x27\xf6\x14\xa7\x58\xea\xed\ -\x85\x50\xe9\x49\x1b\x8e\xd4\xc6\xc2\xab\x36\x65\xba\x29\x97\xfd\ -\x36\xae\x31\x78\x57\x08\xd5\x2b\x19\xd7\xc3\x0a\x16\xaa\xb5\x55\ -\x3f\x0a\xb5\x37\x4a\xdb\xf6\x84\x93\x65\x55\xdc\xa0\xe7\xbc\x5b\ -\xdc\x8a\x22\xb5\x42\x88\x99\x0d\xee\x31\x0e\x28\x6e\x83\x40\x0a\ -\xf4\x9e\xa9\x2d\x82\x29\xd6\x20\x73\x8a\xd8\xdc\x16\xf7\xac\x6d\ -\x10\xfe\x45\x09\xa4\x4d\x35\x41\xf2\xc4\xe2\x48\x76\x33\x45\xdc\ -\xb8\x62\x48\x18\x69\x82\xd8\x51\xc5\x10\x37\x92\xe9\xd1\x14\xab\ -\x5b\x71\x24\xb9\x9b\x20\x7d\xa6\x09\xc2\x7e\x34\xc7\x47\x8d\x5a\ -\x50\xac\x5f\xd2\xab\x0e\x45\xc9\xf2\xa3\x50\xad\xe6\xd8\x7f\xb1\ -\x47\x3d\xb9\xeb\xfc\xf9\x0b\xb9\x84\x6a\x4c\x68\xb9\xf3\x8c\x95\ -\x6b\x83\x71\xf1\xbe\x3a\xbc\x79\xa1\x2e\xf5\x77\x6b\xe9\x16\x8f\ -\x26\xae\x62\xa9\xe7\xb2\xcf\xbd\x67\x43\x47\x2e\xf9\xc2\x6b\x72\ -\x7f\xda\x90\xdb\x01\x91\xdf\x80\x5b\x80\x06\x2e\xcc\x63\xdc\x88\ -\x34\x91\xc4\xa0\x09\x05\xde\xd8\x99\x82\x95\xe2\x8d\x65\x9a\x31\ -\xed\x9a\x72\x2b\xd1\x6a\x74\x2c\x3a\xb0\x6d\x27\xaf\x54\x5c\x2b\ -\xc0\xa3\x56\xac\xf0\xf5\x41\x2b\xab\x3e\xb0\xa3\x48\x07\x5a\xd5\ -\xc1\x55\x2e\xf1\xfe\x14\xe5\x5d\x8a\xd1\x9f\x62\x0d\x2c\x6e\x4d\ -\x2c\x98\xb6\x46\x90\xa9\x1d\x02\x29\xdc\x50\xd3\x92\xb8\xc7\xed\ -\xc0\x3d\x0a\x35\xd4\xc6\x16\xf7\xab\x70\xa9\x6f\x57\x02\x49\xe3\ -\x4d\x91\x40\x41\xc6\xb9\x98\x20\x8e\x22\x15\x42\x95\x38\xd1\xcb\ -\x52\xc0\x89\x14\x6a\xbc\xf0\xae\xd3\x4d\x70\x6b\xb2\x15\x9a\xd6\ -\x6c\x0f\xbb\x32\xf4\xaa\xe5\x86\xe1\x9d\x1a\xe3\xfe\x92\x50\xe3\ -\x12\xd4\x78\xfc\x2c\x13\x91\xd1\xdc\xd3\x71\xec\x9f\xbd\xc8\xc4\ -\xa3\x27\x19\x48\x49\x15\xff\x94\x23\x27\x24\x24\xa9\x11\x10\x9c\ -\x86\x3b\x81\x29\x78\x10\x91\x81\xac\xac\xbc\x42\x49\x48\xca\x92\ -\xf5\x1e\x3d\xcd\x40\x7a\x46\x9e\xb2\x3c\x4b\xff\xf9\xf3\x97\xa4\ -\x58\x22\x1e\x3f\x43\x58\x78\x04\x12\x12\x93\x79\x5f\x0d\xa2\xa2\ -\x63\x79\xcf\x34\x44\xc7\xc6\x21\x30\x28\x0c\x49\xc9\xda\xfc\xf8\ -\xf8\x24\xf8\xfb\x07\xe1\xc9\x93\xe7\x94\xac\x06\xea\xb4\x74\x64\ -\x45\xbf\x80\x9a\xe5\xea\xac\x2c\x3c\x7d\xfa\x0c\xaa\xf4\x0c\x59\ -\x16\x1f\x9f\x80\xa8\xc8\x18\x0a\xf1\x21\xee\x05\x87\x21\xf2\x45\ -\x14\xcb\x23\x11\x1a\x1a\x8e\xd8\x98\x78\xa4\xb2\x6e\x2a\xef\xf1\ -\x46\xf7\xa8\xa3\x28\xd4\x16\x13\x62\xd1\x84\x7b\x49\x7b\xd2\xc4\ -\x95\xcb\xbe\x48\x8f\x89\x47\xd3\xb1\x14\xe3\xb8\x04\x34\xe5\x16\ -\xc0\x61\x6c\xa2\x4c\xb7\x64\x59\x33\xda\x34\x67\x5e\x8b\xf1\x71\ -\x4c\x33\x66\x7e\x8b\x71\x71\x2c\xd3\xd2\x8a\xd7\xad\xc7\x27\xa0\ -\x13\xdb\xfd\x60\x62\x1c\x1c\x3d\x0a\xf6\xa8\xe5\xcb\x7f\x75\xd0\ -\x8a\x4b\x7f\x23\x9b\xb6\x38\x68\x56\x1a\x77\x4d\xad\xa5\x50\xfd\ -\x4d\x2c\x29\xd6\x12\xbc\x2e\x41\x4f\x4a\xc1\xd2\x9b\x06\x0a\x6f\ -\x4a\xa1\x86\x08\x4f\xca\xf4\xfd\x9a\x25\xf0\xfc\x43\x53\x3c\xef\ -\x68\x86\xc8\x6e\xe6\x48\x1a\x4d\x31\x8e\xa3\x48\x47\xd3\x93\xba\ -\x70\xa9\x77\xa5\x77\x75\x64\x9a\x62\x8d\x77\xa5\x48\xe9\x69\xe3\ -\xb9\x1d\x48\x72\x2f\x8e\x94\xef\x8b\x63\xcb\x88\x52\xb0\xb2\xfd\ -\x0c\x25\x4b\x0f\xc1\xdb\xd5\xf3\x7a\xd4\xb4\xcd\xc3\xcf\xa4\xfa\ -\x38\x22\x6d\xd9\x48\x24\xad\x74\x82\x3a\xea\x81\x4e\x3f\xe0\xc0\ -\x66\xc1\xd1\x39\x00\xcd\xda\xfc\x09\x27\x97\x60\x0a\x48\x41\xa7\ -\x2e\x37\xe0\xd0\xe2\x32\x4f\xe2\x11\xd2\x26\x26\x2e\x0b\x4b\x96\ -\x45\xa0\x6b\xcf\xab\xa8\x5a\xdd\x0f\x95\xaa\x9e\x80\x7d\xe3\xcb\ -\x38\x78\x28\x56\x96\x8b\xf0\xf4\x99\x0a\x5f\x0d\xf1\x47\xb3\x96\ -\x97\xd0\xba\xfd\x55\x5c\xbc\x94\xa8\x2b\x91\x21\x5b\xa8\x87\x8f\ -\x9c\xd8\x75\xee\xc2\x15\x3c\x78\x18\x81\x1e\xbd\x06\x90\x5e\xf8\ -\x7a\xd0\x48\x5c\xbb\x76\x1b\x33\x67\xfd\x80\xdf\x7f\xdf\x8b\x51\ -\x8e\x63\xd0\xbf\x6f\x1f\x6c\xde\xb8\x15\x21\x14\xd8\xa7\x9f\x0e\ -\x42\xdf\x3e\x7d\xe1\x3e\x61\x32\x54\xcf\x9f\x22\x66\xc9\x54\x6e\ -\x8d\x06\x22\xf2\x47\x17\x24\xdd\xb9\x89\x89\x13\xa7\xe2\xf0\x11\ -\x3f\x4e\x1c\x35\x7e\xfc\x61\x1e\x56\xaf\x5a\x8b\xf7\xde\xef\x84\ -\x4f\x07\xf4\xc5\x9a\x55\xbe\x18\x3a\xd4\x19\xbd\x7b\xf5\xc3\xa7\ -\x9f\x0d\xc1\x91\xc3\xc7\xf0\xec\xe9\xd3\x37\x2b\xd4\xb1\xde\xf7\ -\xdc\xd6\x1e\x49\xc3\xc6\x33\x19\x38\x7d\x5b\x85\x5f\xcf\xab\xb0\ -\xed\x74\x3a\x16\xef\x4a\x65\x9e\x0a\x87\x6e\x64\x60\xa5\x5f\x3a\ -\x56\x9f\x48\xc3\x91\x9b\x2a\xac\x3c\xa6\xc2\x9a\x93\x69\xf0\x63\ -\xfa\xc8\xf5\x4c\x1c\xfa\x33\x1d\x6b\x58\x76\xf8\x46\x26\x36\xb2\ -\xde\xe5\x20\x15\x36\xb3\xde\xf9\x80\x0c\x69\xbf\xed\x64\x2a\x5c\ -\x96\x25\xe3\x46\x78\x96\xf1\xa5\x9f\x42\xb5\xb4\x1d\x80\x29\x25\ -\xde\x42\x90\x99\x15\x42\xcd\xac\xb9\xa4\x0b\xef\x69\xc1\x7d\x68\ -\x09\xc2\x65\xde\xd4\x12\xa1\x62\x2b\xc0\xf2\x70\x96\x87\x98\x5b\ -\xe1\x3e\xc5\x1a\x51\xc6\x16\x0f\x2a\xd9\xe1\x41\x05\x6b\x44\x54\ -\xb4\xc6\xf3\xc6\xe6\x48\xa1\x57\x4d\x19\x57\x1c\x89\xa3\x8b\x73\ -\xc9\xd7\x0a\x36\x96\x62\x8d\xe7\x16\x20\x76\x84\x48\xff\x87\x7b\ -\x56\x53\x24\x4d\xe0\x56\x61\x96\x09\x5a\xd4\x68\x01\x9b\x32\x43\ -\x50\xbd\xc6\xe8\x7c\x1e\x35\xea\xdc\x36\x1c\xee\x53\x0d\x91\xbd\ -\xc5\x9f\xb8\xfc\x54\x2b\x1f\x86\x5b\xb7\x53\x50\xa9\xc2\x09\xd8\ -\x58\x1d\xc6\xfa\x35\x4f\x78\x22\xd6\xc0\xd6\xda\x0f\x36\x36\x47\ -\xb0\x6d\xdb\x73\x69\xe3\xe8\x12\x80\xe2\xa6\xfb\x61\x61\xbe\x1b\ -\x6f\x57\x3e\x88\x1a\x6f\x1f\xe3\xd6\xe6\x24\x42\x43\xd2\x64\xb9\ -\x08\xab\x56\x3d\x86\x8d\xf5\x71\xd8\xda\x1c\x85\x9d\xf5\x61\xec\ -\xd9\x13\xa9\x2b\x91\x21\x5b\xa8\x27\x4f\x9c\xde\x75\xf1\xe2\x25\ -\xd6\x0d\xc3\x7b\xef\x75\xa4\xc0\x9f\x62\xc3\xba\x95\xe8\xf2\x71\ -\x6f\x0a\x6a\x14\x16\x2c\xf0\xc0\xbb\xcc\x3f\xee\x77\x16\x09\xf4\ -\x8e\xc3\x86\x39\x62\xe1\xfc\x9f\x29\xc2\x2c\x24\xc7\x3c\x43\xe4\ -\xcf\x4e\x88\x99\xd3\x0f\xf1\x9b\x26\x22\x7a\xf1\x20\x44\xce\xf8\ -\x02\xfb\xb7\x6c\xc0\xe7\x9f\x0f\xc6\xed\xdb\xfe\xf8\xe4\x93\x6e\ -\x08\x08\x08\x40\x9b\x76\xef\xe1\x8f\xdd\x07\x71\x3f\xfc\x11\x7a\ -\xf7\x1b\x80\x43\x14\x68\xaf\x5e\xbd\x71\xea\xd4\x49\x79\x98\x7a\ -\xa3\x42\xbd\x72\xf7\x91\xdb\x7a\x0a\x6f\xb8\x77\x12\x0e\x52\x6c\ -\x23\x19\xcf\xfc\x35\x15\x47\x6f\x65\x60\xe0\x82\x24\x78\x1d\x4c\ -\xc3\x08\xef\x64\x0a\x34\x1d\xdb\xcf\x67\x61\xca\x86\x64\x7c\xbb\ -\x29\x05\x0b\xf7\xa4\xe3\x87\x9d\x69\x98\xb6\x35\x0d\xbb\x2f\xaa\ -\x30\xe7\xf7\x14\x4c\x58\x9b\x8a\xd3\x81\x2a\xd6\x4b\x84\xc7\x81\ -\x34\xfc\xb4\x3d\x05\x3b\x29\xda\xd1\xcb\x92\x70\x35\x3c\xd3\xb8\ -\x50\x2b\x0e\x3e\x58\xc6\xe6\x23\xec\xe6\x49\x3e\xb8\x5a\x0d\x84\ -\x37\x68\x88\xd0\x52\xe5\xf0\xa0\x51\x53\x84\x57\x78\x0b\x11\xf4\ -\xa6\x0f\x4c\xcd\x29\x50\x4b\x84\x51\xa4\xe1\xf4\xb8\x21\xd6\x76\ -\x88\xa8\x66\x85\xe8\x4e\xf4\xa4\x24\xea\xe3\x12\x88\xfe\xa8\x04\ -\x5e\x7c\x62\x86\xa4\xb1\xa6\x48\xfd\xae\x0a\x92\xe7\x39\x50\x8c\ -\x65\x90\x38\x86\xde\x93\x07\x2a\x11\xc7\x3b\x73\xbf\x4a\xcf\x2a\ -\x3c\x6a\xe2\x54\x0b\xa4\x2f\xaa\x86\xd9\xbd\xaa\xd2\xa3\x7e\x86\ -\x2a\xef\xb8\xe4\x13\x6a\x5c\x9c\x0a\x9f\xf6\xde\x84\x5f\xda\xd4\ -\x46\xec\xf4\x0e\x5a\xf9\x30\x4c\x9a\x1c\x00\x4b\x8b\xfd\xa8\x57\ -\xd3\x0f\x0f\x1f\xa4\xe2\xf8\xf1\x38\x0a\xf2\x10\xca\x94\x3d\x81\ -\x83\x07\xa3\x71\xf3\x7a\x12\xde\xae\x7a\x1c\x16\x16\x7b\x31\x69\ -\xa2\x3f\x1e\x3e\x4c\xc5\xa3\x88\x34\x84\x85\xa6\x72\xc0\xb5\x5b\ -\x83\x24\x6e\x09\xda\xb6\xbb\x4c\x81\x1f\x43\xb9\x52\x47\x60\x6d\ -\x7e\x00\xa3\xc7\x06\xc8\x32\x5d\xc8\x16\xea\xc5\x8b\x57\x77\x5d\ -\xbb\x7e\x93\x4b\x71\x08\x85\xda\x81\xcb\xf2\x13\xdc\xb8\x7e\x0b\ -\xad\x5b\xb5\xc5\x80\x01\x9f\x62\xc7\x8e\xed\xd8\xf3\xc7\x76\xf4\ -\xee\xdd\x03\xa3\xc7\x4c\x44\xe7\xce\x1f\xe3\xcc\x99\x73\x72\x3f\ -\xaa\x8e\x8f\xc6\x8b\x09\x5d\x11\xff\xeb\x2c\xa4\xdd\x3c\x88\xa4\ -\xbd\x8b\xf1\x62\x52\x67\x3c\xba\x74\x02\x1d\x3a\x7c\x80\x31\xa3\ -\xdd\x31\x75\xca\x24\x44\x46\xf1\x9c\xd1\xa0\x31\x46\x8c\x18\x8a\ -\x5d\x3b\x7f\x47\xb7\x1e\xbd\xd1\xb8\x71\x73\x7c\xfd\xc5\xd7\x48\ -\x4c\x8c\x7f\xf3\x42\x8d\x88\xc9\x70\x73\xf2\x4d\xc5\xd8\x35\xc9\ -\x70\x5a\x99\x2a\x3f\xd8\x9f\xb2\x21\x15\xe3\x18\x7f\xff\x6b\x0a\ -\xe6\xef\x56\xe1\xeb\x25\x29\x58\x79\x34\x0d\xdb\xcf\x66\x60\xcc\ -\x8a\x04\x8c\x5d\x95\x02\xdf\xa3\xe9\x98\xbc\x3e\x05\x93\x37\xa5\ -\xe3\xee\x63\x35\xbe\x5e\x9a\x0c\x97\xd5\x29\xf8\x96\xc2\xfd\x79\ -\x47\x1a\xbe\x5b\x9f\x8c\xcf\xe6\x27\x60\xc7\x99\x74\x38\x7b\x27\ -\xe2\xca\xfd\x02\x96\xfe\x0a\x83\x0e\x36\xb4\x6e\x85\xe3\x96\x65\ -\x70\x7b\xed\x56\xa4\x9c\x3a\x8d\xb3\x5f\x8e\x44\x0a\xbd\xc7\x73\ -\x27\x57\x3c\xfd\xf8\x13\x3c\x7e\xf7\x5d\x44\xd8\x56\xc4\xe3\x8e\ -\x1f\xe2\x7e\xc7\x8e\x08\x98\xfc\x0d\x9e\xb9\x0c\xc3\xc3\xa6\xef\ -\x20\x7a\x48\x0f\x84\x37\x7b\x07\xf7\x29\xa6\x88\x8f\x9a\x21\xf0\ -\xbb\x1e\x88\x0f\x3c\x8c\x80\x9b\xb7\x91\xfc\x87\x13\x52\x97\xb6\ -\x40\xf2\xfc\x86\x48\x9c\x66\x87\xc4\x5f\x6a\x21\x71\x46\x59\xa4\ -\x2e\xaa\x8d\x3b\x1e\x9d\x10\x77\xef\x18\x0e\xba\x96\x46\xc5\xf2\ -\xbd\x50\xb5\xda\x18\xa3\x7b\xd4\xf9\x3f\x86\xd1\x13\xfe\x84\x75\ -\x5f\xb4\x83\x12\x1d\xcc\x3d\x9f\x8a\x4b\xf8\x29\x58\x96\xd8\x0b\ -\xc7\x51\xb7\xb8\xcf\xd3\xc0\x77\xc5\x23\x98\x53\xa8\x6f\xbf\x75\ -\x12\x57\x2e\x25\xe0\xec\xe9\x38\x94\x2f\x7f\x94\xe2\xdd\x83\x8f\ -\x3a\x5f\xc5\xc3\x88\x74\xa8\xd5\x79\xf7\xa6\x7b\xf7\x45\xa1\x4c\ -\x19\x3f\x54\xad\x7c\x02\x43\xbe\xb8\x09\x5b\xcb\x7d\x78\xbf\xfd\ -\x15\x5d\xa9\x0c\xb9\x84\x7a\x69\xd7\xcd\x9b\xb7\xe8\x51\x43\xd1\ -\xae\xdd\xfb\x38\x7d\xfa\x0a\x66\xcc\xf8\x19\x23\x86\x0f\xa1\xb0\ -\x9c\xe0\xe5\xbd\x12\x7e\x27\x2e\x62\xfb\xce\x5d\xf8\xf0\xc3\x0f\ -\xe1\xec\x38\x0a\x2e\xa3\x27\x20\x38\x34\x02\x37\x2f\x5f\xa3\x47\ -\x1d\x8a\xc8\x5f\xbe\x44\xe2\xe6\x1f\x10\xb3\x78\x04\xa2\x66\x7e\ -\x06\xd5\x8b\x08\xcc\xfe\xf1\x7b\xd4\xaa\x59\x17\x17\x2e\x5c\x40\ -\x64\x64\x14\xda\xbd\xfb\x01\x4e\x9f\xb9\x82\xe7\x2f\xe2\xd0\xa7\ -\xcf\x40\xb8\xbb\x4f\xc0\xc0\x81\x5f\x72\xdf\x2b\x26\xd8\x1b\x16\ -\xea\xfa\xd3\xf1\x6e\x9b\x4e\x65\x60\xdf\xf5\x2c\x2c\xa3\x17\x5c\ -\xb8\x3b\x15\x57\x82\x33\xb0\xea\x98\x58\xea\x33\xb0\xeb\xb2\x0a\ -\xd3\x37\x27\xc3\xe3\x60\x3a\x97\x77\x2e\xf9\x77\xb3\x70\x36\x30\ -\x03\xdb\xce\xb3\xec\x8a\x0a\x3b\xe8\x4d\xbf\xdd\x92\x86\x1d\xdc\ -\x32\xec\xbc\x9c\x0e\x8f\x7d\xa9\xd8\x79\x4e\x85\xdb\x0f\x32\xb0\ -\x70\x47\x32\xbd\x6d\x86\xfc\x78\xea\x52\xa8\x71\xa1\x96\x2e\xf7\ -\xd5\xc1\x4e\x56\x8d\xb1\xbf\x4a\x2d\x04\x5c\xba\x85\x07\xe7\xef\ -\xe0\xf4\xd6\x83\x48\x78\x91\x80\xfd\xd3\x17\xe3\xe8\x96\x43\x78\ -\x1c\xf2\x10\xc1\x6b\xb7\xe0\x51\xc0\x7d\x9c\x5c\xb8\x0e\xb7\xfc\ -\xce\x21\x70\xc3\x6e\xbc\xd8\x7f\x0c\xe7\x0e\x5c\xc4\xc3\x9d\xbb\ -\x71\x6d\xd3\xef\x08\x09\x7c\x84\x8b\x17\x83\x11\x79\xe0\x47\x5c\ -\x72\x2e\x8d\x3f\xa6\x0d\xc0\x31\x0e\xde\xd3\x88\x70\x5c\xd9\x3e\ -\x1b\x51\x4f\x1f\xe0\xfe\xd5\xfd\x78\x14\x16\x86\x90\xa0\x87\x50\ -\x3d\x38\x8f\xeb\x13\xad\x50\xb3\x4a\x57\x54\xab\x6d\xfc\xe3\xa9\ -\xbb\x77\x93\x60\x5a\x7c\x0f\xea\x54\x9d\x8a\xc0\x4b\x7e\xd8\xb5\ -\x2b\x12\x25\xed\x0e\xc0\xc6\x72\x2f\x6e\x5c\x4b\x10\x26\x98\x39\ -\x23\x84\xde\xf3\x00\xda\xb4\xba\x88\xd8\xe8\x4c\x99\xd7\xaf\xf7\ -\x55\x98\x99\xee\xa3\x80\xf7\xa0\x54\x99\x63\x98\x3c\x2d\x54\xe6\ -\x8b\x20\x0e\x54\xce\xce\x77\x61\x5e\xe2\x10\x3e\xeb\x7f\x1d\x7b\ -\x7e\x7f\x86\x32\x6c\xb3\xda\xdb\x27\x74\x16\x32\x64\x0b\xf5\xd8\ -\x71\xed\xe7\xa8\xc2\x93\x8e\x1a\x35\x1c\xdd\xbb\x75\xc1\xf4\xe9\ -\x53\xf0\xec\xd9\x63\x2c\x59\xb2\x00\xdb\xb6\x6f\xc5\xc8\x11\x83\ -\xd1\xb1\xc3\x7b\xd8\xbd\x6b\x3b\xe2\xe3\xa2\xf1\xdd\x0c\x77\x5e\ -\xbf\x8f\xa9\x93\xdc\x90\xf1\x3c\x0c\x51\x3f\x0e\xc2\xb3\xd1\x1d\ -\xf0\xe2\xdb\x3e\x50\x85\x5e\xe3\x21\x4a\x41\xf8\xfd\x10\x7c\xff\ -\xdd\x34\x1e\x94\x92\xb9\x65\x88\xc7\x17\x9f\x7d\x86\x9e\xdd\x7a\ -\xc2\xcb\x73\x19\x7e\x9c\x35\x8b\xdb\x82\xdb\x58\xb2\x70\x2e\xf6\ -\xef\x3b\xc8\xed\x8d\xea\xcd\x0a\xd5\xeb\xc0\x63\x37\x97\x55\xc9\ -\xe8\x30\x33\x01\xce\xf4\x94\x2e\xab\x53\xe1\x48\xcf\x3a\x66\x75\ -\xb2\xf4\xaa\xe3\xe9\x35\x85\xa7\x75\x5c\x99\x04\x57\x2e\xed\x4e\ -\x2b\x53\x30\x62\x45\x1a\x5c\x98\x1e\xb3\x36\x1d\x43\xb9\xac\x0f\ -\x63\xbd\xc1\xde\x29\xf8\xe4\xc7\x44\xda\x25\xc3\x75\x55\x2a\x46\ -\x72\x5f\x3a\x66\x55\x12\x86\x50\xa4\xae\xcb\x93\x70\x2d\x4c\x31\ -\x2a\xd4\x32\x3c\xf5\x7f\x5c\xb2\x09\x76\x3b\xb4\x45\xd0\xf5\x20\ -\x5c\x3a\x75\x1b\xb7\x4e\x5f\xc3\x73\xff\x30\x04\xcd\xfa\x05\xd7\ -\xb7\x1f\xc0\x23\x0a\x75\xc7\xb2\x3f\xf0\xf0\x66\x10\xce\x4c\xf8\ -\x16\xe1\xd7\x02\x70\xf8\xeb\xf1\x78\x16\xf2\x00\xe7\xb7\x1d\xc1\ -\xb5\x7d\x27\x10\x74\xf6\x3a\xb6\x0f\x9e\x8c\x40\xff\x60\xa4\xae\ -\x7a\x0f\x89\xdf\x14\xc3\xb3\x5f\xbf\xc4\x9d\xa3\x1b\xf1\x82\x7b\ -\xba\xf3\xc7\x0f\xc1\xff\xcc\x7e\x5c\x3d\x7d\x06\x4f\xb6\x0e\xc5\ -\xf1\x0d\x3e\xc8\xbc\xfb\x1b\x6e\x4d\xb1\xa0\x50\x3b\xe3\xed\x1a\ -\xae\x46\x85\xca\x03\x34\xaa\x56\x39\x0c\x2b\xcb\xdf\xb0\x75\xeb\ -\x0d\x7c\xf9\xd5\x6d\x94\x30\xdb\x8d\x76\xad\xcf\x8a\x62\x19\x46\ -\x8f\xbe\xcb\xf2\xc3\xe8\xdb\xfb\x9a\x2e\x07\x14\x41\x2a\x26\x8e\ -\xf7\x47\xc5\x72\x87\x60\x45\x11\xdb\xda\x1c\xc3\x37\xdf\x86\xca\ -\xfd\xec\x83\x07\xe9\xa8\x50\xee\x14\xca\x94\x3c\x8c\x6d\x5b\x9f\ -\xe2\xd6\xf5\x04\xbc\x55\xf1\x18\x4a\xda\x1c\x86\xdf\xf1\xec\xc3\ -\x56\xb6\x50\xf7\xec\x3d\xb8\xeb\x02\xf7\xa8\x6a\xb5\x1a\xc9\xc9\ -\x09\x5c\x8a\xe3\x78\x80\x53\xc9\xd3\x7d\x5a\x5a\x0a\xd3\x19\x48\ -\x49\x49\x46\x5c\x6c\x34\xb7\x14\xc9\xbc\x47\x06\xd3\x31\x78\xf2\ -\xf8\x11\x9e\x3c\x7a\x4c\x9b\x34\xa4\xb1\x2c\xe5\x79\x04\x52\x62\ -\x5f\x20\x26\x26\x86\x1e\x32\x13\x71\xdc\xcf\xc6\xc5\xc5\xb2\xcd\ -\x64\xa8\x15\xd1\x76\x12\x92\xb8\xcc\xa7\xd3\x3e\x55\xb4\xab\xce\ -\x42\x86\x8a\x75\xd3\x53\xa1\xca\x48\x47\x78\xf8\x83\x37\x27\xd4\ -\x31\x4b\xee\xb9\xb5\x99\x18\x8f\x56\x3c\xc1\x8b\x93\xbd\xbd\x6b\ -\x12\x86\x7a\x24\x61\xf3\xe9\x54\xac\x38\x94\x0e\x9f\xc3\x69\x58\ -\xf4\x07\x3d\xea\x1f\x69\x58\x7e\x28\x4d\x5e\x0b\x6f\xbb\xfd\x6c\ -\x3a\x96\x1d\xc9\xc0\x72\x1e\xc4\x7e\xa5\x07\x5d\xe7\xc7\xfc\xe3\ -\xa9\xf8\x9d\x9e\xd5\x97\x79\x1b\x4e\xa4\x62\xc7\x59\x15\x56\xd3\ -\xf6\xe0\x35\x15\x9e\xc4\x19\xf7\xa8\x42\xa8\xed\xed\x5a\x61\x4f\ -\xd7\x2f\x10\xc2\x65\xe7\xfa\xb1\x0b\xb8\xe4\xbd\x11\xf7\xae\x07\ -\x22\xf8\xce\x3d\x1c\xff\x76\x2e\x1e\x5f\xbf\x0b\xbf\x01\xc3\xb0\ -\x67\xc5\x6f\x08\xb8\xf5\x00\xb1\xa1\x4f\xb0\x67\xf4\x0c\xdc\xbb\ -\x16\x88\x1d\x43\x26\x50\xa0\x63\xf1\xe0\xf4\x25\x1c\x68\xd4\x06\ -\x67\xfd\xae\x23\xdd\x6f\x1a\x42\x17\xb5\xc3\xd3\x10\x7f\x5c\xde\ -\xf4\x03\x22\x1e\x3c\xc2\x25\x0a\xf4\xfe\x81\x59\xf8\xf3\xd4\x29\ -\x24\xfb\x4d\xc0\x0b\xff\xe3\xc8\x38\xf3\x33\xce\x8c\xb7\x42\xd5\ -\x0a\x5d\xb9\x47\x75\x33\x2e\x54\xae\xd8\xbd\x7b\x5d\x81\x39\xc5\ -\xd9\xab\xcf\x35\x54\xae\x7c\x14\x96\x56\x7b\xb0\x9c\x27\x7a\x11\ -\xa2\x63\x32\xd1\xa9\xe3\x15\x8a\xf1\x20\xc6\xb8\x04\xca\x3c\x7d\ -\xd0\x68\x14\x5c\x38\x1b\x83\x96\xcd\xce\xc9\x43\xd3\xdb\x55\x4f\ -\xf3\xe4\x9e\x86\xef\x7f\x08\xa3\x37\xdd\x8b\x72\x15\x0e\x63\xf2\ -\xcc\x10\xfc\x34\xff\x21\xde\xaa\x7c\x1c\x36\x16\x87\xe8\xcd\x1e\ -\xe9\x6a\xe7\x08\xf5\xe0\xa1\x63\xbb\x2e\x5e\xba\xac\xcb\xe6\xcc\ -\x61\xa7\xe4\x57\x9b\xd9\xe9\x1c\x76\x6c\xdf\xcd\x3d\xf3\x19\x9c\ -\x20\xc1\xc1\x61\xb8\x7a\xf9\x0a\xee\xdd\x0b\xc1\xaf\x5b\xb7\xc9\ -\xbc\x9b\x7f\xde\xc0\xf9\xf3\xe7\x70\xeb\xe6\x5d\xda\xfe\x8e\x93\ -\x27\xce\xe1\xfa\xb5\x9b\xac\x2b\xfe\x92\x8a\x68\x4e\xf8\x5a\xd1\ -\x96\xf8\xba\x55\xd7\xae\x46\x8d\x94\x17\xcf\x70\xf7\x8f\x9d\x6f\ -\x4e\xa8\xce\x4b\xef\xba\xb5\x99\x12\x8f\x16\x14\x69\xd3\xf1\xf1\ -\x68\xec\x1a\x87\x19\x5b\xb5\x7b\xcf\x99\xdb\x52\x31\xef\xf7\x54\ -\xcc\xd8\x96\x82\x19\xbf\xd1\xdb\xd2\xab\xce\xfe\x3d\x0d\x93\x37\ -\xa6\x60\xf6\x1f\x2a\x8c\x5b\x97\xc2\xc3\x54\x0a\x7e\xde\x95\x86\ -\x61\x3e\xc9\xf8\x65\x5f\x3a\x36\xf0\xf0\x34\xc8\x33\x09\x6b\x8e\ -\xa9\x30\x77\x67\x2a\x0f\x58\x49\xd8\x75\x35\x1d\x2f\x12\x8c\x9f\ -\xfa\x4b\x97\x1b\x7a\xb0\xaa\xf5\xfb\x98\xdb\x69\x20\x8e\xbb\xcc\ -\xc4\x4e\xe7\x59\x58\xdd\x75\x18\xf6\x4f\x9a\x07\xaf\x89\xf3\x71\ -\xc0\x77\x27\xb6\xcd\xdb\x84\x4d\x0b\xb6\xe2\xcc\xe6\x03\xd8\xf8\ -\xd5\x78\x6c\xf3\xfd\x1d\x87\xfa\x0e\xc7\xca\x09\xf3\x70\x66\xef\ -\x59\x6c\x75\xfb\x1e\x87\xa6\x2d\xc2\x6d\xdb\x4a\xf0\x1a\xfc\x29\ -\x0e\xef\x3a\x86\xf3\x3b\x56\x61\xe5\x82\x65\x38\xb6\x6d\x0b\x8e\ -\x6c\x5a\x83\xed\xcb\x96\xe3\xd9\xda\xf6\xf0\x9d\x3c\x02\x27\x77\ -\xed\xc5\xb1\xed\x3b\x90\xf8\x7b\x1f\xf8\x0e\xab\x82\x52\xa5\xfa\ -\xe2\xad\x1a\x05\x7f\xe0\xbf\x7e\xdd\x63\x58\x59\x1d\x42\x09\xcb\ -\xfd\x14\xd8\x1e\x34\x6a\x78\x96\x87\xa8\x74\x59\x16\x1c\x94\x82\ -\xba\xd5\xfc\x60\x5d\x62\x3f\x3c\x16\x3d\x90\x7b\xd1\x7d\x87\xe3\ -\xe8\x91\x72\x3e\x4f\x1d\x38\xf0\x36\x3d\xee\x31\xd4\xa8\x76\x0a\ -\x67\xcf\xc6\xc1\xde\xfe\x34\xac\x79\x18\xb3\x60\x1d\xd3\x62\x7b\ -\xc8\x7e\xd8\x58\x1d\x85\xad\x9d\x1f\x9c\x1c\x03\xe9\xed\xe4\x7e\ -\x36\x5b\xa8\x47\x8f\x9d\xd8\x75\xe5\xaa\xf8\x0a\x55\x04\x21\x23\ -\xd1\xb6\x54\x15\x63\xdd\xf7\xf4\x22\xa5\xd6\xe0\xf6\x9d\x9b\x38\ -\x77\xee\x0c\xae\x53\x90\x4f\xe9\x4d\xa3\x23\x23\x91\x48\x2f\x7c\ -\xe5\xe2\x79\xf8\xdf\xb9\x8d\xd0\xb0\x50\xee\x49\xcf\xe3\xd1\xc3\ -\x47\xb8\x72\xf9\x12\xee\x05\xf9\x23\x88\x27\x7e\xd1\x96\xb6\x65\ -\x0a\x54\x20\xda\x24\xe2\x73\xd7\xb8\xcd\xab\xf1\xa0\x47\x6b\x9c\ -\x79\xb7\xf2\x9b\x13\xaa\xab\xc7\x3d\xb7\xf7\x26\xc5\xa1\xd9\xf8\ -\x04\xb4\x1c\x97\x48\xaf\x9a\x80\x19\x9b\xd3\x30\x69\xad\x56\x84\ -\xdb\x2f\xa9\xe0\xb4\x22\x99\xe2\x4c\x85\x17\x3d\xea\x84\x8d\x69\ -\x98\x4f\x61\xae\x3a\xaa\xc2\x28\x8a\x73\xe2\x86\x64\x7a\x5a\x21\ -\xce\x44\xfc\xc2\xfc\x53\xfe\x19\x98\xb3\x2d\x1d\x2e\xac\xb3\x81\ -\x5e\x76\xfa\x66\x2e\x81\xeb\x52\x71\xec\x56\x01\x1e\xb5\xec\xa0\ -\x83\x56\xb6\xbd\xf1\xbd\x65\x05\xdc\x30\xb7\xc5\x35\x73\x3b\x5c\ -\x30\xb7\xc6\x25\x73\x1b\x9c\x25\xe7\x2d\xec\x70\x9e\xf1\x49\x8b\ -\xd2\xb8\x64\x55\x0a\xb7\x4d\x6d\x71\xce\xaa\x34\x6e\xdb\xd9\x22\ -\xa4\xa3\x15\x82\x3f\x2d\x85\xf0\x9e\x36\xb8\xdf\xc3\x1a\x91\xbd\ -\xcd\x10\x33\xd9\x14\x0f\x26\x96\x44\xe4\x64\x2b\x84\x8f\xb5\xc2\ -\x53\x37\x6b\x3c\x9f\x62\x85\x27\x24\x7e\xaa\x19\xa2\xa6\x99\xe1\ -\xe9\xb7\x36\x78\x31\xdd\x0a\x69\x3f\x99\xa1\x67\x93\xba\xb0\x2a\ -\xf5\x35\xaa\xbf\xe4\x2b\xd4\xe3\x47\x63\x79\x38\x3a\x2e\x97\x70\ -\x33\xf3\x7d\x70\x1d\x93\x73\x3a\xbf\x7e\x3d\x11\xe5\xcb\x1c\x85\ -\x9d\xd5\x01\xdc\xba\x91\x80\x74\x1e\xae\xca\x96\x39\x89\xfa\x8d\ -\x2e\xf2\x70\x72\x15\x8d\x1d\x2e\x70\x89\x3f\x0e\x6b\x0a\xf1\xe7\ -\xd9\xa1\xd8\xbe\xed\x39\x97\xf8\x23\x28\x5d\xf2\x10\x86\x0f\xb9\ -\x09\x37\x57\x32\xfa\x0e\xfa\xf5\xba\x86\x92\xb6\x7e\x68\xe6\x70\ -\x09\xd1\xda\x7d\x6e\xce\x1e\xf5\x28\x85\x2a\xbe\xeb\x97\xfa\x95\ -\xff\x93\x1d\x84\x98\xb4\x41\xfc\x80\x44\x78\x71\x8a\x4b\x93\xc5\ -\x09\x93\x49\xc4\x0f\x55\x84\xe0\x84\x57\xa4\x08\xc5\x0f\x4e\x28\ -\x66\xb9\x6d\x90\x76\xe2\xc7\x27\xb4\xa1\x9d\x0c\xa2\x01\x1d\x99\ -\x51\x91\x88\xff\x63\x1b\x22\x06\x76\x43\x60\x9d\x72\x08\xac\x5f\ -\x0e\x27\xdb\x57\x7b\x73\x42\x1d\xed\x11\xe4\xd6\x86\x42\x6d\xe9\ -\x26\x48\x40\x13\x8a\x75\xfa\x96\x74\xcc\xdf\x91\x8a\x6f\x28\xb2\ -\xa9\x9b\x28\xb8\xe3\x69\x58\x79\x24\x1d\xe3\x29\xb8\xc3\x37\x32\ -\xb0\xe0\x20\x0f\x5a\xb7\x32\xb1\x93\x07\xa5\xe3\xb7\xc5\xf2\x9e\ -\x8e\x29\x1b\x12\xe9\x6d\xd3\x79\x28\x4b\xc7\xac\x6d\x69\xf8\x89\ -\x22\xdf\x46\xef\xfa\xe3\xaf\x49\x58\xb6\x2f\x0d\x77\x22\x0a\xf8\ -\x51\x4a\x99\xaf\x0f\xda\xd8\x7d\x86\x4f\x2c\xed\x71\x4d\x7c\x46\ -\x2a\x3e\x47\x2d\x6e\x85\x7b\xa6\x16\x08\x35\xb5\x44\x98\xa9\x15\ -\xe3\x12\x08\x35\xe3\xb5\xf8\x1c\xb5\x04\x45\x49\xe1\x86\x59\x58\ -\x23\xac\xac\x39\xc2\x2b\x9b\x23\xe2\x2d\x6b\x3c\x7c\xc7\x02\x31\ -\x3d\xcd\x10\x37\xa6\x18\xe2\xc5\x37\x53\x2e\xc5\x10\xe3\xf2\x1f\ -\xf9\x19\x6a\xdc\xc8\xff\x20\x66\x94\x09\xa2\x46\x31\xcf\xa9\x18\ -\xa2\x59\x96\x3a\xc5\x04\xb7\x26\x99\xc2\xce\xa6\x0d\x2c\x4b\x7e\ -\xce\x3d\x6a\xc1\xdf\x4c\x25\x24\x64\xa1\x43\x87\x4b\x28\x5f\xf6\ -\x30\x0f\x3c\x27\x71\xf9\x62\xce\x07\xf3\x3b\xb6\xbf\xe0\x3e\xf4\ -\x28\x6a\x55\x3d\x29\x3f\x7e\x12\x42\xad\xf1\xd6\x09\x94\xe3\x89\ -\xbe\xa4\xed\x71\x94\x2d\x7d\x04\xf5\x6b\x9d\xc2\xa2\x05\xa1\x88\ -\x89\xce\x40\xdf\xbe\x37\x50\xb1\xac\x1f\x3a\x77\xe4\xc1\x8b\xdb\ -\x06\x7d\xb8\x72\x29\x1e\x35\xd8\x76\x83\xba\x67\x79\x48\x52\x89\ -\xac\x5c\x1e\xd5\x4f\x2b\x54\x03\x91\xbe\x2a\x08\x6b\x21\x52\x7d\ -\x90\x7e\x58\x08\x5b\x88\x97\xff\xa9\x85\x80\xc5\x7f\xbc\x16\xff\ -\x29\x59\x59\xc8\x8c\xe1\x3e\x77\xf7\x1f\x78\xd0\xff\x63\xdc\xab\ -\x57\x11\x81\xd5\x6c\x11\x58\xab\x2c\x82\xea\x95\xc3\xa9\x36\x6f\ -\x52\xa8\x4b\x02\xdd\x5a\x4d\x8c\x85\xc3\x98\x58\x34\x1d\x2b\xbe\ -\x81\x4a\x40\xb7\xd9\x89\xd2\x53\xba\xae\xe5\x81\x88\x9e\x75\xc0\ -\x92\x64\x0c\xf2\x4a\xc6\x84\x0d\x29\x70\x5c\x91\x82\x36\x93\x12\ -\x31\xc2\x37\x19\xce\x6b\x52\x31\x82\x07\xa7\xb1\x1b\xd3\x31\x66\ -\x83\x38\x5c\xa5\xc2\x95\x87\xaf\xb1\x6b\xd2\x30\x8a\x07\xae\xd1\ -\xe2\xb7\xab\xeb\x92\x31\x8f\x9e\x36\x20\xc2\xb8\x47\x2d\x5b\x56\ -\xfb\xcd\x94\x9d\x55\x67\x7c\x67\x5e\x11\xfe\x26\x16\xf2\x2b\xd3\ -\x50\x33\x4b\x8a\xb2\x04\x1e\xd2\xbb\x46\x10\x21\xd0\x07\xe6\x56\ -\x39\x69\x12\x6e\x69\x8d\x67\x6d\x4d\x11\xdb\xc3\x1c\xf1\x5f\x98\ -\x23\x69\x4c\x71\xc4\x8e\xa4\x48\x1d\x29\x50\xdd\xd7\xa7\x31\xe2\ -\x3b\xff\xe1\x26\x52\xa8\x22\x1d\x4d\xa1\xc6\x8d\x33\x41\xe4\xcc\ -\xe2\xf8\xaa\x75\x49\x2e\xbf\x75\x60\x6d\x37\x10\x6f\x57\x7b\xf9\ -\x8f\x52\xd2\x52\xb3\x70\xe7\x5a\x1c\x1e\x47\x68\x97\x7c\x7d\x48\ -\x49\xce\xc2\xed\x3f\x13\xf0\x24\x22\xe7\x83\xfc\xd8\x18\x15\xc5\ -\x1c\x83\x13\xc7\x62\x70\xf1\x5c\x34\xc5\x2b\xfe\x62\x9e\x36\xdc\ -\x0b\x48\xc4\xdd\x5b\x89\x14\x63\xde\x76\x44\x78\xf4\x20\x05\x91\ -\x39\xf9\x39\x1e\xf5\xb8\xce\xa3\x4a\xe9\xfd\x85\xa0\x33\x97\xb2\ -\x14\xa2\xd4\x79\x4b\x51\xa0\x4d\xea\x44\xca\x43\x5a\x46\x78\x38\ -\xa2\x3d\xe6\xe3\x7e\xa7\x36\x08\x7c\xbb\x14\x02\xaa\x95\xc6\xbd\ -\x1a\xa5\x11\x54\x9d\xe9\x9a\xa5\x11\x58\xf7\x0d\x0b\xd5\x85\x42\ -\x6d\x31\x3e\x16\xf6\xa3\x22\xe1\xe0\x18\x85\xc6\x4e\xb1\x24\x06\ -\x0e\xce\x31\x68\x31\x9a\x69\x97\x04\xf9\xdd\x7d\x23\xf1\x13\x40\ -\x21\x66\xf1\x1d\xff\xe8\x68\xd8\x8f\x89\x61\x59\x1c\x1a\x8f\xa1\ -\x17\x66\x7e\x93\x31\x71\x68\x41\xdb\x26\xb4\x15\x34\x73\x61\xfd\ -\x71\xb1\x68\x4b\x86\x2f\x49\xc1\x95\x02\x3e\x9e\x12\x42\x2d\x61\ -\xd9\x1b\x96\x96\xdd\x51\xd9\xaa\x3d\x96\x99\xf3\xc5\xd0\x93\x06\ -\x9b\x5a\xe3\x9e\x10\x2b\x3d\x6c\x84\x10\x68\x09\x3b\x3c\x24\x0f\ -\x4a\xd8\x52\xa8\xf4\xa0\xf4\xaa\xe1\x14\xed\x03\x5b\xa6\xeb\x58\ -\x21\x79\x78\x09\xa4\xb8\x9a\x22\x7e\xb4\x09\xe2\x85\x18\x9d\xfe\ -\x43\xe8\x5d\x85\x47\x75\x32\x41\xa2\xf8\x96\x8a\x24\xba\xd2\xa3\ -\xce\x32\xc1\xe4\xce\x15\xb8\xef\x6c\x09\x4b\x9b\xae\xb0\x29\x3b\ -\x04\x35\x6b\x1a\x3f\x4c\xbd\xc1\xf0\xf7\x85\xaa\x0b\x5a\x4f\x2a\ -\x3c\xa8\x90\xac\x0e\x2e\xfd\x99\xcf\x9e\x23\xe9\xf8\x21\x3c\x77\ -\x1f\x8b\x90\x16\x35\x11\x58\xbd\x24\x02\xdf\x29\x45\xec\x98\x2e\ -\x45\x91\x96\x46\x00\xe3\x40\x21\xd8\x37\xed\x51\x9d\x17\x07\xb8\ -\x35\x1f\x17\x2d\x7f\x9e\xd7\x70\xe4\x73\xd4\x17\xf1\xa8\x28\xa2\ -\x15\x5b\x63\x8a\xce\xde\x39\x5e\xfe\x28\xa5\x11\xc5\xeb\xe0\x14\ -\x8d\x26\x8e\xe2\x17\x56\xe2\xf7\xa8\xc2\x96\x87\x03\x0a\x5b\xe0\ -\x40\x9a\xb1\xac\xb1\x53\x94\x8c\x9b\xd1\xbe\xd9\x98\x28\x0c\xa3\ -\x47\xfe\x33\xcc\xf8\x61\xaa\x54\x69\xf1\xc3\xe9\xee\xb0\xb0\xea\ -\x05\x5b\x9b\x3e\x78\xdb\xa6\x3d\xbc\x4b\x94\xc2\x5d\x8a\x50\x7c\ -\xa5\x1a\x48\x0f\x2b\xbe\x56\x0d\xe7\xfe\xf5\xbe\x19\x97\x7c\xb1\ -\xec\x33\x3f\x8c\xe5\xfe\x14\xf3\x0a\xb3\xb2\x70\xa9\x5f\x19\xf7\ -\xc6\x58\x20\x65\xa2\x19\x92\x27\x98\x21\x69\x7c\x71\x24\x8e\x15\ -\x50\xa0\x14\x6f\xc2\x38\x53\x24\xbb\x15\x47\xf2\x24\x13\x3c\xfb\ -\xc6\x04\xce\x9d\xde\x82\x5d\xa9\x6e\xb0\xb4\xfd\x1c\xb6\xa5\x47\ -\xa0\x64\xd9\x91\xa8\x51\xeb\xdf\xfb\xeb\xa9\xd7\x5d\xfa\xf5\x41\ -\x88\x54\xec\x55\x35\x99\x19\xd0\x24\x26\x22\xf5\xfa\x9f\x88\x5a\ -\xf8\x33\x1e\x74\x7b\x9f\xcb\x7b\x25\x04\x55\xa3\x40\x85\x20\xdf\ -\xa1\x30\xe9\x4d\x83\x18\x07\x0a\x8f\x5a\xad\x8c\xf4\xac\x01\x14\ -\x6c\x60\xdd\xb2\x38\xd9\xfa\x9d\x37\x27\x54\x27\x0f\x7f\xb7\x16\ -\xe3\x62\xd0\x60\x14\x19\x21\x04\x1b\x8d\x7a\x14\x60\x3d\xc7\x17\ -\xf2\xd7\xf9\x4d\x28\xbe\x86\x8c\x1b\x50\x98\xe2\x77\xa7\x4d\x98\ -\x16\xbf\x96\x12\x76\x52\xa8\x23\xc5\x6f\x52\x23\xd1\x40\xfc\x26\ -\x55\xfc\xa2\x9f\xb1\xfc\x21\x35\xed\xed\x9d\xa3\xe0\x40\xb1\x0f\ -\xf6\x48\xc2\xa5\x50\xe3\x7b\xd4\x52\xa5\xbe\x3a\x68\x6a\xd1\x0b\ -\xe6\x56\x3d\x60\x6e\xd9\x13\x66\xa4\x94\x75\x47\x7c\x6a\x59\x1b\ -\xdb\x29\xca\x1b\x26\x25\xe0\x5f\x8c\xdb\x01\x13\x33\xee\x55\xb9\ -\x2f\x15\x3f\x4e\xa1\x50\x7f\xa7\x67\x1d\x64\x59\x13\xe5\xec\x3a\ -\xc3\xca\x6e\x00\x9a\xd5\x68\x05\xef\xfe\x25\xf1\x64\xaa\x29\x54\ -\xd3\x4d\x91\xf1\x4d\x71\xa8\xb8\x07\xcd\xf8\xb6\x38\x32\xa6\x9b\ -\xe0\xc9\xb7\x26\x58\xfb\x65\x49\xb4\x6f\xd0\x18\x16\xb6\x03\xe5\ -\xaf\xfa\xad\x4b\x0f\x85\x5d\x99\xe1\xb0\x2d\x37\x12\xd5\x6a\xfe\ -\x7b\x7f\x8f\x7a\xe4\xe8\xf1\x5d\x97\xaf\x88\x6f\xad\x5e\x21\x54\ -\xb9\x94\x13\xfd\xa5\xfc\x0f\xc8\x4c\x4c\x40\xf2\xa9\xe3\x88\x9e\ -\x3f\x1b\x11\xfd\x3f\x41\x30\x0f\x47\x41\x6f\xf1\x1c\x20\x04\x58\ -\xa3\x0c\x45\x49\xaa\x13\x8a\x34\xb0\x6a\x69\xf8\x4b\xaf\x4a\x81\ -\x8a\xfc\x6a\x65\xb5\xd7\xf4\xa8\x27\xda\xbd\x41\xa1\xba\x78\xf8\ -\x77\x1f\xf8\x73\x42\x62\xff\x9f\xe2\xd1\xe7\xc7\x78\xf4\x9e\x95\ -\x80\xae\x33\x62\xf1\xd1\xb4\x58\x74\x9e\x16\x8f\x2e\xd3\x13\xd1\ -\x85\xd7\x5d\xa6\xc7\xa1\xcb\xb4\x38\x7c\x32\x23\x01\xdd\x67\x25\ -\xe1\xe3\x99\x09\xcc\x8f\x67\x4c\x1b\xc6\x32\x3d\x3d\x07\x61\xdb\ -\x79\x7a\x0c\x3e\x64\x3b\xc3\x3c\x13\x9f\x5e\x0a\xcb\x6c\xa1\xbb\ -\x65\x9e\x60\x5b\xe6\xab\x83\x66\x56\x7d\x50\x9c\x62\x2d\x2e\xff\ -\x19\x4a\x0f\x99\xb6\xb0\x1e\x08\x5b\xdb\x8f\xd1\xcc\xd2\x01\xfd\ -\xac\x6a\xc1\xc9\xa2\x0a\x5c\xcd\xdf\xc6\x97\x56\x35\xd1\xca\xb2\ -\x29\x4a\x95\xa4\x47\x2c\xf9\x15\x2c\xe4\x3f\x2b\x19\xc4\x7d\xe6\ -\x97\x14\xec\x40\x54\xaf\xf2\x2e\xfa\xb5\xae\x83\xa9\x5d\xab\xe0\ -\xa7\xde\x15\xf1\x6d\xd7\xca\x18\xc8\x65\xad\x5a\x95\x76\xb4\xef\ -\x23\xff\x29\x8a\x55\xa9\x21\xb0\x2e\x39\x0c\xd6\x14\xab\x6d\xe9\ -\x61\xd2\xa3\x56\xab\x35\xf1\x5f\x2d\xd4\xf3\x17\x2e\xf1\x94\x0e\ -\x64\xa9\xc5\x12\xce\x33\x3e\xd3\x12\x6e\x7f\xc5\x47\x62\x82\x2c\ -\x66\x64\xa9\x54\x48\x7f\xfe\x04\xc9\xb7\xaf\x22\x7a\xd3\x2a\x3c\ -\x1d\x3b\x1c\x21\xed\xea\x23\xa8\x26\xb7\x54\xd5\x6d\x70\xa7\x9a\ -\x0d\xf7\x9c\xa5\xe0\x4f\xee\x72\xa9\x0f\xa8\xc1\x34\x63\x7f\xc6\ -\x77\xab\xd9\xe1\xce\xdb\xb6\x8c\x79\x80\xd2\x95\xfb\xd7\xa4\x4d\ -\x3d\x7a\xdc\x06\xa5\x71\xaa\x7d\x95\x37\x27\x54\x11\xf6\xfc\x99\ -\xd1\x66\xdf\xd5\xf4\x4e\x3c\xc5\x77\xda\x72\x32\xbd\xd3\xca\x23\ -\xc9\x9d\x3c\xf6\x27\x77\x5a\xb4\x2f\xb5\xd3\xa2\x03\xaa\x4e\x4b\ -\x99\xf6\x60\x7a\xf1\x9e\x14\x89\xc7\xde\xb4\x4e\x8b\xf6\xb2\x8c\ -\x2c\xde\x97\x26\x59\x42\x3c\x04\x7b\x52\x25\x4b\x58\x36\x6f\x77\ -\x52\xa7\x1f\xb6\x27\x75\xfa\x65\x57\x7a\x13\xdd\xad\xf2\x85\xf2\ -\x15\x07\xad\xb6\x29\xd9\x3f\xc4\xb6\x54\xff\x10\x9b\x92\xfd\xb4\ -\xd8\x89\xeb\x01\x21\x25\x4b\x7d\x1a\x62\x5b\xe6\xf3\x10\x9b\xd2\ -\x03\x43\xac\x4b\xf7\x27\xfd\x42\xac\xcb\x0c\x08\xb1\x2b\x35\x28\ -\xc4\xae\xcc\x97\x21\x25\xcb\x7c\x45\xbe\x0e\xe1\xf6\x41\x1b\x97\ -\x1d\x24\xe3\x92\xa5\x05\x03\x43\x4a\x97\xe9\xcf\xbc\x81\xb4\xa5\ -\x5d\xb9\x41\x21\xa5\xca\x0d\xe6\xf5\xd0\x90\x32\xe5\x07\x87\x94\ -\x29\x37\x24\xa4\x4c\x05\xc2\x74\xf9\x8a\xc3\x42\xea\x35\x98\xf0\ -\xa5\xae\x4b\x32\x50\x28\xff\x1a\xa1\x9e\x3d\x7b\x6e\xd7\xb4\x6f\ -\x67\xc1\x63\xc9\x0a\x2c\x59\xb2\x1c\x9e\x9e\x3e\x58\xba\xd4\x57\ -\xfe\xa3\xbb\xa5\xcc\xf3\x62\xda\x73\xf1\x32\x78\x2c\xf6\xc6\xc2\ -\x1f\x7e\xc4\x22\xe7\x21\x58\xf8\x65\x17\xcc\xed\xde\x0a\x0b\xbb\ -\xb5\xc6\x2f\x9f\xb4\xc6\xec\x8f\x5a\x60\x4e\x97\x56\x98\xdb\x8d\ -\x74\x6f\xad\x8d\xc9\x2f\x5d\x5b\xe1\x27\xe6\xff\xfc\x71\x1b\xcc\ -\xed\xda\x96\x65\x6d\x30\xaf\x57\x3b\x22\xd2\xad\x30\x8f\xf5\xe7\ -\x76\x25\xdd\xdb\x62\x76\xbf\x4e\x6f\x56\xa8\x45\x21\x7f\xa0\x50\ -\x9a\x10\xf7\x37\x48\x1d\x5d\x57\xfe\x93\xa1\x4a\xeb\xfd\xec\xc9\ -\x7d\xf7\xc7\x0f\x83\xdc\x9f\x44\x84\x90\x50\xa6\x43\xdd\x9f\x3e\ -\x0c\x73\x7f\x1a\x71\xdf\xfd\xf9\xe3\x70\xf7\x67\x8f\xc2\xdd\x9f\ -\x3e\x0a\x76\x7f\xf6\x38\xcc\x3d\xf2\xc5\x53\xf7\xd8\xe8\xe7\xee\ -\xd1\xd1\x4f\xdd\x63\xa2\x9e\xb8\x47\x46\x3e\x71\x7f\xf1\xfc\xa9\ -\xfb\x8b\x17\x4f\xdc\x63\xe2\x5e\xb8\xc7\x92\xb8\x58\x12\xfd\xcc\ -\x3d\x86\x79\xd1\x2f\x1e\x31\x7e\xec\x1e\x1b\xf9\x94\xf9\x4f\xc8\ -\x73\xf7\xd8\x18\xd6\x8f\x7a\xec\x1e\x17\xf5\xcc\x3d\x2a\xf2\x85\ -\x7b\xd4\x73\xda\x45\xc6\x34\xd7\x75\xa9\x28\x14\x85\xa2\x50\x14\ -\x8a\x42\x51\x28\x0a\x45\xa1\x28\x14\x85\xa2\x50\x14\x8a\x42\x51\ -\x28\x0a\x45\x21\x3b\xfc\xe7\x3f\xff\x07\x4f\x8b\xe6\x2a\xae\x45\ -\xc2\xb5\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ +PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\ +\x00\x00\x93\x00\x00\x00/\x08\x03\x00\x00\x00\xd03\x08)\ +\x00\x00\x03\x00PLTE\xff\xff\xff\xfb\xcbX\xff\xca\ +M\xfe\xc6C\xff\xc49\xfe\xc39\xff\xd7y\xff\xdc\x8a\ +\xff\xd2h\xfb\xc8M\xf6\xc0@\xf4\xc1HYC\x13\x00\ +\x00\x00\x05\x04\x04/$\x0akQ\x16\xeb\xb54\xf3\xba\ +7\x10\x08\x06\x1c\x14\x05\xd6\xa4/x[\x1b\x87h\x1e\ +\xfa\xbf7\xe5\xb03E1\x0c\x95r!\xcb\x9c-\xb5\ +\x8b(\xda\xa70\xa3}$\xe1\xac2cK\x16\xa4\xa6\ +\xa9\xbc\xbb\xbb\xb9\xb8\xb8\xb6\xb3\xb3eff\xbd\xbd\xbd\ +\xe8\xe8\xe8\x03\x0b\x0eLNN\x84\xb9\xebI\x99\xe2N\ +\xa3\xe8Y\xae\xec2\x87\xdc*{\xd8 p\xd2\x13b\ +\xcd\x06U\xc8\xe8\xef\xf9\xe3\xe4\xe5\xc2\xc2\xc1\xff\xff\xff\ +\xf8\xf8\xf9m\x01\x0dR\x01\x072\x03\x06vP\x0f\x94\ +\x07\x16\x05*9\x00^\x82\x04n\x9ay\xb6\xeb\x00K\ +\xc4\xea\xeb\xec\xd4\xd4\xd4\xcd\xcd\xcd\xba\xbd\xbd\xbc\xa0\xa5\ +\xa3\xac\xaf\xaf\xb6\xb9\xf6\xf6\xf7\xb2\x04 \xfc\x01\x1c\xf0\ +,\x10\xf6\x9e\x1b\xff\xb3\x1f{N\x0e\x939j(\x8c\ +\xd8\x00\xb3\xf7\x01\xa8\xe9\x00\xa1\xdei\xaf\xe9r\xbb\xef\ +~\xc1\xf1l\xa8\xe6\x5c\xa3\xe6I\x85\xd7B\x7f\xd5:\ +w\xd1\xed\xed\xed\xc4\xc5\xc5\xed\xf0\xf2\xfd\xfd\xfd\xed\x87\ +\x98\xdb$H|Bi5M|'p}5{\x85\ +\xe0\xe6\xeb\xf0\xf2\xf6\xf3\xf5\xf9\xf2\xf4\xf5\xfb\xfc\xfc\xeb\ +\x01\x1b\xfea\x01\xfbx\x08\xff\xaa\x1d\x8db\xa9W\x83\ +\xce\x03\x9b\xd7\x06Zh\x98\xc4\xed\x9d\xcc\xf2\xbc\xdb\xf5\ +\xa8\xd2\xf4\xb3\xd2\xf2\xa8\xcc\xf0\x83\xb4\xe8\x8b\xb1\xe6\x95\ +\xb8\xe8z\xa4\xe1f\x97\xdd\xff\xfa\xf4\xf9\xfb\xfc\xf6\xc7\ +\xcf\xd9\x01&\x0b-a\xd4\xda\xdc\xda\xdc\xe6\x8c\x91\xb5\ +\x84\x8b\xaf\xeb\xec\xf1tz\xa6\xac\xb0\xca\x87\x8e\xb3\xbc\ +\xc0\xd4\xd0\xd4\xdeSf\x92ht\x96\xcf\xd0\xde\xd4\x00\ +\x18\xf9E\x08\xfa\x8c\x12\x99b\x11\x9aN\x8duu\xc4\ +\x00\x84\xb6\xd1\xe2\xed\x90\xbc\xebv\xaa\xe4\xa0\xc5\xedq\ +\x9f\xe0_\x92\xdbX\x8d\xda\xd8\xdb\xdd\x90\x98\x9c\xc3\xc8\ +\xca\xb7\xbb\xbd\xd4\xd7\xd8\x98\xa2\xa7\xd1\xcb\xc6\xfe\xcb\x9f\ +\xfd\xbd\x86\xd3\xc0\xb0\xbe\xc3\xc5\x84\x8f\x95\xf2\xf1\xf1\xf3\ +\xad\xb8\xe6\x0c.i\x13;\x00%WN\x89\x93+6\ +x\xc4\xc9\xd8\x98\x9d\xbe\xa3\xa7\xc5KT\x8b\xe7\xe8\xf0\ +\x03\x15Z\xfa\x81\x0e9\x85\xc7\x00\x92\xcb\x91\xc6\xf0\x8a\ +\xb7\xe9\x85\xac\xe4S`hv\x82\x88\x9f\xaf\xba\xf3\xd9\ +\xc4\xda\x8aE.02\xfe\xf8\xf9\xee\x94\xa6\xf0{\x8f\ +;Y\x83\xa6\xc5\xca\xb3\xb9\xce\x0a\x14\x17h\x9d\xe1\x99\ +\xa8\xb8\xe4\xd2\xc2\xf8\x87)\xf8\xc1\x8a\x94\x9e\xa7?\ +\x22!!\x13T\xc7\xff\xfd\xf9\xfb\xa4Y\xfc\xb5ye\ +\x5c\x81\xae\x9d\x8c\xcd\xbe\xc2C\xef\xaeH\x00\x00\x00\x01\ +tRNS\x00@\xe6\xd8f\x00\x00\x00\x01orN\ +T\x01\xcf\xa2w\x9a\x00\x00\x07.IDATX\xc3\ +\xed\xd6y\x5c\x93u\x1c\x07\xf0g\xf0\x8cB\xf9=\x0f\ +{\x9e\xc91\x10\x01#\xe40\x0e\x93\x89\x08\x9e\x98\xa9\ +A)X\x04*\x88\x22\xd7\x04SP\x04\x86\xc8a\x82\ +\x0a\x1ee9\x0eEM\x93\xd46`h\x0aQR\x1e\ +`\x9a\x09QxT\x06e\x87i\x17\xdd\xf5\xfdmc\ +L}\x00c\xb3\x7f\xf2\xc3^\xbb\x9em\xcf\xfb\xf5\xfd\ +~\x9f\xdf\x0f\x82\xb8\x8b\xf0\x8c\x8cI>\x9f\xe4\x93\xda\ +\xf05\xaf\xf9:\xef\xe3\xe78\xbd~\xce\xd8\x88w7\ +g\xbb\x9b\x18\x19\xf3LL\x1e0@LLx\xc6F\ +\x86\x10\xf1\x8c\x1f4y\x10\xead\x80\x18\x1b\xc1O\x19\ +\xeb_+S\x9e\x89\x91!<\xdd12\xe1\x99\xeaM\ +\xe2\x19R\x84\xc3\xd3\x13\xc535h\x914\xa52\xd5\ +\xab}\x83\xee\x01\x09P\x83\xf4 \x0d6\xbd\x17$\x92\ +4\x1d\xacG\x99\xb8~\xd0\x0c!\x8a6\x17\xf4yR\ +F\xc0\xf4y|\xe0\x85\xe2\xf5bb\x85\x08\x09\x87\xf4\ +uN\x0bd\xd9\xb7i\xc0\x135\xd8\x8a\xdbdIZ\ +\x8b\x90Y\xdf&\x8b>MV\x03n\x1e\xc3\xe7\xfa=\ +l\x22\xad)4\x84\xe4\xdb\xd0\xac\xc8\x96$\x054m\ +I\xb3\xa0`,hJh\xc9'-X$\xa4\x01-\ +0\x13\x0a9q|f\xa0&A\xef&\x92FC\xa1\ +\x1a\x88F\x94-i\x8d\x10K#@\xda\x22\x9a\xa6\x90\ +-i)D\xb4\xc8\x82dh$\x12rv\x91/\xb8\ +\x17&\xb8\x17P\x94\x1di\x89D`b\x19\xd5\xdb\x02\ +;\x92\xb4A\xe6\xdd\xbd\xc3O\x19\x8a\xfe\xcfLB4\ +l(\x82\xd3\xd9#\x16LB\x12p\xb8y6\x0eP\ +\x9b\xee\x19w@\x2233\x8a5\xac\xa9\xd7\x19'\xed\ +\x10\xb2\x1d\x8a\xcf.@,\x1f\xea\xa46\xd9\x0b)\x91\ +Y\x8f\x09\x9e:8\x98\x9bs\xcd\xf8\x80M\x04\xd3\x9b\ +\xc9\xca\x0c\xd1|{D1\xe40(\x96\xb6N\xb8e\ +C\xd5&\xdc;\xcb^/\xce\x01\x8f8AXs\x9b\ +\x84\x22\x0a\xb1\xb6\xb87B3\x0af]['\x1b$\ +\xb2\x11a\xd30\xc4\x9a\x8bH\x06F\xdd\x82\xb3N\xd6\ +z\x98\x18N\x13\x5cn\x0e\x98\xcb\x98SH8\x8c\xec\ +\xa9\x93@\x04\x16\x02\x199\xd2\xdd\xc3\xc3\xd3\xd3\xcb\xdb\ +{\x14\xce\xa3\x041\xda\xd1\xe7\xce89\xf6j\x1a.\ +\xbe3c|\xb0\x09\xfeOB\xac\xaf\xaf\xefX?\xd1\ +\xb8q\xe6\xf0\xaf\x10\x04\x9b\xf0#\xf2\xf3\xf5\xf7\xf7\xf5\ +\x0b\x18?a|\x80\x0b~\x8dM\x135&wl\xf2\ +\xf2\x02\xd2$\x08\x98&O\xe18\xc9h\xf8-\x22\xd0\ +i\xeaT\xa7\xc7 \x8e8\xd3p\x1e\xf7!\x9c9>\ +>\xbd\xdb\xc4\xce\x98\x09y\x22(888\xe8IJ\ +\xc7\xe4\xa7:\xf0\xd4\xac\xd9!\xb3C\xc7\xbbt\x9b\xe6\ +<\xfd\xf43\xf07'\xecYw\xf7\xf0\x88\x88\xb9s\ +\xbd\xe6zc\xd3\xf7\xd5\xd7\xf0\x95o>=\x90\xb3Y\xe2\xff\ +\xfa\xe1\x8e3-\x1f\xb6\xb6\xb5u~\xfb21\x5ce\ +\xaa-\xcc\x17Wm\xca\xaf\xa9\xc9\xdf\xb8!>\xe1t\ +\xadv-\xa0|7K$\x9b\xfd\xafC\xeb\xae\xd3\xba\ +\xeb\x13\xab:ph\xc2\xb2e\xa1/\x05t\xafO\xcd\ +\x9e\x9e\x9e\xcd2\x99,Sv-\x13\x0a\x15Q\x9fQ\ +^_&\xbd\xc8\xb1\x16|\xb7\xf7\xc6\xcd\xe3*\xd3\xf7\ +'rrr\x0e\xe5\xe6\xb6\xc4f\xb7\xc5&\xc6\xc9\xe5\ +\x09\x1aS\xaf\xeb\x13ti\xecX?J(\xfaA\xc4\ +\x22\xdd\xf5\x09\x1f\xf0\xf3C.\x01\xb9\x01MHk\xf2\ +\xf2\xf2\x0a\xaf\xab\x93\x95^+\x0do\xc7\xbd\xab\x97\xb6\ +\xb7\x97\xc5\xdfnZ}i\xdf\x8d\xb375\xa6\x1f\xaf\ +\x82\xe9\xa7\xdc\xdc\xe2\x8e\x9f\xe5\x9d\xad\x9d1\x9dQ\xfd\ +\x99\x9a\xba\xba\xba\x1a\xbb\xcew56\xc2C\xa3\xae\xa9\ +\xc9\xd5\xf5\xbc\xabk\x17\xdc~\xd1\x9a\xca\xbc\xd4\xf1\x86\ +]\xe5Wmn]3\x7f\xbbt\xf9w\x00\xdd<\xab\ +1\xad9x\xeb\xeat\x0av\x96\xbe\xf7\x16\x16c\xf0\ +\x0d\x9b~\xd15\xb1\x8d@r\x05\xb2\x8e\xa9\xdc\x1b\x07\ +\xefq\x93t\xd2\xb3\xb7\x80\xe7\x0f\x00%\xdd\xc4IR\ +\x99v]\xb9p\xf5\xea\xe7\x7f\x16\x15)\x8b\xe4\x90\xc5\ +\x9d\xd3am\xefw\x0ff\xf1\x8d\x85\x0d\x97\xbdm\x0f\ +\xc6o\xe2\xf4\xec\xc1\xed\xe18\x11xS\xd1I\x9cv\ +\x0fv\xfe\xe4k\x9d\xfc\x85\xf7\xe0@\xe7\xbf!>\xfb\ +\xbbS\x11\x18\xe83\xff\x1f\x22\xba\xf7\xfb!O\x97\xb9\ +\x00\x00\x00\x00IEND\xaeB`\x82\ \x00\x00\x82\xd2\ \x00\ -\x00\x01\x00\x02\x00\x40\x40\x00\x00\x01\x00\x20\x00\x28\x42\x00\ -\x00\x26\x00\x00\x00\x00\x00\x00\x00\x01\x00\x20\x00\x84\x40\x00\ -\x00\x4e\x42\x00\x00\x28\x00\x00\x00\x40\x00\x00\x00\x80\x00\x00\ -\x00\x01\x00\x20\x00\x00\x00\x00\x00\x00\x40\x00\x00\x12\x0b\x00\ +\x00\x01\x00\x02\x00@@\x00\x00\x01\x00 \x00(B\x00\ +\x00&\x00\x00\x00\x00\x00\x00\x00\x01\x00 \x00\x84@\x00\ +\x00NB\x00\x00(\x00\x00\x00@\x00\x00\x00\x80\x00\x00\ +\x00\x01\x00 \x00\x00\x00\x00\x00\x00@\x00\x00\x12\x0b\x00\ \x00\x12\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\ \x01\xff\xff\xff\x00\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x8d\x8e\x14\x00\x8d\x7e\x0b\x01\x8d\xad\x25\ -\x12\x8d\xba\x2d\x37\x8d\xc0\x31\x66\x8d\xc5\x33\x94\x8d\xc8\x35\ -\xb9\x8d\xca\x36\xd5\x8d\xcb\x37\xe6\x8d\xcb\x37\xed\x8d\xcb\x37\ -\xec\x8d\xcb\x37\xe5\x8d\xca\x36\xd5\x8d\xc8\x35\xbe\x8d\xc5\x34\ -\x9d\x8d\xc1\x31\x71\x8d\xbb\x2d\x40\x8d\xaf\x26\x16\x8d\x8a\x12\ +\x00\x00\x00\x00\x00\x8d\x8e\x14\x00\x8d~\x0b\x01\x8d\xad%\ +\x12\x8d\xba-7\x8d\xc01f\x8d\xc53\x94\x8d\xc85\ +\xb9\x8d\xca6\xd5\x8d\xcb7\xe6\x8d\xcb7\xed\x8d\xcb7\ +\xec\x8d\xcb7\xe5\x8d\xca6\xd5\x8d\xc85\xbe\x8d\xc54\ +\x9d\x8d\xc11q\x8d\xbb-@\x8d\xaf&\x16\x8d\x8a\x12\ \x02\x8d\x9b\x19\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ @@ -990,13 +204,13 @@ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\x5e\x0e\x00\x8d\xf8\x43\ -\x00\x8d\xaa\x23\x0d\x8d\xbb\x2d\x40\x8d\xc4\x32\x87\x8d\xc9\x36\ -\xc4\x8d\xcd\x39\xe8\x8d\xd0\x3a\xfa\x8d\xd2\x3b\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd2\x3b\ -\xff\x8d\xd1\x3b\xfc\x8d\xce\x39\xed\x8d\xca\x36\xca\x8d\xc4\x33\ -\x8e\x8d\xbc\x2e\x47\x8d\xae\x26\x12\x8d\x0b\x00\x00\x8d\x8f\x13\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d^\x0e\x00\x8d\xf8C\ +\x00\x8d\xaa#\x0d\x8d\xbb-@\x8d\xc42\x87\x8d\xc96\ +\xc4\x8d\xcd9\xe8\x8d\xd0:\xfa\x8d\xd2;\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd2;\ +\xff\x8d\xd1;\xfc\x8d\xce9\xed\x8d\xca6\xca\x8d\xc43\ +\x8e\x8d\xbc.G\x8d\xae&\x12\x8d\x0b\x00\x00\x8d\x8f\x13\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ @@ -1006,13 +220,13 @@ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x8d\x66\x0e\x00\x8d\xff\x49\x00\x8d\xae\x26\x13\x8d\xbe\x2f\ -\x5c\x8d\xc7\x35\xb8\x8d\xce\x39\xf0\x8d\xd2\x3b\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd2\x3b\ -\xff\x8d\xcf\x39\xf4\x8d\xc9\x36\xc4\x8d\xc0\x30\x6d\x8d\xb2\x28\ +\x00\x8df\x0e\x00\x8d\xffI\x00\x8d\xae&\x13\x8d\xbe/\ +\x5c\x8d\xc75\xb8\x8d\xce9\xf0\x8d\xd2;\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd2;\ +\xff\x8d\xcf9\xf4\x8d\xc96\xc4\x8d\xc00m\x8d\xb2(\ \x1c\x8d\x16\x00\x00\x8d\x9a\x19\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ @@ -1021,15 +235,15 @@ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x8d\xb7\x29\ -\x00\x8d\xa8\x23\x0a\x8d\xbc\x2e\x55\x8d\xc8\x35\xc0\x8d\xcf\x3a\ -\xf8\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd0\x3a\xfc\x8d\xc9\x36\ -\xcf\x8d\xbe\x2f\x66\x8d\xad\x25\x10\x8d\xc1\x30\x00\x8d\x82\x0b\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x8d\xb7)\ +\x00\x8d\xa8#\x0a\x8d\xbc.U\x8d\xc85\xc0\x8d\xcf:\ +\xf8\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd0:\xfc\x8d\xc96\ +\xcf\x8d\xbe/f\x8d\xad%\x10\x8d\xc10\x00\x8d\x82\x0b\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ @@ -1037,15 +251,15 @@ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x8d\x9e\x1c\x00\x8d\x00\x00\x00\x8d\xb6\x2a\ -\x2c\x8d\xc4\x33\xa4\x8d\xce\x39\xf4\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xcf\x3a\xf9\x8d\xc6\x34\xb3\x8d\xb8\x2c\x39\x8d\x7e\x08\ +\x00\x00\x00\x00\x00\x8d\x9e\x1c\x00\x8d\x00\x00\x00\x8d\xb6*\ +,\x8d\xc43\xa4\x8d\xce9\xf4\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xcf:\xf9\x8d\xc64\xb3\x8d\xb8,9\x8d~\x08\ \x01\x8d\xa0\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ @@ -1053,766 +267,766 @@ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x8d\xaa\x23\x00\x8d\x9d\x1b\x04\x8d\xbc\x2e\x55\x8d\xca\x36\ -\xd7\x8d\xd2\x3b\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd2\x3c\xff\x8d\xcb\x37\xe2\x8d\xbe\x2f\ -\x6a\x8d\xa7\x21\x0a\x8d\xb1\x27\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x8d\xaa#\x00\x8d\x9d\x1b\x04\x8d\xbc.U\x8d\xca6\ +\xd7\x8d\xd2;\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd2<\xff\x8d\xcb7\xe2\x8d\xbe/\ +j\x8d\xa7!\x0a\x8d\xb1'\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xb0\x27\ -\x00\x8d\xa5\x20\x0a\x8d\xbf\x30\x76\x8d\xcd\x38\xee\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3b\xff\x8d\xd2\x3a\ -\xff\x8d\xd2\x3b\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3b\xff\x8d\xd2\x3b\xff\x8d\xd2\x3a\xff\x8d\xd2\x3b\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xce\x39\ -\xf6\x8d\xc2\x32\x91\x8d\xaf\x26\x13\x8d\xb7\x2a\x00\x8d\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xb0'\ +\x00\x8d\xa5 \x0a\x8d\xbf0v\x8d\xcd8\xee\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3;\xff\x8d\xd2:\ +\xff\x8d\xd2;\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3;\xff\x8d\xd2;\xff\x8d\xd2:\xff\x8d\xd2;\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xce9\ +\xf6\x8d\xc22\x91\x8d\xaf&\x13\x8d\xb7*\x00\x8d\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xb2\x28\x00\x8d\xa9\x22\ -\x0c\x8d\xc1\x31\x88\x8d\xcf\x39\xf7\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd2\x3b\ -\xff\x8d\xd3\x3b\xff\x8c\xd6\x42\xff\x89\xdb\x4e\xff\x86\xe2\x5d\ -\xff\x83\xe8\x6b\xff\x81\xec\x75\xff\x80\xee\x79\xff\x80\xed\x78\ -\xff\x81\xeb\x73\xff\x83\xe7\x6b\xff\x85\xe3\x60\xff\x89\xdc\x51\ -\xff\x8b\xd6\x43\xff\x8d\xd3\x3c\xff\x8d\xd2\x3b\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd0\x3a\xfc\x8d\xc4\x33\xa2\x8d\xaf\x27\x16\x8d\xb8\x2b\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xb2(\x00\x8d\xa9\x22\ +\x0c\x8d\xc11\x88\x8d\xcf9\xf7\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd2;\ +\xff\x8d\xd3;\xff\x8c\xd6B\xff\x89\xdbN\xff\x86\xe2]\ +\xff\x83\xe8k\xff\x81\xecu\xff\x80\xeey\xff\x80\xedx\ +\xff\x81\xebs\xff\x83\xe7k\xff\x85\xe3`\xff\x89\xdcQ\ +\xff\x8b\xd6C\xff\x8d\xd3<\xff\x8d\xd2;\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd0:\xfc\x8d\xc43\xa2\x8d\xaf'\x16\x8d\xb8+\ \x00\x8d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x8d\xb1\x27\x00\x8d\xa5\x21\x0a\x8d\xc1\x31\ -\x8a\x8d\xcf\x3a\xf9\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd2\x3b\xff\x8d\xd4\x3e\xff\x89\xdc\x51\ -\xff\x82\xe9\x6f\xff\x7d\xf5\x88\xff\x7a\xfb\x97\xff\x78\xfe\x9e\ -\xff\x78\xff\xa1\xff\x78\xff\xa1\xff\x78\xff\xa2\xff\x78\xff\xa2\ -\xff\x78\xff\xa1\xff\x78\xff\xa1\xff\x78\xfe\x9f\xff\x79\xfc\x99\ -\xff\x7c\xf6\x8b\xff\x82\xeb\x72\xff\x88\xde\x55\xff\x8c\xd5\x40\ -\xff\x8d\xd2\x3b\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd0\x3a\xfd\x8d\xc4\x33\xa1\x8d\xad\x25\ -\x13\x8d\xb5\x29\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x8d\xb1'\x00\x8d\xa5!\x0a\x8d\xc11\ +\x8a\x8d\xcf:\xf9\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd2;\xff\x8d\xd4>\xff\x89\xdcQ\ +\xff\x82\xe9o\xff}\xf5\x88\xffz\xfb\x97\xffx\xfe\x9e\ +\xffx\xff\xa1\xffx\xff\xa1\xffx\xff\xa2\xffx\xff\xa2\ +\xffx\xff\xa1\xffx\xff\xa1\xffx\xfe\x9f\xffy\xfc\x99\ +\xff|\xf6\x8b\xff\x82\xebr\xff\x88\xdeU\xff\x8c\xd5@\ +\xff\x8d\xd2;\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd0:\xfd\x8d\xc43\xa1\x8d\xad%\ +\x13\x8d\xb5)\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x8d\xaa\x23\x00\x8d\x92\x14\x04\x8d\xbf\x30\x78\x8d\xcf\x39\ -\xf8\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3b\ -\xff\x8d\xd3\x3d\xff\x88\xdd\x53\xff\x80\xef\x7b\xff\x7a\xfb\x98\ -\xff\x78\xff\xa1\xff\x78\xff\xa1\xff\x78\xff\xa1\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa1\xff\x78\xff\xa1\xff\x79\xfc\x9a\xff\x7e\xf2\x82\ -\xff\x87\xe0\x59\xff\x8c\xd4\x3f\xff\x8d\xd3\x3b\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd0\x3a\xfc\x8d\xc2\x32\ -\x91\x8d\xa6\x21\x0a\x8d\xaf\x26\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x8d\xaa#\x00\x8d\x92\x14\x04\x8d\xbf0x\x8d\xcf9\ +\xf8\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3;\ +\xff\x8d\xd3=\xff\x88\xddS\xff\x80\xef{\xffz\xfb\x98\ +\xffx\xff\xa1\xffx\xff\xa1\xffx\xff\xa1\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa1\xffx\xff\xa1\xffy\xfc\x9a\xff~\xf2\x82\ +\xff\x87\xe0Y\xff\x8c\xd4?\xff\x8d\xd3;\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd0:\xfc\x8d\xc22\ +\x91\x8d\xa6!\x0a\x8d\xaf&\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\x9e\x1c\ -\x00\x8d\xf0\x4e\x00\x8d\xbc\x2e\x54\x8d\xcd\x38\xee\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3b\xff\x8b\xd8\x47\ -\xff\x82\xeb\x72\xff\x7a\xfb\x98\xff\x78\xff\xa1\xff\x78\xff\xa1\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa1\ -\xff\x79\xfd\x9b\xff\x80\xee\x79\xff\x8a\xda\x4b\xff\x8d\xd3\x3b\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xcf\x39\ -\xf7\x8d\xbf\x30\x70\x8d\x65\x00\x01\x8d\xa8\x23\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\x30\x00\x00\x8d\xbc\x2d\ -\x00\x8d\xb5\x2a\x29\x8d\xc9\x36\xd4\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3b\xff\x88\xdd\x52\xff\x7d\xf4\x88\ -\xff\x78\xff\xa0\xff\x78\xff\xa1\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa1\xff\x7c\xf7\x8e\xff\x87\xe0\x5a\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xcc\x38\xe7\x8d\xb9\x2c\x42\x8d\xc8\x35\x00\x8d\xa2\x1e\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xae\x25\x00\x8d\xa3\x1e\ -\x09\x8d\xc4\x33\x9f\x8d\xd2\x3b\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x87\xe0\x5a\xff\x7b\xf9\x92\xff\x78\xff\xa1\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa1\xff\x7a\xfb\x98\ -\xff\x85\xe5\x64\xff\x8d\xd3\x3d\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd2\x3c\xff\x8d\xc7\x35\xbd\x8d\xae\x25\x15\x8d\xb4\x29\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x8d\xa5\x20\x00\x8d\xcd\x39\x00\x8d\xbc\x2e\ -\x54\x8d\xce\x39\xf3\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3b\ -\xff\x87\xe0\x5a\xff\x7a\xfa\x95\xff\x78\xff\xa1\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa1\ -\xff\x79\xfc\x9a\xff\x85\xe4\x63\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd0\x3a\xfc\x8d\xc0\x30\x71\x8d\xff\x79\ -\x00\x8d\xa4\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x8d\xb3\x28\x00\x8d\xae\x25\x13\x8d\xc8\x35\ -\xc0\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3b\xff\x88\xdd\x52\ -\xff\x7b\xf9\x93\xff\x78\xff\xa1\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa1\xff\x7a\xfb\x98\xff\x86\xe1\x5b\xff\x8d\xd3\x3b\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xca\x36\xd5\x8d\xb3\x29\ -\x22\x8d\xb7\x2b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x8d\xa5\x20\x00\x8d\xcf\x39\x00\x8d\xbe\x2f\x5d\x8d\xcf\x3a\ -\xf9\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3b\xff\x8b\xd7\x46\xff\x7d\xf4\x87\ -\xff\x78\xff\xa1\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa1\xff\x7b\xf8\x90\xff\x89\xdb\x4d\ -\xff\x8d\xd3\x3b\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd1\x3b\xfe\x8d\xc1\x31\ -\x79\x8d\xff\x6d\x00\x8d\xa5\x20\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x8d\xaf\x26\x00\x8d\xa6\x21\x0b\x8d\xc7\x35\xb5\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3d\xff\x82\xea\x70\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xf6\x95\xff\x78\xfb\x9c\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa1\xff\x7f\xf0\x7d\ -\xff\x8c\xd5\x40\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xca\x36\ -\xcf\x8d\xb1\x28\x1a\x8d\xb4\x29\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x8d\xbe\x2f\x00\x8d\xba\x2d\x3c\x8d\xce\x39\xee\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd2\x3b\xff\x88\xdd\x53\xff\x7a\xfb\x97\xff\x78\xff\xa1\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa2\xff\x7a\xdd\x78\xff\x79\xe6\x83\xff\x78\xff\xa2\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x79\xfd\x9c\ -\xff\x86\xe2\x5d\xff\x8d\xd2\x3b\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xcf\x3a\ -\xfa\x8d\xbe\x2f\x5b\x8d\xcb\x37\x00\x8d\xa3\x1f\x00\x00\x00\x00\ +\x00\x8d\xf0N\x00\x8d\xbc.T\x8d\xcd8\xee\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3;\xff\x8b\xd8G\ +\xff\x82\xebr\xffz\xfb\x98\xffx\xff\xa1\xffx\xff\xa1\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa1\ +\xffy\xfd\x9b\xff\x80\xeey\xff\x8a\xdaK\xff\x8d\xd3;\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xcf9\ +\xf7\x8d\xbf0p\x8de\x00\x01\x8d\xa8#\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d0\x00\x00\x8d\xbc-\ +\x00\x8d\xb5*)\x8d\xc96\xd4\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3;\xff\x88\xddR\xff}\xf4\x88\ +\xffx\xff\xa0\xffx\xff\xa1\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa1\xff|\xf7\x8e\xff\x87\xe0Z\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xcc8\xe7\x8d\xb9,B\x8d\xc85\x00\x8d\xa2\x1e\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xae%\x00\x8d\xa3\x1e\ +\x09\x8d\xc43\x9f\x8d\xd2;\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x87\xe0Z\xff{\xf9\x92\xffx\xff\xa1\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa1\xffz\xfb\x98\ +\xff\x85\xe5d\xff\x8d\xd3=\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd2<\xff\x8d\xc75\xbd\x8d\xae%\x15\x8d\xb4)\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x8d\xa5 \x00\x8d\xcd9\x00\x8d\xbc.\ +T\x8d\xce9\xf3\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3;\ +\xff\x87\xe0Z\xffz\xfa\x95\xffx\xff\xa1\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa1\ +\xffy\xfc\x9a\xff\x85\xe4c\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd0:\xfc\x8d\xc00q\x8d\xffy\ +\x00\x8d\xa4 \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x8d\xb3(\x00\x8d\xae%\x13\x8d\xc85\ +\xc0\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3;\xff\x88\xddR\ +\xff{\xf9\x93\xffx\xff\xa1\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa1\xffz\xfb\x98\xff\x86\xe1[\xff\x8d\xd3;\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xca6\xd5\x8d\xb3)\ +\x22\x8d\xb7+\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x8d\xa5 \x00\x8d\xcf9\x00\x8d\xbe/]\x8d\xcf:\ +\xf9\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3;\xff\x8b\xd7F\xff}\xf4\x87\ +\xffx\xff\xa1\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa1\xff{\xf8\x90\xff\x89\xdbM\ +\xff\x8d\xd3;\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd1;\xfe\x8d\xc11\ +y\x8d\xffm\x00\x8d\xa5 \x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x8d\xaf&\x00\x8d\xa6!\x0b\x8d\xc75\xb5\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3=\xff\x82\xeap\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xf6\x95\xffx\xfb\x9c\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa1\xff\x7f\xf0}\ +\xff\x8c\xd5@\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xca6\ +\xcf\x8d\xb1(\x1a\x8d\xb4)\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x8d\xbe/\x00\x8d\xba-<\x8d\xce9\xee\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd2;\xff\x88\xddS\xffz\xfb\x97\xffx\xff\xa1\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa2\xffz\xddx\xffy\xe6\x83\xffx\xff\xa2\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffy\xfd\x9c\ +\xff\x86\xe2]\xff\x8d\xd2;\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xcf:\ +\xfa\x8d\xbe/[\x8d\xcb7\x00\x8d\xa3\x1f\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xa8\x22\ -\x00\x8d\xff\x5e\x00\x8d\xc3\x32\x81\x8d\xd1\x3b\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd4\x3e\xff\x80\xef\x7b\xff\x78\xff\xa1\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa2\xff\x7a\xd9\x73\xff\x7b\xc5\x5b\xff\x78\xff\xa1\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa1\ -\xff\x7e\xf3\x85\xff\x8c\xd6\x42\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd2\x3c\ -\xff\x8d\xc6\x34\xa5\x8d\x91\x14\x05\x8d\xad\x25\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xb1\x27\ -\x00\x8d\xaa\x23\x0e\x8d\xc9\x36\xc0\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3b\ -\xff\x89\xdc\x4f\xff\x7a\xfb\x97\xff\x78\xff\xa1\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa2\xff\x7a\xe0\x7b\xff\x7d\xa6\x35\xff\x79\xf5\x95\ -\xff\x78\xff\xa1\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x79\xfd\x9c\xff\x87\xe0\x5a\xff\x8d\xd2\x3b\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xcc\x37\xda\x8d\xb5\x29\x1f\x8d\xb6\x2a\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xbb\x2d\ -\x00\x8d\xb9\x2c\x2f\x8d\xcd\x38\xe8\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3b\ -\xff\x83\xe8\x6c\xff\x78\xff\xa1\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa2\xff\x79\xe8\x85\xff\x7e\x95\x20\xff\x7a\xdc\x75\ -\xff\x78\xff\xa2\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa1\xff\x80\xee\x7a\xff\x8d\xd4\x3d\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xcf\x3a\xf6\x8d\xbe\x2f\x49\x8d\xc2\x32\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xa0\x1e\x00\x8d\xc9\x36\ -\x00\x8d\xc0\x30\x5a\x8d\xd0\x3a\xfb\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8c\xd5\x41\ -\xff\x7d\xf4\x87\xff\x78\xff\xa1\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa1\xff\x79\xee\x8c\xff\x7e\x93\x1e\xff\x7c\xb7\x49\ -\xff\x78\xfe\x9f\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa1\xff\x7b\xf8\x91\xff\x8b\xd8\x47\xff\x8d\xd3\x3b\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd1\x3b\xff\x8d\xc3\x32\x77\x8d\xde\x43\x00\x8d\xa7\x21\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xa8\x22\x00\x8d\xf0\x4e\ -\x00\x8d\xc4\x33\x81\x8d\xd2\x3b\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3b\xff\x89\xdb\x4e\ -\xff\x7a\xfb\x97\xff\x78\xff\xa1\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa1\xff\x79\xf3\x92\xff\x7e\x99\x25\xff\x7e\x97\x23\ -\xff\x79\xf0\x8e\xff\x78\xff\xa1\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x79\xfd\x9c\xff\x87\xdf\x57\xff\x8d\xd2\x3b\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xc7\x35\xa0\x8d\x60\x00\x02\x8d\xac\x25\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xac\x24\x00\x8d\x50\x00\ -\x02\x8d\xc7\x35\x9f\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd2\x3a\xff\x86\xe1\x5d\ -\xff\x78\xfe\x9e\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa1\xff\x78\xf7\x97\xff\x7e\xa0\x2e\xff\x7f\x87\x0f\ -\xff\x7b\xd2\x6a\xff\x78\xff\xa2\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x84\xe6\x68\xff\x8d\xd2\x3b\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xca\x36\xbe\x8d\xa9\x22\x0b\x8d\xb0\x27\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xaf\x26\x00\x8d\xa0\x1d\ -\x07\x8d\xc9\x36\xb4\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd2\x3b\xff\x84\xe7\x69\ -\xff\x78\xff\xa1\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xfb\x9b\xff\x7d\xa8\x37\xff\x7f\x83\x0b\ -\xff\x7d\xae\x3e\xff\x78\xfc\x9c\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa2\xff\x81\xed\x76\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xcc\x38\xd2\x8d\xb3\x29\x16\x8d\xb4\x29\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xb1\x27\x00\x8d\xac\x24\ -\x0d\x8d\xcb\x37\xc2\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3b\xff\x82\xeb\x72\ -\xff\x78\xff\xa1\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xfd\x9e\xff\x7d\xb0\x40\xff\x7f\x84\x0c\ -\xff\x7e\x92\x1d\xff\x79\xe9\x86\xff\x78\xff\xa2\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa2\xff\x7f\xf1\x80\xff\x8d\xd4\x3e\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xcd\x38\xdd\x8d\xb7\x2b\x1f\x8d\xb8\x2b\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xb3\x28\x00\x8d\xb0\x27\ -\x10\x8d\xcb\x37\xc9\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x81\xed\x76\ -\xff\x78\xff\xa2\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa2\ -\xff\x78\xff\xa1\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x7c\xb8\x4a\xff\x7f\x85\x0d\ -\xff\x7f\x87\x0f\xff\x7b\xc8\x5e\xff\x78\xff\xa2\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa2\xff\x7e\xf2\x83\xff\x8c\xd4\x3f\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xce\x39\xe1\x8d\xb9\x2c\x23\x8d\xba\x2c\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xb3\x29\x00\x8d\xb1\x27\ -\x11\x8d\xcc\x37\xca\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x81\xed\x77\ -\xff\x78\xff\xa2\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa1\xff\x79\xe7\x84\xff\x7b\xcf\x67\ -\xff\x79\xef\x8d\xff\x78\xfe\x9f\xff\x78\xff\xa2\xff\x78\xff\xa1\ -\xff\x78\xff\xa0\xff\x78\xff\xa1\xff\x7c\xc0\x54\xff\x7f\x85\x0d\ -\xff\x7f\x85\x0d\xff\x7d\xa4\x33\xff\x78\xf8\x98\xff\x78\xff\xa1\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa2\xff\x7e\xf2\x83\xff\x8c\xd4\x3f\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xce\x39\xe0\x8d\xb9\x2c\x22\x8d\xba\x2c\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xb2\x28\x00\x8d\xae\x25\ -\x0e\x8d\xcb\x37\xc5\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3b\xff\x81\xeb\x73\ -\xff\x78\xff\xa1\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa2\xff\x7a\xdb\x75\xff\x7f\x8b\x14\ -\xff\x7e\x98\x23\xff\x7c\xba\x4c\xff\x7a\xe0\x7a\xff\x78\xf8\x98\ -\xff\x78\xff\xa2\xff\x78\xff\xa3\xff\x7b\xc9\x5f\xff\x7f\x86\x0e\ -\xff\x7f\x87\x0e\xff\x7f\x8d\x17\xff\x7a\xe1\x7c\xff\x78\xff\xa2\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa2\xff\x7f\xf0\x7f\xff\x8d\xd4\x3e\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xcd\x38\xdb\x8d\xb7\x2b\x1e\x8d\xb8\x2b\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xb0\x26\x00\x8d\xa5\x20\ -\x09\x8d\xca\x36\xb9\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd2\x3b\xff\x83\xe7\x6a\ -\xff\x78\xff\xa1\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa2\xff\x7a\xe2\x7d\xff\x7f\x8d\x16\ -\xff\x7f\x86\x0d\xff\x7f\x86\x0d\xff\x7f\x8d\x17\xff\x7d\xa6\x34\ -\xff\x7b\xcc\x63\xff\x79\xf0\x8e\xff\x7b\xd0\x67\xff\x7f\x88\x10\ -\xff\x7f\x87\x0f\xff\x7f\x86\x0d\xff\x7c\xbd\x51\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa2\xff\x81\xed\x77\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xcc\x38\xd1\x8d\xb3\x29\x15\x8d\xb5\x29\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xad\x25\x00\x8d\x6e\x00\ -\x02\x8d\xc8\x35\xa2\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd2\x3a\xff\x86\xe1\x5d\ -\xff\x78\xfe\x9e\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa2\xff\x79\xe8\x84\xff\x7e\x90\x1a\ +\x00\x8d\xff^\x00\x8d\xc32\x81\x8d\xd1;\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd4>\xff\x80\xef{\xffx\xff\xa1\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa2\xffz\xd9s\xff{\xc5[\xffx\xff\xa1\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa1\ +\xff~\xf3\x85\xff\x8c\xd6B\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd2<\ +\xff\x8d\xc64\xa5\x8d\x91\x14\x05\x8d\xad%\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xb1'\ +\x00\x8d\xaa#\x0e\x8d\xc96\xc0\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3;\ +\xff\x89\xdcO\xffz\xfb\x97\xffx\xff\xa1\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa2\xffz\xe0{\xff}\xa65\xffy\xf5\x95\ +\xffx\xff\xa1\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffy\xfd\x9c\xff\x87\xe0Z\xff\x8d\xd2;\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xcc7\xda\x8d\xb5)\x1f\x8d\xb6*\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xbb-\ +\x00\x8d\xb9,/\x8d\xcd8\xe8\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3;\ +\xff\x83\xe8l\xffx\xff\xa1\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa2\xffy\xe8\x85\xff~\x95 \xffz\xdcu\ +\xffx\xff\xa2\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa1\xff\x80\xeez\xff\x8d\xd4=\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xcf:\xf6\x8d\xbe/I\x8d\xc22\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xa0\x1e\x00\x8d\xc96\ +\x00\x8d\xc00Z\x8d\xd0:\xfb\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8c\xd5A\ +\xff}\xf4\x87\xffx\xff\xa1\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa1\xffy\xee\x8c\xff~\x93\x1e\xff|\xb7I\ +\xffx\xfe\x9f\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa1\xff{\xf8\x91\xff\x8b\xd8G\xff\x8d\xd3;\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd1;\xff\x8d\xc32w\x8d\xdeC\x00\x8d\xa7!\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xa8\x22\x00\x8d\xf0N\ +\x00\x8d\xc43\x81\x8d\xd2;\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3;\xff\x89\xdbN\ +\xffz\xfb\x97\xffx\xff\xa1\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa1\xffy\xf3\x92\xff~\x99%\xff~\x97#\ +\xffy\xf0\x8e\xffx\xff\xa1\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffy\xfd\x9c\xff\x87\xdfW\xff\x8d\xd2;\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xc75\xa0\x8d`\x00\x02\x8d\xac%\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xac$\x00\x8dP\x00\ +\x02\x8d\xc75\x9f\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd2:\xff\x86\xe1]\ +\xffx\xfe\x9e\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa1\xffx\xf7\x97\xff~\xa0.\xff\x7f\x87\x0f\ +\xff{\xd2j\xffx\xff\xa2\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa0\xff\x84\xe6h\xff\x8d\xd2;\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xca6\xbe\x8d\xa9\x22\x0b\x8d\xb0'\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xaf&\x00\x8d\xa0\x1d\ +\x07\x8d\xc96\xb4\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd2;\xff\x84\xe7i\ +\xffx\xff\xa1\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xfb\x9b\xff}\xa87\xff\x7f\x83\x0b\ +\xff}\xae>\xffx\xfc\x9c\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa2\xff\x81\xedv\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xcc8\xd2\x8d\xb3)\x16\x8d\xb4)\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xb1'\x00\x8d\xac$\ +\x0d\x8d\xcb7\xc2\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3;\xff\x82\xebr\ +\xffx\xff\xa1\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xfd\x9e\xff}\xb0@\xff\x7f\x84\x0c\ +\xff~\x92\x1d\xffy\xe9\x86\xffx\xff\xa2\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa2\xff\x7f\xf1\x80\xff\x8d\xd4>\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xcd8\xdd\x8d\xb7+\x1f\x8d\xb8+\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xb3(\x00\x8d\xb0'\ +\x10\x8d\xcb7\xc9\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x81\xedv\ +\xffx\xff\xa2\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa2\ +\xffx\xff\xa1\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa0\xff|\xb8J\xff\x7f\x85\x0d\ +\xff\x7f\x87\x0f\xff{\xc8^\xffx\xff\xa2\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa2\xff~\xf2\x83\xff\x8c\xd4?\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xce9\xe1\x8d\xb9,#\x8d\xba,\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xb3)\x00\x8d\xb1'\ +\x11\x8d\xcc7\xca\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x81\xedw\ +\xffx\xff\xa2\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa1\xffy\xe7\x84\xff{\xcfg\ +\xffy\xef\x8d\xffx\xfe\x9f\xffx\xff\xa2\xffx\xff\xa1\ +\xffx\xff\xa0\xffx\xff\xa1\xff|\xc0T\xff\x7f\x85\x0d\ +\xff\x7f\x85\x0d\xff}\xa43\xffx\xf8\x98\xffx\xff\xa1\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa2\xff~\xf2\x83\xff\x8c\xd4?\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xce9\xe0\x8d\xb9,\x22\x8d\xba,\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xb2(\x00\x8d\xae%\ +\x0e\x8d\xcb7\xc5\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3;\xff\x81\xebs\ +\xffx\xff\xa1\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa2\xffz\xdbu\xff\x7f\x8b\x14\ +\xff~\x98#\xff|\xbaL\xffz\xe0z\xffx\xf8\x98\ +\xffx\xff\xa2\xffx\xff\xa3\xff{\xc9_\xff\x7f\x86\x0e\ +\xff\x7f\x87\x0e\xff\x7f\x8d\x17\xffz\xe1|\xffx\xff\xa2\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa2\xff\x7f\xf0\x7f\xff\x8d\xd4>\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xcd8\xdb\x8d\xb7+\x1e\x8d\xb8+\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xb0&\x00\x8d\xa5 \ +\x09\x8d\xca6\xb9\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd2;\xff\x83\xe7j\ +\xffx\xff\xa1\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa2\xffz\xe2}\xff\x7f\x8d\x16\ +\xff\x7f\x86\x0d\xff\x7f\x86\x0d\xff\x7f\x8d\x17\xff}\xa64\ +\xff{\xccc\xffy\xf0\x8e\xff{\xd0g\xff\x7f\x88\x10\ +\xff\x7f\x87\x0f\xff\x7f\x86\x0d\xff|\xbdQ\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa2\xff\x81\xedw\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xcc8\xd1\x8d\xb3)\x15\x8d\xb5)\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xad%\x00\x8dn\x00\ +\x02\x8d\xc85\xa2\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd2:\xff\x86\xe1]\ +\xffx\xfe\x9e\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa2\xffy\xe8\x84\xff~\x90\x1a\ \xff\x7f\x86\x0e\xff\x7f\x87\x0f\xff\x7f\x87\x0e\xff\x7f\x85\x0d\ -\xff\x7f\x88\x10\xff\x7e\x99\x24\xff\x7d\xa2\x30\xff\x7f\x88\x10\ -\xff\x7f\x87\x0f\xff\x7f\x86\x0d\xff\x7e\x9c\x29\xff\x79\xf3\x92\ -\xff\x78\xff\xa1\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa1\xff\x83\xe8\x6b\xff\x8d\xd2\x3b\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xca\x37\xc0\x8d\xaa\x23\x0c\x8d\xb1\x27\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xa8\x22\x00\x8d\xf3\x50\ -\x00\x8d\xc5\x33\x82\x8d\xd2\x3b\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3b\xff\x89\xdb\x4e\ -\xff\x7a\xfb\x98\xff\x78\xff\xa1\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa1\xff\x79\xec\x8a\xff\x7e\x93\x1e\ +\xff\x7f\x88\x10\xff~\x99$\xff}\xa20\xff\x7f\x88\x10\ +\xff\x7f\x87\x0f\xff\x7f\x86\x0d\xff~\x9c)\xffy\xf3\x92\ +\xffx\xff\xa1\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa1\xff\x83\xe8k\xff\x8d\xd2;\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xca7\xc0\x8d\xaa#\x0c\x8d\xb1'\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xa8\x22\x00\x8d\xf3P\ +\x00\x8d\xc53\x82\x8d\xd2;\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3;\xff\x89\xdbN\ +\xffz\xfb\x98\xffx\xff\xa1\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa1\xffy\xec\x8a\xff~\x93\x1e\ \xff\x7f\x86\x0e\xff\x7f\x87\x0f\xff\x7f\x87\x0f\xff\x7f\x87\x0f\ \xff\x7f\x87\x0f\xff\x7f\x86\x0e\xff\x7f\x86\x0e\xff\x7f\x87\x0f\ -\xff\x7f\x87\x0f\xff\x7f\x87\x0f\xff\x7f\x8a\x12\xff\x7a\xd7\x70\ -\xff\x78\xff\xa2\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x79\xfe\x9d\xff\x87\xe0\x5a\xff\x8d\xd2\x3b\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xc8\x35\xa5\x8d\x81\x0a\x03\x8d\xad\x25\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xa0\x1d\x00\x8d\xc9\x36\ -\x00\x8d\xc0\x31\x5b\x8d\xd0\x3a\xfc\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8c\xd6\x42\ -\xff\x7d\xf5\x89\xff\x78\xff\xa1\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa1\xff\x79\xf0\x8f\xff\x7e\x97\x22\ +\xff\x7f\x87\x0f\xff\x7f\x87\x0f\xff\x7f\x8a\x12\xffz\xd7p\ +\xffx\xff\xa2\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffy\xfe\x9d\xff\x87\xe0Z\xff\x8d\xd2;\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xc85\xa5\x8d\x81\x0a\x03\x8d\xad%\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xa0\x1d\x00\x8d\xc96\ +\x00\x8d\xc01[\x8d\xd0:\xfc\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8c\xd6B\ +\xff}\xf5\x89\xffx\xff\xa1\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa1\xffy\xf0\x8f\xff~\x97\x22\ \xff\x7f\x86\x0e\xff\x7f\x87\x0f\xff\x7f\x87\x0f\xff\x7f\x87\x0f\ \xff\x7f\x87\x0f\xff\x7f\x87\x0f\xff\x7f\x87\x0f\xff\x7f\x87\x0f\ -\xff\x7f\x87\x0f\xff\x7f\x87\x0f\xff\x7f\x85\x0d\xff\x7c\xb3\x44\ -\xff\x78\xfd\x9e\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa1\xff\x7b\xf9\x92\xff\x8a\xd9\x49\xff\x8d\xd3\x3b\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd2\x3b\xff\x8d\xc4\x33\x7f\x8d\xee\x4c\x00\x8d\xa8\x22\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xbb\x2e\ -\x00\x8d\xba\x2d\x32\x8d\xce\x39\xeb\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x82\xea\x70\xff\x78\xff\xa1\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa1\xff\x79\xf5\x94\xff\x7e\x9c\x28\ +\xff\x7f\x87\x0f\xff\x7f\x87\x0f\xff\x7f\x85\x0d\xff|\xb3D\ +\xffx\xfd\x9e\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa1\xff{\xf9\x92\xff\x8a\xd9I\xff\x8d\xd3;\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd2;\xff\x8d\xc43\x7f\x8d\xeeL\x00\x8d\xa8\x22\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xbb.\ +\x00\x8d\xba-2\x8d\xce9\xeb\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x82\xeap\xffx\xff\xa1\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa1\xffy\xf5\x94\xff~\x9c(\ \xff\x7f\x86\x0d\xff\x7f\x87\x0f\xff\x7f\x87\x0f\xff\x7f\x87\x0f\ \xff\x7f\x87\x0f\xff\x7f\x87\x0f\xff\x7f\x87\x0f\xff\x7f\x87\x0f\ -\xff\x7f\x87\x0f\xff\x7f\x87\x0f\xff\x7f\x86\x0e\xff\x7e\x95\x20\ -\xff\x79\xed\x8a\xff\x78\xff\xa1\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa1\xff\x80\xef\x7c\xff\x8d\xd4\x3e\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd0\x3a\xf8\x8d\xbe\x2f\x4f\x8d\xc4\x33\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xb1\x28\ -\x00\x8d\xad\x25\x11\x8d\xca\x36\xc6\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd2\x3b\ -\xff\x88\xdd\x52\xff\x7a\xfc\x99\xff\x78\xff\xa1\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa1\xff\x78\xf8\x98\xff\x7d\xa2\x30\ +\xff\x7f\x87\x0f\xff\x7f\x87\x0f\xff\x7f\x86\x0e\xff~\x95 \ +\xffy\xed\x8a\xffx\xff\xa1\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa1\xff\x80\xef|\xff\x8d\xd4>\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd0:\xf8\x8d\xbe/O\x8d\xc43\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xb1(\ +\x00\x8d\xad%\x11\x8d\xca6\xc6\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd2;\ +\xff\x88\xddR\xffz\xfc\x99\xffx\xff\xa1\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa1\xffx\xf8\x98\xff}\xa20\ \xff\x7f\x85\x0d\xff\x7f\x87\x0f\xff\x7f\x87\x0f\xff\x7f\x87\x0f\ \xff\x7f\x87\x0f\xff\x7f\x87\x0f\xff\x7f\x87\x0f\xff\x7f\x87\x0f\ \xff\x7f\x87\x0f\xff\x7f\x87\x0f\xff\x7f\x87\x0f\xff\x7f\x87\x10\ -\xff\x7b\xcd\x64\xff\x78\xff\xa2\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x79\xfe\x9e\xff\x86\xe2\x5d\xff\x8d\xd2\x3b\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xcc\x38\xdd\x8d\xb6\x2a\x22\x8d\xb7\x2b\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xa9\x23\ -\x00\x8d\xff\xff\x00\x8d\xc4\x33\x8c\x8d\xd2\x3b\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8c\xd4\x3f\xff\x7f\xf0\x7e\xff\x78\xff\xa1\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xfb\x9b\xff\x7d\xa8\x37\ +\xff{\xcdd\xffx\xff\xa2\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffy\xfe\x9e\xff\x86\xe2]\xff\x8d\xd2;\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xcc8\xdd\x8d\xb6*\x22\x8d\xb7+\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xa9#\ +\x00\x8d\xff\xff\x00\x8d\xc43\x8c\x8d\xd2;\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8c\xd4?\xff\x7f\xf0~\xffx\xff\xa1\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xfb\x9b\xff}\xa87\ \xff\x7f\x85\x0d\xff\x7f\x87\x0f\xff\x7f\x87\x0f\xff\x7f\x87\x0f\ \xff\x7f\x87\x0f\xff\x7f\x87\x0f\xff\x7f\x87\x0f\xff\x7f\x87\x0f\ \xff\x7f\x87\x0f\xff\x7f\x87\x0f\xff\x7f\x87\x0f\xff\x7f\x85\x0d\ -\xff\x7d\xa9\x38\xff\x78\xfa\x9a\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa1\ -\xff\x7d\xf5\x8a\xff\x8b\xd7\x44\xff\x8d\xd3\x3b\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xc6\x34\xa8\x8d\x96\x17\x06\x8d\xad\x25\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x8d\xc0\x31\x00\x8d\xbc\x2e\x44\x8d\xce\x39\xf2\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd2\x3b\xff\x88\xde\x56\xff\x79\xfc\x99\xff\x78\xff\xa1\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xfd\x9e\xff\x7d\xaf\x3f\ +\xff}\xa98\xffx\xfa\x9a\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa1\ +\xff}\xf5\x8a\xff\x8b\xd7D\xff\x8d\xd3;\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xc64\xa8\x8d\x96\x17\x06\x8d\xad%\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x8d\xc01\x00\x8d\xbc.D\x8d\xce9\xf2\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd2;\xff\x88\xdeV\xffy\xfc\x99\xffx\xff\xa1\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xfd\x9e\xff}\xaf?\ \xff\x7f\x85\x0d\xff\x7f\x87\x0f\xff\x7f\x87\x0f\xff\x7f\x87\x0f\ \xff\x7f\x87\x0f\xff\x7f\x87\x0f\xff\x7f\x87\x0f\xff\x7f\x87\x0f\ \xff\x7f\x87\x0f\xff\x7f\x87\x0f\xff\x7f\x87\x0f\xff\x7f\x86\x0e\ -\xff\x7e\x90\x19\xff\x79\xe5\x81\xff\x78\xff\xa2\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xfe\x9e\ -\xff\x85\xe4\x62\xff\x8d\xd3\x3b\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd0\x3a\ -\xfb\x8d\xbf\x30\x60\x8d\xce\x39\x00\x8d\xa4\x1f\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x8d\xb1\x27\x00\x8d\xaa\x23\x0f\x8d\xc8\x35\xbd\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd4\x3e\xff\x81\xed\x77\xff\x78\xff\xa1\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x7c\xb6\x48\ +\xff~\x90\x19\xffy\xe5\x81\xffx\xff\xa2\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xfe\x9e\ +\xff\x85\xe4b\xff\x8d\xd3;\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd0:\ +\xfb\x8d\xbf0`\x8d\xce9\x00\x8d\xa4\x1f\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x8d\xb1'\x00\x8d\xaa#\x0f\x8d\xc85\xbd\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd4>\xff\x81\xedw\xffx\xff\xa1\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xff|\xb6H\ \xff\x7f\x85\x0d\xff\x7f\x87\x0f\xff\x7f\x87\x0f\xff\x7f\x87\x0f\ \xff\x7f\x87\x0f\xff\x7f\x87\x0f\xff\x7f\x8b\x14\xff\x7f\x88\x10\ \xff\x7f\x85\x0d\xff\x7f\x87\x0f\xff\x7f\x87\x0f\xff\x7f\x87\x0f\ -\xff\x7f\x86\x0e\xff\x7c\xc2\x57\xff\x78\xff\xa1\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa1\xff\x7f\xf1\x81\ -\xff\x8c\xd5\x41\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xca\x37\ -\xd6\x8d\xb3\x29\x1f\x8d\xb6\x2a\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x8d\xa7\x21\x00\x8d\xd4\x3d\x00\x8d\xbf\x30\x63\x8d\xd0\x3a\ -\xfb\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3b\xff\x8a\xd9\x4a\xff\x7c\xf6\x8c\ -\xff\x78\xff\xa1\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa1\xff\x7c\xbd\x50\ +\xff\x7f\x86\x0e\xff|\xc2W\xffx\xff\xa1\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa1\xff\x7f\xf1\x81\ +\xff\x8c\xd5A\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xca7\ +\xd6\x8d\xb3)\x1f\x8d\xb6*\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x8d\xa7!\x00\x8d\xd4=\x00\x8d\xbf0c\x8d\xd0:\ +\xfb\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3;\xff\x8a\xd9J\xff|\xf6\x8c\ +\xffx\xff\xa1\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa1\xff|\xbdP\ \xff\x7f\x85\x0d\xff\x7f\x87\x0f\xff\x7f\x87\x0f\xff\x7f\x87\x0f\ -\xff\x7f\x87\x0f\xff\x7f\x86\x0e\xff\x7c\xb3\x45\xff\x7b\xcd\x64\ -\xff\x7d\xa5\x34\xff\x7f\x8d\x16\xff\x7f\x85\x0d\xff\x7f\x86\x0e\ -\xff\x7f\x85\x0d\xff\x7e\xa0\x2e\xff\x79\xf5\x95\xff\x78\xff\xa1\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa1\xff\x7b\xf9\x94\xff\x89\xdc\x51\ -\xff\x8d\xd3\x3b\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd1\x3b\xff\x8d\xc2\x32\ +\xff\x7f\x87\x0f\xff\x7f\x86\x0e\xff|\xb3E\xff{\xcdd\ +\xff}\xa54\xff\x7f\x8d\x16\xff\x7f\x85\x0d\xff\x7f\x86\x0e\ +\xff\x7f\x85\x0d\xff~\xa0.\xffy\xf5\x95\xffx\xff\xa1\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa1\xff{\xf9\x94\xff\x89\xdcQ\ +\xff\x8d\xd3;\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd1;\xff\x8d\xc22\ \x86\x8d\x00\x00\x00\x8d\xa9\x22\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x8d\xb4\x29\x00\x8d\xaf\x26\x17\x8d\xc8\x35\ -\xc6\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3b\xff\x87\xdf\x57\ -\xff\x7a\xfa\x96\xff\x78\xff\xa1\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa2\xff\x7b\xc4\x59\ +\x00\x00\x00\x00\x00\x8d\xb4)\x00\x8d\xaf&\x17\x8d\xc85\ +\xc6\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3;\xff\x87\xdfW\ +\xffz\xfa\x96\xffx\xff\xa1\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa2\xff{\xc4Y\ \xff\x7f\x86\x0d\xff\x7f\x87\x0f\xff\x7f\x87\x0f\xff\x7f\x87\x0f\ -\xff\x7f\x87\x0f\xff\x7f\x85\x0d\xff\x7c\xb9\x4c\xff\x78\xff\xa2\ -\xff\x78\xf8\x98\xff\x7a\xde\x78\xff\x7c\xb8\x4b\xff\x7e\x97\x23\ -\xff\x7f\x87\x0f\xff\x7f\x8a\x12\xff\x7a\xdb\x75\xff\x78\xff\xa2\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa1\xff\x79\xfd\x9b\xff\x85\xe4\x62\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xcb\x37\xde\x8d\xb6\x2a\ -\x2c\x8d\xba\x2d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x8d\xa6\x21\x00\x8d\xd5\x3e\x00\x8d\xbe\x2f\ -\x5e\x8d\xcf\x39\xf7\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x85\xe3\x60\xff\x7a\xfc\x99\xff\x78\xff\xa1\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa2\xff\x7b\xcc\x62\ +\xff\x7f\x87\x0f\xff\x7f\x85\x0d\xff|\xb9L\xffx\xff\xa2\ +\xffx\xf8\x98\xffz\xdex\xff|\xb8K\xff~\x97#\ +\xff\x7f\x87\x0f\xff\x7f\x8a\x12\xffz\xdbu\xffx\xff\xa2\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa1\xffy\xfd\x9b\xff\x85\xe4b\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xcb7\xde\x8d\xb6*\ +,\x8d\xba-\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x8d\xa6!\x00\x8d\xd5>\x00\x8d\xbe/\ +^\x8d\xcf9\xf7\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x85\xe3`\xffz\xfc\x99\xffx\xff\xa1\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa2\xff{\xccb\ \xff\x7f\x87\x0e\xff\x7f\x87\x0f\xff\x7f\x87\x0f\xff\x7f\x87\x0f\ -\xff\x7f\x87\x0f\xff\x7f\x85\x0d\xff\x7c\xb2\x43\xff\x78\xfe\x9f\ -\xff\x78\xff\xa1\xff\x78\xff\xa2\xff\x78\xfe\x9f\xff\x79\xee\x8c\ -\xff\x7b\xcd\x64\xff\x7d\xa5\x33\xff\x7c\xc3\x57\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa1\ -\xff\x79\xfd\x9d\xff\x83\xe8\x6b\xff\x8d\xd4\x3e\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd0\x3a\xfe\x8d\xc1\x31\x7e\x8d\x08\x00\ +\xff\x7f\x87\x0f\xff\x7f\x85\x0d\xff|\xb2C\xffx\xfe\x9f\ +\xffx\xff\xa1\xffx\xff\xa2\xffx\xfe\x9f\xffy\xee\x8c\ +\xff{\xcdd\xff}\xa53\xff|\xc3W\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa1\ +\xffy\xfd\x9d\xff\x83\xe8k\xff\x8d\xd4>\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd0:\xfe\x8d\xc11~\x8d\x08\x00\ \x01\x8d\xa9\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xb1\x27\x00\x8d\xaa\x23\ -\x0e\x8d\xc5\x34\xae\x8d\xd2\x3b\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x85\xe3\x61\xff\x7a\xfb\x97\xff\x78\xff\xa1\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa2\xff\x7b\xd3\x6b\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xb1'\x00\x8d\xaa#\ +\x0e\x8d\xc54\xae\x8d\xd2;\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x85\xe3a\xffz\xfb\x97\xffx\xff\xa1\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa2\xff{\xd3k\ \xff\x7f\x88\x10\xff\x7f\x87\x0f\xff\x7f\x87\x0f\xff\x7f\x87\x0f\ -\xff\x7f\x87\x0f\xff\x7f\x85\x0d\xff\x7d\xab\x3b\xff\x78\xfc\x9c\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa1\ -\xff\x78\xff\xa2\xff\x78\xf8\x98\xff\x79\xf1\x8f\xff\x78\xfe\x9f\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa1\xff\x79\xfc\x9b\ -\xff\x83\xe7\x6a\xff\x8d\xd4\x3e\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xc8\x35\xc5\x8d\xb1\x27\x1b\x8d\xb6\x2a\ +\xff\x7f\x87\x0f\xff\x7f\x85\x0d\xff}\xab;\xffx\xfc\x9c\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa1\ +\xffx\xff\xa2\xffx\xf8\x98\xffy\xf1\x8f\xffx\xfe\x9f\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa1\xffy\xfc\x9b\ +\xff\x83\xe7j\xff\x8d\xd4>\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xc85\xc5\x8d\xb1'\x1b\x8d\xb6*\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\x95\x15\x00\x8d\xc1\x31\ -\x00\x8d\xb7\x2b\x36\x8d\xcb\x37\xdf\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x87\xe0\x59\xff\x7c\xf7\x8e\ -\xff\x78\xff\xa1\xff\x78\xff\xa0\xff\x78\xff\xa2\xff\x7a\xd9\x73\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\x95\x15\x00\x8d\xc11\ +\x00\x8d\xb7+6\x8d\xcb7\xdf\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x87\xe0Y\xff|\xf7\x8e\ +\xffx\xff\xa1\xffx\xff\xa0\xffx\xff\xa2\xffz\xd9s\ \xff\x7f\x8a\x12\xff\x7f\x87\x0f\xff\x7f\x87\x0f\xff\x7f\x87\x0f\ -\xff\x7f\x87\x0f\xff\x7f\x85\x0d\xff\x7d\xa5\x33\xff\x78\xf9\x9a\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa1\xff\x78\xff\xa1\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa1\xff\x7b\xf9\x94\xff\x85\xe3\x61\ -\xff\x8d\xd4\x3d\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xcd\x38\xec\x8d\xbb\x2d\x4b\x8d\xcc\x38\x00\x8d\xa6\x20\ +\xff\x7f\x87\x0f\xff\x7f\x85\x0d\xff}\xa53\xffx\xf9\x9a\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa1\xffx\xff\xa1\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa1\xff{\xf9\x94\xff\x85\xe3a\ +\xff\x8d\xd4=\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xcd8\xec\x8d\xbb-K\x8d\xcc8\x00\x8d\xa6 \ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xa6\x20\ -\x00\x8d\xff\xff\x00\x8d\xbd\x2f\x63\x8d\xce\x39\xf3\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3b\xff\x8a\xda\x4b\ -\xff\x80\xee\x79\xff\x79\xfd\x9b\xff\x78\xff\xa3\xff\x7a\xe0\x7b\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xa6 \ +\x00\x8d\xff\xff\x00\x8d\xbd/c\x8d\xce9\xf3\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3;\xff\x8a\xdaK\ +\xff\x80\xeey\xffy\xfd\x9b\xffx\xff\xa3\xffz\xe0{\ \xff\x7f\x8c\x15\xff\x7f\x87\x0f\xff\x7f\x87\x0f\xff\x7f\x87\x0f\ -\xff\x7f\x87\x0f\xff\x7f\x86\x0d\xff\x7e\x9f\x2c\xff\x78\xf7\x96\ -\xff\x78\xff\xa1\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa1\ -\xff\x79\xfe\x9e\xff\x7e\xf2\x81\xff\x89\xdc\x51\xff\x8d\xd3\x3b\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd0\x3a\ -\xfb\x8d\xc0\x31\x7f\x8d\x8d\x11\x04\x8d\xaa\x23\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x8d\xad\x25\x00\x8d\x9f\x1c\x07\x8d\xc1\x31\x85\x8d\xcf\x3a\ -\xfa\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3b\ -\xff\x8c\xd4\x3f\xff\x87\xe1\x5b\xff\x7e\xf4\x86\xff\x7a\xe4\x7d\ -\xff\x7e\x8e\x18\xff\x7f\x86\x0e\xff\x7f\x87\x0f\xff\x7f\x87\x0f\ -\xff\x7f\x87\x0f\xff\x7f\x86\x0e\xff\x7e\x9a\x25\xff\x79\xf3\x91\ -\xff\x78\xff\xa1\xff\x78\xff\xa0\xff\x78\xff\xa0\xff\x78\xff\xa0\ -\xff\x78\xff\xa1\xff\x78\xff\xa1\xff\x79\xfe\x9d\xff\x7d\xf4\x88\ -\xff\x85\xe3\x60\xff\x8c\xd5\x41\xff\x8d\xd3\x3b\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd1\x3b\xff\x8d\xc4\x33\ -\xa4\x8d\xab\x23\x10\x8d\xb3\x28\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x8d\xb3\x28\x00\x8d\xaa\x23\x0f\x8d\xc3\x32\ -\x98\x8d\xd0\x3a\xfc\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd2\x3b\xff\x8c\xd6\x42\xff\x88\xd6\x4c\ -\xff\x85\xab\x26\xff\x81\x94\x17\xff\x80\x8a\x11\xff\x7f\x87\x0f\ -\xff\x7f\x86\x0e\xff\x7f\x85\x0d\xff\x7e\x94\x1f\xff\x79\xee\x8d\ -\xff\x78\xff\xa3\xff\x78\xff\xa1\xff\x78\xff\xa0\xff\x79\xfd\x9c\ -\xff\x7b\xf9\x92\xff\x80\xef\x7c\xff\x86\xe1\x5c\xff\x8c\xd6\x43\ -\xff\x8d\xd3\x3b\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd1\x3b\xff\x8d\xc5\x34\xb3\x8d\xb1\x28\ -\x1c\x8d\xbc\x2d\x00\x8d\x34\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xb5\x29\x00\x8d\xae\x25\ -\x13\x8d\xc3\x32\x9b\x8d\xd0\x3a\xfb\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3b\ -\xff\x8d\xd3\x3c\xff\x8c\xcc\x38\xff\x89\xc0\x31\xff\x87\xb3\x29\ -\xff\x85\xa9\x23\xff\x84\xa2\x1e\xff\x83\xa6\x26\xff\x7f\xe4\x71\ -\xff\x7f\xf1\x7f\xff\x81\xec\x76\xff\x84\xe6\x68\xff\x87\xdf\x58\ -\xff\x8a\xd8\x48\xff\x8d\xd4\x3e\xff\x8d\xd2\x3b\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd1\x3b\xfe\x8d\xc5\x34\xb1\x8d\xb2\x28\x20\x8d\xbf\x30\ +\xff\x7f\x87\x0f\xff\x7f\x86\x0d\xff~\x9f,\xffx\xf7\x96\ +\xffx\xff\xa1\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa1\ +\xffy\xfe\x9e\xff~\xf2\x81\xff\x89\xdcQ\xff\x8d\xd3;\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd0:\ +\xfb\x8d\xc01\x7f\x8d\x8d\x11\x04\x8d\xaa#\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x8d\xad%\x00\x8d\x9f\x1c\x07\x8d\xc11\x85\x8d\xcf:\ +\xfa\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3;\ +\xff\x8c\xd4?\xff\x87\xe1[\xff~\xf4\x86\xffz\xe4}\ +\xff~\x8e\x18\xff\x7f\x86\x0e\xff\x7f\x87\x0f\xff\x7f\x87\x0f\ +\xff\x7f\x87\x0f\xff\x7f\x86\x0e\xff~\x9a%\xffy\xf3\x91\ +\xffx\xff\xa1\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ +\xffx\xff\xa1\xffx\xff\xa1\xffy\xfe\x9d\xff}\xf4\x88\ +\xff\x85\xe3`\xff\x8c\xd5A\xff\x8d\xd3;\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd1;\xff\x8d\xc43\ +\xa4\x8d\xab#\x10\x8d\xb3(\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x8d\xb3(\x00\x8d\xaa#\x0f\x8d\xc32\ +\x98\x8d\xd0:\xfc\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd2;\xff\x8c\xd6B\xff\x88\xd6L\ +\xff\x85\xab&\xff\x81\x94\x17\xff\x80\x8a\x11\xff\x7f\x87\x0f\ +\xff\x7f\x86\x0e\xff\x7f\x85\x0d\xff~\x94\x1f\xffy\xee\x8d\ +\xffx\xff\xa3\xffx\xff\xa1\xffx\xff\xa0\xffy\xfd\x9c\ +\xff{\xf9\x92\xff\x80\xef|\xff\x86\xe1\x5c\xff\x8c\xd6C\ +\xff\x8d\xd3;\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd1;\xff\x8d\xc54\xb3\x8d\xb1(\ +\x1c\x8d\xbc-\x00\x8d4\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xb5)\x00\x8d\xae%\ +\x13\x8d\xc32\x9b\x8d\xd0:\xfb\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3;\ +\xff\x8d\xd3<\xff\x8c\xcc8\xff\x89\xc01\xff\x87\xb3)\ +\xff\x85\xa9#\xff\x84\xa2\x1e\xff\x83\xa6&\xff\x7f\xe4q\ +\xff\x7f\xf1\x7f\xff\x81\xecv\xff\x84\xe6h\xff\x87\xdfX\ +\xff\x8a\xd8H\xff\x8d\xd4>\xff\x8d\xd2;\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd1;\xfe\x8d\xc54\xb1\x8d\xb2( \x8d\xbf0\ \x00\x8d\x8d\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xb4\x29\ -\x00\x8d\xad\x25\x11\x8d\xc2\x31\x8c\x8d\xce\x39\xf5\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd4\x3d\xff\x8d\xd4\x3d\ -\xff\x8d\xd3\x3c\xff\x8d\xd2\x3c\xff\x8d\xd2\x3b\xff\x8d\xd4\x3e\ -\xff\x8d\xd4\x3d\xff\x8d\xd3\x3c\xff\x8d\xd2\x3b\xff\x8d\xd2\x3b\ -\xff\x8d\xd3\x3b\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xcf\x3a\ -\xfa\x8d\xc3\x33\xa0\x8d\xb0\x27\x1a\x8d\xbe\x30\x00\x8d\x85\x0c\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xb4)\ +\x00\x8d\xad%\x11\x8d\xc21\x8c\x8d\xce9\xf5\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd4=\xff\x8d\xd4=\ +\xff\x8d\xd3<\xff\x8d\xd2<\xff\x8d\xd2;\xff\x8d\xd4>\ +\xff\x8d\xd4=\xff\x8d\xd3<\xff\x8d\xd2;\xff\x8d\xd2;\ +\xff\x8d\xd3;\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xcf:\ +\xfa\x8d\xc33\xa0\x8d\xb0'\x1a\x8d\xbe0\x00\x8d\x85\x0c\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x8d\xb0\x27\x00\x8d\xa5\x20\x09\x8d\xbe\x2f\x68\x8d\xcb\x37\ -\xe2\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xcd\x38\xed\x8d\xc0\x31\ -\x7e\x8d\xad\x24\x0f\x8d\xb4\x29\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x8d\xb0'\x00\x8d\xa5 \x09\x8d\xbe/h\x8d\xcb7\ +\xe2\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xcd8\xed\x8d\xc01\ +~\x8d\xad$\x0f\x8d\xb4)\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\x20\x00\ -\x00\x8d\x1e\x00\x00\x8d\x0f\x00\x00\x8d\xff\x9a\x00\x8d\xb5\x2a\ -\x40\x8d\xbe\x2f\xe5\x8d\xcb\x37\xff\x8d\xd2\x3b\xff\x8d\xd4\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd0\x3a\xfd\x8d\xc8\x35\xc7\x8d\xbb\x2d\x4d\x8d\x9f\x1c\ -\x04\x8d\xaa\x23\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d \x00\ +\x00\x8d\x1e\x00\x00\x8d\x0f\x00\x00\x8d\xff\x9a\x00\x8d\xb5*\ +@\x8d\xbe/\xe5\x8d\xcb7\xff\x8d\xd2;\xff\x8d\xd4<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd0:\xfd\x8d\xc85\xc7\x8d\xbb-M\x8d\x9f\x1c\ +\x04\x8d\xaa#\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xad\x25\x00\x8d\xa2\x1e\ -\x04\x8d\xc0\x30\x67\x8d\xc7\x34\x9a\x8d\xc4\x33\x73\x8d\xb9\x2c\ -\x65\x8d\xad\x25\xe7\x8d\xae\x26\xff\x8d\xb8\x2b\xff\x8d\xc5\x33\ -\xff\x8d\xcf\x3a\xff\x8d\xd3\x3c\xff\x8d\xd4\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd1\x3b\xfe\x8d\xcb\x37\ -\xdc\x8d\xc1\x31\x7b\x8d\xb1\x27\x1a\x8d\xff\x53\x00\x8d\x7f\x0f\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xad%\x00\x8d\xa2\x1e\ +\x04\x8d\xc00g\x8d\xc74\x9a\x8d\xc43s\x8d\xb9,\ +e\x8d\xad%\xe7\x8d\xae&\xff\x8d\xb8+\xff\x8d\xc53\ +\xff\x8d\xcf:\xff\x8d\xd3<\xff\x8d\xd4<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd1;\xfe\x8d\xcb7\ +\xdc\x8d\xc11{\x8d\xb1'\x1a\x8d\xffS\x00\x8d\x7f\x0f\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xb6\x2a\x00\x8d\xb4\x29\ -\x1d\x8d\xcb\x37\xd9\x8d\xd3\x3c\xff\x8d\xd1\x3b\xfe\x8d\xcf\x3a\ -\xfa\x8d\xca\x37\xfe\x8d\xc4\x33\xff\x8d\xbd\x2e\xff\x8d\xb8\x2b\ -\xff\x8d\xb9\x2c\xff\x8d\xc0\x30\xff\x8d\xc8\x35\xff\x8d\xce\x39\ -\xff\x8d\xd2\x3b\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd0\x3a\xfb\x8d\xca\x37\xd4\x8d\xc2\x31\x80\x8d\xb5\x2a\ -\x27\x8d\x8b\x10\x02\x8d\x9f\x1c\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xb6*\x00\x8d\xb4)\ +\x1d\x8d\xcb7\xd9\x8d\xd3<\xff\x8d\xd1;\xfe\x8d\xcf:\ +\xfa\x8d\xca7\xfe\x8d\xc43\xff\x8d\xbd.\xff\x8d\xb8+\ +\xff\x8d\xb9,\xff\x8d\xc00\xff\x8d\xc85\xff\x8d\xce9\ +\xff\x8d\xd2;\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd0:\xfb\x8d\xca7\xd4\x8d\xc21\x80\x8d\xb5*\ +'\x8d\x8b\x10\x02\x8d\x9f\x1c\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xbf\x30\x00\x8d\xbc\x2e\ -\x3c\x8d\xcf\x39\xf1\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd4\x3c\xff\x8d\xd4\x3c\xff\x8d\xd3\x3c\xff\x8d\xd2\x3b\ -\xff\x8d\xcf\x39\xff\x8d\xca\x36\xff\x8d\xc6\x34\xff\x8d\xc4\x33\ -\xff\x8d\xc4\x33\xff\x8d\xc6\x34\xff\x8d\xc8\x35\xff\x8d\xcb\x37\ -\xff\x8d\xce\x39\xff\x8d\xd0\x3a\xff\x8d\xd1\x3b\xff\x8d\xd2\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd1\x3b\xff\x8d\xcf\x3a\xf7\x8d\xcc\x38\xdc\x8d\xc7\x34\ -\xa9\x8d\xbf\x30\x5f\x8d\xb3\x28\x1d\x8d\x86\x0d\x01\x8d\x99\x19\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xbf0\x00\x8d\xbc.\ +<\x8d\xcf9\xf1\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd4<\xff\x8d\xd4<\xff\x8d\xd3<\xff\x8d\xd2;\ +\xff\x8d\xcf9\xff\x8d\xca6\xff\x8d\xc64\xff\x8d\xc43\ +\xff\x8d\xc43\xff\x8d\xc64\xff\x8d\xc85\xff\x8d\xcb7\ +\xff\x8d\xce9\xff\x8d\xd0:\xff\x8d\xd1;\xff\x8d\xd2<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd1;\xff\x8d\xcf:\xf7\x8d\xcc8\xdc\x8d\xc74\ +\xa9\x8d\xbf0_\x8d\xb3(\x1d\x8d\x86\x0d\x01\x8d\x99\x19\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ @@ -1820,15 +1034,15 @@ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x8d\xa1\x1e\x00\x8d\xcd\x38\x00\x8d\xc1\x31\ -\x64\x8d\xd1\x3b\xfe\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd4\x3c\xff\x8d\xd4\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd1\x3b\xff\x8d\xcf\x39\xff\x8d\xcb\x37\xff\x8d\xc7\x35\ -\xff\x8d\xc3\x32\xff\x8d\xbf\x30\xff\x8d\xbd\x2f\xff\x8d\xbc\x2e\ -\xff\x8d\xbb\x2e\xff\x8d\xbc\x2e\xff\x8d\xbd\x2e\xff\x8d\xbc\x2e\ -\xed\x8d\xc0\x31\x81\x8d\xbe\x2f\x48\x8d\xb5\x2a\x20\x8d\x9f\x1d\ -\x06\x8d\xcb\x34\x00\x8d\x63\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x8d\xa1\x1e\x00\x8d\xcd8\x00\x8d\xc11\ +d\x8d\xd1;\xfe\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd4<\xff\x8d\xd4<\xff\x8d\xd3<\ +\xff\x8d\xd1;\xff\x8d\xcf9\xff\x8d\xcb7\xff\x8d\xc75\ +\xff\x8d\xc32\xff\x8d\xbf0\xff\x8d\xbd/\xff\x8d\xbc.\ +\xff\x8d\xbb.\xff\x8d\xbc.\xff\x8d\xbd.\xff\x8d\xbc.\ +\xed\x8d\xc01\x81\x8d\xbe/H\x8d\xb5* \x8d\x9f\x1d\ +\x06\x8d\xcb4\x00\x8dc\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ @@ -1836,14 +1050,14 @@ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x8d\xaa\x23\x00\x8d\xff\x99\x00\x8d\xc5\x34\ -\x8f\x8d\xd2\x3b\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd2\x3b\xff\x8d\xcf\x39\xff\x8d\xca\x36\ -\xff\x8d\xc4\x33\xff\x8d\xbd\x2f\xff\x8d\xb6\x2a\xff\x8d\xb1\x27\ -\xd7\x8d\xb2\x28\x38\x8d\xa9\x22\x0f\x8d\x85\x10\x02\x8d\xa7\x1b\ +\x00\x00\x00\x00\x00\x8d\xaa#\x00\x8d\xff\x99\x00\x8d\xc54\ +\x8f\x8d\xd2;\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd2;\xff\x8d\xcf9\xff\x8d\xca6\ +\xff\x8d\xc43\xff\x8d\xbd/\xff\x8d\xb6*\xff\x8d\xb1'\ +\xd7\x8d\xb2(8\x8d\xa9\x22\x0f\x8d\x85\x10\x02\x8d\xa7\x1b\ \x00\x8d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ @@ -1852,15 +1066,15 @@ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x8d\xae\x26\x00\x8d\xa3\x1f\x09\x8d\xc9\x36\ -\xb8\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd4\x3c\xff\x8d\xd3\x3c\xff\x8d\xd2\x3b\xff\x8d\xcf\x3a\ -\xfc\x8d\xcd\x38\xe8\x8d\xca\x37\xcd\x8d\xc5\x34\xa5\x8d\xbb\x2d\ -\x3b\x8d\xc9\x35\x00\x8d\xa8\x22\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x8d\xae&\x00\x8d\xa3\x1f\x09\x8d\xc96\ +\xb8\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd4<\xff\x8d\xd3<\xff\x8d\xd2;\xff\x8d\xcf:\ +\xfc\x8d\xcd8\xe8\x8d\xca7\xcd\x8d\xc54\xa5\x8d\xbb-\ +;\x8d\xc95\x00\x8d\xa8\x22\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ @@ -1868,15 +1082,15 @@ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x8d\xb6\x2a\x00\x8d\xb5\x2a\x1d\x8d\xcc\x38\ -\xd9\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd2\x3b\xff\x8d\xc4\x33\ -\x8b\x8d\xff\x65\x00\x8d\xa9\x22\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x8d\xb6*\x00\x8d\xb5*\x1d\x8d\xcc8\ +\xd9\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd2;\xff\x8d\xc43\ +\x8b\x8d\xffe\x00\x8d\xa9\x22\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ @@ -1884,15 +1098,15 @@ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x8d\xbd\x2f\x00\x8d\xbc\x2e\x35\x8d\xce\x39\ -\xef\x8d\xd4\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd1\x3b\xff\x8d\xc3\x32\ -\x72\x8d\xd8\x3f\x00\x8d\xa7\x21\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x8d\xbd/\x00\x8d\xbc.5\x8d\xce9\ +\xef\x8d\xd4<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd1;\xff\x8d\xc32\ +r\x8d\xd8?\x00\x8d\xa7!\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ @@ -1900,15 +1114,15 @@ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x8d\xb8\x2c\x00\x8d\xb7\x2b\x1f\x8d\xc7\x35\ -\xb7\x8d\xce\x39\xe9\x8d\xd0\x3a\xf9\x8d\xd2\x3b\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xcf\x3a\xf6\x8d\xbe\x2f\ -\x49\x8d\xc3\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x8d\xb8,\x00\x8d\xb7+\x1f\x8d\xc75\ +\xb7\x8d\xce9\xe9\x8d\xd0:\xf9\x8d\xd2;\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xcf:\xf6\x8d\xbe/\ +I\x8d\xc32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ @@ -1916,15 +1130,15 @@ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x8d\x8e\x13\x00\x8d\x5a\x00\x00\x8d\xae\x26\ -\x10\x8d\xb9\x2c\x2d\x8d\xbf\x30\x50\x8d\xc3\x33\x7a\x8d\xc7\x35\ -\xa5\x8d\xcb\x37\xcb\x8d\xcd\x39\xe7\x8d\xd0\x3a\xf9\x8d\xd2\x3b\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xcd\x38\xe3\x8d\xb8\x2b\ -\x27\x8d\xb9\x2c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x8d\x8e\x13\x00\x8dZ\x00\x00\x8d\xae&\ +\x10\x8d\xb9,-\x8d\xbf0P\x8d\xc33z\x8d\xc75\ +\xa5\x8d\xcb7\xcb\x8d\xcd9\xe7\x8d\xd0:\xf9\x8d\xd2;\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xcd8\xe3\x8d\xb8+\ +'\x8d\xb9,\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ @@ -1933,14 +1147,14 @@ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x8d\x4c\x00\x00\x8d\xda\x33\x00\x8d\x93\x17\ -\x04\x8d\xaf\x26\x12\x8d\xb9\x2c\x2c\x8d\xbf\x30\x4f\x8d\xc3\x32\ -\x79\x8d\xc7\x35\xa4\x8d\xca\x37\xc9\x8d\xcd\x38\xe6\x8d\xd0\x3a\ -\xf8\x8d\xd1\x3b\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xca\x36\xc5\x8d\xac\x24\ -\x0f\x8d\xb1\x27\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x8dL\x00\x00\x8d\xda3\x00\x8d\x93\x17\ +\x04\x8d\xaf&\x12\x8d\xb9,,\x8d\xbf0O\x8d\xc32\ +y\x8d\xc75\xa4\x8d\xca7\xc9\x8d\xcd8\xe6\x8d\xd0:\ +\xf8\x8d\xd1;\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xca6\xc5\x8d\xac$\ +\x0f\x8d\xb1'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ @@ -1950,13 +1164,13 @@ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\x32\x00\x00\x8d\xd9\x2e\ -\x00\x8d\x90\x16\x03\x8d\xaf\x26\x11\x8d\xb9\x2c\x2a\x8d\xbf\x30\ -\x4d\x8d\xc3\x32\x77\x8d\xc7\x35\xa2\x8d\xca\x37\xc8\x8d\xcd\x38\ -\xe5\x8d\xd0\x3a\xf8\x8d\xd1\x3b\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd3\x3c\xff\x8d\xc7\x34\x9f\x8d\x5e\x00\ -\x02\x8d\xac\x24\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d2\x00\x00\x8d\xd9.\ +\x00\x8d\x90\x16\x03\x8d\xaf&\x11\x8d\xb9,*\x8d\xbf0\ +M\x8d\xc32w\x8d\xc75\xa2\x8d\xca7\xc8\x8d\xcd8\ +\xe5\x8d\xd0:\xf8\x8d\xd1;\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ +\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xc74\x9f\x8d^\x00\ +\x02\x8d\xac$\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ @@ -1968,11 +1182,11 @@ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\x0d\x00\ -\x00\x8d\xd6\x29\x00\x8d\x8c\x15\x03\x8d\xae\x25\x11\x8d\xb9\x2c\ -\x29\x8d\xbf\x30\x4b\x8d\xc3\x32\x75\x8d\xc7\x35\x9f\x8d\xca\x37\ -\xc5\x8d\xcd\x38\xe3\x8d\xcf\x3a\xf5\x8d\xd1\x3b\xfe\x8d\xd2\x3c\ -\xff\x8d\xd3\x3c\xff\x8d\xd1\x3b\xff\x8d\xc3\x32\x73\x8d\xd9\x40\ -\x00\x8d\xa6\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x8d\xd6)\x00\x8d\x8c\x15\x03\x8d\xae%\x11\x8d\xb9,\ +)\x8d\xbf0K\x8d\xc32u\x8d\xc75\x9f\x8d\xca7\ +\xc5\x8d\xcd8\xe3\x8d\xcf:\xf5\x8d\xd1;\xfe\x8d\xd2<\ +\xff\x8d\xd3<\xff\x8d\xd1;\xff\x8d\xc32s\x8d\xd9@\ +\x00\x8d\xa6 \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ @@ -1985,9 +1199,9 @@ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x8d\x00\x00\x00\x8d\xce\x25\x00\x8d\x89\x13\x03\x8d\xad\x25\ -\x12\x8d\xb8\x2c\x2d\x8d\xbe\x30\x54\x8d\xc3\x32\x83\x8d\xc7\x34\ -\xb4\x8d\xca\x37\xe2\x8d\xc8\x35\xe0\x8d\xba\x2d\x3c\x8d\xbe\x2f\ +\x00\x8d\x00\x00\x00\x8d\xce%\x00\x8d\x89\x13\x03\x8d\xad%\ +\x12\x8d\xb8,-\x8d\xbe0T\x8d\xc32\x83\x8d\xc74\ +\xb4\x8d\xca7\xe2\x8d\xc85\xe0\x8d\xba-<\x8d\xbe/\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ @@ -1996,13 +1210,13 @@ \x00\xff\xff\xff\x00\xff\xff\xff\x00\xff\xff\xff\x01\x7f\xff\xfe\ \x00\x00\x7f\xff\xfe\xff\xff\xf8\x00\x00\x1f\xff\xff\xff\xff\xe0\ \x00\x00\x07\xff\xff\xff\xff\x80\x00\x00\x01\xff\xff\xff\xff\x00\ -\x00\x00\x00\x7f\xff\xff\xfc\x00\x00\x00\x00\x3f\xff\xff\xf8\x00\ +\x00\x00\x00\x7f\xff\xff\xfc\x00\x00\x00\x00?\xff\xff\xf8\x00\ \x00\x00\x00\x1f\xff\xff\xf0\x00\x00\x00\x00\x0f\xff\xff\xe0\x00\ \x00\x00\x00\x07\xff\xff\xc0\x00\x00\x00\x00\x03\xff\xff\xc0\x00\ \x00\x00\x00\x01\xff\xff\x80\x00\x00\x00\x00\x01\xff\xff\x00\x00\ \x00\x00\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\xff\xfe\x00\x00\ \x00\x00\x00\x00\x7f\xfe\x00\x00\x00\x00\x00\x00\x7f\xfc\x00\x00\ -\x00\x00\x00\x00\x3f\xfc\x00\x00\x00\x00\x00\x00\x3f\xfc\x00\x00\ +\x00\x00\x00\x00?\xfc\x00\x00\x00\x00\x00\x00?\xfc\x00\x00\ \x00\x00\x00\x00\x1f\xf8\x00\x00\x00\x00\x00\x00\x1f\xf8\x00\x00\ \x00\x00\x00\x00\x1f\xf8\x00\x00\x00\x00\x00\x00\x1f\xf8\x00\x00\ \x00\x00\x00\x00\x0f\xf0\x00\x00\x00\x00\x00\x00\x0f\xf0\x00\x00\ @@ -2012,1081 +1226,1086 @@ \x00\x00\x00\x00\x0f\xf8\x00\x00\x00\x00\x00\x00\x0f\xf8\x00\x00\ \x00\x00\x00\x00\x1f\xf8\x00\x00\x00\x00\x00\x00\x1f\xf8\x00\x00\ \x00\x00\x00\x00\x1f\xfc\x00\x00\x00\x00\x00\x00\x1f\xfc\x00\x00\ -\x00\x00\x00\x00\x3f\xfc\x00\x00\x00\x00\x00\x00\x3f\xfe\x00\x00\ +\x00\x00\x00\x00?\xfc\x00\x00\x00\x00\x00\x00?\xfe\x00\x00\ \x00\x00\x00\x00\x7f\xfe\x00\x00\x00\x00\x00\x00\x7f\xff\x00\x00\ \x00\x00\x00\x00\x7f\xff\x00\x00\x00\x00\x00\x00\xff\xff\x80\x00\ \x00\x00\x00\x01\xff\xff\xc0\x00\x00\x00\x00\x01\xff\xff\xc0\x00\ \x00\x00\x00\x03\xff\xff\xe0\x00\x00\x00\x00\x07\xff\xff\xf0\x00\ \x00\x00\x00\x0f\xff\xff\xf8\x00\x00\x00\x00\x1f\xff\xff\xfc\x00\ -\x00\x00\x00\x3f\xff\xff\xff\x00\x00\x00\x00\x7f\xff\xff\xf0\x00\ +\x00\x00\x00?\xff\xff\xff\x00\x00\x00\x00\x7f\xff\xff\xf0\x00\ \x00\x00\x01\xff\xff\xff\xf0\x00\x00\x00\x03\xff\xff\xff\xf0\x00\ \x00\x00\x0f\xff\xff\xff\xf0\x00\x00\x00\x7f\xff\xff\xff\xf0\x00\ \x00\x00\xff\xff\xff\xff\xe0\x00\x00\x00\x7f\xff\xff\xff\xe0\x00\ \x00\x00\x7f\xff\xff\xff\xe0\x00\x00\x00\x7f\xff\xff\xff\xe0\x00\ \x00\x00\x7f\xff\xff\xff\xf0\x00\x00\x00\x7f\xff\xff\xff\xff\x00\ \x00\x00\x7f\xff\xff\xff\xff\xf8\x00\x00\x7f\xff\xff\xff\xff\xff\ -\xc0\x00\xff\xff\xff\x7f\xff\xff\xfe\x00\xff\xff\xfe\x89\x50\x4e\ -\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\x00\x01\ -\x00\x00\x00\x01\x00\x08\x06\x00\x00\x00\x5c\x72\xa8\x66\x00\x00\ -\x40\x4b\x49\x44\x41\x54\x78\xda\xed\xbd\x79\x9c\x1d\xd7\x5d\xe0\ -\xfb\x3d\xe7\x54\xd5\xdd\x7b\x53\x77\x6b\x97\x25\xb5\xb5\x78\x89\ -\xb3\x98\x2c\x24\x84\x90\x0d\xcf\x0c\x90\x47\x20\x31\x84\x10\x18\ -\x60\x58\x27\x0c\x79\x13\xf6\xc9\x83\x07\x0c\x5b\x86\x1e\x96\xc0\ -\x10\xde\x30\x90\x04\x02\x44\x26\x0b\x09\x4c\x20\x2f\x84\x00\x21\ -\x21\x89\x63\x67\xb3\xbc\x45\xb6\x64\x59\x96\xb5\x74\xb7\xba\xfb\ -\x6e\xb5\x9c\x73\xe6\x8f\xba\xb7\xd5\x92\x5a\x52\x4b\xba\xb7\xaa\ -\xee\xed\xfa\x7e\x3e\x6d\x6b\x69\x75\x9d\x5b\x55\xbf\xf5\xfc\x7e\ -\xbf\x23\xc8\xc9\xb9\x01\xb6\xbc\x7d\x16\xbf\x01\x23\xd3\x14\xa4\ -\x62\x02\xc1\x0e\x21\x39\x20\x25\x77\x48\xc5\xcd\x42\x31\x82\x45\ -\xea\x90\x27\x8d\xe1\xdd\x42\xf0\x31\x20\x3c\x72\xf7\x9b\xd3\x5e\ -\xfa\x86\xc4\x5a\x7b\xc1\xef\x45\xe7\x0f\x54\xe7\xf7\x5a\x08\x91\ -\xf6\x1a\x73\x32\xca\x96\xdf\x9e\x65\xf9\x2b\x30\xf5\x02\x0a\x42\ -\x30\x8a\x60\xbb\x90\xec\x96\x92\x5b\x85\xe2\x80\x72\xd8\xa7\x1c\ -\xb6\x2b\x8f\x09\xc7\xa3\xa4\x3c\xa4\xec\xbc\x59\x41\x13\x9a\x0b\ -\x9c\x88\x02\x7e\xd6\x1a\xde\x25\x24\xe4\x4a\x20\x79\x3a\xf2\xee\ -\x01\x16\x08\x9d\x55\x7f\x97\x4b\x7e\xce\x0a\x37\xfd\xc9\x6c\xfc\ -\x0b\x41\x41\x48\xc6\x84\x60\x9b\x90\xcc\x54\xb7\x71\x50\x28\x6e\ -\x55\x0e\x7b\x95\xc3\x4e\xe5\x31\xee\x78\x14\x95\x87\x50\x2e\x48\ -\x15\x7f\x5d\x8c\x5b\x04\xe5\xb1\x7d\xe9\x24\xff\x29\x0a\xf8\x07\ -\xe0\x78\xda\x9f\x71\x03\x13\x76\x7f\xe1\x74\x2c\xbe\x4e\x7b\x45\ -\x39\xe9\xb1\xf3\x8f\x67\x31\x11\xc2\x29\xe2\x75\xdc\xf8\xad\x42\ -\xb2\x4f\x4a\xf6\x4b\xc5\xad\xd2\x61\x46\xb9\x6c\x57\xee\xfa\x84\ -\xfd\x72\x14\x2a\xe0\x55\xb8\x35\x0a\x79\x2e\xb9\x02\x48\x85\x8e\ -\xbc\xaf\xc4\x01\xb9\xd5\xdf\x60\xec\xf8\xa3\x59\x82\x36\xa2\x34\ -\x42\x41\x4a\xc6\x3b\x6e\xfc\x8c\x94\xdc\x2a\x1d\x0e\x48\xc5\x3e\ -\xe5\xb2\xb5\xe3\xc6\x7b\x8e\xdb\x11\x76\x07\x84\xbc\xf1\xeb\x37\ -\x17\x60\xe9\x14\x6f\x51\x1e\xbf\x1c\xf9\x79\x18\x90\x36\xce\x8d\ -\xff\x88\x9c\xac\xb2\xe3\x8f\x67\xb1\x1a\xe1\x96\x28\x0a\xc1\xb8\ -\x90\xec\x10\x82\xbd\xc5\x1a\xb7\x49\xc5\x01\xe9\x32\xa3\x1c\xb6\ -\x39\x1e\xe3\xca\xc3\x73\x3c\x84\x74\x40\xf5\x48\xd8\xd7\x42\x79\ -\x20\x14\xb7\xb7\x97\xf0\x9c\x02\x41\xda\xf7\x68\xa3\x93\x2b\x80\ -\x21\xe1\xa6\x3f\x99\xc5\x5a\x84\x94\x14\x85\x64\x42\x48\xb6\x0b\ -\xc1\x3e\xa1\x38\x20\x25\xb7\x49\x97\xdd\xca\x61\x87\xe3\x31\xaa\ -\x3c\x0a\x8e\x07\x5d\x37\xbe\x5f\xc2\xbe\x16\x8e\x0b\xca\x61\xaf\ -\x90\x8c\x02\x67\xd2\xbe\x6f\x1b\x9d\x5c\x01\x0c\x20\xbb\xde\xd5\ -\x11\x76\x45\x51\x4a\x36\x75\x84\x7d\xbf\x50\x1c\x90\x8a\x5b\xa4\ -\xc3\x5e\xe5\xb2\xcd\x71\x19\x73\x3c\x3c\x95\x92\xb0\xaf\x45\xc7\ -\xc3\xd8\x29\x24\xdb\xc9\x15\x40\xea\xe4\x39\x80\x0c\xa3\xde\x3c\ -\xcb\xee\xe7\x43\x73\x01\x51\xa8\x50\x12\xb1\xb0\xef\x10\x82\x9b\ -\x85\xe2\x56\xa9\xd8\x2f\x1d\x6e\x76\x5c\xb6\x28\xaf\x23\xec\x6e\ -\x76\x84\xfd\x72\x2c\x9d\xa2\x55\x9f\xe3\xf5\x42\xf0\x7e\xc8\xf3\ -\x00\x69\x92\x7b\x00\x19\x62\xe7\x3b\x66\x31\x1a\xe1\x16\x29\x0b\ -\xc1\x84\x90\xec\x02\x66\x2a\x9b\xb8\x4d\x2a\xf6\xab\x38\x1b\xbf\ -\x45\x79\x8c\xae\x58\x76\x27\xdb\xc2\xbe\x16\x8e\x47\x49\x48\x6e\ -\x55\x2e\xef\xd7\x79\x16\x20\x55\x72\x05\x90\x12\xbb\xdf\x1d\x6f\ -\xbd\x49\x87\xb2\x90\x6c\x12\x82\x9d\x42\xb2\x5f\x48\x0e\x4a\xc5\ -\x2d\x2a\x8e\xd9\xb7\x29\x8f\xda\x20\x0b\xfb\x25\x88\x38\x11\x28\ -\x15\xb7\xb4\x97\x70\xdd\xe2\xf9\x3d\xe9\x9c\xe4\xc9\x15\x40\x02\ -\xec\xfe\xd3\x59\x8c\x46\x0a\x45\x49\x4a\xa6\x84\x8c\xcb\x65\x9d\ -\x42\x1c\xb3\x2b\x87\xdd\xca\x63\xab\x72\x19\x71\x0a\xb8\xca\x1d\ -\x12\x61\x5f\x0b\xdb\x09\x51\x1c\x6e\x96\x8a\x51\xe0\x6c\xda\x4b\ -\xda\xc8\xe4\x0a\xa0\xc7\xec\x7a\x57\x2c\xec\x8e\x47\x59\x48\x26\ -\x85\x60\x97\x90\xec\x73\xe2\x7d\xf6\xfd\x2a\x4e\xd0\x6d\x56\x2e\ -\xa3\x8e\x87\xe3\x78\x71\x62\x6c\x28\x85\xfd\x32\x48\xb5\x92\x08\ -\xdc\x46\xae\x00\x52\x25\x4f\x02\x5e\x27\xd3\xbf\x3d\x4b\x75\x2b\ -\x04\x0d\xa4\xe3\x51\xed\xb8\xf1\x37\x09\xc9\xcd\x42\x72\x5b\x47\ -\xd8\xf7\x28\x97\xcd\x8e\xc7\x88\xf2\x70\x9c\x4e\x41\x8d\x74\x60\ -\xa3\xb7\x5c\x74\x12\x81\xaf\x13\x82\xbf\x82\x3c\x11\x98\x16\xb9\ -\x07\xb0\x1e\xbe\x73\x96\x99\x57\x43\xd8\x40\x4a\x45\x55\x48\xa6\ -\x84\x60\xa7\x80\x83\xa5\x11\x0e\x88\xd8\x8d\xdf\xa5\x5c\xb6\x3a\ -\x1e\xd5\x15\x61\xef\x66\xe3\x37\xb8\xb0\xaf\x85\xe3\x51\x12\x82\ -\xdb\xa4\xe2\xaf\x4c\x5e\x88\x9e\x1a\xb9\x02\xb8\x88\x4d\xbf\x35\ -\xcb\xd4\x5e\x68\x9e\x43\x49\x45\x45\x48\xa6\x85\x60\x27\x9a\x83\ -\x5e\x99\x83\xca\xe1\xa0\x74\xb8\xc9\xf1\x98\x56\x2e\x35\xc7\xc3\ -\xe9\x26\xe8\x44\x2e\xec\xeb\xe3\x7c\x22\xf0\x80\xdf\xc0\x71\x8b\ -\x44\x69\x2f\x69\xa3\xb2\xa1\x15\xc0\xb6\xff\x39\xcb\xe9\xc7\x61\ -\xeb\x7e\x94\x72\x57\x2c\xfb\xee\xb0\xcd\x3e\xaf\xc2\x6d\x4a\xb1\ -\x4f\x3a\xec\x71\x3c\xa6\x3a\xc2\xae\x2e\x11\x76\xc1\xaa\xd6\x8a\ -\x9c\x75\x71\x3e\x11\x78\x40\x3a\x8c\x91\xe7\x01\x52\x63\xc3\x28\ -\x80\x89\xdf\x98\xe5\x05\x3f\x00\x5f\x7a\x1f\x4a\x79\xd4\x84\x60\ -\x4a\x08\xf6\xdc\xf4\x2c\xf6\xc9\x4e\x51\x8d\x72\xb9\x49\xb9\x4c\ -\x2b\x8f\xaa\xe3\xa1\xba\xd9\xf8\x2b\x0a\x7b\x2e\xfc\xd7\x85\x54\ -\xa0\x5c\xb6\x0b\xc1\x16\x72\x05\x90\x1a\x43\xaa\x00\x66\xd9\x7b\ -\x08\x74\x80\x23\x24\x55\x21\xd8\x2c\x04\x37\x3d\xfc\xb7\x1c\x2c\ -\xd6\x3a\x5b\x6f\x2e\x3b\x3b\xc2\x5e\xc9\x85\x3d\x79\xa4\x04\xc7\ -\x63\x93\x90\xdc\x8c\xe0\xcb\x69\xaf\x67\xa3\x32\xf0\x0a\x60\xcf\ -\x9f\xcd\x12\x45\xa0\x14\x0e\x50\x15\x92\x2d\x42\x70\x93\x80\x83\ -\x5e\x89\x83\xd2\xe1\x40\x27\x41\x37\xd5\xb1\xec\xf2\x12\x61\x5f\ -\x8b\x5c\xd8\xfb\x4b\x9c\x07\x28\x09\xc1\x01\xa5\x60\xe6\xd0\x6c\ -\xbe\x13\x90\x02\x03\xad\x00\xf6\xbe\x67\x16\x01\x63\xae\xe2\x65\ -\x52\xf1\xf5\xca\x65\x7f\xa7\xa8\x66\x93\xe3\x52\x55\x1e\xd2\xf1\ -\x3a\x99\xf8\x3c\x41\x97\x39\x3a\xcf\xe6\xd6\x76\x3d\xaf\x08\x4c\ -\x8b\x81\x55\x00\x33\x87\x66\xc1\x32\x8a\xe0\x57\x8a\x15\xbe\xbb\ -\x34\x4a\xd9\x2d\x9e\x1f\x5c\x91\x27\xe8\xb2\x4f\x27\x11\xb8\x5f\ -\x3a\x8c\x00\x73\x69\xaf\x67\x23\x32\x90\x0a\x60\xe6\xd0\x2c\x42\ -\x80\xb5\xbc\xa6\x50\xe5\x7b\x46\xb7\x50\x54\xdd\x31\x87\xab\xc9\ -\x85\x3f\xd3\x5c\x94\x08\xcc\x15\x40\x0a\x0c\x6c\xf1\x69\xbb\x81\ -\x92\x0e\x2f\x28\x8f\x5d\x46\xf8\x73\x32\x8f\x94\xa0\x5c\x26\x85\ -\x60\x26\xed\xb5\x6c\x54\x06\x56\x01\x60\x51\xd2\x61\x2c\x17\xfe\ -\x01\x46\x80\x53\xa0\x24\x14\x07\x94\xdb\x09\xeb\x72\x12\x65\x60\ -\x15\x80\x10\x58\x6b\x30\x98\xb4\x57\x92\x73\x23\x38\x2e\x48\xc9\ -\xed\xed\xe5\xc1\x0c\x47\x07\x9d\x81\x55\x00\xe3\x3b\x08\x8d\xe6\ -\x09\x1d\x92\xb7\x34\x0d\x30\x2a\xee\x86\x9c\x91\x8a\x91\xb4\xd7\ -\xb2\x11\x19\x48\x05\x70\xe4\xee\x37\xd3\x5c\x00\xa3\x79\x38\x0a\ -\xb0\x79\x08\x30\xb8\x74\x12\x81\xbb\x84\x64\x6b\xda\x6b\xd9\x88\ -\x0c\xa4\x02\x00\xb0\x16\xac\xe1\xc1\x28\x60\xd1\xe6\x0a\x60\x60\ -\xe9\x24\x02\xc7\x85\x60\x07\xe4\x79\x80\xa4\x19\x58\x05\x00\x80\ -\xe5\xb8\x0e\x38\x63\xf3\x76\xd2\xc1\x45\x80\xe3\xe2\x09\xc9\xf8\ -\x46\x19\x88\x92\x25\x06\xfa\x96\x1b\xc3\x59\x1d\x71\x44\xe7\xcd\ -\xa4\x83\x8e\x05\x4c\x1e\xca\x25\xcf\x40\x2b\x80\x37\xbe\x9e\xa6\ -\x89\x78\x28\x0a\xc8\x13\x81\x03\x8a\xb5\x10\xf9\x44\xd6\xe4\xa1\ -\x5c\x1a\x0c\xac\x02\x38\x72\xf7\x9b\xf9\x83\xbf\x04\x6b\x78\x40\ -\x07\xb9\xf5\x18\x38\xe2\x4a\x4e\x5a\x8b\xd0\x6e\xf0\x30\xf0\x50\ -\xda\x4b\xda\x88\x0c\xf4\xde\xab\xb5\x60\x0c\x0f\x47\x01\x75\x6b\ -\x19\xc9\x9b\x7d\x32\x4a\xa7\x27\xc3\x5a\xb0\x1a\x74\x04\x91\x0f\ -\x41\x0b\xdd\x5e\xe6\xcb\x26\xe4\x2d\x5e\x85\x63\x61\x2b\x9f\x0d\ -\x98\x34\x03\xad\x00\x00\xb0\x3c\xa1\x03\x4e\x59\xcd\x88\x18\xfc\ -\x4f\x33\xf8\xac\x21\xec\x3a\x80\xd0\xc7\xea\x80\x46\x14\x32\x6f\ -\x22\x8e\x99\x88\xaf\x18\xc3\xbd\xc0\xdf\x4b\xc9\x23\xb9\xf0\xa7\ -\xc3\xc0\x8b\x8c\x31\x9c\xd1\x11\x8f\xe9\x88\x7d\x72\xe0\x3f\xcd\ -\x80\xd1\xf5\xb8\x2c\x18\x1d\x0b\x7a\x14\x42\xe4\x63\x74\x40\x33\ -\x0a\x39\x6b\x22\x8e\x9b\x88\x87\xad\xe1\x21\x6b\x39\x6c\x2d\xc7\ -\xb0\x9c\x04\x96\x11\x44\xd6\xc0\x63\xaf\xcf\x05\x3f\x2d\x06\x5e\ -\x64\x96\x9f\xa6\xe9\xee\xe6\x61\x1d\x70\x97\x5b\x22\xef\x0b\xe8\ -\x17\xab\x84\xdd\x9a\x8e\xc0\xc7\xc2\x4e\xe8\x43\xd8\x26\xd4\x21\ -\xf7\x59\xcd\x17\x3a\xc2\xfe\x90\xb5\x3c\x0e\x9c\x02\x96\x5c\x17\ -\xbd\xbc\x04\x27\xbf\x37\x17\xf6\x2c\x31\xf0\x0a\x60\x7c\x17\x58\ -\xcd\x97\xa3\x38\x11\x38\xb0\x49\xcd\x4c\xb1\x86\xb0\x47\xc1\x8a\ -\x2b\xbf\x62\xe9\x4d\x14\xff\x7d\xe7\x7b\x35\xf0\x3b\xe7\x4e\xf1\ -\xe7\x73\x7f\x89\xbd\xe9\xfb\xe1\xd8\x1b\x72\x61\xcf\x3a\x03\x9f\ -\x36\x9b\x39\x34\x8b\x31\xbc\xa4\x32\xce\x87\x46\xb7\x52\xcb\x13\ -\x81\xd7\xc8\xc5\xc2\x1e\xc5\xc2\xdd\x15\xf6\x28\x88\x2d\xfd\x45\ -\xc2\x7e\xe9\x9b\x13\xc7\xfe\x3f\x8b\xe0\x57\xb1\x79\x3c\x3f\x28\ -\x0c\xbc\x07\x00\x80\xe1\xa8\x0e\x79\xda\x1a\x6a\x42\xa5\xbd\x98\ -\x0c\x73\x91\xb0\xeb\x08\x4c\x08\x61\x10\xbb\xf2\x91\xdf\xf9\xb3\ -\xae\xb0\xdb\x8b\xfe\x1d\x97\xf9\xfd\x79\x6e\xc3\xe2\x01\xf9\x99\ -\xbf\x03\xc2\x50\x28\x00\x6b\x38\xab\x43\x8e\xe9\x90\x7d\x32\x57\ -\x00\x31\x6b\x08\xbb\x0e\x63\x8b\xbe\x22\xec\x61\xec\xde\x5f\xd6\ -\xb2\x5f\x8b\x37\x15\x2b\x8b\x19\x60\x84\x7c\xcc\xf7\xc0\x30\x14\ -\x0a\xe0\x25\xaf\xa7\xf1\x2f\xef\xe5\xb0\x0e\x79\xc5\x86\x4c\x04\ -\xae\x9a\x7d\xb8\xda\x8d\x8f\x02\x88\xda\xab\xdc\x78\x7d\xde\xb2\ -\xaf\x69\xdc\xd7\x10\xf8\x95\x90\x4a\x5c\x3a\x54\x75\xa5\x72\xaf\ -\xb3\xed\x87\x65\xaf\xb5\xbc\xd2\x5a\x3e\xb1\xfb\xdd\xb3\x73\x3a\ -\xa4\x25\x1d\xec\xb1\xef\xcc\xc3\x81\xac\x32\xf0\x11\xf3\x4a\xf7\ -\x98\xe5\x07\x6b\xd3\xfc\x7e\x75\x72\xf0\x3f\xd3\x15\xb9\x9c\x65\ -\xef\x58\xf5\x0b\x62\x76\x7b\x5e\x48\x85\x38\x3f\x2c\x55\xc8\xb8\ -\x0b\x4f\x74\x4e\x24\xee\xfe\x5e\xae\xfa\xfd\xca\x97\xb8\x70\xc8\ -\xea\xaa\xcb\x9f\xdf\xef\xb7\x1d\xa5\xd3\xc6\x46\x01\x8b\x3a\xe2\ -\xb8\xd1\x3c\x6e\x0d\x0f\x5a\xcd\x83\xc6\x72\x18\xc3\x31\xa3\x99\ -\xf7\x2a\x44\x8f\xfe\x6f\xe0\x0f\x73\xa5\x90\x05\x86\x42\x58\x66\ -\x0e\xcd\x62\x0d\x5f\x57\x1e\xe7\x83\x63\x5b\xa9\x0d\xc7\xa7\xe2\ -\x9a\x85\x1d\x3a\xc2\xac\x3a\x5f\x4e\x67\xe2\x4e\xe7\x44\x62\xe5\ -\x9c\x9f\x9a\x2c\x3b\x02\xbe\x22\xd4\xd7\xeb\xfa\xaf\x66\x75\x6e\ -\xe1\xfc\x5a\xc3\x28\x60\x2e\x0a\x38\xa6\x43\x3e\x67\x35\xf7\x1b\ -\xc3\xfd\xc0\x31\x6b\x98\x07\xcc\xd1\xbc\x0e\x20\x35\x86\x42\x54\ -\x66\x0e\xcd\x62\x22\x76\x17\x47\xf8\xe8\xf8\x0e\x66\x06\x32\x0f\ -\x70\x91\x1b\x7f\x89\xb0\x77\x63\x76\x13\x0b\xbb\x10\xe7\x05\xda\ -\xf1\xe2\x11\xdb\xdd\x73\x0b\xa5\xb3\xca\x9a\xaf\x72\xe1\xe3\x1f\ -\x9e\xfc\x47\xb3\x66\x55\xcd\x40\x9b\x28\xf4\x39\xab\x03\xbe\xa2\ -\x43\x3e\x69\x0c\x9f\xb4\x86\xfb\xb0\x9c\x02\x02\x04\x3c\xfe\xba\ -\x5c\x21\x24\xc5\xd0\x28\x00\x1d\x52\xf5\xca\x7c\x60\x7c\x07\x2f\ -\x77\x8b\x69\xaf\xe8\x2a\xac\x12\x76\xa3\x57\x55\xd1\x05\xab\x2c\ -\x7b\x10\x0b\x3b\x36\x76\xd5\x55\x47\xd0\x1d\x0f\x54\xa1\x23\xf0\ -\xab\x04\x7d\xe5\xe7\x42\xe6\x73\x20\xdd\xcf\x1b\xb6\xb1\x41\x93\ -\x46\x14\xf0\x58\x14\x70\xaf\xd1\xfc\xff\x58\x3e\x6d\x34\x4f\x08\ -\x89\xce\x15\x41\xff\x19\x1a\x05\xf0\xe3\xaf\x85\xd9\xf7\xf2\xb6\ -\xb1\x6d\xbc\xb1\x38\x42\x76\x84\x60\xbd\xc2\xae\x3b\x96\x3d\x9e\ -\x90\x83\xe3\x81\x5b\x04\xa7\xd0\x39\x41\xc7\x89\xdd\x76\x86\xec\ -\xc0\x93\xae\xb7\x13\xb6\xc0\x6f\xd2\x0a\x9b\x3c\xaa\x43\x3e\x66\ -\x34\x1f\xb1\x96\xcf\x0a\xc1\x9c\xb5\xd8\x5c\x19\xf4\x87\xa1\x50\ -\x00\x00\x37\xdf\x33\x8b\x35\xfc\x48\x6d\x9a\xdf\xab\x4e\xa6\xb4\ -\x88\x8b\x63\xf6\x70\x8d\xad\xb7\xe8\xc2\xa2\x1a\x11\xcf\xc4\xc3\ -\x2d\x9e\xff\x52\xdd\xe3\xcc\x86\x4c\xd8\xaf\x46\x67\x36\x00\x41\ -\x0b\x82\x3a\x8b\x61\x9b\xcf\xeb\x90\xf7\x5b\xcb\x87\x81\xa3\x40\ -\xf0\xd8\xb7\xe7\x8a\xa0\x97\x0c\x8d\x02\xe8\x26\x02\x2b\x13\x7c\ -\x70\x74\x4b\x02\x89\xc0\xb5\x62\xf6\x60\x0d\x61\xef\x6c\xbd\xad\ -\xce\xc6\x2b\x37\xb6\xec\x5e\x29\xfe\x52\x05\x50\x8a\xa1\xb3\xee\ -\x37\x82\xd1\x10\xb6\xa1\xbd\x4c\x18\x34\x79\x3c\x0a\xf8\xa8\xd5\ -\xdc\x03\x7c\x16\x41\xc3\x5a\x78\x3c\x57\x06\x37\xcc\x50\x29\x00\ -\x13\xb1\xb7\x93\x08\xdc\xd3\xd3\x44\xe0\x95\xdc\xf8\x76\xa7\x74\ -\xf6\xa2\x7d\xf6\x0b\xfe\x79\xc7\xad\x77\x4b\x50\xa8\x74\xac\xbc\ -\xbb\x2a\x76\xcf\xb9\x3c\x36\xbe\xbf\xfe\x32\xb6\x5d\xe7\x6c\xd8\ -\xe2\xa3\xc6\x70\x0f\x96\x7f\x92\x8a\x39\x1d\xc2\xe3\xdf\x91\x2b\ -\x82\xeb\x65\xa8\x14\x80\x0e\xa8\x7a\x55\x3e\x30\xb1\x83\x97\x3b\ -\x85\x1b\xb8\x1b\x6b\x09\xbb\x7f\xbe\x11\x66\xb5\x65\x5f\xb3\xa2\ -\xa6\x53\x51\xa7\x5c\xf0\xca\x50\xa8\x76\x2c\xbd\xc3\x10\xdd\xf1\ -\xe4\xd1\x21\xf8\x0d\xf0\xeb\x34\xfc\x26\x9f\x30\x11\xef\xc4\xf2\ -\x91\xa0\xc5\x9c\x5b\xc8\x15\xc1\xf5\x30\x34\xaf\xe3\xcc\xa1\x59\ -\x1a\x73\x88\xea\x24\xbf\x33\xb2\x85\x37\x96\xc7\x59\xb7\x2b\xbd\ -\xba\x7a\xce\x9a\x8e\x65\x0f\x40\xaf\x8e\xd9\x2d\x5c\xb6\x36\x7e\ -\x15\x52\xc5\x96\xbe\x58\x05\xaf\x12\xef\xc3\x23\xd7\xbf\x96\x9c\ -\xab\x63\x74\xac\x08\xda\x4b\x34\x82\x26\x9f\xd2\x11\x7f\x8e\xe5\ -\x83\x42\x71\xd6\x6a\xc8\xf3\x04\xeb\x67\x68\x14\x00\x74\xf2\x00\ -\x96\x57\x17\x2a\xbc\x73\x74\x0b\x35\xa7\xbb\x1d\xb8\x4a\xf8\xba\ -\xc2\xae\xa3\x95\x0c\x7c\x3b\x0a\x38\xa7\x43\x9e\x8c\x02\x0a\xd6\ -\x72\x3b\x16\xb1\x66\xc7\xdb\x5a\x74\xbe\xcf\xf1\x62\x4b\x5f\xac\ -\xc5\x2e\x7e\xee\xde\xf7\x1f\xa3\x21\x68\x42\x6b\x91\x76\xd0\xe4\ -\xe3\x3a\xe2\x1d\x58\x3e\x82\x60\x01\xe0\xb1\x6f\xcb\x15\xc1\xd5\ -\x18\x3a\x05\x80\xa5\x86\xe0\x2d\x5e\x89\x1f\x2a\x8d\x31\xe2\x78\ -\xb1\xf5\xd6\x21\x36\x0a\x08\x74\xc0\xbc\x0e\x79\x4a\x47\x3c\x6a\ -\x35\x0f\x1b\xc3\x61\x6b\x38\x62\x2d\xc7\x94\xc3\x37\x01\x6f\x07\ -\xbc\xf5\x5c\x6f\xc5\xda\xd7\xe2\xd8\x5e\xb9\x69\xdf\x81\x8d\x49\ -\xd7\x23\x68\x2d\xd2\x08\x9a\x7c\xd4\x68\xde\x8e\xe5\xe3\x08\xda\ -\xb9\x12\xb8\x32\x43\xa5\x00\x00\x66\xde\x33\x0b\x50\xb6\xf0\xf5\ -\x52\xf1\x5c\xa9\xa8\x74\xe6\xd3\x9d\x31\x86\x47\xac\xe1\x2b\x58\ -\x9e\x32\x9a\x85\xb0\x4d\x20\x9d\x58\x78\x3b\x3c\x1f\xc1\x07\x81\ -\xe9\x35\x5d\xf6\xce\x3e\x7d\xd7\xda\x17\xaa\xb9\xb5\xcf\x12\x46\ -\x43\x7b\x09\x9a\x8b\x9c\x09\xdb\xbc\xdf\x1a\xfe\x50\xc0\x7d\x16\ -\x74\xae\x08\xd6\x66\xe8\x14\x40\x97\xb1\xff\x77\x16\xab\xc1\x19\ -\x47\x08\x09\xd2\xc1\x5a\x0b\x67\x7e\x74\xed\x17\xa1\xd3\x54\xb4\ -\x03\xf8\x1b\xe0\x8e\x8b\xff\x5e\xaa\x38\xa1\x57\xac\xc5\xb1\xfd\ -\x4a\x42\x2f\x8f\xed\x33\x87\x0e\xa1\xb5\x88\x6d\x2d\x72\x34\xf4\ -\x79\x3b\x96\x3f\x93\x8a\x13\xd6\x60\x8f\xe4\x8a\xe0\x02\x86\x56\ -\x01\x5c\x2b\x1d\x05\x50\x02\xde\x0d\xbc\xba\xfb\xe7\xca\x8b\x13\ -\x7a\x2b\xb1\xbd\x22\x17\xfa\x01\x21\x68\x41\x73\x81\xc0\xaf\x73\ -\x9f\x8e\xf8\x0d\x62\xe5\x9e\x87\x05\xab\x18\x8a\x79\x00\x3d\x24\ -\xc2\xf2\x14\x22\x2e\xd4\x29\x8d\xc6\x82\xef\xac\xce\x08\xe4\xc2\ -\x3f\x30\x78\x25\x70\x0b\x78\xed\x3a\x2f\x68\xcc\xf3\x07\x61\x8b\ -\x43\xd6\xf2\x3b\x37\xbf\x77\xf6\x21\xab\xf3\xb1\x65\x90\x7b\x00\ -\xcc\xbc\x67\xb6\x2b\xd3\x93\xc0\xf7\x3b\x1e\x3f\x54\x1e\x67\x57\ -\x69\x24\x4f\xea\x0d\x13\x3a\x80\xc6\x02\xb6\xb5\xc4\xfd\x3a\xe4\ -\xad\xc0\x5f\x91\x7b\x03\x1b\x5b\x01\x74\x12\x86\xd2\xc2\x0b\xa5\ -\xe2\x27\x0a\x15\xfe\x4d\x65\x02\xcf\x2b\xa7\xbd\xb2\x9c\x7e\x60\ -\x2d\xf8\xcb\x50\x9f\x67\x21\x6c\xf1\x2e\x6b\xf9\x2d\x2c\x47\x85\ -\xdc\xb8\xde\xc0\x86\x54\x00\x1d\xc1\xc7\x42\x0d\xf8\x76\xc7\xe3\ -\xa7\x2a\xe3\xcc\x94\xc6\xe2\x64\x5f\xce\x70\x13\x05\xd0\x98\x43\ -\xb7\x96\xf8\x27\xa3\xf9\x79\x21\xf8\x24\x16\xbd\x11\x13\x84\x1b\ -\x4e\x01\xcc\x1c\x9a\xc5\xf1\x20\xf4\xd9\x2b\x04\x3f\xe5\x55\xf8\ -\x8e\xea\x04\xd5\x42\x35\xed\x95\xe5\x24\x89\x35\xd0\x3c\x07\x8d\ -\x05\x8e\x6a\x9f\xb7\x5a\x78\xa7\x80\xe6\x46\x53\x02\x1b\x4a\x01\ -\xac\x72\xf9\x5f\xac\x1c\x7e\xa9\x38\xc2\x0b\xab\x9b\x50\x79\xac\ -\xbf\x71\xf1\x1b\x50\x3f\xcb\x52\xd0\xe4\x7f\x59\xcb\x6f\x62\x39\ -\xbe\x91\x42\x82\x0d\xa1\x00\x56\x25\xfa\x4a\xc0\x1b\x1c\x8f\x9f\ -\xac\x4c\x30\x53\x1e\xcb\x8b\x78\x72\x2e\x08\x09\xfe\xce\x44\xfc\ -\xf4\xb9\x79\xbe\x34\xbe\x09\x36\x82\x37\x30\xf4\x0a\xa0\xd3\x1f\ -\x00\x30\x29\x04\xff\xb7\x57\xe2\x8d\xd5\x29\x46\x56\x55\xff\xe5\ -\xe4\x60\x34\x34\xe6\xa1\xb9\xc0\x7d\x3a\xe2\xe7\x84\xe0\xc3\x80\ -\x19\x76\x4f\x60\xa8\x53\x5e\x33\x87\x66\x31\x1a\x84\x60\x46\x48\ -\xde\x5a\xac\xf1\x1f\x46\x36\x53\xf6\x4a\x69\xaf\x2c\x27\x6b\x08\ -\x19\x57\x7a\x2a\x97\xad\x91\xcf\x8b\x8c\x66\x4e\xc0\xc3\x13\xaf\ -\xbd\x2b\x5a\xf8\xcb\x8f\xa4\xbd\xbc\xbe\x31\xb4\x0a\xa0\x33\x21\ -\x08\x21\xb9\x53\x2a\xde\x56\x19\xe3\x1b\x47\xa6\x71\xd4\xba\xda\ -\x7c\x72\x36\x22\x42\xac\x8c\x64\x1b\xd3\x01\x2f\x31\x1a\x6b\xe1\ -\xbe\x89\xd7\xde\x15\x0e\xab\x12\x18\xca\x10\x60\xe6\xd0\x2c\x42\ -\x20\x8c\xe1\x25\xca\xe1\xd7\x2b\x13\x3c\xaf\x32\x91\xc7\xfb\x17\ -\xb0\x7a\x7e\xe1\x65\xfe\x6a\x23\x13\xb6\x60\xe9\x34\x8d\xa0\xc9\ -\xef\x5a\xcb\x7f\x03\xe6\x84\x18\xbe\xe4\xe0\xd0\x3d\xeb\x99\x43\ -\xb3\x20\x10\xd6\xf0\xf5\x8e\xcb\xef\x54\x26\xd9\x5f\x1e\xbb\xf4\ -\x58\xab\xa1\x65\xf5\xe9\x3d\x76\xd5\xff\x0d\x58\x6b\xe3\x93\x7c\ -\x3a\xbf\x16\x40\xb9\x08\x9e\x6b\xe3\x11\x08\x16\x0c\x60\xac\xc0\ -\xd8\xf3\xff\xef\x9e\x02\xd4\xfd\xc1\x1b\xe5\x56\x46\x3e\x2c\x9f\ -\x21\x68\x2f\xf3\x2e\x6b\xf9\x7f\x04\x3c\xcd\x90\x29\x81\xa1\x7a\ -\x96\x9d\x86\x1e\x69\x2d\xaf\x72\x5c\x7e\xbd\x3a\x15\x0b\xff\xb0\ -\xd2\x55\x6a\xd6\x76\x46\x97\x85\x06\x1d\x58\x42\xdf\xa2\x7d\x4b\ -\xd8\x36\x44\x81\x45\x87\xb6\x33\x04\xc5\x62\xb5\x8d\x0f\x17\x31\ -\xa0\xa4\xe5\xdf\xbd\x38\xe2\x19\xfb\x0c\xc6\x80\x21\x16\xf8\xc8\ -\x08\x22\x23\x08\xb4\xa0\x11\x29\x9a\x91\xa4\x11\x4a\x9a\xa1\xa4\ -\x19\x49\x02\x2d\x09\x4d\x47\x39\x74\x14\xc3\x50\xbd\x48\xab\xd0\ -\x21\x2c\x9f\x26\x6a\x2d\x73\x8f\x35\xfc\x8c\x80\x63\xc3\xa4\x04\ -\x86\xe6\xb9\x5d\x20\xfc\x1e\xbf\x59\x9b\x66\x77\xa9\x36\x4c\x9f\ -\x90\x95\xf6\xe3\x78\x6c\x99\x21\x6c\x5a\xfc\xa6\xa1\xbd\xa4\xf1\ -\x1b\x86\xb0\x69\xd0\xa1\x45\x47\x60\x8d\xbd\x60\x66\xa1\xbd\xf4\ -\xc7\xe0\x3a\xf0\x86\x6f\x0a\xb9\xf3\xa0\xc1\x5c\xe1\xb2\x16\xd0\ -\x56\x10\x1a\x81\x1f\x09\x5a\x91\x64\x29\x50\x2c\x05\x8a\xf9\xb6\ -\xc3\x52\xa0\x68\x84\x92\xa8\xa3\x14\x86\x4d\x21\x98\x08\x96\xcf\ -\xa0\x9b\x8b\xbc\xdf\x1a\x7e\x42\xc0\xd1\x61\x51\x02\x43\xf1\x9c\ -\x3a\xc2\x2f\xac\xe5\x9b\x1d\x8f\xd9\xda\x34\x7b\x4a\x23\x69\xaf\ -\xaa\x07\x74\x04\x29\x9e\x97\x6f\x09\x1a\x86\xe6\x39\x4d\x6b\x51\ -\xd3\x5e\xd2\x84\x6d\x8b\x89\x62\x41\x5f\xf1\xd0\xaf\xe1\x89\x7a\ -\x2e\x7c\xcf\x37\x87\xdc\x3e\x73\x65\x05\x70\xd1\x92\x56\xb0\xc4\ -\xde\x42\x57\x21\x2c\xf8\x8a\xb3\x2d\x87\x85\x8e\x52\x08\x8d\x18\ -\x1a\x0f\xc1\x68\x58\x3e\x83\x6d\x9d\xe3\x43\xc6\xf0\x26\xe0\xf1\ -\x61\xc8\x09\x0c\xfa\x73\x59\x1d\xf3\x7f\x63\xc7\xf2\xcf\x0c\xba\ -\xf0\x0b\x11\x1f\x0b\x16\xf9\x96\xd6\x39\x4d\x73\x21\xa2\x31\xaf\ -\x09\x1a\x86\x28\xec\x04\xea\x70\x43\x4f\xcf\x02\xe5\x02\x7c\xdf\ -\xb7\x86\x1c\xd8\xb5\x7e\x05\xb0\xe6\x7a\x57\xfd\x5a\x5b\x68\x45\ -\x92\x85\xb6\xc3\xa9\xa6\xcb\xa9\xa6\xcb\x82\xaf\x68\x45\x72\xdd\ -\x63\x16\xb3\x4a\x47\x09\xe8\xd6\x39\xfe\xda\x18\xfe\xb3\x80\xc7\ -\x06\xdd\x13\x18\xe4\xe7\xd1\x3d\x0b\x00\xa1\x78\x99\xe3\xf2\xfb\ -\xb5\x69\xf6\x97\x46\xd3\x5e\xd5\xf5\xd1\x15\x8e\xc8\xb7\xb4\x16\ -\x35\xcb\xa7\x3b\x42\xdf\x34\xb1\x95\xb7\xbd\x4d\x64\x5a\x0b\xb5\ -\x8a\xe5\x07\x5e\x13\xb1\x67\xdb\x8d\x29\x80\x8b\x59\x3d\x5d\x3d\ -\xd0\x82\x73\x81\xc3\x53\x75\x97\xe3\xcb\x1e\xf3\x6d\x87\xc0\x88\ -\x0b\xbe\x6f\x90\x30\x1a\xea\x67\xb0\xcd\x73\xbc\xcf\x18\xde\x24\ -\xe0\xc9\x41\x56\x02\x03\x3b\x10\x64\x65\x9f\x5f\xf1\x62\xe5\xf0\ -\x9b\xd5\xc9\xc1\x13\xfe\x6e\x5c\xee\x48\xcb\x44\x51\x63\x96\x43\ -\x3e\x77\xbf\xa1\x71\x2e\x16\xfa\x0b\x32\xef\x7d\x90\x16\xd7\x81\ -\x82\x67\x7b\x3e\xe3\x64\xf5\xcf\xf3\x94\x65\x73\x29\x64\xba\x14\ -\x72\x60\xbc\xcd\x99\x96\xc3\xb1\xa5\x02\x4f\x35\x5c\x96\x03\x35\ -\x70\x5e\x81\x54\x50\x9d\x8a\xc3\xcd\xd6\x22\xba\xe3\x09\x9c\x48\ -\x7b\x5d\xd7\xcb\x40\x16\x02\xad\x94\xf7\x0a\x6e\x57\x0e\x6f\xab\ -\x4e\x72\x67\x65\x9c\x81\x79\x93\xba\x02\x52\x72\x0c\x3b\xaa\x01\ -\xcf\x9c\x6c\xf1\xac\xe9\x26\x8d\xd3\x11\x9f\xff\x92\x88\x4f\x05\ -\xa6\xff\x9f\x67\xb4\x06\xcf\xbf\xc3\x50\x4e\xe8\x34\x65\x4f\x5a\ -\xc6\x0a\x9a\x1d\xb5\x90\xed\xd5\x90\xa2\x63\x09\xb5\xc0\xd7\x12\ -\xd3\xff\x8f\xdb\x33\x3a\x55\x83\x52\x47\x1c\x8c\x7c\x6a\xd6\xf2\ -\xc9\x89\xd7\xde\xd5\x9a\xb8\xfb\x2e\x16\xee\x19\xac\x82\xa1\x81\ -\xf3\x00\x3a\xa3\xbf\x01\x66\xa4\x62\xb6\x3c\xce\x0b\xca\x63\x0c\ -\xc4\xdb\xd3\x15\xfc\xaa\x6b\xd8\x59\x0b\x98\x19\x6d\x33\x59\x8a\ -\xf0\x64\xbc\x27\xef\x77\x2c\x62\x52\x6b\x71\xdd\xd8\x0b\x48\xfa\ -\xf3\x4b\x61\xd9\x54\x8c\x98\x28\x46\x1c\x18\x6f\x71\x6c\xa9\xc0\ -\x91\xc5\x02\x67\x5b\x2e\xda\x0e\xc4\xa3\x44\x2a\xa8\x4d\xa1\xac\ -\xe1\xdf\xb7\x97\x59\xb6\x96\x5f\x10\x50\x4f\x7b\x5d\xd7\xca\x40\ -\x79\x00\x9d\x6c\x3f\x16\x36\x09\xc1\xaf\x54\xc6\x78\x75\x6d\x2a\ -\x9e\xfa\x9b\x75\x2c\x50\x76\x0c\xfb\xc7\xda\x7c\xd5\xe6\x26\x07\ -\xc6\x5b\x8c\x7a\x06\xb9\xea\x6d\x7f\xf0\x71\xc9\xa3\x4f\xc8\x44\ -\x04\xc0\x02\xd3\x13\x96\xe7\xde\xa6\x13\x55\x02\x17\x53\x50\x96\ -\xa9\x72\xc4\xce\x6a\x40\xcd\x33\x84\x46\xd0\x8c\xd4\x40\x78\x04\ -\x52\x81\x5b\xc0\x89\x7c\x9e\xa1\x43\x96\x84\xe0\x73\x13\xaf\xbd\ -\xcb\x0c\x92\x17\x30\x00\xa2\x73\x11\x96\x8a\x10\xfc\x6c\xb1\xc6\ -\xb7\x57\x26\xb3\x2f\xfc\x96\x38\x0e\xde\x3f\xd6\xe6\x65\x3b\x97\ -\x78\xc1\xd6\x3a\x9b\xcb\x21\x52\x5c\x18\x2b\x1b\x0b\xad\xb6\x48\ -\x74\xe8\x68\xc1\x8b\x4f\x25\x4e\x73\xce\x69\xf7\xda\x15\xd7\x70\ -\xeb\x44\x8b\x97\xef\x5c\xe2\x79\x9b\xeb\x4c\x16\x23\x44\xb2\xb7\ -\xe3\xba\x70\x0a\x50\x9b\xa2\xe6\x16\xf9\xa9\x4e\x0d\xca\x8a\xa1\ -\x1a\x04\x32\x2e\x3e\xe7\xe9\xdc\x54\x65\xe1\xbb\xbc\x32\xdf\x5f\ -\x9b\xc6\x53\x19\x0e\x60\x2c\x20\x05\x6c\xab\x84\x7c\xcd\xb6\x65\ -\x5e\xb4\xad\xce\xb6\xca\xa5\x82\xdf\xc5\x58\x68\x07\xc9\xbe\xf0\ +\xc0\x00\xff\xff\xff\x7f\xff\xff\xfe\x00\xff\xff\xfe\x89PN\ +G\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\x00\x01\ +\x00\x00\x00\x01\x00\x08\x06\x00\x00\x00\x5cr\xa8f\x00\x00\ +@KIDATx\xda\xed\xbdy\x9c\x1d\xd7]\xe0\ +\xfb=\xe7T\xd5\xdd{Swk\x97%\xb5\xb5x\x89\ +\xb3\x98,$\x84\x90\x0d\xcf\x0c\x90G 1\x84\x10\x18\ +`X'\x0cy\x13\xf6\xc9\x83\x07\x0c[\x86\x1e\x96\xc0\ +\x10\xde0\x90\x04\x02D&\x0b\x09L /\x84\x00!\ +!\x89cg\xb3\xbcE\xb6dY\x96\xb5t\xb7\xba\xfb\ +n\xb5\x9cs\xe6\x8f\xba\xb7\xd5\x92ZRK\xba\xb7\xaa\ +\xee\xed\xfa~>mkiu\x9d[U\xbf\xf5\xfc~\ +\xbf#\xc8\xc9\xb9\x01\xb6\xbc}\x16\xbf\x01#\xd3\x14\xa4\ +b\x02\xc1\x0e!9 %wH\xc5\xcdB1\x82E\ +\xea\x90'\x8d\xe1\xddB\xf01 \ +\xe5\xb2\xb5\xe3\xc6{\x8e\xdb\x11v\x07\x84\xbc\xf1\xeb7\ +\x17`\xe9\x14oQ\x1e\xbf\x1c\xf9y\x18\x906\xce\x8d\ +\xff\x88\x9c\xac\xb2\xe3\x8fg\xb1\x1a\xe1\x96(\x0a\xc1\xb8\ +\x90\xec\x10\x82\xbd\xc5\x1a\xb7I\xc5\x01\xe92\xa3\x1c\xb6\ +9\x1e\xe3\xca\xc3s<\x84t@\xf5H\xd8\xd7By\ + \x14\xb7\xb7\x97\xf0\x9c\x02A\xda\xf7h\xa3\x93+\x80\ +!\xe1\xa6?\x99\xc5Z\x84\x94\x14\x85dBH\xb6\x0b\ +\xc1>\xa18 %\xb7I\x97\xdd\xcaa\x87\xe31\xaa\ +<\x0a\x8e\x07]7\xbe_\xc2\xbe\x16\x8e\x0b\xcaa\xaf\ +\x90\x8c\x02g\xd2\xbeo\x1b\x9d\x5c\x01\x0c \xbb\xde\xd5\ +\x11vEQJ6u\x84}\xbfP\x1c\x90\x8a[\xa4\ +\xc3^\xe5\xb2\xcdq\x19s<<\x95\x92\xb0\xafE\xc7\ +\xc3\xd8)$\xdb\xc9\x15@\xea\xe49\x80\x0c\xa3\xde<\ +\xcb\xee\xe7Cs\x01Q\xa8P\x12\xb1\xb0\xef\x10\x82\x9b\ +\x85\xe2V\xa9\xd8/\x1dnv\x5c\xb6(\xaf#\xecn\ +v\x84\xfdr,\x9d\xa2U\x9f\xe3\xf5B\xf0~\xc8\xf3\ +\x00i\x92{\x00\x19b\xe7;f1\x1a\xe1\x16)\x0b\ +\xc1\x84\x90\xec\x02f*\x9b\xb8M*\xf6\xab8\x1b\xbf\ +Ey\x8c\xaeXv'\xdb\xc2\xbe\x16\x8eGIHn\ +U.\xef\xd7y\x16 Ur\x05\x90\x12\xbb\xdf\x1do\ +\xbdI\x87\xb2\x90l\x12\x82\x9dB\xb2_H\x0eJ\xc5\ +-*\x8e\xd9\xb7)\x8f\xda \x0b\xfb%\x888\x11(\ +\x15\xb7\xb4\x97p\xdd\xe2\xf9=\xe9\x9c\xe4\xc9\x15@\x02\ +\xec\xfe\xd3Y\x8cF\x0aEIJ\xa6\x84\x8c\xcbe\x9d\ +B\x1c\xb3+\x87\xdd\xcac\xabr\x19q\x0a\xb8\xca\x1d\ +\x12a_\x0b\xdb\x09Q\x1cn\x96\x8aQ\xe0l\xdaK\ +\xda\xc8\xe4\x0a\xa0\xc7\xeczW,\xec\x8eGYH&\ +\x85`\x97\x90\xecs\xe2}\xf6\xfd*N\xd0mV.\ +\xa3\x8e\x87\xe3xqbl(\x85\xfd2H\xb5\x92\x08\ +\xdcF\xae\x00R%O\x02^'\xd3\xbf=Ku+\ +\x04\x0d\xa4\xe3Q\xed\xb8\xf17\x09\xc9\xcdBr[G\ +\xd8\xf7(\x97\xcd\x8e\xc7\x88\xf2p\x9cNA\x8dt`\ +\xa3\xb7\x5ct\x12\x81\xaf\x13\x82\xbf\x82<\x11\x98\x16\xb9\ +\x07\xb0\x1e\xbes\x96\x99WC\xd8@JEUH\xa6\ +\x84`\xa7\x80\x83\xa5\x11\x0e\x88\xd8\x8d\xdf\xa5\x5c\xb6:\ +\x1e\xd5\x15a\xeff\xe37\xb8\xb0\xaf\x85\xe3Q\x12\x82\ +\xdb\xa4\xe2\xafL^\x88\x9e\x1a\xb9\x02\xb8\x88M\xbf5\ +\xcb\xd4^h\x9eCIEEH\xa6\x85`'\x9a\x83\ +^\x99\x83\xca\xe1\xa0t\xb8\xc9\xf1\x98V.5\xc7\xc3\ +\xe9&\xe8D.\xec\xeb\xe3|\x22\xf0\x80\xdf\xc0q\x8b\ +Di/i\xa3\xb2\xa1\x15\xc0\xb6\xff9\xcb\xe9\xc7a\ +\xeb~\x94rW,\xfb\xee\xb0\xcd>\xaf\xc2mJ\xb1\ +O:\xecq<\xa6:\xc2\xae.\x11v\xc1\xaa\xd6\x8a\ +\x9cuq>\x11x@:\x8c\x91\xe7\x01Rc\xc3(\ +\x80\x89\xdf\x98\xe5\x05?\x00_z\x1fJy\xd4\x84`\ +J\x08\xf6\xdc\xf4,\xf6\xc9NQ\x8dr\xb9I\xb9L\ ++\x8f\xaa\xe3\xa1\xba\xd9\xf8+\x0a{.\xfc\xd7\x85T\ +\xa0\x5c\xb6\x0b\xc1\x16r\x05\x90\x1aC\xaa\x00f\xd9{\ +\x08t\x80#$U!\xd8,\x047=\xfc\xb7\x1c,\ +\xd6:[o.;;\xc2^\xc9\x85=y\xa4\x04\xc7\ +c\x93\x90\xdc\x8c\xe0\xcbi\xafg\xa32\xf0\x0a`\xcf\ +\x9f\xcd\x12E\xa0\x14\x0eP\x15\x92-Bp\x93\x80\x83\ +^\x89\x83\xd2\xe1@'A7\xd5\xb1\xec\xf2\x12a_\ +\x8b\x5c\xd8\xfbK\x9c\x07(\x09\xc1\x01\xa5`\xe6\xd0l\ +\xbe\x13\x90\x02\x03\xad\x00\xf6\xbeg\x16\x01c\xae\xe2e\ +R\xf1\xf5\xcae\x7f\xa7\xa8f\x93\xe3RU\x1e\xd2\xf1\ +:\x99\xf8\xb1\xfb\xdd\xb3s:\ +\xa4%\x1d\xec\xb1\xef\xcc\xc3\x81\xac2\xf0\x11\xf3J\xf7\ +\x98\xe5\x07k\xd3\xfc~ur\xf0?\xd3\x15\xb9\x9ce\ +\xefX\xf5\x0bbv{^H\x858?,U\xc8\xb8\ +\x0bOtN$\xee\xfe^\xae\xfa\xfd\xca\x97\xb8p\xc8\ +\xea\xaa\xcb\x9f\xdf\xef\xb7\x1d\xa5\xd3\xc6F\x01\x8b:\xe2\ +\xb8\xd1g5\xf7\x1b\ +\xc3\xfd\xc01k\x98\x07\xcc\xd1\xbc\x0e 5\x86BT\ +f\x0e\xcdb\x22v\x17G\xf8\xe8\xf8\x0ef\x062\x0f\ +p\x91\x1b\x7f\x89\xb0wcv\x13\x0b\xbb\x10\xe7\x05\xda\ +\xf1\xe2\x11\xdb\xdds\x0b\xa5\xb3\xca\x9a\xafr\xe1\xe3\x1f\ +\x9e\xfcG\xb3fU\xcd@\x9b(\xf49\xab\x03\xbe\xa2\ +C>i\x0c\x9f\xb4\x86\xfb\xb0\x9c\x02\x02\x04<\xfe\xba\ +\x5c!$\xc5\xd0(\x00\x1dR\xf5\xca|`|\x07/\ +w\x8bi\xaf\xe8*\xac\x12v\xa3WU\xd1\x05\xab,\ +{\x10\x0b;6v\xd5UG\xd0\x1d\x0fT\xa1#\xf0\ +\xab\x04}\xe5\xe7B\xe6s \xdd\xcf\x1b\xb6\xb1A\x93\ +F\x14\xf0X\x14p\xaf\xd1\xfc\xffX>m4O\x08\ +\x89\xce\x15A\xff\x19\x1a\x05\xf0\xe3\xaf\x85\xd9\xf7\xf2\xb6\ +\xb1m\xbc\xb18Bv\x84`\xbd\xc2\xae;\x96=\x9e\ +\x90\x83\xe3\x81[\x04\xa7\xd09A\xc7\x89\xddv\x86\xec\ +\xc0\x93\xae\xb7\x13\xb6\xc0o\xd2\x0a\x9b<\xaaC>f\ +4\x1f\xb1\x96\xcf\x0a\xc1\x9c\xb5\xd8\x5c\x19\xf4\x87\xa1P\ +\x00\x007\xdf3\x8b5\xfcHm\x9a\xdf\xabN\xa6\xb4\ +\x88\x8bc\xf6p\x8d\xad\xb7\xe8\xc2\xa2\x1a\x11\xcf\xc4\xc3\ +-\x9e\xffR\xdd\xe3\xcc\x86L\xd8\xafFg6\x00A\ +\x0b\x82:\x8ba\x9b\xcf\xeb\x90\xf7[\xcb\x87\x81\xa3@\ +\xf0\xd8\xb7\xe7\x8a\xa0\x97\x0c\x8d\x02\xe8&\x02+\x13|\ +ptK\x02\x89\xc0\xb5b\xf6`\x0da\xefl\xbd\xad\ +\xce\xc6+7\xb6\xec^)\xfeR\x05P\x8a\xa1\xb3\xee\ +7\x82\xd1\x10\xb6\xa1\xbdL\x184y<\x0a\xf8\xa8\xd5\ +\xdc\x03|\x16A\xc3Zx0\xb1\x83\x97;\ +\x85\x1b\xb8\x1bk\x09\xbb\x7f\xbe\x11f\xb5e_\xb3\xa2\ +\xa6SQ\xa7\x5c\xf0\xcaP\xa8v,\xbd\xc3\x10\xdd\xf1\ +\xe4\xd1!\xf8\x0d\xf0\xeb4\xfc&\x9f0\x11\xef\xc4\xf2\ +\x91\xa0\xc5\x9c[\xc8\x15\xc1\xf504\xaf\xe3\xcc\xa1Y\ +\x1as\x88\xea$\xbf3\xb2\x857\x96\xc7Y\xb7+\xbd\ +\xbaz\xce\x9a\x8ee\x0f@\xaf\x8e\xd9-\x5c\xb66~\ +\x15R\xc5\x96\xbeX\x05\xaf\x12\xef\xc3#\xd7\xbf\x96\x9c\ +\xabct\xac\x08\xdaK4\x82&\x9f\xd2\x11\x7f\x8e\xe5\ +\x83Bq\xd6j\xc8\xf3\x04\xebgh\x14\x00t\xf2\x00\ +\x96W\x17*\xbcst\x0b5\xa7\xbb\x1d\xb8J\xf8\xba\ +\xc2\xae\xa3\x95\x0c|;\x0a8\xa7C\x9e\x8c\x02\x0a\xd6\ +r;\x16\xb1f\xc7\xdbZt\xbe\xcf\xf1bK_\xac\ +\xc5.~\xee\xde\xf7\x1f\xa3!hBk\x91v\xd0\xe4\ +\xe3:\xe2\x1dX>\x82`\x01\xe0\xb1o\xcb\x15\xc1\xd5\ +\x18:\x05\x80\xa5\x86\xe0-^\x89\x1f*\x8d1\xe2x\ +\xb1\xf5\xd6!6\x0a\x08t\xc0\xbc\x0eyJG}\xd7\xda\x17\xaa\xb9\xb5\xcf\x12F\ +C{\x09\x9a\x8b\x9c\x09\xdb\xbc\xdf\x1a\xfeP\xc0}\x16\ +t\xae\x08\xd6f\xe8\x14@\x97\xb1\xffw\x16\xab\xc1\x19\ +G\x08\x09\xd2\xc1Z\x0bg~t\xed\x17\xa1\xd3T\xb4\ +\x03\xf8\x1b\xe0\x8e\x8b\xff^\xaa8\xa1W\xac\xc5\xb1\xfd\ +JB/\x8f\xed3\x87\x0e\xa1\xb5\x88m-r4\xf4\ +y;\x96?\x93\x8a\x13\xd6`\x8f\xe4\x8a\xe0\x02\x86V\ +\x01\x5c+\x1d\x05P\x02\xde\x0d\xbc\xba\xfb\xe7\xca\x8b\x13\ +z+\xb1\xbd\x22\x17\xfa\x01!hAs\x81\xc0\xafs\ +\x9f\x8e\xf8\x0db\xe5\x9e\x87\x05\xab\x18\x8ay\x00=$\ +\xc2\xf2\x14\x22.\xd4)\x8d\xc6\x82\xef\xac\xce\x08\xe4\xc2\ +?0x%p\x0bx\xed:/h\xcc\xf3\x07a\x8b\ +C\xd6\xf2;7\xbfw\xf6!\xab\xf3\xb1e\x90{\x00\ +\xcc\xbcg\xb6+\xd3\x93\xc0\xf7;\x1e?T\x1egW\ +i$O\xea\x0d\x13:\x80\xc6\x02\xb6\xb5\xc4\xfd:\xe4\ +\xad\xc0_\x91{\x03\x1b[\x01t\x12\x86\xd2\xc2\x0b\xa5\ +\xe2'\x0a\x15\xfeMe\x02\xcf+\xa7\xbd\xb2\x9c~`\ +-\xf8\xcbP\x9fg!l\xf1.k\xf9-,G\x85\ +\xdc\xb8\xde\xc0\x86T\x00\x1d\xc1\xc7B\x0d\xf8v\xc7\xe3\ +\xa7*\xe3\xcc\x94\xc6\xe2d_\xcep\x13\x05\xd0\x98C\ +\xb7\x96\xf8'\xa3\xf9y!\xf8$\x16\xbd\x11\x13\x84\x1b\ +N\x01\xcc\x1c\x9a\xc5\xf1 \xf4\xd9+\x04?\xe5U\xf8\ +\x8e\xea\x04\xd5B5\xed\x95\xe5$\x895\xd0<\x07\x8d\ +\x05\x8ej\x9f\xb7Zx\xa7\x80\xe6FS\x02\x1bJ\x01\ +\xacr\xf9_\xac\x1c~\xa98\xc2\x0b\xab\x9bPy\xac\ +\xbfq\xf1\x1bP?\xcbR\xd0\xe4\x7fY\xcbob9\ +\xbe\x91B\x82\x0d\xa1\x00V%\xfaJ\xc0\x1b\x1c\x8f\x9f\ +\xacL0S\x1e\xcb\x8bxr.\x08\x09\xfe\xceD\xfc\ +\xf4\xb9y\xbe4\xbe\x096\x8270\xf4\x0a\xa0\xd3\x1f\ +\x000)\x04\xff\xb7W\xe2\x8d\xd5)FVU\xff\xe5\ +\xe4`44\xe6\xa1\xb9\xc0}:\xe2\xe7\x84\xe0\xc3\x80\ +\x19vO`\xa8S^3\x87f1\x1a\x84`FH\ +\xdeZ\xac\xf1\x1fF6S\xf6Ji\xaf,'k\x08\ +\x19Wz*\x97\xad\x91\xcf\x8b\x8cfN\xc0\xc3\x13\xaf\ +\xbd+Z\xf8\xcb\x8f\xa4\xbd\xbc\xbe1\xb4\x0a\xa03!\ +\x08!\xb9S*\xdeV\x19\xe3\x1bG\xa6q\xd4\xba\xda\ +|r6\x22B\xac\x8cd\x1b\xd3\x01/1\x1ak\xe1\ +\xbe\x89\xd7\xde\x15\x0e\xab\x12\x18\xca\x10`\xe6\xd0,B\ + \x8c\xe1%\xca\xe1\xd7+\x13<\xaf2\x91\xc7\xfb\x17\ +\xb0z~\xe1e\xfej#\x13\xb6`\xe94\x8d\xa0\xc9\ +\xefZ\xcb\x7f\x03\xe6\x84\x18\xbe\xe4\xe0\xd0=\xeb\x99C\ +\xb3 \x10\xd6\xf0\xf5\x8e\xcb\xefT&\xd9_\x1e\xbb\xf4\ +X\xab\xa1e\xf5\xe9=v\xd5\xff\x0dXk\xe3\x93|\ +:\xbf\x16@\xb9\x08\x9ek\xe3\x11\x08\x16\x0c`\xac\xc0\ +\xd8\xf3\xff\xef\x9e\x02\xd4\xfd\xc1\x1b\xe5VF>,\x9f\ +!h/\xf3.k\xf9\x7f\x04<\xcd\x90)\x81\xa1z\ +\x96\x9d\x86\x1ei-\xafr\x5c~\xbd:\x15\x0b\xff\xb0\ +\xd2Uj\xd6vF\x97\x85\x06\x1dXB\xdf\xa2}K\ +\xd86D\x81E\x87\xb63\x04\xc5b\xb5\x8d\x0f\x171\ +\xa0\xa4\xe5\xdf\xbd8\xe2\x19\xfb\x0c\xc6\x80!\x16\xf8\xc8\ +\x08\x22#\x08\xb4\xa0\x11)\x9a\x91\xa4\x11J\x9a\xa1\xa4\ +\x19I\x02-\x09MG9t\x14\xc3P\xbdH\xab\xd0\ +!,\x9f&j-s\x8f5\xfc\x8c\x80c\xc3\xa4\x04\ +\x86\xe6\xb9] \xfc\x1e\xbfY\x9bfw\xa96L\x9f\ +\x90\x95\xf6\xe3xl\x99!lZ\xfc\xa6\xa1\xbd\xa4\xf1\ +\x1b\x86\xb0i\xd0\xa1EG`\x8d\xbd`f\xa1\xbd\xf4\ +\xc7\xe0:\xf0\x86o\x0a\xb9\xf3\xa0\xc1\x5c\xe1\xb2\x16\xd0\ +V\x10\x1a\x81\x1f\x09Z\x91d)P,\x05\x8a\xf9\xb6\ +\xc3R\xa0h\x84\x92\xa8\xa3\x14\x86M!\x98\x08\x96\xcf\ +\xa0\x9b\x8b\xbc\xdf\x1a~B\xc0\xd1aQ\x02C\xf1\x9c\ +:\xc2/\xac\xe5\x9b\x1d\x8f\xd9\xda4{J#i\xaf\ +\xaa\x07t\x04)\x9e\x97o\x09\x1a\x86\xe69MkQ\ +\xd3^\xd2\x84m\x8b\x89bA_\xf1\xd0\xaf\xe1\x89z\ +.|\xcf7\x87\xdc>se\x05p\xd1\x92V\xb0\xc4\ +\xdeBW!,\xf8\x8a\xb3-\x87\x85\x8eR\x08\x8d\x18\ +\x1a\x0f\xc1hX>\x83m\x9d\xe3C\xc6\xf0&\xe0\xf1\ +a\xc8\x09\x0c\xfasY\x1d\xf3\x7fc\xc7\xf2\xcf\x0c\xba\ +\xf0\x0b\x11\x1f\x0b\x16\xf9\x96\xd69Ms!\xa21\xaf\ +\x09\x1a\x86(\xec\x04\xeapCO\xcf\x02\xe5\x02|\xdf\ +\xb7\x86\x1c\xd8\xb5~\x05\xb0\xe6zW\xfdZ[hE\ +\x92\x85\xb6\xc3\xa9\xa6\xcb\xa9\xa6\xcb\x82\xafhEr\xdd\ +c\x16\xb3JG\x09\xe8\xd69\xfe\xda\x18\xfe\xb3\x80\xc7\ +\x06\xdd\x13\x18\xe4\xe7\xd1=\x0b\x00\xa1x\x99\xe3\xf2\xfb\ +\xb5i\xf6\x97F\xd3^\xd5\xf5\xd1\x15\x8e\xc8\xb7\xb4\x16\ +5\xcb\xa7;B\xdf4\xb1\x95\xb7\xbdMdZ\x0b\xb5\ +\x8a\xe5\x07^\x13\xb1g\xdb\x8d)\x80\x8bY=]=\ +\xd0\x82s\x81\xc3Su\x97\xe3\xcb\x1e\xf3m\x87\xc0\x88\ +\x0b\xbeo\x900\x1a\xeag\xb0\xcds\xbc\xcf\x18\xde$\ +\xe0\xc9AV\x02\x03;\x10de\x9f_\xf1b\xe5\xf0\ +\x9b\xd5\xc9\xc1\x13\xfen\x5c\xeeH\xcbDQc\x96C\ +>w\xbf\xa1q.\x16\xfa\x0b2\xef}\x90\x16\xd7\x81\ +\x82g{>\xe3d\xf5\xcf\xf3\x94es)d\xba\x14\ +r`\xbc\xcd\x99\x96\xc3\xb1\xa5\x02O5\x5c\x96\x035\ +p^\x81TP\x9d\x8a\xc3\xcd\xd6\x22\xba\xe3\x09\x9cH\ +{]\xd7\xcb@\x16\x02\xad\x94\xf7\x0anW\x0eo\xab\ +Nrge\x9c\x81y\x93\xba\x02Rr\x0c;\xaa\x01\ +\xcf\x9cl\xf1\xac\xe9&\x8d\xd3\x11\x9f\xff\x92\x88O\x05\ +\xa6\xff\x9fg\xb4\x06\xcf\xbf\xc3PN\xe84eOZ\ +\xc6\x0a\x9a\x1d\xb5\x90\xed\xd5\x90\xa2c\x09\xb5\xc0\xd7\x12\ +\xd3\xff\x8f\xdb3:U\x83RG\x1c\x8c|j\xd6\xf2\ +\xc9\x89\xd7\xde\xd5\x9a\xb8\xfb.\x16\xee\x19\xac\x82\xa1\x81\ +\xf3\x00:\xa3\xbf\x01f\xa4b\xb6<\xce\x0b\xcac\x0c\ +\xc4\xdb\xd3\x15\xfc\xaak\xd8Y\x0b\x98\x19m3Y\x8a\ +\xf0d\xbc'\xefw,bRkq\xdd\xd8\x0bH\xfa\ +\xf3Ka\xd9T\x8c\x98(F\x1c\x18oql\xa9\xc0\ +\x91\xc5\x02g[.\xda\x0e\xc4\xa3D*\xa8M\xa1\xac\ +\xe1\xdf\xb7\x97Y\xb6\x96_\x10PO{]\xd7\xca@\ +y\x00\x9dl?\x166\x09\xc1\xafT\xc6xum*\ +\x9e\xfa\x9bu,Pv\x0c\xfb\xc7\xda|\xd5\xe6&\x07\ +\xc6[\x8cz\x06\xb9\xeam\x7f\xf0q\xc9\xa3O\xc8D\ +\x04\xc0\x02\xd3\x13\x96\xe7\xde\xa6\x13U\x02\x17SP\x96\ +\xa9r\xc4\xcej@\xcd3\x84F\xd0\x8c\xd4@x\x04\ +R\x81[\xc0\x89|\x9e\xa1C\x96\x84\xe0s\x13\xaf\xbd\ +\xcb\x0c\x92\x170\x00\xa2s\x11\x96\x8a\x10\xfcl\xb1\xc6\ +\xb7W&\xb3/\xfc\x968\x0e\xde?\xd6\xe6e;\x97\ +x\xc1\xd6:\x9b\xcb!R\x5c\x18+\x1b\x0b\xad\xb6H\ +t\xe8h\xc1\x8bO%Ns\xcei\xf7\xda\x15\xd7p\ +\xebD\x8b\x97\xef\x5c\xe2y\x9b\xebL\x16#D\xb2\xb7\ +\xe3\xbap\x0aP\x9b\xa2\xe6\x16\xf9\xa9N\x0d\xca\x8a\xa1\ +\x1a\x042.>\xe7\xe9\xdcTe\xe1\xbb\xbc2\xdf_\ +\x9b\xc6S\x19\x0e`, \x05l\xab\x84|\xcd\xb6e\ +^\xb4\xad\xce\xb6\xca\xa5\x82\xdf\xc5Xh\x07\xc9\xbe\xf0\ \xc5\x02\xc8\x8c\xbc\x01\xdd\xa3\x17\xcb\x8e\xe1\xf6\xc9\x16\xaf\ -\xbc\x69\x89\xe7\x4c\x35\x18\xf1\x74\xe6\x95\x80\x57\x86\xea\x24\ -\x9b\x95\xcb\x2f\x85\x3e\x2f\xc4\x0e\x8e\x12\xc8\xc8\xe3\xbf\x32\ -\xdd\xa4\x9f\xb5\x7c\x93\x5b\xe0\x2d\xb5\x49\x6a\x4e\x86\xbb\xfa\ -\x2c\x30\xea\x69\xbe\x6a\x73\x83\x97\xee\x5c\x62\x66\xd4\xc7\x91\ -\x57\xce\xb6\x5b\x03\x6d\x3f\x59\xa7\xb7\xe8\xd9\x0b\x42\x90\x2c\ -\xd0\xbd\x47\x35\x57\xf3\xac\xa9\x26\x2f\xdf\xb9\xc4\x81\xf1\x36\ -\x05\xd5\xfb\xdd\x8a\x5e\x52\xaa\x41\x75\x82\x5b\xa4\xe2\xe7\xac\ -\x65\xc7\xa0\x28\x81\xcc\x2b\x80\x55\x49\xbf\x67\x28\x87\x9f\xab\ -\x4e\xb2\xcd\xcb\xe8\x30\x0f\x4b\xbc\xa5\x37\x33\xea\xf3\x75\x3b\ -\x97\xb8\x63\xb2\x49\xc5\x31\xeb\x7a\x71\xb5\x01\x3f\x48\x6e\xad\ -\x82\x6c\x79\x00\x17\x63\x89\xb7\x3e\xa7\x4a\x11\x2f\xda\x5a\xe7\ -\xc5\xdb\x97\x99\x2e\x45\xd9\xcd\x0b\x08\x28\x8d\x41\x71\x84\x57\ -\x08\xc9\x7f\xe9\x0c\x9c\xcd\x3c\x19\x7d\xfc\x17\x62\x61\xab\x94\ -\xfc\x52\x79\x9c\x67\x17\x33\x5c\xe5\x37\x56\xd0\x3c\x6f\x4b\x83\ -\xaf\xd9\xb6\xcc\xe6\x52\xd4\x5d\xfb\x55\x11\x40\xa4\x13\x56\x00\ -\x02\x4a\x05\x9b\x5d\x81\xea\x60\x89\x9b\x96\xf6\x8c\xf8\xbc\x6c\ -\xd7\x12\x77\x4c\x35\x33\xeb\x0d\x48\x05\xb5\x49\x54\xa1\xc2\x77\ -\x02\xdf\x09\xc8\xac\x7b\x01\x99\x56\x00\x1d\xd7\xdf\x13\x82\xff\ -\x58\x1c\xe1\x1b\x2a\x13\xd9\x6b\xeb\xed\xc6\xfa\x37\x8d\xf8\xbc\ -\x74\xc7\x12\xb7\x4e\xb4\xf0\xae\xe3\x05\x8d\x22\x41\x10\x8a\xc4\ -\x04\x52\x88\xd8\x03\xc8\xd8\xed\xbc\x2c\x16\x18\x71\x35\x77\x4e\ -\x37\x78\xd1\xb6\x65\x26\x8b\x51\xda\x4b\x5a\x13\xe5\x42\x65\x13\ -\x55\xa7\xc0\x4f\x5a\xcb\x8b\xb2\x1e\x0a\x64\x56\x01\xcc\x1c\x9a\ -\xc5\xc6\x6f\xe7\xb7\xba\x45\x7e\xa8\xb2\x09\x27\x6b\x33\xfb\xbb\ -\x49\xab\xe7\x4c\x37\x78\xf1\xb6\x3a\x53\xa5\xeb\x7f\x29\xc3\x08\ -\x82\x30\xb9\xb5\x4b\x01\xc5\x0c\xe7\x51\xd6\xa2\xab\x6c\x67\x46\ -\x7d\x5e\xba\x73\x89\xdd\x23\x7e\x26\x77\x0a\x0a\x15\xa8\x8c\xb3\ -\x5b\x2a\xde\x62\x61\x57\xda\xeb\xb9\x12\x99\x54\x00\x2b\x1a\xd3\ -\x70\xbb\x72\xf9\xe9\xea\x24\x9b\xdc\x42\xda\xab\xba\x10\x0b\x4c\ -\x16\x23\x5e\xbc\x7d\x99\x67\x4e\x36\x29\xad\x33\xd6\x5f\x0b\x41\ -\x2c\xfc\x41\x82\x46\x4d\x4a\x28\x16\xb2\x26\x3a\xeb\xc3\x02\xe3\ -\x05\xcd\xd7\x6c\xab\xf3\xec\xa9\x06\xc5\x0c\x86\x04\xa5\x51\x28\ -\x8d\xf0\x0a\x21\xf8\x8f\xd6\xe2\x65\xd5\x0b\xc8\xa4\x02\x00\xb0\ -\x96\x31\x29\xf9\xe9\xf2\x18\x77\x64\xed\xd0\x0e\x29\x60\xcf\x88\ -\xcf\x4b\x76\x2c\x73\x53\x2d\xe8\x89\x15\x0a\x22\x41\x14\x25\xe7\ -\x90\x2b\x15\x87\x00\x83\x8a\x25\x2e\xa5\x7e\xd6\x54\x93\xe7\x6d\ -\xa9\x67\x6e\xbb\x50\x2a\xa8\x4c\x20\xdd\x22\xdf\x0b\x7c\x83\xcd\ -\x68\x28\x90\x39\x05\xd0\x69\xf2\x11\xc0\xeb\xbd\x0a\xaf\x2e\x8f\ -\x67\x27\xee\xef\x66\xf9\x6f\x9d\x68\xf1\x35\xdb\xea\x6c\x2a\x46\ -\x3d\x7b\xe9\x82\x10\xb4\x4e\xe6\xb3\x5a\x0b\x8e\x8a\xb7\x01\x07\ -\x99\x6e\x48\x70\x60\xbc\xcd\xd7\x6e\x5f\x66\xaa\xd4\xbb\xe7\xd1\ -\x0b\x9c\x02\x54\x26\x98\x54\x0e\x3f\x0e\xec\x85\xec\x29\x81\x4c\ -\x29\x80\x55\x37\xe7\x99\x8e\xc7\x8f\x56\x26\x28\x67\xa5\xd8\xc7\ -\x02\x45\x65\xb8\x73\xba\xc1\x9d\x9b\x1b\x37\xe4\xf2\xaf\x45\xdb\ -\x8f\xb7\x02\x93\xc2\x51\x36\xd5\x12\xe0\x5e\xd3\x2d\xb8\xda\x59\ -\x4d\x70\x2b\x65\x1d\x14\x6b\x50\x1c\xe1\x05\x42\xf0\x63\xd6\x92\ -\x39\x9f\x2b\x53\x0a\x00\xc0\x5a\x6a\x42\xf1\xa6\xd2\x28\x07\x0a\ -\x19\x39\xa5\xd7\x12\x97\xaa\x3e\x7f\x4b\x83\xdb\x37\xb5\xf0\x64\ -\xef\x63\xce\x56\x7b\x55\x17\x60\x02\xb8\x0e\x38\x4e\x7a\x09\xb4\ -\x5e\x3b\x3a\x96\xb8\x66\xe0\x6b\xb6\xd5\xd9\x33\xe2\x67\x66\x77\ -\x43\xc8\x95\x50\xe0\x75\xc0\x2b\xb3\x16\x0a\x64\x46\x01\xac\xba\ -\x29\xaf\xf2\xca\x7c\x6b\x56\x3a\xfc\x2c\x71\xf7\xde\xf3\xb7\xd4\ -\xd9\x37\xde\xee\x5b\xd6\xb9\xe5\xc7\xe5\xc0\x49\xe1\xb9\xf1\x57\ -\xd2\x48\x00\x0b\x8d\x76\xef\x3f\xaf\x05\x6a\x9e\xe6\xab\xb7\xd6\ -\x39\x30\xde\xce\x4c\x95\xa3\xe3\x41\x65\x82\xa9\x4e\x28\xb0\x23\ -\xed\xf5\xac\x26\x33\x0a\x00\xc0\x5a\x76\x29\x87\x1f\xac\x8c\x53\ -\xcd\xc2\x81\x9d\x16\xa8\xb9\x86\xaf\xde\x5a\x67\x66\xb4\x7f\x56\ -\xc5\x12\x17\x01\xd9\x84\x14\x80\x25\xde\x01\xf0\x9c\x64\x2e\x28\ -\x88\x5f\x34\x3f\x80\x47\x8f\x4b\x3e\xf8\x8f\x0e\x9f\xb8\x4f\xf5\ -\xe5\x7e\x76\xbd\xb5\xe7\x6e\xc9\x96\x12\x28\xd6\xa0\x50\xe5\x85\ -\x42\xf0\xbd\xd6\xe2\x64\xc5\x0b\xc8\x44\x14\xd8\x49\xfc\x29\x21\ -\xf9\xfe\x62\x8d\x17\x66\xe1\xdc\xbe\xd5\x2f\xd2\xee\x11\xbf\xef\ -\xd7\xf2\x03\xd1\xf3\xb1\x5f\x57\xc2\x73\xfb\xdb\x09\x28\x3a\x5f\ -\xda\xc2\xd9\x45\xc1\xc3\x8f\x4b\xbe\xf0\x88\xe4\xf8\x49\x49\xbd\ -\x09\x2f\x7b\xbe\xee\xdb\x67\x8d\xf3\x35\x96\xe7\x6e\xae\xa3\xa4\ -\xe5\xf0\x5c\x29\x51\xef\x6a\xcd\xfb\x11\x87\x02\x6e\xd8\xe6\x7b\ -\xc2\x16\x7f\x8b\xe0\x33\xe9\xae\x28\x26\x13\x0a\xa0\xc3\x33\x1d\ -\x8f\xef\x28\x8f\xa3\xd2\x6e\xf1\xed\x6e\x31\x3d\x7f\x4b\x6c\xf9\ -\xfb\x8d\x31\xd0\x6c\x5f\x30\x01\xac\xef\x14\xbc\xfe\xf4\x01\x74\ -\x05\xbf\xe9\xc3\x13\x4f\x4b\xbe\xf4\xa8\xe4\xa1\xc7\x24\x67\x17\ -\x04\x51\x67\x97\x43\x08\x18\xa9\x58\x24\xf4\x74\x16\xe1\x6a\x2c\ -\xf1\xac\x81\x67\x4f\x35\xd0\x46\xf0\xf0\x42\x31\x75\x25\xe0\x16\ -\xa1\x34\xc2\x6e\x1d\xf0\x46\x63\xf8\x91\x99\x43\xb3\xf5\xb4\x67\ -\x09\xa6\xae\x00\x3a\xd6\xbf\x28\x14\x3f\x50\x1c\x61\xaf\x9b\xd0\ -\x78\xaa\xcb\xd1\xb5\x1e\xcf\x99\x6e\xb2\xb7\xcf\x96\xbf\x8b\x36\ -\xd0\x4a\xb0\x13\x50\xd0\xdb\x4e\xc0\xae\xd0\x47\x06\xe6\x3a\xd6\ -\xfe\x8b\x8f\x48\x9e\x38\x29\x69\xb6\x3b\xdf\x23\xce\x2b\x1c\xcf\ -\x85\x6d\xd3\xfd\x97\xc6\xee\xb3\xfc\xaa\xcd\x0d\x2c\xf0\xf0\x7c\ -\x31\xf5\x6d\xc2\xd2\x28\xf8\x0d\xbe\xd1\x6f\xf0\x01\xe0\x7d\x33\ -\x87\x66\x53\x1d\x28\x9a\xaa\x02\x58\x89\x83\x04\x2f\x71\x8b\x7c\ -\x4b\x39\x03\x43\x3d\x1d\x61\x79\xe6\x54\x93\x83\xe3\xad\x44\xdc\ -\x71\x41\xec\x01\x24\xd9\x08\x04\x50\x2a\xde\xb8\x07\xd0\xbd\x3d\ -\xcd\x36\x1c\x3b\x19\x5b\xfb\x87\x8f\x4a\xe6\x16\x04\x91\xe9\x28\ -\x86\x8b\xee\xa1\xb1\xb0\x65\xd2\xb2\x73\x4b\x32\xd5\x7b\xdd\xed\ -\xdb\xe7\x4c\x37\xf0\xb5\xe0\xf1\xc5\x74\x77\xe2\x94\x0b\xe5\x31\ -\xc6\x23\x9f\x37\xea\x90\x4f\x0a\xc9\xd3\x69\xae\x27\x75\x0f\xc0\ -\x1a\xaa\xd2\xe1\xfb\xca\xa3\x4c\xa5\x7d\x72\xaf\x14\x70\x70\xa2\ -\xcd\x2d\x13\xad\x44\x93\x47\xc6\x80\x9f\x60\x1f\x80\x10\x50\x2a\ -\xda\x95\x13\x82\xae\xe9\xdf\x72\xde\xda\x9f\x59\x10\x3c\xf4\xb8\ -\xe4\xcb\x8f\x4a\x8e\x3f\x7d\x91\xb5\x17\x97\xff\xf7\x07\xf7\x18\ -\x6a\xe5\xe4\xca\x77\x2d\x50\x71\x0c\xcf\xdd\xdc\xa0\x1d\x49\x9e\ -\x6a\xb8\xa9\x6e\x30\x15\x6b\xd0\xae\xf3\xd5\xad\x45\xbe\x19\xc1\ -\xdb\xd3\xf4\x02\x52\x53\x00\xab\xac\xff\xcb\xdd\x22\x2f\x2f\x64\ -\xa0\x7b\x7a\xcf\x88\xcf\x73\xa6\x9b\x7d\xd9\xe7\xbf\x12\x91\x16\ -\x04\x41\x82\x21\x40\xa7\x11\xe8\x5a\x14\x80\xec\x7c\x6f\xbd\x25\ -\x38\x7a\x42\xf0\xe5\xaf\x48\x1e\x39\x2a\x99\x5f\xec\x58\x7b\x71\ -\xf5\x04\xa6\xb5\x50\x29\x59\x6e\xdd\x6b\xae\x4b\xf9\xdc\x08\xdd\ -\x21\x2d\xcf\xdb\x52\xe7\x9f\x9e\xac\x31\xef\x3b\xa9\x29\x01\x21\ -\xa1\x3c\x46\x31\x68\xf2\x7d\x3a\xe0\xc3\x42\x72\x2c\xa5\xa5\xa4\ -\xbb\x0d\x68\x0d\xe3\x4a\xf1\x03\xe5\x51\x26\xd2\xac\xf8\xb3\xc0\ -\xe6\x72\xc8\x73\xa6\x1b\x14\x55\x6f\x2b\xfc\xd6\x43\x10\xc6\x5f\ -\x49\xb6\x02\x17\xd6\xe1\x6d\x75\xb7\xef\xa2\x08\x8e\x9f\x12\x7c\ -\xf4\x5f\x15\xff\xeb\x7d\x0e\xef\xfa\xa0\xcb\xbf\xdc\xaf\x38\xb3\ -\x10\x9f\x05\x28\xd7\x79\xf4\x97\xb5\xb0\x6b\xab\x65\xdb\x74\xf2\ -\xf7\x18\xce\x17\x0b\x3d\x7b\xba\x49\x49\x25\x58\x75\xb5\x06\x5e\ -\x09\x8a\x55\xee\x10\x82\xbb\xad\x49\x6f\x6e\x40\x2a\x62\x77\x41\ -\xec\x5f\xe6\x45\x69\x5a\x7f\x0b\x8c\x78\xf1\x20\x8f\xb1\x42\x3a\ -\x0d\x25\x7e\xc2\x9d\x80\xea\x2a\x9d\x80\x5d\x61\x5e\x6a\x08\x8e\ -\x1c\x17\x7c\xf1\x11\xc5\x91\xe3\x82\xc5\xba\x40\xaf\xd3\xda\xaf\ -\x79\x5d\x05\xb7\xdd\x6c\x28\x79\xfd\xcb\xfe\xaf\x87\xdd\x23\x3e\ -\x4b\x81\xe2\xbe\xd3\x95\xd4\x76\x06\x84\x84\xd2\x28\x9e\xdf\xe0\ -\xf5\x91\xcf\xfb\x80\x23\x69\xac\x23\x35\x0f\xc0\x1a\x46\xa5\xe2\ -\xbb\x8b\x35\x46\xd3\xec\xf3\x2f\x28\xcb\xb3\xa6\x9a\x6c\x2e\x87\ -\xa9\x08\xbf\x00\xc2\x30\xb6\xb2\x49\xa1\xe4\xa5\xb3\x00\xba\xd6\ -\x5e\x6b\x78\xea\x8c\xe0\xa3\x9f\x8e\xad\xfd\xbb\xff\xc6\xe5\xde\ -\x07\x24\x0b\x4b\x71\x9d\xc2\x7a\xad\xfd\xc5\x58\x0b\x63\x35\xcb\ -\x81\xdd\xe9\x58\xff\x0b\x3e\xbf\x80\x5b\x26\x5a\x7d\xaf\xef\xb8\ -\x1a\x6e\x09\x0a\x15\x6e\x13\x92\x6f\x0d\x5b\x88\x34\xbc\x80\xc4\ -\x3d\x80\xd5\xd6\xdf\x2b\xf1\x75\xc5\x14\x5b\x7d\x05\x70\x70\xbc\ -\xcd\xbe\xb1\x74\x5f\x84\x20\x14\x44\x3a\x99\x23\x74\xad\x05\xa5\ -\xec\x4a\x27\x60\xf7\x92\xdd\xd8\xfe\x8b\x8f\x4a\x1e\x3d\x16\xc7\ -\xf6\xe6\x06\xac\xfd\x5a\xd7\x9d\xd9\x69\x98\x1c\x4b\xbf\x77\xbf\ -\xbb\x3d\xf8\xac\xa9\x26\x0b\x6d\x87\x79\xbf\x3f\x55\x89\x57\x43\ -\x08\x28\x8d\xe2\xf8\x0d\x5e\x63\x0d\x7f\x0e\x1c\x4f\x7a\x0d\xa9\ -\x78\x00\x46\x53\x92\x8a\x6f\x2f\x8e\x30\x26\x53\x8a\xfd\x2d\xb0\ -\xa5\x12\x72\xeb\xa6\x16\x4a\xa4\xfb\x4a\xb6\x83\x4e\x2b\x70\x42\ -\xd7\x73\x9c\x78\x16\x40\x64\x62\x6b\xff\xb1\xcf\x28\xfe\xe8\xfd\ -\x0e\xef\xfa\x90\xcb\xa7\x3e\xaf\x38\xbb\xd0\xfb\xaa\x44\xcf\x8d\ -\xdd\x7f\x37\x23\x53\x9d\x2c\x30\x51\x8c\x78\xd6\x74\xba\x03\x45\ -\xdc\x22\x78\x65\xee\x40\x70\x17\x22\xf9\x46\xa1\x44\xc5\xaf\xfb\ -\xe1\x84\xe0\xab\x9c\x02\x2f\x4d\xab\xe4\xb7\xdb\xe0\x73\xe7\x74\ -\x83\x9a\x9b\xfe\x20\x89\xb6\x9f\x6c\x27\xa0\x14\xf0\xe8\x31\xc9\ -\x3f\xde\x2b\x78\xf8\xa8\x64\xe1\x1a\x32\xf9\xd7\x83\xb5\x30\x35\ -\x61\x99\xd9\x91\xbe\xf5\xbf\x98\xdd\x23\x01\xa7\x1a\x6d\x0e\xcf\ -\x97\x52\xb9\xbe\x90\x50\xac\x51\xf0\xeb\xbc\x46\x87\xbc\x5f\x48\ -\xe6\x92\xbc\x7e\xe2\x1e\x80\xd1\xb8\x52\xf1\xba\x62\x8d\x2d\x69\ -\x35\xfc\x74\x87\x48\xa4\x15\xf7\xaf\xc6\x92\x6c\x27\xa0\x10\xb0\ -\x54\x17\x7c\xf0\xe3\x0e\xff\x72\x7f\x6c\xed\xaf\x25\x93\x7f\xbd\ -\x9f\xf1\xc0\x6e\xc3\x68\x2d\x7b\x0a\xc0\x11\x96\xdb\x27\x5b\xa9\ -\x0e\x13\xf1\xca\xe0\x95\xf8\x6a\x04\x5f\x0b\xc9\x7a\x01\x89\x2b\ -\x00\x21\xd8\xaf\x3c\xee\x2a\xa6\x94\xf9\xb7\xc0\xb6\x4a\xc0\xc1\ -\x84\x8b\x7d\xae\x44\xdb\x4f\xae\x13\x10\xe2\xd2\xe3\x20\xec\x9f\ -\xc5\x5f\x8d\x05\xca\x85\xd8\xfd\xcf\x54\xeb\xe9\xaa\xf5\x8d\x78\ -\x9a\xdb\x36\xb5\x28\xa8\x74\x54\x80\x54\x50\xa8\x31\x22\x15\xaf\ -\x32\x9a\x44\x8b\xe1\x13\x7b\x26\x33\x87\x66\x91\x0a\x84\xe0\xdf\ -\x14\x2a\xec\x4e\xeb\x64\x9f\x82\xb2\xdc\xba\xa9\xb5\xee\x03\x3b\ -\xfa\x8d\x25\x0e\x01\x92\x54\x00\x89\x7e\x3e\x03\xdb\x37\x1b\x76\ -\x6e\xce\xc6\xfd\xbe\x1c\xbb\x47\x7c\xf6\x8c\xf8\xa9\xad\xb1\x50\ -\x01\xc7\xe3\x65\x42\x70\x4b\x92\xd7\x4d\x54\x29\xeb\x90\x2d\xd2\ -\xe5\x9b\x0b\xd5\xf4\x8c\xc1\xde\x51\x9f\x1d\xd5\xf4\x5d\xff\x2e\ -\xd6\xc6\x21\x40\x56\xd6\xd3\x6b\xa4\x84\x5b\x67\x0c\xe5\x62\xb6\ -\x3f\xa3\xdb\x99\xf5\x98\x56\x2d\x88\x72\xa1\x50\x61\xbb\x90\x7c\ -\xfd\xd8\xd6\xe4\xc2\x80\x44\x04\x71\xd5\xd6\xdf\xd7\x78\x65\x9e\ -\xed\xa5\x90\x6f\xe9\x4e\x8b\xb9\x65\xbc\x85\x93\x72\xd6\x7f\x35\ -\x71\x23\x50\x06\x87\xdb\xf7\x00\x6b\xa1\x56\xb1\x1c\xdc\x63\xb2\ -\x30\xdc\xe9\xca\x6b\x05\x36\x95\x22\xf6\x8f\xa5\x37\x44\xa4\x50\ -\x45\x29\x87\x7f\x3b\x7f\x82\xc9\xa4\xae\x99\x98\x25\x36\x9a\x82\ -\x54\x7c\x63\xb1\x42\x25\x8d\x7e\x7f\x01\xdc\x3c\xe6\xb3\x29\x63\ -\x93\x63\xb5\x89\xb7\x01\x87\x11\x6b\x61\xcf\x76\xcb\xe6\x4d\x36\ -\xd5\xca\xbf\xf5\x12\xbf\x23\x6d\xb6\xa4\x94\x1c\x76\x0a\xe0\x16\ -\x79\xa6\x80\xe7\x41\x32\x5e\x40\x62\xa2\x28\x04\x7b\x1c\x8f\x17\ -\xa5\x71\xb0\x67\x7c\x90\x44\xc4\xcc\x68\x3b\x53\x96\xa8\x7b\x26\ -\x60\xdb\x27\x13\xf3\x0f\x7b\x8d\xe3\xc4\xc9\xbf\x42\xea\x3d\xa7\ -\xeb\xa3\xbb\x3d\x7c\x70\xbc\x85\x2b\x93\x57\x01\x52\x81\x57\x65\ -\x4c\x2a\xee\xd2\x61\x32\x5b\xf4\x7d\x57\x00\x33\x87\x66\x91\x0e\ -\x08\xc1\x2b\xbd\x12\xbb\xd3\x28\xfc\x51\x02\x0e\x4c\xb4\x53\x8b\ -\xef\xae\x84\xd6\x02\x3f\x48\xee\x4c\xc0\xa4\xb0\x16\x36\x8d\x5a\ -\x6e\xde\x95\xed\xe4\xdf\x25\xeb\x06\x76\xd6\x02\xb6\x55\xd2\xf1\ -\x02\xbc\x32\x28\x8f\x97\x0a\x99\xcc\xf0\xd0\x44\x3c\x80\xa8\x4d\ -\x4d\xba\xbc\xb2\x50\xc5\x49\xfa\x90\x0f\x0b\x8c\x15\xa2\xf8\x04\ -\x9f\x64\x2f\xbd\xbe\x7b\xa3\xe3\x73\x01\x87\x0d\x0b\xec\xbb\xc9\ -\x30\x31\x9a\xbd\xbd\xff\xab\x51\x50\x96\xfd\xe3\xed\x54\xb6\x05\ -\x1d\x0f\xdc\x22\x7b\x85\x4c\x26\x0c\xe8\xab\x02\x58\xa9\xfc\x93\ -\xec\x77\x3c\xee\x4c\x63\xdc\x97\x14\x71\xec\x5f\xcb\xd8\xd1\x51\ -\x5d\xc2\x68\x38\x15\x40\xc1\x85\xdb\x66\x0c\x4e\x16\xb5\xee\x55\ -\xb0\xc0\xf6\x6a\xc0\xd6\x4a\x90\xf8\x3b\x23\x04\x14\x2a\x54\xa4\ -\xe2\x95\x3a\xa4\xef\xa5\x72\x7d\xf7\x00\x84\x04\x21\x78\xae\x57\ -\x62\x3a\x69\xf7\xbf\x1b\xfb\xef\xce\xd0\x41\x11\x17\xdc\x1b\xe2\ -\xf8\x7f\xd8\x14\x80\xb1\xb0\x75\xca\xb2\x7b\xfb\xe0\x59\xff\x2e\ -\x9e\xb4\xdc\x3c\xea\xe3\xa5\x90\x0b\x70\x8b\xa0\x5c\x9e\x2b\x24\ -\xdb\xa0\xbf\x5e\x40\xdf\x15\x80\x0e\x28\x49\x87\x97\xba\xa5\xe4\ -\x3b\x0f\x05\x71\x81\x47\xd6\x0e\x8e\x5c\x4d\x3b\x48\xf6\x50\xd0\ -\x24\x10\xc0\x2d\x09\x8f\xfd\xea\x35\x16\xd8\x5a\x0d\x99\x2c\x45\ -\x89\x17\x69\xa9\x38\x0c\xd8\x27\x24\xcf\xee\xf7\xb5\xfa\xa6\x00\ -\x56\xed\xfd\xef\x74\x3c\x9e\x9d\xb4\xfb\x1f\x67\x74\x35\xbb\x32\ -\x1a\xfb\x77\x09\x02\x56\x86\x6c\x0c\x03\xd6\x42\xb5\x6c\xb9\x65\ -\x26\xfb\x7b\xff\x57\xa3\xa8\x0c\xbb\x47\x7c\x54\xc2\xdb\xd6\x42\ -\x80\x57\xa2\x2c\x25\x5f\xa7\x43\xfa\xda\x3f\x99\x44\x08\xf0\x1c\ -\xa7\xc8\xce\x34\xb2\xff\x3b\x6b\x01\x13\x3d\x3c\xc1\xb7\x1f\x04\ -\x11\x89\x76\x02\xf6\x1b\x6b\x61\x67\x67\xec\xd7\xa0\x7f\x2c\x01\ -\xec\xa8\x06\x54\x53\xe8\x18\x75\x4b\xa0\x5c\x9e\x27\x24\x9b\xfa\ -\x79\x9d\xbe\x2a\x80\x85\xa7\x10\x52\xf2\x1c\xaf\x48\x31\x69\x0b\ -\x57\x54\x96\x3d\x23\x01\x2a\xe3\x66\xa8\xd5\x16\x89\x9e\x0a\xdc\ -\x6f\x94\x8a\x93\x7f\xa5\x0c\x1c\xed\x76\xa3\x74\xab\x47\x77\x54\ -\x93\xf7\x22\x95\x07\x4e\x81\xfd\x42\x70\x2b\xf4\x2f\x0f\xd0\x57\ -\x05\x30\x3a\xcd\x98\x74\xb8\xd3\x49\x78\x14\xbb\xb5\x30\x59\x0a\ -\x99\x2c\x65\xa7\xe6\x7f\xcd\x75\xd2\x39\x11\x28\xcb\x8b\xbc\x96\ -\xcf\x93\xa1\xb1\x5f\xbd\x42\x89\xd8\x93\xf4\x12\xde\x12\x94\x12\ -\xdc\x12\xe3\x42\xf2\xdc\x52\x1f\x3b\x67\xfb\x1b\x02\x08\x76\x39\ -\x1e\xfb\x92\x9e\xf7\x2f\x65\x3a\x0f\xed\x5a\xb1\xc4\x1e\xc0\x30\ -\x29\x80\xbd\x3b\x6d\x26\xc6\x7e\xf5\x92\xa9\x72\xc4\xa6\x62\xf2\ -\xc9\x40\xb7\x88\x94\x0e\x2f\x68\x2c\xd0\xb7\xfa\xd9\xbe\x28\x80\ -\x99\x43\xb3\xdd\xa3\xa0\x9e\xed\x14\xd8\x9c\xe4\xd0\xcf\x6e\xf2\ -\x2f\x0d\xb7\xed\x9a\xd7\x3a\x64\x9d\x80\x9e\x0b\xcf\xb8\x59\x67\ -\x66\xec\x57\x2f\xe8\x9e\x2c\xb4\xbd\x1a\x24\x9e\xa8\x75\x3c\x70\ -\x5c\x0e\x20\x98\xee\xd7\x35\xfa\xe6\x01\xf8\x0d\xa4\x50\xdc\xe1\ -\x16\x49\xbc\xf3\x7f\x73\x39\xa4\xe6\x65\xdf\x0d\x35\x16\x9a\xed\ -\xe1\xe8\x04\xec\x8e\xfd\xda\x9b\xc1\xb1\x5f\x37\x8a\x00\xb6\x56\ -\x42\x4a\x09\xcf\x90\x90\x0e\x28\x8f\x5d\x42\x70\xb0\x6f\xd7\xe8\ -\xd7\x0f\x56\x1e\x35\xe9\x70\x47\xd2\xf1\xbf\x12\xf1\xc3\xca\x52\ -\xcb\xef\xe5\x88\x22\x56\x8e\xd3\x1a\x06\x0e\x66\x74\xec\xd7\x8d\ -\xd2\x2d\x27\x9f\x28\x26\x5b\xb1\x25\x04\xb8\x45\xaa\x42\xc6\x72\ -\xd4\x8f\x44\x60\xdf\x14\x80\x10\x4c\x2b\x87\x5d\x49\x9e\xf8\x63\ -\x81\xb2\x63\x98\x2a\x65\xbf\xb4\x4e\x00\x61\x24\xf0\x87\xa0\x13\ -\xd0\x12\x1f\x36\x7a\x6b\x46\xc7\x7e\xf5\x82\x82\xb2\x6c\x29\x87\ -\x89\x3f\x2a\xa7\x80\x90\x0e\x77\xb4\x97\xfa\xe3\x49\xf7\xe7\x79\ -\xc5\xb3\xe6\xf6\x3a\x1e\x9b\x45\x92\xf1\xa0\x85\xf1\x62\x94\xd9\ -\xba\xff\x8b\x89\x34\x04\xd1\xe0\x77\x02\x5a\x03\xdb\xa7\xb3\x3f\ -\xf6\xeb\x46\x10\xc0\xe6\x4a\x98\x78\x83\x90\x72\x41\x39\x1c\x90\ -\xaa\x3f\xf5\x00\x3d\x57\x00\x33\x87\x66\x51\x0a\x84\xe4\xa0\xe3\ -\x51\x4d\x32\x71\x22\x44\x1c\xff\xa7\xd1\xcb\x7d\x3d\x68\x13\x2b\ -\x81\x41\x67\x50\xc6\x7e\xdd\x28\xe3\x05\x9d\x78\x59\xb9\x8a\xf3\ -\x00\xdb\x11\xfd\xe9\x0b\xe8\x8b\x07\xd0\xae\xe3\x48\xc5\xad\xaa\ -\x90\xac\x47\xe8\x4a\xcb\x64\x29\x1a\x18\x8b\xaa\x75\xb2\x47\x82\ -\xf5\x83\x41\x1a\xfb\x75\x43\x9f\x13\x28\x3a\x86\xe9\x72\x82\xe7\ -\xb8\x13\x37\xd3\x29\x97\x51\x21\xd9\xdb\x0f\x63\xda\x17\x01\x95\ -\x8a\x8a\x74\x98\x49\x72\xee\xbf\x05\x2a\xae\x61\xac\x30\x18\x26\ -\x35\xce\x01\x0c\xbe\x07\xd0\x1d\xfb\xb5\x65\x40\xc6\x7e\xdd\x08\ -\x12\x98\x2c\x45\x89\x57\x97\x3a\x1e\x25\x29\x99\xe9\x47\x42\xbd\ -\x2f\x0a\x40\x08\x26\x94\xc3\x76\x95\x70\xfc\x3f\xe2\xe9\x54\x8e\ -\xf7\xbe\x5e\x82\x50\xa0\x13\x3a\x13\xb0\x5f\x38\x0e\xdc\x7e\xb3\ -\xc1\x1b\x90\xb1\x5f\x37\xca\xa6\x62\x94\xf8\x76\xa0\x72\x40\x28\ -\x6e\x6e\xcc\xf5\xbe\xa3\xb6\x3f\x0a\x40\xb2\x59\x3a\x4c\x26\x39\ -\xfc\x53\x88\x58\x3b\x3b\x03\x12\xff\x43\x3c\x0b\x40\x9b\xc1\x95\ -\x7f\x6b\x61\xd3\xd8\xe0\x8d\xfd\xba\x11\xca\xae\xa1\xe6\x26\xeb\ -\xb6\x49\x17\xa4\x62\x9b\x74\xe9\xf9\x3c\xed\x9e\x8b\x68\xe7\xb4\ -\x99\x6d\xca\x4d\x76\xfa\xaf\x12\x96\xf1\xe2\xe0\xc4\xff\xd0\x51\ -\x00\x03\x1c\x02\x58\x60\xff\x80\x8e\xfd\xba\xde\xcf\x5b\x90\x86\ -\xf1\x84\xeb\x01\xa4\x02\xa9\xd8\x21\x25\x63\x3d\xff\xd9\xbd\xfc\ -\x61\x33\x87\x66\x51\x1e\x20\xd9\x23\x9d\xe4\x8e\x38\x8a\x13\x34\ -\x96\x51\x6f\xb0\xa4\xc9\x0f\x44\x62\x67\x02\xf6\x83\x82\x1b\x67\ -\xff\xb3\xde\x71\xd9\x4b\xa4\x80\xb1\x82\x4e\xf4\xec\x00\x29\x41\ -\x39\x8c\x21\x98\x80\xde\xee\x04\xf4\xdc\x46\x9f\xfc\x32\x42\x4a\ -\xb6\x2b\x37\x59\x63\x5c\x76\x0c\x25\x67\xb0\xd2\x50\x7e\x98\xfc\ -\x2c\x80\x6e\x43\x8b\xeb\x72\x43\x2f\x71\x3c\xf6\xcb\xb0\x7b\xdb\ -\xc6\xb0\xfe\xab\x19\x2d\xe8\x44\x2b\x4d\x85\x00\xe9\x30\x2a\x24\ -\x53\xbd\xfe\xd9\x3d\x4f\x2a\x8c\xdf\x44\x51\x48\x76\x25\xd9\x00\ -\x84\x8d\x1b\x80\xbc\x14\xcf\x79\xbf\x1e\xfc\x20\x16\xc8\x24\x0e\ -\xe8\xb4\x16\x5c\x15\xc7\xec\x07\xf7\x18\xaa\x65\xcb\xc7\x3e\xe3\ -\xd0\xf2\xaf\x2f\x07\x21\x80\x83\x7b\xec\x40\x8f\xfd\xba\x5e\x2a\ -\x8e\xa1\xa0\x0c\x81\x51\xc9\x58\x39\x01\x52\x51\x80\xd8\x03\xe8\ -\x25\x3d\x57\x00\x02\x4a\xd2\x61\x2a\xd1\x1d\x00\x11\x0f\x6e\x50\ -\x03\x50\xff\xdf\xc5\x00\x2d\xbf\xbf\xaf\x4f\xd7\xda\x97\x4b\xb0\ -\x6b\x8b\xe1\x19\xfb\x0c\x07\xf6\x18\xa6\xc7\x2d\x87\x8f\x48\xcc\ -\x75\x26\x20\xe3\xb1\x5f\xb1\xfb\x2f\x18\xee\xe2\x9f\xb5\x28\x3a\ -\x86\xa2\x63\x59\x4e\xb0\x24\x40\x2a\x5c\x29\xe3\xce\x5a\xdd\xc3\ -\x14\x44\xef\x15\x80\xa4\x26\x25\x53\x49\x96\x00\x4b\x01\x35\x6f\ -\xb0\x5e\x46\x63\xa1\xd5\x8e\xd7\xdb\x4b\x35\xd0\xb5\xf6\x8e\x82\ -\xc9\xb1\x78\x38\xc7\xed\xfb\x0c\xbb\xb6\x1a\x2a\x9d\xac\x8c\x00\ -\x5a\x9d\x59\x84\xd7\x75\x0d\x0b\xbb\xb6\x1a\xb6\x4d\x0d\xfe\xd8\ -\xaf\x6b\xfe\xec\xc4\x05\x67\x15\xc7\x70\xa6\xd7\x0f\xef\x0a\x48\ -\x85\x14\x92\xe9\x5f\x7b\x35\xfc\xc4\x3d\xbd\xfb\xb9\xbd\xdf\xbd\ -\x15\x54\xa5\x43\x25\xc9\x12\x60\x47\x58\xaa\x09\x6f\xcd\xdc\x28\ -\xc6\x74\x3c\x80\x1e\xbd\x44\x5d\x6b\x5f\x2c\xc0\xce\x2d\x86\x3b\ -\xf6\x1b\x6e\xd9\x6b\x98\x1c\xb3\x38\xb2\xa3\x18\x56\x7d\x7f\xb3\ -\x25\xae\x3b\xff\xd0\x1d\xfb\x55\xf4\x06\x47\xe1\xf6\x12\x25\x2d\ -\x25\x37\xc1\xfd\xdb\x38\x07\x80\x90\x6c\xfa\xe1\xdf\x47\x56\x27\ -\x7b\xa7\x77\x7b\xa6\x00\x56\x0e\x01\x11\x8c\x0a\x49\x25\xa9\x9b\ -\x63\x01\x47\x5a\xca\xee\x60\xd9\xa2\xf8\x54\xe0\x1b\xff\xec\xd6\ -\x82\x23\x61\xbc\xb3\x1f\x7f\xc7\x7e\xc3\x9e\xed\x86\x6a\xe9\xfc\ -\xf7\x98\x35\xfe\x5d\xbd\x75\x7d\xa3\xc8\xac\x85\x89\x51\xcb\xfe\ -\xdd\x83\x75\xbf\x7b\x89\x00\x2a\x8e\x4e\x2e\xcb\xdd\xcd\x13\x09\ -\xc6\xbd\x0a\x0e\xd0\xb3\xe3\x64\xfb\xe3\x01\x48\xbc\x24\x3d\x80\ -\x82\xb2\xa9\x1c\xe0\x70\x23\x58\x0b\xc1\x75\xc6\x90\x17\xc7\xf6\ -\xb7\xdd\x6c\x38\xb0\xdb\x30\x35\x6e\x71\xd5\xa5\xd6\x7e\xad\x7f\ -\xdf\x1d\x45\x76\xad\xcf\xc9\x5a\xd8\xbb\xc3\x30\x39\xbe\xf1\x92\ -\x7f\x5d\x04\xe0\x29\x9b\x68\xc8\x29\x14\x48\xc9\x88\x94\x78\x64\ -\x55\x01\x74\x5e\xa6\x11\xa1\xfa\x7f\xa4\xd1\x0a\x16\x0a\xca\x0c\ -\xd4\x0e\x80\x20\x8e\xbf\x83\x70\xfd\x65\xc0\xd6\x76\xbc\x9d\x4e\ -\x6c\x7f\x70\x4f\x27\xb6\xdf\x12\x77\xe1\x75\x6e\xc5\xba\x7c\x43\ -\xcb\xf9\x51\x64\xd7\xaa\xa7\x3d\x17\x6e\xdf\x67\x70\xe5\xfa\xae\ -\x35\xac\x94\x1c\x83\x14\x16\x6d\x93\xb1\x74\x42\xc4\xf9\x35\x21\ -\x29\x00\xf5\x5e\xfd\xdc\xde\x7a\x00\xb1\x4a\x2c\x0a\x91\x7c\x17\ -\xe0\x20\xed\x00\x40\x2c\xfc\x7e\x78\x75\x01\xec\x5a\xfb\x4a\xd9\ -\xb2\x7b\x9b\xe5\xf6\x7d\x86\x03\x37\x19\x36\x8d\x5a\x94\xbc\xba\ -\xb5\x5f\x0b\xa3\xa1\x7d\x1d\xf9\x07\xd3\x1d\xfb\x35\xc0\x47\x7e\ -\xf5\x8a\x82\xb2\x48\x01\x3a\xa1\x1b\xd1\xa9\xb0\x2d\x41\x6f\x8d\ -\x6b\x4f\x15\x80\x54\x60\x2c\x55\x21\xfb\x7b\x9a\xc9\xc5\xb8\xca\ -\x0e\xdc\xc9\x3a\x7e\x10\x9f\x0a\xb4\x16\x5d\x6b\xef\xaa\x58\xe0\ -\x6e\xd9\x6b\xb8\xfd\x66\xc3\xce\x2d\x71\xe2\x0d\xd6\x6f\xed\x2f\ -\xa6\xdb\x85\xd8\x6c\x73\x5d\x49\xac\x83\x7b\x86\x73\xec\xd7\xb5\ -\xe2\x4a\x8b\x92\x96\xd0\x24\xf4\xe2\xc5\x0a\xa0\x8c\xa0\xa7\x3d\ -\x81\xbd\x0d\x01\x24\x20\x70\x45\x92\x43\x6e\x44\xfc\x30\xc4\x00\ -\xbd\x92\x02\x68\x07\xf1\x48\xb0\xd5\x74\xad\x7d\xb5\x1c\x1f\xac\ -\x79\xc7\x7e\xc3\xfe\x9b\x0c\xe3\x23\x16\x25\x62\x81\xef\xc5\xa7\ -\x0c\x22\x41\xdb\xbf\xf6\x87\x54\x2e\xc4\x7b\xff\x92\x8d\xed\xfe\ -\x43\x9c\x78\x96\xf4\x7e\x1b\xf7\x72\x08\x01\x48\x5c\x41\x6f\x8d\ -\x6b\x6f\x3d\x80\x38\x2e\x74\x49\x78\xca\x95\x12\x83\xe7\x01\x68\ -\x2d\x56\x1a\x81\x8c\x89\xdb\x6a\x37\x4f\x58\x6e\x9d\x89\x63\xfb\ -\x1d\x9b\x0d\x45\xf7\xbc\x8b\xdf\x4b\x81\x8b\xa2\xb8\x0c\xf9\x5a\ -\x30\x06\xb6\x6f\x1e\xee\xb1\x5f\xd7\x82\x12\x16\x99\x70\xd8\x29\ -\x62\xf7\xbf\xa7\xb3\x01\x7b\xeb\x01\x28\x40\x24\xdf\x1b\x92\xf4\ -\xe1\x8d\xbd\xc0\x98\xce\xd1\x53\x95\x38\xb6\xbf\xe3\x40\xc7\xda\ -\xd7\xe2\xd8\xd2\xd0\x3f\x2b\x1b\x46\x10\x5e\xa3\x02\x90\x32\xde\ -\xfb\x1f\xf6\xb1\x5f\xeb\x45\x88\x1b\xeb\xa5\xb8\xf6\x0b\x82\x90\ -\x08\x7a\x9c\x5f\xeb\xa9\x02\x28\x54\x20\x6c\xe1\x24\xed\x01\x08\ -\x06\xab\xa7\xde\x12\x2b\xad\x57\xbc\x20\xe2\xe0\x1e\xc3\xd6\x49\ -\x4b\xa1\x4f\xd6\xfe\x62\x04\x71\x01\x52\x78\x0d\xe5\xa4\xd6\xc2\ -\x68\xd5\x72\x60\xcf\x60\x55\x5b\xf6\x13\x29\x52\x39\xd1\x59\xd1\ -\x63\x99\xed\xe9\x0f\xeb\xc4\xb0\x89\xdf\x96\x41\x8a\xff\x21\x16\ -\xa0\x1d\x5b\x0c\xbb\xb7\xb3\x12\xdb\x27\x19\x53\x37\xdb\x10\x69\ -\xb1\xee\x17\xd8\x5a\xd8\xb3\x63\x63\x8c\xfd\x5a\x3f\x36\xf9\x11\ -\xe8\xa2\xf7\xb6\xae\xa7\x9f\xc1\xc4\x31\x6d\xe2\xd2\x38\x88\xe3\ -\x28\x5d\x27\xb6\x20\x69\x08\x54\xab\x2d\xae\x69\x10\x89\xe3\xc4\ -\xee\xff\x46\x19\xfb\xb5\x3e\x52\x31\x3b\x19\x57\x00\xb1\x5b\xa9\ -\x6d\xc2\xbb\x44\xdd\x6d\xb3\x9c\xf5\xd1\x1d\x45\xb6\x1e\x36\xe2\ -\xd8\xaf\xf5\x61\xd3\x31\x3b\x3d\xbe\x68\x4f\x15\x80\x8e\xfb\xdb\ -\x13\x3f\x93\x3b\xa9\x6a\xac\x61\x60\xa5\x0a\x70\x9d\xcf\xc8\xda\ -\x8d\x35\xf6\x6b\xbd\x58\x9b\xc2\x34\x27\x8b\xa1\xc7\x51\x58\x6f\ -\x15\x40\xec\x56\xb6\x6d\xc2\xa1\xa2\x36\xd7\xd7\xd8\xb2\x11\x31\ -\x40\xa3\xb5\xfe\x23\xc9\x8b\x85\xd8\xfd\xdf\x48\x63\xbf\xd6\xc3\ -\xf5\x54\x60\xde\xe8\x05\x3b\x72\xd5\xd3\xb6\xd7\x9e\x2a\x00\xab\ -\xc1\x5a\x7c\x92\x34\x16\x16\x42\x23\xd2\x72\xc8\x06\x0e\x63\xa0\ -\xd9\x5a\xe7\xf7\x5a\xd8\x3a\x69\xb9\x69\x03\x8e\xfd\xba\x1a\xc6\ -\xa6\xe2\x79\x46\x58\x7a\x3a\x86\xa4\xb7\x0a\x20\x2e\x55\x6b\x58\ -\xd3\x5b\x2d\x75\x35\x42\x33\xd8\xc3\x35\x93\xa4\x3b\x87\x60\x3d\ -\xb7\x4b\x00\x07\xf7\x9a\x0d\x39\xf6\xeb\x6a\xe8\x84\xdf\x39\x6b\ -\xc1\x1a\x42\x0b\x3d\x1d\x49\xdc\x5b\x05\x10\xff\xc7\x4f\x34\x04\ -\x10\xb1\x02\xd0\x66\xf0\x0f\xd9\xec\x37\xdd\x2e\xc4\xb6\x7f\xf5\ -\xef\x8d\xc7\x7e\xd9\x95\xb1\x5f\x39\x17\xe2\x6b\x99\xf8\x3b\x67\ -\x2d\x3e\x64\xd8\x03\xe8\xc4\x29\x4b\xc6\xf4\xae\x5f\x79\x3d\x04\ -\x5a\x10\xe5\x26\x6a\x5d\x84\xa1\xa0\x1d\x5c\xfd\xb5\x8d\xc7\x7e\ -\x59\xb6\x4e\x6e\xbc\xb1\x5f\xeb\xc1\xd7\x22\xb1\x4e\x40\x88\xbd\ -\x6b\x6b\x68\x60\x59\x67\x00\xb7\x3e\xfa\x51\xcb\xd0\xb0\x86\x20\ -\xc9\xa4\x5c\x64\x04\x51\x52\x5d\x59\x03\x4e\x10\xc5\x9d\x88\x57\ -\xbb\x5b\xdd\xb1\x5f\xa5\xbe\x9c\x4a\x3f\xf8\xb4\xb4\xc4\x24\x98\ -\x03\xb0\xb1\x71\x6d\xda\x1e\x1b\xd7\x9e\x2b\x00\x6b\xa9\x5b\x43\ -\x33\xa9\xa0\x51\x00\xa1\x91\xb4\xa2\x01\x6c\x08\x48\x18\x41\xdc\ -\x82\x7c\xb5\x51\x64\xd6\xc2\x58\x2d\x1e\xfb\x95\x3b\x56\x97\x62\ -\x81\x46\x28\x13\xbd\x37\xd6\x80\xd5\x9c\xb3\x36\xa3\x0a\xe0\xc8\ -\xdd\x6f\x8e\x17\x6a\xa9\x9b\x88\x66\xa2\x1e\x80\x85\x76\xae\x00\ -\xd6\x85\x1f\x5e\xda\x86\x7c\x31\xd6\xc2\xcc\xce\x8d\x3d\xf6\xeb\ -\x4a\x18\x0b\xf5\x40\x25\xba\xf5\xdc\x09\x01\xce\x45\x41\x96\x73\ -\x00\x00\x86\x86\xb5\x2c\xda\x04\x03\x47\x6d\x04\x8d\x5c\x01\xac\ -\x8b\xb6\x2f\x88\xf4\x95\x1b\x59\x3c\x17\x9e\xd1\x19\xfb\x95\x73\ -\x29\xa1\x91\x34\x42\x99\x68\xd7\x8b\x89\xc0\x5a\x4e\x9d\xf8\xbe\ -\x0c\xd7\x01\x00\x58\xf0\x8d\x66\x3e\xc9\x23\xaf\x62\x97\x4c\xe5\ -\xd6\x6a\x1d\xb4\xda\x57\x3e\x90\xd4\x5a\x98\x9e\xb0\xec\xc9\xc7\ -\x7e\xad\x89\x20\x4e\x00\x36\x13\x36\x38\x5a\xa3\x8d\xe1\xe4\x81\ -\xf7\xf7\xf6\xe7\xf6\xfc\x53\x98\x88\xb6\x35\x9c\xb2\x49\x56\x02\ -\x58\x58\x0a\x64\x5e\x12\xbc\x0e\x9a\xed\xab\x9f\x07\x90\x8f\xfd\ -\xba\x32\xcd\x50\xe2\x6b\x99\xe8\x16\xa0\x89\xf0\xad\xe1\xc9\x5e\ -\x9e\x0a\x04\x7d\x50\x00\xdb\x6f\x27\x34\x9a\x13\xbd\x5e\xe8\x15\ -\x11\xb1\x07\x10\xe8\xbc\x16\xe0\x4a\x58\x62\x0f\xe0\x72\x05\x2c\ -\x16\x28\x15\xcf\x8f\xfd\xca\x59\x9b\xe5\x50\x25\x37\x0b\x90\xd8\ -\x2b\xd3\x21\x4d\x2c\xa7\x7a\xfd\xb3\x7b\xfa\x9c\x8f\xdc\xfd\x66\ -\xe6\x9e\x00\x6b\x38\x61\xa2\x64\xab\x01\x1b\xa1\xa4\x19\xe6\xaf\ -\xed\x95\xb0\xc4\x1e\xc0\xe5\x92\x57\xd6\xc0\x8e\xcd\x86\x1d\x5b\ -\xf2\xec\xff\xe5\xb0\xc0\x42\x5b\x25\x5e\x03\x60\x22\xe6\xac\xc9\ -\xb8\x02\x80\x78\x26\x80\xb5\x9c\xd0\x11\xed\x64\x6e\x4f\x67\x7b\ -\x4b\x0b\x16\x83\x44\x87\x11\x0f\x1c\xc6\xc4\xc3\x40\x2e\xf7\xee\ -\x4a\x09\xb7\xee\x35\x94\x0b\x79\x7b\xf5\xe5\x88\x8c\xe0\x9c\xef\ -\x24\x7a\x83\x8c\x06\xa3\x39\x6b\x2d\xe7\xe0\xfc\x8e\x5b\x2f\xe8\ -\xbd\xc9\x8c\xdb\xa4\x4e\x99\x88\x46\x92\x3b\x01\x91\x15\xcc\xb5\ -\x9d\xfc\xc5\xbd\x02\xda\xc4\xc3\x40\xd6\xc2\xda\x78\x3e\x61\x77\ -\xec\x57\xce\xa5\x08\xa0\x19\x49\xce\xf9\x2a\xf1\x1d\x00\xa3\x39\ -\x6a\x74\xef\x0e\x04\xe9\xd2\x17\x9f\xd9\x1a\x4e\xe9\x90\x53\x49\ -\x2a\x00\x80\xb3\x2d\x07\x5f\xe7\xaf\xef\x5a\x08\xba\x8d\x40\x6b\ -\xff\x7d\x7c\xe4\x57\x3e\xf6\xeb\x6a\x2c\x07\x8a\x56\x94\x6c\x02\ -\x50\x87\x60\x34\x4f\x7c\xe3\x1b\x7a\x5f\x62\xdf\x1f\x05\x60\x39\ -\x67\x34\x27\x13\x4d\x04\x02\x8b\xbe\x43\x23\x54\xb9\x05\xbb\x0c\ -\x61\xe7\x3c\x80\xb5\x70\x1c\xb8\xed\xe6\x7c\xec\xd7\xd5\x38\xdb\ -\x72\x12\x4d\x00\x02\xe8\x80\xd0\x1a\x1e\xfa\xc8\x7b\x7b\xeb\xfe\ -\x43\x9f\x14\x80\x89\x68\x98\x88\x23\xba\xa7\x35\x4b\x57\x46\x00\ -\xad\x48\x30\xd7\xca\xdf\xe0\xcb\x11\x84\xac\x79\x1c\x99\xb5\xf1\ -\x79\x83\xf9\xd8\xaf\x2b\x13\x59\xc1\x7c\xdb\x49\xbc\x02\x30\x0a\ -\x58\xb2\x86\xc7\xfa\xe1\x51\xf7\x45\x01\x94\x46\x89\x8c\xe6\xe1\ -\x28\x48\x76\x27\x20\xb2\x82\xd3\x2d\x37\x9f\x0d\x70\x19\xba\x0a\ -\xe0\x62\x2c\xb0\xef\x26\xc3\xc4\x48\xbe\xf7\x7f\x39\x04\xf1\xfe\ -\xff\xd9\xb6\x93\x6c\xfc\xaf\x41\x87\x3c\x65\x0d\xc7\xfa\xf1\xf3\ -\x7b\xae\x00\x8e\xdc\xfd\x66\xa2\x10\xac\xe5\xb0\x0e\xa8\x27\x3d\ -\xaa\xeb\x74\xd3\xa1\x99\x70\x8c\x36\x08\x08\xc0\x0f\xc5\x9a\x07\ -\x82\x14\xbd\xd8\xfd\xcf\xc7\x7e\x5d\x99\xf9\xb6\x43\x23\x4c\x3e\ -\xfe\xd7\x11\x8f\x59\xcb\x5c\x3f\x7e\x7e\x7f\x36\xce\xe3\xe9\x25\ -\xc7\x22\x9f\xa7\x4d\x82\x79\x00\x01\x2c\x05\x8a\xf9\x76\x1e\x06\ -\xac\x85\x1f\xc4\xe7\x01\xac\x7e\x83\x57\xc6\x7e\x6d\xcd\xad\xff\ -\x95\x30\xc0\xc9\x86\x9b\x7c\xfc\x1f\x27\x00\x0f\x1f\x7d\x0f\xcd\ -\x7e\xfc\xfc\xbe\x55\xce\x58\xc3\x09\x1d\xf1\x50\x92\x79\x00\x80\ -\xc0\x08\x9e\x6a\x78\xf9\xcb\xbc\x06\xad\x36\x71\x23\xd0\xaa\x3f\ -\xcb\xc7\x7e\xad\x0f\x3f\x92\x9c\x4e\x21\xbf\x14\xb6\x09\x8c\xe6\ -\xf0\xcd\x6f\xe8\xcf\xcf\xef\x9b\x02\xf0\xeb\x34\x75\xc4\xe7\x43\ -\x3f\xf9\xf7\xea\xe9\x86\x4b\x33\x61\x57\x6d\x10\x68\xb4\x2e\xec\ -\x03\x38\x3f\xf6\x4b\xe7\xf7\xea\x0a\x08\x60\xae\xed\x70\xce\x77\ -\x92\xad\xff\xd7\x10\x05\xcc\x61\x79\xd0\xda\xde\xef\x00\x40\x1f\ -\x15\x40\x79\x1c\x6b\x0d\x9f\x8b\xda\xc9\xce\x06\x10\xc0\x39\x5f\ -\x71\x26\xdf\x0d\xb8\x80\x95\x3e\x80\x8b\x14\xc0\xae\xad\x96\x6d\ -\x53\xf9\xde\xff\x95\x30\xc0\x93\x75\x8f\x20\xe1\x1a\x13\x1d\x82\ -\x0e\x78\xd4\x5a\x8e\xf6\xeb\x1a\x7d\x51\x00\x2b\xc3\x41\x0c\x87\ -\x43\x9f\xe3\x49\xe6\x01\x20\x0e\x03\x9e\xac\x7b\x89\xd6\x6b\x0f\ -\x02\x2d\xff\xc2\x3e\x00\xa5\xe2\xe4\x5f\xd1\x4d\x7b\x65\xd9\x45\ -\x10\x0f\xff\x38\xbe\x9c\x7c\x58\x19\xf9\xa0\x23\xee\xd7\x21\x0b\ -\xfd\xba\x46\x7f\xbb\x67\x2c\x27\x75\xc8\x03\xd1\x3a\xa6\xd0\xf6\ -\x9a\x93\x0d\x8f\xe5\x20\x2f\x0a\xea\x62\xec\x85\x7d\x00\xd6\xc2\ -\xf8\x88\xe5\xc0\x4d\xf9\xde\xff\xd5\x78\xba\xe9\xb2\x1c\x24\x1f\ -\x52\x86\x6d\x7c\xa3\xf9\xac\x5b\xea\x9f\x83\xd6\x57\x05\xe0\x16\ -\x69\x9a\x88\x4f\x84\xed\x64\xeb\x01\xba\xbb\x01\x27\x1a\xf9\x44\ -\xcb\x2e\xda\x40\xb3\x25\x56\x34\x40\x77\xec\xd7\xa6\x7c\xec\xd7\ -\x15\x09\x8c\xe0\xe8\x52\x81\x28\xe1\x59\x13\x46\x43\xe4\x73\xd6\ -\x1a\xbe\x4c\x9f\xe2\x7f\xe8\xb3\x02\xd0\x11\x58\xc3\xbd\x41\x8b\ -\x39\x93\xa8\x0a\x00\x6d\xe1\x89\x25\x2f\xef\x0d\xe8\x10\xe9\x4e\ -\x1f\x40\xe7\x76\x78\x6e\xec\xfe\xe7\x63\xbf\x2e\x8f\x00\x4e\x37\ -\x5d\x9e\x6e\x24\x9b\xfc\x83\xd8\xfd\x8f\x02\x1e\xa0\x8f\xf1\x3f\ -\xf4\x3b\x04\x20\xce\x03\x44\x01\x0f\xe8\x44\x4f\x0a\xe8\x3c\xbc\ -\x96\xcb\xa9\xa6\xbb\xe1\xc3\x00\x01\x68\x7d\xfe\x3c\x80\xee\xd8\ -\xaf\xbd\xf9\xd8\xaf\x2b\xa2\x2d\x3c\xb6\x58\xa0\xad\x93\xd7\x92\ -\x41\x0b\x74\xc8\xa7\x1e\xff\x45\x16\xfb\x79\x9d\xbe\x7d\xb2\xae\ -\xcb\x12\xfa\x2c\x98\x90\x7f\x0d\x7a\x7a\x9c\xc1\xfa\xf0\x75\x3a\ -\xee\x5b\x16\x89\xf4\x85\xe7\x01\x1c\xc8\xc7\x7e\x5d\x11\x01\x2c\ -\xf8\x0e\x27\xea\xc9\x67\x48\xad\x81\xb0\xc5\xbc\x35\xfc\xe3\xcc\ -\x2f\xf6\xf7\x5a\x7d\x57\x6d\x85\x0a\xd6\x68\xfe\x31\x68\x25\x3b\ -\x29\xb8\xcb\x93\x75\x8f\xf9\x76\x9e\x0c\xf4\x83\xf8\x4c\x80\xee\ -\xd8\xaf\xdb\xf2\xb1\x5f\x57\xc4\x10\x5b\xff\x7a\x0a\xdd\xa5\x51\ -\x00\x91\xcf\x57\xac\xe5\x30\xf4\x2f\xfe\x87\x04\x14\x00\x80\xb5\ -\x7c\x21\x6c\xf3\x60\x94\x42\x18\xd0\x08\x25\x47\x16\x8b\x1b\x7a\ -\x4b\x50\x10\xc7\xff\x41\x3c\x5a\x3a\x1e\xfb\xb5\x39\xcf\xfe\x5f\ -\x0e\x01\x2c\xb4\x1d\x1e\x5f\x2c\xa4\x72\x8f\xc2\xd8\xfd\xff\x44\ -\x14\x70\xa6\xdf\xd7\xea\xab\x02\xe8\x6a\x2e\x1d\x72\xda\x84\xfc\ -\x73\xd0\x97\x6a\xe6\x2b\x63\x81\xa3\x8b\x1e\xf3\xed\xe4\x13\x39\ -\x59\xc2\x0f\x04\x51\x24\x90\x32\xb6\xfe\xe5\x62\x3e\xf6\xeb\x72\ -\x58\xe0\xf1\xa5\x02\x4b\x29\x6c\x23\x1b\x03\x7e\x83\x65\x63\xf8\ -\xb8\xd7\xc7\xed\xbf\x2e\x89\x78\x00\x6e\x11\x63\x34\x1f\xf1\x1b\ -\xc9\xef\x06\x08\xa0\x1e\x2a\x1e\x5e\x28\x6e\xe8\x5c\x40\x10\xc4\ -\x79\x80\xd1\x8a\xe5\xc0\xee\xbc\xee\xef\x72\x08\xe2\xae\xbf\x23\ -\xe7\xd2\xb1\xfe\x51\x1b\xc2\x36\xf7\x5b\xc3\xbf\x42\x7f\xdd\x7f\ -\x48\x40\x01\xac\x3a\x32\xec\xf3\x91\xcf\x97\xa3\xc4\x46\x85\x9e\ -\xc7\x02\xc7\x96\x0a\x9c\x69\x6e\x5c\x2f\xa0\x1d\x08\xb4\x86\x3d\ -\x3b\x2c\x9b\x37\xe5\xc9\xbf\xcb\xa1\x2d\x3c\xbc\x50\x4c\xc5\xfa\ -\x03\xf8\x0d\xd0\x21\x7f\xff\xf8\xcf\xf4\xdf\xfd\x87\x84\x3c\x00\ -\x80\x93\x0f\x70\x56\x87\xfc\x8d\xdf\x48\xb6\x28\x08\x3a\xb9\x80\ -\x48\xf2\xc0\x7c\x69\x43\xd6\x05\x58\xe2\x61\x20\xdd\x13\x7f\xf3\ -\xb1\x5f\x6b\x23\x80\x33\x2d\x97\xa3\x4b\xe9\x58\x7f\x13\x41\xd0\ -\xe4\xa4\x35\xfc\xdd\xcc\x5b\xfb\x6f\xfd\x21\x21\x05\x70\xe4\xee\ -\x37\xb3\xfd\x0e\xb0\x86\xbf\xf7\x9b\x3c\x95\x74\x8b\x30\xc4\x0f\ -\xf7\xc9\x65\x8f\x27\x96\x0b\x1b\xd2\x0b\x10\x02\x26\xc7\xf3\xb1\ -\x5f\x57\x22\x34\x82\x87\xe6\x8b\xd4\x53\xea\x24\xf5\x1b\x10\xb6\ -\xf9\x14\xf0\x40\x52\xd7\x4c\x74\x27\xc8\x5a\x0e\x47\x3e\xff\x90\ -\x46\x32\x10\xe2\xb2\xce\x07\xe6\x4a\x2c\x6f\xc0\x56\xe1\xa2\x67\ -\xb9\x65\x8f\x61\x7c\x34\x77\xff\xd7\x42\x00\x4f\x2c\x7b\x1c\x5d\ -\x4a\xc7\x40\x58\x03\x7e\x9d\x86\xd1\x1c\x12\xb2\xf7\xe3\xbf\x2f\ -\x47\xa2\x0a\x40\x2a\xda\x46\xf3\xa1\xf6\x32\xf5\x34\x6a\x02\x04\ -\x70\xb6\xed\xf0\xd0\x7c\x69\xc3\x6d\x0b\x4e\x8e\x5b\x9e\x75\x50\ -\xe7\x63\xbf\xd6\xa0\x1b\x22\x3e\x38\x5f\x22\x48\x78\xe2\x4f\x97\ -\xb0\x0d\x41\x8b\x07\xb0\xfc\x33\x24\xe3\xfe\x43\x82\x0a\x60\x55\ -\x8b\xf0\x3f\x85\x6d\xbe\x10\xa6\x90\x0c\x84\xb8\x2b\xee\xe1\x85\ -\x22\x27\x1b\xde\x86\xf1\x02\x2c\x71\xe9\xef\xf6\xe9\xdc\xfa\xaf\ -\x85\xb1\xf0\xd0\x7c\x29\xbd\xb2\x71\x0b\xed\x3a\x46\x87\x7c\xf0\ -\x35\xdf\xc6\x53\x49\x5e\x3a\xf1\x62\xb0\x27\x3f\xcf\x69\x1d\xf2\ -\xc1\xf6\x32\x51\x1a\x6f\x63\xf7\x74\x97\x2f\x9c\x29\xd3\xd8\x40\ -\xc3\x43\x0b\x5e\x3c\xfb\x3f\xe7\x42\x04\x70\xaa\xe9\xf2\xd0\x42\ -\x7a\xc5\x62\xa1\x0f\xfe\x32\x47\xac\xe1\x83\xef\xbd\x27\xd9\x6b\ -\x27\xae\x00\x76\xdd\x09\xd6\xf0\x21\xbf\xc1\x63\x61\x0a\x73\x02\ -\x20\x7e\xe8\x27\x9b\x2e\x0f\xcf\x17\xf3\x11\xe2\x1b\x98\xb8\x46\ -\x44\xf2\xf9\x33\xe5\xc4\xa7\xfd\xae\xc6\x6f\x40\x14\xf0\x57\xd6\ -\xf4\xbf\xf4\xf7\x62\x12\x55\x00\xab\x6a\x02\x1e\x8d\x7c\x3e\xe0\ -\xd7\xd3\xf3\x48\x8d\x85\xc3\xf3\x25\x9e\xa8\x6f\x9c\x50\x20\xe7\ -\x42\x74\xe7\x1d\x38\x91\xe2\x3b\xa0\x03\x68\x2f\xf3\xb4\x35\x7c\ -\x40\x3a\xc9\x6f\x91\x27\xee\x01\x1c\xb9\xfb\xcd\x48\x45\x64\x0d\ -\xef\x6f\x2f\xf3\x54\xd2\xfd\x01\x5d\x56\x87\x02\x8b\xf9\xe4\xa0\ -\x0d\xc9\xd1\xa5\x42\xec\x05\xa6\xb8\x86\x76\x1d\xa2\x36\xff\x1b\ -\xf8\x1c\x24\x6b\xfd\x21\x05\x05\xb0\x82\xe5\xfe\xc8\xe7\xaf\xdb\ -\xcb\xa9\xad\x60\x65\xe0\xc3\x17\xce\x94\x53\xcb\xfe\xe6\x24\x8f\ -\x20\x3e\xe3\xef\xbe\xd3\x15\x5a\x3a\x3d\xd7\x5f\x87\xd0\x5a\xe2\ -\x94\xd1\xfc\x89\x90\xa4\x92\x16\x4f\x4d\x01\x08\x85\x6f\x0c\xef\ -\x6e\x2f\x71\x22\x2d\x2f\xa0\xcb\x91\xc5\x02\x0f\xcd\x17\x13\x3d\ -\xf3\x2d\x27\x1d\xba\x71\xff\xe7\x4e\x57\x58\xf0\xd3\xf5\xfc\xda\ -\xcb\x10\xb5\xf9\x08\xf0\x69\x48\xde\xfa\x43\x4a\x0a\x60\xe5\x83\ -\x5a\x3e\x13\xfa\x7c\xa0\xbd\x94\xc6\x2a\xce\x13\x1a\xc1\x17\xcf\ -\x96\x79\x32\xcf\x07\x0c\x35\x82\xb8\x18\xec\xfe\x33\x15\x9e\x5c\ -\x4e\xf7\x59\x47\x01\xb4\x16\x39\x65\x0c\xef\x12\x92\x14\xc6\xe5\ -\xc4\xa4\x3a\x13\x42\x48\x7c\xab\x79\x57\x6b\x89\xc7\xd3\xaa\x0b\ -\x80\xf3\xf9\x80\xcf\x9e\xaa\x70\xa6\xb5\x71\x1b\x86\x86\x1d\x6d\ -\x05\x87\xe7\x4a\x3c\xba\x90\x4e\xad\xff\x6a\xda\xcb\x10\xfa\x7c\ -\x20\xe9\xc2\x9f\x8b\x49\x4d\x01\xac\xfa\xc0\xf7\x45\x3e\xf7\xb4\ -\x16\x49\xd5\x05\xef\x9e\xfe\xf2\xd9\x53\x95\xd4\x3a\xc1\x72\xfa\ -\xcb\xa3\xe7\x0a\x7c\xe1\x6c\x39\xf5\xb6\xf0\xc8\x87\xf6\x22\x27\ -\xac\xe6\x9d\x42\x92\xd2\x66\x78\x4c\xea\x53\xa1\x84\x24\xb2\x86\ -\x77\xb4\x97\xf9\x42\x98\x52\x8f\xc0\xca\x5a\x80\x13\x75\x8f\xcf\ -\x9e\xaa\xe4\x27\x0c\x0f\x19\xc7\x96\x3c\xee\x3b\x5d\xc1\xd7\x22\ -\xd5\xe7\x6a\x2d\x34\x17\xb1\xa1\xcf\x21\xe0\x5e\x48\xcf\xfa\x43\ -\xca\x0a\x60\x55\x79\xf0\x43\x3a\xe4\x1d\x8d\x05\xfc\xa4\x07\x86\ -\xac\xc5\xe3\x4b\x05\xee\xcd\x95\xc0\x50\xd0\x55\xea\xff\xfa\x74\ -\x35\xb5\x2e\xbf\xd5\x84\x2d\x68\x2f\xf1\xa0\x35\xfc\xa1\x90\xa4\ -\xd0\x17\x7b\x21\xa9\x7b\x00\x47\xee\x7e\x33\xd2\xc1\x5a\xc3\xbb\ -\xfd\x06\x1f\xf7\x13\xeb\x83\xba\x3c\xd6\xc2\x23\x0b\x45\x3e\x77\ -\xba\x42\x3b\x65\x8b\x91\x73\x63\x3c\xd5\x70\xf9\xf4\xd3\xd9\x08\ -\xeb\xac\x81\xe6\x39\xb4\x0e\xf9\x93\x28\xe0\x41\x48\xd7\xfa\x43\ -\x06\x14\x40\x17\x21\x39\x63\x34\x6f\x6f\x2c\x30\x97\xf6\xb6\x20\ -\xc4\x0d\x34\x8f\x2c\x14\xf9\xec\xa9\x2a\xad\xdc\x13\x18\x38\xba\ -\x35\x1e\x9f\x3a\x59\x65\x2e\x23\xf3\x20\xdb\xcb\xd0\xae\xf3\xcf\ -\xd6\xf2\x6e\xb7\x88\x4d\x5b\xf8\x21\x23\x0a\x60\xd5\xb6\xe0\xdf\ -\x86\x6d\xfe\xa2\x79\x0e\x9b\x85\x3d\x79\x63\xe1\xe1\xf9\x62\x9e\ -\x13\x18\x30\xba\xbd\x1e\x9f\xcc\x90\xf0\xeb\x10\x9a\xe7\x58\x34\ -\x11\x6f\x13\x82\xe3\x69\xaf\xa7\x4b\x26\x14\x40\x17\x21\x69\x5b\ -\xc3\xff\x68\x2d\xf2\x85\xa0\x91\xf6\x6a\x62\x2c\xf0\xc8\xb9\x22\ -\x9f\x3a\x59\xcd\x0f\x1b\x1d\x10\x4e\x36\x5c\x3e\xf9\x54\x35\x3b\ -\x5b\xba\x16\x9a\xe7\x20\x68\xf1\x3e\xe0\xef\x20\x7d\xd7\xbf\x4b\ -\x66\x14\x40\xf7\x86\x08\xc1\x61\x1d\xf2\xb6\xc6\x3c\x4d\x9d\xf0\ -\xb1\xe2\x97\xc3\x76\x8e\x88\xfa\xe4\xc9\x6a\xea\xd5\x63\x39\x57\ -\xe6\x89\x65\x8f\x4f\x3c\x55\xcb\x8c\xe5\x07\xf0\x9b\xd0\x5a\xe4\ -\xb0\x35\xfc\xb6\x10\x64\xc4\xb4\xc5\xa8\xb4\x17\xb0\x9a\x85\x7b\ -\x3e\xc2\xc4\x6b\xef\x02\x78\xcc\x44\xec\x16\x82\x67\x16\xca\x90\ -\x95\x27\xb9\x18\x28\xce\xb6\x1d\xc6\x0a\x9a\x9a\x9b\x8f\xd6\xce\ -\x0a\x82\x38\x5c\x7b\xf4\x5c\x91\xcf\x3c\x5d\xcd\x54\x73\x97\x89\ -\x60\xf9\x0c\xad\xa0\xc5\x2f\x0b\xf8\x1b\x44\x76\xac\x3f\x64\x4c\ -\x01\x40\x47\x09\xdc\x7d\x97\x6f\x2d\x47\x4d\xc8\x8b\x55\x81\x29\ -\x27\x43\xa7\x7c\xd7\x43\xc5\xe9\xa6\x4b\xc9\x35\x8c\x7a\x1a\x99\ -\x95\x37\x6d\x83\x22\x80\xb6\x16\x3c\x30\x57\xe6\xbe\xd3\x19\xcb\ -\xd5\x58\xa8\xcf\x43\x7b\x91\xf7\x59\xcb\xaf\x0b\x41\x2b\x4b\xc2\ -\x0f\x19\x0a\x01\x2e\xa6\x32\xc6\xfd\x51\xc8\x7f\x6b\xcc\xb3\x9c\ -\xc6\x14\xe1\xcb\x11\x1f\x1a\xa9\xf8\xe4\x53\x55\x0e\xcf\x97\x08\ -\x4d\xbe\x4d\x98\x16\x82\xd8\x2b\xfb\xe4\xc9\x1a\xf7\x65\x70\xcb\ -\xb6\xdd\x80\xd6\x39\xbe\x6c\x34\xbf\x2a\x60\x3e\xed\xf5\xac\x45\ -\xe6\x3c\x00\x88\xbd\x80\xda\xab\xee\x02\x38\x62\x42\x76\x60\x79\ -\x96\x57\x46\x88\x8c\x3c\x5d\x41\xdc\x40\x74\xaa\xe9\xd2\x8c\x14\ -\x13\x05\x4d\x41\x65\x60\xdb\x62\x83\x20\x88\xf3\x32\xc7\xeb\x1e\ -\x9f\x7e\xba\xca\xf1\x65\x0f\x4b\x66\x22\x45\x20\x2e\xf7\x5d\x3e\ -\xcd\x52\xe4\xf3\xf3\x26\xe0\x6f\xa5\x9b\x2d\xd7\xbf\x4b\x26\x15\ -\x00\xc0\xc4\x6b\xef\x42\x08\x02\x6b\x79\x50\x87\x3c\x57\x39\xec\ -\x74\x8b\x69\xaf\xea\x3c\x71\xdc\x29\x38\xdb\x72\x98\x6f\x3b\xd4\ -\x3c\x4d\xc5\x35\x64\x45\x49\x0d\x2b\xb1\xcb\x2f\x79\x60\xae\xc4\ -\xbd\xa7\x2a\x2c\xf8\xd9\x49\xf6\x75\xb1\x06\x96\xcf\x12\xf9\x75\ -\x7e\x0f\x78\x9b\x74\x89\xb2\x28\xfc\x90\x61\x05\xb0\x92\x10\xb4\ -\xcc\x5b\xcb\xd3\x3a\xe4\xa5\x5e\x91\x9a\x4a\xfe\xb8\xf6\xab\xb2\ -\x14\x2a\x9e\x6a\x78\x48\x01\xe3\x45\x8d\x93\xb5\x37\x72\x08\xe8\ -\xde\xd2\xb3\x2d\x87\x7b\x4f\x55\x78\x70\xbe\x88\x6f\x32\x14\xef\ -\x77\xb1\xd0\x58\x80\xe6\x02\x1f\xb7\x86\x9f\x11\x82\xb9\xac\x0a\ -\x3f\x64\x38\x07\x00\xb1\xcb\x24\xe2\x15\xfe\x5d\xe4\xf3\xbb\xcb\ -\x67\xf1\xb3\x94\x0f\xe8\xd2\x1d\x32\xf1\xd9\x53\x15\xfe\xf9\x44\ -\x8d\xd3\x2d\x67\xe5\xcf\x73\x6e\x9c\x6e\xa2\xef\xf0\x7c\x89\x8f\ -\x1d\x1f\xe1\xb1\xc5\x02\xc6\x66\x2b\xde\xef\xd2\xae\x43\x63\x9e\ -\xc3\x46\xf3\x5f\x20\x3b\x05\x3f\x97\x23\xb3\x1e\x40\x97\x4e\x28\ -\x60\xad\xe5\xb0\x0e\xd9\x02\x3c\x33\x4b\xf9\x80\x2e\xdd\x90\x60\ -\xde\x77\x38\xd9\x88\x63\xd2\xaa\x67\xf0\x64\x9e\x1b\xb8\x5e\xba\ -\xb1\xfe\xe9\x96\xcb\xbd\xa7\x2a\x1c\x9e\x2b\xa5\x3a\xc2\xeb\x6a\ -\x84\x6d\x58\x3e\xcd\x42\xe4\xf3\x33\x02\x3e\x2c\x32\xb6\xe5\xb7\ -\x16\x59\xbd\x97\x97\x30\x73\x68\x16\x6b\xd9\xa7\x1c\xde\x51\x9d\ -\xe4\x85\x95\xf1\xec\xae\xde\x02\x4a\xc0\x74\x39\xe4\xf6\x4d\x2d\ -\x76\x54\x03\x5c\x99\x1f\xca\x71\xad\xd4\x43\xc5\x23\x0b\x45\x1e\ -\x59\x88\xcf\xeb\xcb\x32\x3a\x84\xc5\x93\xb4\xfc\x3a\xff\x15\x98\ -\x45\xe0\x67\x5d\xf8\x61\x00\x3c\x80\x2e\x9d\x02\xa1\x79\x6b\x38\ -\xa2\x03\x5e\xa4\x3c\x36\x39\x85\xb4\x57\xb5\x36\x82\x58\x09\x2c\ -\x87\x8a\x13\x75\x8f\xc5\x40\x51\x54\x96\x92\x6b\xf3\xa3\xb9\xae\ -\x82\x00\x02\x2d\x78\x6c\xa9\xc8\x67\x9e\xae\xf0\xd8\x52\x31\xf5\ -\x1e\xfe\xab\x61\x34\xd4\xcf\x60\xda\x75\xde\x6d\x2d\xbf\x24\x04\ -\x8d\x41\x10\x7e\x18\x20\x05\xd0\x29\x10\x42\x08\x8e\x1b\xcd\xbc\ -\x0e\x78\xb1\x53\xa4\x92\xc5\xa4\x60\x17\x41\x3c\x86\x6a\xae\xed\ -\xf0\x64\xdd\xa3\x11\x4a\x4a\x8e\xa1\xe8\x98\xbc\x80\xe8\x22\x04\ -\x10\x6a\xc1\x93\x0d\x8f\x7b\x4f\x55\x79\x70\xbe\xc4\x52\xa8\x56\ -\xfe\x2e\xab\x58\x0b\x8d\x39\x68\x2e\xf0\xd7\xd6\xf0\x93\x02\x4e\ -\x23\xe2\xf7\x75\x10\x18\x18\x05\x00\x2b\x3b\x03\x16\x78\xd0\x44\ -\x58\x13\xf1\x22\xb7\x88\x2b\x33\x7e\xe4\x55\xb7\x6e\xe0\x6c\xcb\ -\xe5\x78\xbd\xc0\x72\xa0\x28\x38\x86\xd2\x06\x57\x04\x62\xd5\xbd\ -\x39\x51\xf7\xf8\xdc\xe9\x0a\x5f\x9a\x2b\x33\xd7\x76\x32\x9b\xe4\ -\xbb\x80\x4e\x93\x4f\x63\x8e\xcf\x19\xcd\x8f\x0a\x78\x34\x6b\xa5\ -\xbe\x57\x63\xa0\x14\x00\xac\x24\x05\x8d\x85\x2f\xea\x90\x92\x89\ -\xf8\x2a\xaf\x84\x23\x33\xfe\x49\xba\x2f\x73\xd0\x51\x04\x4f\xd6\ -\x0b\x2c\x05\x0e\x4a\x40\xc9\x31\x38\x22\xdb\x96\xae\x1f\xf7\xa2\ -\x19\x49\x9e\x58\xf6\xb8\xff\x4c\x2c\xf8\x67\x07\x45\xf0\x3b\xb4\ -\x96\x61\xf9\x0c\x87\x75\xc4\x9b\x74\xc0\x67\xa4\x33\x58\xc2\x0f\ -\x03\xfc\xce\x75\x92\x82\x13\x42\xf2\x1b\xa5\x11\xbe\xab\x36\x8d\ -\x52\x19\xf7\x04\x56\xd3\x4d\x08\x16\x95\x65\x6b\x25\x60\xcf\xa8\ -\xcf\xd6\x72\x48\xd9\x35\x2b\x39\x84\x61\xa2\xfb\xa2\x45\x56\x70\ -\xce\x57\x1c\x5f\xf6\x78\x62\xd9\x63\xae\xe5\x10\x0d\x90\xd0\x77\ -\x69\x2f\xc3\xf2\x69\x9e\x0c\x7d\xfe\x13\xf0\xfe\x41\xc8\xf8\xaf\ -\xc5\x00\x89\xcc\xa5\x88\x38\x29\xf8\x96\xd6\x22\x8e\x10\x7c\x47\ -\x6d\x1a\x95\x75\x4f\x60\xd5\xda\x01\xf0\xb5\xe0\xf1\xa5\x02\xc7\ -\xeb\x1e\xe3\x05\xcd\x8e\x6a\xc0\xae\x5a\xc0\x44\x31\xc2\xed\x6c\ -\x21\x0e\xaa\x32\xe8\x7e\x46\x6d\xa1\x19\x29\x4e\x35\x1d\x9e\x58\ -\x2a\x70\xaa\xe9\x50\x0f\xd5\x4a\xf9\xee\xa0\x09\xbf\xdf\x80\xe5\ -\xd3\x3c\x1d\xfa\xfc\x94\x10\x7c\x10\x06\x53\xf8\x61\xf0\xee\xfd\ -\x05\xcc\x1c\x9a\x05\x0b\x16\x76\x4a\xc9\x6f\x96\x46\x79\x75\x6d\ -\x0a\x99\xf5\x9c\xc0\xe5\xe8\x0a\x44\xd9\x31\x4c\x96\x22\xb6\x55\ -\x03\xa6\x4b\x11\x63\x85\x08\x4f\xd9\x95\x87\x95\x65\x85\xb0\xda\ -\xd2\x37\x43\xc9\x99\x96\xc3\x53\x0d\x8f\x53\x0d\x87\xa5\x40\xad\ -\x8c\xe4\x1e\xd4\x17\x2f\x68\xc2\xd2\x29\xe6\xc2\x16\x6f\x41\xf0\ -\x87\x90\xdd\x32\xdf\xf5\x30\xa8\xcf\x61\x85\x4e\x28\x00\xb0\x4b\ -\x4a\xfe\x7b\x69\x8c\x57\xd7\x26\x07\x57\x09\x40\x47\xc0\x2d\x48\ -\x01\x05\xc7\x30\x51\x8c\x98\x2e\x45\x4c\x97\x43\x46\x0b\x9a\x8a\ -\x63\x70\xa4\xbd\xe0\xe1\xa5\xa1\x14\x2e\xbe\xbe\xaf\x05\xf5\x50\ -\x71\xa6\xe9\x70\xaa\xe9\x72\xa6\xe5\x52\x0f\x25\xa1\x19\x6c\xa1\ -\xef\xd2\x11\xfe\x85\xa0\xc5\xcf\x09\xf8\xff\x10\x04\x83\x2c\xfc\ -\x30\xf8\xcf\x04\xb8\xc0\x13\xd8\x2d\x24\x6f\x2d\x8f\xf2\x2d\xb5\ -\x29\xd4\x20\x2b\x81\x2e\x5d\xc1\x16\x80\x2b\x2d\x45\xc7\x30\x5e\ -\xd0\x4c\x14\x23\x36\x95\x22\x46\xbc\x58\x21\xb8\xca\xa2\x84\xbd\ -\xe4\x81\xde\x88\x62\x10\x6b\xfc\xde\x76\xbe\x22\x23\xf0\xb5\xa0\ -\x19\x49\x16\xda\x0e\x0b\xbe\xc3\xd9\x56\x6c\xe5\x5b\x91\x44\xdb\ -\xb5\x7f\xc6\xa0\xd2\x15\xfe\xb0\xc5\x2f\x02\xbf\x3f\x28\x85\x3e\ -\x57\x63\x58\x9e\x0f\x7b\xdf\x33\xdb\x7d\x41\x77\x4a\xc9\x5b\x8b\ -\x23\xbc\xa6\x36\x85\x93\xe5\x3a\x81\xeb\xa1\xeb\x1d\x08\x01\x4a\ -\x5a\x8a\xca\x52\x76\x0c\x35\x4f\x53\xf3\x34\x23\x9e\xa6\xea\xc6\ -\x5b\x8c\x45\x15\x7b\x0a\x4a\x80\x14\x16\x71\x85\x9d\x86\xae\xa2\ -\xb0\x36\x2e\x69\x36\x36\x9e\xb2\x13\x1a\x49\x60\x20\xd0\x92\x76\ -\x24\xa9\x87\x92\xe5\x40\xc5\xff\x0f\x63\x61\xf7\xf5\x79\x81\x87\ -\x21\x7a\xa9\x3a\x74\x62\xfe\xf9\xb0\xc5\x7f\xb5\xf0\x3f\xc4\x90\ -\x08\x3f\x0c\xd9\xb3\x5a\x15\x0e\x6c\x15\x82\x5f\x28\xd6\xf8\xf7\ -\xb5\x69\xdc\x2c\x4d\x14\xea\x35\x76\xf5\x2f\x44\x5c\x82\xac\x84\ -\xc5\x53\x96\x82\x32\x14\x94\xc5\x53\x86\xa2\xb2\xb8\xd2\xe2\x2a\ -\x8b\xc0\x22\xc5\xf9\xa3\xd8\x8c\x15\x68\x13\xc7\xed\x91\x16\x04\ -\x46\x10\x68\x11\x0b\xbf\x16\x84\x56\x10\x19\x41\xd4\x51\x0e\x76\ -\xb5\x5b\xc2\x90\xbd\x44\x17\xe1\x37\x60\xf9\x14\x67\x82\x36\x3f\ -\x27\xe0\x8f\x87\xc5\xf2\x77\x19\xba\x67\xb7\x2a\x1c\x98\x12\x82\ -\xb7\x78\x15\xfe\xc3\xc8\x34\xe5\x2c\xcd\x12\x48\x02\x7b\xc9\x2f\ -\xb8\xe0\x69\x5f\xb2\xd5\xb8\x56\xac\x20\xd6\xfc\xe5\x86\xa1\xb5\ -\x04\xf5\x33\x3c\x19\xfa\xfc\x82\x80\x77\x22\x08\x87\x49\xf8\x61\ -\x88\x9f\xeb\xcc\x7b\x66\xb1\x50\x15\xf0\x26\xaf\xcc\x4f\xd6\xa6\ -\xa8\x79\x95\xb4\x57\x95\x33\x08\x58\x0b\xad\x45\xa8\x9f\xe5\xb1\ -\x28\xe0\xc7\x3b\x5b\x7d\x7a\xd8\x84\x1f\x06\xb0\x12\x70\xbd\x2c\ -\xfc\xe5\x47\x98\xb8\xfb\xae\x00\xb8\x57\x87\x9c\x0d\xdb\x3c\x53\ -\x3a\x8c\xb8\x19\x6d\x20\xca\xc9\x06\x46\xc7\xb5\xfd\x8d\x39\x3e\ -\xab\x43\xfe\xb3\x10\x7c\x18\x30\xc3\x28\xfc\x30\xc4\x0a\x00\x56\ -\x7a\x07\x42\xe0\x3e\xad\x79\x3c\x6a\xf3\x6c\x6b\xd9\xe4\x16\xc9\ -\x47\x77\xe5\x5c\x82\x0e\x61\xf9\x34\x51\x6b\x91\x0f\x1b\xcd\x8f\ -\x61\xf9\x94\x10\xd9\x38\xc2\xab\x5f\x6c\x08\x31\x98\x39\x34\x0b\ -\x02\x61\x0d\x2f\x90\x8a\x5f\x2a\x8f\xf1\xb2\xca\x26\xc4\x20\x95\ -\x0e\xe7\xf4\x97\xa0\x01\xf5\x39\x1a\x7e\x83\x77\x59\xcb\xaf\x60\ -\x79\x52\xc8\xc1\xad\xf0\x5b\x2f\x1b\x42\x01\xc0\x05\x3b\x04\xfb\ -\xa4\xe4\xe7\xbd\x0a\xdf\x52\x9b\xa4\xe4\x96\xd2\x5e\x59\x4e\x9a\ -\x58\x03\xed\x25\xa8\xcf\x71\x22\xf4\xf9\x35\xe0\x9d\xc0\xf2\xa0\ -\xd6\xf6\x5f\x2b\x1b\x46\x01\xc0\x05\x4a\x60\x4c\xc0\x0f\xbb\x25\ -\xde\x5c\xd9\xc4\xa6\x62\x2d\x0f\x09\x36\x22\x3a\x84\xc6\x3c\xb6\ -\xb5\xc8\xa7\x75\xc4\x2f\x0b\xc1\xdf\x32\xe0\xa5\xbd\xd7\xca\x86\ -\x7c\xed\x3b\x5b\x85\x9e\x85\x6f\x52\x0e\x3f\x5b\x1e\xe7\x39\x95\ -\x09\x18\x94\x46\xa2\x9c\x1b\x27\x68\x42\xfd\x2c\x75\xbf\xc9\x3d\ -\xd6\xf0\xab\x68\x1e\x45\xc1\x63\xdf\xb6\x71\x84\x1f\x36\xa8\x02\ -\x80\xce\x36\x61\x5c\x3c\xf3\x0c\x29\xf9\xf9\x42\x95\x6f\xa8\x4c\ -\x50\xf4\xca\x69\xaf\x2c\xa7\x9f\x18\x0d\xad\x73\xd8\xe6\x39\x8e\ -\x85\x3e\xff\x9d\xd8\xe5\x5f\xda\x28\x2e\xff\xc5\x6c\x58\x05\x00\ -\x9d\x90\xc0\x00\x82\x4d\xc0\x77\xbb\x05\xde\x54\x1e\x67\x67\x69\ -\x34\xf7\x06\x86\x91\xa0\x05\x8d\x79\x02\xbf\xce\xdf\x19\xcd\xaf\ -\x09\xc1\xa7\x19\xd2\xfd\xfd\xf5\xb2\xa1\x15\x40\x97\x99\x43\xb3\ -\x00\xca\x5a\xbe\x56\x2a\x7e\xa2\x50\xe5\xe5\x95\x71\xbc\xdc\x1b\ -\x18\x0e\x8c\x8e\x0b\x7b\x9a\xe7\x38\x11\xf9\xfc\x9e\xb5\xfc\x11\ -\x96\x53\x1b\x21\xcb\x7f\x35\x72\x05\xd0\x61\xe6\x3d\xb3\x98\xb8\ -\xc9\x66\x5a\xc0\x77\x3b\x05\x7e\xa4\x34\xc6\xee\xd2\x08\x0c\x5b\ -\x43\xd1\x86\xc1\xae\x58\xfd\xb6\x5f\xe7\xc3\xc6\xf0\x3b\xc0\x27\ -\x80\x68\xa3\xc5\xfa\x97\x23\x57\x00\x17\xb1\xf7\x3d\xb1\x37\x00\ -\x3c\x4f\x4a\x7e\xd8\x2d\xf1\xaa\xca\x38\xa3\x85\x2a\xdd\x53\x8a\ -\x72\x06\x80\x28\x80\xd6\x22\xb6\xb5\xc8\xc3\x3a\xe0\xed\x16\xfe\ -\x54\xc0\x9c\xb5\xf0\xd8\xb7\xe7\xc2\xdf\x25\x57\x00\x6b\xb0\xf7\ -\x3d\xb3\xdd\xe6\x98\x0a\x82\x57\x29\x87\x37\x16\x2a\xdc\x59\x1e\ -\xa7\xe0\x95\xc8\xef\x5a\x86\x31\x3a\x9e\xd7\xd7\x3c\xc7\xd9\xb0\ -\xcd\x5f\x5a\xc3\x1f\x00\x5f\x04\x4c\x6e\xf5\x2f\x25\x7f\x95\xaf\ -\xc0\xcc\xa1\x59\xa4\x02\x1d\xb2\x15\xc1\xeb\x1c\x8f\xef\x2f\xd6\ -\xd8\x5f\x1e\x43\x66\xf5\x50\x92\x8d\x8a\x35\xf1\xd6\x5e\xf3\x1c\ -\x6d\xbf\xc1\x3f\x18\xcd\xef\x03\x1f\x05\x5a\xe4\x56\xff\xb2\xe4\ -\x0a\x60\x1d\xcc\xbc\x67\x25\x49\x78\x40\x48\xbe\xcb\x29\x70\x77\ -\xb1\xc6\x4d\xa5\x51\xe4\x30\xcf\x1a\x18\x04\xac\x85\xb0\x05\xad\ -\x45\xa2\x76\x9d\xfb\x4c\xc8\x1f\x5b\xcb\x7b\x11\x9c\xc9\x05\xff\ -\xea\xe4\x0a\xe0\x1a\xd8\xfb\x17\xb3\x10\x4f\x52\x7e\x86\x90\x7c\ -\x9f\x5b\xe4\x9b\x8b\x35\xb6\x15\x6b\x88\xdc\x23\x48\x16\x6b\xe3\ -\xc3\x38\xdb\x4b\xe8\xf6\x32\x87\x75\xc8\x9f\x5a\xc3\x21\x6b\x38\ -\x26\x24\x36\x17\xfc\xf5\x91\x2b\x80\xeb\xa0\xa3\x08\x0a\xc0\x1d\ -\x42\xf2\x9d\x6e\x91\x57\x17\xab\xec\x28\x8e\x20\x94\x97\x97\x15\ -\xf7\x13\x6b\x62\x8b\xdf\x5e\x26\x6a\xd7\x79\x50\x87\xdc\x63\x0d\ -\xf7\x00\x8f\x00\x26\x17\xfc\x6b\x23\x7f\x55\xaf\x93\xce\xc0\x11\ -\x00\x0f\xcb\x33\x85\xe4\x75\x4e\x81\x7f\x57\x28\x33\x53\x1c\xc5\ -\xc9\x5b\x8e\x7b\x8b\xd1\x71\xc7\x5e\x7b\x99\x66\xd0\xe4\x4b\x3a\ -\xe4\x90\xb5\x7c\xc8\x5a\x8e\x08\x91\x0b\xfe\xf5\x92\xbf\xa2\x3d\ -\x60\x55\x68\x30\x23\x24\xaf\x51\x2e\xdf\xe2\x95\xb9\xb5\x58\x8d\ -\x4b\x8b\x87\x61\x3a\x71\x1a\x58\x0b\x3a\x88\xe7\xf2\xf9\x75\xce\ -\x86\x6d\x3e\xa3\x23\xfe\x02\xcb\xc7\x80\xa7\x20\x77\xf5\x6f\x94\ -\x5c\x01\xf4\x90\x8e\x22\x90\xc0\x76\x04\x2f\x53\x8a\xff\xcb\x29\ -\xf2\xb5\xc5\x1a\x9b\xbc\x32\x38\x85\xdc\x2b\x58\x0f\x3a\x8a\xdd\ -\x7c\xbf\x41\x10\x34\xf9\x8a\x0e\xf8\x98\xd1\xfc\x15\xf0\x39\x60\ -\xc1\x5a\x78\xfc\x75\xb9\xe0\xf7\x82\xfc\x75\xec\x03\x7b\xfe\x6c\ -\x16\xe5\x82\x8e\xa8\x09\xc1\xf3\x84\xe2\xdf\x3a\x2e\xaf\x70\x4b\ -\xec\x2b\x54\x28\x77\xbd\x82\x5c\x19\x9c\xc7\x68\x88\xda\xe0\x37\ -\x31\x41\x93\xa7\x23\x9f\xcf\x98\x88\xbf\xb1\x96\x8f\x5b\xc3\x51\ -\x21\x88\x16\x16\x61\xe1\x87\x72\xc1\xef\x25\xf9\x2b\xd8\x67\xf6\ -\xfc\x79\xbc\x85\x28\x04\xdb\x11\xbc\x50\x2a\x5e\xe5\x14\x78\xae\ -\x5b\x64\x97\x57\xc6\x73\x8b\x71\xa9\xf1\x46\x54\x06\x26\x82\xd0\ -\x87\xb0\x85\x0e\x9a\xcc\x87\x3e\xf7\x9b\x88\x7f\xb0\x86\xbf\xb7\ -\x96\x07\xdd\x32\xf5\xe5\x13\x70\xf2\x47\x72\xa1\xef\x17\x1b\xf0\ -\xb5\x4b\x87\xdd\xef\x9e\xc5\x2d\x41\xe4\x53\x02\x76\x09\xc9\x0b\ -\xa4\xe2\xc5\x8e\xc7\x57\x3b\x05\x76\x79\x25\xaa\x4e\x11\x1c\xb7\ -\xd3\x89\x38\x84\x4f\xc6\x9a\xd8\xd2\x87\x6d\x08\xdb\x44\x41\x8b\ -\x53\x91\xcf\x97\x3b\x42\xff\x2f\xd6\xf2\x80\xd1\x2c\x08\x09\x47\ -\xbf\x23\x17\xfa\x24\x10\x36\x1e\x91\xb3\x72\xee\xa4\xd8\x88\xa6\ -\x28\x61\x76\xfe\xd1\x2c\xc5\x09\x08\x9b\x78\x42\xb0\x5d\x48\x9e\ -\x21\x25\xcf\x97\x0e\xcf\x56\x2e\xb7\xba\x05\x36\xbb\x25\x8a\x8e\ -\xd7\xf1\x0e\xd4\x60\x7a\x08\xd6\xc6\x56\x3e\x0a\x20\xf2\x31\x61\ -\x9b\x46\xe4\x73\x4c\x87\x7c\xd1\x68\x3e\x61\x0d\xf7\x5a\xcb\xc3\ -\x58\x96\x11\xd8\x3c\xae\x4f\x9e\xae\x02\xe8\xf6\xbb\x85\xb9\x02\ -\x48\x9e\x9d\xef\x98\x45\x87\x88\x42\x85\x2a\x82\x5d\x42\xf2\x0c\ -\xa9\xb8\x53\x2a\x6e\x57\x2e\x7b\x95\xcb\x66\xb7\x40\x55\x79\x28\ -\xc7\x8b\x3d\x84\xac\x29\x05\x6b\xe2\x2f\x1d\xc5\xa3\xb6\x22\x9f\ -\x28\x0a\xa8\xeb\x80\x13\x3a\xe4\x51\xa3\xb9\xd7\x18\xee\xb7\x86\ -\xc3\x58\x9e\x1e\xdf\x45\xfb\xe4\x03\x70\xf2\x07\x73\xa1\x4f\x92\ -\x4b\x0c\xbe\xb5\x17\x1e\x09\x93\x2b\x80\xf4\xb9\xe9\x5d\xb3\x04\ -\x4d\x44\xa1\x46\x55\x08\xa6\x84\x64\x46\x48\x0e\x4a\xc5\x33\xa4\ -\xc3\x8c\x74\xd8\xa5\x1c\xc6\x94\x4b\x4d\xb9\x78\xca\x41\x48\xa7\ -\xa3\x18\x64\xe7\x0b\x2e\x7f\xba\x27\x6b\xfc\x39\x5c\xfe\x24\x51\ -\xdb\x39\x14\xd4\xc4\x56\xbd\xeb\xca\x9b\x08\x4c\x84\xd5\x11\x2d\ -\x1d\xd0\xd0\x11\x67\x75\xc4\x13\x56\xf3\x15\xa3\x79\xd8\x1a\xbe\ -\x6c\x2d\x8f\x59\xc3\x19\x6b\x68\x02\x1c\x7b\x43\x2e\xf0\x69\xd2\ -\x91\x77\x8f\xf8\x91\x86\xb9\xb4\x0f\x00\x9b\x7f\x77\x96\xe9\xdb\ -\x60\xf9\x04\x2e\x82\xb2\x90\x4c\x0a\xc1\xb4\x10\xdc\x24\x24\x3b\ -\x84\x64\xaf\x54\x6c\x93\x8a\x2d\x52\x31\x26\x14\xa3\x52\x51\x90\ -\x0a\x4f\x48\x1c\x29\x51\x48\xa4\x10\x48\x21\x38\x7f\xa6\xdf\xaa\ -\xf3\x01\xbb\x42\x8e\xc5\x58\x83\xb5\xf1\xff\xb5\x35\x44\x46\x13\ -\x5a\x43\xdb\x68\xea\x46\xb3\x64\x35\xf3\xc6\x32\x67\x35\x27\xac\ -\xe1\x29\x63\x38\x6a\x2d\x27\x30\x3c\x6d\x2d\x0b\x61\x8b\xfa\xa9\ -\x07\x30\x13\xbb\xe1\xf4\x8f\xe5\x02\x9f\x25\x2e\x31\xf8\x69\x2f\ -\x28\xe7\xfa\x99\xfc\xad\x59\x96\x4e\xc3\xe6\xfd\x38\xd2\xa1\x28\ -\x04\x35\x21\x18\x45\x30\x21\x04\xe3\x42\x32\x06\x8c\x0a\xc9\x38\ -\x50\x15\x82\x32\x82\xa2\x88\x43\x3e\x85\x40\x60\xe3\x83\x80\x01\ -\x1f\x8b\x01\x9a\xd6\xd2\xc6\xb2\x64\xa1\x8e\xe1\x9c\xb5\x9c\x03\ -\xce\x59\xcb\x92\x35\x2c\x5a\xcb\xb2\x35\xf8\x3a\x20\xd8\xf7\x0a\ -\xcc\xa7\xff\x27\xb4\x7e\x39\x17\xf4\x41\xe4\xff\x00\x21\xbf\xbf\ -\x45\xaa\x78\x3d\x13\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\ +\xbci\x89\xe7L5\x18\xf1t\xe6\x95\x80W\x86\xea$\ +\x9b\x95\xcb/\x85>/\xc4\x0e\x8e\x12\xc8\xc8\xe3\xbf2\ +\xdd\xa4\x9f\xb5|\x93[\xe0-\xb5IjN\x86\xbb\xfa\ +,0\xeai\xbejs\x83\x97\xee\x5cbf\xd4\xc7\x91\ +W\xce\xb6[\x03m?Y\xa7\xb7\xe8\xd9\x0bB\x90,\ +\xd0\xbdG5W\xf3\xac\xa9&/\xdf\xb9\xc4\x81\xf16\ +\x05\xd5\xfb\xdd\x8a^R\xaaAu\x82[\xa4\xe2\xe7\xac\ +e\xc7\xa0(\x81\xcc+\x80UI\xbfg(\x87\x9f\xab\ +N\xb2\xcd\xcb\xe80\x0fK\xbc\xa573\xea\xf3u;\ +\x97\xb8c\xb2I\xc51\xebzq\xb5\x01?Hn\xad\ +\x82ly\x00\x17c\x89\xb7>\xa7J\x11/\xdaZ\xe7\ +\xc5\xdb\x97\x99.E\xd9\xcd\x0b\x08(\x8dAq\x84W\ +\x08\xc9\x7f\xe9\x0c\x9c\xcd<\x19}\xfc\x17ba\xab\x94\ +\xfcRy\x9cg\x173\x5c\xe57V\xd0\x7fK\x83\xdb7\xb5\xf0d\ +\xefc\xceV{U\x17`\x02\xb8\x0e8Nz\x09\xb4\ +^;:\x96\xb8f\xe0k\xb6\xd5\xd93\xe2gfw\ +C\xc8\x95P\xe0u\xc0+\xb3\x16\x0adF\x01\xac\xba\ +)\xaf\xf2\xca|kV:\xfc,q\xf7\xde\xf3\xb7\xd4\ +\xd97\xde\xee[\xd6\xb9\xe5\xc7\xe5\xc0I\xe1\xb9\xf1W\ +\xd2H\x00\x0b\x8dv\xef?\xaf\x05j\x9e\xe6\xab\xb7\xd6\ +90\xde\xceL\x95\xa3\xe3Ae\x82\xa9N(\xb0#\ +\xed\xf5\xac&3\x0a\x00\xc0Zv)\x87\x1f\xac\x8cS\ +\xcd\xc2\x81\x9d\x16\xa8\xb9\x86\xaf\xdeZgf\xb4\x7fV\ +\xc5\x12\x17\x01\xd9\x84\x14\x80%\xde\x01\xf0\x9cd.(\ +\x88_4?\x80G\x8fK>\xf8\x8f\x0e\x9f\xb8O\xf5\ +\xe5~v\xbd\xb5\xe7n\xc9\x96\x12(\xd6\xa0P\xe5\x85\ +B\xf0\xbd\xd6\xe2d\xc5\x0b\xc8D\x14\xd8I\xfc)!\ +\xf9\xfeb\x8d\x17f\xe1\xdc\xbe\xd5/\xd2\xee\x11\xbf\xef\ +\xd7\xf2\x03\xd1\xf3\xb1_W\xc2s\xfb\xdb\x09(:_\ +\xda\xc2\xd9E\xc1\xc3\x8fK\xbe\xf0\x88\xe4\xf8II\xbd\ +\x09/{\xbe\xee\xdbg\x8d\xf35\x96\xe7n\xae\xa3\xa4\ +\xe5\xf0\x5c)Q\xefj\xcd\xfb\x11\x87\x02n\xd8\xe6{\ +\xc2\x16\x7f\x8b\xe03\xe9\xae(&\x13\x0a\xa0\xc33\x1d\ +\x8f\xef(\x8f\xa3\xd2n\xf1\xedn1=\x7fKl\xf9\ +\xfb\x8d1\xd0l_0\x01\xac\xef\x14\xbc\xfe\xf4\x01t\ +\x05\xbf\xe9\xc3\x13OK\xbe\xf4\xa8\xe4\xa1\xc7$g\x17\ +\x04Qg\x97C\x08\x18\xa9X$\xf4t\x16\xe1j,\ +\xf1\xac\x81gO5\xd0F\xf0\xf0B1u%\xe0\x16\ +\xa14\xc2n\x1d\xf0Fc\xf8\x91\x99C\xb3\xf5\xb4g\ +\x09\xa6\xae\x00:\xd6\xbf(\x14?P\x1ca\xaf\x9b\xd0\ +x\xaa\xcb\xd1\xb5\x1e\xcf\x99n\xb2\xb7\xcf\x96\xbf\x8b6\ +\xd0J\xb0\x13P\xd0\xdbN\xc0\xae\xd0G\x06\xe6:\xd6\ +\xfe\x8b\x8fH\x9e8)i\xb6;\xdf#\xce+\x1c\xcf\ +\x85m\xd3\xfd\x97\xc6\xee\xb3\xfc\xaa\xcd\x0d,\xf0\xf0|\ +1\xf5m\xc2\xd2(\xf8\x0d\xbe\xd1o\xf0\x01\xe0}3\ +\x87fS\x1d(\x9a\xaa\x02X\x89\x83\x04/q\x8b|\ +K9\x03C=\x1day\xe6T\x93\x83\xe3\xadD\xdc\ +qA\xec\x01$\xd9\x08\x04P*\xde\xb8\x07\xd0\xbd=\ +\xcd6\x1c;\x19[\xfb\x87\x8fJ\xe6\x16\x04\x91\xe9(\ +\x86\x8b\xee\xa1\xb1\xb0e\xd2\xb2sK2\xd5{\xdd\xed\ +\xdb\xe7L7\xf0\xb5\xe0\xf1\xc5tw\xe2\x94\x0b\xe51\ +\xc6#\x9f7\xea\x90O\x0a\xc9\xd3i\xae'u\x0f\xc0\ +\x1a\xaa\xd2\xe1\xfb\xca\xa3L\xa5}r\xaf\x14pp\xa2\ +\xcd-\x13\xadD\x93G\xc6\x80\x9f`\x1f\x80\x10P*\ +\xda\x95\x13\x82\xae\xe9\xdfr\xde\xda\x9fY\x10<\xf4\xb8\ +\xe4\xcb\x8fJ\x8e?}\x91\xb5\x17\x97\xff\xf7\x07\xf7\x18\ +j\xe5\xe4\xcaw-Pq\x0c\xcf\xdd\xdc\xa0\x1dI\x9e\ +j\xb8\xa9n0\x15k\xd0\xae\xf3\xd5\xadE\xbe\x19\xc1\ +\xdb\xd3\xf4\x02RS\x00\xab\xac\xff\xcb\xdd\x22//d\ +\xa0{z\xcf\x88\xcfs\xa6\x9b}\xd9\xe7\xbf\x12\x91\x16\ +\x04A\x82!@\xa7\x11\xe8Z\x14\x80\xec|o\xbd%\ +8zB\xf0\xe5\xafH\x1e9*\x99_\xecX{q\ +\xf5\x04\xa6\xb5P)Yn\xddk\xaeK\xf9\xdc\x08\xdd\ +!-\xcf\xdbR\xe7\x9f\x9e\xac1\xef;\xa9)\x01!\ +\xa1\ +K\x81\xe2\xbe\xd3\x95\xd4v\x06\x84\x84\xd2(\x9e\xdf\xe0\ +\xf5\x91\xcf\xfb\x80#i\xac#5\x0f\xc0\x1aF\xa5\xe2\ +\xbb\x8b5F\xd3\xec\xf3/(\xcb\xb3\xa6\x9al.\x87\ +\xa9\x08\xbf\x00\xc20\xb6\xb2I\xa1\xe4\xa5\xb3\x00\xba\xd6\ +^kx\xea\x8c\xe0\xa3\x9f\x8e\xad\xfd\xbb\xff\xc6\xe5\xde\ +\x07$\x0bKq\x9d\xc2z\xad\xfd\xc5X\x0bc5\xcb\ +\x81\xdd\xe9X\xff\x0b>\xbf\x80[&Z}\xaf\xef\xb8\ +\x1an\x09\x0a\x15n\x13\x92o\x0d[\x884\xbc\x80\xc4\ +=\x80\xd5\xd6\xdf+\xf1u\xc5\x14[}\x05pp\xbc\ +\xcd\xbe\xb1t_\x84 \x14D:\x99#t\xad\x05\xa5\ +\xecJ'`\xf7\x92\xdd\xd8\xfe\x8b\x8fJ\x1e=\x16\xc7\ +\xf6\xe6\x06\xac\xfdZ\xd7\x9d\xd9i\x98\x1cK\xbfw\xbf\ +\xbb=\xf8\xac\xa9&\x0bm\x87y\xbf?U\x89WC\ +\x08(\x8d\xe2\xf8\x0d^c\x0d\x7f\x0e\x1cOz\x0d\xa9\ +x\x00FS\x92\x8ao/\x8e0&S\x8a\xfd-\xb0\ +\xa5\x12r\xeb\xa6\x16J\xa4\xfbJ\xb6\x83N+pB\ +\xd7s\x9cx\x16@dbk\xff\xb1\xcf(\xfe\xe8\xfd\ +\x0e\xef\xfa\x90\xcb\xa7>\xaf8\xbb\xd0\xfb\xaaD\xcf\x8d\ +\xdd\x7f7#S\x9d,0Q\x8cx\xd6t\xba\x03E\ +\xdc\x22xe\xee@p\x17\x22\xf9F\xa1D\xc5\xaf\xfb\ +\xe1\x84\xe0\xab\x9c\x02/M\xab\xe4\xb7\xdb\xe0s\xe7t\ +\x83\x9a\x9b\xfe \x89\xb6\x9fl'\xa0\x14\xf0\xe81\xc9\ +?\xde+x\xf8\xa8d\xe1\x1a2\xf9\xd7\x83\xb505\ +a\x99\xd9\x91\xbe\xf5\xbf\x98\xdd#\x01\xa7\x1am\x0e\xcf\ +\x97R\xb9\xbe\x90P\xacQ\xf0\xeb\xbcF\x87\xbc_H\ +\xe6\x92\xbc~\xe2\x1e\x80\xd1\xb8R\xf1\xbab\x8d-i\ +5\xfct\x87H\xa4\x15\xf7\xaf\xc6\x92l'\xa0\x10\xb0\ +T\x17|\xf0\xe3\x0e\xffr\x7fl\xed\xaf%\x93\x7f\xbd\ +\x9f\xf1\xc0n\xc3h-{\x0a\xc0\x11\x96\xdb'[\xa9\ +\x0e\x13\xf1\xca\xe0\x95\xf8j\x04_\x0b\xc9z\x01\x89+\ +\x00!\xd8\xaf<\xee*\xa6\x94\xf9\xb7\xc0\xb6J\xc0\xc1\ +\x84\x8b}\xaeD\xdbO\xae\x13\x10\xe2\xd2\xe3 \xec\x9f\ +\xc5_\x8d\x05\xca\x85\xd8\xfd\xcfT\xeb\xe9\xaa\xf5\x8dx\ +\x9a\xdb6\xb5(\xa8tT\x80TP\xa81\x22\x15\xaf\ +2\x9aD\x8b\xe1\x13{&3\x87f\x91\x0a\x84\xe0\xdf\ +\x14*\xecN\xebd\x9f\x82\xb2\xdc\xba\xa9\xb5\xee\x03;\ +\xfa\x8d%\x0e\x01\x92T\x00\x89~>\x03\xdb7\x1bv\ +n\xce\xc6\xfd\xbe\x1c\xbbG|\xf6\x8c\xf8\xa9\xad\xb1P\ +\x01\xc7\xe3eBpK\x92\xd7MT)\xeb\x90-\xd2\ +\xe5\x9b\x0b\xd5\xf4\x8c\xc1\xdeQ\x9f\x1d\xd5\xf4]\xff.\ +\xd6\xc6!@V\xd6\xd3k\xa4\x84[g\x0c\xe5b\xb6\ +?\xa3\xdb\x99\xf5\x98V-\x88r\xa1Pa\xbb\x90|\ +\xfd\xd8\xd6\xe4\xc2\x80D\x04q\xd5\xd6\xdf\xd7xe\x9e\ +\xed\xa5\x90o\xe9N\x8b\xb9e\xbc\x85\x93r\xd6\x7f5\ +q#P\x06\x87\xdb\xf7\x00k\xa1V\xb1\x1c\xdcc\xb2\ +0\xdc\xe9\xcak\x056\x95\x22\xf6\x8f\xa57D\xa4P\ +E)\x87\x7f;\x7f\x82\xc9\xa4\xae\x99\x98%6\x9a\x82\ +T|c\xb1B%\x8d~\x7f\x01\xdc<\xe6\xb3)c\ +\x93c\xb5\x89\xb7\x01\x87\x11ka\xcfv\xcb\xe6M6\ +\xd5\xca\xbf\xf5\x12\xbf#m\xb6\xa4\x94\x1cv\x0a\xe0\x16\ +y\xa6\x80\xe7A2^@b\xa2(\x04{\x1c\x8f\x17\ +\xa5q\xb0g|\x90D\xc4\xcch;S\x96\xa8{&\ +`\xdb'\x13\xf3\x0f{\x8d\xe3\xc4\xc9\xbfB\xea=\xa7\ +\xeb\xa3\xbb=|p\xbc\x85+\x93W\x01R\x81We\ +L*\xee\xd2a2[\xf4}W\x003\x87f\x91\x0e\ +\x08\xc1+\xbd\x12\xbb\xd3(\xfcQ\x02\x0eL\xb4S\x8b\ +\xef\xae\x84\xd6\x02?H\xeeL\xc0\xa4\xb0\x166\x8dZ\ +n\xde\x95\xed\xe4\xdf%\xeb\x06v\xd6\x02\xb6U\xd2\xf1\ +\x02\xbc2(\x8f\x97\x0a\x99\xcc\xf0\xd0D<\x80\xa8M\ +M\xba\xbc\xb2P\xc5I\xfa\x90\x0f\x0b\x8c\x15\xa2\xf8\x04\ +\x9fd/\xbd\xbe{\xa3\xe3s\x01\x87\x0d\x0b\xec\xbb\xc9\ +01\x9a\xbd\xbd\xff\xabQP\x96\xfd\xe3\xedT\xb6\x05\ +\x1d\x0f\xdc\x22{\x85L&\x0c\xe8\xab\x02X\xa9\xfc\x93\ +\xecw<\xeeLc\xdc\x97\x14q\xec_\xcb\xd8\xd1Q\ +]\xc2h8\x15@\xc1\x85\xdbf\x0cN\x16\xb5\xeeU\ +\xb0\xc0\xf6j\xc0\xd6J\x90\xf8;#\x04\x14*T\xa4\ +\xe2\x95:\xa4\xef\xa5r}\xf7\x00\x84\x04!x\xaeW\ +b:i\xf7\xbf\x1b\xfb\xef\xce\xd0A\x11\x17\xdc\x1b\xe2\ +\xf8\x7f\xd8\x14\x80\xb1\xb0u\xca\xb2{\xfb\xe0Y\xff.\ +\x9e\xb4\xdc<\xea\xe3\xa5\x90\x0bp\x8b\xa0\x5c\x9e+$\ +\xdb\xa0\xbf^@\xdf\x15\x80\x0e(I\x87\x97\xba\xa5\xe4\ +;\x0f\x05q\x81G\xd6\x0e\x8e\x5cM;H\xf6P\xd0\ +$\x10\xc0-\x09\x8f\xfd\xea5\x16\xd8Z\x0d\x99,E\ +\x89\x17i\xa98\x0c\xd8'$\xcf\xee\xf7\xb5\xfa\xa6\x00\ +V\xed\xfd\xeft<\x9e\x9d\xb4\xfb\x1fgt5\xbb2\ +\x1a\xfbw\x09\x02V\x86l\x0c\x03\xd6B\xb5l\xb9e\ +&\xfb{\xffW\xa3\xa8\x0c\xbbG|T\xc2\xdb\xd6B\ +\x80W\xa2,%_\xa7C\xfa\xda?\x99D\x08\xf0\x1c\ +\xa7\xc8\xce4\xb2\xff;k\x01\x13=<\xc1\xb7\x1f\x04\ +\x11\x89v\x02\xf6\x1bkagg\xec\xd7\xa0\x7f,\x01\ +\xec\xa8\x06TS\xe8\x18uK\xa0\x5c\x9e'$\x9b\xfa\ +y\x9d\xbe*\x80\x85\xa7\x10R\xf2\x1c\xafH1i\x0b\ +WT\x96=#\x01*\xe3f\xa8\xd5\x16\x89\x9e\x0a\xdc\ +o\x94\x8a\x93\x7f\xa5\x0c\x1c\xedv\xa3t\xabGwT\ +\x93\xf7\x22\x95\x07N\x81\xfdBp+\xf4/\x0f\xd0W\ +\x050:\xcd\x98t\xb8\xd3Ix\x14\xbb\xb50Y\x0a\ +\x99,e\xa7\xe6\x7f\xcdu\xd29\x11(\xcb\x8b\xbc\x96\ +\xcf\x93\xa1\xb1_\xbdB\x89\xd8\x93\xf4\x12\xde\x12\x94\x12\ +\xdc\x12\xe3B\xf2\xdcR\x1f;g\xfb\x1b\x02\x08v9\ +\x1e\xfb\x92\x9e\xf7/e:\x0f\xedZ\xb1\xc4\x1e\xc00\ +)\x80\xbd;m&\xc6~\xf5\x92\xa9r\xc4\xa6b\xf2\ +\xc9@\xb7\x88\x94\x0e/h,\xd0\xb7\xfa\xd9\xbe(\x80\ +\x99C\xb3\xdd\xa3\xa0\x9e\xed\x14\xd8\x9c\xe4\xd0\xcfn\xf2\ +/\x0d\xb7\xed\x9a\xd7:d\x9d\x80\x9e\x0b\xcf\xb8Yg\ +f\xecW/\xe8\x9e,\xb4\xbd\x1a$\x9e\xa8u\xe3\ +\xd0\xf2\xaf/\x07!\x80\x83{\xec@\x8f\xfd\xba^*\ +\x8e\xa1\xa0\x0c\x81Q\xc9X9\x01RQ\x80\xd8\x03\xe8\ +%=W\x00\x02J\xd2a*\xd1\x1d\x00\x11\x0fnP\ +\x03P\xff\xdf\xc5\x00-\xbf\xbf\xafO\xd7\xda\x97K\xb0\ +k\x8b\xe1\x19\xfb\x0c\x07\xf6\x18\xa6\xc7-\x87\x8fH\xcc\ +u& \xe3\xb1_\xb1\xfb/\x18\xee\xe2\x9f\xb5(:\ +\x86\xa2cYN\xb0$@*\x5c)\xe3\xceZ\xdd\xc3\ +\x14D\xef\x15\x80\xa4&%SI\x96\x00K\x015o\ +\xb0^Fc\xa1\xd5\x8e\xd7\xdbK5\xd0\xb5\xf6\x8e\x82\ +\xc9\xb1x8\xc7\xed\xfb\x0c\xbb\xb6\x1a*\x9d\xac\x8c\x00\ +Z\x9dY\x84\xd7u\x0d\x0b\xbb\xb6\x1a\xb6M\x0d\xfe\xd8\ +\xafk\xfe\xec\xc4\x05g\x15\xc7p\xa6\xd7\x0f\xef\x0aH\ +\x85\x14\x92\xe9_{5\xfc\xc4=\xbd\xfb\xb9\xbd\xdf\xbd\ +\x15T\xa5C%\xc9\x12`GX\xaa\x09o\xcd\xdc(\ +\xc6t<\x80\x1e\xbdD]k_,\xc0\xce-\x86;\ +\xf6\x1bn\xd9k\x98\x1c\xb38\xb2\xa3\x18V}\x7f\xb3\ +%\xae;\xff\xd0\x1d\xfbU\xf4\x06G\xe1\xf6\x12%-\ +%7\xc1\xfd\xdb8\x07\x80\x90l\xfa\xe1\xdfGV'\ +{\xa7w{\xa6\x00V\x0e\x01\x11\x8c\x0aI%\xa9\x9b\ +c\x01GZ\xca\xee`\xd9\xa2\xf8T\xe0\x1b\xff\xec\xd6\ +\x82#a\xbc\xb3\x1f\x7f\xc7~\xc3\x9e\xed\x86j\xe9\xfc\ +\xf7\x985\xfe]\xbdu}\xa3\xc8\xac\x85\x89Q\xcb\xfe\ +\xdd\x83u\xbf{\x89\x00*\x8eN.\xcb\xdd\xcd\x13\x09\ +\xc6\xbd\x0a\x0e\xd0\xb3\xe3d\xfb\xe3\x01H\xbc$=\x80\ +\x82\xb2\xa9\x1c\xe0p#X\x0b\xc1u\xc6\x90\x17\xc7\xf6\ +\xb7\xddl8\xb0\xdb05nq\xd5\xa5\xd6~\xad\x7f\ +\xdf\x1dEv\xad\xcf\xc9Z\xd8\xbb\xc309\xbe\xf1\x92\ +\x7f]\x04\xe0)\x9bh\xc8)\x14H\xc9\x88\x94xd\ +U\x01t^\xa6\x11\xa1\xfa\x7f\xa4\xd1\x0a\x16\x0a\xca\x0c\ +\xd4\x0e\x80 \x8e\xbf\x83p\xfde\xc0\xd6v\xbc\x9dN\ +l\x7fpO'\xb6\xdf\x12w\xe1un\xc5\xba|C\ +\xcb\xf9Qd\xd7\xaa\xa7=\x17n\xdfgp\xe5\xfa\xae\ +5\xac\x94\x1c\x83\x14\x16m\x93\xb1tB\xc4\xf95!\ +)\x00\xf5^\xfd\xdc\xdez\x00\xb1J,\x0a\x91|\x17\ +\xe0 \xed\x00@,\xfc~xu\x01\xecZ\xfbJ\xd9\ +\xb2{\x9b\xe5\xf6}\x86\x037\x196\x8dZ\x94\xbc\xba\ +\xb5_\x0b\xa3\xa1}\x1d\xf9\x07\xd3\x1d\xfb5\xc0G~\ +\xf5\x8a\x82\xb2H\x01:\xa1\x1b\xd1\xa9\xb0-Ao\x8d\ +kO\x15\x80T`,U!\xfb{\x9a\xc9\xc5\xb8\xca\ +\x0e\xdc\xc9:~\x10\x9f\x0a\xb4\x16]k\xef\xaaX\xe0\ +n\xd9k\xb8\xfdf\xc3\xce-q\xe2\x0d\xd6o\xed/\ +\xa6\xdb\x85\xd8ls]I\xac\x83{\x86s\xec\xd7\xb5\ +\xe2J\x8b\x92\x96\xd0$\xf4\xe2\xc5\x0a\xa0\x8c\xa0\xa7=\ +\x81\xbd\x0d\x01$ pE\x92CnD\xfc0\xc4\x00\ +\xbd\x92\x02h\x07\xf1H\xb0\xd5t\xad}\xb5\x1c\x1f\xac\ +y\xc7~\xc3\xfe\x9b\x0c\xe3#\x16%b\x81\xef\xc5\xa7\ +\x0c\x22A\xdb\xbf\xf6\x87T.\xc4{\xff\x92\x8d\xed\xfe\ +C\x9cx\x96\xf4~\x1b\xf7r\x08\x01H\x5cAo\x8d\ +ko=\x808.tIx\xca\x95\x12\x83\xe7\x01h\ +-V\x1a\x81\x8c\x89\xdbj7OXn\x9d\x89c\xfb\ +\x1d\x9b\x0dE\xf7\xbc\x8b\xdfK\x81\x8b\xa2\xb8\x0c\xf9Z\ +0\x06\xb6o\x1e\xee\xb1_\xd7\x82\x12\x16\x99p\xd8)\ +b\xf7\xbf\xa7\xb3\x01{\xeb\x01(@$\xdf\x1b\x92\xf4\ +\xe1\x8d\xbd\xc0\x98\xce\xd1S\x958\xb6\xbf\xe3@\xc7\xda\ +\xd7\xe2\xd8\xd2\xd0?+\x1bF\x10^\xa3\x02\x902\xde\ +\xfb\x1f\xf6\xb1_\xebE\x88\x1b\xeb\xa5\xb8\xf6\x0b\x82\x90\ +\x08z\x9c_\xeb\xa9\x02(T l\xe1$\xed\x01\x08\ +\x06\xab\xa7\xde\x12+\xadW\xbc \xe2\xe0\x1e\xc3\xd6I\ +K\xa1O\xd6\xfeb\x04q\x01Rx\x0d\xe5\xa4\xd6\xc2\ +h\xd5r`\xcf`U[\xf6\x13)R9\xd1Y\xd1\ +c\x99\xed\xe9\x0f\xeb\xc4\xb0\x89\xdf\x96A\x8a\xff!\x16\ +\xa0\x1d[\x0c\xbb\xb7\xb3\x12\xdb'\x19S7\xdb\x10i\ +\xb1\xee\x17\xd8Z\xd8\xb3cc\x8c\xfdZ?6\xf9\x11\ +\xe8\xa2\xf7\xb6\xae\xa7\x9f\xc1\xc41m\xe2\xd28\x88\xe3\ +(]'\xb6 i\x08T\xab-\xaei\x10\x89\xe3\xc4\ +\xee\xffF\x19\xfb\xb5>R1;\x19W\x00\xb1[\xa9\ +m\xc2\xbbD\xddm\xb3\x9c\xf5\xd1\x1dE\xb6\x1e6\xe2\ +\xd8\xaf\xf5a\xd31;=\xbehO\x15\x80\x8e\xfb\xdb\ +\x13?\x93;\xa9j\xaca`\xa5\x0ap\x9d\xcf\xc8\xda\ +\x8d5\xf6k\xbdX\x9b\xc24'\x8b\xa1\xc7QXo\ +\x15@\xecV\xb6m\xc2\xa1\xa26\xd7\xd7\xd8\xb2\x111\ +@\xa3\xb5\xfe#\xc9\x8b\x85\xd8\xfd\xdfHc\xbf\xd6\xc3\ +\xf5T`\xde\xe8\x05;r\xd5\xd3\xb6\xd7\x9e*\x00\xab\ +\xc1Z|\x924\x16\x16B#\xd2r\xc8\x06\x0ec\xa0\ +\xd9Z\xe7\xf7Z\xd8:i\xb9i\x03\x8e\xfd\xba\x1a\xc6\ +\xa6\xe2yFXz:\x86\xa4\xb7\x0a .UkX\ +\xd3[-u5B3\xd8\xc35\x93\xa4;\x87`=\ +\xb7K\x00\x07\xf7\x9a\x0d9\xf6\xebj\xe8\x84\xdf9k\ +\xc1\x1aB\x0b=\x1dI\xdc[\x05\x10\xff\xc7O4\x04\ +\x10\xb1\x02\xd0f\xf0\x0f\xd9\xec7\xdd.\xc4\xb6\x7f\xf5\ +\xef\x8d\xc7~\xd9\x95\xb1_9\x17\xe2k\x99\xf8;g\ +->d\xd8\x03\xe8\xc4)K\xc6\xf4\xae_y=\x04\ +Z\x10\xe5&j]\x84\xa1\xa0\x1d\x5c\xfd\xb5\x8d\xc7~\ +Y\xb6Nn\xbc\xb1_\xeb\xc1\xd7\x22\xb1N@\x88\xbd\ +kkh`Yg\x00\xb7>\xfaQ\xcb\xd0\xb0\x86 \ +\xc9\xa4\x5cd\x04QR]Y\x03N\x10\xc5\x9d\x88W\ +\xbb[\xdd\xb1_\xa5\xbe\x9cJ?\xf8\xb4\xb4\xc4$\x98\ +\x03\xb0\xb1qm\xda\x1e\x1b\xd7\x9e+\x00k\xa9[C\ +3\xa9\xa0Q\x00\xa1\x91\xb4\xa2\x01l\x08H\x18A\xdc\ +\x82|\xb5Qd\xd6\xc2X-\x1e\xfb\x95;V\x97b\ +\x81F(\x13\xbd7\xd6\x80\xd5\x9c\xb36\xa3\x0a\xe0\xc8\ +\xddo\x8e\x17j\xa9\x9b\x88f\xa2\x1e\x80\x85v\xae\x00\ +\xd6\x85\x1f^\xda\x86|1\xd6\xc2\xcc\xce\x8d=\xf6\xeb\ +J\x18\x0b\xf5@%\xba\xf5\xdc\x09\x01\xceEA\x96s\ +\x00\x00\x86\x86\xb5,\xda\x04\x03Gm\x04\x8d\x5c\x01\xac\ +\x8b\xb6/\x88\xf4\x95\x1bY<\x17\x9e\xd1\x19\xfb\x95s\ +)\xa1\x914B\x99h\xd7\x8b\x89\xc0ZN\x9d\xf8\xbe\ +\x0c\xd7\x01\x00X\xf0\x8df>\xc9#\xafb\x97L\xe5\ +\xd6j\x1d\xb4\xdaW>\x90\xd4Z\x98\x9e\xb0\xec\xc9\xc7\ +~\xad\x89 N\x006\x1368Z\xa3\x8d\xe1\xe4\x81\ +\xf7\xf7\xf6\xe7\xf6\xfcS\x98\x88\xb65\x9c\xb2IV\x02\ +XX\x0ad^\x12\xbc\x0e\x9a\xed\xab\x9f\x07\x90\x8f\xfd\ +\xba2\xcdP\xe2k\x99\xe8\x16\xa0\x89\xf0\xad\xe1\xc9^\ +\x9e\x0a\x04}P\x00\xdbo'4\x9a\x13\xbd^\xe8\x15\ +\x11\xb1\x07\x10\xe8\xbc\x16\xe0JXb\x0f\xe0r\x05,\ +\x16(\x15\xcf\x8f\xfd\xcaY\x9b\xe5P%7\x0b\x90\xd8\ ++\xd3!M,\xa7z\xfd\xb3{\xfa\x9c\x8f\xdc\xfdf\ +\xe6\x9e\x00k8a\xa2d\xab\x01\x1b\xa1\xa4\x19\xe6\xaf\ +\xed\x95\xb0\xc4\x1e\xc0\xe5\x92W\xd6\xc0\x8e\xcd\x86\x1d[\ +\xf2\xec\xff\xe5\xb0\xc0B[%^\x03`\x22\xe6\xac\xc9\ +\xb8\x02\x80x&\x80\xb5\x9c\xd0\x11\xeddnOg{\ +K\x0b\x16\x83D\x87\x11\x0f\x1c\xc6\xc4\xc3@.\xf7\xee\ +J\x09\xb7\xee5\x94\x0by{\xf5\xe5\x88\x8c\xe0\x9c\xef\ +$z\x83\x8c\x06\xa39k-\xe7\xe0\xfc\x8e[/\xe8\ +\xbd\xc9\x8c\xdb\xa4N\x99\x88F\x92;\x01\x91\x15\xcc\xb5\ +\x9d\xfc\xc5\xbd\x02\xda\xc4\xc3@\xd6\xc2\xdax>aw\ +\xecW\xce\xa5\x08\xa0\x19I\xce\xf9*\xf1\x1d\x00\xa39\ +jt\xef\x0e\x04\xe9\xd2\x17\x9f\xd9\x1aN\xe9\x90SI\ +*\x00\x80\xb3-\x07_\xe7\xaf\xefZ\x08\xba\x8d@k\ +\xff}|\xe4W>\xf6\xebj,\x07\x8aV\x94l\x02\ +P\x87`4O|\xe3\x1bz_b\xdf\x1f\x05`9\ +g4'\x13M\x04\x02\x8b\xbeC#T\xb9\x05\xbb\x0c\ +a\xe7<\x80\xb5p\x1c\xb8\xed\xe6|\xec\xd7\xd58\xdb\ +r\x12M\x00\x02\xe8\x80\xd0\x1a\x1e\xfa\xc8{{\xeb\xfe\ +C\x9f\x14\x80\x89h\x98\x88#\xba\xa75KWF\x00\ +\xadH0\xd7\xca\xdf\xe0\xcb\x11\x84\xacy\x1c\x99\xb5\xf1\ +y\x83\xf9\xd8\xaf+\x13Y\xc1|\xdbI\xbc\x020\x0a\ +X\xb2\x86\xc7\xfa\xe1Q\xf7E\x01\x94F\x89\x8c\xe6\xe1\ +(Hv' \xb2\x82\xd3-7\x9f\x0dp\x19\xba\x0a\ +\xe0b,\xb0\xef&\xc3\xc4H\xbe\xf7\x7f9\x04\xf1\xfe\ +\xff\xd9\xb6\x93l\xfc\xafA\x87\ +\xfe\xd7\x11\x8fY\xcb\x5c?~~\x7f6\xce\xe3\xe9%\ +\xc7\x22\x9f\xa7M\x82y\x00\x01,\x05\x8a\xf9v\x1e\x06\ +\xac\x85\x1f\xc4\xe7\x01\xac~\x83W\xc6~m\xcd\xad\xff\ +\x950\xc0\xc9\x86\x9b|\xfc\x1f'\x00\x0f\x1f}\x0f\xcd\ +~\xfc\xfc\xbeU\xceX\xc3\x09\x1d\xf1P\x92y\x00\x80\ +\xc0\x08\x9ejx\xf9\xcb\xbc\x06\xad6q#\xd0\xaa?\ +\xcb\xc7~\xad\x0f?\x92\x9cN!\xbf\x14\xb6\x09\x8c\xe6\ +\xf0\xcdo\xe8\xcf\xcf\xef\x9b\x02\xf0\xeb4u\xc4\xe7C\ +?\xf9\xf7\xea\xe9\x86K3aWm\x10h\xb4.\xec\ +\x038?\xf6K\xe7\xf7\xea\x0a\x08`\xae\xedp\xcew\ +\x92\xad\xff\xd7\x10\x05\xccay\xd0\xda\xde\xef\x00@\x1f\ +\x15@y\x1ck\x0d\x9f\x8b\xda\xc9\xce\x06\x10\xc09_\ +q&\xdf\x0d\xb8\x80\x95>\x80\x8b\x14\xc0\xae\xad\x96m\ +S\xf9\xde\xff\x950\xc0\x93u\x8f \xe1\x1a\x13\x1d\x82\ +\x0ex\xd4Z\x8e\xf6\xeb\x1a}Q\x00+\xc3A\x0c\x87\ +C\x9f\xe3I\xe6\x01 \x0e\x03\x9e\xac{\x89\xd6k\x0f\ +\x02-\xff\xc2>\x00\xa5\xe2\xe4_\xd1M{e\xd9E\ +\x10\x0f\xff8\xbe\x9c|X\x19\xf9\xa0#\xee\xd7!\x0b\ +\xfd\xbaF\x7f\xbbg,'u\xc8\x03\xd1:\xa6\xd0\xf6\ +\x9a\x93\x0d\x8f\xe5 /\x0a\xeab\xec\x85}\x00\xd6\xc2\ +\xf8\x88\xe5\xc0M\xf9\xde\xff\xd5x\xba\xe9\xb2\x1c$\x1f\ +R\x86m|\xa3\xf9\xac[\xea\x9f\x83\xd6W\x05\xe0\x16\ +i\x9a\x88O\x84\xedd\xeb\x01\xba\xbb\x01'\x1a\xf9D\ +\xcb.\xda@\xb3%V4@w\xec\xd7\xa6|\xec\xd7\ +\x15\x09\x8c\xe0\xe8R\x81(\xe1Y\x13FC\xe4s\xd6\ +\x1a\xbeL\x9f\xe2\x7f\xe8\xb3\x02\xd0\x11X\xc3\xbdA\x8b\ +9\x93\xa8\x0a\x00m\xe1\x89%/\xef\x0d\xe8\x10\xe9N\ +\x1f@\xe7vxn\xec\xfe\xe7c\xbf.\x8f\x00N7\ +]\x9en$\x9b\xfc\x83\xd8\xfd\x8f\x02\x1e\xa0\x8f\xf1?\ +\xf4;\x04 \xce\x03D\x01\x0f\xe8DO\x0a\xe8<\xbc\ +\x96\xcb\xa9\xa6\xbb\xe1\xc3\x00\x01h}\xfe<\x80\xee\xd8\ +\xaf\xbd\xf9\xd8\xaf+\xa2-<\xb6X\xa0\xad\x93\xd7\x92\ +A\x0bt\xc8\xa7\x1e\xffE\x16\xfby\x9d\xbe}\xb2\xae\ +\xcb\x12\xfa,\x98\x90\x7f\x0dzz\x9c\xc1\xfa\xf0u:\ +\xee[\x16\x89\xf4\x85\xe7\x01\x1c\xc8\xc7~]\x11\x01,\ +\xf8\x0e'\xea\xc9gH\xad\x81\xb0\xc5\xbc5\xfc\xe3\xcc\ +/\xf6\xf7Z}Wm\x85\x0a\xd6h\xfe1h%;\ +)\xb8\xcb\x93u\x8f\xf9v\x9e\x0c\xf4\x83\xf8L\x80\xee\ +\xd8\xaf\xdb\xf2\xb1_W\xc4\x10[\xffz\x0a\xdd\xa5Q\ +\x00\x91\xcfW\xac\xe50\xf4/\xfe\x87\x04\x14\x00\x80\xb5\ +|!l\xf3`\x94B\x18\xd0\x08%G\x16\x8b\x1bz\ +KP\x10\xc7\xffA\xf6\xebr\ +X\xe0\xf1\xa5\x02K)l#\x1b\x03~\x83ec\xf8\ +\xb8\xd7\xc7\xed\xbf.\x89x\x00n\x11c4\x1f\xf1\x1b\ +\xc9\xef\x06\x08\xa0\x1e*\x1e^(n\xe8\x5c@\x10\xc4\ +y\x80\xd1\x8a\xe5\xc0\xee\xbc\xee\xefr\x08\xe2\xae\xbf#\ +\xe7\xd2\xb1\xfeQ\x1b\xc26\xf7[\xc3\xbfB\x7f\xdd\x7f\ +H@\x01\xac:2\xec\xf3\x91\xcf\x97\xa3\xc4F\x85\x9e\ +\xc7\x02\xc7\x96\x0a\x9cin\x5c/\xa0\x1d\x08\xb4\x86=\ +;,\x9b7\xe5\xc9\xbf\xcb\xa1-<\xbcPL\xc5\xfa\ +\x03\xf8\x0d\xd0!\x7f\xff\xf8\xcf\xf4\xdf\xfd\x87\x84<\x00\ +\x80\x93\x0fpV\x87\xfc\x8d\xdfH\xb6(\x08:\xb9\x80\ +H\xf2\xc0|iC\xd6\x05X\xe2a \xdd\x13\x7f\xf3\ +\xb1_k#\x803-\x97\xa3K\xe9X\x7f\x13A\xd0\ +\xe4\xa45\xfc\xdd\xcc[\xfbo\xfd!!\x05p\xe4\xee\ +7\xb3\xfd\x0e\xb0\x86\xbf\xf7\x9b<\x95t\x8b0\xc4\x0f\ +\xf7\xc9e\x8f'\x96\x0b\x1b\xd2\x0b\x10\x02&\xc7\xf3\xb1\ +_W\x224\x82\x87\xe6\x8b\xd4S\xea$\xf5\x1b\x10\xb6\ +\xf9\x14\xf0@R\xd7Lt'\xc8Z\x0eG>\xff\x90\ +F2\x10\xe2\xb2\xce\x07\xe6J,o\xc0V\xe1\xa2g\ +\xb9e\x8fa|4w\xff\xd7B\x00O,{\x1c]\ +J\xc7@X\x03~\x9d\x86\xd1\x1c\x12\xb2\xf7\xe3\xbf/\ +G\xa2\x0a@*\xdaF\xf3\xa1\xf62\xf54j\x02\x04\ +p\xb6\xed\xf0\xd0|i\xc3m\x0bN\x8e[\x9euP\ +\xe7c\xbf\xd6\xa0\x1b\x22>8_\x22Hx\xe2O\x97\ +\xb0\x0dA\x8b\x07\xb0\xfc3$\xe3\xfeC\x82\x0a`U\ +\x8b\xf0?\x85m\xbe\x10\xa6\x90\x0c\x84\xb8+\xee\xe1\x85\ +\x22'\x1b\xde\x86\xf1\x02,q\xe9\xef\xf6\xe9\xdc\xfa\xaf\ +\x85\xb1\xf0\xd0|)\xbd\xb2q\x0b\xed:F\x87|\xf0\ +5\xdf\xc6SI^:\xf1b\xb0'?\xcfi\x1d\xf2\ +\xc1\xf62Q\x1aoc\xf7t\x97/\x9c)\xd3\xd8@\ +\xc3C\x0b^<\xfb?\xe7B\x04p\xaa\xe9\xf2\xd0B\ +z\xc5b\xa1\x0f\xfe2G\xac\xe1\x83\xef\xbd'\xd9k\ +'\xae\x00v\xdd\x09\xd6\xf0!\xbf\xc1ca\x0as\x02\ + ~\xe8'\x9b.\x0f\xcf\x17\xf3\x11\xe2\x1b\x98\xb8F\ +D\xf2\xf93\xe5\xc4\xa7\xfd\xae\xc6o@\x14\xf0W\xd6\ +\xf4\xbf\xf4\xf7b\x12U\x00\xabj\x02\x1e\x8d|>\xe0\ +\xd7\xd3\xf3H\x8d\x85\xc3\xf3%\x9e\xa8o\x9cP \xe7\ +Bt\xe7\x1d8\x91\xe2;\xa0\x03h/\xf3\xb45|\ +@:\xc9o\x91'\xee\x01\x1c\xb9\xfb\xcdHEd\x0d\ +\xefo/\xf3T\xd2\xfd\x01]V\x87\x02\x8b\xf9\xe4\xa0\ +\x0d\xc9\xd1\xa5B\xec\x05\xa6\xb8\x86v\x1d\xa26\xff\x1b\ +\xf8\x1c$k\xfd!\x05\x05\xb0\x82\xe5\xfe\xc8\xe7\xaf\xdb\ +\xcb\xa9\xad`e\xe0\xc3\x17\xce\x94S\xcb\xfe\xe6$\x8f\ + >\xe3\xef\xbe\xd3\x15Z:=\xd7_\x87\xd0Z\xe2\ +\x94\xd1\xfc\x89\x90\xa4\x92\x16OM\x01\x08\x85o\x0c\xef\ +n/q\x22-/\xa0\xcb\x91\xc5\x02\x0f\xcd\x17\x13=\ +\xf3-'\x1d\xbaq\xff\xe7NWX\xf0\xd3\xf5\xfc\xda\ +\xcb\x10\xb5\xf9\x08\xf0iH\xde\xfaCJ\x0a`\xe5\x83\ +Z>\x13\xfa|\xa0\xbd\x94\xc6*\xce\x13\x1a\xc1\x17\xcf\ +\x96y2\xcf\x07\x0c5\x82\xb8\x18\xec\xfe3\x15\x9e\x5c\ +N\xf7YG\x01\xb4\x169e\x0c\xef\x12\x92\x14\xc6\xe5\ +\xc4\xa4:\x13BH|\xabyWk\x89\xc7\xd3\xaa\x0b\ +\x80\xf3\xf9\x80\xcf\x9e\xaap\xa6\xb5q\x1b\x86\x86\x1dm\ +\x05\x87\xe7J<\xba\x90N\xad\xffj\xda\xcb\x10\xfa|\ + \xe9\xc2\x9f\x8bIM\x01\xac\xfa\xc0\xf7E>\xf7\xb4\ +\x16I\xd5\x05\xef\x9e\xfe\xf2\xd9S\x95\xd4:\xc1r\xfa\ +\xcb\xa3\xe7\x0a|\xe1l9\xf5\xb6\xf0\xc8\x87\xf6\x22'\ +\xac\xe6\x9dB\x92\xd2fxL\xeaS\xa1\x84$\xb2\x86\ +w\xb4\x97\xf9B\x98R\x8f\xc0\xcaZ\x80\x13u\x8f\xcf\ +\x9e\xaa\xe4'\x0c\x0f\x19\xc7\x96<\xee;]\xc1\xd7\x22\ +\xd5\xe7j-4\x17\xb1\xa1\xcf!\xe0^H\xcf\xfaC\ +\xca\x0a`Uy\xf0C:\xe4\x1d\x8d\x05\xfc\xa4\x07\x86\ +\xac\xc5\xe3K\x05\xee\xcd\x95\xc0P\xd0U\xea\xff\xfat\ +5\xb5.\xbf\xd5\x84-h/\xf1\xa05\xfc\xa1\x90\xa4\ +\xd0\x17{!\xa9{\x00G\xee~3\xd2\xc1Z\xc3\xbb\ +\xfd\x06\x1f\xf7\x13\xeb\x83\xba<\xd6\xc2#\x0bE>w\ +\xbaB;e\x8b\x91sc<\xd5p\xf9\xf4\xd3\xd9\x08\ +\xeb\xac\x81\xe69\xb4\x0e\xf9\x93(\xe0AH\xd7\xfaC\ +\x06\x14@\x17!9c4oo,0\x97\xf6\xb6 \ +\xc4\x0d4\x8f,\x14\xf9\xec\xa9*\xad\xdc\x13\x188\xba\ +5\x1e\x9f:Ye.#\xf3 \xdb\xcb\xd0\xae\xf3\xcf\ +\xd6\xf2n\xb7\x88M[\xf8!#\x0a`\xd5\xb6\xe0\xdf\ +\x86m\xfe\xa2y\x0e\x9b\x85=yc\xe1\xe1\xf9b\x9e\ +\x13\x180\xba\xbd\x1e\x9f\xcc\x90\xf0\xeb\x10\x9a\xe7X4\ +\x11o\x13\x82\xe3i\xaf\xa7K&\x14@\x17!i[\ +\xc3\xffh-\xf2\x85\xa0\x91\xf6jb,\xf0\xc8\xb9\x22\ +\x9f:Y\xcd\x0f\x1b\x1d\x10N6\x5c>\xf9T5;\ +[\xba\x16\x9a\xe7 h\xf1>\xe0\xef }\xd7\xbfK\ +f\x14@\xf7\x86\x08\xc1a\x1d\xf2\xb6\xc6\xc2\xc4k\xef\x02x\xccD\xec\x16\x82g\x16\xca\x90\ +\x95'\xb9\x18(\xce\xb6\x1d\xc6\x0a\x9a\x9a\x9b\x8f\xd6\xce\ +\x0a\x828\x5c{\xf4\x5c\x91\xcf<]\xcdTs\x97\x89\ +`\xf9\x0c\xad\xa0\xc5/\x0b\xf8\x1bDv\xac?dL\ +\x01@G\x09\xdc}\x97o-GM\xc8\x8bU\x81)\ +'C\xa7|\xd7C\xc5\xe9\xa6K\xc95\x8cz\x1a\x99\ +\x957m\x83\x22\x80\xb6\x16<0W\xe6\xbe\xd3\x19\xcb\ +\xd5X\xa8\xcfC{\x91\xf7Y\xcb\xaf\x0bA+K\xc2\ +\x0f\x19\x0a\x01.\xa62\xc6\xfdQ\xc8\x7fk\xcc\xb3\x9c\ +\xc6\x14\xe1\xcb\x11\x1f\x1a\xa9\xf8\xe4SU\x0e\xcf\x97\x08\ +M\xbeM\x98\x16\x82\xd8+\xfb\xe4\xc9\x1a\xf7ep\xcb\ +\xb6\xdd\x80\xd69\xbel4\xbf*`>\xed\xf5\xacE\ +\xe6<\x00\x88\xbd\x80\xda\xab\xee\x028bBv`y\ +\x96WF\x88\x8c<]A\xdc@t\xaa\xe9\xd2\x8c\x14\ +\x13\x05MAe`\xdbb\x83 \x88\xf32\xc7\xeb\x1e\ +\x9f~\xba\xca\xf1e\x0fKf\x22E .\xf7]>\ +\xcdR\xe4\xf3\xf3&\xe0o\xa5\x9b-\xd7\xbfK&\x15\ +\x00\xc0\xc4k\xefB\x08\x02kyP\x87\xcdB\xe4\xf33\x02>,2\xb6\xe5\xb7\ +\x16Y\xbd\x97\x970sh\x16k\xd9\xa7\x1c\xdeQ\x9d\ +\xe4\x85\x95\xf1\xec\xae\xde\x02J\xc0t9\xe4\xf6M-\ +vT\x03\x5c\x99\x1f\xcaq\xad\xd4C\xc5#\x0bE\x1e\ +Y\x88\xcf\xeb\xcb2:\x84\xc5\x93\xb4\xfc:\xff\x15\x98\ +E\xe0g]\xf8a\x00<\x80.\x9d\x02\xa1yk8\ +\xa2\x03^\xa4<69\x85\xb4W\xb56\x82X\x09,\ +\x87\x8a\x13u\x8f\xc5@QT\x96\x92k\xf3\xa3\xb9\xae\ +\x82\x00\x02-xl\xa9\xc8g\x9e\xae\xf0\xd8R1\xf5\ +\x1e\xfe\xaba4\xd4\xcf`\xdau\xdem-\xbf$\x04\ +\x8dA\x10~\x18 \x05\xd0)\x10B\x08\x8e\x1b\xcd\xbc\ +\x0ex\xb1S\xa4\x92\xc5\xa4`\x17A<\x86j\xae\xed\ +\xf0d\xdd\xa3\x11JJ\x8e\xa1\xe8\x98\xbc\x80\xe8\x22\x04\ +\x10j\xc1\x93\x0d\x8f{OUyp\xbe\xc4R\xa8V\ +\xfe.\xabX\x0b\x8d9h.\xf0\xd7\xd6\xf0\x93\x02N\ +#\xe2\xf7u\x10\x18\x18\x05\x00+;\x03\x16x\xd0D\ +X\x13\xf1\x22\xb7\x88+3~\xe4U\xb7n\xe0l\xcb\ +\xe5x\xbd\xc0r\xa0(8\x86\xd2\x06W\x04b\xd5\xbd\ +9Q\xf7\xf8\xdc\xe9\x0a_\x9a+3\xd7v2\x9b\xe4\ +\xbb\x80N\x93Oc\x8e\xcf\x19\xcd\x8f\x0ax4k\xa5\ +\xbeWc\xa0\x14\x00\xac$\x05\x8d\x85/\xea\x90\x92\x89\ +\xf8*\xaf\x84#3\xfeI\xba/s\xd0Q\x04O\xd6\ +\x0b,\x05\x0eJ@\xc918\x22\xdb\x96\xae\x1f\xf7\xa2\ +\x19I\x9eX\xf6\xb8\xffL,\xf8g\x07E\xf0;\xb4\ +\x96a\xf9\x0c\x87u\xc4\x9bt\xc0g\xa43X\xc2\x0f\ +\x03\xfc\xceu\x92\x82\x13B\xf2\x1b\xa5\x11\xbe\xab6\x8d\ +R\x19\xf7\x04V\xd3M\x08\x16\x95ek%`\xcf\xa8\ +\xcf\xd6rH\xd95+9\x84a\xa2\xfb\xa2EVp\ +\xceW\x1c_\xf6xb\xd9c\xae\xe5\x10\x0d\x90\xd0w\ +i/\xc3\xf2i\x9e\x0c}\xfe\x13\xf0\xfeA\xc8\xf8\xaf\ +\xc5\x00\x89\xcc\xa5\x888)\xf8\x96\xd6\x22\x8e\x10|G\ +m\x1a\x95uO`\xd5\xda\x01\xf0\xb5\xe0\xf1\xa5\x02\xc7\ +\xeb\x1e\xe3\x05\xcd\x8ej\xc0\xaeZ\xc0D1\xc2\xedl\ +!\x0e\xaa2\xe8~Fm\xa1\x19)N5\x1d\x9eX\ +*p\xaa\xe9P\x0f\xd5J\xf9\xee\xa0\x09\xbf\xdf\x80\xe5\ +\xd3<\x1d\xfa\xfc\x94\x10|\x10\x06S\xf8a\xf0\xee\xfd\ +\x05\xcc\x1c\x9a\x05\x0b\x16vJ\xc9o\x96Fyum\ +\x0a\x99\xf5\x9c\xc0\xe5\xe8\x0aD\xd91L\x96\x22\xb6U\ +\x03\xa6K\x11c\x85\x08O\xd9\x95\x87\x95e\x85\xb0\xda\ +\xd27C\xc9\x99\x96\xc3S\x0d\x8fS\x0d\x87\xa5@\xad\ +\x8c\xe4\x1e\xd4\x17/h\xc2\xd2)\xe6\xc2\x16oA\xf0\ +\x87\x90\xdd2\xdf\xf50\xa8\xcfa\x85N(\x00\xb0K\ +J\xfe{i\x8cW\xd7&\x07W\x09@G\xc0-H\ +\x01\x05\xc70Q\x8c\x98.EL\x97CF\x0b\x9a\x8a\ +cp\xa4\xbd\xe0\xe1\xa5\xa1\x14.\xbe\xbe\xaf\x05\xf5P\ +q\xa6\xe9p\xaa\xe9r\xa6\xe5R\x0f%\xa1\x19l\xa1\ +\xef\xd2\x11\xfe\x85\xa0\xc5\xcf\x09\xf8\xff\x10\x04\x83,\xfc\ +0\xf8\xcf\x04\xb8\xc0\x13\xd8-$o-\x8f\xf2-\xb5\ +)\xd4 +\x81.]\xc1\x16\x80+-E\xc70^\ +\xd0L\x14#6\x95\x22F\xbcX!\xb8\xca\xa2\x84\xbd\ +\xe4\x81\xde\x88b\x10k\xfc\xdev\xbe\x22#\xf0\xb5\xa0\ +\x19I\x16\xda\x0e\x0b\xbe\xc3\xd9Vl\xe5[\x91D\xdb\ +\xb5\x7f\xc6\xa0\xd2\x15\xfe\xb0\xc5/\x02\xbf?(\x85>\ +WcX\x9e\x0f{\xdf3\xdb}AwJ\xc9[\x8b\ +#\xbc\xa66\x85\x93\xe5:\x81\xeb\xa1\xeb\x1d\x08\x01J\ +Z\x8a\xcaRv\x0c5OS\xf34#\x9e\xa6\xea\xc6\ +[\x8cE\x15{\x0aJ\x80\x14\x16q\x85\x9d\x86\xae\xa2\ +\xb06.i66\x9e\xb2\x13\x1aI` \xd0\x92v\ +$\xa9\x87\x92\xe5@\xc5\xff\x0fca\xf7\xf5y\x81\x87\ +!z\xa9:tb\xfe\xf9\xb0\xc5\x7f\xb5\xf0?\xc4\x90\ +\x08?\x0c\xd9\xb3Z\x15\x0el\x15\x82_(\xd6\xf8\xf7\ +\xb5i\xdc,M\x14\xea5v\xf5/D\x5c\x82\xac\x84\ +\xc5S\x96\x822\x14\x94\xc5S\x86\xa2\xb2\xb8\xd2\xe2*\ +\x8b\xc0\x22\xc5\xf9\xa3\xd8\x8c\x15h\x13\xc7\xed\x91\x16\x04\ +F\x10h\x11\x0b\xbf\x16\x84V\x10\x19A\xd4Q\x0ev\ +\xb5[\xc2\x90\xbdD\x17\xe17`\xf9\x14g\x826?\ +'\xe0\x8f\x87\xc5\xf2w\x19\xbag\xb7*\x1c\x98\x12\x82\ +\xb7x\x15\xfe\xc3\xc84\xe5,\xcd\x12H\x02{\xc9/\ +\xb8\xe0i_\xb2\xd5\xb8V\xac \xd6\xfc\xe5\x86\xa1\xb5\ +\x04\xf53<\x19\xfa\xfc\x82\x80w\x22\x08\x87I\xf8a\ +\x88\x9f\xeb\xcc{f\xb1P\x15\xf0&\xaf\xccO\xd6\xa6\ +\xa8y\x95\xb4W\x953\x08X\x0b\xadE\xa8\x9f\xe5\xb1\ +(\xe0\xc7;[}z\xd8\x84\x1f\x06\xb0\x12p\xbd,\ +\xfc\xe5G\x98\xb8\xfb\xae\x00\xb8W\x87\x9c\x0d\xdb\ +\xabC\xfe\xb3\x10|\x180\xc3(\xfc0\xc4\x0a\x00V\ +z\x07B\xe0>\xady\xff\x9d\xd8\xe5_\xda(.\xff\xc5lX\x05\x00\ +\x9d\x90\xc0\x00\x82M\xc0w\xbb\x05\xdeT\x1eggi\ +4\xf7\x06\x86\x91\xa0\x05\x8dy\x02\xbf\xce\xdf\x19\xcd\xaf\ +\x09\xc1\xa7\x19\xd2\xfd\xfd\xf5\xb2\xa1\x15@\x97\x99C\xb3\ +\x00\xcaZ\xbeV*~\xa2P\xe5\xe5\x95q\xbc\xdc\x1b\ +\x18\x0e\x8c\x8e\x0b{\x9a\xe78\x11\xf9\xfc\x9e\xb5\xfc\x11\ +\x96S\x1b!\xcb\x7f5r\x05\xd0a\xe6=\xb3\x98\xb8\ +\xc9fZ\xc0w;\x05~\xa44\xc6\xee\xd2\x08\x0c[\ +C\xd1\x86\xc1\xaeX\xfd\xb6_\xe7\xc3\xc6\xf0;\xc0'\ +\x80h\xa3\xc5\xfa\x97#W\x00\x17\xb1\xf7=\xb17\x00\ +\xa3#\xfe\x02\xcb\xc7\x80\xa7 w\xf5o\x94\ +\x5c\x01\xf4\x90\x8e\x22\x90\xc0v\x04/S\x8a\xff\xcb)\ +\xf2\xb5\xc5\x1a\x9b\xbc28\x85\xdc+X\x0f:\x8a\xdd\ +|\xbfA\x104\xf9\x8a\x0e\xf8\x98\xd1\xfc\x15\xf09`\ +\xc1Zx\xfcu\xb9\xe0\xf7\x82\xfcu\xec\x03{\xfel\ +\x16\xe5\x82\x8e\xa8\x09\xc1\xf3\x84\xe2\xdf:.\xafpK\ +\xec+T(w\xbd\x82\x5c\x19\x9c\xc7h\x88\xda\xe07\ +1A\x93\xa7#\x9f\xcf\x98\x88\xbf\xb1\x96\x8f[\xc3Q\ +!\x88\x16\x16a\xe1\x87r\xc1\xef%\xf9+\xd8g\xf6\ +\xfcy\xbc\x85(\x04\xdb\x11\xbcP*^\xe5\x14x\xae\ +[d\x97W\xc6s\x8bq\xa9\xf1FT\x06&\x82\xd0\ +\x87\xb0\x85\x0e\x9a\xcc\x87>\xf7\x9b\x88\x7f\xb0\x86\xbf\xb7\ +\x96\x07\xdd2\xf5\xe5\x13p\xf2Gr\xa1\xef\x17\x1b\xf0\ +\xb5K\x87\xdd\xef\x9e\xc5-A\xe4S\x02v\x09\xc9\x0b\ +\xa4\xe2\xc5\x8e\xc7W;\x05vy%\xaaN\x11\x1c\xb7\ +\xd3\x898\x84O\xc6\x9a\xd8\xd2\x87m\x08\xdbDA\x8b\ +S\x91\xcf\x97;B\xff/\xd6\xf2\x80\xd1,\x08\x09G\ +\xbf#\x17\xfa$\x106\x1e\x91\xb3r\xee\xa4\xd8\x88\xa6\ +(av\xfe\xd1,\xc5\x09\x08\x9bxB\xb0]H\x9e\ +!%\xcf\x97\x0e\xcfV.\xb7\xba\x056\xbb%\x8a\x8e\ +\xd7\xf1\x0e\xd4`z\x08\xd6\xc6V>\x0a \xf21a\ +\x9bF\xe4sL\x87|\xd1h>a\x0d\xf7Z\xcb\xc3\ +X\x96\x11\xd8<\xaeO\x9e\xae\x02\xe8\xf6\xbb\x85\xb9\x02\ +H\x9e\x9d\xef\x98E\x87\x88B\x85*\x82]B\xf2\x0c\ +\xa9\xb8S*nW.{\x95\xcbf\xb7@Uy(\ +\xc7\x8b=\x84\xac)\x05k\xe2/\x1d\xc5\xa3\xb6\x22\x9f\ +(\x0a\xa8\xeb\x80\x13:\xe4Q\xa3\xb9\xd7\x18\xee\xb7\x86\ +\xc3X\x9e\x1e\xdfE\xfb\xe4\x03p\xf2\x07s\xa1O\x92\ +K\x0c\xbe\xb5\x17\x1e\x09\x93+\x80\xf4\xb9\xe9]\xb3\x04\ +MD\xa1FU\x08\xa6\x84dFH\x0eJ\xc53\xa4\ +\xc3\x8ct\xd8\xa5\x1c\xc6\x94KM\xb9x\xcaAH\xa7\ +\xa3\x18d\xe7\x0b.\x7f\xba'k\xfc9\x5c\xfe$Q\ +\xdb9\x14\xd4\xc4V\xbd\xeb\xca\x9b\x08L\x84\xd5\x11-\ +\x1d\xd0\xd0\x11gu\xc4\x13V\xf3\x15\xa3y\xd8\x1a\xbe\ +l-\x8fY\xc3\x19kh\x02\x1c{C.\xf0i\xd2\ +\x91w\x8f\xf8\x91\x86\xb9\xb4\x0f\x00\x9b\x7fw\x96\xe9\xdb\ +`\xf9\x04.\x82\xb2\x90L\x0a\xc1\xb4\x10\xdc$$;\ +\x84d\xafTl\x93\x8a-R1&\x14\xa3RQ\x90\ +\x0aOH\x1c)QH\xa4\x10H!8\x7f\xa6\xdf\xaa\ +\xf3\x01\xbbB\x8e\xc5X\x83\xb5\xf1\xff\xb55DF\x13\ +ZC\xdbh\xeaF\xb3d5\xf3\xc62g5'\xac\ +\xe1)c8j-'0\x85@`\xe3\x83\x80\x01\ +\x1f\x8b\x01\x9a\xd6\xd2\xc6\xb2d\xa1\x8e\xe1\x9c\xb5\x9c\x03\ +\xceY\xcb\x925,Z\xcb\xb25\xf8: \xd8\xf7\x0a\ +\xcc\xa7\xff'\xb4~9\x17\xf4A\xe4\xff\x00!\xbf\xbf\ +E\xaax=\x13\x00\x00\x00\x00IEND\xaeB`\ \x82\ " qt_resource_name = b"\ \x00\x09\ -\x0a\x6c\x78\x43\ -\x00\x72\ -\x00\x65\x00\x73\x00\x6f\x00\x75\x00\x72\x00\x63\x00\x65\x00\x73\ -\x00\x10\ -\x0a\x2c\xb7\x07\ -\x00\x64\ -\x00\x6f\x00\x6e\x00\x61\x00\x74\x00\x65\x00\x62\x00\x75\x00\x74\x00\x74\x00\x6f\x00\x6e\x00\x2e\x00\x70\x00\x6e\x00\x67\ +\x0alxC\ +\x00r\ +\x00e\x00s\x00o\x00u\x00r\x00c\x00e\x00s\ +\x00\x13\ +\x0f\xce\x16\xa7\ +\x00b\ +\x00t\x00n\x00_\x00d\x00o\x00n\x00a\x00t\x00e\x00C\x00C\x00_\x00L\x00G\x00.\x00p\ +\x00n\x00g\ \x00\x08\ -\x0a\x61\x42\x7f\ -\x00\x69\ -\x00\x63\x00\x6f\x00\x6e\x00\x2e\x00\x69\x00\x63\x00\x6f\ +\x0aaB\x7f\ +\x00i\ +\x00c\x00o\x00n\x00.\x00i\x00c\x00o\ " qt_resource_struct = b"\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\ +\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x02\x00\x00\x00\x02\ +\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00D\x00\x00\x00\x00\x00\x01\x00\x00\x0a\x91\ +\x00\x00\x01}\x07\xf8'\x92\ \x00\x00\x00\x18\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ -\x00\x00\x00\x3e\x00\x00\x00\x00\x00\x01\x00\x00\x3b\x83\ +\x00\x00\x01}\x07\xf7U\x91\ " def qInitResources(): - QtCore.qRegisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) + QtCore.qRegisterResourceData(0x03, qt_resource_struct, qt_resource_name, qt_resource_data) def qCleanupResources(): - QtCore.qUnregisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) + QtCore.qUnregisterResourceData(0x03, qt_resource_struct, qt_resource_name, qt_resource_data) qInitResources() diff --git a/src/screen_region.py b/src/screen_region.py index 9c9d382a..8bb50e9c 100644 --- a/src/screen_region.py +++ b/src/screen_region.py @@ -1,16 +1,15 @@ -from PyQt4 import QtGui, QtCore, QtTest -import ctypes -import ctypes.wintypes -import win32gui -import cv2 +from PyQt6 import QtCore, QtGui, QtTest, QtWidgets +from win32 import win32gui +from typing import cast, Callable import capture_windows -from PyQt4 import QtGui, QtCore, QtTest import ctypes import ctypes.wintypes -import win32gui import cv2 import numpy as np +import error_messages + + def selectRegion(self): # Create a screen selector widget selector = SelectRegionWidget() @@ -22,7 +21,7 @@ def selectRegion(self): # return an error if width or height are zero. if selector.width == 0 or selector.height == 0: - self.regionSizeError() + error_messages.regionSizeError() return # Width and Height of the spinBox @@ -30,11 +29,11 @@ def selectRegion(self): self.heightSpinBox.setValue(selector.height) # Grab the window handle from the coordinates selected by the widget - self.hwnd = win32gui.WindowFromPoint((selector.left, selector.top)) + self.hwnd = cast(int, win32gui.WindowFromPoint((selector.left, selector.top))) # Want to pull the parent window from the window handle # By using GetAncestor we are able to get the parent window instead # of the owner window. - GetAncestor = ctypes.windll.user32.GetAncestor + GetAncestor = cast(Callable[[int, int], int], ctypes.windll.user32.GetAncestor) GA_ROOT = 2 while win32gui.IsChild(win32gui.GetParent(self.hwnd), self.hwnd): @@ -75,6 +74,7 @@ def selectRegion(self): # check if live image needs to be turned on or just set a single image self.checkLiveImage() + def selectWindow(self): # Create a screen selector widget selector = SelectWindowWidget() @@ -85,10 +85,9 @@ def selectWindow(self): QtTest.QTest.qWait(1) # Grab the window handle from the coordinates selected by the widget - self.hwnd = None - self.hwnd = win32gui.WindowFromPoint((selector.x, selector.y)) + self.hwnd = cast(int, win32gui.WindowFromPoint((selector.x, selector.y))) - if self.hwnd is None: + if self.hwnd == 0: return del selector @@ -96,7 +95,7 @@ def selectWindow(self): # Want to pull the parent window from the window handle # By using GetAncestor we are able to get the parent window instead # of the owner window. - GetAncestor = ctypes.windll.user32.GetAncestor + GetAncestor = cast(Callable[[int, int], int], ctypes.windll.user32.GetAncestor) GA_ROOT = 2 while win32gui.IsChild(win32gui.GetParent(self.hwnd), self.hwnd): self.hwnd = GetAncestor(self.hwnd, GA_ROOT) @@ -122,90 +121,94 @@ def selectWindow(self): self.checkLiveImage() + def alignRegion(self): - # check to see if a region has been set - if self.hwnd == 0 or win32gui.GetWindowText(self.hwnd) == '': - self.regionError() - return - # This is the image used for aligning the capture region - # to the best fit for the user. - template_filename = str(QtGui.QFileDialog.getOpenFileName(self, "Select Reference Image", "", - "Image Files (*.png *.jpg *.jpeg *.jpe *.jp2 *.bmp *.tiff *.tif *.dib *.webp *.pbm *.pgm *.ppm *.sr *.ras)")) - - # return if the user presses cancel - if template_filename == '': - return - - template = cv2.imread(template_filename, cv2.IMREAD_COLOR) - - # shouldn't need this, but just for caution, throw a type error if file is not a valid image file - if template is None: - self.alignRegionImageTypeError() - return - - # Obtaining the capture of a region which contains the - # subregion being searched for to align the image. - capture = capture_windows.capture_region(self.hwnd, self.rect) - capture = cv2.cvtColor(capture, cv2.COLOR_BGRA2BGR) - - # Obtain the best matching point for the template within the - # capture. This assumes that the template is actually smaller - # than the dimensions of the capture. Since we are using SQDIFF - # the best match will be the min_val which is located at min_loc. - # The best match found in the image, set everything to 0 by default - # so that way the first match will overwrite these values - best_match = 0.0 - best_height = 0 - best_width = 0 - best_loc = (0, 0) - - # This tests 50 images scaled from 20% to 300% of the original template size - for scale in np.linspace(0.2, 3, num=56): - width = int(template.shape[1] * scale) - height = int(template.shape[0] * scale) - - # The template can not be larger than the capture - if width > capture.shape[1] or height > capture.shape[0]: - continue - - resized = cv2.resize(template, (width, height)) - - result = cv2.matchTemplate(capture, resized, cv2.TM_SQDIFF) - min_val, max_val, min_loc, max_loc = cv2.minMaxLoc(result) - - # The maximum value for SQ_DIFF is dependent on the size of the template - # we need this value to normalize it from 0.0 to 1.0 - max_error = resized.size * 255 * 255 - similarity = 1 - (min_val / max_error) - - # Check if the similarity was good enough to get alignment - if similarity > best_match: - best_match = similarity - best_width = width - best_height = height - best_loc = min_loc - - # Go ahead and check if this satisfies our requirement before setting the region - # We don't want a low similarity image to be aligned. - if best_match < 0.9: - self.alignmentNotMatchedError() - return - - # The new region can be defined by using the min_loc point and the - # height and width of the template. - self.rect.left = self.rect.left + best_loc[0] - self.rect.top = self.rect.top + best_loc[1] - self.rect.right = self.rect.left + best_width - self.rect.bottom = self.rect.top + best_height - - self.xSpinBox.setValue(self.rect.left) - self.ySpinBox.setValue(self.rect.top) - self.widthSpinBox.setValue(best_width) - self.heightSpinBox.setValue(best_height) + # check to see if a region has been set + if self.hwnd == 0 or win32gui.GetWindowText(self.hwnd) == '': + error_messages.regionError() + return + # This is the image used for aligning the capture region + # to the best fit for the user. + template_filename = str(QtWidgets.QFileDialog.getOpenFileName( + self, + "Select Reference Image", + "", + "Image Files (*.png *.jpg *.jpeg *.jpe *.jp2 *.bmp *.tiff *.tif *.dib *.webp *.pbm *.pgm *.ppm *.sr *.ras)")) + + # return if the user presses cancel + if template_filename == '': + return + + template = cv2.imread(template_filename, cv2.IMREAD_COLOR) + + # shouldn't need this, but just for caution, throw a type error if file is not a valid image file + if template is None: + error_messages.alignRegionImageTypeError() + return + + # Obtaining the capture of a region which contains the + # subregion being searched for to align the image. + capture = capture_windows.capture_region(self.hwnd, self.rect) + capture = cv2.cvtColor(capture, cv2.COLOR_BGRA2BGR) + + # Obtain the best matching point for the template within the + # capture. This assumes that the template is actually smaller + # than the dimensions of the capture. Since we are using SQDIFF + # the best match will be the min_val which is located at min_loc. + # The best match found in the image, set everything to 0 by default + # so that way the first match will overwrite these values + best_match = 0.0 + best_height = 0 + best_width = 0 + best_loc = (0, 0) + + # This tests 50 images scaled from 20% to 300% of the original template size + for scale in np.linspace(0.2, 3, num=56): + width = int(template.shape[1] * scale) + height = int(template.shape[0] * scale) + + # The template can not be larger than the capture + if width > capture.shape[1] or height > capture.shape[0]: + continue + + resized = cv2.resize(template, (width, height)) + + result = cv2.matchTemplate(capture, resized, cv2.TM_SQDIFF) + min_val, max_val, min_loc, max_loc = cv2.minMaxLoc(result) + + # The maximum value for SQ_DIFF is dependent on the size of the template + # we need this value to normalize it from 0.0 to 1.0 + max_error = resized.size * 255 * 255 + similarity = 1 - (min_val / max_error) + + # Check if the similarity was good enough to get alignment + if similarity > best_match: + best_match = similarity + best_width = width + best_height = height + best_loc = min_loc + + # Go ahead and check if this satisfies our requirement before setting the region + # We don't want a low similarity image to be aligned. + if best_match < 0.9: + error_messages.alignmentNotMatchedError() + return + + # The new region can be defined by using the min_loc point and the + # height and width of the template. + self.rect.left = self.rect.left + best_loc[0] + self.rect.top = self.rect.top + best_loc[1] + self.rect.right = self.rect.left + best_width + self.rect.bottom = self.rect.top + best_height + + self.xSpinBox.setValue(self.rect.left) + self.ySpinBox.setValue(self.rect.top) + self.widthSpinBox.setValue(best_width) + self.heightSpinBox.setValue(best_height) # widget to select a window and obtain its bounds -class SelectWindowWidget(QtGui.QWidget): +class SelectWindowWidget(QtWidgets.QWidget): def __init__(self): super(SelectWindowWidget, self).__init__() user32 = ctypes.windll.user32 @@ -226,17 +229,18 @@ def __init__(self): self.setWindowTitle(' ') self.setWindowOpacity(0.5) - self.setWindowFlags(QtCore.Qt.FramelessWindowHint) + self.setWindowFlags(QtCore.Qt.WindowType.FramelessWindowHint) self.show() - def mouseReleaseEvent(self, event): + def mouseReleaseEvent(self, event: QtGui.QMouseEvent): self.close() - self.x = event.pos().x() - self.y = event.pos().y() + self.x = int(event.position().x()) + self.y = int(event.position().y()) + # Widget for dragging screen region # https://github.com/harupy/snipping-tool -class SelectRegionWidget(QtGui.QWidget): +class SelectRegionWidget(QtWidgets.QWidget): def __init__(self): super(SelectRegionWidget, self).__init__() user32 = ctypes.windll.user32 @@ -259,36 +263,36 @@ def __init__(self): self.begin = QtCore.QPoint() self.end = QtCore.QPoint() self.setWindowOpacity(0.5) - QtGui.QApplication.setOverrideCursor(QtGui.QCursor(QtCore.Qt.CrossCursor)) - self.setWindowFlags(QtCore.Qt.FramelessWindowHint) + QtWidgets.QApplication.setOverrideCursor(QtGui.QCursor(QtCore.Qt.CursorShape.CrossCursor)) + self.setWindowFlags(QtCore.Qt.WindowType.FramelessWindowHint) self.show() - def paintEvent(self, event): + def paintEvent(self, event: QtGui.QPaintEvent): qp = QtGui.QPainter(self) qp.setPen(QtGui.QPen(QtGui.QColor('red'), 2)) qp.setBrush(QtGui.QColor('opaque')) qp.drawRect(QtCore.QRect(self.begin, self.end)) - def mousePressEvent(self, event): - self.begin = event.pos() + def mousePressEvent(self, event: QtGui.QMouseEvent): + self.begin = event.position().toPoint() self.end = self.begin self.update() - def mouseMoveEvent(self, event): - self.end = event.pos() + def mouseMoveEvent(self, event: QtGui.QMouseEvent): + self.end = event.position().toPoint() self.update() - def mouseReleaseEvent(self, event): - QtGui.QApplication.setOverrideCursor(QtGui.QCursor(QtCore.Qt.ArrowCursor)) + def mouseReleaseEvent(self, event: QtGui.QMouseEvent): + QtWidgets.QApplication.setOverrideCursor(QtGui.QCursor(QtCore.Qt.CursorShape.ArrowCursor)) self.close() # The coordinates are pulled relative to the top left of the set geometry, # so the added virtual screen offsets convert them back to the virtual # screen coordinates - self.left = min(self.begin.x(), self.end.x()) + self.SM_XVIRTUALSCREEN - self.top = min(self.begin.y(), self.end.y()) + self.SM_YVIRTUALSCREEN - self.right = max(self.begin.x(), self.end.x()) + self.SM_XVIRTUALSCREEN - self.bottom = max(self.begin.y(), self.end.y()) + self.SM_YVIRTUALSCREEN + self.left = int(min(self.begin.x(), self.end.x()) + self.SM_XVIRTUALSCREEN) + self.top = int(min(self.begin.y(), self.end.y()) + self.SM_YVIRTUALSCREEN) + self.right = int(max(self.begin.x(), self.end.x()) + self.SM_XVIRTUALSCREEN) + self.bottom = int(max(self.begin.y(), self.end.y()) + self.SM_YVIRTUALSCREEN) self.height = self.bottom - self.top - self.width = self.right - self.left \ No newline at end of file + self.width = self.right - self.left diff --git a/src/settings_file.py b/src/settings_file.py index 6e7e270d..b4d20769 100644 --- a/src/settings_file.py +++ b/src/settings_file.py @@ -1,8 +1,13 @@ +from win32 import win32gui +from PyQt6 import QtWidgets +import glob import keyboard -import win32gui import pickle -import glob -from PyQt4 import QtGui +import logging + +from hotkeys import _hotkey_action +import error_messages + def getSaveSettingsValues(self): # get values to be able to save settings @@ -21,16 +26,6 @@ def getSaveSettingsValues(self): self.undo_split_key = str(self.undosplitLineEdit.text()) self.pause_key = str(self.pausehotkeyLineEdit.text()) - if self.custompausetimesCheckBox.isChecked(): - self.custom_pause_times_setting = 1 - else: - self.custom_pause_times_setting = 0 - - if self.customthresholdsCheckBox.isChecked(): - self.custom_thresholds_setting = 1 - else: - self.custom_thresholds_setting = 0 - if self.groupDummySplitsCheckBox.isChecked(): self.group_dummy_splits_undo_skip_setting = 1 else: @@ -48,12 +43,27 @@ def getSaveSettingsValues(self): def haveSettingsChanged(self): self.getSaveSettingsValues() - self.current_save_settings = [self.split_image_directory, self.similarity_threshold, self.comparison_index, self.pause, - self.fps_limit, self.split_key, - self.reset_key, self.skip_split_key, self.undo_split_key, self.pause_key, self.x, self.y, self.width, self.height, - self.hwnd_title, - self.custom_pause_times_setting, self.custom_thresholds_setting, - self.group_dummy_splits_undo_skip_setting, self.loop_setting, self.auto_start_on_reset_setting] + self.current_save_settings = [ + self.split_image_directory, + self.similarity_threshold, + self.comparison_index, + self.pause, + self.fps_limit, + self.split_key, + self.reset_key, + self.skip_split_key, + self.undo_split_key, + self.pause_key, + self.x, + self.y, + self.width, + self.height, + self.hwnd_title, + 0, + 0, + self.group_dummy_splits_undo_skip_setting, + self.loop_setting, + self.auto_start_on_reset_setting] #one small caveat in this: if you load a settings file from an old version, but dont change settings, #the current save settings and last load settings will have different # of elements and it will ask @@ -68,33 +78,62 @@ def saveSettings(self): self.saveSettingsAs() else: self.getSaveSettingsValues() - self.last_saved_settings = [self.split_image_directory, self.similarity_threshold, self.comparison_index, - self.pause, - self.fps_limit, self.split_key, - self.reset_key, self.skip_split_key, self.undo_split_key, self.pause_key, self.x, - self.y, self.width, self.height, - self.hwnd_title, - self.custom_pause_times_setting, self.custom_thresholds_setting, - self.group_dummy_splits_undo_skip_setting, self.loop_setting, self.auto_start_on_reset_setting] + self.last_saved_settings = [ + self.split_image_directory, + self.similarity_threshold, + self.comparison_index, + self.pause, + self.fps_limit, + self.split_key, + self.reset_key, + self.skip_split_key, + self.undo_split_key, + self.pause_key, + self.x, + self.y, + self.width, + self.height, + self.hwnd_title, + 0, + 0, + self.group_dummy_splits_undo_skip_setting, + self.loop_setting, + self.auto_start_on_reset_setting] # save settings to a .pkl file with open(self.last_successfully_loaded_settings_file_path, 'wb') as f: pickle.dump(self.last_saved_settings, f) + def saveSettingsAs(self): - # user picks save destination - self.save_settings_file_path = str(QtGui.QFileDialog.getSaveFileName(self, "Save Settings As", "", "PKL (*.pkl)")) + # User picks save destination + self.save_settings_file_path = QtWidgets.QFileDialog.getSaveFileName(self, "Save Settings As", "", "PKL (*.pkl)")[0] - #if user cancels save destination window, don't save settings - if self.save_settings_file_path == '': + # If user cancels save destination window, don't save settings + if not self.save_settings_file_path: return self.getSaveSettingsValues() - self.last_saved_settings = [self.split_image_directory, self.similarity_threshold, self.comparison_index, self.pause, - self.fps_limit, self.split_key, - self.reset_key, self.skip_split_key, self.undo_split_key, self.pause_key, self.x, self.y, self.width, self.height, - self.hwnd_title, - self.custom_pause_times_setting, self.custom_thresholds_setting, - self.group_dummy_splits_undo_skip_setting, self.loop_setting, self.auto_start_on_reset_setting] + self.last_saved_settings = [ + self.split_image_directory, + self.similarity_threshold, + self.comparison_index, + self.pause, + self.fps_limit, + self.split_key, + self.reset_key, + self.skip_split_key, + self.undo_split_key, + self.pause_key, + self.x, + self.y, + self.width, + self.height, + self.hwnd_title, + 0, + 0, + self.group_dummy_splits_undo_skip_setting, + self.loop_setting, + self.auto_start_on_reset_setting] # save settings to a .pkl file with open(self.save_settings_file_path, 'wb') as f: @@ -106,21 +145,28 @@ def saveSettingsAs(self): def loadSettings(self): - if self.load_settings_on_open == True: + # hotkeys need to be initialized to be passed as thread arguments in hotkeys.py + self.split_hotkey = "" + self.reset_hotkey = "" + self.skip_split_hotkey = "" + self.undo_split_hotkey = "" + self.pause_hotkey = "" + + if self.load_settings_on_open: self.settings_files = glob.glob("*.pkl") if len(self.settings_files) < 1: - self.noSettingsFileOnOpenError() + error_messages.noSettingsFileOnOpenError() self.last_loaded_settings = None return elif len(self.settings_files) > 1: - self.tooManySettingsFilesOnOpenError() + error_messages.tooManySettingsFilesOnOpenError() self.last_loaded_settings = None return else: self.load_settings_file_path = self.settings_files[0] else: - self.load_settings_file_path = str(QtGui.QFileDialog.getOpenFileName(self, "Load Settings", "", "PKL (*.pkl)")) + self.load_settings_file_path = str(QtWidgets.QFileDialog.getOpenFileName(self, "Load Settings", "", "PKL (*.pkl)")) # if self.load_settings_file_path == '': @@ -132,25 +178,53 @@ def loadSettings(self): #v1.5 settings if self.settings_count == 20: with open(self.load_settings_file_path, 'rb') as f: - self.last_loaded_settings = [self.split_image_directory, self.similarity_threshold, self.comparison_index, self.pause, - self.fps_limit, self.split_key, - self.reset_key, self.skip_split_key, self.undo_split_key, self.pause_key, self.x, self.y, self.width, self.height, - self.hwnd_title, - self.custom_pause_times_setting, self.custom_thresholds_setting, - self.group_dummy_splits_undo_skip_setting, self.loop_setting, self.auto_start_on_reset_setting] = pickle.load(f) - #v1.3-1.4 settings. add a blank pause key. + self.last_loaded_settings = [ + self.split_image_directory, + self.similarity_threshold, + self.comparison_index, + self.pause, + self.fps_limit, + self.split_key, + self.reset_key, + self.skip_split_key, + self.undo_split_key, + self.pause_key, + self.x, + self.y, + self.width, + self.height, + self.hwnd_title, + 0, + 0, + self.group_dummy_splits_undo_skip_setting, + self.loop_setting, + self.auto_start_on_reset_setting] = pickle.load(f) + # v1.3-1.4 settings. add a blank pause key. elif self.settings_count == 18: with open(self.load_settings_file_path, 'rb') as f: - self.last_loaded_settings = [self.split_image_directory, self.similarity_threshold, self.comparison_index, self.pause, - self.fps_limit, self.split_key, - self.reset_key, self.skip_split_key, self.undo_split_key, self.x, self.y, self.width, self.height, - self.hwnd_title, - self.custom_pause_times_setting, self.custom_thresholds_setting, - self.group_dummy_splits_undo_skip_setting, self.loop_setting] = pickle.load(f) + self.last_loaded_settings = [ + self.split_image_directory, + self.similarity_threshold, + self.comparison_index, + self.pause, + self.fps_limit, + self.split_key, + self.reset_key, + self.skip_split_key, + self.undo_split_key, + self.x, + self.y, + self.width, + self.height, + self.hwnd_title, + 0, + 0, + self.group_dummy_splits_undo_skip_setting, + self.loop_setting] = pickle.load(f) self.pause_key = '' self.auto_start_on_reset_setting = 0 elif self.settings_count < 18: - self.oldVersionSettingsFileError() + error_messages.oldVersionSettingsFileError() return self.split_image_directory = str(self.split_image_directory) @@ -166,101 +240,68 @@ def loadSettings(self): self.hwnd = win32gui.FindWindow(None, self.hwnd_title) # set custom checkbox's accordingly - if self.custom_pause_times_setting == 1: - self.custompausetimesCheckBox.setChecked(True) - else: - self.custompausetimesCheckBox.setChecked(False) - - if self.custom_thresholds_setting == 1: - self.customthresholdsCheckBox.setChecked(True) - else: - self.customthresholdsCheckBox.setChecked(False) - - if self.group_dummy_splits_undo_skip_setting == 1: - self.groupDummySplitsCheckBox.setChecked(True) - else: - self.groupDummySplitsCheckBox.setChecked(False) - - if self.loop_setting == 1: - self.loopCheckBox.setChecked(True) - else: - self.loopCheckBox.setChecked(False) - - if self.auto_start_on_reset_setting == 1: - self.autostartonresetCheckBox.setChecked(True) - else: - self.autostartonresetCheckBox.setChecked(False) + self.groupDummySplitsCheckBox.setChecked(self.group_dummy_splits_undo_skip_setting == 1) + self.loopCheckBox.setChecked(self.loop_setting == 1) + self.autostartonresetCheckBox.setChecked(self.auto_start_on_reset_setting == 1) + self.autostartonresetCheckBox.setChecked(self.auto_start_on_reset_setting == 1) + # TODO: Reuse code from hotkeys rather than duplicating here # try to set hotkeys from when user last closed the window try: - try: - keyboard.remove_hotkey(self.split_hotkey) - except AttributeError: - pass - self.splitLineEdit.setText(str(self.split_key)) - self.split_hotkey = keyboard.add_hotkey(str(self.split_key), self.startAutoSplitter) - self.old_split_key = self.split_key + keyboard.unhook_key(self.split_hotkey) # pass if the key is an empty string (hotkey was never set) - except ValueError: + except (AttributeError, KeyError): pass - except KeyError: + try: + if not self.is_auto_controlled: + self.splitLineEdit.setText(self.split_key) + self.split_hotkey = keyboard.hook_key(str(self.split_key), lambda e: _hotkey_action(e, self.split_key, self.startAutoSplitter)) + except (ValueError, KeyError): pass try: - try: - keyboard.remove_hotkey(self.reset_hotkey) - except AttributeError: - pass - self.resetLineEdit.setText(str(self.reset_key)) - self.reset_hotkey = keyboard.add_hotkey(str(self.reset_key), self.startReset) - self.old_reset_key = self.reset_key - except ValueError: + keyboard.unhook_key(self.reset_hotkey) + except (AttributeError, KeyError): pass - except KeyError: + try: + self.resetLineEdit.setText(self.reset_key) + self.reset_hotkey = keyboard.hook_key(self.reset_key, lambda e: _hotkey_action(e, self.reset_key, self.startReset)) + except (ValueError, KeyError): pass try: - try: - keyboard.remove_hotkey(self.skip_split_hotkey) - except AttributeError: - pass - self.skipsplitLineEdit.setText(str(self.skip_split_key)) - self.skip_split_hotkey = keyboard.add_hotkey(str(self.skip_split_key), self.startSkipSplit) - self.old_skip_split_key = self.skip_split_key - except ValueError: + keyboard.unhook_key(self.skip_split_hotkey) + except (AttributeError, KeyError): pass - except KeyError: + try: + self.skipsplitLineEdit.setText(self.skip_split_key) + self.skip_split_hotkey = keyboard.hook_key(self.skip_split_key, lambda e: _hotkey_action(e, self.skip_split_key, self.startSkipSplit)) + except (ValueError, KeyError): pass try: - try: - keyboard.remove_hotkey(self.undo_split_hotkey) - except AttributeError: - pass - self.undosplitLineEdit.setText(str(self.undo_split_key)) - self.undo_split_hotkey = keyboard.add_hotkey(str(self.undo_split_key), self.startUndoSplit) - self.old_undo_split_key = self.undo_split_key - except ValueError: + keyboard.unhook_key(self.undo_split_hotkey) + except (AttributeError, KeyError): pass - except KeyError: + try: + self.undosplitLineEdit.setText(self.undo_split_key) + self.undo_split_hotkey = keyboard.hook_key(self.undo_split_key, lambda e: _hotkey_action(e, self.undo_split_key, self.startUndoSplit)) + except (ValueError, KeyError): pass try: - try: - keyboard.remove_hotkey(self.pause_hotkey) - except AttributeError: - pass - self.pausehotkeyLineEdit.setText(str(self.pause_key)) - self.pause_hotkey = keyboard.add_hotkey(str(self.pause_key), self.startPause) - self.old_pause_key = self.pause_key - except ValueError: + keyboard.unhook_key(self.pause_hotkey) + except (AttributeError, KeyError): pass - except KeyError: + try: + self.pausehotkeyLineEdit.setText(self.pause_key) + self.pause_hotkey = keyboard.hook_key(self.pause_key, lambda e: _hotkey_action(e, self.pause_key, self.startPause)) + except (ValueError, KeyError): pass self.last_successfully_loaded_settings_file_path = self.load_settings_file_path self.checkLiveImage() except Exception: - self.invalidSettingsError() - pass + logging.error(logging.traceback.format_exc()) + error_messages.invalidSettingsError() diff --git a/src/split_parser.py b/src/split_parser.py index 2b6d9bc1..74d9fe42 100644 --- a/src/split_parser.py +++ b/src/split_parser.py @@ -6,7 +6,7 @@ def threshold_from_filename(filename): @param filename: String containing the file's name @return: A valid threshold, if not then None """ - + # Check to make sure there is a valid floating point number between # parentheses of the filename try: @@ -97,7 +97,6 @@ def flags_from_filename(filename): """ List of flags: 'd' = dummy, do nothing when this split is found - 'm' = mask, use a mask when comparing this split 'b' = below threshold, after threshold is met, split when it goes below the threhsold. 'p' = pause, hit pause key when this split is found """ @@ -110,17 +109,14 @@ def flags_from_filename(filename): return 0 DUMMY_FLAG = 1 << 0 - MASK_FLAG = 1 << 1 BELOW_FLAG = 1 << 2 PAUSE_FLAG = 1 << 3 flags = 0x00 - + for c in flags_str: if c.upper() == 'D': flags |= DUMMY_FLAG - elif c.upper() == 'M': - flags |= MASK_FLAG elif c.upper() == 'B': flags |= BELOW_FLAG elif c.upper() == 'P': @@ -134,7 +130,7 @@ def flags_from_filename(filename): # For instance, we can't have a dummy split also pause if (flags & DUMMY_FLAG == DUMMY_FLAG) and (flags & PAUSE_FLAG == PAUSE_FLAG): return 0 - + return flags def is_reset_image(filename): @@ -144,4 +140,4 @@ def is_reset_image(filename): @param filename: String containing the file's name @return: True if its a reset image """ - return ('RESET' in filename.upper()) \ No newline at end of file + return ('RESET' in filename.upper())